VRack2 представляет собой фреймворк и экосистему, предназначенную для разработки, управления и мониторинга сервисов автоматизации.
- Создание сервисов локальной автоматизации.
- Альтернатива SCADA-системам в подходящих типах проектов.
- Формирование абстракций над физическими устройствами, моделями, данными и другими сервисами.
- Тестирование сервисов и оборудования в режиме непрерывной работы.
- Централизация управления сервисами, упрощение процессов отладки, контроля и сопровождения.
- Инструменты для удалённого взаимодействия с сервисами и получения данных в реальном времени, включая веб-интерфейсы.
- Полный контроль над инфраструктурой (self-hosted, отсутствие привязки к поставщику)
- Высокая производительность, близкая к нативному выполнению JavaScript
- Гибкость описания логики
Подходы, реализованные в VRack2, прошли практическую проверку и подтвердили свою эффективность в проектах различного масштаба.
Экосистема VRack2 построена на модульной архитектуре с четким разделением ответственности между компонентами. Основу составляет VRack2 Core - фреймворк для создания событийно-ориентированных сервисов на TypeScript/JavaScript, который определяет правила организации кода, структуру файлов и предоставляет базовые компоненты.
Ключевые архитектурные элементы:
- Структура сервиса описывается в сервис-файле, где определяются компоненты, их параметры и связи между ними
- Компоненты (устройства) - классы, реализующие бизнес-логику, с четко определенными входами (точки приема событий), выходами (точки генерации событий) и параметрами конфигурации
- Библиотеки - изолированные наборы зависимостей компонентов
Архитектура обеспечивает автоматическое графическое представление сервисов, автодокументирование и возможность расширения функциональности без изменения исходного кода устройств.
- Введение - общее описание платформы.
- VRack2 Manager - рекомендуется к установке перед началом работы с VRack2.
- Установка
- Окружение для разработки
- Создание первого сервиса
- Дополнительные примеры сервисов
- Музыкальный плеер с интерфейсом
- BME280 (i2c гигротермодавлёметр) с интерфейсом
- Разработка своих устройств (компонентов)
- Создание сервис-файла
- Особенности программирования в VRack2
- Работа с LL интерфейсами: I²C, Serial...
- Обработка ошибок
- API VRack2
- VRack2-Service - запуск сервисов на базе VRack2-Core.
- VRack2-Core - фреймворк для событийно-ориентированных сервисов на JavaScript/TypeScript.
- VGranite - сервис для организации туннелей Socket → Serial.
- VRack2-Remote - библиотека для работы с VRack2 API
Наборы постоянно дополняются по мере наших собственных потребностей. Но на данный момент их можно использовать как хорошие примеры.
- vrack2-system - Устройства для работы внутренними функциями (перехват событий, адаптеры, простой телеграм). Позволяет быстро настроить уведомления
- vrack2-basic - Базовый набор, очень часто используется как вспомогательный. Описывает базовые концепции простых устройств
- vrack2-net - Устройства для организации простых сервисов TCP/UDP (на данный момент скудно)
- vrack2-modbus - Упращенная работа с устройстами которые работают по протоколу Modbus.
- vrack2-other-rtu - Набор для разных ModBusRTU устройств
Проект находится в стадии активного развития, однако основное API считается стабильным и не планируется к изменению. Документация продолжает дополняться и уточняться.
- Обновление документации
- Переход на vrack2-core v1.1.2
- Теперь для работы с воркерами используется класс
UniversalWorkers - Теперь можно изолировать главный процесс от воркера указав
isolatedв метаданных сервис-файла см. Работа с LL интерфейсами: I²C, Serial...
- Обновление документации
- Переход на vrack2-core v1.0.4 - все
require()заменены наrequired() - Теперь сервис сам не перезапускается если он закончился работу одной из следующих ошибок
- 'CTR_CONF_EXTENDS_PROBLEM'
- 'CTR_ERROR_INIT_DEVICE'
- 'CTR_DEVICE_PROCESS_EXCEPTION'
- 'CTR_DEVICE_PROCESS_PROMISE_EXCEPTION'
- 'CTR_ERROR_INIT_CONNECTION'
- 'CTR_IGNORE_SERVICE_AUTORELOAD'
