Формат сообщений ---------------- Сообщения от коннектора к платформе ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Запрос на получение полной конфигурации """"""""""""""""""""""""""""""""""""""" Сообщение посылается коннектором в платформу каждый раз после установления связи с ней: .. code-block:: python { "action": "prsConnector.get_configuration", "data": { "id": "" } } Запись данных """"""""""""" Коннектор в этом сообщении отсылает данные в платформу. .. code-block:: python { "action": "prsConnector.data_set.*", "data": { "data": [ { "tagId": "", "data": [[], ] } ] } } Сообщения от платформы коннектору ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. _full_config: Полная конфигурация """"""""""""""""""" Это сообщение приходит коннектору в ответ на его запрос конфигурации. .. code-block:: python { "action": "prsConnector.full_configuration", "data": { "prsActive": True, # флаг активности коннектора, если = False, коннектор ничего не должен делать, # только ожидать от платформы сообщения с конфигурацией, # где этот флаг будет = True "prsEntityTypeCode": None, # тип коннектора. Этот параметр никак не используется базовым классом коннектора. # в классах-наследниках может использоваться по любому усмотрению. "prsJsonConfigString": { # базовая конфигурация коннектора. Если классам-наследникам необходима # дополнительная информация в конфигурации, её необходимо включать именно в этот # ключ. "source": {}, # способ подключения к источнику данных. Формат данного ключа целиком зависит # от конкретной реализации коннектора и должен быть описан в его документации. "log": { # конфигурация журнала логов "level": "INFO", "fileName": "logs/prs_connector.log", "maxBytes": 10485760, "backupCount": 10 } }, "tags": { # список тегов, привязанных к коннектору "": { # идентификатор тега "prsActive": True, # флаг активности тега "prsJsonConfigString": { # информация по работе с тегом. # Если классам-наследникам необходима дополнительная # информация, то её необходимо включать в этот ключ. "source": {}, # способ получения данных тега из источника. # Формат данного ключа целиком зависит # от конкретной реализации коннектора и # должен быть описан в его документации. "maxDev": 0.5, # минимальное значимое отклонение значения "JSONata": "" # выражение на языке JSONata, которое будет применено к # считанным из источника данным }, "prsValueTypeCode": 1 # тип значений тега: # 0 = int, # 1 = float, # 2 = str # 4 = json } } } } Изменение конфигурации коннектора """"""""""""""""""""""""""""""""" Коннектор получает это сообщение в случае, когда меняется его конфигурация в платформе. .. code-block:: python { "action": "prsConnector.connector_configuration", "data": { "prsActive": True, "prsEntityTypeCode": None, "prsJsonConfigString": { "source": {}, "log": { "level": "INFO", "fileName": "logs/prs_connector.log", "maxBytes": 10485760, "backupCount": 10 } } } } Удаление коннектора """"""""""""""""""" Коннектор получает это сообщение в случае, когда он удалён из иерархии. .. code-block:: python { "action": "prsConnector.deleted", "data": { "id": "" } } Добавление нового тега(-ов) или изменение конфигурации тега(-ов) """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Коннектор получает данное сообщение, если в список тегов, по которым он должен получать сообщение, добавляются новые теги или меняется конфигурация по существующим в списке тегам. .. code-block:: python { "action": "prsConnector.tags_configuration", "data": { "tags": { "": { "prsActive": True, "prsJsonConfigString": { "source": {}, "maxDev": 0.5, "JSONata": "" }, "prsValueTypeCode": 1 } } } } Удаление тегов из списка """""""""""""""""""""""" Коннектор получает данное сообщение, если из списка тегов удаляются какие-либо теги. .. code-block:: python { "action": "prsConnector.tags_deleted", "data": { "tags": ["", ""] } }