Logitech Dual Action Pro game controller¶
This is a common game controller that was hanging around the house, waiting for something to do.
Button Map¶
The substitutions file describes the mapping of the buttons to EPICS actions:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | file "$(USB)/usbApp/Db/AnalogAxis.template"
{
pattern
{P R PARAM PORT FLNK}
{xxx: DUAL:Vertical LSTICK_UD_STATE LOGITECH_DUAL xxx:DUAL:shoulder}
{xxx: DUAL:Rotation LSTICK_LR_STATE LOGITECH_DUAL xxx:DUAL:base}
}
file "$(USB)/usbApp/Db/DigitalButton.template"
{
pattern
{P R PARAM PORT FLNK}
{xxx: DUAL:Button1 BUTTON1_PRESSED LOGITECH_DUAL xxx:DUAL:led}
{xxx: DUAL:Button2 BUTTON2_PRESSED LOGITECH_DUAL xxx:DUAL:move_lock}
{xxx: DUAL:Button3 BUTTON3_PRESSED LOGITECH_DUAL xxx:DUAL:grip}
{xxx: DUAL:Button4 BUTTON4_PRESSED LOGITECH_DUAL xxx:DUAL:grip}
{xxx: DUAL:Button5 BUTTON5_PRESSED LOGITECH_DUAL xxx:DUAL:elbow}
{xxx: DUAL:Button7 BUTTON7_PRESSED LOGITECH_DUAL xxx:DUAL:elbow}
{xxx: DUAL:Button6 BUTTON6_PRESSED LOGITECH_DUAL xxx:DUAL:wrist}
{xxx: DUAL:Button8 BUTTON8_PRESSED LOGITECH_DUAL xxx:DUAL:wrist}
}
file "$(TOP)/iocBoot/$(IOC)/substitutions/AxisMove.template"
{
pattern
{P R LOCK AXIS DEAD_LOW DEAD_HIGH OUT}
{xxx: DUAL:move_lock 0 xxx:DUAL:Button2 1 1 ""}
{xxx: DUAL:base xxx:DUAL:move_lock xxx:DUAL:Rotation 100 150 xxx:A1:base_move}
{xxx: DUAL:shoulder xxx:DUAL:move_lock xxx:DUAL:Vertical 100 150 xxx:A1:shoulder_move}
}
file "$(TOP)/iocBoot/$(IOC)/substitutions/ButtonMove.template"
{
pattern
{P R LOCK BUTTONA BUTTONB OUT}
{xxx: DUAL:led 0 0 xxx:DUAL:Button1 xxx:A1:led_onoff}
{xxx: DUAL:elbow xxx:DUAL:move_lock xxx:DUAL:Button7 xxx:DUAL:Button5 xxx:A1:elbow_move}
{xxx: DUAL:grip 0 xxx:DUAL:Button3 xxx:DUAL:Button4 xxx:A1:grip_move}
{xxx: DUAL:wrist xxx:DUAL:move_lock xxx:DUAL:Button8 xxx:DUAL:Button6 xxx:A1:wrist_move}
}
|