Community Forum

Mapping Input Device XML Files

Forum Overview >> Farming Simulator 19

CategoryFarming Simulator 19
Created19.04.2019 18:36


Larry Fortna (Unknown) 19.04.2019 18:36
I have created a USB switch panel which implements 4 joysticks. I would like to be able to identify each button by name and have it load up when the USB port is detected like it does for my Logitech TMX steering wheel.

I have looked at the various input device XML files but do not understand the logical / physical mapping scheme.

I found that I can put an XML file in the folder named InputDevicesManual and name some of the buttons, but due to not knowing how to map them properly, I can only get a few to work before getting loading errors.

Can someone point me in the right direction to find the appropriate documentation on setting this up.

Bilbo Beutlin (BBeutlin) 19.04.2019 21:49
Basically you'll need at first a device driver USB/HID which implements your controller in Windows.
Often used are Arduino, Raspberry or similar. For these are open source codes available. Google for it. You'll also find on this way the basics for translations of axis and buttons to RawInput, XInput and DirectInput. Also explanations about differences physical/logical axis/buttons.

If your controller is acknowledged and full functional in Windows, you can begin assigning physical to logical translations for the FS inputDevice table to your custom controller.

Larry Fortna (Unknown) 19.04.2019 23:34
I have the HID/PID information etc. What I don't understand is the actual mapping relationship in the XML files. For instance, in the Thrustmaster inputdevice file I see the following:
<buttonMapping physical="9" logical="3" label="Y" />
<buttonMapping physical="2" logical="0" label="X" />
<buttonMapping physical="4" logical="1" label="A" />
<buttonMapping physical="8" logical="2" label="B" />
<buttonMapping physical="6" logical="8" label="Back" />
<buttonMapping physical="7" logical="9" label="Start" />
<buttonMapping physical="3" logical="4" label="LB" />
<buttonMapping physical="11" logical="5" label="RB" />
<buttonMapping physical="5" logical="10" label="LS" />
<buttonMapping physical="10" logical="11" label="RS" />
<buttonMapping physical="0" logical="6" label="LT" />
<buttonMapping physical="1" logical="7" label="RT" />

I don't understand what the physical vs logical relationship means.

I am hoping there is some sort of documentation that goes into more detail about how these mapping parameters are established.

Basically, I am looking for a way to identify my buttons by labeling them like is done in the thrustmaster controller..

I can create an XML file for my Arduino, and have put it in the inputDevicesManual folder and gotten some of the buttons to work. But when I start adding more, I get an error in the log file and the loading of game hangs up.

Bilbo Beutlin (BBeutlin) 20.04.2019 07:44
Simply said the 'physical' button/axis is what the USB device announces to the system, the 'logical' is the interpretation for the FS input device manager which appears later in the inputBinding.xml as input="BUTTON_number".


Note: Log in to post. Create a new account here.