
Claude Troncy
Members-
Posts
107 -
Joined
-
Last visited
Content Type
Profiles
Forums
Events
Gallery
Downloads
Everything posted by Claude Troncy
-
Lua error module not found in P3D
Claude Troncy replied to Claude Troncy's topic in FSUIPC Support Pete Dowson Modules
Yes but no chance. Cheers Claude -
Lua error module not found in P3D
Claude Troncy replied to Claude Troncy's topic in FSUIPC Support Pete Dowson Modules
I have the dependencywalker and will have a look, but I have doubt because if I try as I said a lua graphic library, I have the same problem. The saitek dll is working with fsx, and I make a disk image to try P3D. Claude -
Lua error module not found in P3D
Claude Troncy replied to Claude Troncy's topic in FSUIPC Support Pete Dowson Modules
I tried this local lib,err = package.loadlib("C:\\saitek_dll\\saitek.dll","luaopen_saitek"); I have the same error The specified module could not be found. I created a empty dll with the same name using notepad, and then the message is different. %1 is not a valid Win32 application. That seems normal as the module is empty. So the module is well located by the require function but the return code is module not found when the dll is valid. Strange ! P3D is run in admin mode, and I see nothing which can prevent windows to load the dll. I also tried with another dll (gd.dll which is a graphic lua library) and I have the same problem. Claude -
Lua error module not found in P3D
Claude Troncy posted a topic in FSUIPC Support Pete Dowson Modules
Bonjour, I certainly need new glasses. I am trying my FSX lua script in P3D and I have this problem on require('saitek'). 514055 *** LUA Error: error loading module 'saitek' from file 'C:\Program Files (x86)\Lockheed Martin\Prepar3D v3\modules\lua\saitek.dll': The specified module could not be found. But it seems to be here ! any idea ? Cheers Claude -
Bonsoir, I would like to thank you both Pete and Chris? Everything is working now. No more crash between the Saitek callback and the FSUIPC event. Just want to say that if someone wants to drive a Saitek FIP or a X52 PRO, the Saitek.dll is the way to go. Very easy to implement. Cheers Claude
-
How to close LUA display
Claude Troncy replied to Claude Troncy's topic in FSUIPC Support Pete Dowson Modules
Docked or undocked, the lua window close without problem when I kill my script. Now I know, there is no urgence to correct the problem if any. Claude -
How to close LUA display
Claude Troncy replied to Claude Troncy's topic in FSUIPC Support Pete Dowson Modules
I have already tried but the window was undocked and in this case it doesn't close. To work as you said the window must be docked. If undocked it doesn't work. Thanks... Claude -
How to close LUA display
Claude Troncy replied to Claude Troncy's topic in FSUIPC Support Pete Dowson Modules
Hi Paul, Thank you for your suggestion I already had this idea, but it doesn't close the windows. it only delete the text Cheers Claude -
Bonjour Pete, Is there a way to close the communal window "LUA Display " with a function in the IPC library ? I cannot find one. Merci Regards Claude
-
Hi Chris, I am using the last drivers provided by Saitek for W7 64 bits 7-0-47-1-X64 Claude
-
Merci... In fact, it seems impossible to get the recovery password function working with an hotmail address. Claude
-
Bonjour Pete, I tried to contact 3 different admins from the simFlight forums without success. I did not get any answer and none of my PM was read. Is there a way to contact someone able to change the email address of an account (not mine). Cheers Claude
-
ipc.write when WideFS client starts.
Claude Troncy replied to Claude Troncy's topic in FSUIPC Support Pete Dowson Modules
You are right... Just for info I can see all my read Read: Offset=66C5, Size=0004 and 18 seconds after the first one Write: Offset=66C5, Size=0004 between each read a lot of 43150 WM_MYSEND: Sent 46 bytes (timectr=0, i=1, blocked=0) (skt=5476) TCP 43150 LAN Data Sent (skt=5476) TCP PREQ ulSize=35, ulTime=121, uSum=3281, fUsed=0 60 05 00 FE 0C 00 E4 12 E2 09 72 A1 52 00 50 AC 62 3C FC 0F 00 FE 01 00 C2 24 C8 00 FE 04 00 C2 FA 0C 00 and no error... So as you said certainly a lot of things to do on the server side Claude -
Just to let you know that I received an answer from Chris Apers, who is the author of the saitek.dll. He will have a look to this post. his dll is a must because whithout it it is very difficult to communicate with the FIP. The sdk provide by saitek if very complicate, the doc and the support are inexistant. Claude
-
ipc.write when WideFS client starts.
Claude Troncy replied to Claude Troncy's topic in FSUIPC Support Pete Dowson Modules
No it is not. Yes that's why it is not a big problem... But during the development process I thought it was easier to do it from the client. Claude The log After startup, during 18 seconds I have repeatedly this in the log file. 24320 MyReadStateData succeeded <M0:L0:C1:H253> 24320 MyWriteStateData failed all retries! <M0:L0:C1:H253> 24320 LocalReadWrite Entry <M1:L0:C1:H253> 24320 Local message entry <M1:L0:C1:H253> 24320 Processing request now ... <M1:L0:C1:H253> 24320 Exiting ProcessRequestData <M1:L0:C1:H253> 24320 FS6IPC message Exit2 <M1:L0:C1:H253> 24320 MyReadStateData succeeded <M0:L0:C1:H253> 24320 MyWriteStateData failed all retries! <M0:L0:C1:H253> 24336 LocalReadWrite Entry <M1:L0:C1:H253> 24336 Local message entry <M1:L0:C1:H253> 24336 Processing request now ... <M1:L0:C1:H253> 24336 Exiting ProcessRequestData <M1:L0:C1:H253> 24336 FS6IPC message Exit2 <M1:L0:C1:H253> And suddenly 24336 MyReadStateData succeeded <M0:L0:C1:H253> 24336 LocalReadWrite Entry <M1:L0:C1:H253> 24336 Local message entry <M1:L0:C1:H253> 24336 Processing request now ... <M1:L0:C1:H253> 24336 Exiting ProcessRequestData <M1:L0:C1:H253> 24336 Adding Request Block now ... <M1:L0:C1:H253> 24336 Exiting ProcessRequestData <M1:L0:C1:H253> 24336 FS6IPC message Exit2 <M1:L0:C1:H253> 24336 MyWriteStateData succeeded <M0:L0:C1:H253> 24336 MyReadStateData met from local memory <M0:L0:C1:H253> 24351 In MessageLoop <M0:L0:C1:H256> 24351 MYSENDREQ Entry <M0:L0:C1:H255> 24351 MYSENDREQ [ok=1] send() done: 27 of 27 bytes <M0:L0:C1:H255> 24351 MYSENDREQ Exit <M0:L0:C1:H255> 24351 In MessageLoop <M0:L0:C1:H255> 24351 WSA_READ Entry <M0:L1:C1:H255> 24351 WSA_READ FD_WRITE <M0:L1:C1:H255> 24351 WSA_READ Exit1 <M0:L1:C1:H255> 24367 In MessageLoop <M0:L0:C1:H255> 24367 WSA_READ Entry <M0:L1:C1:H255> 24367 WSA_READ FD_READ <M0:L1:C1:H255> 24367 GetRecv() gets 47 <M0:L1:C1:H255> 24367 GetRecv() packet 47 <M0:L1:C1:H255> 24367 WSA_READ ProcessResponse <M0:L1:C1:H255> 24367 GetRecv() done, zero <M0:L1:C1:H255> 24367 WSA_READ free buffer <M0:L1:C1:H259> 24367 WSA_READ Exit2 <M0:L1:C1:H259> -
Hello Pete, I need to initialize a data in the 66C0 free zone when my lua script starts from the WideFS client. I noticed I have to wait 18 seconds before the ipc.write succeed. After that each ipc.write is immediuate. I read that the write request from the client is not controled by wideserver, so I think there is something outside which cause this delay. It is not important, but you certainly have an explanation. The lua script init. print ("start") t = ipc.readUD(0X66C5) while t ~= 150 do ipc.writeUD(0X66C5,150) t = ipc.readUD(0X66C5) end print ("end") The log 5835 LUA: start 24321 LUA: end Cheers Claude
-
Just to add ... In my previous post I said: the event is able to know that the callback is running... I do not how he knows, but I am sure of that. By increasing the ipc.sleep in the callback, the event only fire when the sleep ended. Claude
-
Hi Pete, Yes it is worst. Trying to narrow the problem I avoid using saitek.dll calls except the initialisation and the callback but it is the same. If I stay longer in the callback by using an ipc.sleep the crash is immediate with the same error code as before. Isn't it the same problem for the event or timer, How could you know the callback is running. Same crash. I will send a email to the saitek.dll developper tomorrow. He has an account on your forum, may be he will be able to intervene in this post to discuss with you. You have already discuss with him in 2011... http://forum.simflight.com/topic/68309-lua-capabilities/page-3#entry429053 Have a good day. Cheers Claude
-
Bonsoir Pete, Unfortunately the use of infinite loop instead of the event doesn't work... I will try to contact the clever guy who wrote the saitek.dll, but I know he is very busy with other stuff. I did not ask for his help on this particular problem, but I have his contact. Thanks again... I will let you know what is his thinking.. Cheers Claude
-
Hi, Merci Pete for your answer... and thank you for taking time to look in my problem. FSUIPC 4.947c WideClient 6.999n The callback function is from the "Saitek Flight Panels for Lua " downloaded from this site.... http://www.super-hornet.com/ and is not from your library but is supposed to work with FSUIPC. I join the documentation as an attached file. I found this package from user contribution, and it works very well except the problem I described when the callback function compete with the event one. I first discover the problem on the WideCleint, and to narrow the problem I run my script from FSX just to test..... with the same behavior. 1 some error log, which happens at the time of crash. ********* LUA: "FIP" Log [from WideClient] ********* Date (dmy): 13/02/16, Time 15:20:59.347: Client name is ASUS 5569 LUA: beginning "C:\WideClient\FIP.lua" 14602 *** LUA Error: attempt to call a number value 14726 *** LUA Error: 1 ********* LUA: "FIP" Log [from WideClient] ********* Date (dmy): 13/02/16, Time 15:30:12.011: Client name is ASUS 5569 LUA: beginning "C:\WideClient\FIP.lua" 22121 *** LUA Error: attempt to call a number value 25506 *** LUA Error: attempt to call a number value 27768 *** LUA Error: attempt to call a number value 29390 *** LUA Error: attempt to call a number value 29515 *** LUA Error: 1 2 Event manager (in french...) Nom de l’application défaillante WideClient.exe, version : 6.9.9.9, horodatage : 0x53ba88bf Nom du module défaillant : ntdll.dll, version : 6.1.7601.19110, horodatage : 0x5684255b Code d’exception : 0xc0000029 Décalage d’erreur : 0x00090b0a ID du processus défaillant : 0x23ec Heure de début de l’application défaillante : 0x01d1666b0889e144 Chemin d’accès de l’application défaillante : C:\WideClient\WideClient.exe Chemin d’accès du module défaillant: C:\Windows\SysWOW64\ntdll.dll ID de rapport : 58344eae-d25e-11e5-957f-e0b9a5f8c339 or Nom de l’application défaillante WideClient.exe, version : 6.9.9.9, horodatage : 0x53ba88bf Nom du module défaillant : WideClient.exe, version : 6.9.9.9, horodatage : 0x53ba88bf Code d’exception : 0xc0000005 Décalage d’erreur : 0x00031c69 ID du processus défaillant : 0x2f2c Heure de début de l’application défaillante : 0x01d1666a8282399d Chemin d’accès de l’application défaillante : C:\WideClient\WideClient.exe Chemin d’accès du module défaillant: C:\WideClient\WideClient.exe ID de rapport : cd8ef1b9-d25d-11e5-957f-e0b9a5f8c339 or Nom de l’application défaillante WideClient.exe, version : 6.9.9.9, horodatage : 0x53ba88bf Nom du module défaillant : unknown, version : 0.0.0.0, horodatage : 0x00000000 Code d’exception : 0x80000026 Décalage d’erreur : 0x7495cb49 ID du processus défaillant : 0x2d64 Heure de début de l’application défaillante : 0x01d1666a46d59ffe Chemin d’accès de l’application défaillante : C:\WideClient\WideClient.exe Chemin d’accès du module défaillant: unknown ID de rapport : 97570f9d-d25d-11e5-957f-e0b9a5f8c339 3 my lua script. require("saitek"); require("gd"); delta = 5 N1_min_display = "20" N1_min = 20 N1 = 0 angle = 0 centre_x = 148 centre_y = 123 old_indice_throttle = 1 angle_throttle = 0 ------------------------------------------------------------ function round(num, idp) local mult = 10^(idp or 0) return math.floor(num * mult + 0.5) / mult end ----------------------------------------------------------- function change_N1_min(model, index, state) --print("state " .. state) if state == 2 then N1_min = N1_min + 0.1 elseif state == 4 then N1_min = N1_min - 0.1 elseif state == 8 then N1_min = N1_min + 1 elseif state == 16 then N1_min = N1_min - 1 elseif state == 32 then N1_min_display = "" saitek.SetLed('SFIP', 1, 1, 1, false) saitek.SetLed('SFIP', 1, 1, 6, false) return elseif state == 1024 then N1_min_display = "" saitek.SetLed('SFIP', 1, 1, 1, false) saitek.SetLed('SFIP', 1, 1, 6, false) return end --------------------------------------------------------------------- N1_min_display = N1_min --print ("N1_min_display " .. N1_min_display) redrawAll_N1() saitek.SetLed('SFIP', 1, 1, 1, true) saitek.SetLed('SFIP', 1, 1, 6, true) end saitek.RegisterSoftButtonDownCallback("SFIP", 1, "change_N1_min") -- Creation image N1_im = gd.createTrueColor(320, 240); N1_ib = gd.createFromPng("Gauges//N1//N1T.png"); N1_id = gd.createTrueColor(2, 212); --angle N1 N1_is = gd.createTrueColor(1, 212); black = N1_im:colorAllocate(0, 0, 0); white = N1_im:colorAllocate(255, 255, 255); grey = N1_im:colorAllocate(124, 124, 124); N1_im:filledRectangle(0, 0, 320, 240, black); N1_id:colorTransparent(black) N1_id:filledRectangle(0, 0, 2, 212, black); N1_id:filledRectangle(0, 106, 2, 196, white); N1_id:filledRectangle(1, 197, 2, 212, white); N1_is:colorTransparent(black) N1_is:filledRectangle(0, 0, 1, 212, black); N1_is:filledRectangle(0, 197, 1, 212, white); ------------------------------------------------------------------------------------------- function redrawAll_N1() N1_im:filledRectangle(0, 0, 320, 240, black); angle = round((90-((N1/102.8)*206)), 2) -- calcul angle N1 gd.copyRotated(N1_im, N1_id, centre_x, centre_y, 0, 0, 2, 212, (angle)); angle = -(angle - 90) N1_im:filledArc(centre_x, centre_y, 190, 190, 0, angle, grey, gd.PIE) gd.copyResized(N1_im, N1_ib, 20, 20, 0, 0, 286, 209, 286, 209); N1_im:stringFT(white, "Arial", 30, 0, 180, 100, N1) N1_im:stringFT(white, "Arial", 20, 0, 10, 30, N1_min_display) -- envoi de l'image au FIP saitek.SetImage("SFIP", 1, 1, 1, N1_im:gd2Str(320, gd.GD2_FMT_RAW)); end ------------------------------------------------------------------------------------------ -- N1 a changé function N1_change(offset, value) N1 = (100/16384) * value; N1 = round(N1,1) redrawAll_N1(); --print ("N1 " .. N1) end event.offset(0X0898, "UW", "N1_change"); ------------------------------------------------------------------------------------------------------------------------- Thank you Pete Best regards Claude DOC.TXT
-
Bonjour Pete, Here is my problem. I have a lua script which drives a Saitek FIP (Flight Instrument panel). In this lua several functions from the Event Library included a timer. There is also a callback function used when a button on the FIP is pressed or when a rotary dial is done. Everything is working well except when the FIP Callback function is in competition with an event function. The Wideclient or fsx crash with codes like 0xC0000029 (STATUS_LONJUMP) or 0x80000026 (STATUS_INVALIS_UNWIND_TARGET). I also find in the log information such as Lua error 1.. Lua error 0... Lua error... on the line xx call to a nil function (on this line there is no call to a function).... I have the feeling that the stack is corrupted when the FIP callback and the event want to run concurrently. Do you have an idea ? Cheers, Claude
-
Detecting runway in use
Claude Troncy replied to Claude Troncy's topic in FSUIPC Support Pete Dowson Modules
Thank you Pete. Take your time for the fix, I am not in a hurry. Best regards Claude -
Detecting runway in use
Claude Troncy replied to Claude Troncy's topic in FSUIPC Support Pete Dowson Modules
I think, that TrafficLook find the runways from the table at D040 offset and Weathetset2 from D000 What I can say is that arrival and departure runways are always filled up at the same time. No arrival without departure, and no departure without arrival. That's why I thought of a problem between AND and OR. Cheers Claude -
Detecting runway in use
Claude Troncy replied to Claude Troncy's topic in FSUIPC Support Pete Dowson Modules
With TrafficLook, the runway is always filled in. As I understand in FSUIPC4 Offsets Status, WeatherSet2 read runways in use. I will try FSInterrogate to check. Best regards Claude -
Bonjour Pete, I am trying using WideFS to detect the departure runway in use through the facility provide by the D000 offset. Here is my code. ipc.writeSTR(0xD000, "IIIIEIDW",8) timestamp = ipc.readUD(0xD008) while 1 do station = ipc.readSTR(0xD004,4) timestamp2 = ipc.readUD(0xD008) runway1 = ipc.readUB(0xD00C) runway_design1 = ipc.readUB(0xD00D) runway2 = ipc.readUB(0xD00E) runway_design2 = ipc.readUB(0xD00F) if timestamp2 ~= timestamp then if ((runway1 ~= 0) and (station == "EIDW")) then ipc.log(os.date() .. " Departure runway " .. runway1) end ipc.writeUD(0xD000, 0) ipc.writeSTR(0xD000, "IIIIEIDW",8) timestamp = ipc.readUD(0xD008) end ipc.sleep(5000) end When there is little traffic at the airport, I noticed that even if I saw a plane leaving it's gate for departure, the data returned at D00C was 0. Sure it is not a WideFS problem. I tried with Weatherset2 and the beahavior was exactly the same, that let me think that my code is correct. After making some tests, it seems that the data for runways are only populated if there is at the same time an AI arrival AND an Ai departure.. It should be an OR instead of AND. What do you think ? Best regards Claude