-
Notifications
You must be signed in to change notification settings - Fork 9
2. pony_bus
danniknikolaev edited this page Jun 13, 2019
·
5 revisions
pony_bus - структура, описывающая шину данных
Шаблон:
#define pony_bus_version число //номер версии шины
typedef struct //шина
{
int ver; // версия шины
int mode; //значение bus.mode
//дополнительные части: структуры, группирующие данные и/или просто данные
char* cfg; //общая часть строки конфигурации
int cfglength; //длина общей части строки конфигурации
} pony_bus;
Пример:
#define pony_bus_version 0
typedef struct
{
int ver;
int mode;
pony_imu* imu;
pony_gnss* gnss;
pony_data t;
char* cfg;
int cfglength;
} pony_bus;
Структуры, группирующие данные:
Шаблон:
typedef struct
{
char* cfg; //строка конфигурации (только для этой структуры)
int cfglength; //длина строки конфигурации (только для этой структуры)
//дополнительные части: структуры, группирующие данные и/или просто данные
char* wcfg; //общая часть строки конфигурации (для этой и вложенных структур)
int wcfglength; //длина общей части строки конфигурации (для этой и вложенных структур)
} pony_название;
char* wcfg; int wcfglength;
не пишется, если нет вложенных структур в качестве дополнительных частей.
Пример:
typedef struct
{
char* cfg;
int cfglength;
pony_gnss_gps* gps;
pony_gnss_glo* glo;
pony_time_epoch epoch;
char* wcfg;
int wcfglength;
} pony_gnss;
Навигационные данные могут храниться в обычных числах и массивах, но при необходимости выполнения проверки на валидность данных нужно использовать pony_data или pony_dataArray.
typedef struct
{
double val; // значение измерения
unsigned char count; // счетчик для проверки изменения данных
unsigned char valid; // валидность данных
} pony_data;
typedef struct
{
double *val; // значения измерений
int count; // счетчик для проверки изменения данных
char valid; // валидность данных
int arrsize; // размер массива
} pony_dataArray;