Jump to content
The simFlight Network Forums

VRI CDI 1 : not working any more with mouse macro


Recommended Posts

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.

post-9062-0-07290200-1343378981_thumb.jp

post-9062-0-82819400-1343378990_thumb.jp

post-9062-0-43690300-1343378999_thumb.jp

Link to comment
Share on other sites

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

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

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.

Regards

Pete

Link to comment
Share on other sites

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

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

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

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.