Files
Balsam_167/Source/Internal/Include/message.h
T
Andrey 1e911e5250 Обновить логгер УМП и исправить запуск UART и EEPROM
Перейти на компактные 12-словные записи v4 и сохранять 10 процентов банка после отключения. Добавить трёхсекундное ожидание роста ЗПТ и настраиваемый лимит пусков. Явно инициализировать состояние UART и гарантировать публикацию параметров EEPROM перед запуском Timer2. Сохранить воспроизводимые сборки, регрессионные проверки, документацию и обновлённые результаты сборки; исключить временные артефакты.
2026-10-12 12:25:41 +03:00

76 lines
5.3 KiB
C

/* Обработка Modbus, заводские параметры и сохранение настроек. Русские пояснения сохранены в UTF-8. */
/* Начинает условие: MESSAGE_H ещё не определён; защищает повторное включение или задаёт значение сборки. */
#ifndef MESSAGE_H
/* Определяет защитный символ или переключатель MESSAGE_H для последующей компиляции. */
#define MESSAGE_H
/* Начинает объявление типа, используемого структурами и интерфейсами этого модуля. */
typedef unsigned char CHAR;
/* Задаёт ANSWER_LEN = 0x80; данные ANSWER_LEN. */
#define ANSWER_LEN 0x80 //70 // 16+16+16+16+6
/* Задаёт REPLY_LEN = 0x19; данные REPLY_LEN. */
#define REPLY_LEN 0x19
/* Задаёт byte_hi = byte_1; данные byte_hi. */
#define byte_hi byte_1
/* Задаёт byte_lo = byte_0; данные byte_lo. */
#define byte_lo byte_0
/* Начинает объявление типа, используемого структурами и интерфейсами этого модуля. */
typedef struct
/* Открывает составной блок или описание полей; следующие строки принадлежат этому уровню вложенности. */
{
/* Объявляет Address — адрес. */
unsigned char Address; // Адрес контроллера
/* Объявляет Number — данные Number. */
unsigned char Number; // Номер команды
/* Продолжает список аргументов, полей или выражение BAITE byte0;; порядок элементов сохраняется. */
BAITE byte0;
/* Продолжает список аргументов, полей или выражение BAITE byte1;; порядок элементов сохраняется. */
BAITE byte1;
/* Продолжает список аргументов, полей или выражение BAITE byte2;; порядок элементов сохраняется. */
BAITE byte2;
/* Продолжает список аргументов, полей или выражение BAITE byte3;; порядок элементов сохраняется. */
BAITE byte3;
/* Продолжает список аргументов, полей или выражение BAITE byte4;; порядок элементов сохраняется. */
BAITE byte4;
/* Продолжает список аргументов, полей или выражение BAITE byte5;; порядок элементов сохраняется. */
BAITE byte5;
/* Продолжает список аргументов, полей или выражение BAITE byte6;; порядок элементов сохраняется. */
BAITE byte6;
/* Продолжает список аргументов, полей или выражение BAITE byte7;; порядок элементов сохраняется. */
BAITE byte7;
/* Объявляет crc_lo — данные crc_lo. */
unsigned char crc_lo;
/* Объявляет crc_hi — данные crc_hi. */
unsigned char crc_hi;
/* Объявляет add_byte — данные add_byte. */
unsigned char add_byte;
/* Продолжает список аргументов, полей или выражение } CMD_TO_TMS;; порядок элементов сохраняется. */
} CMD_TO_TMS;
/* Объявляет modbus — массив технологических регистров; слово int на C28x занимает 16 бит. Память определена в другом модуле. */
extern int modbus[];
/* Обслуживает чтение регистров FC03 с проверкой адреса, длины и формированием ответа RTU. */
void ReceiveCommandModbus3(RS_DATA *rs_arr);
/* Обслуживает одиночную запись FC06, проверяя доступность регистра и допустимость значения. */
void ReceiveCommandModbus6(RS_DATA *rs_arr);
/* Объявляет интерфейс функции SendCommandModbus4; реализация вызывается через этот прототип. */
void SendCommandModbus4(RS_DATA *rs_arr);
/* Объявляет интерфейс функции ReceiveAnswerModbus4; реализация вызывается через этот прототип. */
void ReceiveAnswerModbus4(RS_DATA *rs_arr);
/* Сохраняет технологические регистры в область параметров, отделённую от загрузочного образа EEPROM. */
void Save_params(void);
/* Читает сохранённые регистры из области параметров EEPROM и применяет настройки платы. */
void Load_params(void);
/* Объявляет восстановление заводских параметров; для LOAD функция задаёт тайм-аут свежести CAN 2000 мс. */
void Default_params(void);
/* Закрывает условный блок препроцессора; дальнейшие строки относятся к внешнему уровню. */
#endif //MESSAGE_H