summaryrefslogtreecommitdiffstats
path: root/invensense/mlsdk/mllite/dmpKey.h
blob: 3e2e667632cf20ac8d66a7ce4945e83e95550143 (plain)
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
/*
 $License:
   Copyright 2011 InvenSense, Inc.

 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at

 http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
  $
 */
#ifndef DMPKEY_H__
#define DMPKEY_H__

#define KEY_CFG_25  0
#define KEY_CFG_24                 (KEY_CFG_25+1)
#define KEY_CFG_26                 (KEY_CFG_24+1)
#define KEY_CFG_21                 (KEY_CFG_26+1)
#define KEY_CFG_20                 (KEY_CFG_21+1)
#define KEY_CFG_TAP4               (KEY_CFG_20+1)
#define KEY_CFG_TAP5               (KEY_CFG_TAP4+1)
#define KEY_CFG_TAP6               (KEY_CFG_TAP5+1)
#define KEY_CFG_TAP7               (KEY_CFG_TAP6+1)
#define KEY_CFG_TAP0               (KEY_CFG_TAP7+1)
#define KEY_CFG_TAP1               (KEY_CFG_TAP0+1)
#define KEY_CFG_TAP2               (KEY_CFG_TAP1+1)
#define KEY_CFG_TAP3               (KEY_CFG_TAP2+1)
#define KEY_CFG_TAP_QUANTIZE       (KEY_CFG_TAP3+1)
#define KEY_CFG_TAP_JERK           (KEY_CFG_TAP_QUANTIZE+1)
#define KEY_CFG_TAP_SAVE_ACCB      (KEY_CFG_TAP_JERK+1)
#define KEY_CFG_TAP_CLEAR_STICKY   (KEY_CFG_TAP_SAVE_ACCB+1)
#define KEY_FCFG_ACCEL_INPUT       (KEY_CFG_TAP_CLEAR_STICKY +1)
#define KEY_FCFG_ACCEL_INIT        (KEY_FCFG_ACCEL_INPUT+1)
#define KEY_CFG_23                 (KEY_FCFG_ACCEL_INIT+1)
#define KEY_FCFG_1                 (KEY_CFG_23+1)
#define KEY_FCFG_3                 (KEY_FCFG_1+1)
#define KEY_FCFG_2                 (KEY_FCFG_3+1)
#define KEY_CFG_3D                 (KEY_FCFG_2+1)
#define KEY_CFG_3B                 (KEY_CFG_3D+1)
#define KEY_CFG_3C                 (KEY_CFG_3B+1)
#define KEY_FCFG_5                 (KEY_CFG_3C+1)
#define KEY_FCFG_4                 (KEY_FCFG_5+1)
#define KEY_FCFG_7                 (KEY_FCFG_4+1)
#define KEY_FCFG_FSCALE            (KEY_FCFG_7+1)
#define KEY_FCFG_AZ                (KEY_FCFG_FSCALE+1)
#define KEY_FCFG_6                 (KEY_FCFG_AZ+1)
#define KEY_FCFG_LSB4              (KEY_FCFG_6+1)
#define KEY_CFG_12                 (KEY_FCFG_LSB4+1)
#define KEY_CFG_14                 (KEY_CFG_12+1)
#define KEY_CFG_15                 (KEY_CFG_14+1)
#define KEY_CFG_16                 (KEY_CFG_15+1)
#define KEY_CFG_18                 (KEY_CFG_16+1)
#define KEY_CFG_6                  (KEY_CFG_18 + 1)
#define KEY_CFG_7                  (KEY_CFG_6+1)
#define KEY_CFG_4                  (KEY_CFG_7+1)
#define KEY_CFG_5                  (KEY_CFG_4+1)
#define KEY_CFG_2                  (KEY_CFG_5+1)
#define KEY_CFG_3                  (KEY_CFG_2+1)
#define KEY_CFG_1                  (KEY_CFG_3+1)
#define KEY_CFG_EXTERNAL           (KEY_CFG_1+1)
#define KEY_CFG_8                  (KEY_CFG_EXTERNAL+1)
#define KEY_CFG_9                  (KEY_CFG_8+1)
#define KEY_CFG_ORIENT_3           (KEY_CFG_9 + 1)
#define KEY_CFG_ORIENT_2           (KEY_CFG_ORIENT_3 + 1)
#define KEY_CFG_ORIENT_1           (KEY_CFG_ORIENT_2 + 1)
#define KEY_CFG_GYRO_SOURCE        (KEY_CFG_ORIENT_1 + 1)
#define KEY_CFG_ORIENT_IRQ_1       (KEY_CFG_GYRO_SOURCE + 1)
#define KEY_CFG_ORIENT_IRQ_2       (KEY_CFG_ORIENT_IRQ_1 + 1)
#define KEY_CFG_ORIENT_IRQ_3       (KEY_CFG_ORIENT_IRQ_2 + 1)
#define KEY_FCFG_MAG_VAL           (KEY_CFG_ORIENT_IRQ_3 + 1)
#define KEY_FCFG_MAG_MOV           (KEY_FCFG_MAG_VAL + 1)

#define KEY_D_0_22                 (KEY_FCFG_MAG_MOV + 1)
#define KEY_D_0_24                 (KEY_D_0_22+1)
#define KEY_D_0_36                 (KEY_D_0_24+1)
#define KEY_D_0_52                 (KEY_D_0_36+1)
#define KEY_D_0_96                 (KEY_D_0_52+1)
#define KEY_D_0_104                (KEY_D_0_96+1)
#define KEY_D_0_108                (KEY_D_0_104+1)
#define KEY_D_0_163                (KEY_D_0_108+1)
#define KEY_D_0_188                (KEY_D_0_163+1)
#define KEY_D_0_192                (KEY_D_0_188+1)
#define KEY_D_0_224                (KEY_D_0_192+1)
#define KEY_D_0_228                (KEY_D_0_224+1)
#define KEY_D_0_232                (KEY_D_0_228+1)
#define KEY_D_0_236                (KEY_D_0_232+1)

#define KEY_DMP_PREVPTAT           (KEY_D_0_236+1)
#define KEY_D_1_2                  (KEY_DMP_PREVPTAT+1)
#define KEY_D_1_4                  (KEY_D_1_2 + 1)
#define KEY_D_1_8                  (KEY_D_1_4 + 1)
#define KEY_D_1_10                 (KEY_D_1_8+1)
#define KEY_D_1_24                 (KEY_D_1_10+1)
#define KEY_D_1_28                 (KEY_D_1_24+1)
#define KEY_D_1_92                 (KEY_D_1_28+1)
#define KEY_D_1_96                 (KEY_D_1_92+1)
#define KEY_D_1_98                 (KEY_D_1_96+1)
#define KEY_D_1_106                (KEY_D_1_98+1)
#define KEY_D_1_108                (KEY_D_1_106+1)
#define KEY_D_1_112                (KEY_D_1_108+1)
#define KEY_D_1_128                (KEY_D_1_112+1)
#define KEY_D_1_152                (KEY_D_1_128+1)
#define KEY_D_1_168                (KEY_D_1_152+1)
#define KEY_D_1_175                (KEY_D_1_168+1)
#define KEY_D_1_178                (KEY_D_1_175+1)
#define KEY_D_1_179                (KEY_D_1_178+1)
#define KEY_D_1_236                (KEY_D_1_179+1)
#define KEY_D_1_244                (KEY_D_1_236+1)
#define KEY_D_2_12                 (KEY_D_1_244+1)
#define KEY_D_2_96                 (KEY_D_2_12+1)
#define KEY_D_2_108                (KEY_D_2_96+1)
#define KEY_D_2_244                (KEY_D_2_108+1)
#define KEY_D_2_248                (KEY_D_2_244+1)
#define KEY_D_2_252                (KEY_D_2_248+1)

// Compass Keys
#define KEY_CPASS_BIAS_X            (KEY_D_2_252+1)
#define KEY_CPASS_BIAS_Y            (KEY_CPASS_BIAS_X+1)
#define KEY_CPASS_BIAS_Z            (KEY_CPASS_BIAS_Y+1)
#define KEY_CPASS_MTX_00            (KEY_CPASS_BIAS_Z+1)
#define KEY_CPASS_MTX_01            (KEY_CPASS_MTX_00+1)
#define KEY_CPASS_MTX_02            (KEY_CPASS_MTX_01+1)
#define KEY_CPASS_MTX_10            (KEY_CPASS_MTX_02+1)
#define KEY_CPASS_MTX_11            (KEY_CPASS_MTX_10+1)
#define KEY_CPASS_MTX_12            (KEY_CPASS_MTX_11+1)
#define KEY_CPASS_MTX_20            (KEY_CPASS_MTX_12+1)
#define KEY_CPASS_MTX_21            (KEY_CPASS_MTX_20+1)
#define KEY_CPASS_MTX_22            (KEY_CPASS_MTX_21+1)

// Mantis Keys
#define KEY_CFG_MOTION_BIAS         (KEY_CPASS_MTX_22+1)

#define KEY_DMP_TAPW_MIN           (KEY_CFG_MOTION_BIAS+1)
#define KEY_DMP_TAP_THR_X          (KEY_DMP_TAPW_MIN+1)
#define KEY_DMP_TAP_THR_Y          (KEY_DMP_TAP_THR_X+1)
#define KEY_DMP_TAP_THR_Z          (KEY_DMP_TAP_THR_Y+1)
#define KEY_DMP_SH_TH_Y            (KEY_DMP_TAP_THR_Z+1)
#define KEY_DMP_SH_TH_X            (KEY_DMP_SH_TH_Y+1)
#define KEY_DMP_SH_TH_Z            (KEY_DMP_SH_TH_X+1)
#define KEY_DMP_ORIENT             (KEY_DMP_SH_TH_Z+1)
#define KEY_D_ACT0                 (KEY_DMP_ORIENT+1)
#define KEY_D_ACSX                 (KEY_D_ACT0+1)
#define KEY_D_ACSY                 (KEY_D_ACSX+1)
#define KEY_D_ACSZ                 (KEY_D_ACSY+1)

// Pedometer Standalone only keys
#define KEY_D_PEDSTD_BP_B          (KEY_D_ACSZ+1)
#define KEY_D_PEDSTD_HP_A          (KEY_D_PEDSTD_BP_B+1)
#define KEY_D_PEDSTD_HP_B          (KEY_D_PEDSTD_HP_A+1)
#define KEY_D_PEDSTD_BP_A4         (KEY_D_PEDSTD_HP_B+1)
#define KEY_D_PEDSTD_BP_A3         (KEY_D_PEDSTD_BP_A4+1)
#define KEY_D_PEDSTD_BP_A2         (KEY_D_PEDSTD_BP_A3+1)
#define KEY_D_PEDSTD_BP_A1         (KEY_D_PEDSTD_BP_A2+1)
#define KEY_D_PEDSTD_INT_THRSH     (KEY_D_PEDSTD_BP_A1+1)
#define KEY_D_PEDSTD_CLIP          (KEY_D_PEDSTD_INT_THRSH+1)
#define KEY_D_PEDSTD_SB            (KEY_D_PEDSTD_CLIP+1)
#define KEY_D_PEDSTD_SB_TIME       (KEY_D_PEDSTD_SB+1)
#define KEY_D_PEDSTD_PEAKTHRSH     (KEY_D_PEDSTD_SB_TIME+1)
#define KEY_D_PEDSTD_TIML          (KEY_D_PEDSTD_PEAKTHRSH+1)
#define KEY_D_PEDSTD_TIMH          (KEY_D_PEDSTD_TIML+1)
#define KEY_D_PEDSTD_PEAK          (KEY_D_PEDSTD_TIMH+1)
#define KEY_D_PEDSTD_TIMECTR       (KEY_D_PEDSTD_PEAK+1)
#define KEY_D_PEDSTD_STEPCTR       (KEY_D_PEDSTD_TIMECTR+1)
#define KEY_D_PEDSTD_WALKTIME      (KEY_D_PEDSTD_STEPCTR+1)

// EIS Keys
#define KEY_P_EIS_FIFO_FOOTER      (KEY_D_PEDSTD_WALKTIME+1)
#define KEY_P_EIS_FIFO_YSHIFT      (KEY_P_EIS_FIFO_FOOTER+1)
#define KEY_P_EIS_DATA_RATE        (KEY_P_EIS_FIFO_YSHIFT+1)
#define KEY_P_EIS_FIFO_XSHIFT      (KEY_P_EIS_DATA_RATE+1)
#define KEY_P_EIS_FIFO_SYNC        (KEY_P_EIS_FIFO_XSHIFT+1)
#define KEY_P_EIS_FIFO_ZSHIFT      (KEY_P_EIS_FIFO_SYNC+1)
#define KEY_P_EIS_FIFO_READY       (KEY_P_EIS_FIFO_ZSHIFT+1)
#define KEY_DMP_FOOTER             (KEY_P_EIS_FIFO_READY+1)
#define KEY_DMP_INTX_HC            (KEY_DMP_FOOTER+1)
#define KEY_DMP_INTX_PH            (KEY_DMP_INTX_HC+1)
#define KEY_DMP_INTX_SH            (KEY_DMP_INTX_PH+1)
#define KEY_DMP_AINV_SH            (KEY_DMP_INTX_SH +1)
#define KEY_DMP_A_INV_XH           (KEY_DMP_AINV_SH+1)
#define KEY_DMP_AINV_PH            (KEY_DMP_A_INV_XH+1)
#define KEY_DMP_CTHX_H             (KEY_DMP_AINV_PH+1)
#define KEY_DMP_CTHY_H             (KEY_DMP_CTHX_H+1)
#define KEY_DMP_CTHZ_H             (KEY_DMP_CTHY_H+1)
#define KEY_DMP_NCTHX_H            (KEY_DMP_CTHZ_H+1)
#define KEY_DMP_NCTHY_H            (KEY_DMP_NCTHX_H+1)
#define KEY_DMP_NCTHZ_H            (KEY_DMP_NCTHY_H+1)
#define KEY_DMP_CTSQ_XH            (KEY_DMP_NCTHZ_H+1)
#define KEY_DMP_CTSQ_YH            (KEY_DMP_CTSQ_XH+1)
#define KEY_DMP_CTSQ_ZH            (KEY_DMP_CTSQ_YH+1)
#define KEY_DMP_INTX_H             (KEY_DMP_CTSQ_ZH+1)
#define KEY_DMP_INTY_H             (KEY_DMP_INTX_H+1)
#define KEY_DMP_INTZ_H             (KEY_DMP_INTY_H+1)
#define KEY_DMP_HPX_H              (KEY_DMP_INTZ_H+1)
#define KEY_DMP_HPY_H              (KEY_DMP_HPX_H+1)
#define KEY_DMP_HPZ_H              (KEY_DMP_HPY_H+1)

// Stream Keys
#define KEY_STREAM_P_GYRO_Z        (KEY_DMP_HPZ_H + 1)
#define KEY_STREAM_P_GYRO_Y        (KEY_STREAM_P_GYRO_Z+1)
#define KEY_STREAM_P_GYRO_X        (KEY_STREAM_P_GYRO_Y+1)
#define KEY_STREAM_P_TEMP          (KEY_STREAM_P_GYRO_X+1)
#define KEY_STREAM_P_AUX_Y         (KEY_STREAM_P_TEMP+1)
#define KEY_STREAM_P_AUX_X         (KEY_STREAM_P_AUX_Y+1)
#define KEY_STREAM_P_AUX_Z         (KEY_STREAM_P_AUX_X+1)
#define KEY_STREAM_P_ACCEL_Y       (KEY_STREAM_P_AUX_Z+1)
#define KEY_STREAM_P_ACCEL_X       (KEY_STREAM_P_ACCEL_Y+1)
#define KEY_STREAM_P_FOOTER        (KEY_STREAM_P_ACCEL_X+1)
#define KEY_STREAM_P_ACCEL_Z       (KEY_STREAM_P_FOOTER+1)

#define NUM_KEYS (KEY_STREAM_P_ACCEL_Z+1)

    typedef struct {
        unsigned short key;
        unsigned short addr;
    } tKeyLabel;

#define DINA0A 0x0a
#define DINA22 0x22
#define DINA42 0x42
#define DINA5A 0x5a

#define DINA06 0x06
#define DINA0E 0x0e
#define DINA16 0x16
#define DINA1E 0x1e
#define DINA26 0x26
#define DINA2E 0x2e
#define DINA36 0x36
#define DINA3E 0x3e
#define DINA46 0x46
#define DINA4E 0x4e
#define DINA56 0x56
#define DINA5E 0x5e
#define DINA66 0x66
#define DINA6E 0x6e
#define DINA76 0x76
#define DINA7E 0x7e

#define DINA00 0x00
#define DINA08 0x08
#define DINA10 0x10
#define DINA18 0x18
#define DINA20 0x20
#define DINA28 0x28
#define DINA30 0x30
#define DINA38 0x38
#define DINA40 0x40
#define DINA48 0x48
#define DINA50 0x50
#define DINA58 0x58
#define DINA60 0x60
#define DINA68 0x68
#define DINA70 0x70
#define DINA78 0x78

#define DINA04 0x04
#define DINA0C 0x0c
#define DINA14 0x14
#define DINA1C 0x1C
#define DINA24 0x24
#define DINA2C 0x2c
#define DINA34 0x34
#define DINA3C 0x3c
#define DINA44 0x44
#define DINA4C 0x4c
#define DINA54 0x54
#define DINA5C 0x5c
#define DINA64 0x64
#define DINA6C 0x6c
#define DINA74 0x74
#define DINA7C 0x7c

#define DINA01 0x01
#define DINA09 0x09
#define DINA11 0x11
#define DINA19 0x19
#define DINA21 0x21
#define DINA29 0x29
#define DINA31 0x31
#define DINA39 0x39
#define DINA41 0x41
#define DINA49 0x49
#define DINA51 0x51
#define DINA59 0x59
#define DINA61 0x61
#define DINA69 0x69
#define DINA71 0x71
#define DINA79 0x79

#define DINA25 0x25
#define DINA2D 0x2d
#define DINA35 0x35
#define DINA3D 0x3d
#define DINA4D 0x4d
#define DINA55 0x55
#define DINA5D 0x5D
#define DINA6D 0x6d
#define DINA75 0x75
#define DINA7D 0x7d

#define DINC00 0x00
#define DINC01 0x01
#define DINC02 0x02
#define DINC03 0x03
#define DINC08 0x08
#define DINC09 0x09
#define DINC0A 0x0a
#define DINC0B 0x0b
#define DINC10 0x10
#define DINC11 0x11
#define DINC12 0x12
#define DINC13 0x13
#define DINC18 0x18
#define DINC19 0x19
#define DINC1A 0x1a
#define DINC1B 0x1b

#define DINC20 0x20
#define DINC21 0x21
#define DINC22 0x22
#define DINC23 0x23
#define DINC28 0x28
#define DINC29 0x29
#define DINC2A 0x2a
#define DINC2B 0x2b
#define DINC30 0x30
#define DINC31 0x31
#define DINC32 0x32
#define DINC33 0x33
#define DINC38 0x38
#define DINC39 0x39
#define DINC3A 0x3a
#define DINC3B 0x3b

#define DINC40 0x40
#define DINC41 0x41
#define DINC42 0x42
#define DINC43 0x43
#define DINC48 0x48
#define DINC49 0x49
#define DINC4A 0x4a
#define DINC4B 0x4b
#define DINC50 0x50
#define DINC51 0x51
#define DINC52 0x52
#define DINC53 0x53
#define DINC58 0x58
#define DINC59 0x59
#define DINC5A 0x5a
#define DINC5B 0x5b

#define DINC60 0x60
#define DINC61 0x61
#define DINC62 0x62
#define DINC63 0x63
#define DINC68 0x68
#define DINC69 0x69
#define DINC6A 0x6a
#define DINC6B 0x6b
#define DINC70 0x70
#define DINC71 0x71
#define DINC72 0x72
#define DINC73 0x73
#define DINC78 0x78
#define DINC79 0x79
#define DINC7A 0x7a
#define DINC7B 0x7b

#define DINA80 0x80
#define DINA90 0x90
#define DINAA0 0xa0
#define DINAC9 0xc9
#define DINACB 0xcb
#define DINACD 0xcd
#define DINACF 0xcf
#define DINAC8 0xc8
#define DINACA 0xca
#define DINACC 0xcc
#define DINACE 0xce
#define DINAD8 0xd8
#define DINADD 0xdd
#define DINAF8 0xf8
#define DINAFE 0xfe
#define DINAC0 0xc0
#define DINAC1 0xc1
#define DINAC2 0xc2
#define DINAC3 0xc3
#define DINAC4 0xc4
#define DINAC5 0xc5


#endif // DMPKEY_H__