Jump to content
The simFlight Network Forums
Pete Dowson

Volunteers to test improved FSUIPC joystick scanning

Recommended Posts

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

 

 

 

  • Upvote 1

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
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

 

Share this post


Link to post
Share on other sites
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

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
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

 

  • Upvote 2

Share this post


Link to post
Share on other sites

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 & Regards
Pete

 

Share this post


Link to post
Share on other sites

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

	  

 

Share this post


Link to post
Share on other sites

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

 

 

Share this post


Link to post
Share on other sites

<< 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

Share this post


Link to post
Share on other sites
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

 

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites

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

 

Share this post


Link to post
Share on other sites
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

 

 

Share this post


Link to post
Share on other sites

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

 

Share this post


Link to post
Share on other sites
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

 

Share this post


Link to post
Share on other sites

Hi,

 

It's an old comment - lazy programmer ;-)

It was copied from another module, where I have to check LVars for change.

 

Rgds

Reinhard

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites
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

 

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site, you agree to our Terms of Use. Guidelines Privacy Policy We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.