Застрял казалось бы на ровном месте.
Есть четыре установки, в каждой 19 каналов, в каждом канале 64 бита - каждый бит - флаг номера ошибки то есть всего 64 ошибки.
То есть
typedef struct
{
uint64_t channel_fail_codes[19];
}FAILURE_CODES;
FAILURE_CODES unit_failure_code[4];
И если пришло
unit_failure_code[3].channel_fail_codes[1] = 0x24; ..(0010 0100)
То значит в установке номер 3 в канале номер 1 есть два кода ошибки - №2 и №5
И все бы хорошо но мне нужно показать коды ошибок на дисплее в форме UNIT_NUM CHANNEL_NUM FAILURE_CODE
и кнопками вверх вниз перебирать коды ошибок.
допустим пришли данные
УСТАНОВКА 0 КАНАЛ 1 ОШИБКИ 2 И 5
УСТАНОВКА 0 КАНАЛ 2 ОШИБКИ 3 И 4
УСТАНОВКА 1 КАНАЛ 7 ОШИБКИ 1 И 6 и 7
на каждое нажатие на кнопку *вверх* я должен увидеть
UNIT CHAN CODE
00 01 02
00 01 05
00 02 03
00 02 04
01 07 01
01 07 06
01 07 07
Вопрос как сохранить коды ошибок? В какой структуре?
На каждый канал в каждой установке открыть 64 переменных - по количеству ошибок на канал?
Но тогда получается 4(установки) * 19(каналов) * 64(ошибки) = 4864 байт. Монструозный размерчик.
А если отображать динамически. Нужно перебрать в одной установке все каналы со всеми присутствующими кодами а потом перейти к следующей
установке и там повторить то же самое и так далее.