Skip to content
View in the app

A better way to browse. Learn more.

The AVSIM Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

LINDA joystick ids vs. FSUIPC joystick numbers?

Featured Replies

Can someone explain to me the relationship between LINDA's joystick ids and the joystick numbers in FSUIPC4.ini? Given the LINDA joystick id, can I find the FSUIPC id? I am working on a way to synchronise my aircraft with my cockpit switches and so far I am one step short. Having poked around in the LINDA code I discovered I can enumerate all my bound functions like this:

for Stick, v in pairs(JSTK) do
    ipc.log("Joystick id: " .. Stick)
    for Button = 1, 32, 1 do
        local Funct = JSTK[Stick][Button]
        if Funct ~= nil then
            ipc.log("    button " .. tostring(Button) .. ": " .. tostring(Funct))
        end
    end
end

 This produces output like this (partial):

LUA.1: Joystick id: 06A30D050
LUA.1:     button 16: ADF_FRQ
LUA.1:     button 21: ADF_Inner_Knob_Right
LUA.1:     button 22: ADF_Inner_Knob_Left
LUA.1:     button 23: ADF_Outer_Knob_Right
LUA.1:     button 24: ADF_Outer_Knob_Left
LUA.1: Joystick id: 1DD210010
LUA.1:     button 1: TW_AP_Pitch_thumbknob_dn
LUA.1:     button 2: TW_AP_Bank_thumbknob_left
LUA.1:     button 3: TW_AP_Yaw_toggle
LUA.1:     button 4: RXP_Nav_Device_Swap
LUA.1:     button 5: Parking_Brake_ON
LUA.1:     button 6: TW_AP_Bank_thumbknob_right
LUA.1:     button 7: Flight_Data_Recorder_ON
LUA.1:     button 8: Aileron_Trim_Left
LUA.1:     button 9: TW_DC_Source_sw_Ext
LUA.1:     button 11: Lights_LANDING_on
LUA.1:     button 12: Ign_Mode_Sw_manual
LUA.1:     button 13: Lights_LANDING_on
LUA.1:     button 15: Starter_Sw_left
LUA.1:     button 17: Ign_Eng1_Sw_1
LUA.1:     button 18: Ign_Eng2_Sw_1
LUA.1:     button 19: Mod_ADF_Power_on
LUA.1:     button 20: GNS530_MENU
LUA.1:     button 21: GNS530_Power_ON
LUA.1:     button 22: ADF_SET_RST_Down
LUA.1:     button 23: DME_Mode_RMT
LUA.1:     button 24: GNS530_Decrease_Range
LUA.1:     button 25: GNS530_Increase_Range
LUA.1:     button 26: SPK_COM1_ON
LUA.1:     button 27: ADF_FRQ
LUA.1:     button 28: ADF_FLT_ET
LUA.1:     button 29: GNS530_Direct_To
LUA.1:     button 30: TW_AP_Pitch_thumbknob_up
LUA.1:     button 31: GNS530_Panel_Drives_RXP
LUA.1:     button 32: Flight_Data_Recorder_Test_DOWN
...etc.

I have also found I can call these functions like so:

buttonExecute("1DD210010", JSTK["1DD210010"][5])  -- Sets the parking brake

BUT what I now want to do is traverse this list and check the positions of the buttons and switches, and then call the functions for switches that are set. If I was just doing it for the parking brake switch:

Button = 5
if ipc.testbutton(WHAT?, Button - 1) then            -- If the parking brake switch is set
    buttonExecute(WHAT?, JSTK["1DD210010"][Button])  -- Make sure the parking brake is actually ON
end

So you can see I don't know how to get the FSUIPC number I need to interrogate the button. There must be a 1:1 correspondence here between the LINDA and FSUIPC ids and I am assuming this must be stored somewhere. I am buggered if I can figure out where!

MarkH

https://www.youtube.com/@AlmostAviation
AMD Ryzen 7 9800X3D / 64Gb DDR5 / Zotac RTX 5070 Ti / 2560 x 1440 display

Hi Mark

 

LINDA identifies HID devices (ie. joysticks) by the Vendor and Product IDs read from the device to form the ID and adds a suffix number if it finds multiple devices.  Therefore, the Device you quote has the VID 1DD2 and the PID 1001 and is the first device of that type found (0) giving 1DD210010.  This is done independent of FSUIPC4 but will be linked by these data.

 

I would need to study your code to see what you are trying to do.  I don't have time at the moment.

Andrew Gransden

Scotland, UK

LINDA Support/Developer - VATSIM and BAVirtual - Airbus Flyer

i7 1TB SSD GTX980 - FSX/P3D - Aerosoft Airbus A318/A319/A320/A321 - FS2Crew

  • Author

LINDA identifies HID devices (ie. joysticks) by the Vendor and Product IDs read from the device to form the ID and adds a suffix number if it finds multiple devices.  Therefore, the Device you quote has the VID 1DD2 and the PID 1001 and is the first device of that type found (0) giving 1DD210010.  This is done independent of FSUIPC4 but will be linked by these data.

 

Eek, don't worry for now as I have just discovered that the COM library has been extended to manipulate HIDs since I printed my FSUIPC documentation! At first glance I am hopeful I will be able to do what I need with those functions with the VID and PID.

MarkH

https://www.youtube.com/@AlmostAviation
AMD Ryzen 7 9800X3D / 64Gb DDR5 / Zotac RTX 5070 Ti / 2560 x 1440 display

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.