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