Jump to content
The simFlight Network Forums

Recommended Posts

Posted

Pete directed me to this thread.

So I looked at it and I'm completely baffled. I printed out all the manuals and can't find what these codes mean, like PD and PA for example.

Does anyone know where I can find information on how to learn this stuff?

Thanks.

There are methods, using 'conditional' assignment coding where you can extend the number of functions assigned

to those switches almost indefinitely.

 

I have Saitek dual throttle quadrants, giving me 12 switch positions (2 up-middle-down on each quadrant).

 

My method uses one of those 6 switches as my 'mode up' and 'mode down' controls. Activating those increments

or decrements my current 'mode number' that is stored in user-defined offset 0x66C0.

 

The value in that offset is tested against the conditional coding for my other 10 switch positions to determine

what assignment is currently being used.

 

On my A2A B-17G implementation I have 9 'modes'. That is 9 different assignments for each of the 10 up/down

switch positions.  90 functions.  I have a lua script that displays the current assignments when the mode

is changed up or down. The display in my case is set to 2 seconds. It can be any number of seconds :)

 

To implement something like this you have to edit the INI file 'by hand'. here is an example of the coding for the

first three modes for my B-17G. Note that I use the "[JoyNames] AutoAssignLetters=Yes" specification in my

INI file.  "CM6" is the FSUIPC4 assigned number for my B-17G MCRO file that defines the L:Variables I use

for that aircraft.

Note that in Set 2 (Mode 1) I have multiple operations assigned to

some of those switches....primer select, fire ext. select, etc, so that by throwing one switch I can activate other

related items. This may seem complex but once you have worked with it a bit the coding becomes quite

easy. "B66C0=0" is the 'conditional' portion of the coding. So only the lines with that 'condition' will be active IF

the value in offset 0x66C0 is 0.

[buttons.Boeing B-17G]!1=//SET 1 GENERATORS, FUEL PUMPS, FUEL VALVES, CONTROLS LOCK0=B66C0=0 PD,14,CM6:39,0 ;//TOGGLE ENG1 FUEL VALVE1=B66C0=0 PD,16,CM6:40,0 ;//TOGGLE ENG2 FUEL VALVE2=B66C0=0 PD,18,CM6:41,0 ;//TOGGLE ENG3 FUEL VALVE3=B66C0=0 PA,0,CM6:42,0 ;//TOGGLE ENG4 FUEL VALVE4=B66C0=0 PD,15,C66340,0 ;//TOGGLE FUEL PUMP 15=B66C0=0 PD,17,C66341,0 ;//TOGGLE FUEL PUMP 26=B66C0=0 PD,19,C66342,0 ;//TOGGLE FUEL PUMP 37=B66C0=0 PA,1,C66343,0 ;//TOGGLE FUEL PUMP 48=B66C0=0 PA,2,CM6:45,0 ;//CONTROLS LOCK OFF9=B66C0=0 PA,2,CM6:46,0 ;//CONTROLS LOCK OFF10=B66C0=0 PA,3,CM6:45,1 ;//CONTROLS LOCK ON11=B66C0=0 PA,3,CM6:46,1 ;//CONTROLS LOCK ON!2=//SET 2 STARTERS ENG 1 - 4 CLEAR START & MESH SET 4 PRIMER & PUMP - ALL MACROS20=B66C0=1 PD,14,CM6:5,0 ;//STARTER ENG 1 - SET PRIMER TO ENG 1 MACRO21=B66C0=1 PD,16,CM6:5,2 ;//STARTER ENG 2 - SET PRIMER TO ENG 2 MACRO22=B66C0=1 PD,18,CM6:6,2 ;//STARTER ENG 3 - SET PRIMER TO ENG 3 MACRO23=B66C0=1 PA,0,CM6:6,0 ;//STARTER ENG 4 - SET PRIMER TO ENG 4 MACRO24=B66C0=1 PD,15,CM6:7,0 ;//MESH ENG 125=B66C0=1 PD,17,CM6:7,2 ;//MESH ENG 226=B66C0=1 PD,19,CM6:8,2 ;//MESH ENG 327=B66C0=1 PA,1,CM6:8,0 ;//MESH ENG 428=B66C0=1 PA,2,CM6:5,1 ;//CLEAR STARTER 1/229=B66C0=1 PA,2,CM6:6,1 ;//CLEAR STARTER 3/430=B66C0=1 PA,2,CM6:7,1 ;//CLEAR MESH 1/231=B66C0=1 PA,2,CM6:8,1 ;//CLEAR MESH 3/432=B66C0=1 PA,2,CM6:30,0 ;//SET PRIMER SELCT TO OFF33=B66C0=1 PA,3,CM6:31,1 ;//ACTIVATE PRIMER34=B66C0=1 PD,14,CM6:30,1 ;//SET PRIMER SELCT TO ENG 135=B66C0=1 PD,16,CM6:30,2 ;//SET PRIMER SELCT TO ENG 236=B66C0=1 PD,18,CM6:30,3 ;//SET PRIMER SELCT TO ENG 337=B66C0=1 PA,0,CM6:30,4 ;//SET PRIMER SELCT TO ENG 438=B66C0=1 PD,14,CM6:37,1 ;//SET FIRE EXT. SWITCH TO ENG 139=B66C0=1 PD,16,CM6:37,2 ;//SET FIRE EXT. SWITCH TO ENG 240=B66C0=1 PD,18,CM6:37,3 ;//SET FIRE EXT. SWITCH TO ENG 341=B66C0=1 PA,0,CM6:37,4 ;//SET FIRE EXT. SWITCH TO ENG 442=B66C0=1 PA,2,CM6:37,0 ;//SET FIRE EXT. SWITCH TO OFF!3=//SET 3 MAGNETOS, INVERTERS50=B66C0=2 RD,14,Cx11000892,x00030001 ;//MAG1 INC51=B66C0=2 RD,15,Cx21000892,x00000001 ;//MAG1 DEC52=B66C0=2 RD,16,Cx1100092A,x00030001 ;//MAG2 INC53=B66C0=2 RD,17,Cx2100092A,x00000001 ;//MAG2 DEC54=B66C0=2 RD,18,Cx110009C2,x00030001 ;//MAG3 INC55=B66C0=2 RD,19,Cx210009C2,x00000001 ;//MAG3 DEC56=B66C0=2 RA,0,Cx11000A5A,x00030001 ;//MAG4 INC57=B66C0=2 RA,1,Cx21000A5A,x00000001 ;//MAG4 DEC58=B66C0=2 PA,2,CM6:38,0 ;//INVERTER SWITCH ON59=B66C0=2 PA,3,CM6:38,2 ;//INVERTER SWITCH OFF60=B66C0=2 UA,3,CM6:38,1 ;//INVERTER SWITCH NEUTRAL!10=//CONTROL SET (MODE) INCREMENT/DECREMENT161=PA,4,Cx510066C0,x00080001 ;//INCREMENT 0X66C0 VALUE BY 1, MAX 8 THEN 0, CYLCLIC162=PA,5,Cx610066C0,x00080001 ;//DECREMENT 0X66C0 VALUE BY 1, MIN 0 THEN 8, CYLCLIC
Paul
Posted

I have my FSUIPC4 set to use letters for joystick assignments instead of the default numbers,

so in the above examples the second letter of the 2-letter code is the Joy# or JoyName as a letter.

This prevents problems should Windows re-assign a different number to a Joystick or controller.

 

This statement in the FSUIPC4.ini file forces the use of Letters instead of Numbers.

[JoyNames]
AutoAssignLetters=Yes

 

The first letter of the pair:

 

'P' is 'pulse when pressed, a single execution of the following command'

'R' is repeat while held'

'U' is 'pulse when released, the command is executed when the button is released'

 

'PD,14,' - execute the command when Button 14 of Joystick 'D' is pressed.

'UA,3,' - execute the command when Button 3 of Joystick 'A' is released.

 

The 'conditional' part of the above statements such as 'B66C0=0' indicates that the command

is executed ONLY when the value in offset 0x66C0' is 0.

The conditional code of 'B66C0=2' indicates that the command is only executed if the value in

offset 0x66C0 is 2.

 

I use the 'user-defined' offsets of 0x66C0 to 0x66FF for various purposed. In the cases above,

0x66C0 acts as my 'MODE' switch.

 

161=PA,4,Cx510066C0,x00080001 ;//INCREMENT 0X66C0 VALUE BY 1, MAX 8 THEN 0, CYLCLIC
162=PA,5,Cx610066C0,x00080001 ;//DECREMENT 0X66C0 VALUE BY 1, MIN 0 THEN 8, CYLCLIC

 

The 1st line above is 'unconditional' in that whenever Button 4 of Joystick A is pressed, the value

in offset 0x66C0 is incremented by 1, changing to the next 'MODE'  (The Cx510066C0,x00080001 part)

 

This is analogous to using the 3-position mode switch on the Saitek gear, but this method allows for

more 'MODES' that one could ever need/use. Up to 256 possible 'modes' in this case as 0x66C0 is

an unsigned byte (8 bits).

 

The 2nd line decrements the current mode by 1. The coding used here allows for 9 modes as the

CYCLIC feature counts up to 8 from 0, then rolls over to 0, or counts down from 8 to 0 and

rolls over to 8.

 

 

The P/D/U codes are explained on Page 19 of the "FSUIPC4 for Advanced Users.pdf".

Page 25 begins the discussion on using offsets in conditional statements.

 

This is the document you should be studying when it comes to setting up custom controls and

just plain understanding the operations that are possible with FSUIPC4.

 

Paul

  • Upvote 1
Posted

May I ask Paul, where did you learn all this? Did you have formal training? I have ben googling all day and night and looking at YouTubes but I can't find anything that even comes close to a method of leaning this stuff.

What you typed above seems to make some kind of sense but it's still too much for me. I have no knowledge of scripting and programming at all. All I know how to do is fly as I have been in real-world aviation all my life.

I am getting frustrated and might have to give it up and stick with the SST software and send back the X52. If I can't figure out how to get the mode switch to work I have no need for FSUIPC becuase I'll lose 19 button assignments.

Posted

May I ask Paul, where did you learn all this? Did you have formal training? I have ben googling all day and night and looking at YouTubes but I can't find anything that even comes close to a method of leaning this stuff.

What you typed above seems to make some kind of sense but it's still too much for me. I have no knowledge of scripting and programming at all. All I know how to do is fly as I have been in real-world aviation all my life.

 

I think you are making this too complicated. It is much much simpler than you appear to be imagining.

 

This stuff is neither scripting nor programming. The lines are simply slightly more elaborate versions of the assignment parameters which FSUIPC normally automatically puts into your settings file (FSUIPC4.INI) when you make an assignment. The parameters are simply formatted values from the assignments, and the format is described in the Advanced User's document installed with FSUIPC. See the FSUIPC Documents folder, inside your FS Modules folder.

 

Each parameter line is one parameter, and is free standing. The only "scripting" type of relationship is that FSUIPC executes the lines in order of the parameter number, the one to the left of the first =.

 

If you look at your current FSUIPC4.INI file you will see you already have the basic lines. All the above more complex looking ones have got extra are conditions, the "B66C0=n" parts, which just say "only do this is byte 66C0 equals n". 66C0 is a user offset and can be set and changed by other FSUIPC assigned controls, those in the "Offset byte" area of the drop down lists.

 

Google and YouTube are not likely to be dealing with individual parameter formats for a program.

 

Pete

Posted

I think you are making this too complicated. It is much much simpler than you appear to be imagining.

 

This stuff is neither scripting nor programming. The lines are simply slightly more elaborate versions of the assignment parameters which FSUIPC normally automatically puts into your settings file (FSUIPC4.INI) when you make an assignment. The parameters are simply formatted values from the assignments, and the format is described in the Advanced User's document installed with FSUIPC. See the FSUIPC Documents folder, inside your FS Modules folder.

 

Each parameter line is one parameter, and is free standing. The only "scripting" type of relationship is that FSUIPC executes the lines in order of the parameter number, the one to the left of the first =.

 

If you look at your current FSUIPC4.INI file you will see you already have the basic lines. All the above more complex looking ones have got extra are conditions, the "B66C0=n" parts, which just say "only do this is byte 66C0 equals n". 66C0 is a user offset and can be set and changed by other FSUIPC assigned controls, those in the "Offset byte" area of the drop down lists.

 

Google and YouTube are not likely to be dealing with individual parameter formats for a program.

 

Pete

Hi Pete and thanks.  But I have no idea what an offset it, or what B66C0=n means, or an Offset byte is.

I'm going through your manual as I type this to try to get this stuff set up and I even notice you mention on page 17 "for programmers among you".  I'm not a programmer, that's why I'm struggling.  Please remember this is all brand new to me, I do not have a body of knowledge about this that most users do.  But I am trying and plodding along.

All I wish is that I could have the same functionality in FSUIPC with that stupid Mode switch so I can have triple button assignments.

In the Windows 7 Devices window it sees the mode switch move but it's not a number, just a set of three horizontal bars that shows where it is when rotated.

I will spend the day mucking about with it and looking at that ini file and try to figure things out but I fear that unless someone comes to my rescue I will not be able to use FSUIPC.

I'd gladly pay someone to help me get this set up.

Best regards and thanks for being patient.

Posted

Right, I've spent the morning going step by step with the manual.  I have assigned functions to buttons.

I do have Enable Controller" unchecked in FSX's settings but I am using the commands under the Buttons/Keys tab in FSX.

Things are working but I lost 2/3 of my yoke & throttle switch functionality.

So I have opened the FSUIPC.ini file and copied the text so far.

I have no idea what these codes mean so perhaps you could help me?

Or where would I find more information about them?

And how exactly do I get the mode switch to be recognized so I can use it as a shift to allow me to program the same buttons?

 

[JoyNames]

AutoAssignLetters=Yes
0=Saitek Pro Flight Yoke
0.GUID={6E68D0C0-70D7-11E4-8003-444553540000}
1=Saitek Pro Flight Rudder Pedals
1.GUID={BD42D1F0-70D7-11E4-8005-444553540000}
A=Saitek Pro Flight Yoke
B=Saitek Pro Flight Rudder Pedals
 
[WideServer]
WideFSenabled=Yes
 
[Monitor]
[Axes]
PollInterval=10
RangeRepeatRate=10
 
[buttons]
PollInterval=25
ButtonRepeat=20,10
3=RA,2,K50,11
4=RA,3,K49,11
6=PA,1,K90,8
7=PA,14,K117,8
8=PA,15,K119,8
9=PA,17,K71,8
10=PA,16,K190,10
11=PA,0,K145,8
12=PA,6,K76,10
13=PA,7,K66,8
14=PA,4,K191,9
15=PA,5,K191,8
16=PA,19,K80,9
17=PA,18,K49,8
Posted

RA,2 = when Controller "A" button 2 is held, the following command/control is executed continuosly.

 

K50,11 = the code for the KeyStroke combination  Shift+Control+2  (Page 20 and 21 of the Advanced Users PDF)

 

So:

3=RA,2,K50,11 ----> Send the keystrokes Shift+Control+2 continuosly as long as Button 2 of the Saitek Yoke is pressed.

 

You really need to become intimately familiar with the contents of the "FSUIPC4 for Advanced Users.pdf" in your FSX\Modules\Documents folder. Even as an 'experienced user' I find the need to refer to that document often, along with the other documents included with the FSUIPC4 installation.

 

It is good that you chose to use the "AutoAssignLetters=Yes" function as this will prevent issues from occuring if Windows decides to re-number controllers for whatever reason. The Saitek Yoke will ALWAYS be Controller "A" and the Saitek Rudder Pedals will ALWAYS be Controller "B".

 

You might also want to consider using the "Profiles" option for the particular baircraft you are setting up the controls for, or use the "Aircraft Specific" checkbox in the FSUIPC4 menus particularly if you will be setting up controls for many different aircraft types.

 

 Paul

Posted

Thanks Paul, it looks like it's a matter of matching up what's in the advanced document with what is shown in the ini.

 

Becoming intimately familiar with the contents of the "FSUIPC4 for Advanced Users.pdf is daunting.  That's a lot of stuff to cross reference. 

 

I'm going to try to keep at it but I see frustration in my future and just giving up the whole works and staying with Saitek's SST.

 

I've been at it all day and I still have no idea what I'm doing.  I haven't even gotten to the point where I assign axes yet.  The regular manual is over my head.  It really is.

I don't know how you guys do it.

  • 5 weeks later...
Posted

RA,2 = when Controller "A" button 2 is held, the following command/control is executed continuosly.

 

K50,11 = the code for the KeyStroke combination  Shift+Control+2  (Page 20 and 21 of the Advanced Users PDF)

 

So:

3=RA,2,K50,11 ----> Send the keystrokes Shift+Control+2 continuosly as long as Button 2 of the Saitek Yoke is pressed.

 

You really need to become intimately familiar with the contents of the "FSUIPC4 for Advanced Users.pdf" in your FSX\Modules\Documents folder. Even as an 'experienced user' I find the need to refer to that document often, along with the other documents included with the FSUIPC4 installation.

 

It is good that you chose to use the "AutoAssignLetters=Yes" function as this will prevent issues from occuring if Windows decides to re-number controllers for whatever reason. The Saitek Yoke will ALWAYS be Controller "A" and the Saitek Rudder Pedals will ALWAYS be Controller "B".

 

You might also want to consider using the "Profiles" option for the particular baircraft you are setting up the controls for, or use the "Aircraft Specific" checkbox in the FSUIPC4 menus particularly if you will be setting up controls for many different aircraft types.

 

 Paul

Hi Paul,

 

I have read your many posts on this forum as well as a couple of others. I cannot thank you enough for all the knowledge you have imparted selflessly on a regular basis. I use your offset 066C0 method of conditional button programming on a couple of jets I fly, but 3 is about the limit of button states I can just about remember. i know you posted some time back about how you use a snippet of code to display your new controls on screen when you switch modes. I have tried various ways of implementing this, but with absolutely no success. I have modified one of Pete's examples to display certain feedback info on screen but cannot for the life of me adapt it to work with offset button modes.

I would really appreciate it if you could share the code you use to perform this highly useful function.

 

Hopefully,

Paul

Posted

Hello Paul,

 

Here is the Lua script I use for displaying my control mappings for the A2A Piper Cherokee 180.

 

When offset 0x66C0 changes (the 'mode' number for the conditional statements) it calls (executes)

the function to display the current mode data in a Lua Display window whose position and size are

set by "ipc.setdisplay( )" line.

 

The function then displays the lines that match the current mode number (values in 0x66C0)


function DispP180(offs, val)

-- Adjust the Control Set to a 1 to 8 range. val is 0 to 7 in 0x66C0

  conset=val+1

-- Define the positon and size of the Lua Display on the screen

  ipc.setdisplay(870, 550, 500, 100)

  if val == 0 then

   ipc.display("MAG LEFT _ MAG RIGHT _ FUEL PUMP _ BATTERY     _ AVIONICS ON\nMAGS OFF _ MAGS BOTH _ STARTER  _ PRIMER      _ AVIONICS OFF\nControl Set = "..conset, 10)

  end

  if val == 1 then

   ipc.display("BEACON _ LAND LIGHTS  _ TAXI LT _ NAV/INS LT _ STROBE\nPITOT    _ FUEL CUTOFF   _ FUEL L  _ FUEL R        _ SPARE\nControl Set = "..conset, 10)

  end

  if val == 2 then

   ipc.display("AP CHART _ RED LT    _ DOME LT _  HEAT    _ VENT\nANR75     _ RADIO LT _ HPHONES _  DEFROST _ VENTS\nControl Set = "..conset, 10)

  end

  if val == 3 then

   ipc.display("NAV1 SWAP _ COM1 SWAP  _ COM/NAV1 PWR _ ADF PWR _ DME POWER\nNAV2 SWAP _ COM2 SWAP  _ COM/NAV2 PWR _ GPS PWR _ DME MODE\nControl Set = "..conset, 10)

  end

  if val == 4 then

   ipc.display("AP ON     _ AP ALT _ HDG DEC _ HDG INC  _ ALT UP\nAP MODE _ SPARE  _ TURN LT  _ TURN RT  _ ALT DN\nControl Set = "..conset, 10)

  end

  if val == 5 then

   ipc.display("OBI 1 INC _ OBI 2 INC  _ ADF CARD INC _ NAV/GPS _ APPR\nOBI 1 DEC _ OBI 2 DEC _ ADF CARD DEC _ HDG      _ REV\nControl Set = "..conset, 10)

  end

  if val == 6 then

   ipc.display("NAV1 SPKR _ NAV2 SPKR _ DME SPKR _ MKR AUDIO _ NAV1 IDENT\nNAV1 HDPH _ NAV2 HDPH _ DME HDPH _ ADF AUDIO  _ NAV IDENT\nControl Set = "..conset, 10)

  end

  if val == 7 then

   ipc.display("MKR LAMP TEST    _ TEL SPKR _ COM1 SPKR _ COM2 SPKR _ XPDR MODE\nMKR SENSITIVITY _ TEL HDPH _ COM1 HDPH _ COM2 HDPH  _ XPDR IDENT\nControl Set = "..conset, 10)

  end

end


event.offset(0x66C0,"UB","DispP180")

This script handles 8 'modes'. For any more or less, simply follow the method above.

 

Note that I use 2 lines to display my 10 switch mappings on my Saitek Dual Throttle quads. Switches 11 & 12

are my 'mode increment and decrement' switches. So, I have 5 switches in the upper row and 5 below them,

thus I format the display readout to show the 5 top and 5 bottom mappings.

 

Note that the character pair \n  causes a new line to be started. I insert the necessary number of spaces

to align the upper and lower display fields to get a display like this below:

 

MAG LEFT  _ MAG RIGHT  _ FUEL PUMP _ BATTERY     _ AVIONICS ON
MAGS OFF _ MAGS BOTH _ STARTER     _ PRIMER       _ AVIONICS OFF
Control Set = 1

 

I assume you alreadt have the code in your INI file to increment/decrement the 0x66C0 value but I will show

it here where I use switch 4 & 5 on my "A" controller (one of my Saitek Throttle Quads) to do the mode switching.

 

200=PA,4,Cx510066C0,x00070001 ;//CONTROL SET INC Max = 7 Step = 1
201=PA,5,Cx610066C0,x00070001 ;//CONTROL SET DEC Max = 7 Step = 1

 

The last part of each 'ipc.display' statement   \nControl Set = "..conset, 10) displays the current  mode number (conset)

in the range 1 to 8 while the actual input value is 0 to 7.  Note the new line \n then the text Control Set = and

a single quote " which closes out the literal text display which began at the first single quote after  ipc.display(

 

The two periods before conset are required to have the value of conset displayed. The 10 after the comma

defines the time for the text lines to be displayed, in seconds.

 

Note that the event.offset statement must be located AFTER the function that it calls. In the above case there

is only one but I usually have several functions defined for a given aircraft to display data as events occur

or things like rudder trim are adjusted. Here is an example:

  function Disp_Rud_Trim(control,Dummy)

   if Rud_Trim_last == nil then Rud_Trim_last = 0 end

    RTrim_in = ipc.readSW(0x0C04)

    Rud_Trim = (round(RTrim_in/163.83))/10

-- Only display the trim value if it is different from the last one by 0.05
-- to prevent displaying values caused by 'jitter' or noise. Increase the
-- test value from 0.05 as necessary if you have a very noisy rotary!

	 if (Rud_Trim > (Rud_Trim_last + 0.05)) or (Rud_Trim < (Rud_Trim_last - 0.05)) then

       ipc.display("Rud Trim = "..Rud_Trim, 1)

	 end

	Rud_Trim_last = Rud_Trim

  end

-- rounds the integer
  function round(num)
	num = tonumber(num)
	if num == nil then return 0 end
    if num >= 0 then return math.floor(num+.5)
    else return math.ceil(num-.5) end
  end
  
event.offset(0x0C04,"SW","Disp_Rud_Trim")

Note that lines which start with --  are interpreted as comments.. I believe that they can also occur at the end of

a line as well but I tend to put my comments on separate lines for ease in reading the code.

 

So, if I included that Rudder Trim function in the same script as the Control Set display the two event statements would

be located below all of the function code. An example from my script showing the triggers for several functions:

event.offset(0x66C0,"UB","DispP180")

event.control(65607,"Disp_El_Trim")

event.control(65615,"Disp_El_Trim")

event.offset(0x0C04,"SW","Disp_Rud_Trim")

event.offset(0x66D0,"SW","Mixture_Lever")

 

The two elevator trim events are for sensing the trim UP and trim DOWN events which I have mapped to switches

whereas the rudder trim event is driven by an axis (a rotary) and the mixture by a lever which is sent to the

user defined offset 0x66D0.

 

The above examples and info should give you some more insight in to using more of the power of FSUIPC4

programming and the Lua scripts.

 

Let me know if you have any questions or problems implementing  the above functions.

 

Glad to be able to help!

 

BTW, I see you are in Galway. My ex-wife lives in that area:

Tinageeragh
Kilnadeema
Loughrea, Co. Galway

 

 Paul

Posted

Thank you so much Paul, you really couldn't have been more thorough, but that seems typical of you. I don't want to go overboard, but you truly are an invaluable asset to the Flight Sim community as far as I can tell in my 8 or 9 months since I got serious about FSX.

I honestly don't know how you manage 8 or 9 modes on the one plane- I had to print out a diagram of my yoke and quadrant for each of the 3 modes when I first implemented your method. And it was after seeing what was possible by delving into the more advanced depths of FSUIPC. Just out of interest, you seem to come from a Naval background- is the where you learned to program or are you self-taught?

Funny that you ex-wife lives near Loughrea, if you've ever visited you'll know that it's only about a 20-30 min drive from Galway. I'd be interested to hear if you ever visited our little coastal town. Quite a contrast to California, weather-wise in any case. I've never made it to the West Coast myself, Chicago being the furthest I've managed. I love my ocassional visits over there, I've been to Flushing Meadows for the tennis twice- I'd take it over Wimbledon any day!

Anyway, I've rambled on as usual, so I just want to thank you so much again. I may have a follow up question or two, but I'll definitely print it out and study and experiment with it long and hard- it's the only way to really learn (says the guy who straight out asked for the code in the first place!!).

Best wishes and I hope to chat to you again,

Paul

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
×
×
  • Create New...

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.