Настройку конфигурации ПК Интеллект X описывает proto-файл ConfigurationService.proto.

Используется 2 метода:

  1. ChangeConfig
  2. ListConfig

Метод ChangeConfig

Метод ChangeConfig позволяет осуществлять создание, редактирование и удаление любых объектов системы. 

Здесь и далее любой объект и элемент системы будет называться юнитом.

Вводные данные

  1. added – массив юнитов для добавления
  2. changed – массив юнитов для изменения
  3. remove – массив юнитов для удаления.

Структура юнита

Поле type определяет, чем является юнит.

Кроме того, в юнит могут быть вложены под-юниты (поле units). Например, у юнита VideoChannel.0 может быть дочерний юнит Streaming.0.

Каждый юнит имеет поле uid - это идентификатор юнита, состоящий из всех "родителей" юнита, разделенных символом "/". Например, для юнита Streaming.0 поле uid будет hosts/Node1/DeviceIpint.1/VideoChannel.0/Streaming.0.

Где,

  • uid начинается с "hosts".
  • Node1 – имя ноды.
  • DeviceIpint.1 имя устройства.
  • VideoChannel.0 – первый видео канал камеры.
  • Streaming.0 – первый видеопоток канала.

Кроме того, юнит может содержать любое количество настроек – поле properties.

Выходные данные

В ответ на метод будут получены следующие данные:

  1. failed – юниты, которые не удалось добавить.
  2. added – uid успешно добавленного юнита.

Метод ListConfig

Метод позволяет получить список юнитов.

Вводные данные

unit_uids – массив uid юнитов, которые необходимо получить.

Выходные данные

  1. units – список успешно найденных юнитов.
  2. unreachable_objects – список временно не доступных юниты.
  3. not_found_objects – список не найденных юнитов.

Поле units имеет тип UnitDescriptor.

uid – это идентификатор юнита, состоящий из всех "родителей" юнита, разделенных символом "/". Например, для юнита Streaming.0 поле uid будет hosts/Node1/DeviceIpint.1/VideoChannel.0/Streaming.0.

display_id – короткий id, обычно уникальный в скоупе родителя. Например, для юнита DeviceIpint.1 display_id == 1 (иногда может идти вместе и type).

type – тип юнита. Например, для юнита DeviceIpint.1 type == DeviceIpint.

properties – список настроек юнита.

units – вложенные юниты, которые могут идти как с полным описанием, так и урезанным. В этом случае поле stripped == true и из описания доступны только поля: display_id, type, uid.

factory – это вложенные юниты, которые могут быть созданы для данного юнита. Доступны поля:

  • type – тип под-юнита, который может быть создан.
  • properties – список настроек под-юнита.
  • No labels