Jump to content
The simFlight Network Forums
Sign in to follow this  
DaveAB

Mapping keyboard commands in PMDG

Recommended Posts

Hi all, my name is Dave living in Cape Town South Africa and have just joined the forums. I have a problem mapping keyboard commands for PMDG 747X in FSUIPC which I hope you can assist me with. I built an MCP using CTS288 encoders for the "speed" , 'heading" and "altitude" and Leo Bodmar's BU0836X.

I assigned the encoders using Leo's utility and under Windows (game controllers) I see pulses when turning the knobs both ways and all seems to be correct. For the 'Altitude" (let me just discuss this one although others give similar problems) I assign the key strokes CNTRL+TAB+Q for "decrease altitude" and CNTRL+TAB+A for 'increase altitude"in both PMDG keyboard assigments and FSUIPC. When using the keyboard the altitude works as expected for both directions .

When I turn the encoder anticlockwise to decrease the altitude , it does this but also flashes "brakes". When I turn this clockwise to increase altitude the "views" cycle as if "View (next catagory)" has been pushed. It also increments the altitude at the same time.I can find no other assignments using CNTRL+TAB+ (x) in any other controller. I have tried other combinations of "CNTRL+TAB" but get exactly the same results. I decided on this combination as it was the most "least used" in FS itself. The version of FSUIPC is 4.40. Controllers are CH yoke, CH pedals and BU0836X.

kind regards Dave

Share this post


Link to post
Share on other sites
I have a problem mapping keyboard commands for PMDG 747X in FSUIPC which I hope you can assist me with. I built an MCP using CTS288 encoders for the "speed" , 'heading" and "altitude" and Leo Bodmar's BU0836X.

I assigned the encoders using Leo's utility and under Windows (game controllers) I see pulses when turning the knobs both ways and all seems to be correct.

Sorry, please clarify. These "pulses" are what, joystick buttons flashing on and off?

When I turn the encoder anticlockwise to decrease the altitude , it does this but also flashes "brakes". When I turn this clockwise to increase altitude the "views" cycle as if "View (next catagory)" has been pushed. It also increments the altitude at the same time.I can find no other assignments using CNTRL+TAB+ (x) in any other controller.

Well, the buttons are most certainly assigned in more than one place that is for sure. Have you explicitly disabled the buttons in FS? It assigns things like brakes and views automatically.

The version of FSUIPC is 4.40.

Out of date and not supported. Please install 4.50.

Regards

Pete

Share this post


Link to post
Share on other sites

Hi Pete, many thanks for your reply. By "pulses" I mean that turning the encode anticlockwise I get switch 1 pulsing as I turn as if you are repeatedly pressing a button and clockwise I get switch 2 pulsing as I turn.

I have tried finding anywhere these are assigned other than FSUIPC but have not found any. More confusing is I assigned CNTRL+TAB+E to "heading increase" and CNTRL+TAB+D to "heading decrease". When I turn the heading increase (clockwise) the flaps roll out (one detent of the encoder =one flap position) until flaps are fully deployed. Meanwhile the heading is increasing correctly. Anticlockwise retracts the flaps until zero and all the time is decreasing the heading. How mad is that!!!! :?

Anyway, I will download 4.50 and go thru all the settings again. I will also try using a switch on the CH Yoke to do he same thing and see if I get the same results. I will inform you as to progress and try and debug this as much as possible..

kind regards

Dave

Share this post


Link to post
Share on other sites
Hi Pete, many thanks for your reply. By "pulses" I mean that turning the encode anticlockwise I get switch 1 pulsing as I turn as if you are repeatedly pressing a button and clockwise I get switch 2 pulsing as I turn.

Okay. I thought you must have meant that.

I have tried finding anywhere these are assigned other than FSUIPC but have not found any. More confusing is I assigned CNTRL+TAB+E to "heading increase" and CNTRL+TAB+D to "heading decrease". When I turn the heading increase (clockwise) the flaps roll out (one detent of the encoder =one flap position) until flaps are fully deployed. Meanwhile the heading is increasing correctly. Anticlockwise retracts the flaps until zero and all the time is decreasing the heading. How mad is that!!!! :?

Not mad, just another sure indication of dual assignments.

Anyway, I will download 4.50 and go thru all the settings again.

I doubt that will make any difference.

If you temporarily remove FSUIPC4.DLL from the Modules folder, what do those switches do then? If nothing, then best to delete your FSUIPC INI file, as you evidently have dual assignments in there and don't even remember them. More likely, the other problems you are getting become the only actions, showing that the buttons are indeed assigned in FS.

Regards

Pete

Share this post


Link to post
Share on other sites

Hi Pete, you were right,right and right! :D

Removing the DLL left me with all the strange "features". I eventually tracked them down. I had been looking at all the controllers on the USB ports that they are currently on and had removed ALL assignments. I did not check the BU0836X as I had only assigned the encoders and no other switches, or so I thought :oops: .

I had changed around my USB ports and what is now evident is that the FS assignments that were originally on that USB port (was the CH yoke) were then applied to the BU0836X which is now plugged in there. Something I will remember in future.

It is working 100% now.

Many thanks for your help and congrats for a superb piece of software.

ps is there a way to "speed up" the altitude encoder? It takes many turns to change 10,000ft. It would be nice if I could change 1,000 ft or even 500 ft per click instead of 100ft

kind regards

Dave

Share this post


Link to post
Share on other sites

It is working 100% now.

Good!

is there a way to "speed up" the altitude encoder? It takes many turns to change 10,000ft. It would be nice if I could change 1,000 ft or even 500 ft per click instead of 100ft

How are you programming it? This is by assignments to keystrokes defined in the PMDG software, isn't it? Do they provide a method for fast changes?

For regular FS aircraft, or any not doing their own "thing" with the autopilot like PMDG, I would suggest FSUIPC controls which affect the A/P offsets, but this doesn't apply to PMDG. so if they don't have a fast inc/dec method then I don't know how you could do it -- it would be a bit much sending the keystroke combo 10 times for each click, probably simply overflow the keyboard buffer.

How does it behave when using the mouse on the gauge? Have you considered using the "mouse macro" facilities in FSUIPC, rather than keystrokes? They are a lot more efficient, operating directly with the gauge code. You might find a better solution there.

Regards

Pete

Share this post


Link to post
Share on other sites
How are you programming it? This is by assignments to keystrokes defined in the PMDG software, isn't it?

Yes it is!.. PMDG has no option for fast inc or dec.

How does it behave when using the mouse on the gauge?

Holding down the mouse button the gauge inc and dec very quickly as does holding down the key combo.

If we could issue 5 keyboard commands per click of the encoder that would do it and I dont think it will overflow the buffer as holding the key combo doesn't. Anyway I dont want to burden you with that one. I will put up with it.

By the way the mouse macro worked but only issues one command per detent of the encoder , so exactly the same as the key combo.

many thanks for all your help, much appreciated.

cheers

Dave

Share this post


Link to post
Share on other sites

If we could issue 5 keyboard commands per click of the encoder that would do it and I dont think it will overflow the buffer as holding the key combo doesn't. Anyway I dont want to burden you with that one. I will put up with it.

No burden for me. All you need to do is edit the INI file to make the button click send the same thing 5 times. Easy!

By the way the mouse macro worked but only issues one command per detent of the encoder , so exactly the same as the key combo.

Yes, and the same answer applies. In the Macro file use the multiline macro facility to repeat the same call. You could do a 10 times repeat there without fear as the macro calling will be 100 times more efficient than using keyboard presses.

You can have two macros in your macro file, one for 100's inc and and for 1000's. That would enable you to select one or other for assignment.

BTW, for rotary encoders which send alternate button presses and releases on each click, you should always program the same thing on both "press" and "release". Then you get one action per click instead of every other click.

Regards

Pete

Share this post


Link to post
Share on other sites

Hi Pete, This sounds exactly what I need BUT I think I have a problem understanding the multiline macro

In the Macro file use the multiline macro facility to repeat the same call.

In my INI file I have this

54=P0,0,CM3:1,0 ( Switch 0,contoller 0, macro 3, entry 1... is this correct?)

[MacroFiles]

1=fuel cntrl 1

2=PMDG

3=altitude

I made a macro under heading "Altitude" and sub heading "decrease". I only created this one to test the process.

In my "altitude" macro file I did this

[Macros]

Module="PMDG_747400_Main.DLL"

1=decrease=RX3880*X5300 (was just this line. I assume the default is left click or 29, I added the following 4)

1.1=RX3880*X5300

1.2=RX3880*X5300

1.3=RX3880*X5300

1.4=RX3880*X5300

I restarted FSX and I still only get 100ft decrement for one click. Do I need to add "decrease" to these lines, or have I really missed the "big picture" here? :?

cheers

Dave

Share this post


Link to post
Share on other sites

1=decrease=RX3880*X5300 [/b] (was just this line. I assume the default is left click or 29, I added the following 4)

1.1=RX3880*X5300

1.2=RX3880*X5300

1.3=RX3880*X5300

1.4=RX3880*X5300

I restarted FSX and I still only get 100ft decrement for one click. Do I need to add "decrease" to these lines, or have I really missed the "big picture" here?

Wasn't the example and so on clear in the document?

The format

  • 1=decrease=RX3880*X5300

is the SINGLE line format. The fact that it is complete in that line stops FSUIPC looking for any more! You need
  • 1=decrease
    1.1=RX3880*X5300
    1.2=RX3880*X5300
    1.3=RX3880*X5300
    1.4=RX3880*X5300
    1.5=RX3880*X5300

Pete

Share this post


Link to post
Share on other sites

Ok, I understand now. I cut and pasted the lines from your post. PMDG does not respond as expected. For each click I now got a decrease of 1,500ft. I did some debugging and this is what I have found.

With one line

ie 1=decrease

1.1=RX3880*X5300

It decreases 100ft, as expected and as before. With the following

1=decrease

1.1=RX3880*X5300

1.2=RX3880*X5300

It decreases 300ft ! for every line after it adds 100foot . One line =100ft, 2lines = 200ft, 3 lines = 300ft and so forth up to 1,500ft for 5 lines.

A log from FSUIPC shows it working perfectly (example below for 5 lines) and I would have expected only 5 simulated mouse clicks (not 15!)

196953 [buttons.PMDG - 747-400 GE CF6 Engines] 54=P0,0,CM3:1,0

196953 Macro: mouse action="PMDG_747400_Main.DLL":X3880*X5300

196953 Macro: mouse action="PMDG_747400_Main.DLL":X3880*X5300

196953 Macro: mouse action="PMDG_747400_Main.DLL":X3880*X5300

196953 Macro: mouse action="PMDG_747400_Main.DLL":X3880*X5300

196953 Macro: mouse action="PMDG_747400_Main.DLL":X3880*X5300

197031 Button changed: bRef=0, Joy=0, Btn=0, Released

199703 Button changed: bRef=0, Joy=0, Btn=0, Pressed

199703 [buttons.PMDG - 747-400 GE CF6 Engines] 54=P0,0,CM3:1,0

199703 Macro: mouse action="PMDG_747400_Main.DLL":X3880*X5300

199703 Macro: mouse action="PMDG_747400_Main.DLL":X3880*X5300

199703 Macro: mouse action="PMDG_747400_Main.DLL":X3880*X5300

199703 Macro: mouse action="PMDG_747400_Main.DLL":X3880*X5300

199703 Macro: mouse action="PMDG_747400_Main.DLL":X3880*X5300

199781 Button changed: bRef=0, Joy=0, Btn=0, Released

202593 Button changed: bRef=0, Joy=0, Btn=0, Pressed

202593 [buttons.PMDG - 747-400 GE CF6 Engines] 54=P0,0,CM3:1,0

202593 Macro: mouse action="PMDG_747400_Main.DLL":X3880*X5300

202593 Macro: mouse action="PMDG_747400_Main.DLL":X3880*X5300

202593 Macro: mouse action="PMDG_747400_Main.DLL":X3880*X5300

202593 Macro: mouse action="PMDG_747400_Main.DLL":X3880*X5300

202593 Macro: mouse action="PMDG_747400_Main.DLL":X3880*X5300

202672 Button changed: bRef=0, Joy=0, Btn=0, Released

And you can see I do not have anything assigned when the button is released

(BTW Leo Bodmars utility takes care of the encoder binary switching and gives a pulse for every click)

Looks like I will have to put up with winding the encoder :(

cheers and many thanks for your help

Dave

Share this post


Link to post
Share on other sites

PMDG does not respond as expected. For each click I now got a decrease of 1,500ft.

Instead of, what, 500 were you expecting?

With one lineIt decreases 100ft, as expected and as before. With the following

1=decrease

1.1=RX3880*X5300

1.2=RX3880*X5300

It decreases 300ft !

Okay. sounds like they've implemented control acceleration, same as FS does if you hold a switch with a mouse instead of just clicking it.

for every line after it adds 100foot . One line =100ft, 2lines = 200ft, 3 lines = 300ft and so forth up to 1,500ft for 5 lines.

I assume you've mis-typed that. you mean 300 feet each time? 5 x 300?

Looks like I will have to put up with winding the encoder :(

Why not simply reduce the number of entries proportionally? If you are getting 1500 and want 1000, reduce to 2/3rds. Of course 1000 isn't a multiple of 300 so you'd have to use 3 to get close then use your 100 dial.

This is on FSX, isn't it? You might want to investigate the new facilities in FSUIPC for manipulating gauges using "L:vars" (Local gauge named variables). You never know, PMDG might be using those to deal with the altitude on their MCP?

Pete

Share this post


Link to post
Share on other sites
I assume you've mis-typed that. you mean 300 feet each time? 5 x 300?

Sorry, you are right, I mis-typed it but the assumption isn't right. What I actually meant to type was... 1 line =100,2 lines =300, 3 lines =600, 4 lines = 1000 and 5 lines = 1,500

Which ever line it is seems to add that number of clicks eg 2nd line adds 200, 3rd line adds 300, 4th adds 400 and so on.

Why not simply reduce the number of entries proportionally? If you are getting 1500 and want 1000, reduce to 2/3rds. Of course 1000 isn't a multiple of 300 so you'd have to use 3 to get close then use your 100 dial.

Thinking about it a three position switch "momentary,off,momentary" would work better. I would just need to add an additional switch for "set". Pity, the encoders are nice..

This is on FSX, isn't it? ........manipulating gauges using "L:vars" (Local gauge named variables).

Yes it is.. Back to the manuals... :D

cheers

Dave

Share this post


Link to post
Share on other sites

Sorry, you are right, I mis-typed it but the assumption isn't right. What I actually meant to type was... 1 line =100,2 lines =300, 3 lines =600, 4 lines = 1000 and 5 lines = 1,500

Aha! So, you've sorted it -- 4 lines = 1000, just what you wanted, no?

Regards

Pete

Share this post


Link to post
Share on other sites

Hi Pete,

manipulating gauges using "L:vars" (Local gauge named variables)

I tried this as there were many Lvars listed for the PMDG but the one I tried "L:MCP_ALT_Knob_var = 0.000000" didnt show any value (was set to 10,000ft) and didn't do anything when I tried to manipulate it. Wasn't sure if I had to specify a specific module.

Anyway after many attempts I manage to FINALLY increase and decrease the altitude by 500 ft per click which is much more useable. I had to use alternate button click and wheel so it didnt get into the acceleration routine. The only problme is if you wind the knob too fast you may only get 300 ft instead of 500ft but if done at a steady pace this works well.

Here is my macro file for the benefit of other budding cockpit builders :D

[Macros]

Module="PMDG_747400_Main.DLL"

1=decrease

1.1=RX3880*X5300,29

1.2=RX3880*X5300,13

1.3=RX3880*X5300,29

1.4=RX3880*X5300,13

1.5=RX3880*X5300,29

2=increase

2.1=RX3880*X5300,14

2.2=RX3880*X5300,31

2.3=RX3880*X5300,14

2.4=RX3880*X5300,31

2.5=RX3880*X5300,14

kind regards and thanks for your patience

Dave

Share this post


Link to post
Share on other sites
I tried this as there were many Lvars listed for the PMDG but the one I tried "L:MCP_ALT_Knob_var = 0.000000" didnt show any value (was set to 10,000ft) and didn't do anything when I tried to manipulate it. Wasn't sure if I had to specify a specific module.

No, it isn't checked by module. Luckily FSX doesn't crash if you address a Local Variable which isn't defined.

Sounds like that variable is either disused or used internally as a flag or temporary storage, rather than the real value. Or it may be part of a protocol used in the communication between their modules and externals which need to be in a specific sequence.

Anyway after many attempts I manage to FINALLY increase and decrease the altitude by 500 ft per click which is much more useable. I had to use alternate button click and wheel so it didnt get into the acceleration routine. The only problme is if you wind the knob too fast you may only get 300 ft instead of 500ft but if done at a steady pace this works well.

Here is my macro file for the benefit of other budding cockpit builders :D

Right. Glad you managed something useful anyway! ;-)

Thanks for posting the result.

Regards

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
Sign in to follow this  

×

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.