Pete Dowson Posted February 25, 2017 Report Posted February 25, 2017 I have at last found a way to get the correct device GUIDs without recourse to using Joystick IDs which may or may not be found correctly in the Registry. The problem with the registry method of locating the correct GUIDs to properly identify a device is that, since Windows 8 at least, the joystick ID number, the only sure way I had of locating the GUID, was not always being set. The Saitek devices seem to have been notorious for that, but this may only be because they are the most prevalent. Either the HELP provided on the MSDN websites has improved, or, more likely, my skills and patience in searching have improved, because I have now found I can get hold of the GUIDs by using DirectX enumeration, after all. It is the DirectX enumeration which provides the Joystick scan list logged by FSUIPC during initialisation, as opposed to the Registry method used to produce the [JoyNames] section in the INI file. This change is not subtle, though to most users it is hidden 'behind the scenes'. The only overt change is the logging, now, of the GUID, in the scan list. The change actually really makes FSUIPC independent of the joystick ID method of tying them up, the one limiting the number of devices to 16 numbered 0-15. So, now, really the JoyLetters are just as much identification as the numbers, and if it were not for existing installations everywhere still not using JoyLetters I could dispense with the numbers altogether. But that's just wishful thinking. It could also mean that the number of devices handled could be increased beyond 16 (though if single letters are used it would be limited to 26, or 36 with numbers 0-9 as well. However, such a change would mean a major restructuring of so much in FSUIPC that I am not willing to risk it. If I were only 20 years younger I might be braver and also be willing to spend more time on it! So, the change offered now is effectively just a more reliable way of identifying joystick devices, without folks having to resort to re-installations or setting IDs via JoyIDs. The problem for me, before release, is to prove my code changes. I don't have many devices (just 2) and the ones I have aren't used much except for basic tests. My cokcpit has no regular devices, everything being handled via specific drivers for PFC and so forth. Hence I need some volunteers please to test this update on their system, one preferably with several joystick devices and a good number of assignments to them, possibly in Profiles. If you are willing, please first make a safe copy of your Modules folder so you can easily revert should things not work out, then download version.4963b_TEST and copy the DLL into the active Modules folder. Feedback here, please, with INI files and LOGs if there's anything wrong noticed. Thanks & Regards Pete Dowson 1
aua668 Posted February 25, 2017 Report Posted February 25, 2017 Pete, My setup: WIN7/64, P3D 3.4 with latest hotfix.I have the Saitek Yoke with TQ and a second TQ and the GF TQ6. Windows 7 Home Premium 64 Bit with SP 1.0 reported as Build 7601 (OS 6.1) Prepar3D.exe version = 3.4.22.19868 First here my FSUIPC.INI entries and the joystick scan log BEFORE I changed to the new version: OLD: ==== [JoyNames] AutoAssignLetters=No 0=Saitek Pro Flight Yoke 0.GUID={35A598E0-AAF5-11E1-8002-444553540000} 1=TQ6 1.GUID={317A1330-B07D-11E1-800C-444553540000} 2=Saitek Pro Flight Quadrant 2.GUID={7EC7D4F0-B1C3-11E1-8001-444553540000} 3=Saitek Pro Flight Rudder Pedals 3.GUID={35A598E0-AAF5-11E1-8001-444553540000} R=Saitek Pro Flight Rudder Pedals Y=Saitek Pro Flight Yoke T=Saitek Pro Flight Quadrant G=TQ6 296 ---------------------- Joystick Device Scan ----------------------- 296 Product= Saitek Pro Flight Rudder Pedals 296 Manufacturer= Saitek 296 Vendor=06A3, Product=0763 (Version 1.0) 296 Serial Number= 296 Product= Saitek Pro Flight Yoke 296 Manufacturer= Saitek 296 Vendor=06A3, Product=0BAC (Version 3.2) 296 Serial Number= 296 Product= Saitek Pro Flight Quadrant 296 Manufacturer= Saitek 296 Vendor=06A3, Product=0C2D (Version 2.0) 296 Serial Number= 296 Product= TQ6 296 Manufacturer= GoFlight 296 Vendor=09F3, Product=0200 (Version 2.0) 296 Serial Number= 00080 7 296 ------------------------------------------------------------------- Then I changed to the new version: NEW: ==== [JoyNames] AutoAssignLetters=No 0=Saitek Pro Flight Rudder Pedals 0.GUID={35A598E0-AAF5-11E1-8001-444553540000} 1=Saitek Pro Flight Yoke 1.GUID={35A598E0-AAF5-11E1-8002-444553540000} 2=Saitek Pro Flight Quadrant 2.GUID={7EC7D4F0-B1C3-11E1-8001-444553540000} 3=TQ6 3.GUID={317A1330-B07D-11E1-800C-444553540000} R=Saitek Pro Flight Rudder Pedals Y=Saitek Pro Flight Yoke T=Saitek Pro Flight Quadrant G=TQ6 266 ---------------------- Joystick Device Scan ----------------------- 266 Product= Saitek Pro Flight Rudder Pedals 266 Manufacturer= Saitek 266 Vendor=06A3, Product=0763 (Version 1.0) 266 Serial Number= 266 Assigned joystick id 0 (fixed Registry) 281 GUID= {35A598E0-AAF5-11E1-8001-444553540000} 281 Product= Saitek Pro Flight Yoke 281 Manufacturer= Saitek 281 Vendor=06A3, Product=0BAC (Version 3.2) 281 Serial Number= 281 Assigned joystick id 1 (fixed Registry) 281 GUID= {35A598E0-AAF5-11E1-8002-444553540000} 281 Product= Saitek Pro Flight Quadrant 281 Manufacturer= Saitek 281 Vendor=06A3, Product=0C2D (Version 2.0) 297 Serial Number= 297 Found correct joystick Id 2 297 GUID= {7EC7D4F0-B1C3-11E1-8001-444553540000} 297 Product= TQ6 297 Manufacturer= GoFlight 297 Vendor=09F3, Product=0200 (Version 2.0) 297 Serial Number= 00080 7 297 Assigned joystick id 3 (fixed Registry) 297 GUID= {317A1330-B07D-11E1-800C-444553540000} 297 ------------------------------------------------------------------- And then I started P3D again: NEXT: ===== [JoyNames] AutoAssignLetters=No 0=Saitek Pro Flight Rudder Pedals 0.GUID={35A598E0-AAF5-11E1-8001-444553540000} 1=Saitek Pro Flight Yoke 1.GUID={35A598E0-AAF5-11E1-8002-444553540000} 2=Saitek Pro Flight Quadrant 2.GUID={7EC7D4F0-B1C3-11E1-8001-444553540000} 3=TQ6 3.GUID={317A1330-B07D-11E1-800C-444553540000} R=Saitek Pro Flight Rudder Pedals Y=Saitek Pro Flight Yoke T=Saitek Pro Flight Quadrant G=TQ6 265 ---------------------- Joystick Device Scan ----------------------- 265 Product= Saitek Pro Flight Rudder Pedals 265 Manufacturer= Saitek 265 Vendor=06A3, Product=0763 (Version 1.0) 265 Serial Number= 265 Found correct joystick Id 0 281 GUID= {35A598E0-AAF5-11E1-8001-444553540000} 281 Product= Saitek Pro Flight Yoke 281 Manufacturer= Saitek 281 Vendor=06A3, Product=0BAC (Version 3.2) 281 Serial Number= 281 Found correct joystick Id 1 281 GUID= {35A598E0-AAF5-11E1-8002-444553540000} 281 Product= Saitek Pro Flight Quadrant 296 Manufacturer= Saitek 296 Vendor=06A3, Product=0C2D (Version 2.0) 296 Serial Number= 296 Found correct joystick Id 2 296 GUID= {7EC7D4F0-B1C3-11E1-8001-444553540000} 296 Product= TQ6 296 Manufacturer= GoFlight 296 Vendor=09F3, Product=0200 (Version 2.0) 296 Serial Number= 00080 7 296 Found correct joystick Id 3 296 GUID= {317A1330-B07D-11E1-800C-444553540000} 296 ------------------------------------------------------------------- So at the first run it changed my numbers, but as I use JoyLetters this is no Problem. It fixed some registry Errors. In the next run the registry values are correct. So beside the changing of numbers no side effect. Hope this helps. Rgds Reinhard
Pete Dowson Posted February 25, 2017 Author Report Posted February 25, 2017 1 hour ago, aua668 said: Pete, My setup: WIN7/64, P3D 3.4 with latest hotfix.I have the Saitek Yoke with TQ and a second TQ and the GF TQ6. Windows 7 Home Premium 64 Bit with SP 1.0 reported as Build 7601 (OS 6.1) Prepar3D.exe version = 3.4.22.19868 First here my FSUIPC.INI entries and the joystick scan log BEFORE I changed to the new version: OLD: ==== [JoyNames] AutoAssignLetters=No 0=Saitek Pro Flight Yoke 0.GUID={35A598E0-AAF5-11E1-8002-444553540000} 1=TQ6 1.GUID={317A1330-B07D-11E1-800C-444553540000} 2=Saitek Pro Flight Quadrant 2.GUID={7EC7D4F0-B1C3-11E1-8001-444553540000} 3=Saitek Pro Flight Rudder Pedals 3.GUID={35A598E0-AAF5-11E1-8001-444553540000} R=Saitek Pro Flight Rudder Pedals Y=Saitek Pro Flight Yoke T=Saitek Pro Flight Quadrant G=TQ6 296 ---------------------- Joystick Device Scan ----------------------- 296 Product= Saitek Pro Flight Rudder Pedals 296 Manufacturer= Saitek 296 Vendor=06A3, Product=0763 (Version 1.0) 296 Serial Number= 296 Product= Saitek Pro Flight Yoke 296 Manufacturer= Saitek 296 Vendor=06A3, Product=0BAC (Version 3.2) 296 Serial Number= 296 Product= Saitek Pro Flight Quadrant 296 Manufacturer= Saitek 296 Vendor=06A3, Product=0C2D (Version 2.0) 296 Serial Number= 296 Product= TQ6 296 Manufacturer= GoFlight 296 Vendor=09F3, Product=0200 (Version 2.0) 296 Serial Number= 00080 7 296 ------------------------------------------------------------------- Then I changed to the new version: NEW: ==== [JoyNames] AutoAssignLetters=No 0=Saitek Pro Flight Rudder Pedals 0.GUID={35A598E0-AAF5-11E1-8001-444553540000} 1=Saitek Pro Flight Yoke 1.GUID={35A598E0-AAF5-11E1-8002-444553540000} 2=Saitek Pro Flight Quadrant 2.GUID={7EC7D4F0-B1C3-11E1-8001-444553540000} 3=TQ6 3.GUID={317A1330-B07D-11E1-800C-444553540000} R=Saitek Pro Flight Rudder Pedals Y=Saitek Pro Flight Yoke T=Saitek Pro Flight Quadrant G=TQ6 266 ---------------------- Joystick Device Scan ----------------------- 266 Product= Saitek Pro Flight Rudder Pedals 266 Manufacturer= Saitek 266 Vendor=06A3, Product=0763 (Version 1.0) 266 Serial Number= 266 Assigned joystick id 0 (fixed Registry) 281 GUID= {35A598E0-AAF5-11E1-8001-444553540000} 281 Product= Saitek Pro Flight Yoke 281 Manufacturer= Saitek 281 Vendor=06A3, Product=0BAC (Version 3.2) 281 Serial Number= 281 Assigned joystick id 1 (fixed Registry) 281 GUID= {35A598E0-AAF5-11E1-8002-444553540000} 281 Product= Saitek Pro Flight Quadrant 281 Manufacturer= Saitek 281 Vendor=06A3, Product=0C2D (Version 2.0) 297 Serial Number= 297 Found correct joystick Id 2 297 GUID= {7EC7D4F0-B1C3-11E1-8001-444553540000} 297 Product= TQ6 297 Manufacturer= GoFlight 297 Vendor=09F3, Product=0200 (Version 2.0) 297 Serial Number= 00080 7 297 Assigned joystick id 3 (fixed Registry) 297 GUID= {317A1330-B07D-11E1-800C-444553540000} 297 ------------------------------------------------------------------- And then I started P3D again: NEXT: ===== [JoyNames] AutoAssignLetters=No 0=Saitek Pro Flight Rudder Pedals 0.GUID={35A598E0-AAF5-11E1-8001-444553540000} 1=Saitek Pro Flight Yoke 1.GUID={35A598E0-AAF5-11E1-8002-444553540000} 2=Saitek Pro Flight Quadrant 2.GUID={7EC7D4F0-B1C3-11E1-8001-444553540000} 3=TQ6 3.GUID={317A1330-B07D-11E1-800C-444553540000} R=Saitek Pro Flight Rudder Pedals Y=Saitek Pro Flight Yoke T=Saitek Pro Flight Quadrant G=TQ6 265 ---------------------- Joystick Device Scan ----------------------- 265 Product= Saitek Pro Flight Rudder Pedals 265 Manufacturer= Saitek 265 Vendor=06A3, Product=0763 (Version 1.0) 265 Serial Number= 265 Found correct joystick Id 0 281 GUID= {35A598E0-AAF5-11E1-8001-444553540000} 281 Product= Saitek Pro Flight Yoke 281 Manufacturer= Saitek 281 Vendor=06A3, Product=0BAC (Version 3.2) 281 Serial Number= 281 Found correct joystick Id 1 281 GUID= {35A598E0-AAF5-11E1-8002-444553540000} 281 Product= Saitek Pro Flight Quadrant 296 Manufacturer= Saitek 296 Vendor=06A3, Product=0C2D (Version 2.0) 296 Serial Number= 296 Found correct joystick Id 2 296 GUID= {7EC7D4F0-B1C3-11E1-8001-444553540000} 296 Product= TQ6 296 Manufacturer= GoFlight 296 Vendor=09F3, Product=0200 (Version 2.0) 296 Serial Number= 00080 7 296 Found correct joystick Id 3 296 GUID= {317A1330-B07D-11E1-800C-444553540000} 296 ------------------------------------------------------------------- So at the first run it changed my numbers, but as I use JoyLetters this is no Problem. It fixed some registry Errors. In the next run the registry values are correct. So beside the changing of numbers no side effect. Hope this helps. Rgds Reinhard
Pete Dowson Posted February 25, 2017 Author Report Posted February 25, 2017 Just now, Pete Dowson said: So at the first run it changed my numbers, but as I use JoyLetters this is no Problem. It fixed some registry Errors. In the next run the registry values are correct. So beside the changing of numbers no side effect. Hope this helps. Wow! That was fast! Too fast for me, actually. I'll have to analyse this in the morning, but it has done the thing I didn't want it to do -- change the numbers. That's okay for those using JoyLetters like you, but it will definitely mess others up. My code was supposed to reinforce the numbers it saw already assigned. That is hasn't means there is a bug in my new code. I hope you saved the previos settings os you can restore, because if you don't mind I'd like you to try that again after I ,make some changes. Og, I just thought. It wil have "corrected" your registry as well in order to reflect te new numbers, so a new test won't work ... at least not unless I fiddle it. I'll need to thing about that. i might have to change it, for testing only, to set numbers from 15 down instead of 0 up, so the registry entries don't accord again. Hmm. Back in the morning! Flaking out a bit here -- too much good wine with the superb dinner my wife provided! Pete
aua668 Posted February 26, 2017 Report Posted February 26, 2017 Hi, I have a backup. So no problem. And if you can tell me, which registry entries to remove, I can also try to repeat the test later. Rgds Reinhard
Pete Dowson Posted February 26, 2017 Author Report Posted February 26, 2017 11 minutes ago, aua668 said: I have a backup. So no problem. And if you can tell me, which registry entries to remove, I can also try to repeat the test later. Actually, I think all you need to do, when I provide a "fixed" version, is restore your previous INI file, with the ID numbers in their original assignment, and FSUIPC should then enforce that in the Registry. That's part of the change and the part that doesn't work. The non-registry way of finding the GUIDs seems to be working okay, so FSUIPC is no longer dependent on locating IDs in the registry. Still working on better code and testing ... Pete 2
Pete Dowson Posted February 26, 2017 Author Report Posted February 26, 2017 Okay. I think this one should do the trick properly. Please don't edit the registry. Just revert to your original saved INI file and run with.FSUIPC 4963b_TEST installed. It should automatically revert to your original Joysick ID numbers and fix the registry accordingly. The log should say so. Thanks & RegardsPete
aua668 Posted February 26, 2017 Report Posted February 26, 2017 Hi, Wow this was quick !!! I did the test with the new version. Now the numbers didn't change anymore. So this seemed now be solved. Also the registry was fixed and at the second run it says, that the values are ok. But there was another problem, which occured at the first test. Shuting down, the simulator got stuck at that point in time, when you try to kill running LUA modules. I have added this in the log. The second time it closed the sim, all LUA procedures and P3D was shutting down as usual. Obviously you have changed something here, because comparing to my LOG file in the backup, I don't see these messages there. And this getting stuck I also didn't experience in the past. I will try to start and stop the sim several times and report back, if it happens again. Rgds Reinhard ORIGINAL INI: ============= [JoyNames] AutoAssignLetters=No 0=Saitek Pro Flight Yoke 0.GUID={35A598E0-AAF5-11E1-8002-444553540000} 1=TQ6 1.GUID={317A1330-B07D-11E1-800C-444553540000} 2=Saitek Pro Flight Quadrant 2.GUID={7EC7D4F0-B1C3-11E1-8001-444553540000} 3=Saitek Pro Flight Rudder Pedals 3.GUID={35A598E0-AAF5-11E1-8001-444553540000} R=Saitek Pro Flight Rudder Pedals Y=Saitek Pro Flight Yoke T=Saitek Pro Flight Quadrant G=TQ6 Log of the 1st run: =================== 344 ---------------------- Joystick Device Scan ----------------------- 344 Product= Saitek Pro Flight Rudder Pedals 344 Manufacturer= Saitek 344 Vendor=06A3, Product=0763 (Version 1.0) 344 Serial Number= 344 Using existing joystick id: 255 344 Using existing joystick id: 255 344 Using existing joystick id: 255 344 Assigned joystick id 3 (fixed Registry) 344 GUID= {35A598E0-AAF5-11E1-8001-444553540000} 344 Product= Saitek Pro Flight Yoke 344 Manufacturer= Saitek 344 Vendor=06A3, Product=0BAC (Version 3.2) 344 Serial Number= 344 Assigned joystick id 0 (fixed Registry) 344 GUID= {35A598E0-AAF5-11E1-8002-444553540000} 344 Product= Saitek Pro Flight Quadrant 359 Manufacturer= Saitek 359 Vendor=06A3, Product=0C2D (Version 2.0) 359 Serial Number= 359 Using existing joystick id: 255 359 Assigned joystick id 2 (Registry okay) 359 GUID= {7EC7D4F0-B1C3-11E1-8001-444553540000} 359 Product= TQ6 359 Manufacturer= GoFlight 359 Vendor=09F3, Product=0200 (Version 2.0) 359 Serial Number= 00080 7 359 Assigned joystick id 1 (fixed Registry) 359 GUID= {317A1330-B07D-11E1-800C-444553540000} 359 ------------------------------------------------------------------- P3D got stuck shutting down: ============================ 302455 Sim stopped: average frame rate for last 178 secs = 29.6 fps 302455 Max AI traffic was 0 aircraft 302736 LUA.4: Error reading MJC interface for function 143112 303079 LUA.4: Error reading MJC interface for function 41047 317884 LUA.4: Error reading MJC interface for function 91735 341752 === DLLStop called ... 341752 === Getting Lua plug-ins to close ... 343249 === Closing external processes we started ... 344248 === About to kill any Lua plug-ins still running ... 344404 Lua threads being terminated: 344404 0 = "E:\P3D\Modules\Q400_GF_ADF.lua" 344560 LUA: "E:\P3D\Modules\Q400_GF_ADF.lua": killed 344560 1 = "E:\P3D\Modules\FSX_InitPanel.lua" <<<<<<<<<<<<< Here it got stuck ?!? INI after 1st run: ==================== [JoyNames] AutoAssignLetters=No 0=Saitek Pro Flight Yoke 0.GUID={35A598E0-AAF5-11E1-8002-444553540000} 1=TQ6 1.GUID={317A1330-B07D-11E1-800C-444553540000} 2=Saitek Pro Flight Quadrant 2.GUID={7EC7D4F0-B1C3-11E1-8001-444553540000} 3=Saitek Pro Flight Rudder Pedals 3.GUID={35A598E0-AAF5-11E1-8001-444553540000} R=Saitek Pro Flight Rudder Pedals Y=Saitek Pro Flight Yoke T=Saitek Pro Flight Quadrant G=TQ6 LOG of the 2nd run: =================== 343 ---------------------- Joystick Device Scan ----------------------- 343 Product= Saitek Pro Flight Rudder Pedals 343 Manufacturer= Saitek 343 Vendor=06A3, Product=0763 (Version 1.0) 343 Serial Number= 343 Using existing joystick id: 255 343 Using existing joystick id: 255 343 Using existing joystick id: 255 343 Assigned joystick id 3 (Registry okay) 343 GUID= {35A598E0-AAF5-11E1-8001-444553540000} 343 Product= Saitek Pro Flight Yoke 343 Manufacturer= Saitek 343 Vendor=06A3, Product=0BAC (Version 3.2) 343 Serial Number= 343 Assigned joystick id 0 (Registry okay) 343 GUID= {35A598E0-AAF5-11E1-8002-444553540000} 343 Product= Saitek Pro Flight Quadrant 343 Manufacturer= Saitek 343 Vendor=06A3, Product=0C2D (Version 2.0) 358 Serial Number= 358 Using existing joystick id: 255 358 Assigned joystick id 2 (Registry okay) 358 GUID= {7EC7D4F0-B1C3-11E1-8001-444553540000} 358 Product= TQ6 358 Manufacturer= GoFlight 358 Vendor=09F3, Product=0200 (Version 2.0) 358 Serial Number= 00080 7 358 Assigned joystick id 1 (Registry okay) 358 GUID= {317A1330-B07D-11E1-800C-444553540000} 358 ------------------------------------------------------------------- INI after the 2nd run: ====================== [JoyNames] AutoAssignLetters=No 0=Saitek Pro Flight Yoke 0.GUID={35A598E0-AAF5-11E1-8002-444553540000} 1=TQ6 1.GUID={317A1330-B07D-11E1-800C-444553540000} 2=Saitek Pro Flight Quadrant 2.GUID={7EC7D4F0-B1C3-11E1-8001-444553540000} 3=Saitek Pro Flight Rudder Pedals 3.GUID={35A598E0-AAF5-11E1-8001-444553540000} R=Saitek Pro Flight Rudder Pedals Y=Saitek Pro Flight Yoke T=Saitek Pro Flight Quadrant G=TQ6
aua668 Posted February 26, 2017 Report Posted February 26, 2017 Hi, Did now several start-ups and shut-downs of P3D. Everything was working fine. So let's classify this single event as an one-time errror. Killing is always brute force and might have some side effects. But INI file and numbers are ok now. Rgds Reinhard
Pete Dowson Posted February 26, 2017 Author Report Posted February 26, 2017 << Obviously you have changed something here, because comparing to my LOG file in the backup, I don't see these messages there >> I simply made an existing "LogExtras" log option default. That was done in 4.963a. It doesn't affect anything but the log. The only change in this version is to the device check and registry business at the beginning. Pete
Pete Dowson Posted February 26, 2017 Author Report Posted February 26, 2017 I don't like those log entries below. I'll have to fix that: 358 Using existing joystick id: 255
Pete Dowson Posted February 26, 2017 Author Report Posted February 26, 2017 Is the Lua stopping the close the same one or related to the one with problems just before? PetE
aua668 Posted February 26, 2017 Report Posted February 26, 2017 1 hour ago, Pete Dowson said: Is the Lua stopping the close the same one or related to the one with problems just before? PetE Hi, This is just one out of 48 modules running for my Majestic Q400. It's controlling my cockpit camera giving me several views on part of the VC. But it's no specific one. And I did not experience this in the past. But also now I couldn't reproduce it anymore. Rgds Reinhard
aua668 Posted February 26, 2017 Report Posted February 26, 2017 2 hours ago, Pete Dowson said: I simply made an existing "LogExtras" log option default. That was done in 4.963a. It doesn't affect anything but the log. Ahh - that's why I didn't see these messages in the past. Anyhow a good Information. You can keep this as the default. Rgds Reinhard
aua668 Posted February 26, 2017 Report Posted February 26, 2017 Hi, For reference here a normal shutdown with all LUA modules killed as intended. Rgds Reinhard 387288 === About to kill any Lua plug-ins still running ... 387428 Lua threads being terminated: 387428 0 = "E:\P3D\Modules\Q400_GF_ADF.lua" 387584 LUA: "E:\P3D\Modules\Q400_GF_ADF.lua": killed 387584 1 = "E:\P3D\Modules\FSX_InitPanel.lua" 387740 LUA: "E:\P3D\Modules\FSX_InitPanel.lua": killed 387740 2 = "E:\P3D\Modules\FSX_CheckList.lua" 387881 LUA: "E:\P3D\Modules\FSX_CheckList.lua": killed 387881 3 = "E:\P3D\Modules\FSX_InitGF.lua" 388286 LUA: "E:\P3D\Modules\FSX_InitGF.lua": killed 388286 4 = "E:\P3D\Modules\Q400_InitCold.lua" 388692 LUA: "E:\P3D\Modules\Q400_InitCold.lua": killed 388692 5 = "E:\P3D\Modules\Q400_GF_Bat.lua" 388832 LUA: "E:\P3D\Modules\Q400_GF_Bat.lua": killed 388832 6 = "E:\P3D\Modules\Q400_GF_ExtPwr.lua" 388988 LUA: "E:\P3D\Modules\Q400_GF_ExtPwr.lua": killed 388988 7 = "E:\P3D\Modules\Q400_GF_Avionics.lua" 389144 LUA: "E:\P3D\Modules\Q400_GF_Avionics.lua": killed 389144 8 = "E:\P3D\Modules\Q400_GF_BusTie.lua" 389300 LUA: "E:\P3D\Modules\Q400_GF_BusTie.lua": killed 389300 9 = "E:\P3D\Modules\Q400_GF_Yaw.lua" 389441 LUA: "E:\P3D\Modules\Q400_GF_Yaw.lua": killed 389441 10 = "E:\P3D\Modules\Q400_GF_FuelPump.lua" 389597 LUA: "E:\P3D\Modules\Q400_GF_FuelPump.lua": killed 389597 11 = "E:\P3D\Modules\Q400_GF_Hydr.lua" 389753 LUA: "E:\P3D\Modules\Q400_GF_Hydr.lua": killed 389753 12 = "E:\P3D\Modules\FSX_GF_ParkB.lua" 389893 LUA: "E:\P3D\Modules\FSX_GF_ParkB.lua": killed 389893 13 = "E:\P3D\Modules\Q400_GF_Askid.lua" 390049 LUA: "E:\P3D\Modules\Q400_GF_Askid.lua": killed 390049 14 = "E:\P3D\Modules\Q400_GF_LdgAlt.lua" 390205 LUA: "E:\P3D\Modules\Q400_GF_LdgAlt.lua": killed 390205 15 = "E:\P3D\Modules\Q400_GF_COM2.lua" 390346 LUA: "E:\P3D\Modules\Q400_GF_COM2.lua": killed 390346 16 = "E:\P3D\Modules\Q400_GF_Xpdr.lua" 390502 LUA: "E:\P3D\Modules\Q400_GF_Xpdr.lua": killed 390502 17 = "E:\P3D\Modules\Q400_GF_NAV2.lua" 390658 LUA: "E:\P3D\Modules\Q400_GF_NAV2.lua": killed 390658 18 = "E:\P3D\Modules\FSX_GF_SelAlt.lua" 390798 LUA: "E:\P3D\Modules\FSX_GF_SelAlt.lua": killed 390798 19 = "E:\P3D\Modules\FSX_GF_SelHdg.lua" 390954 LUA: "E:\P3D\Modules\FSX_GF_SelHdg.lua": killed 390954 20 = "E:\P3D\Modules\Q400_GF_SetMCP.lua" 391110 LUA: "E:\P3D\Modules\Q400_GF_SetMCP.lua": killed 391110 21 = "E:\P3D\Modules\Q400_GF_NAV1.lua" 391250 LUA: "E:\P3D\Modules\Q400_GF_NAV1.lua": killed 391250 22 = "E:\P3D\Modules\Q400_GF_EFIS.lua" 391406 LUA: "E:\P3D\Modules\Q400_GF_EFIS.lua": killed 391406 23 = "E:\P3D\Modules\Q400_GF_EngStart.lua" 391562 LUA: "E:\P3D\Modules\Q400_GF_EngStart.lua": killed 391562 24 = "E:\P3D\Modules\Q400_GF_PanelLt.lua" 391703 LUA: "E:\P3D\Modules\Q400_GF_PanelLt.lua": killed 391703 25 = "E:\P3D\Modules\Q400_GF_NavLt.lua" 391859 LUA: "E:\P3D\Modules\Q400_GF_NavLt.lua": killed 391859 26 = "E:\P3D\Modules\Q400_GF_BeaconLt.lua" 392015 LUA: "E:\P3D\Modules\Q400_GF_BeaconLt.lua": killed 392015 27 = "E:\P3D\Modules\Q400_GF_TaxiLt.lua" 392155 LUA: "E:\P3D\Modules\Q400_GF_TaxiLt.lua": killed 392155 28 = "E:\P3D\Modules\Q400_GF_LdgLt.lua" 392311 LUA: "E:\P3D\Modules\Q400_GF_LdgLt.lua": killed 392311 29 = "E:\P3D\Modules\Q400_GF_StructIce.lua" 392467 LUA: "E:\P3D\Modules\Q400_GF_StructIce.lua": killed 392467 30 = "E:\P3D\Modules\Q400_GF_PropIce.lua" 392608 LUA: "E:\P3D\Modules\Q400_GF_PropIce.lua": killed 392608 31 = "E:\P3D\Modules\Q400_GF_FuelSel.lua" 392764 LUA: "E:\P3D\Modules\Q400_GF_FuelSel.lua": killed 392764 32 = "E:\P3D\Modules\Q400_GF_Flaps.lua" 392920 LUA: "E:\P3D\Modules\Q400_GF_Flaps.lua": killed 392920 33 = "E:\P3D\Modules\FSX_GF_ElevTrim.lua" 393076 LUA: "E:\P3D\Modules\FSX_GF_ElevTrim.lua": killed 393076 34 = "E:\P3D\Modules\FSX_GF_AilTrim.lua" 393216 LUA: "E:\P3D\Modules\FSX_GF_AilTrim.lua": killed 393216 35 = "E:\P3D\Modules\FSX_GF_RudTrim.lua" 393372 LUA: "E:\P3D\Modules\FSX_GF_RudTrim.lua": killed 393372 36 = "E:\P3D\Modules\Q400_GF_LGear.lua" 393528 LUA: "E:\P3D\Modules\Q400_GF_LGear.lua": killed 393528 37 = "E:\P3D\Modules\Q400_GF_WARN.lua" 393668 LUA: "E:\P3D\Modules\Q400_GF_WARN.lua": killed 393668 38 = "E:\P3D\Modules\Q400_GF_TOGA.lua" 393824 LUA: "E:\P3D\Modules\Q400_GF_TOGA.lua": killed 393824 39 = "E:\P3D\Modules\Q400_GF_AFTHR.lua" 393980 LUA: "E:\P3D\Modules\Q400_GF_AFTHR.lua": killed 393980 40 = "E:\P3D\Modules\Q400_GF_MFD1.lua" 394121 LUA: "E:\P3D\Modules\Q400_GF_MFD1.lua": killed 394121 41 = "E:\P3D\Modules\Q400_GF_MFD2.lua" 394277 LUA: "E:\P3D\Modules\Q400_GF_MFD2.lua": killed 394277 42 = "E:\P3D\Modules\Q400_GF_EmergLt.lua" 394433 LUA: "E:\P3D\Modules\Q400_GF_EmergLt.lua": killed 394433 43 = "E:\P3D\Modules\Q400_GF_SeatBelt.lua" 394573 LUA: "E:\P3D\Modules\Q400_GF_SeatBelt.lua": killed 394573 44 = "E:\P3D\Modules\Q400_GF_NoSmoking.lua" 394729 LUA: "E:\P3D\Modules\Q400_GF_NoSmoking.lua": killed 394729 45 = "E:\P3D\Modules\Q400_GF_COM1.lua" 394885 LUA: "E:\P3D\Modules\Q400_GF_COM1.lua": killed 394885 46 = "E:\P3D\Modules\Q400_GF_Bleed.lua" 395026 LUA: "E:\P3D\Modules\Q400_GF_Bleed.lua": killed 395026 47 = "E:\P3D\Modules\Q400_GF_GenOff.lua" 395182 LUA: "E:\P3D\Modules\Q400_GF_GenOff.lua": killed 395182 48 = "E:\P3D\Modules\Q400_GF_Pitot.lua" 395338 LUA: "E:\P3D\Modules\Q400_GF_Pitot.lua": killed 395338 === Closing global Lua thread
Pete Dowson Posted February 26, 2017 Author Report Posted February 26, 2017 1 hour ago, aua668 said: This is just one out of 48 modules running for my Majestic Q400. 48, all running or waiting for events! Phew! That seems really excessive. What sort of events are they waiting for? If they are all small things just reacting to button presses or the like, wouldn't having them combined using the parameter facility be more efficient? Pete
aua668 Posted February 26, 2017 Report Posted February 26, 2017 Hi, These are typically modules waiting for buttons or switches. Most of them are hardware related to my GoFlight equiment and tie These modules to the Q400. I tried once to merge them into a single module, as I also wanted to see, if this is more efficient. But this was much less efficient. So typically things like rotaries for radio frequencies etc. reacted very slow. By putting them in small modules in their own LUA thread is much better in terms of responsiveness. And during development you can start and stop them individually, which makes testing much easier. Here a typical example setting the landing altitude: -- Q400_GF_LdgAlt.lua -- V1.1 -- Q400 implementation of the GF landing altitude knob -- define GF variables local GF_JoyLetter = ipc.get("GF_RP48_Joy_1") -- define Joystick/Button local GF_JoyButton = 20 local lLdgAlt = 600 -- define XML interface require "Q400_Write_XML_IF" function LdgAlt (pAlt) local lAlt = 65535 * ( 1 -( pAlt + 2000 ) / 16000 ) if lAlt > 65535 then lAlt = 65535 end if lAlt < 0 then lAlt = 0 end return lAlt end writeXMLIF ( Q400_XML.LdgAlt () , LdgAlt(lLdgAlt) ) function SetLdgAltDec(joynum, button, downup) -- LdgAlt Down if lLdgAlt > -2000 then lLdgAlt = lLdgAlt - 100 else lLdgAlt = -2000 end writeXMLIF ( Q400_XML.LdgAlt () , LdgAlt(lLdgAlt) ) end function SetLdgAltInc(joynum, button, downup) -- LdgAlt Up if lLdgAlt < 14000 then lLdgAlt = lLdgAlt + 100 else lLdgAlt = 14000 end writeXMLIF ( Q400_XML.LdgAlt () , LdgAlt(lLdgAlt) ) end -- track every change of the AilTrim toggle switch and check every 500 msec event.button( GF_JoyLetter , GF_JoyButton+0 , 3 , "SetLdgAltDec" ) event.button( GF_JoyLetter , GF_JoyButton+1 , 3 , "SetLdgAltDec" ) event.button( GF_JoyLetter , GF_JoyButton+2 , 3 , "SetLdgAltInc" ) event.button( GF_JoyLetter , GF_JoyButton+3 , 3 , "SetLdgAltInc" ) Rgds Reinhard
Pete Dowson Posted February 26, 2017 Author Report Posted February 26, 2017 9 minutes ago, aua668 said: I tried once to merge them into a single module, as I also wanted to see, if this is more efficient. But this was much less efficient. So typically things like rotaries for radio frequencies etc. reacted very slow. By putting them in small modules in their own LUA thread is much better in terms of responsiveness. And during development you can start and stop them individually, which makes testing much easier. Oh, okay. I notice that just before the events are defined it says "check every 500 msec", but no sign of any timer anywhere. Is that an old comment now not relevant? Pete
aua668 Posted February 26, 2017 Report Posted February 26, 2017 Hi, It's an old comment - lazy programmer ;-) It was copied from another module, where I have to check LVars for change. Rgds Reinhard
Sabrefly Posted February 27, 2017 Report Posted February 27, 2017 Pete, My setup: WIN10/64, P3D 3.3.5 .I have CH Fighterstick, CH Throttle, CH Fighterstick, CH Quadrant x2 (because of CH Frankenpotato mod), CH Pedals, Thrustmaster F16 MFD x1 connected, VRInsight FCU AIRBUS, Saitek P8000 Dash, GF-ATC, GF-45, FG-LGT II Unit, GF-46 Unit, GF-166 Unit, GF-RP48#1, GF-RP48#2, GF-MCP. Quote Windows 10 Pro 64 Bit reported as Build 14393, Release ID: 1607 (OS 10.0) Prepar3D.exe version = 3.3.5.17625 First here my FSUIPC.INI entries and the joystick scan log BEFORE I changed to the new version: OLD: === [JoyNames] AutoAssignLetters=Yes A=CH Control Manager Device 2 B=Saitek P8000 C=CH Control Manager Device 1 D=CH Control Manager Device 4 E=CH Control Manager Device 3 F=F16 MFD 1 G=CH Throttle Quadrant USB H=CH Throttle Quadrant USB J=CH Pro Pedals USB K=CH Pro Throttle USB L=CH Fighterstick USB 1=Saitek P8000 1.GUID={6353CB80-18FC-11E6-8003-444553540000} 0=CH Control Manager Device 2 0.GUID={C82A9610-1924-11E6-8001-444553540000} 6=F16 MFD 1 6.GUID={E21EB120-1927-11E6-8001-444553540000} 2=CH Control Manager Device 1 2.GUID={C82C6AD0-1924-11E6-8002-444553540000} 3=CH Control Manager Device 4 3.GUID={C87A3CB0-1924-11E6-8003-444553540000} 4=CH Control Manager Device 3 4.GUID={C87B2710-1924-11E6-8004-444553540000} 94 ---------------------- Joystick Device Scan ----------------------- 94 Product= Control Manager ID #00 94 Manufacturer= Control Manager ID #00 94 Vendor=068E, Product=C011 (Version 0.0) 94 Serial Number= Control Manager ID #00 94 Product= Saitek P8000 94 Manufacturer= Saitek 94 Vendor=06A3, Product=05D2 (Version 1.0) 109 Serial Number= 00200473 109 Product= Control Manager ID #00 109 Manufacturer= Control Manager ID #00 109 Vendor=068E, Product=C010 (Version 0.0) 109 Serial Number= Control Manager ID #00 109 Product= Control Manager ID #00 109 Manufacturer= Control Manager ID #00 109 Vendor=068E, Product=C013 (Version 0.0) 109 Serial Number= Control Manager ID #00 109 Product= Control Manager ID #00 109 Manufacturer= Control Manager ID #00 109 Vendor=068E, Product=C012 (Version 0.0) 109 Serial Number= Control Manager ID #00 Changed to the new version: NEW: ==== Prepar3D crashes at launch. Reverting back to FSUIPC v4.962a. Sorry for no help, is it due to P3D v3.3.5 client? Otherwise am I in trouble? Thanks, Igor.
Pete Dowson Posted February 27, 2017 Author Report Posted February 27, 2017 56 minutes ago, Sabrefly said: Prepar3D crashes at launch. Reverting back to FSUIPC v4.962a. Sorry for no help, is it due to P3D v3.3.5 client? Otherwise am I in trouble? No, it cannot be anything to do with these changes, which are completely unrelated to FS or P3D. Why were you still on 4.962a many days when 4.963 is the currently supported release? Have you not yet run the 4.963 installer? Please never install interim updates without first running the correct up to date Installer. Sorry, but it is certainly no help at all telling me P3D crashes with no information about the crash at all. Please get 4.963, install that and test. Don't test the new Joystick Scanning changes till 4.963 works okay. If 4.963 crashes your P3D I need you to report this in a new separate thread, with Windows crash details, FSUIPC4.LOG file (as far as it got), and details of other addons being used. Thanks Pete
Sabrefly Posted February 27, 2017 Report Posted February 27, 2017 Sorry Pete, I knew you were working on the newer version, and I thought I had the latest official release + update. I just didn't catch up with your pace. Will install right away and then will try the 4.963b_TEST.
Pete Dowson Posted February 27, 2017 Author Report Posted February 27, 2017 3 minutes ago, Sabrefly said: Will install right away and then will try the 4.963b_TEST And crash details / Log please. Pete
Sabrefly Posted February 27, 2017 Report Posted February 27, 2017 Just now, Pete Dowson said: And crash details / Log please. Pete I don't think I'll have any after 4.963 ))
Sabrefly Posted February 27, 2017 Report Posted February 27, 2017 4.963 Installation wen't ok, so here's the JoyNames section after the 2nd run of 4.963: [JoyNames] AutoAssignLetters=Yes A=CH Control Manager Device 2 B=Saitek P8000 C=CH Control Manager Device 1 D=CH Control Manager Device 4 E=CH Control Manager Device 3 F=F16 MFD 1 G=CH Throttle Quadrant USB H=CH Throttle Quadrant USB J=CH Pro Pedals USB K=CH Pro Throttle USB L=CH Fighterstick USB 1=Saitek P8000 1.GUID={6353CB80-18FC-11E6-8003-444553540000} 0=CH Control Manager Device 2 0.GUID={C82A9610-1924-11E6-8001-444553540000} 6=F16 MFD 1 6.GUID={E21EB120-1927-11E6-8001-444553540000} 2=CH Control Manager Device 1 2.GUID={C82C6AD0-1924-11E6-8002-444553540000} 3=CH Control Manager Device 4 3.GUID={C87A3CB0-1924-11E6-8003-444553540000} 4=CH Control Manager Device 3 4.GUID={C87B2710-1924-11E6-8004-444553540000} and here is the full log before TEST just in case: ********* FSUIPC4, Version 4.963 (23rd February 2017) by Pete Dowson ********* Windows 10 Pro 64 Bit reported as Build 14393, Release ID: 1607 (OS 10.0) Prepar3D.exe version = 3.3.5.17625 Reading options from "F:\Lockheed Martin\Prepar3D v3\Modules\FSUIPC4.ini" Running inside Prepar3D v3 on Windows 10 Module base=565B0000 User Name="Igor Petrov" User Addr="petrovigor@umail.ru" FSUIPC4 Key is provided WideFS7 Key is provided 0 System time = 27/02/2017 17:00:37 0 FLT UNC path = "\\I6\Prepar3D v3 Files\" 0 ------ Module Version Check ------ 0 acontain.dll: 3.3.5.17625 0 api.dll: 3.3.5.17625 0 controls.dll: 3.3.5.17625 0 fs-traffic.dll: 3.3.5.17625 0 G3D.dll: 3.3.5.17625 0 language.dll: 3.3.5.17625 0 sim1.dll: 3.3.5.17625 0 visualfx.dll: 3.3.5.17625 0 weather.dll: 3.3.5.17625 0 window.dll: 3.3.5.17625 0 ---------------------------------- 0 Trying F:\Lockheed Martin\Prepar3D v3\Modules\SimConnectP3D3.dll 0 Found it: trying to connect 0 FS UNC path = "\\I6\Prepar3D v3\" 78 ---------------------- Joystick Device Scan ----------------------- 78 Product= Control Manager ID #00 78 Manufacturer= Control Manager ID #00 78 Vendor=068E, Product=C011 (Version 0.0) 78 Serial Number= Control Manager ID #00 78 Product= Saitek P8000 78 Manufacturer= Saitek 78 Vendor=06A3, Product=05D2 (Version 1.0) 93 Serial Number= 00200473 93 Product= Control Manager ID #00 93 Manufacturer= Control Manager ID #00 93 Vendor=068E, Product=C010 (Version 0.0) 93 Serial Number= Control Manager ID #00 93 Product= Control Manager ID #00 93 Manufacturer= Control Manager ID #00 93 Vendor=068E, Product=C013 (Version 0.0) 93 Serial Number= Control Manager ID #00 93 Product= Control Manager ID #00 93 Manufacturer= Control Manager ID #00 93 Vendor=068E, Product=C012 (Version 0.0) 93 Serial Number= Control Manager ID #00 93 ------------------------------------------------------------------- 171 LogOptions=00000000 00000001 187 ------------------------------------------------------------------- 187 ------ Setting the hooks and direct calls into the simulator ------ 187 --- CONTROLS timer memory location obtained ok 187 --- SIM1 Frictions access gained 187 --- FS Controls Table located ok 187 --- Installed Mouse Macro hooks ok. 187 --- Wind smoothing fix is installed 187 --- SimConnect intercept for texts and menus option is off 187 --- All links okay (except older global weather setting method) 187 ### Traffic limited by user parameter to 250 aircraft 187 ------------------------------------------------------------------- 187 SimConnect_Open succeeded: waiting to check version okay 187 Trying to use SimConnect Prepar3D 187 Opened separate AI Traffic client okay 203 VRI port 1 "com3" opened 28062 VRI MCP2A ("MCP2 Airbus") detected on port com3 31125 Running in "Lockheed Martin® Prepar3D® v3", Version: 3.3.3.3 (SimConnect: 3.3.0.0) 31125 Initialising SimConnect data requests now 31125 FSUIPC Menu entry added 31156 \\I6\Prepar3D v3 Files\SIMstarter NG.fxml 31156 \\I6\Prepar3D v3\SimObjects\Airplanes\Aerosoft Airbus A320 IAE\A320.air 106031 User Aircraft ID 2 supplied, now being used 106453 System time = 27/02/2017 17:02:24, Simulator time = 15:27:43 (20:27Z) 106625 Aircraft="Airbus A320 United Airlines N405UA" 119437 Starting everything now ... 119453 Using "C:\Program Files (x86)\GoFlight\GFDEV.DLL", version 2.2.6.0 119453 GoFlight GF45 detected: 1 device 119453 GoFlight GF166 detected: 1 device 119453 GoFlight GFMCP detected: 1 device 119453 GoFlight GFRP48 detected: 2 devices 119453 GoFlight GF46 detected: 1 device 119453 GoFlight GFATC detected: 1 device 119453 GoFlight GFLGT2 detected: 1 device 119453 LUA.0: beginning "F:\Lockheed Martin\Prepar3D v3\Modules\ipcReady.lua" 119453 LUA.1: [START] *********************** STARTING LINDA *********************** 119453 ASN active function link set 119453 Ready for ASN WX radar 119468 LUA.1: LINDA:: [START] Loading System Configuration files 119484 LUA.1: LINDA:: [START] WARNING - All LUA logging switched off !!! 119484 LUA.1: LINDA:: [START] Go to Setup LINDA to switch on (if required) 119484 LUA.1: LINDA:: ********************************************************************* 119515 LUA.1: LINDA:: [START] System Configuration files loaded 120609 Advanced Weather Interface Enabled 152718 Sim stopped: average frame rate for last 47 secs = 28.0 fps 152718 Max AI traffic was 92 aircraft (Deleted 0) 187328 === DLLStop called ... 187328 === Getting Lua plug-ins to close ... 187328 === Closing external processes we started ... 188328 === About to kill any Lua plug-ins still running ... 188484 Lua threads being terminated: 188484 0 = "F:\Lockheed Martin\Prepar3D v3\Modules\ASAirbus.lua" 188625 LUA: "F:\Lockheed Martin\Prepar3D v3\Modules\ASAirbus.lua": killed 188625 1 = "F:\Lockheed Martin\Prepar3D v3\Modules\linda.lua" 188781 LUA: "F:\Lockheed Martin\Prepar3D v3\Modules\linda.lua": killed 188781 2 = "F:\Lockheed Martin\Prepar3D v3\Modules\linda/system/init.lua" 188953 LUA: "F:\Lockheed Martin\Prepar3D v3\Modules\linda/system/init.lua": killed 188953 === Closing global Lua thread 189953 === About to kill my timers ... 190156 === Restoring window procs ... 190156 === Unloading libraries ... 190156 === stopping other threads ... 190156 === ... Memory checking ... 190156 === ... Button scanning ... 190343 === ... Axis scanning ... 190437 === Releasing joystick devices ... 190437 === Freeing macro memory 190437 === Removing any offset overrides 190437 === Closing all WideFS threads 199312 === Clearing any displays left 199312 === NOTE: not calling SimConnect_Close ... 199312 === AI slots deleted! 199312 === Freeing button memory ... 199312 === Closing my Windows ... 199312 === Freeing FS libraries ... 200312 === Closing devices ... 201328 === Closing the Log ... Bye Bye! ... 201328 System time = 27/02/2017 17:03:59, Simulator time = 15:28:29 (20:28Z) 201328 *** FSUIPC log file being closed Minimum frame rate was 30.0 fps, Maximum was 30.8 fps Minimum available memory recorded was 1595Mb Average frame rate for running time of 47 secs = 28.0 fps Maximum AI traffic for session was 92 aircraft Traffic deletions 0 aircraft Memory managed: 264 Allocs, 263 Freed ********* FSUIPC Log file closed *********** Will backup and install TEST version now
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now