Программный стек#

Метаданные#

  • Документ ID: REG-TECH-001

  • Версия: 0.1.1

  • Ответственный: ООО "Аросса"

  • Статус: Готово

1. Назначение и границы#

  • Целевые задачи системы: сбор и нормализация телеметрии, супервизорное управление процессом, маршрутизация команд и уставок, хранение и аналитика данных, синхронизация local/tenant/master контуров.

  • Основные функции: REST API (Swagger/OpenAPI), MQTT обмен событиями и командами, direct CANopen SDO/PDO, UI для оператора и инженера, аудит и журналирование.

  • Граница для контура ПО: сервер/интерфейс и Linux-embedded сборка контроллера.

  • Граница для контура ПАК: программный стек, Linux-embedded сборка камеры, embedded-прошивки и аппаратная часть.

2. Состав программных модулей и сборок#

  • Backend: Go (runtime API + control-scripts).

  • Frontend: Vue 3 + Vite (reference runtime), карточный интерфейс модулей с тремя состояниями:

    • свёрнутое (минифицированный виджет),

    • развернутое (расширенный виджет),

    • полноэкранное (работа в карточке).

  • База данных: PostgreSQL (телеметрия, события, конфигурации, аудит).

  • Полевые и транспортные компоненты: CANopen, MQTT, RS485.

  • Linux-embedded сборка контроллера: GR-CTRL-LX

    • edge-runtime на iT-2110-015700,

    • локальный MQTT-брокер,

    • сервис синхронизации и синхронных правил.

  • Linux-embedded сборка камеры: GR-CAM-LX

    • runtime AI (фаза роста, ANPR, индекс растений),

    • публикация результатов в MQTT/API.

  • Embedded-прошивки IOOT PRO:

    • AT32: realtime-контур и поле CANopen (PDO/SDO) для устройств и акторов;

    • ESP32: транспортный bridge (UART/MQTT), локальный gateway-профиль;

    • ASR6601: LoRa-подсистема (при необходимости оборудования).

3. Интеграционный контур#

  • Модульный shell UI строится по backend-driven модели (через modules/scheme и modules/list);

  • Интерактивная работа по объекту выполняется через Infobar popup;

  • Карточный интерфейс использует единый профиль действий:

    • базовая навигация в Sidebar/Content,

    • всплывающие настройки/доп.инструменты в popup,

    • быстрые fullscreen-вью (карта, пульт) в верхнем правом углу приложения.

4. Краткий словарь терминов#

Термин

Что означает в документации

local

Локальный контур на объекте: контроллер, локальный брокер, работа даже при потере облака

tenant

Контур отдельного заказчика или площадки с собственными данными и правилами доступа

master

Верхний облачный уровень для межобъектной аналитики, подписок и централизованной политики

reference runtime

Актуальная реализация backend/frontend стенда, с которой синхронизируются регистрационные документы

modules/scheme

API, которое описывает, какие модули и элементы интерфейса должен показать клиент

modules/list

API со списком доступных модулей и их текущим состоянием

catalog_enrichment

Дополнительные данные от backend, которыми обогащается каталог модулей в UI

Infobar popup

Всплывающая область интерфейса для быстрых действий и просмотра деталей по объекту

role/scope/capability guards

Набор проверок, который ограничивает действия по роли пользователя, контуру доступа и включенным возможностям

5. Технологические требования#

  • Требования к ОС и окружению: Linux для local/cloud/embedded контуров, поддержка CAN и RS485 на объектном контроллере, контейнерный или сервисный запуск backend и MQTT-брокера.

  • Требования к СУБД: PostgreSQL как основное хранилище телеметрии, событий, конфигураций и справочников; версия и схема фиксируются релизом.

  • Требования к сетевому контуру: Связность MQTT и REST между local/tenant/master уровнями, поддержка офлайн-буферизации и досинхронизации после восстановления канала.

6. Технические зависимости#

  • Embedded-компоненты обновляются через ioot-pro-embedded, при этом матрица релизов синхронизируется в build-matrix.

  • Для сборки embedded-блоков обязательны:

    • make / ARM_GCC_PATH для AT32F415;

    • idf.py и ESP-IDF для ESP32-S3;

    • dfu-util для обновления AT32F415 по USB DFU.

7. Ссылки на действующие разделы#