severniae Posted August 22, 2018 Report Posted August 22, 2018 Hi, I'm trying to use a lua script to do some throttle setting for the PMDG DC-6 but I have a problem. If I set the individual throttles by passing a value to, for instance 0x0924 - nothing happens. This follows the fact that if I set the throttles within FSUIPC configuration itself they don't work, which has been confirmed by PMDG support. However it does work if I set the 'Throttle' to an axis within FSUIPC. I'm trying to see if I can use this 'throttle' axis in my lua script instead of the individual throttles, which isn't ideal for what I'm doing but better than nothing. I just can't find the right offset. I can move the throttles using the axis with 'throttle' set using the FSUIPC configuration, but I just can't figure out an offset to use. Could someone help me? Thanks in advance, James 1
Pete Dowson Posted August 22, 2018 Report Posted August 22, 2018 5 minutes ago, severniae said: If I set the individual throttles by passing a value to, for instance 0x0924 - nothing happens. This follows the fact that if I set the throttles within FSUIPC configuration itself they don't work, which has been confirmed by PMDG support. However it does work if I set the 'Throttle' to an axis within FSUIPC. It works assigning to the Axis Thottle controls in FSUIPC, the FS controls not the "direct" controls. Those are the same as those you can assign in the Sim itelf. But you csn't calibrate in FSUIPC. The problem is that most PMDG aircraft read these values "off the top" of the SimConnect pile, whereas, so FSUIPC can calibrate them first, it feeds calibrated controls at a lower level. it has no option. 9 minutes ago, severniae said: I'm trying to see if I can use this 'throttle' axis in my lua script instead of the individual throttles, which isn't ideal for what I'm doing but better than nothing. I just can't find the right offset. I can move the throttles using the axis with 'throttle' set using the FSUIPC configuration, but I just can't figure out an offset to use. It isn't an "offset" but a "control". Offsets are values you can read and maybe write. Yes, there are throttle offsets, but those would bypass the PMDG mechanism. You can send controls to the Sim using the Lua library function ipc.control. Just look up the number for the Axi throttle controls in the list of controls supplied, and supply the throttle value as parameter. Pete
severniae Posted August 22, 2018 Author Report Posted August 22, 2018 Thanks for the quick reply Pete! I'm quite new to this, how would I get the list of controls? What I'll need for the script to work is the range of the control, and then I can increase or decrease the throttle depending on the manifold pressure readout.. I'm creating an 'alternate' flight engineer - the one PMDG created is great but i'm creating scripts so I can call out and set specific manifold pressures/RPMs!
severniae Posted August 22, 2018 Author Report Posted August 22, 2018 Just as a note - setting the throttle axis does seem to work when set using 'direct' within FSUIPC, it's only if you need to separate the throttles you can't. (see attached images) Are the settings in those images a 'control' or can they be influenced by an offset? Apologies if I'm not hitting the right terms, only really started playing with scripts and these settings over the last few months. Thanks, James EDIT: just tried "ipc.control(65820, 10000)" and it doesn't appear to do anything in the sim.... Though I guess I have missed something,.,
Pete Dowson Posted August 22, 2018 Report Posted August 22, 2018 3 hours ago, severniae said: I'm quite new to this, how would I get the list of controls? You look in the List of controls document supplied for you along with all the other FSUIPC documnetation! 2 hours ago, severniae said: Are the settings in those images a 'control' or can they be influenced by an offset? Unless you assign to an offset control (i.e. one designed to write to an offset) all controls you can assign to are controls, also called Events in FS. 2 hours ago, severniae said: : just tried "ipc.control(65820, 10000)" and it doesn't appear to do anything in the sim.... Though I guess I have missed something,., 65820 is "Throttle1 Set" and is th very same control used for the separate throttles in FSUIPC which you already said don't work with your aircraft! Use the Axis throttle controls as I instructed way back. Pete
severniae Posted August 22, 2018 Author Report Posted August 22, 2018 Ok, thanks Pete. Apologies for what must be quite silly questions! Will try your suggestions.
severniae Posted August 23, 2018 Author Report Posted August 23, 2018 Hi All, So I'm trying the quoted below which is an excerpt from a script that I have put together (with help from others), that should read the current manifold pressure value via the gauge in the cockpit, and then either increase or decrease the throttle until the desired manifold pressure is reached. For some reason what I'm expecting to happen, isn't... Just to give a little background on the script: MP is the desired Manifold pressure, in this case '250' represents a manifold pressure, of 25'. PMDG stores the manifold pressure in object 325 (for engine one), so if the gauge was reading 35' - the value in "L:dc6_325_obj" would show as '350' (probably with a lot of decimal places!) var2 is reading the current position of the set throttle. I've set all sorts of display readouts so I can see what the script is seeing as the values. I've found that this value has a range from 0 - 16384. var3 is the control number from the throttle. Through experimentation I've figured that this setting has a range from -16384 for throttle closed, to 16384 for full open. So to try to pass the correct value to set the throttle, I'm having to subtract 16384 and then double the inputted value. I think this is the correct way to do it, but I may be well short of the mark.. What I'm seeing happen, is that when I engage the script the throttle just seems to reduce to 0 and then does nothing... I can't get it to do the gradual increase as it should on the script. If I remove the " * 2 - 16384" from THR_IN then every time the throttle just makes big jumps forward until the throttle is at full power... Should the below script work? or have I fundamentally misunderstood something? Thanks, James Quote if go == 1 then MP = 250 var1 = ipc.readLvar("L:dc6_325_obj") var2 = 0x088C var3 = 66420 ipc.writeUW(0x310A, 0xC0C0) -- Turn Throttle 1 to 4 inputs OFF MP_IN = var1 ipc.display("MP IN IS "..MP_IN, 4) ipc.sleep(2000) ipc.display("MP IS "..MP, 4) ipc.sleep(2000) if MP_IN < MP - 0.1 then mp_delta = 8.5 -- Increase Throttle end if MP_IN > MP + 0.1 then mp_delta = -8.5 -- Decrease Throttle end if MP_IN > MP - 0.1 and MP_IN < MP + 0.1 then mp_delta = 0 end THR_IN = ipc.readSW(var2) * 2 - 16384 ipc.display("THR IN IS "..THR_IN, 4) ipc.sleep(2000) THR_OUT = THR_IN + mp_delta ipc.display("THR OUT IS "..THR_OUT, 4) ipc.sleep(2000) ipc.control(66420, THR_OUT) end
Pete Dowson Posted August 23, 2018 Report Posted August 23, 2018 Instead of doing ipc.display for the values, why not do ipc.log so that you can show me the values?
severniae Posted August 23, 2018 Author Report Posted August 23, 2018 Ok Pete, will do once I get home a bit later on.
severniae Posted August 23, 2018 Author Report Posted August 23, 2018 Ok so I just did a quick test. Here is the full script I ran.. Quote function doit() go = 1 if go == 1 then MP = 250 var1 = ipc.readLvar("L:dc6_325_obj") var2 = 0x088C var3 = 66420 ipc.writeUW(0x310A, 0xC0C0) -- Turn Throttle 1 to 4 inputs OFF MP_IN = var1 ipc.log("MP IN IS "..MP_IN, 4) ipc.sleep(2000) ipc.log("MP IS "..MP, 4) ipc.sleep(2000) if MP_IN < MP - 0.1 then mp_delta = 8.5 -- Increase Throttle end if MP_IN > MP + 0.1 then mp_delta = -8.5 -- Decrease Throttle end if MP_IN > MP - 0.1 and MP_IN < MP + 0.1 then mp_delta = 0 end THR_IN = ipc.readSW(var2) * 2 - 16384 ipc.log("THR IN IS "..THR_IN, 4) ipc.sleep(2000) THR_OUT = THR_IN + mp_delta ipc.log("THR OUT IS "..THR_OUT, 4) ipc.sleep(2000) ipc.control(66420, THR_OUT) end end on = 1 while on == 1 do doit() end Here is the log output: Quote ********* LUA: "DC6PowerSet" Log [from FSUIPC version 4.974] ********* 1317797 System time = 23/08/2018 14:09:41, Simulator time = 13:40:30 (13:40Z) 1317797 LUA: beginning "C:\FILES\P3D\Modules\DC6PowerSet.lua" 1317812 LUA: MP IN IS 77.360907599372 1319828 LUA: MP IS 250 1321843 LUA: THR IN IS -15074 1323859 LUA: THR OUT IS -15065.5 1325875 LUA: MP IN IS 75.813360378348 1327890 LUA: MP IS 250 1329906 LUA: THR IN IS -15074 1331922 LUA: THR OUT IS -15065.5 1333953 LUA: MP IN IS 75.442850121872 1335968 LUA: MP IS 250 1337984 LUA: THR IN IS -15074 1339281 >>> Thread killed <<< 1339281 System time = 23/08/2018 14:10:02, Simulator time = 13:40:51 (13:40Z) ********* LUA execution terminated: Log Closed ********* And finally here is a log trace with debugging enabled, in case helpful: Quote ********* LUA: "DC6PowerSet" Log [from FSUIPC version 4.974] ********* 1445859 System time = 23/08/2018 14:11:49, Simulator time = 13:42:33 (13:42Z) 1445859 LUA: beginning "C:\FILES\P3D\Modules\DC6PowerSet.lua" 1445875 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:42 1445875 LUA: Global: ipcPARAM = 0 1445875 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:2 1445875 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:44 1445875 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:45 1445875 LUA: Global: on = 1 1445875 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:46 1445890 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:3 fn: doit 1445890 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:5 fn: doit 1445890 LUA: Global: go = 1 1445890 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:7 fn: doit 1445906 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:8 fn: doit 1445906 LUA: Global: MP = 250 1445906 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:9 fn: doit 1445906 LUA: Global: var1 = 75.323935619902 1445906 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:10 fn: doit 1445906 LUA: Global: var2 = 2188 1445922 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:12 fn: doit 1445922 LUA: Global: var3 = 66420 1445953 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:14 fn: doit 1445953 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:15 fn: doit 1445953 LUA: Global: MP_IN = 75.323935619902 1445968 LUA: MP IN IS 75.323935619902 1445968 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:16 fn: doit 1447984 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:18 fn: doit 1447984 LUA: MP IS 250 1447984 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:19 fn: doit 1450000 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:21 fn: doit 1450000 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:22 fn: doit 1450000 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:25 fn: doit 1450000 LUA: Global: mp_delta = 8.5 1450000 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:29 fn: doit 1450000 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:33 fn: doit 1450000 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:34 fn: doit 1450000 LUA: Global: THR_IN = -15074 1450015 LUA: THR IN IS -15074 1450015 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:35 fn: doit 1452031 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:36 fn: doit 1452031 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:37 fn: doit 1452031 LUA: Global: THR_OUT = -15065.5 1452031 LUA: THR OUT IS -15065.5 1452031 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:38 fn: doit 1454047 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:39 fn: doit 1454078 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:42 fn: doit 1454078 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:45 1454078 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:46 1454078 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:3 fn: doit 1454078 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:5 fn: doit 1454093 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:7 fn: doit 1454093 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:8 fn: doit 1454093 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:9 fn: doit 1454109 LUA: Global: var1 = 75.323766866178 1454109 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:10 fn: doit 1454109 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:12 fn: doit 1454140 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:14 fn: doit 1454140 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:15 fn: doit 1454140 LUA: Global: MP_IN = 75.323766866178 1454156 LUA: MP IN IS 75.323766866178 1454156 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:16 fn: doit 1456172 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:18 fn: doit 1456172 LUA: MP IS 250 1456172 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:19 fn: doit 1458187 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:21 fn: doit 1458187 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:22 fn: doit 1458187 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:25 fn: doit 1458187 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:29 fn: doit 1458203 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:33 fn: doit 1458203 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:34 fn: doit 1458203 LUA: THR IN IS -15074 1458203 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:35 fn: doit 1460234 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:36 fn: doit 1460234 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:37 fn: doit 1460234 LUA: THR OUT IS -15065.5 1460234 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:38 fn: doit 1462250 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:39 fn: doit 1462265 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:42 fn: doit 1462281 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:45 1462281 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:46 1462281 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:3 fn: doit 1462281 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:5 fn: doit 1462297 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:7 fn: doit 1462297 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:8 fn: doit 1462297 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:9 fn: doit 1462297 LUA: Global: var1 = 75.323138770532 1462312 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:10 fn: doit 1462312 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:12 fn: doit 1462343 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:14 fn: doit 1462359 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:15 fn: doit 1462359 LUA: Global: MP_IN = 75.323138770532 1462359 LUA: MP IN IS 75.323138770532 1462359 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:16 fn: doit 1464375 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:18 fn: doit 1464375 LUA: MP IS 250 1464375 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:19 fn: doit 1466390 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:21 fn: doit 1466390 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:22 fn: doit 1466390 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:25 fn: doit 1466390 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:29 fn: doit 1466390 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:33 fn: doit 1466406 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:34 fn: doit 1466406 LUA: THR IN IS -15074 1466406 LUA: C:\FILES\P3D\Modules\DC6PowerSet.lua:35 fn: doit 1466828 >>> Thread killed <<< 1466828 System time = 23/08/2018 14:12:10, Simulator time = 13:42:54 (13:42Z) ********* LUA execution terminated: Log Closed ********* Hopefully that gives some more information to be working with...
Pete Dowson Posted August 23, 2018 Report Posted August 23, 2018 1 hour ago, severniae said: 1321843 LUA: THR IN IS -15074 1323859 LUA: THR OUT IS -15065.5 1329906 LUA: THR IN IS -15074 1331922 LUA: THR OUT IS -15065.5 So, your program isn't doing what you want? The differences between yo IN and OUT values are too small to have any real affect. I'm not sure, but Ithink the Sim only uses differences or 256 or more! Certainly you'd not notice those differences. And those values are close to idle. Pete
severniae Posted August 23, 2018 Author Report Posted August 23, 2018 Right on the money Pete! I edited how much I am moving the throttles and hey presto! They appear to be working as planned. I'm tweaking a little so they don't overrun but so far so good! I will have one issue once I plug the throttles back in - in that using "ipc.writeUW(0x310A, 0xC0C0)" won't work with this script as it would block the throttle settings I'm trying to change. Is there an alternative that would prevent my moving the physical throttles (ch quadrent) from effecting the script in the sim? If so great if not I'll have to get inventive! Cheers, and thanks for all the help! James
Pete Dowson Posted August 23, 2018 Report Posted August 23, 2018 43 minutes ago, severniae said: I will have one issue once I plug the throttles back in - in that using "ipc.writeUW(0x310A, 0xC0C0)" won't work with this script as it would block the throttle settings I'm trying to change. Is there an alternative that would prevent my moving the physical throttles (ch quadrent) from effecting the script in the sim? I'm really confused by this. Those two parts seem self-contradictory. What is this about plugging throttles back in? Are you actually removing them? Are you saying you want the throttle levers to control the throttles, or your plug-in, or is it that you want to switch between? For complete control, instead of assigning to the throttles, you'd need to assign your throttle lever to the running Lua plug-in as LuaValue <name>, then detect this and the value of the lever by event.param. That way you can do what you wish with the value -- send it as a Throttle control after all, or discard it, or process it some other way. But to deal with multiple throttle levers would need a separate plug-in for each. Or, and maybe best, read the axis values which would otherwise have been applied from the offsets provided for this. These are in final units (i.e 0-16383), post calibration. Please do see the full description in the details for offset 310A. You could use event.offset. Pete
Pilot1801 Posted November 25, 2019 Report Posted November 25, 2019 Hi, I am replying to this threat as I do not know if the problem has been solved. Anyway, I have got a similar issue: I want to control the throttle levers of Aerosoft Airbus A320 by an external device (self made homecockpit throttle quadrant) via lua script. I have already succeeded for the flap levers. But the throttles wil not operate. I have added the small lua script for testing throttle 1 and the log file. The lever position is written to offset 089A (by SIOC). This seems to work. Maybe, ipc.control number 66420 (throttle axis 1) is wrong.... Christoph Airbus_ttest.lua FSUIPC4.log
Pete Dowson Posted November 25, 2019 Report Posted November 25, 2019 5 hours ago, Pilot1801 said: But the throttles wil not operate. I have added the small lua script for testing throttle 1 and the log file. The lever position is written to offset 089A (by SIOC). This seems to work. Maybe, ipc.control number 66420 (throttle axis 1) is wrong.... 66420 is the best choice as this is the same as assigning in FSX itself. UNLESS you are also calibrating in FSUIPC. Try turning the calibration off (press the RESET button on the relevant Calibration tab). Calibrating in FSUIPC means it has to intercept the control (via SimConnect) at its normal level, process the value, then send it back to SmConnect at a lower level. It cannot send it back at the normal level because that would cause an infinite loop. Some aircraft, like the PMDG Boeings, also grab the value at the higher level, not from withing FSX. Probably the Airbus you are using does the same. Pete
Pilot1801 Posted November 25, 2019 Report Posted November 25, 2019 Hello Pete, thank you for your quick response. Unfortunately, RESET of throttle calibration in FSUIPC was not successful. In my SIOC script values (0-255) are multiplied by 64 and sent to fsuipc offset 089A. There is no problem obviously. Now I have run the lua script with the standard FSX airbus A321: The lever in FSX jumps to "CLB". But I am not able to shift the lever continuously between IDLE and CLB. I do not right understand what happens with the parameter - let's say 2096 - after executing ipc.control. How can I get to know which is the apropriate one for controlling thrust between CLB and IDLE e.g.? Christoph
Pete Dowson Posted November 26, 2019 Report Posted November 26, 2019 13 hours ago, Pilot1801 said: Unfortunately, RESET of throttle calibration in FSUIPC was not successful Sorry, what does that mean? You had them calibrated in FSUIPC and they still are? didn't pressing RESET change that button back to SET (the default0. if not then there's something very very seriously odd with your system. it would mean FSUIPc is not recieving mouse clicks on its buttons! 13 hours ago, Pilot1801 said: In my SIOC script values (0-255) are multiplied by 64 and sent to fsuipc offset 089A Yes, so giving the range 0-16383. BUT that controls the sim throttles and your aircraft model is apparently overriding those. Isn't that why you were sending the value on using the ipc.control function? 14 hours ago, Pilot1801 said: The lever in FSX jumps to "CLB". But I am not able to shift the lever continuously between IDLE and CLB. I do not right understand what happens with the parameter - let's say 2096 - after executing ipc.control. How can I get to know which is the apropriate one for controlling thrust between CLB and IDLE e.g.? That control needs values -16384 to +16383. You are only sending it 0 to +16383, so you only get the top half of the range. So, before sending the value, multiply it by 2 and subtract 16384. Here's my version of your earlier Lua function:: function Throttle_1_Set (off, val) th1_set = (2 * val) - 16384 ipc.control(66420, th1_set) end event.offset(0x089A, "UW", "Throttle_1_Set") Pete
Pilot1801 Posted November 26, 2019 Report Posted November 26, 2019 Hello Pete, ok - to be more precise: RESET of throttle calibration in FSUIPC was not successful in terms of it did not solve my problem. Of course, the RESET worked and I got button SET. Thank you for the re-worked script. The range from -16384 to 16383 is correct for Standard FSX Airbus! Now it works and I am able to control the lever. But unfortunately, it does not operate for the Aerosoft Airbus. Which are the parameters I have to sent via ipc.control? Christoph
Pete Dowson Posted November 26, 2019 Report Posted November 26, 2019 3 hours ago, Pilot1801 said: But unfortunately, it does not operate for the Aerosoft Airbus. Which are the parameters I have to sent via ipc.control? If the airbus doesn't work with either range, nor with normal assignment without calibration in fSUIPC or the Sim, then i'm out of ideas. Sorry. Aren't there any folks who can help on their forums? Pete
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