1[
2  {
3    "name": "Sanity check - should not produce any events",
4    "reports": [
5      [0x01, 0x00, 0x80, 0x83, 0x80, 0x80, 0x80, 0x00, 0x00]
6    ],
7    "events": []
8  },
9
10  {
11    "name": "Left stick - press down (all axes)",
12    "reports": [
13      [0x01, 0x00, 0x80, 0x87, 0x89, 0x72, 0x80, 0x00, 0x00],
14      [0x01, 0x00, 0x80, 0x93, 0xf7, 0x71, 0x80, 0x00, 0x00],
15      [0x01, 0x00, 0x80, 0xa0, 0xff, 0x71, 0x80, 0x00, 0x00],
16      [0x01, 0x00, 0x80, 0x83, 0x73, 0x71, 0x80, 0x00, 0x00],
17      [0x01, 0x00, 0x80, 0x83, 0x80, 0x72, 0x80, 0x00, 0x00]
18    ],
19    "source": "JOYSTICK",
20    "events": [
21      {"action": "MOVE", "axes": {"AXIS_X": 0.059, "AXIS_Y": 0.0745, "AXIS_Z": -0.106}},
22      {"action": "MOVE", "axes": {"AXIS_X": 0.153, "AXIS_Y": 0.9373, "AXIS_Z": -0.106}},
23      {"action": "MOVE", "axes": {"AXIS_X": 0.255, "AXIS_Y": 1.0000, "AXIS_Z": -0.106}},
24      {"action": "MOVE", "axes": {"AXIS_X": 0.027, "AXIS_Y": -0.098, "AXIS_Z": -0.106}},
25      {"action": "MOVE", "axes": {"AXIS_X": 0.027, "AXIS_Y": 0.0039, "AXIS_Z": -0.106}}
26    ]
27  },
28
29  {
30    "name": "Press left DPAD key",
31    "reports": [
32      [0x01, 0x00, 0x60, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00],
33      [0x01, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00]
34    ],
35    "source": "JOYSTICK",
36    "events": [
37      {"action": "MOVE", "axes": {"AXIS_HAT_X": -1}},
38      {"action": "MOVE", "axes": {"AXIS_HAT_X": 0}}
39    ]
40  },
41
42  {
43    "name": "Press right DPAD key",
44    "reports": [
45      [0x01, 0x00, 0x20, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00],
46      [0x01, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00]
47    ],
48    "source": "JOYSTICK",
49    "events": [
50      {"action": "MOVE", "axes": {"AXIS_HAT_X": 1}},
51      {"action": "MOVE", "axes": {"AXIS_HAT_X": 0}}
52    ]
53  },
54
55  {
56    "name": "Press up DPAD key",
57    "reports": [
58      [0x01, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00],
59      [0x01, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00]
60    ],
61    "source": "JOYSTICK",
62    "events": [
63      {"action": "MOVE", "axes": {"AXIS_HAT_Y": -1}},
64      {"action": "MOVE", "axes": {"AXIS_HAT_Y": 0}}
65    ]
66  },
67
68  {
69    "name": "Press down DPAD key",
70    "reports": [
71      [0x01, 0x00, 0x40, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00],
72      [0x01, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00]
73    ],
74    "source": "JOYSTICK",
75    "events": [
76      {"action": "MOVE", "axes": {"AXIS_HAT_Y": 1}},
77      {"action": "MOVE", "axes": {"AXIS_HAT_Y": 0}}
78    ]
79  },
80
81  {
82    "name": "Left stick - press left",
83    "reports": [
84      [0x01, 0x00, 0x80, 0x16, 0x80, 0x80, 0x80, 0x00, 0x00],
85      [0x01, 0x00, 0x80, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00],
86      [0x01, 0x00, 0x80, 0x20, 0x80, 0x80, 0x80, 0x00, 0x00],
87      [0x01, 0x00, 0x80, 0x7a, 0x80, 0x80, 0x80, 0x00, 0x00]
88    ],
89    "source": "JOYSTICK",
90    "events": [
91      {"action": "MOVE", "axes": {"AXIS_X": -0.827}},
92      {"action": "MOVE", "axes": {"AXIS_X": -1.0}},
93      {"action": "MOVE", "axes": {"AXIS_X": -0.749}},
94      {"action": "MOVE", "axes": {"AXIS_X": -0.043}}
95    ]
96  },
97
98  {
99    "name": "Left stick - press right",
100    "reports": [
101      [0x01, 0x00, 0x80, 0xd3, 0x80, 0x80, 0x80, 0x00, 0x00],
102      [0x01, 0x00, 0x80, 0xff, 0x80, 0x80, 0x80, 0x00, 0x00],
103      [0x01, 0x00, 0x80, 0x74, 0x80, 0x80, 0x80, 0x00, 0x00],
104      [0x01, 0x00, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x00, 0x00]
105    ],
106    "source": "JOYSTICK",
107    "events": [
108      {"action": "MOVE", "axes": {"AXIS_X": 0.655}},
109      {"action": "MOVE", "axes": {"AXIS_X": 1.0}},
110      {"action": "MOVE", "axes": {"AXIS_X": -0.090}},
111      {"action": "MOVE", "axes": {"AXIS_X": -0.004}}
112    ]
113  },
114
115  {
116    "name": "Left stick - press up",
117    "reports": [
118      [0x01, 0x00, 0x80, 0x80, 0x7c, 0x80, 0x80, 0x00, 0x00],
119      [0x01, 0x00, 0x80, 0x80, 0x55, 0x80, 0x80, 0x00, 0x00],
120      [0x01, 0x00, 0x80, 0x80, 0x20, 0x80, 0x80, 0x00, 0x00],
121      [0x01, 0x00, 0x80, 0x80, 0x00, 0x80, 0x80, 0x00, 0x00],
122      [0x01, 0x00, 0x80, 0x80, 0x09, 0x80, 0x80, 0x00, 0x00],
123      [0x01, 0x00, 0x80, 0x80, 0x4a, 0x80, 0x80, 0x00, 0x00],
124      [0x01, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00]
125    ],
126    "source": "JOYSTICK",
127    "events": [
128      {"action": "MOVE", "axes": {"AXIS_Y": -0.031}},
129      {"action": "MOVE", "axes": {"AXIS_Y": -0.333}},
130      {"action": "MOVE", "axes": {"AXIS_Y": -0.749}},
131      {"action": "MOVE", "axes": {"AXIS_Y": -1.0}},
132      {"action": "MOVE", "axes": {"AXIS_Y": -0.929}},
133      {"action": "MOVE", "axes": {"AXIS_Y": -0.420}},
134      {"action": "MOVE", "axes": {"AXIS_Y": 0.004}}
135    ]
136  },
137
138  {
139    "name": "Left stick - press down",
140    "reports": [
141      [0x01, 0x00, 0x80, 0x80, 0x97, 0x80, 0x80, 0x00, 0x00],
142      [0x01, 0x00, 0x80, 0x80, 0xff, 0x80, 0x80, 0x00, 0x00],
143      [0x01, 0x00, 0x80, 0x80, 0xd1, 0x80, 0x80, 0x00, 0x00],
144      [0x01, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00]
145    ],
146    "source": "JOYSTICK",
147    "events": [
148      {"action": "MOVE", "axes": {"AXIS_Y": 0.184}},
149      {"action": "MOVE", "axes": {"AXIS_Y": 1.0}},
150      {"action": "MOVE", "axes": {"AXIS_Y": 0.639}},
151      {"action": "MOVE", "axes": {"AXIS_Y": 0.004}}
152    ]
153  },
154
155  {
156    "name": "Right stick - press left",
157    "reports": [
158      [0x01, 0x00, 0x80, 0x80, 0x80, 0x66, 0x80, 0x00, 0x00],
159      [0x01, 0x00, 0x80, 0x80, 0x80, 0x13, 0x80, 0x00, 0x00],
160      [0x01, 0x00, 0x80, 0x80, 0x80, 0x00, 0x80, 0x00, 0x00],
161      [0x01, 0x00, 0x80, 0x80, 0x80, 0x21, 0x80, 0x00, 0x00],
162      [0x01, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00]
163    ],
164    "source": "JOYSTICK",
165    "events": [
166      {"action": "MOVE", "axes": {"AXIS_Z": -0.200}},
167      {"action": "MOVE", "axes": {"AXIS_Z": -0.851}},
168      {"action": "MOVE", "axes": {"AXIS_Z": -1.0}},
169      {"action": "MOVE", "axes": {"AXIS_Z": -0.74}},
170      {"action": "MOVE", "axes": {"AXIS_Z": 0.004}}
171    ]
172  },
173
174  {
175    "name": "Right stick - press right",
176    "reports": [
177      [0x01, 0x00, 0x80, 0x80, 0x80, 0x8e, 0x80, 0x00, 0x00],
178      [0x01, 0x00, 0x80, 0x80, 0x80, 0x9d, 0x80, 0x00, 0x00],
179      [0x01, 0x00, 0x80, 0x80, 0x80, 0xc4, 0x80, 0x00, 0x00],
180      [0x01, 0x00, 0x80, 0x80, 0x80, 0xeb, 0x80, 0x00, 0x00],
181      [0x01, 0x00, 0x80, 0x80, 0x80, 0xff, 0x80, 0x00, 0x00],
182      [0x01, 0x00, 0x80, 0x80, 0x80, 0xcf, 0x80, 0x00, 0x00],
183      [0x01, 0x00, 0x80, 0x80, 0x80, 0x93, 0x80, 0x00, 0x00],
184      [0x01, 0x00, 0x80, 0x80, 0x80, 0x8c, 0x80, 0x00, 0x00]
185    ],
186    "source": "JOYSTICK",
187    "events": [
188      {"action": "MOVE", "axes": {"AXIS_Z": 0.114}},
189      {"action": "MOVE", "axes": {"AXIS_Z": 0.231}},
190      {"action": "MOVE", "axes": {"AXIS_Z": 0.537}},
191      {"action": "MOVE", "axes": {"AXIS_Z": 0.843}},
192      {"action": "MOVE", "axes": {"AXIS_Z": 1.0}},
193      {"action": "MOVE", "axes": {"AXIS_Z": 0.624}},
194      {"action": "MOVE", "axes": {"AXIS_Z": 0.153}},
195      {"action": "MOVE", "axes": {"AXIS_Z": 0.098}}
196    ]
197  },
198
199  {
200    "name": "Right stick - press up",
201    "reports": [
202      [0x01, 0x00, 0x80, 0x80, 0x80, 0x80, 0x61, 0x00, 0x00],
203      [0x01, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00],
204      [0x01, 0x00, 0x80, 0x80, 0x80, 0x80, 0x55, 0x00, 0x00],
205      [0x01, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00]
206    ],
207    "source": "JOYSTICK",
208    "events": [
209      {"action": "MOVE", "axes": {"AXIS_RZ": -0.239}},
210      {"action": "MOVE", "axes": {"AXIS_RZ": -1.0}},
211      {"action": "MOVE", "axes": {"AXIS_RZ": -0.333}},
212      {"action": "MOVE", "axes": {"AXIS_RZ": 0.004}}
213    ]
214  },
215
216  {
217    "name": "Right stick - press down",
218    "reports": [
219      [0x01, 0x00, 0x80, 0x80, 0x80, 0x80, 0x83, 0x00, 0x00],
220      [0x01, 0x00, 0x80, 0x80, 0x80, 0x80, 0x90, 0x00, 0x00],
221      [0x01, 0x00, 0x80, 0x80, 0x80, 0x80, 0xff, 0x00, 0x00],
222      [0x01, 0x00, 0x80, 0x80, 0x80, 0x80, 0x54, 0x00, 0x00],
223      [0x01, 0x00, 0x80, 0x80, 0x80, 0x80, 0x82, 0x00, 0x00],
224      [0x01, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00]
225    ],
226    "source": "JOYSTICK",
227    "events": [
228      {"action": "MOVE", "axes": {"AXIS_RZ": 0.129}},
229      {"action": "MOVE", "axes": {"AXIS_RZ": 1.0}},
230      {"action": "MOVE", "axes": {"AXIS_RZ": -0.341}},
231      {"action": "MOVE", "axes": {"AXIS_RZ": 0.020}},
232      {"action": "MOVE", "axes": {"AXIS_RZ": 0.004}}
233    ]
234  },
235
236  {
237    "name": "Left trigger - quick press",
238    "reports": [
239      [0x01, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0xa6, 0x00],
240      [0x01, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0xff, 0x00],
241      [0x01, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x90, 0x00],
242      [0x01, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00]
243    ],
244    "source": "JOYSTICK",
245    "events": [
246      {"action": "MOVE", "axes": {"AXIS_LTRIGGER": 0.651, "AXIS_BRAKE": 0.651}},
247      {"action": "MOVE", "axes": {"AXIS_LTRIGGER": 1.0, "AXIS_BRAKE": 1.0}},
248      {"action": "MOVE", "axes": {"AXIS_LTRIGGER": 0.565, "AXIS_BRAKE": 0.565}},
249      {"action": "MOVE", "axes": {"AXIS_LTRIGGER": 0, "AXIS_BRAKE": 0}}
250    ]
251  },
252
253  {
254    "name": "Right trigger - quick press",
255    "reports": [
256      [0x01, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0xaf],
257      [0x01, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0xff],
258      [0x01, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0xa5],
259      [0x01, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00]
260    ],
261    "source": "JOYSTICK",
262    "events": [
263      {"action": "MOVE", "axes": {"AXIS_RTRIGGER": 0.686, "AXIS_GAS": 0.686}},
264      {"action": "MOVE", "axes": {"AXIS_RTRIGGER": 1.0, "AXIS_GAS": 1.0}},
265      {"action": "MOVE", "axes": {"AXIS_RTRIGGER": 0.647, "AXIS_GAS": 0.647}},
266      {"action": "MOVE", "axes": {"AXIS_RTRIGGER": 0, "AXIS_GAS": 0}}
267    ]
268  }
269]
270