Jump to content
The simFlight Network Forums
varadero129

Can an axis change its function depending on a button state?

Recommended Posts

Dear Pete,

I am flying the PMDG 737NGX with FSX and FSUIPC4. I have a Saitek pro flight yoke system with a throttle quadrant which only has 3 axis levers (like on a Cessna, one black throttle, one blue for propeller pitch, and one red for the mixture control).

Now I want to use the first two levers for throttle control on the 737 (engine 1, engine 2) and for the third lever I have multiple choices what to use it for. Steering tiller on the ground, or flaps lever, or spoiler axis.

Actually, it would be great to use it for all of the above. E.g. I have a mode selector switch button on the yoke with 3 positions (working as one of 3 joystick buttons are always pressed), and depending on which button is pressed, the third lever could have the different functionality.

Is that possible to do this with FSUIPC? Or is there any chance that a newer version will make this possible?

Regards,

Tamas

Share this post


Link to post
Share on other sites

Now I want to use the first two levers for throttle control on the 737 (engine 1, engine 2) and for the third lever I have multiple choices what to use it for. Steering tiller on the ground, or flaps lever, or spoiler axis.

Actually, it would be great to use it for all of the above. E.g. I have a mode selector switch button on the yoke with 3 positions (working as one of 3 joystick buttons are always pressed), and depending on which button is pressed, the third lever could have the different functionality.

Is that possible to do this with FSUIPC?

Is the mode selector visible in FSUIPC's Buttons & Switches assignments tab? If it is then it would be reasonably easy to program what you want as a Lua plug-in. If not it might get a little more complex, using the USB HID programming facilities in the Lua com library just to determine the position of the mode switch.

Have you checked whether something like LINDA can help with this? (See sticky thread above).

Otherwise I can help (assuming the mode selector IS accessible one way or another), but not until I return from Christmas/New Year holiday on January 6th, 2012. I leave this Thursday morning.

Regards

Pete

Share this post


Link to post
Share on other sites

Is the mode selector visible in FSUIPC's Buttons & Switches assignments tab?

Yes, it is. It can see the three mode states as Joy#1 button #8, 9 and 10.

Have you checked whether something like LINDA can help with this? (See sticky thread above).

Not yet, I am completely new to LUA programming, so it is likely to have questions. Can you help me with some advise on which part of the LINDA doumentation is relevant for my goals?

Otherwise I can help (assuming the mode selector IS accessible one way or another), but not until I return from Christmas/New Year holiday on January 6th, 2012. I leave this Thursday morning.

Appreciate it in advance :cool:

Regards,

Tamas

Share this post


Link to post
Share on other sites

Yes, it is. It can see the three mode states as Joy#1 button #8, 9 and 10.

Okay, then it should be easy enough with a plug-in.

I am completely new to LUA programming, so it is likely to have questions.

I can help but not till I return.

Can you help me with some advise on which part of the LINDA doumentation is relevant for my goals?

Sorry, I don't use and am not involved with Linda, and do not have a copy of the documentation. I think they provide support via a website? I don't realy know if its handles axes, it might only be button programming.

Regards

Pete

Share this post


Link to post
Share on other sites

Okay, then it should be easy enough with a plug-in.

I can help but not till I return.

Sorry, I don't use and am not involved with Linda, and do not have a copy of the documentation. I think they provide support via a website? I don't realy know if its handles axes, it might only be button programming.

Regards

Pete

Oops, I thought LINDA was also your development. All right Pete, have a nice Christmas holiday and Happy New Year to you.

Please return to this topic when you are back.

Regards,

Tamas

Share this post


Link to post
Share on other sites

Please return to this topic when you are back.

Actually, I may not need to. I thought of a very simple way to do this sort of thing, very flexibly. First, make sure your FSUIPC installation is up to date -- latest versions are supplied in the Download Links subforum.

Then save the following as, say, "multiaxis.lua" in your FS Modules folder:

function applyaxis(val)
cntrl = ipc.readUD(0x66c0)
ipc.control(cntrl,val)
end

event.param("applyaxis")
[/CODE]

and edit the FSUIPC INI file, adding this section:

[b][Auto][/b]

[b]1=Lua multiaxis[/b]

(if you already have an [Auto] section, add the line with the next available number).

Now run FS. Go to FSUIPC axis assignments and assign the axis you want to switch as an "FS control", choosing this one from the drop-down list:

[b]Luavalue multiaxis[/b]

Then go to the Buttons assignments and assign the buttons you want to use for selecting the axis use, on the right-hand side, as follows:

[b]Offset dword set,[/b] with [i]Offset[/i][b]x66c0 [/b]and the [i]Parameter[/i] set to the value of the FS or FSUIPC control you want the axis to send.

The controls are listed in a List installed in your FSUIPC Documents folder, in the Modules folder. You can use any control, but obviously only axis controls make much sense. Those are all either named [b]"Axis ..."[/b] or end in "[b]set[/b]". There are more controls, added by FSUIPC, and listed in the FSUIPC Advanced User's guide. [b]BUT[/b] the ones you really want, for the purposes you chose, are currently only published in the "Changes" document included with the recent FSUIPC updates (see Download Links). They are numbered [b]64101 to 64144,[/b] and the ones you want are:

[b]64136 steering tiller[/b]

[b]64123 flaps[/b]

[b]64122 spoilers/speed brakes[/b]

Once you've done all this, exit to FS, select a mode using the buttons/switches you assigned above, then go into FSUIPC joystick calibrations and calibrate the axis for that selection. You'll need to exit to change the mode to calibrate each separately -- FSUIPC doesn't obey the button presses when in the options (for pretty obvious reasons).

Note that this technique is extensible for any number of different uses for the same axis and, by using different offsets (66C4 is the next -- the range 66C0 to 66FF is free for users, giving 16 possible DWORDs to use) and renamed versions of "multiaxis.lua", can be applied to any and all axes.

I've tested all this with FSUIPC [b]4.754[/b] and FSX. Have fun!

Regards

Pete

  • Like 1

Share this post


Link to post
Share on other sites

Thank you very much. I will test this and tell you how it worked.

Regards,

Tamas

Actually, I may not need to. I thought of a very simple way to do this sort of thing, very flexibly. First, make sure your FSUIPC installation is up to date -- latest versions are supplied in the Download Links subforum.

Then save the following as, say, "multiaxis.lua" in your FS Modules folder:

function applyaxis(val)
cntrl = ipc.readUD(0x66c0)
ipc.control(cntrl,val)
end

event.param("applyaxis")
[/CODE]

and edit the FSUIPC INI file, adding this section:

[b][Auto][/b]

[b]1=Lua multiaxis[/b]

(if you already have an [Auto] section, add the line with the next available number).

Now run FS. Go to FSUIPC axis assignments and assign the axis you want to switch as an "FS control", choosing this one from the drop-down list:

[b]Luavalue multiaxis[/b]

Then go to the Buttons assignments and assign the buttons you want to use for selecting the axis use, on the right-hand side, as follows:

[b]Offset dword set,[/b] with [i]Offset[/i][b]x66c0 [/b]and the [i]Parameter[/i] set to the value of the FS or FSUIPC control you want the axis to send.

The controls are listed in a List installed in your FSUIPC Documents folder, in the Modules folder. You can use any control, but obviously only axis controls make much sense. Those are all either named [b]"Axis ..."[/b] or end in "[b]set[/b]". There are more controls, added by FSUIPC, and listed in the FSUIPC Advanced User's guide. [b]BUT[/b] the ones you really want, for the purposes you chose, are currently only published in the "Changes" document included with the recent FSUIPC updates (see Download Links). They are numbered [b]64101 to 64144,[/b] and the ones you want are:

[b]64136 steering tiller[/b]

[b]64123 flaps[/b]

[b]64122 spoilers/speed brakes[/b]

Once you've done all this, exit to FS, select a mode using the buttons/switches you assigned above, then go into FSUIPC joystick calibrations and calibrate the axis for that selection. You'll need to exit to change the mode to calibrate each separately -- FSUIPC doesn't obey the button presses when in the options (for pretty obvious reasons).

Note that this technique is extensible for any number of different uses for the same axis and, by using different offsets (66C4 is the next -- the range 66C0 to 66FF is free for users, giving 16 possible DWORDs to use) and renamed versions of "multiaxis.lua", can be applied to any and all axes.

I've tested all this with FSUIPC [b]4.754[/b] and FSX. Have fun!

Regards

Pete

Share this post


Link to post
Share on other sites

Pete, yes, it works. I would not have been able to figure this out by myself. I am really happy now, you gave me the perfect solution to my wish and within a few hours. You are awsome, really! Thank you again. :mrgreen:

Regards,

Tamas

Thank you very much. I will test this and tell you how it worked. Regards, Tamas

Share this post


Link to post
Share on other sites

Is the mode selector visible in FSUIPC's Buttons & Switches assignments tab? If it is then it would be reasonably easy to program what you want as a Lua plug-in. If not it might get a little more complex, using the USB HID programming facilities in the Lua com library just to determine the position of the mode switch.

Have you checked whether something like LINDA can help with this? (See sticky thread above).

Otherwise I can help (assuming the mode selector IS accessible one way or another), but not until I return from Christmas/New Year holiday on January 6th, 2012. I leave this Thursday morning.

Regards

Pete

Hello and Happy New Year,

I'm running FS 2004 and wonder if it's possible making different assignments for the same button by changing mode. I also have the Saitek Yoke and throttle quadrants.

Regards,

Carl

Share this post


Link to post
Share on other sites

Hello and Happy New Year,

I'm running FS 2004 and wonder if it's possible making different assignments for the same button by changing mode. I also have the Saitek Yoke and throttle quadrants.

Regards,

Carl

I run FSX but I would think that the same capabilities would be available with the registered version of FSUIPC for

FS9 with regards to button programming.

I use the "user-defined" offset, 66C0, as a "mode" selector by assigning a button to increment the contents

of that location cyclically.

The number in that location is used to selectively enable one command from several for the same switch/button using the

programming features described in the Advanced Users Guide.

I have a Saitek Pro yoke and dual throttle quadrants and have set up the switches onn the throttle quads for various

aircraft. Mainly the A2A B-17G, B-377, P-47 and Spitfire.

For the B-17G I have 8 "modes" selected by the two switches "closest to me" on my left side. These increment and decrement location 66C0. Below is the layout of the switches and the controls they operate in each mode.

The code to facilitate this is entered by editing the FSUIPX ini file in a text editor. Here is a sample from my INI for the B-17G

showing the coding for the 6 switches on the left quadrant and 3 on the right for the first 4 "modes:


[Buttons.Boeing B-17G]
!1=//SET 1 GENERATORS, FUEL PUMPS, FUEL VALVES, CONTROLS LOCK
0=B66C0=0 PD,14,CM6:39,0 ;//TOGGLE ENG1 FUEL VALVE
1=B66C0=0 PD,16,CM6:40,0 ;//TOGGLE ENG2 FUEL VALVE
2=B66C0=0 PD,18,CM6:41,0 ;//TOGGLE ENG3 FUEL VALVE
3=B66C0=0 PA,0,CM6:42,0 ;//TOGGLE ENG4 FUEL VALVE
4=B66C0=0 PD,15,C66340,0 ;//TOGGLE FUEL PUMP 1
5=B66C0=0 PD,17,C66341,0 ;//TOGGLE FUEL PUMP 2
6=B66C0=0 PD,19,C66342,0 ;//TOGGLE FUEL PUMP 3
7=B66C0=0 PA,1,C66343,0 ;//TOGGLE FUEL PUMP 4
------------------------
!2=//SET 2 STARTERS ENG 1 - 4 CLEAR START & MESH SET 4 PRIMER & PUMP - ALL MACROS
20=B66C0=1 PD,14,CM6:5,0 ;//STARTER ENG 1 - SET PRIMER TO ENG 1 MACRO
21=B66C0=1 PD,16,CM6:5,2 ;//STARTER ENG 2 - SET PRIMER TO ENG 2 MACRO
22=B66C0=1 PD,18,CM6:6,2 ;//STARTER ENG 3 - SET PRIMER TO ENG 3 MACRO
23=B66C0=1 PA,0,CM6:6,0 ;//STARTER ENG 4 - SET PRIMER TO ENG 4 MACRO
24=B66C0=1 PD,15,CM6:7,0 ;//MESH ENG 1
25=B66C0=1 PD,17,CM6:7,2 ;//MESH ENG 2
26=B66C0=1 PD,19,CM6:8,2 ;//MESH ENG 3
27=B66C0=1 PA,1,CM6:8,0 ;//MESH ENG 4
----------------------------
!3=//SET 3 MAGNETOS, INVERTERS
50=B66C0=2 RD,14,Cx11000892,x00030001 ;//MAG1 INC
51=B66C0=2 RD,15,Cx21000892,x00000001 ;//MAG1 DEC
52=B66C0=2 RD,16,Cx1100092A,x00030001 ;//MAG2 INC
53=B66C0=2 RD,17,Cx2100092A,x00000001 ;//MAG2 DEC
54=B66C0=2 RD,18,Cx110009C2,x00030001 ;//MAG3 INC
55=B66C0=2 RD,19,Cx210009C2,x00000001 ;//MAG3 DEC
56=B66C0=2 RA,0,Cx11000A5A,x00030001 ;//MAG4 INC
57=B66C0=2 RA,1,Cx21000A5A,x00000001 ;//MAG4 DEC
-------------------------------------
!4=//SET 4 GENERATORS, RADIO POWER, PITOT HEAT, MASTER IGN, APU, BATTERIES
70=B66C0=3 PD,14,CM6:13,0 ;//TOGGLE GENERATOR 1 MACRO
71=B66C0=3 PD,15,CM6:64,1 ;//RADIO POWER
72=B66C0=3 PD,16,CM6:14,0 ;//TOGGLE GENERATOR 2
73=B66C0=3 PD,17,C65858,0 ;//PITOT HEAT
74=B66C0=3 PD,18,CM6:15,0 ;//TOGGLE GENERATOR 3
75=B66C0=3 PD,19,C66535,0 ;//MASTER IGNITION TOGGLE
76=B66C0=3 PA,0,CM6:16,0 ;//TOGGLE GENERATOR 4
77=B66C0=3 PA,1,CM6:32,0 ;//APU MACRO
----------------------------------------
There are 4 more "sets after this, plus there is more code for the other switches
in the sets above that is not shown, but this should give you an idea of what is
possible and how to go about it.
[/CODE]

Here is the code for the "mode select" switches:

[CODE]
!10=//CONTROL SET INCREMENT/DECREMENT
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
[/CODE]

A2A_B-17G_MAP.jpg

Using this setup I can pretty much take this aircraft from cold & dark to takeoff without having

to use the mouse or keyboard. :)

I also use some Lua scripts to facilitate more complex functions and to display the "current set"

assignments in a Lua window for 10 seconds each time I hit the up or down control set switches.

Using this approach, one could program 256 "modes" or assignments of each switch :)

Hope this answers your question and helps you out.

Paul

  • Upvote 1

Share this post


Link to post
Share on other sites

Hi Paul,

thank you so much for responding to my question here. Realizing that I will need some time getting the grasp of your coding I don't want to postpone thanking you until I'll be that far.

There are obviously some differences between FSX with FSUIPC 4.xxx and FS9 with FSUIPC 3.xxx. As an example I can't see the mode selector visible in FSUIPC's Buttons & Switches assignments tab from the latest version of FSUIPC. However, as mentioned I will need some time understanding your way of doing it.

As you know; the Saitek yoke has a button-wheel allowing you to switch between 3 available modes which again makes it possible to asssign every other buttons for three different purposes depending on the mode in use. This is possible when using the Saitek assignment programming tool. However, I would much more take the FSUIPC fully in use leaving both the Saitek and the FS way "in rest".

I'm not quite sure if my additional information here makes any difference regarding your answer. If so I would very much appreciate you giving a signal about that as I'm pretty much a novice when it comes to handle such problems as you are capable of.

Best regards,

Carl

Share this post


Link to post
Share on other sites

Hi Paul,

thank you so much for responding to my question here. Realizing that I will need some time getting the grasp of your coding I don't want to postpone thanking you until I'll be that far.

There are obviously some differences between FSX with FSUIPC 4.xxx and FS9 with FSUIPC 3.xxx. As an example I can't see the mode selector visible in FSUIPC's Buttons & Switches assignments tab from the latest version of FSUIPC. However, as mentioned I will need some time understanding your way of doing it.

As you know; the Saitek yoke has a button-wheel allowing you to switch between 3 available modes which again makes it possible to asssign every other buttons for three different purposes depending on the mode in use. This is possible when using the Saitek assignment programming tool. However, I would much more take the FSUIPC fully in use leaving both the Saitek and the FS way "in rest".

I'm not quite sure if my additional information here makes any difference regarding your answer. If so I would very much appreciate you giving a signal about that as I'm pretty much a novice when it comes to handle such problems as you are capable of.

Best regards,

Carl

Carl,

The Saitek mode selector is a "special switch" as set by the Saitek driver and can not be seen by FSUIPC normally. As a result

if you do not use the Saitek software you are limited initially to 1 mode. That's where the FSUIPC programming features

come into use.

Somewhere in this forum someone posted a workaround to cause the Saitek mode switch to be seen in FSUIPC. I've

not tried it since my approach gives me the extended flexibility that I need for my application.

Try using the search feature in this forum to find that posting. I know I had some replies in that thread as well.

Paul

Share this post


Link to post
Share on other sites

Paul,

thanks again. I'll make a forum search although I think I've seen that post allready. I'm afraid that was FSX - FSUIPCX related. I do a search though.

I will also take the time to study your solution - sooner or later I have to take the step towards your level ;)

Regards,

Carl

Share this post


Link to post
Share on other sites

although I think I've seen that post allready. I'm afraid that was FSX - FSUIPCX related.

There's no difference in how FSUIPC's button programming and axis assignment systems work between FS9 and FSX or FSUIPC3 and FSUIPC4, so it might still be relevant.

Regards

Pete

Share this post


Link to post
Share on other sites

There's no difference in how FSUIPC's button programming and axis assignment systems work between FS9 and FSX or FSUIPC3 and FSUIPC4, so it might still be relevant.

Regards

Pete

Hello Pete,

does that mean it should be possible to make the mode selector visible in FSUIPC 3.998q's Buttons & Switches assignments tab? Or maybe I misunderstand what this is.....

Regards,

Carl

Share this post


Link to post
Share on other sites

does that mean it should be possible to make the mode selector visible in FSUIPC 3.998q's Buttons & Switches assignments tab? Or maybe I misunderstand what this is.

If the mode selector switch is visible as one or more button numbers in FSUIPC4 then it will have the same button numbers in FSUIPC3. There's no difference -- 32 buttons numbered 0-31 are supported in both. Only the axes are more restricted in FSUIPC3 -- 6 instead of 8. If the mode selector switch is not visible in FSUIPC3 or FSUIPC4 then the only way it could be programmed in FSUIPC is by use a a Lua plug-in using the HID (human interface devce) additions to the com library.

However, looking back in this thread I see that Tamas_MAH180 already stated "It can see the three mode states as Joy#1 button #8, 9 and 10", so there's no problem. Why not just try for yourself?

Regards

Pete

Share this post


Link to post
Share on other sites

If the mode selector switch is visible as one or more button numbers in FSUIPC4 then it will have the same button numbers in FSUIPC3. There's no difference -- 32 buttons numbered 0-31 are supported in both. Only the axes are more restricted in FSUIPC3 -- 6 instead of 8. If the mode selector switch is not visible in FSUIPC3 or FSUIPC4 then the only way it could be programmed in FSUIPC is by use a a Lua plug-in using the HID (human interface devce) additions to the com library.

However, looking back in this thread I see that Tamas_MAH180 already stated "It can see the three mode states as Joy#1 button #8, 9 and 10", so there's no problem. Why not just try for yourself?

Regards)

Pete

No, I can't see the three mode states as Joy#xx button #8xx, xx and xx". And Pete, please, I allways try for myself, I'm sitting here (alone :o ) and try for myself over and over again, then I saw this post and by jumping into it I hoped I could gather some more info. And thanks, so I did. I will look into the Lua plug-in and Paul's way as the mode states are not visible. I'll never looked into this Lua thing and I don't really know it's capacity, but I will look..and learn...

Regards,

Carl

Share this post


Link to post
Share on other sites

No, I can't see the three mode states as Joy#xx button #8xx, xx and xx". And Pete, please, I allways try for myself, I'm sitting here (alone :o ) and try for myself over and over again, then I saw this post and by jumping into it I hoped I could gather some more info. And thanks, so I did. I will look into the Lua plug-in and Paul's way as the mode states are not visible. I'll never looked into this Lua thing and I don't really know it's capacity, but I will look..and learn...

Well, then, I assume the mode buttons are only visible if you make some tweak to the Saitek drivers. Sorry, I cannot support Saitek -- I'm just pointing out that the facilities in FSUIPC are no different in this.

The Lua approach would require some amount of programming know-how. I don't think that will be necessary judging by the other replies here. Maybe you should follwo Andy's pointer?

Regards

Pete

Share this post


Link to post
Share on other sites

Hi Pete,

I had to reinstall my windows and FSX and now I have trouble getting this multiaxis.lua work. My problem is that even if I try do the Axis Assignment, choosing the lever that is dependent on the mode select switch, Type of action required: Send direct to FSUIPC Calibration, Control sent when range entered: first checkbox selected, and from the dropdown list, I select Luavalue Multiaxes, when I click OK, and then come back to Add-ons / FSUIPC / Axis Assignment, Profile specific checkbox is checked and greyed out, as I can see, on the right under the Control sent when range entered, there is Lua Multiaxes from the dropdown list selected, not the Luavalue Multiaxes. And of course the lever does not work.

What might be the problem? Can you please help me with this one? It used to work like a charm, and I don't understand, what went wrong now.

My relevant config now is as follows:

Win7 x64 ultimate

FSX Deluxe 10.0.61472.0 (fsx-sp2.20071210-2023)

FSUIPC 4.8.37 (16th June 2012)

Part of my FSUIPC4.ini:

[LuaFiles]

1=ipcReady

2=linda

3=multiaxis

[Window.LUA display]

Docked=7423, 3335, 3526, 821

[Auto]

1=Lua multiaxis

...

[Profile.PMDG 737 NGX]

1=Boeing 737-8Q8NGX Malev Hungarian Airlines (oneworld)

[buttons.PMDG 737 NGX]

39=P1,8,Cx030066C0,x0000FA7B

40=P1,9,Cx030066C0,x0000FA7A

41=P1,10,Cx030066C0,x0000FA88

...

[Axes.PMDG 737 NGX]

0=0X,256,D,7,0,0,0

1=0Y,256,D,8,0,0,0

2=0R,256,D,47,0,0,0

3=1X,256,D,45,0,0,0

4=1Y,256,D,46,0,0,0

5=1Z,256,D,9,0,0,0

6=1U,256,D,10,0,0,0

7=1V,256

8=1V,B,0,0,L3:R,0

...

[JoystickCalibration.PMDG 737 NGX]

AllowSuppressForPFCquad=Yes

ExcludeThrottleSet=Yes

ExcludeMixtureSet=Yes

ExcludePropPitchSet=Yes

SepRevsJetsOnly=No

ApplyHeloTrim=No

UseAxisControlsForNRZ=No

FlapsSetControl=0

FlapDetents=No

ReverserControl=66292

Reverser1Control=66422

Reverser2Control=66425

Reverser3Control=66428

Reverser4Control=66431

MaxThrottleForReverser=256

AileronTrimControl=66731

RudderTrimControl=66732

CowlFlaps1Control=66162

CowlFlaps2Control=66163

CowlFlaps3Control=66164

CowlFlaps4Control=66165

SteeringTillerControl=0

MaxSteerSpeed=60

Aileron=-16383,-416,257,16384

Elevator=-16287,-1092,864,16383

Rudder=-16383,-1024,839,16384

Mixture=-16384,16256

LeftBrake=-16384,16383/16

RightBrake=-16383,16383/16

Spoilers=-16380,16380/16

Flaps=0,16380

SteeringTiller=-16384,-1560,1792,16383

Throttle1=-16384,-512,512,14080/32

Throttle2=-16384,-512,512,14208/32

SlopeThrottle1=-5

SlopeThrottle2=-5

My FSX folder is:

G:\FSX

The multiaxis.lua file is in G:\FSX\Modules folder, and its content is:

function applyaxis(val)

cntrl = ipc.readUD(0x66c0)

ipc.control(cntrl,val)

end

event.param("applyaxis")

Regards,

Tamas

Actually, I may not need to. I thought of a very simple way to do this sort of thing, very flexibly. First, make sure your FSUIPC installation is up to date -- latest versions are supplied in the Download Links subforum.

Then save the following as, say, "multiaxis.lua" in your FS Modules folder:

function applyaxis(val)
cntrl = ipc.readUD(0x66c0)
ipc.control(cntrl,val)
end

event.param("applyaxis")
[/CODE]

and edit the FSUIPC INI file, adding this section:

[b][Auto][/b]

[b]1=Lua multiaxis[/b]

(if you already have an [Auto] section, add the line with the next available number).

Now run FS. Go to FSUIPC axis assignments and assign the axis you want to switch as an "FS control", choosing this one from the drop-down list:

[b]Luavalue multiaxis[/b]

Then go to the Buttons assignments and assign the buttons you want to use for selecting the axis use, on the right-hand side, as follows:

[b]Offset dword set,[/b] with [i]Offset[/i][b]x66c0 [/b]and the [i]Parameter[/i] set to the value of the FS or FSUIPC control you want the axis to send.

The controls are listed in a List installed in your FSUIPC Documents folder, in the Modules folder. You can use any control, but obviously only axis controls make much sense. Those are all either named [b]"Axis ..."[/b] or end in "[b]set[/b]". There are more controls, added by FSUIPC, and listed in the FSUIPC Advanced User's guide. [b]BUT[/b] the ones you really want, for the purposes you chose, are currently only published in the "Changes" document included with the recent FSUIPC updates (see Download Links). They are numbered [b]64101 to 64144,[/b] and the ones you want are:

[b]64136 steering tiller[/b]

[b]64123 flaps[/b]

[b]64122 spoilers/speed brakes[/b]

Once you've done all this, exit to FS, select a mode using the buttons/switches you assigned above, then go into FSUIPC joystick calibrations and calibrate the axis for that selection. You'll need to exit to change the mode to calibrate each separately -- FSUIPC doesn't obey the button presses when in the options (for pretty obvious reasons).

Note that this technique is extensible for any number of different uses for the same axis and, by using different offsets (66C4 is the next -- the range 66C0 to 66FF is free for users, giving 16 possible DWORDs to use) and renamed versions of "multiaxis.lua", can be applied to any and all axes.

I've tested all this with FSUIPC [b]4.754[/b] and FSX. Have fun!

Regards

Pete

Share this post


Link to post
Share on other sites

I had to reinstall my windows and FSX and now I have trouble getting this multiaxis.lua work. My problem is that even if I try do the Axis Assignment, choosing the lever that is dependent on the mode select switch, Type of action required: Send direct to FSUIPC Calibration, Control sent when range entered: first checkbox selected, and from the dropdown list, I select Luavalue Multiaxes

Why are you using the range settings? Why not assign in the normal manner on the left hand side? Are you using different ranges for different things? I'll have to check but i think the axis value may only be passed as a parameter when assigning as an axis, not a control.

FSUIPC 4.8.37 (16th June 2012)

Please first update to version 4.84 so you are up-to-date and supported. Then try to do it as originally suggested.

I'll check into the matter of the Luavalue assignment not sticking in the range assignment separately, but I'd like to know what you are using the part for.

Pete

Share this post


Link to post
Share on other sites

Oh, that must be the problem. I did not indend to use ranges here. I remembered wrong where to select this Luavalue Multiaxes option. I will try it on the left hand side. Which of the three radio button shall I choose on the left (now I don't have my FSX in front of me, I mean those ones where I can select between sending it to FSUIPC calibration, normal axis and I don't remember the third one :razz: )

And okay, I will also upgrade to v4.84.

Regards,

Tamas

Why are you using the range settings? Why not assign in the normal manner on the left hand side? Are you using different ranges for different things? I'll have to check but i think the axis value may only be passed as a parameter when assigning as an axis, not a control.

Please first update to version 4.84 so you are up-to-date and supported. Then try to do it as originally suggested.

I'll check into the matter of the Luavalue assignment not sticking in the range assignment separately, but I'd like to know what you are using the part for.

Pete

Share this post


Link to post
Share on other sites

Oh, that must be the problem. I did not indend to use ranges here. I remembered wrong where to select this Luavalue Multiaxes option. I will try it on the left hand side. Which of the three radio button shall I choose on the left (now I don't have my FSX in front of me, I mean those ones where I can select between sending it to FSUIPC calibration, normal axis and I don't remember the third one :razz: )

You'll only find Lua controls for assignment in the "normal" controls lists. The "direct to calibration" obviously isn't appropriate -- that's the last thing you want -- and the third is writing to offsets, again which you don't want. So it becomes obvious, doesn't it? ;-)

BTW I confirm there's an oddity assigning LuaValue on the right-hand side. I'm investigating that now. It'll be fixed in the next update, hopefully within a week else Im on holidays.

Pete

Share this post


Link to post
Share on other sites

I hope it does :)

Tamas

You'll only find Lua controls for assignment in the "normal" controls lists. The "direct to calibration" obviously isn't appropriate -- that's the last thing you want -- and the third is writing to offsets, again which you don't want. So it becomes obvious, doesn't it? ;-)

Pete

Share this post


Link to post
Share on other sites

Thank you, Pete! With your kind help, I managed to make it work.

Regards,

Tamas

You'll only find Lua controls for assignment in the "normal" controls lists. The "direct to calibration" obviously isn't appropriate -- that's the last thing you want -- and the third is writing to offsets, again which you don't want. So it becomes obvious, doesn't it? ;-)

BTW I confirm there's an oddity assigning LuaValue on the right-hand side. I'm investigating that now. It'll be fixed in the next update, hopefully within a week else Im on holidays.

Pete

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.