fb_strip.struct Данный файл содержит описание структур, которые могут встретиться при разборе log-файла, выгруженного из flyboard. Т.к. версия ПО БРЭО может постоянно изменяться, в том числе меняться формат сохраняемых данных, то предусмотрена возможность объявить в данном файле те типы записей, которые могут встретится в лог файле. Напомним еще раз структуру лог-файла. После выгрузки в бинарный файл лог с сохраненными данными БРЭО содержит набор цепочек блоков. Блоки равны размеру физической страницы микросхемы памяти . Кажая цепочка - один сеанс записи. можно рассматривать как независимый файл. Первые 2 байта в каждом блоке являются уникальным идентификатором сеанса записи (файла). При работе с fb_strip нужно указать какую именно из цепочек вы хотите экспортировать в текстовый файл. После объединения блоков и удаления идентификатора записи (файла), бинарные данные представляют из себя последовательность записей (records). Минимальной единицей сохраняемых данных является - parmeter (например : тепература, счетчик времени данной записи, давление, АЦП гироскопа и т.п.) Как понимаем, параметры тоже имеют разный размер и для того чтобы их различать используется paramete_id. Запись (record) является набором параметров, которые сохраняются одновременно исходя из заданного алгоритма. Каждая запись имеет заголовок из 2-х байт. Первый - длина записи, второй - идентификатор записи. Тело записи состаит из некоторого числа байт. Конкретное число байт определяется идентификатором записи и зависит от того, что именно сохраняет БРЭО в записях данного типа. Чтобы задать структуру данных для каждого из типов записей и используется данный файл. Итак приступим. Каждая строчка в файле fb_strip.struct объявляет либо parameter с его характеристиками, либо запись с указаниемем последовательности параметров, которые ее составляют. Строки начинающиеся с числа 254 ($FE) объявляют один из параметров. Строки начинающиеся с числа 253 ($FD) объявляют одну из записей. для объявления параметра, последовательно указываются следующие поля разделенные табулятором: param_id - идентификатор параметра. число не более 255 param_name - наименование данного параметра, для использования в качестве заголовка столбца при выгрузке (МАКС 8 симв) data_len - размер параметра в байтах (сколько байт он занимает в записи) cell_len - ширина столбца в пикселях для отображения в программе, по умолчанию 40 trans_func - функция перевода значения при выгрузке в тестовый файл. может быть типов: intToStr целое без знака. разрядность зависит от длины параметра. параметр длиной 3 байта доводится размером до 1 слова. SintToStr целое со знаком. разрядность зависит от длины параметра. параметр длиной 3 байта доводится размером до 1 слова. iHexToStr отображение в строке как последовательности шестнадцитиричных чисел. последний байт - первый в строке. HexToStr отображение в строке как последовательности шестнадцитиричных чисел. первый байт - первый в строке. для объявления записи используются следующие поля: rec_id - идентификатор типа записи rec_name - наименование записи, импользуется при выгрузке (МАКС 12 симв) first_param_id - идентификатор первого параметра second_param_id - идентификатор следующего парметра, и т.д. .... ВНИМАНИЕ! не рекоменндуется использовать следующие идентификаторы: param_id : 01, 02 rec_id : 253, 254, 255 (догадливые могут догадываться о недокументированной возможности передачи форматов записей и параметров через сам лог файл от брэо , но ...) param_name : начинающиеся со знака '_'. Данный знак является признаком что параметр является сгенеренным по объявлению в составе записи, но позже так и не нашлось для него отдельного объявления. исппользуется для контроля целостности и полноты файла fb_strip.struct подведем итог, данные в файле начинаю анализироваться после строки СТАРТ строка с первым символом '#' или ';' игнорируется как комментарий строка пустая игнорируются. поля в строке разделяются табулятором. поехали... START 254 03 Ticks 4 60 intToStr 254 04 RstTime 4 60 254 21 Pressure 2 60 intToStr ; объявляем что запись с индеком 01 называется fileopen и содержит в себе после заголовка параметры ; тиков системных часов и даты сброса системных часов БРЭО. ; используется для определения время создания файла 253 01 fileopen 03 04 ; только давление и показания системных часов 253 $21 press_only 03 21 222 11