4.0 KiB
Переход на SET protocol v2
Цель перехода — не поддерживать два развивающихся протокола. GUI protocol v1 и ProtoCAN после начала миграции получают только исправления критических ошибок; новые команды добавляются исключительно в SETP v2.
Этап 1. Транспорт и обнаружение
- Подключить
set_protocol.cк прошивке. - Реализовать v2
PING,DEVICE_INFOиCAPABILITIES. - В SETGUI при подключении отправлять v2 PING.
- Только после полного тайм-аута пробовать v1 PING для старого оборудования.
- После первого ответа фиксировать версию до закрытия соединения.
Нельзя разбирать v1 и v2 одним header после поля version: их размеры различны.
Этап 2. Одна карта данных
Все измерения, уставки и состояния получают стабильный 32-битный адрес и
описание в CATALOG. Обычные операции изделия переводятся на:
READ— разовое получение;WRITE— изменение конфигурации;SUBSCRIBE/PUBLISH— значения для экранов и графиков.
Команды изделия из диапазона 0x1000..0x7FFF остаются только для действий,
которые не являются чтением или записью данных: поиск 1-Wire, нажатие экранной
кнопки, запуск самотеста и аналогичные операции.
Этап 3. Real-time
SETGUI получает каталог, строит подписку из реально видимых сигналов и обновляет
графики по timestamp_ms устройства. Полные снимки всего прибора по таймеру не
передаются. При перегрузке устройство отбрасывает старую телеметрию, сохраняя
ответы на команды.
Этап 4. Загрузчик
- Реализовать staging/A-B backend и
FW_STATUS. - Проверить resume после обрыва на каждом допустимом offset.
- Проверить битый CRC блока и битый SHA-256 образа.
- Для серийной прошивки включить обязательную подпись и закрепить public key в bootloader/защищённой области.
- Проверить rollback при reset до подтверждения успешного старта приложения.
До выполнения этих пунктов кнопка удалённой активации не считается безопасной.
Этап 5. Носители
- UART/RS-232/RS-485 и USB CDC используют один stream parser.
- Ethernet TCP подключается к тому же parser без новой логики команд.
- Ethernet UDP использует
setp_frame_decode_datagram(). - CAN использует
set_can.c; после reassembly кадр передаётся тому же router.
Этап 6. Завершение
Когда все поддерживаемые изделия отвечают на v2:
- убрать fallback v1 из штатного режима SETGUI;
- оставить отдельную legacy-утилиту только для обслуживания старых приборов;
- удалить дублирующиеся карты регистров и device-specific сообщения, которые заменены общей картой;
- зафиксировать v2 test vectors в CI прошивок и SETGUI.