Формат сообщений

Сообщения от коннектора к платформе

Запрос на получение полной конфигурации

Сообщение посылается коннектором в платформу каждый раз после установления связи с ней:

{
    "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>"]
    }
}