1[
2  {
3    "name": "Sanity check - should not produce any events",
4    "reports": [
5      [0x01, 0x80, 0x80, 0x80, 0x80, 0x08, 0x00, 0x00, 0x00, 0x00, 0xff]
6    ],
7    "events": []
8  },
9
10  {
11    "name": "Press left DPAD key",
12    "reports": [
13      [0x01, 0x80, 0x80, 0x80, 0x80, 0x06, 0x00, 0x00, 0x00, 0x00, 0xff],
14      [0x01, 0x80, 0x80, 0x80, 0x80, 0x08, 0x00, 0x00, 0x00, 0x00, 0xff]
15    ],
16    "source": "JOYSTICK",
17    "events": [
18      {"action": "MOVE", "axes": {"AXIS_HAT_X": -1}},
19      {"action": "MOVE", "axes": {"AXIS_HAT_X": 0}}
20    ]
21  },
22
23  {
24    "name": "Press right DPAD key",
25    "reports": [
26      [0x01, 0x80, 0x80, 0x80, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0xff],
27      [0x01, 0x80, 0x80, 0x80, 0x80, 0x08, 0x00, 0x00, 0x00, 0x00, 0xff]
28    ],
29    "source": "JOYSTICK",
30    "events": [
31      {"action": "MOVE", "axes": {"AXIS_HAT_X": 1}},
32      {"action": "MOVE", "axes": {"AXIS_HAT_X": 0}}
33    ]
34  },
35
36  {
37    "name": "Press up DPAD key",
38    "reports": [
39      [0x01, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff],
40      [0x01, 0x80, 0x80, 0x80, 0x80, 0x08, 0x00, 0x00, 0x00, 0x00, 0xff]
41    ],
42    "source": "JOYSTICK",
43    "events": [
44      {"action": "MOVE", "axes": {"AXIS_HAT_Y": -1}},
45      {"action": "MOVE", "axes": {"AXIS_HAT_Y": 0}}
46    ]
47  },
48
49  {
50    "name": "Press down DPAD key",
51    "reports": [
52      [0x01, 0x80, 0x80, 0x80, 0x80, 0x04, 0x00, 0x00, 0x00, 0x00, 0xff],
53      [0x01, 0x80, 0x80, 0x80, 0x80, 0x08, 0x00, 0x00, 0x00, 0x00, 0xff]
54    ],
55    "source": "JOYSTICK",
56    "events": [
57      {"action": "MOVE", "axes": {"AXIS_HAT_Y": 1}},
58      {"action": "MOVE", "axes": {"AXIS_HAT_Y": 0}}
59    ]
60  },
61
62  {
63    "name": "Left stick - press left",
64    "reports": [
65      [0x01, 0x00, 0x80, 0x80, 0x80, 0x08, 0x00, 0x00, 0x00, 0x00, 0xff],
66      [0x01, 0x80, 0x80, 0x80, 0x80, 0x08, 0x00, 0x00, 0x00, 0x00, 0xff]
67    ],
68    "source": "JOYSTICK",
69    "events": [
70      {"action": "MOVE", "axes": {"AXIS_X": -1}},
71      {"action": "MOVE", "axes": {"AXIS_X": 0}}
72    ]
73  },
74
75  {
76    "name": "Left stick - press right",
77    "reports": [
78      [0x01, 0xff, 0x80, 0x80, 0x80, 0x08, 0x00, 0x00, 0x00, 0x00, 0xff],
79      [0x01, 0x80, 0x80, 0x80, 0x80, 0x08, 0x00, 0x00, 0x00, 0x00, 0xff]
80    ],
81    "source": "JOYSTICK",
82    "events": [
83      {"action": "MOVE", "axes": {"AXIS_X": 1}},
84      {"action": "MOVE", "axes": {"AXIS_X": 0}}
85    ]
86  },
87
88  {
89    "name": "Left stick - press up",
90    "reports": [
91      [0x01, 0x80, 0x00, 0x80, 0x80, 0x08, 0x00, 0x00, 0x00, 0x00, 0xff],
92      [0x01, 0x80, 0x80, 0x80, 0x80, 0x08, 0x00, 0x00, 0x00, 0x00, 0xff]
93    ],
94    "source": "JOYSTICK",
95    "events": [
96      {"action": "MOVE", "axes": {"AXIS_Y": -1}},
97      {"action": "MOVE", "axes": {"AXIS_Y": 0}}
98    ]
99  },
100
101  {
102    "name": "Left stick - press down",
103    "reports": [
104      [0x01, 0x80, 0xff, 0x80, 0x80, 0x08, 0x00, 0x00, 0x00, 0x00, 0xff],
105      [0x01, 0x80, 0x80, 0x80, 0x80, 0x08, 0x00, 0x00, 0x00, 0x00, 0xff]
106    ],
107    "source": "JOYSTICK",
108    "events": [
109      {"action": "MOVE", "axes": {"AXIS_X": 0, "AXIS_Y": 1, "AXIS_Z": 0}},
110      {"action": "MOVE", "axes": {"AXIS_X": 0, "AXIS_Y": 0, "AXIS_Z": 0}}
111    ]
112  },
113
114  {
115    "name": "Right stick - press left",
116    "reports": [
117      [0x01, 0x80, 0x80, 0x00, 0x80, 0x08, 0x00, 0x00, 0x00, 0x00, 0xff],
118      [0x01, 0x80, 0x80, 0x80, 0x80, 0x08, 0x00, 0x00, 0x00, 0x00, 0xff]
119    ],
120    "source": "JOYSTICK",
121    "events": [
122      {"action": "MOVE", "axes": {"AXIS_Z": -1}},
123      {"action": "MOVE", "axes": {"AXIS_Z": 0}}
124    ]
125  },
126
127  {
128    "name": "Right stick - press right",
129    "reports": [
130      [0x01, 0x80, 0x80, 0xff, 0x80, 0x08, 0x00, 0x00, 0x00, 0x00, 0xff],
131      [0x01, 0x80, 0x80, 0x80, 0x80, 0x08, 0x00, 0x00, 0x00, 0x00, 0xff]
132    ],
133    "source": "JOYSTICK",
134    "events": [
135      {"action": "MOVE", "axes": {"AXIS_Z": 1}},
136      {"action": "MOVE", "axes": {"AXIS_Z": 0}}
137    ]
138  },
139
140  {
141    "name": "Right stick - press up",
142    "reports": [
143      [0x01, 0x80, 0x80, 0x80, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0xff],
144      [0x01, 0x80, 0x80, 0x80, 0x80, 0x08, 0x00, 0x00, 0x00, 0x00, 0xff]
145    ],
146    "source": "JOYSTICK",
147    "events": [
148      {"action": "MOVE", "axes": {"AXIS_RZ": -1}},
149      {"action": "MOVE", "axes": {"AXIS_RZ": 0}}
150    ]
151  },
152
153  {
154    "name": "Right stick - press down",
155    "reports": [
156      [0x01, 0x80, 0x80, 0x80, 0xff, 0x08, 0x00, 0x00, 0x00, 0x00, 0xff],
157      [0x01, 0x80, 0x80, 0x80, 0x80, 0x08, 0x00, 0x00, 0x00, 0x00, 0xff]
158    ],
159    "source": "JOYSTICK",
160    "events": [
161      {"action": "MOVE", "axes": {"AXIS_RZ": 1}},
162      {"action": "MOVE", "axes": {"AXIS_RZ": 0}}
163    ]
164  },
165
166  {
167    "name": "Left trigger - quick press",
168    "reports": [
169      [0x01, 0x80, 0x80, 0x80, 0x80, 0x08, 0x00, 0x00, 0xff, 0x00, 0xff],
170      [0x01, 0x80, 0x80, 0x80, 0x80, 0x08, 0x00, 0x00, 0x00, 0x00, 0xff]
171    ],
172    "source": "JOYSTICK",
173    "events": [
174      {"action": "MOVE", "axes": {"AXIS_LTRIGGER": 1.0, "AXIS_BRAKE": 1.0}},
175      {"action": "MOVE", "axes": {"AXIS_LTRIGGER": 0, "AXIS_BRAKE": 0}}
176    ]
177  },
178
179  {
180    "name": "Right trigger - quick press",
181    "reports": [
182      [0x01, 0x80, 0x80, 0x80, 0x80, 0x08, 0x00, 0x00, 0x00, 0xff, 0xff],
183      [0x01, 0x80, 0x80, 0x80, 0x80, 0x08, 0x00, 0x00, 0x00, 0x00, 0xff]
184    ],
185    "source": "JOYSTICK",
186    "events": [
187      {"action": "MOVE", "axes": {"AXIS_RTRIGGER": 1.0, "AXIS_GAS": 1.0}},
188      {"action": "MOVE", "axes": {"AXIS_RTRIGGER": 0, "AXIS_GAS": 0}}
189    ]
190  }
191
192
193]