Files
templates/c/set-protocol/docs/legacy/OAP.md
T
Andrey 876b58517c feat(set-protocol): Раздели GAS и добавь пакетный сбор регистров
Сохрани адресацию отдельных регистров GAS 0x3 и выдели слотам тип 0x4 с маской Word0. Добавь единое C-ядро GAS_WATCH2, тонкие Python/JNI-порты и проверки общих эталонных байтов.

Совместимость: тип 0x4 больше не обслуживает Modbus Coil. Потребителям PCAN_MSG_MODBUS_COIL и ProtoCanMsgToModbusCoil нужно перейти на GAS_SLOT и отдельный API слотов; регистровый GAS остаётся на 0x3.
2026-10-23 14:14:48 +03:00

3.8 KiB
Raw Blame History

Общее адресное пространство

GAS 0x3 использует адреса отдельных 16-битных регистров. GAS SLOT 0x4 — отдельный сервис с маской в Word0 и тремя значениями Word1…Word3. Спецификация: doc/setcan/protocan/OAP.md; адреса этого документа остаются регистровыми.

Статус: Stable, данные ведутся в XLSX
Порядок значений: 16-битные регистры, little-endian в CAN payload

Редактируемый источник реестра: Протокол CAN и ОАП.xlsx.

Просматриваемая большая таблица находится в Протокол CAN и ОАП.html и Протокол CAN и ОАП.md.

Назначение

ОАП связывает 16-битный адрес регистра с его типом, назначением, доступом и масштабом. В ProtoCAN используется MsgType=0x3, а MsgBody содержит адрес первого регистра.

Обязательные поля реестра

Поле Требование
AddressHex 0x0000…0xFFFF, уникальное значение
AddressDec десятичный эквивалент AddressHex
Group функциональная группа
Name однозначное имя параметра
Type u16, i16, u32, i32, float32, bitmap или массив
Registers число занятых 16-битных регистров
Access R, W или RW
Unit физическая единица либо —
Scale множитель/делитель представления
Default значение после сброса, если применимо
Description семантика, диапазон и особые значения

Правила ведения

  • Адрес не переиспользуется с другим смыслом после выпуска стабильной версии.
  • Многорегистровое значение занимает непрерывный диапазон.
  • Порядок 16-битных слов для 32-битного значения фиксируется в строке типа.
  • Резервные диапазоны явно отмечаются и не используются без изменения версии.
  • Удалённый параметр помечается deprecated, а не исчезает молча.
  • Изменение адреса, типа или масштаба отражается в CHANGELOG.md.

Экспорт

Для программной генерации каталог следует экспортировать из XLSX в CSV с UTF-8 и фиксированными английскими именами колонок. CSV должен проверяться на:

  • уникальность адресов;
  • пересечение многорегистровых значений;
  • допустимые типы и права доступа;
  • равенство шестнадцатеричного и десятичного адреса;
  • попадание адреса в диапазон 0x0000…0xFFFF.

До появления автоматического экспортёра нормативным источником адресов остаётся XLSX, а HTML/Markdown считаются представлением.