我目前正在使用加速度计及其 iio 缓冲区测试一些东西,有些东西让我感到困惑。传感器确实有四种不同的扫描元素:x
、y
和z
a timestamp
。这些值的索引是:
x = 0
, y = 1
,z = 2
和time = 3
. 到目前为止,一切都很好。如果我启用所有可用的扫描元素,则条目的顺序将根据描述设置。
一切启用:
0000010 f758 011c 3f64 c0b0 be90 0bfe 499f 0004
0000020 f724 0134 3f58 c0b0 3f2f 10ab 499f 0004
但是一旦我有间隙,例如,如果我禁用扫描元素y
,z
值会跳转到索引 1,我的缓冲区看起来像这样:
x
,z
和time
:
0000010 f720 3f70 0000 0000 722a 5c13 4946 0004
0000020 f728 3f74 0000 0000 0958 60c0 4946 0004
z
和time
:
0000010 3f6c 0000 0000 0000 ca0b 6ef1 48be 0004
0000020 3f44 0000 0000 0000 edf7 739e 48be 0004
只有x
和z
:
0000010 f720 3f48 f748 3f54 f744 3f5c f75c 3f68
0000020 f750 3f78 f738 3f80 f718 3f64 f700 3f50
我找不到有关此的更多信息,但我有点困惑和惊讶,一旦激活时间戳并且存在索引间隙,扫描元素不尊重它们的给定索引。这是正常行为还是当前传感器驱动程序混淆了一些东西?