Основные концепции
SDK SberMobile предлагает определенный подход к управлению в системе данными любого типа, как сырыми данными, поступающими из устройств, так и подготовленными данными из различных системных элементов, таких как тревоги или датчики. Этот подход также применяется к любому из решений, например, SberMobile Network Manager, SberMobile SCADA/HMI, SberMobile Access Control и другие.
Архитектура
Технически SberMobile - это набор приложений и компонентов (библиотек). Далее следуют два основных приложения Java, которые создают платформу:
- SberMobile Server
- SberMobile IIoT Platform Client
Автономные компоненты ПО могут встраиваться во внешнее ПО и бывают:
Любой код, используемый другими частями SDK SberMobile (например, Набор для разработки драйверов, SDK плагина, SDK компонента виджета), запускается или в SberMobile Server JVM, или в SberMobile IIoT Platform Client JVM.
Формальное описание SberMobile доступно на странице Спецификация.
Операции с таблицами данных
- Основной элемент всех данных в системе - Таблица данных. Даже простые скалярные значения (целые числа, строки, логические значения) представлены Таблицами данных с одной ячейкой c целью сохранения однородности. Запись Таблицы данных в java - это класс
DataTable
. Он включает в себя экземпляры от нуля до нескольких экземпляровDataRecord
,
- Формат
DataTable
представлен классомTableFormat
. Он ссылатся на ноль или несколько экземпляровFieldFormat,
определяющих формат отдельных полей таблицы.
Работа через контексты
В целом, доступ ко всем данным должен осуществляться через различные контексты сервера. Контексты организованы в виде иерархического дерева контекстов. SDK включает интерфейс Context
для обращения с разными операциями контекста. Экземпляры контекстов можно выбрать из ContextManager
по их пути (полным именам). У интерфейса Context
также есть ряд методов доступа к родительскому или дочернему узлу.
Доступ к переменным, функциям и событиям контекста
- Каждый контекст предоставляет доступ к его переменным, функциям и событиям. Существует ряд методов для их получения:
getVariableDefinition()
,getVariableDefinitions()
,getFuncitonDefinition()
,getFuncitonDefinitions()
,getEventDefinition()
,getEventDefinitions()
. Классы, представляющие определения - это соответственноVariableDefinition
,FunctionDefinition
иEventDefinition
. - Интерфейс контекста предоставляет способ для чтения/записи данных переменных:
getVariable()
иsetVariable()
. Значение каждой переменной - это экземплярDataTable
. - Контекст также предоставляет метод для вызова его функций:
callFunction()
. Входные и выходные параметры функции - это экземплярыDataTable
. - События обрабатываются путем добавления и удаления получателей события посредством методов
addEventListner()
иremoveEventListener()
. Получатели событий должны расширять интерфейс ContextEventListerner, но настоящие реализации в большинстве случаев расширяют DefaultContextEventListener. Получатели, работающие внутри плагинов и драйверов сервера, должны передать экземпляр UncheckedCallerController конструктору DefaultContextEventListener, чтобы обеспечить должные права доступа.
Метод Прямые изменения |