Спецификация ARINC429 вообще чудесна:
Пример кодирования параметра 104 из спецификации:
Посмотреть вложение 752888
Поле данных 10 бит из 18, при этом цена младшего разряда = 16. Казалось бы, что мешает расширить его до 14 бит чтобы получить шаг 1? Зачем эти 8 бит резерва?
Из примера видно что параметр знаковый, однако в описании Range просто 16384, намека на знаковость нет. А для каких-то других параметров - есть, пишут например +-180. В общем знаковый параметр или нет - без поллитра не разобраться.
Параметр 370 назван коротко и ясно: g. Именно так, название состоит из 1 буквы, хотя у соседей названия нормальные.
Кстати у параметра 333 есть соседи:
331 Body Longitudinal Acceleration
332 Body Lateral Acceleration
T.e. есть ускорения по другим осям. А 370-й одинок - рядом никаких перегрузок нет. Можно предположить что это общая скалярная перегрузка, но это не точно.
Опять же, зачем выделять на значение только 12 бит, оставляя 6 бит резерва?
Ну и касаемо надежности - 1 бит паритета - это ниочем. Позволяет обнаружить ошибку только если число искаженных битов нечетное. Т.е. как вероятность встретить динозавра на улице у той блондинки из анекдота - 50%.
В современных протоколах как правили минимум 16 бит CRC или даже ECC коды, которые позволяют исправлять небольшие ошибки.
P.S. Декодируется пример с картинки так:
1101110110(bin) = 886
1024-886=138 (отрицательные числа в дополнительном коде)
138*16=2208 (почти 2200, ошиблись на 8, но это нормально т.к. шаг то 16).