5277 (5277) wrote,
5277
5277

Category:

API проекта автоматизации 5277. Структура данных ответа на запрос выбора локации.

Для коммуникации между собой таких узлов как клиент, контроллер и сервер я использую бинарный протокол.  Моя Java библиотека, с реализацией этого протокола, может преобразовывать его в JSON.  Для удобства чнетия я привожу описание структуры именно на JSON.

  *Это больше ознакомительная часть, чтобы иметь представление как оно работает. Вся детальная информация будет описана в отдельной документации.

  Здесь я опущу заголовочные данные пакета и рассмотрю только тело:


SCB - блок сценариев
LOCATIONS - блок локаций


TIMESTAMP - метка времени(в миллисекундах) последнего изменения сценариев, для определения актуальности данных
SCENARIO_GROUPS - блок  с группами сценариев


ID - идентификатор группы сценариев
LOCATION_ID - идентификатор локации, к которой привязана данная группа
DISABLED - сстояние группы(заблокирована или нет)
NAME - имя группы
SCENARIOS - блок сценариев данной группы


ID - идентификатор сценария
DISABLED - сстояние сценария(заблокирован или нет)
NAME - имя сценария
COMMENT - комментарий к сценарию
PARAMS - блок параметров


ID - идентификатор параметра
TYPE_ID - тип параметра
VALUE - данные параметра(структура и данные зависят от типа параметра)
*детально параметры сценария будут описаны отдельно

Блок SCB рассмотрен, возвращаюсь к верхним элементам.

ID - идентификатор локации
SERIAL - серийный номер контроллера(десятеричная форма), к которому привязана локация
NAME - имя локации
ICON - имя иконки локации
COMMENT - комментарий к локации
INTERROGATE_PERIOD_ID - идентификатор периода опроса устройств
AGGREGATION_PERIOD_ID - идентификатор периода выгрузки данных в БД для статистики
DISABLED - сстояние локации(заблокирован или нет)
IS_LINK - признак локации из другого проекта
PLACES - блок помещений в данной локации
GATEWAYS - блок шлюзов для конечных устройств
DEVICES - блок конечных устройств
GROUPS - группы конечных устройств(для режима вывода наборов показаний, вместо упорядоченного списка устройств с показаниями)
PERMS - блок разрешений, в рамках локации, для пользователей
DATA - блок с данными


ID - идентификатор помещения
NAME - имя помещения
ICON - имя иконки помещения
COMMENT - комментарий к помещению


ID - идентификатор шлюза
TYPE_ID - идентификатор типа шлюза
DEVICE_ID - идентификатор устройства в линейке устройств производителя
VENDOR_ID - идентификатор производителя
PARAMS - параметры устройства(ниже будут описаны на примере конечного устройства)
OWNER_IFACE_ID - идентфикатор физического порта интерфейса к которому подключено данное устройство(входящий).
IFACE - физический порт иннтерфейса который соединен с устройством к которому подключается данное устройство.


ID - идентифкатор интерфейса
IFACE_TYPE_ID - идентификатор типа интерфейса(например UART)
IFACE_NUM - порядковый номер интерфейса(например '0' - UART0)
PARAMS - блок параметров интерфейса


ID - идентификатор параметра
EXT_PARAM_ID - идентфикатор параметра из табличных данных описания набора интерфейсов и параметров каждого типа шлюза(дает гибкость системе, позволяя расширять систему буквально налету)
TYPE_ID - идентификатор типа параметра
SUBTYPE_ID - подтип идентификатора параметра(позволяет описать несколько параметров одного типа)

 Возвращаемся назад.

ID - идентификатор конечного устройства
TYPE_ID - идентификатор типа конечного устройства
NAME - имя конечного устройства
PLACE_ID - идентификатор помещения
COMMENT - комментарий к конечному устройству
INTERROGATE_PERIOD_ID - идентификатор периода опроса конкретного устройства
DISABLED - сстояние устройства(заблокирован или нет)
PARAMS - блок параметров устройства
DEVICE_ID - идентификатор устройства в линейке устройств производителя
VENDOR_ID - идентификатор производителя
GATEWAY_ID - шлюз, к которому подключено данное устройство, null - подключено непосредственно к контроллеру
ICON - имя иконки конечного устройства
AGGREGATION_PERIOD_ID - идентификатор периода выгрузки данных конкретного устройства в БД для статистики
AGGREGATION_EVENT_ID - идентификатор события вне периодической выгрузки данных конкретного устройства в БД для статистики
EXTRASCAN - признак поддержки конкретным устройством функционала экстренного опроса конечных устройств
PERMS - блок разрешений в рамках данного устройства для пользователей(аналогичен PERMS в описании LOCATION)
OWNER_IFACE_ID - идентфикатор физического порта интерфейса к которому подключено данное устройство(входящий).
IFACE - физический порт иннтерфейса который соединен с устройством к которому подключается данное устройство(аналогичен IFACE в GATEWAY).


ID - идентификатор параметра
PARAM_ID  - идентификатор типа параметра
VALUE - значение параметра
SUBTYPE_ID - подтип параметра(например для параметра 'Имя показания' здесь содержится идентификатор типа показания)

Возвращаемся назад.

ID - идентфикатор группы
NAME - имя группы
ICON - имя иконки группы
PLACE_ID - идентификатор помещения
COMMENT - комментарий к группе
*все вышеперечисленные параметры используются аналогично как и в DEVICE
SORT - значение для сорировки групп
ITEMS - блок элементов группы


ID - идентификатор элемента
DEVICE_ID - идентификатор конечного устройства
MEASURE_TYPE_ID - идентфикатор типа показания
NAME - имя показания
SORT - значение для сортировки элементов


ID - идентификатор разрешения
USER_ID - идентификатор пользователя
TYPE_ID - идентификатор типа разрешения


ID - идентфикатор локации
DEVICES - блок данных конечных устройств


ID - идентифкатор конечного устройства
MEASURES - блок показаний конечного устройства


TYPE_ID - идентификатор типа показания устройства
VALUE - значение показания устрйоства


Как сказал ранее, здесь далеко не вся информация, запросов и различных типов ответов большое количество.

Кроме описания структуры и данных таких параметров как значения PARAMS есть еще большое количество табличных данных, в которых описаны практически все данные с которыми работает система.
К примеру, если рассматривать показания, то в таблицах можно найти их типы, иднетификатор текста для словарей, идентификатор единицы измерения, идентификатор типа данных и цвет.
В свою очередь единица измерения содержит идентификатор текста для словарей, идентификатор базовой единицы измерения и множитель. Т.е. система понимает, к примеру, как амперы, так и миллиамперы и может их, при необходимости, преобразовать.

Все это дает некоторую гибкость системе и позволяет ее достаточно легко расширять без участия разработчика.
Tags: 5277, api, документация
Subscribe
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 0 comments