Обновить логгер УМП и исправить запуск UART и EEPROM
Перейти на компактные 12-словные записи v4 и сохранять 10 процентов банка после отключения. Добавить трёхсекундное ожидание роста ЗПТ и настраиваемый лимит пусков. Явно инициализировать состояние UART и гарантировать публикацию параметров EEPROM перед запуском Timer2. Сохранить воспроизводимые сборки, регрессионные проверки, документацию и обновлённые результаты сборки; исключить временные артефакты.
This commit is contained in:
@@ -17,7 +17,7 @@ extern void ump_log_rs(void);
|
||||
static const uint16_t gas167_info[GAS167_INFO_WORDS] = {
|
||||
/* Слова 0..3: сигнатура GA/S1, версия профиля и номер проекта 167. */
|
||||
0x4741U, 0x5331U, GAS167_PROFILE_VERSION, 167U,
|
||||
/* Слова 4..7: начало 0x5000, длина 128 слов, возможности RTU/CAN/FC06 и размер адресной единицы в словах. */
|
||||
/* Слова 4..7: база технологических регистров, число слов, маска RTU/CAN/FC06 и признак EEPROM M95M02 = 1; последний элемент описывает аппаратный профиль. */
|
||||
GAS167_REG_BASE, GAS167_REG_COUNT, GAS167_CAPABILITIES, 1U
|
||||
/* Закрывает текущий блок или список полей; следующие операторы относятся к внешнему уровню. */
|
||||
};
|
||||
@@ -39,8 +39,10 @@ static unsigned gas167_write(uint16_t offset, uint16_t value)
|
||||
{
|
||||
/* Правила записи совпадают со штатным Modbus: статусы защиты нельзя
|
||||
* перезаписать, а недопустимый тайм-аут не позволяет обойти защиту. */
|
||||
/* На плате LOAD состояния 0x7C/0x7D принадлежат защите; запись отклоняется кодом неверного адреса 2. */
|
||||
if (Desk == dsk_LOAD && (offset == 0x7CU || offset == 0x7DU)) return 2;
|
||||
/* Состояние защиты 0x7C остаётся только для чтения; GAS-псевдоним лимита 0x507D допускает запись. */
|
||||
if (Desk == dsk_LOAD && offset == 0x7CU) return 2;
|
||||
/* Отклоняет нулевой лимит кодом Modbus 3 одинаково для RTU и служебного CAN; uint16_t ограничивает верхнюю границу 65535. */
|
||||
if (Desk == dsk_LOAD && offset == 0x7DU && value == 0U) return 3;
|
||||
/* Для сохраняемого тайм-аута CAN нагрузки применяется проверка диапазона независимо от транспорта. */
|
||||
if (Desk == dsk_LOAD && offset == 0x52U &&
|
||||
/* Значение 0 или больше 60000 мс недопустимо и возвращает код 3; защиту нельзя отключить такой записью. */
|
||||
|
||||
Reference in New Issue
Block a user