Формат структуры данных и структуры описателей

Параметры и настройки датчиков ZETSENSOR хранятся в его внутренней памяти в виде структур языка C. Каждой из структур, доступных для чтения и записи, соответствует структура-описатель.
Формат структуры данных имеет следующий вид (см. Рисунок 1).

Формат структуры данных
Рисунок 1. Формат структуры данных ZETSENSOR

STRUCT_HEAD имеет следующий вид:
typedef struct {
    unsigned int size : 12;
    unsigned int struct_type : 10;
    unsigned int status : 10;
    unsigned int write_enable : 16;
    unsigned int usCRC16 : 16;
} STRUCT_HEAD;
где:
size – размер структуры;
struct_type – идентификатор структуры;
status – идентификатор ошибки;
write_enable – статус при записи данных;
usCRC16 – контрольная сумма.
Наиболее важными являются структуры DEV_PAR (структура с идентификационными данными датчика, идентификатор структуры 0x18C) и CHANNEL_PAR (структура с настройками измерительного канала датчика, идентификатор структуры 0x0D0)
Структура DEV_PAR имеет вид:
typedef struct {
    STRUCT_HEAD head;
    long type;
    unsigned long long serial_num;
    long compile_time;
    long edition_time;
    unsigned long dev_addr;
}
DEV_PAR;
где:
type – идентификатор типа датчика;
serial_num – серийный номер датчика;
compile_time – версия программного обеспечения датчика;
edition_time – время последнего изменения настроек датчика;
dev_addr – адрес устройства (от 1 до 63).
Структура CHANNEL_PAR имеет вид:
typedef struct {
    STRUCT_HEAD head;
    float value;
    float frequency;
    char measure[8];
    char channel_name[32];
    float min_level;
    float max_level;
    float reference;
    float sense;
    float resolution;
}
CHANNEL_PAR;
где:
value – текущее измеренное значение, ед. изм.;
frequency – частота обновления данных в канале, Гц;
measure – единица измерения по каналу;
channel_name –название канала;
min_level – минимальное измеряемое значение по каналу, ед. изм.;
max_level – максимальное измеряемое значение по каналу, ед. изм.;
reference – опорное значение, ед. изм.;
sense – чувствительность, В/ед. изм.;
resolution – порог чувствительности, ед. изм.;
Структуры расположены в памяти датчика друг за другом.