GSalden Posted July 27, 2012 Report Share Posted July 27, 2012 Hi Pete, Your advice is really needed. I need to know what I did wrong. A couple of months ago I made a mouse macro to use the VRI CDU I with the 737 NGX. That worked perfectly after advice from you. Because of scenery development I did not fly for 4 months. Yesterday I tried to make a flight with the 737 NGX and the onscreen CDU did not respond to the hardware CDU. I looked into FSUIPC . When pressing a button I can see which button it is in FSUIPC, so it looks like that is working. - Screenshot 1 shows that FSUIPC recognises a button, in this the k button on the VRI CDU I. - Screenshot 2 shows the content of my Modules folder. The NGX mouse macro is there - Screenshot 3 shows that the 737 NGX mouse macro is listed , the profile of the aircraft ( I use the 737-800 WL KLM ) , and the list of the programmed buttons Why in FSX it does not work, I do not know. I am really puzzeled. I did however updated FSUIPC 2 days ago. Can you give me advice on this ? Thanks in advance. Link to comment Share on other sites More sharing options...
Pete Dowson Posted July 27, 2012 Report Share Posted July 27, 2012 A couple of months ago I made a mouse macro to use the VRI CDU I with the 737 NGX. Mouse macros? With the PMDG 737NGX? You do realise that they've now published the complete list of commands you can use for that aircraft? Maybe the list doesn't include some of the CDU buttons. Is that it? That worked perfectly after advice from you.Because of scenery development I did not fly for 4 months. Yesterday I tried to make a flight with the 737 NGX and the onscreen CDU did not respond to the hardware CDU. I looked into FSUIPC . When pressing a button I can see which button it is in FSUIPC, so it looks like that is working. In FSUIPC's Logging tab, enable button logging and event logging, then use the button and see what it says in the log. Have you updated the 737NGX at all? If so it is almost certain that you have to regenerate all mouse macros for it, because they address actual positions in memory where code is to be executed. Regards Pete Link to comment Share on other sites More sharing options...
GSalden Posted July 27, 2012 Author Report Share Posted July 27, 2012 In the log it says that the mouse action is not executed because the offset is not valid. I am not sure, but perhaps a couple of months ago I updated the 737NGX. 290287 [buttons.Boeing 737-8K2NGX KLM Royal Dutch Airlines Winglets] 95=P267,20,CM1:50,0 290287 Macro: mouse action="PMDG_737NGX.DLL":X484b0*X8bcc 290287 ... not executed because offset is not valid 291425 Button changed: bRef=0, Joy=267, Btn=20, Released 291425 [buttons.Boeing 737-8K2NGX KLM Royal Dutch Airlines Winglets] 96=U267,20,CM1:50,0 291425 Macro: mouse action="PMDG_737NGX.DLL":X484b0*X8bcc 291425 ... not executed because offset is not valid 293781 KEYDOWN: VK=13, Waiting=0, Repeat=N, Shifts=4 293781 .. Key not programmed -- passed on to FS 295949 KEYUP: VK=13, Waiting=0 295949 KEYUP: VK=18, Waiting=0 BTW : I have 136 entries for the CDU in the maco, so I probably should start all over when the weather is less warm.... :wacko: Thanks Pete Link to comment Share on other sites More sharing options...
Pete Dowson Posted July 27, 2012 Report Share Posted July 27, 2012 In the log it says that the mouse action is not executed because the offset is not valid. I am not sure, but perhaps a couple of months ago I updated the 737NGX. Yes, that would do it! BTW : I have 136 entries for the CDU in the maco Ouch. Why not check the list of custom control numbers, released as part of the SDK? Here's what I see listed: // CDU#define EVT_CDU_L_L1 (THIRD_PARTY_EVENT_ID_MIN + 534) #define EVT_CDU_L_L2 (THIRD_PARTY_EVENT_ID_MIN + 535) #define EVT_CDU_L_L3 (THIRD_PARTY_EVENT_ID_MIN + 536) #define EVT_CDU_L_L4 (THIRD_PARTY_EVENT_ID_MIN + 537) #define EVT_CDU_L_L5 (THIRD_PARTY_EVENT_ID_MIN + 538) #define EVT_CDU_L_L6 (THIRD_PARTY_EVENT_ID_MIN + 539) #define EVT_CDU_L_R1 (THIRD_PARTY_EVENT_ID_MIN + 540) #define EVT_CDU_L_R2 (THIRD_PARTY_EVENT_ID_MIN + 541) #define EVT_CDU_L_R3 (THIRD_PARTY_EVENT_ID_MIN + 542) #define EVT_CDU_L_R4 (THIRD_PARTY_EVENT_ID_MIN + 543) #define EVT_CDU_L_R5 (THIRD_PARTY_EVENT_ID_MIN + 544) #define EVT_CDU_L_R6 (THIRD_PARTY_EVENT_ID_MIN + 545) #define EVT_CDU_L_INIT_REF (THIRD_PARTY_EVENT_ID_MIN + 546) #define EVT_CDU_L_RTE (THIRD_PARTY_EVENT_ID_MIN + 547) #define EVT_CDU_L_CLB (THIRD_PARTY_EVENT_ID_MIN + 548) #define EVT_CDU_L_CRZ (THIRD_PARTY_EVENT_ID_MIN + 549) #define EVT_CDU_L_DES (THIRD_PARTY_EVENT_ID_MIN + 550) #define EVT_CDU_L_MENU (THIRD_PARTY_EVENT_ID_MIN + 551) #define EVT_CDU_L_LEGS (THIRD_PARTY_EVENT_ID_MIN + 552) #define EVT_CDU_L_DEP_ARR (THIRD_PARTY_EVENT_ID_MIN + 553) #define EVT_CDU_L_HOLD (THIRD_PARTY_EVENT_ID_MIN + 554) #define EVT_CDU_L_PROG (THIRD_PARTY_EVENT_ID_MIN + 555) #define EVT_CDU_L_EXEC (THIRD_PARTY_EVENT_ID_MIN + 556) #define EVT_CDU_L_N1_LIMIT (THIRD_PARTY_EVENT_ID_MIN + 557) #define EVT_CDU_L_FIX (THIRD_PARTY_EVENT_ID_MIN + 558) #define EVT_CDU_L_PREV_PAGE (THIRD_PARTY_EVENT_ID_MIN + 559) #define EVT_CDU_L_NEXT_PAGE (THIRD_PARTY_EVENT_ID_MIN + 560) #define EVT_CDU_L_1 (THIRD_PARTY_EVENT_ID_MIN + 561) #define EVT_CDU_L_2 (THIRD_PARTY_EVENT_ID_MIN + 562) #define EVT_CDU_L_3 (THIRD_PARTY_EVENT_ID_MIN + 563) #define EVT_CDU_L_4 (THIRD_PARTY_EVENT_ID_MIN + 564) #define EVT_CDU_L_5 (THIRD_PARTY_EVENT_ID_MIN + 565) #define EVT_CDU_L_6 (THIRD_PARTY_EVENT_ID_MIN + 566) #define EVT_CDU_L_7 (THIRD_PARTY_EVENT_ID_MIN + 567) #define EVT_CDU_L_8 (THIRD_PARTY_EVENT_ID_MIN + 568) #define EVT_CDU_L_9 (THIRD_PARTY_EVENT_ID_MIN + 569) #define EVT_CDU_L_DOT (THIRD_PARTY_EVENT_ID_MIN + 570) #define EVT_CDU_L_0 (THIRD_PARTY_EVENT_ID_MIN + 571) #define EVT_CDU_L_PLUS_MINUS (THIRD_PARTY_EVENT_ID_MIN + 572) #define EVT_CDU_L_A (THIRD_PARTY_EVENT_ID_MIN + 573) #define EVT_CDU_L_B (THIRD_PARTY_EVENT_ID_MIN + 574) #define EVT_CDU_L_C (THIRD_PARTY_EVENT_ID_MIN + 575) #define EVT_CDU_L_D (THIRD_PARTY_EVENT_ID_MIN + 576) #define EVT_CDU_L_E (THIRD_PARTY_EVENT_ID_MIN + 577) #define EVT_CDU_L_F (THIRD_PARTY_EVENT_ID_MIN + 578) #define EVT_CDU_L_G (THIRD_PARTY_EVENT_ID_MIN + 579) #define EVT_CDU_L_H (THIRD_PARTY_EVENT_ID_MIN + 580) #define EVT_CDU_L_I (THIRD_PARTY_EVENT_ID_MIN + 581) #define EVT_CDU_L_J (THIRD_PARTY_EVENT_ID_MIN + 582) #define EVT_CDU_L_K (THIRD_PARTY_EVENT_ID_MIN + 583) #define EVT_CDU_L_L (THIRD_PARTY_EVENT_ID_MIN + 584) #define EVT_CDU_L_M (THIRD_PARTY_EVENT_ID_MIN + 585) #define EVT_CDU_L_N (THIRD_PARTY_EVENT_ID_MIN + 586) #define EVT_CDU_L_O (THIRD_PARTY_EVENT_ID_MIN + 587) #define EVT_CDU_L_P (THIRD_PARTY_EVENT_ID_MIN + 588) #define EVT_CDU_L_Q (THIRD_PARTY_EVENT_ID_MIN + 589) #define EVT_CDU_L_R (THIRD_PARTY_EVENT_ID_MIN + 590) #define EVT_CDU_L_S (THIRD_PARTY_EVENT_ID_MIN + 591) #define EVT_CDU_L_T (THIRD_PARTY_EVENT_ID_MIN + 592) #define EVT_CDU_L_U (THIRD_PARTY_EVENT_ID_MIN + 593) #define EVT_CDU_L_V (THIRD_PARTY_EVENT_ID_MIN + 594) #define EVT_CDU_L_W (THIRD_PARTY_EVENT_ID_MIN + 595) #define EVT_CDU_L_X (THIRD_PARTY_EVENT_ID_MIN + 596) #define EVT_CDU_L_Y (THIRD_PARTY_EVENT_ID_MIN + 597) #define EVT_CDU_L_Z (THIRD_PARTY_EVENT_ID_MIN + 598) #define EVT_CDU_L_SPACE (THIRD_PARTY_EVENT_ID_MIN + 599) #define EVT_CDU_L_DEL (THIRD_PARTY_EVENT_ID_MIN + 600) #define EVT_CDU_L_SLASH (THIRD_PARTY_EVENT_ID_MIN + 601) #define EVT_CDU_L_CLR (THIRD_PARTY_EVENT_ID_MIN + 602) #define EVT_CDU_L_BRITENESS (THIRD_PARTY_EVENT_ID_MIN + 605) #define EVT_CDU_R_L1 (THIRD_PARTY_EVENT_ID_MIN + 606) #define EVT_CDU_R_L2 (THIRD_PARTY_EVENT_ID_MIN + 607) #define EVT_CDU_R_L3 (THIRD_PARTY_EVENT_ID_MIN + 608) #define EVT_CDU_R_L4 (THIRD_PARTY_EVENT_ID_MIN + 609) #define EVT_CDU_R_L5 (THIRD_PARTY_EVENT_ID_MIN + 610) #define EVT_CDU_R_L6 (THIRD_PARTY_EVENT_ID_MIN + 611) #define EVT_CDU_R_R1 (THIRD_PARTY_EVENT_ID_MIN + 612) #define EVT_CDU_R_R2 (THIRD_PARTY_EVENT_ID_MIN + 613) #define EVT_CDU_R_R3 (THIRD_PARTY_EVENT_ID_MIN + 614) #define EVT_CDU_R_R4 (THIRD_PARTY_EVENT_ID_MIN + 615) #define EVT_CDU_R_R5 (THIRD_PARTY_EVENT_ID_MIN + 616) #define EVT_CDU_R_R6 (THIRD_PARTY_EVENT_ID_MIN + 617) #define EVT_CDU_R_INIT_REF (THIRD_PARTY_EVENT_ID_MIN + 618) #define EVT_CDU_R_RTE (THIRD_PARTY_EVENT_ID_MIN + 619) #define EVT_CDU_R_CLB (THIRD_PARTY_EVENT_ID_MIN + 620) #define EVT_CDU_R_CRZ (THIRD_PARTY_EVENT_ID_MIN + 621) #define EVT_CDU_R_DES (THIRD_PARTY_EVENT_ID_MIN + 622) #define EVT_CDU_R_MENU (THIRD_PARTY_EVENT_ID_MIN + 623) #define EVT_CDU_R_LEGS (THIRD_PARTY_EVENT_ID_MIN + 624) #define EVT_CDU_R_DEP_ARR (THIRD_PARTY_EVENT_ID_MIN + 625) #define EVT_CDU_R_HOLD (THIRD_PARTY_EVENT_ID_MIN + 626) #define EVT_CDU_R_PROG (THIRD_PARTY_EVENT_ID_MIN + 627) #define EVT_CDU_R_EXEC (THIRD_PARTY_EVENT_ID_MIN + 628) #define EVT_CDU_R_N1_LIMIT (THIRD_PARTY_EVENT_ID_MIN + 629) #define EVT_CDU_R_FIX (THIRD_PARTY_EVENT_ID_MIN + 630) #define EVT_CDU_R_PREV_PAGE (THIRD_PARTY_EVENT_ID_MIN + 631) #define EVT_CDU_R_NEXT_PAGE (THIRD_PARTY_EVENT_ID_MIN + 632) #define EVT_CDU_R_1 (THIRD_PARTY_EVENT_ID_MIN + 633) #define EVT_CDU_R_2 (THIRD_PARTY_EVENT_ID_MIN + 634) #define EVT_CDU_R_3 (THIRD_PARTY_EVENT_ID_MIN + 635) #define EVT_CDU_R_4 (THIRD_PARTY_EVENT_ID_MIN + 636) #define EVT_CDU_R_5 (THIRD_PARTY_EVENT_ID_MIN + 637) #define EVT_CDU_R_6 (THIRD_PARTY_EVENT_ID_MIN + 638) #define EVT_CDU_R_7 (THIRD_PARTY_EVENT_ID_MIN + 639) #define EVT_CDU_R_8 (THIRD_PARTY_EVENT_ID_MIN + 640) #define EVT_CDU_R_9 (THIRD_PARTY_EVENT_ID_MIN + 641) #define EVT_CDU_R_DOT (THIRD_PARTY_EVENT_ID_MIN + 642) #define EVT_CDU_R_0 (THIRD_PARTY_EVENT_ID_MIN + 643) #define EVT_CDU_R_PLUS_MINUS (THIRD_PARTY_EVENT_ID_MIN + 644) #define EVT_CDU_R_A (THIRD_PARTY_EVENT_ID_MIN + 645) #define EVT_CDU_R_B (THIRD_PARTY_EVENT_ID_MIN + 646) #define EVT_CDU_R_C (THIRD_PARTY_EVENT_ID_MIN + 647) #define EVT_CDU_R_D (THIRD_PARTY_EVENT_ID_MIN + 648) #define EVT_CDU_R_E (THIRD_PARTY_EVENT_ID_MIN + 649) #define EVT_CDU_R_F (THIRD_PARTY_EVENT_ID_MIN + 650) #define EVT_CDU_R_G (THIRD_PARTY_EVENT_ID_MIN + 651) #define EVT_CDU_R_H (THIRD_PARTY_EVENT_ID_MIN + 652) #define EVT_CDU_R_I (THIRD_PARTY_EVENT_ID_MIN + 653) #define EVT_CDU_R_J (THIRD_PARTY_EVENT_ID_MIN + 654) #define EVT_CDU_R_K (THIRD_PARTY_EVENT_ID_MIN + 655) #define EVT_CDU_R_L (THIRD_PARTY_EVENT_ID_MIN + 656) #define EVT_CDU_R_M (THIRD_PARTY_EVENT_ID_MIN + 657) #define EVT_CDU_R_N (THIRD_PARTY_EVENT_ID_MIN + 658) #define EVT_CDU_R_O (THIRD_PARTY_EVENT_ID_MIN + 659) #define EVT_CDU_R_P (THIRD_PARTY_EVENT_ID_MIN + 660) #define EVT_CDU_R_Q (THIRD_PARTY_EVENT_ID_MIN + 661) #define EVT_CDU_R_R (THIRD_PARTY_EVENT_ID_MIN + 662) #define EVT_CDU_R_S (THIRD_PARTY_EVENT_ID_MIN + 663) #define EVT_CDU_R_T (THIRD_PARTY_EVENT_ID_MIN + 664) #define EVT_CDU_R_U (THIRD_PARTY_EVENT_ID_MIN + 665) #define EVT_CDU_R_V (THIRD_PARTY_EVENT_ID_MIN + 666) #define EVT_CDU_R_W (THIRD_PARTY_EVENT_ID_MIN + 667) #define EVT_CDU_R_X (THIRD_PARTY_EVENT_ID_MIN + 668) #define EVT_CDU_R_Y (THIRD_PARTY_EVENT_ID_MIN + 669) #define EVT_CDU_R_Z (THIRD_PARTY_EVENT_ID_MIN + 670) #define EVT_CDU_R_SPACE (THIRD_PARTY_EVENT_ID_MIN + 671) #define EVT_CDU_R_DEL (THIRD_PARTY_EVENT_ID_MIN + 672) #define EVT_CDU_R_SLASH (THIRD_PARTY_EVENT_ID_MIN + 673) #define EVT_CDU_R_CLR (THIRD_PARTY_EVENT_ID_MIN + 674) #define EVT_CDU_R_BRITENESS (THIRD_PARTY_EVENT_ID_MIN + 677) [/CODE]Doesn't that cover most if not all, and for both left and right CDUs? Assigning custom control numbers directly rather than using Mouse controls would be much more reliable and change-proof.RegardsPete Link to comment Share on other sites More sharing options...
Andydigital Posted July 27, 2012 Report Share Posted July 27, 2012 Or better yet use the software that comes with the CDU2 that works perfectly with the NGX i.e. VRiSim. I'm really not sure what there is this need for people to use LINDA instead of the software provided by VRi for aircraft like the NGX or Level D 767 FMC's, which work perfectly with those aircraft. You do realise that LINDA and VRiSim or SerialFP2 can both be used at the same time, it doesn't have to be an all or nothing decision. I use LINDA and VRiSim together all the time and they work fine together. Edit: oops sorry!! I just realised you have the CDU1 not CDU2, time to upgrade maybe :) Link to comment Share on other sites More sharing options...
GSalden Posted July 27, 2012 Author Report Share Posted July 27, 2012 Thanks for all the help ! Link to comment Share on other sites More sharing options...
GSalden Posted July 29, 2012 Author Report Share Posted July 29, 2012 Pete, can you give me one example on how to use a custom control number as listed above by you ? I did not manage to understand how to use this. Eg : #define EVT_CDU_L_L1 (THIRD_PARTY_EVENT_ID_MIN + 534) ( So I tried again with mouse macro's again which is working ) Link to comment Share on other sites More sharing options...
Pete Dowson Posted July 29, 2012 Report Share Posted July 29, 2012 Pete, can you give me one example on how to use a custom control number as listed above by you ? I did not manage to understand how to use this. Eg : #define EVT_CDU_L_L1 (THIRD_PARTY_EVENT_ID_MIN + 534) Really, questions about the PMDG SDK should be directed to the PMDG support forum. I'll help this once, but I'm not even a PMDG user so I'm certainly the wrong person. Anyway, all you need to do is add 534 to the value defined for "THIRD_PARTY_EVENT_ID_MIN", which you can easily find at the top of the complete controls list in the PMDG SDK document ("PMDG_NGX_SDK.h") which you must have if you've installed the latest NGX update! It is defined in this line: #define THIRD_PARTY_EVENT_ID_MIN 0x00011000 // equals to 69632 So, if you add 534 to 69632 and get 70166 (as you should), then that is the number you enter as your "<custom control>" value in the FSUIPC assignment of that name. You should really have a look at the PMDG SDK. I think you have to enable its actions too, in an INI someplace. Regards Pete Link to comment Share on other sites More sharing options...
GSalden Posted July 29, 2012 Author Report Share Posted July 29, 2012 Thanks again Pete ! That helped a lot. In the mean time I finished the mouse macros for the 737NGX with update 1c. Everything is working perfectly. Link to comment Share on other sites More sharing options...
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