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

76 lines
5.3 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* Обработка 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