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

Controlling PMDG CDU keys from FSUIPC,Lua & hidmacros

Recommended Posts

Hi, although I'm pretty new to all this I've managed to control the CDU through the PMDG offsets using both the FSUIPC Buttons & Switches page & through a Lua script.

The info is out there but in a few different places so I though I'd post this for reference:

Open up PMDG\PMDG 737 NGX\SDK\PMDG_NGX_SDK.h

Find the address to write to by adding your event to THIRD_PARTY_EVENT_ID_MIN

#define THIRD_PARTY_EVENT_ID_MIN          0x00011000  // equals to 69632
#define EVT_CDU_L_A         (THIRD_PARTY_EVENT_ID_MIN + 573) 

So to write the letter 'A' to the CDU the address is 70205. In Addons/FSUIPC/Buttons+Switches under 'Control sent when button pressed' select <custom Control> & enter 70205.

So far so obvious. What was not immediately obvious was the parameter. You might expect to just send a '1'. However, although this appears to work the first time, if you try to send another 'A' char it doesn't. You need to send the left mouse single click value as defined here in the header:

#define MOUSE_FLAG_LEFTSINGLE    0x20000000      // 536870912 in decimal

 

I then went on to do this through a Lua script that was called from the external hidmacros program:

CDU.lua (Saved in FSUIPC folder: P3Dv3\Modules) :

--[[

 LUA Script that gets called by a hidmacros script with the key value pressed on the CDU.

In hidmacros use the following script:

HIDMacros.setFSUIPCInt &amp;H0D6C,4,70205
HIDMacros.setFSUIPCString &amp;H0D70,40,"Lua CDU"

Note:

The 1st line writes 70205, 'A' key to the FSUIPC ipcPARAM variable.

Replace 'CDU' with the name of your Lua script (without the .lua extension)

--]]

 

LEFT_MOUSE_SINGLE = 0x20000000

key = ipcPARAM
ipc.log("CDU: Sending " .. key)
ipc.control(key, LEFT_MOUSE_SINGLE)

 

--------------------------------------

P3D v3.4.18.19475

SimConnect v3.4.0.0

FSUIPC v4.959

hidmacros v2.3.0.710

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  

×