скачкообразные индексы значений в буфере

#linux #buffer #iio

Вопрос:

В настоящее время я тестирую некоторые вещи с помощью акселерометра и его буфера 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
 

Я не смог найти дополнительную информацию по этому вопросу, но я немного сбит с толку и удивлен тем, что элементы сканирования не соблюдают заданный им индекс, как только активирована метка времени и есть пробел в индексе. Это нормальное поведение или это что-то, что перепутал текущий драйвер датчика?

Комментарии:

1. Какую версию ядра вы используете? Недавно был проведен большой рефакторинг внутри подсистемы IIO, чтобы убедиться, что метка времени всегда выровнена.

2. В настоящее время мы находимся на версии 4.19.0. Мне просто интересно, является ли это нормальным поведением или ошибкой в драйвере датчика

3. Можете ли вы воспроизвести это на последней версии vanilla (v5.14-rc6)? И мне интересно, почему вы используете 0 , когда стабильная версия v4.19.y в настоящее время составляет 204 .

4. Поскольку я не участвовал в выборе версии ядра, я не совсем понимаю причины этого выбора. Я уверен, что некоторые из них есть, но я не занимался этим. Я посмотрю, смогу ли я протестировать его на последней версии vanilla, и я дам вам знать