Ключевые принципы агента
Наиболее важные принципы реализованы в приложении Agent и соответствующего ему драйверу SberMobile Serverа:
- Приложение Agent устанавливает соответствие данные аппаратуры переменным, функциям и событиям для одного контекста (контекста Агента).
- SberMobile Server создает контекст устройства для имитации переменных, функций и событий контекста, предоставляемого приложением Агента.
- Все переменные (настройки) предоставляемые Agent читаются и кэшируются на стороне сервера (см. синхронизация).
- Все запросы управления (вызовы функций) к SberMobile Server'ному контексту устройства перенаправляются агенту для исполнения. Ответы отправляются обратно SberMobile Serverу.
- SberMobile Server получает и сохраняет все события, полученные от Агента.
Запуск агента
В рабочем режиме SberMobile Server:
- Периодически синхронизирует значение переменных между контекстами сервера и агента;
- Перенаправляет запросы в Agent и получает результаты выполнения;
- Получает события устройства от Агента обрабатывает/сохраняет их.
Нормальный режим связи с SberMobile Server
В этом режиме Agent получает команды от SberMobile и обрабатывает их. Он также может асинхронно генерировать некоторые события и отправлять их на сервер.
Элементы поддержки Протокола Связи с SberMobile:
Входящие Сообщения (от сервера):
- Стартовое Сообщение. Обрабатывается автоматически модулем взаимодействия SberMobile Serverа.
- Операционное Сообщение. Разбирается и обрабатывается модулем взаимодействия SberMobile Server.
Исходящие Сообщения (к серверу):
- Сообщение События. Отправляется на сервер асинхронно модулем взаимодействия SberMobile Serverа когда специфичный для устройства код решает сгенерировать сообщение.
Ответы:
- Успех
- Отказ
- Ошибка
Все ответы генерируются модулем взаимодействия SberMobile Serverа. Ответ Отказ может возвращаться только в случае, если версия Агента несовместима с версией SberMobile Serverа. В этом случае Agent будет неспособен взаимодействовать с сервером.
Операции:
- Получить значение переменной.
- Установить значение переменной.
- Вызвать функцию.
Они автоматически обрабатываются модулем взаимодействия SberMobile Serverа. Если операция связана с переменной или функцией, объявленной в модуле взаимодействия SberMobile Serverа (например, синхронизация часов реального времени между сервером и Агентом, соответствующая команда автоматически обрабатывается этим модулем. В противном случае исполнение команды доверяется модулю устройства, который может:
- Получить данные из подключенного устройства, EEPROM, flash-диск, память или другой источник и отправляет их на сервер (как описывается ниже) для получения значения переменной.
- Отправить данные оборудованию или сохранить их, установив значение переменной.
- Выполнить обработку данных или отправить команды подключенному оборудованию, вызвав функцию.