Управление синхронизацией

API версии v2 включает в себя расширенные возможности синхронизации между устройствами в режимах «мастер-подчиненный» (master-slave). Это позволяет создавать сети устройств, которые могут обмениваться данными обучения для повышения точности распознавания.

Кроме того, API v2 поддерживает иерархические многоуровневые сети (функции Superior/Parent Master). Локальное мастер-устройство может выступать в качестве дочернего узла для вышестоящего (главного) мастера, формируя сложные древовидные структуры распределения данных.

Примечание

Убедитесь, что все устройства в сети обновлены до одной и той же версии прошивки с поддержкой API v2 во избежание конфликтов данных.

Схемы синхронизации см. в статье Синхронизация модулей и распространение мета-моделей.

Настройка синхронизации Normal

Настройка синхронизации модуля с сервером, а не с локальным Master-устройством.

Если интернет отключен, этот модуль не будет синхронизироваться ни с какими другими модулями. Если отключить одновременно и выгрузку (upload), и загрузку (download), этот модуль также не будет синхронизироваться с другими модулями. Направление синхронизации настраивается отдельно.

  • URL: http://172.22.0.6/api/set_sync_normal

  • Method: POST

  • Content-Type: application/json

Параметры тела запроса:

Параметр

Пример

Тип

Обязательность

Описание

upload

false

Boolean

Да

Делиться собственными результатами обучения (выгрузка)

download

false

Boolean

Да

Получать чужие результаты обучения (загрузка)

{
  "upload": false,
  "download": false
}

Пример успешного ответа :

{
  "code": 0,
  "data": null
}

Параметр

Пример

Тип

Описание

code

0

Number

Успешное выполнение (success)

data

—

Null

—

Установка режима Master

Установить устройство в режим Master sync. Master является одновременно slave + центром синхронизации, поэтому upload и download также могут быть определены. Они управляют синхронизацией между slave-частью и центром синхронизации внутри Master-устройства. IP-адрес Master-устройства должен быть фиксированным. Другие slave-устройства будут обращаться к Master-устройству по IP.

  • upload — делиться собственными результатами обучения с другими, может быть true или false.

  • download — получать результаты обучения других устройств, может быть true или false.

  • URL интерфейса: http://172.22.0.6/api/set_sync_master

  • Метод запроса: POST

  • Content-Type: application/json

Параметры тела запроса:

{
    "upload": false,
    "download": false
}

Параметр

Пример значения

Тип

Обязательность

Описание

upload

false

Boolean

Да

Делиться собственными результатами обучения

download

false

Boolean

Да

Получать результаты обучения других

Пример успешного ответа:

{
    "code": 0,
    "data": null
}

Параметр

Пример значения

Тип

Описание

code

0

Number

Код результата: 0 — успех

data

—

Null

—

Установка режима Slave

Установить устройство в режим Slave sync и настроить Master. Если конфигурация корректна, Master и все slave-устройства будут периодически синхронизироваться друг с другом.

  • upload — делиться собственными результатами обучения с другими, может быть true или false.

  • download — получать результаты обучения других устройств, может быть true или false.

  • masterIP — IP-адрес Master-устройства.

  • mastersyncPort — порт синхронизации Master-устройства, опционально, по умолчанию 7443.

Master-устройство и все slave-устройства должны быть версии выше 9.0.6. До версии 9.0.6 для синхронизации использовались порты 7080 и 7443. Начиная с версии 9.0.6, синхронизация использует только порт синхронизации, который по умолчанию 7443. Необходимо настроить переадресацию портов.

  • URL интерфейса: http://172.22.0.6/api/set_sync_slave

  • Метод запроса: POST

  • Content-Type: application/json

Параметры тела запроса:

{
    "upload": false,
    "download": false,
    "masterIP": "192.168.1.32",
    "mastersyncPort": "7443"
}

Параметр

Пример

значения

Тип

Обязательность

Описание

upload

false

Boolean

Да

Делиться собственными результатами обучения

download

false

Boolean

Да

Получать результаты обучения других

masterIP

192.168.1.32

String

Да

IP мастер-устройства

mastersyncPort

7443

Number

Нет

Порт прослушивания мастер- устройства для синхронизации

Пример успешного ответа:

{
    "code": 0,
    "data": null
}

Параметр

Пример значения

Тип

Описание

code

0

Number

Код результата: 0 — успех

data

—

Null

—

Ручная синхронизация

Выполнить синхронизацию немедленно (автоматическая синхронизация выполняется каждые 10 минут). Сначала загружаются собственные данные, затем получаются данные других, что может потребовать несколько операций получения. См. :ref: get_sync.

  • URL интерфейса: http://172.22.0.6/api/manual_sync

  • Метод запроса: POST

  • Content-Type: none

Пример успешного ответа:

{
    "code": 0,
    "data": null
}

Параметр

Пример значения

Тип

Описание

code

0

Number

Код результата: 0 — успех

data

—

Null

—

Получение статуса синхронизации

Запрос статуса синхронизации. Обычно используется с manual_sync.

  • URL интерфейса: http://172.22.0.6/api/get_sync_status

  • Метод запроса: GET

  • Content-Type: none

Пример успешного ответа:

{
    "code": 0,
    "data": {
        "count": 100,
        "message": "Free",
        "synctime": "2024-04-09 15:26:51"
    }
}

Параметр

Пример значения

Тип

Описание

code

0

Number

Код результата: 0 — успех

data.count

100

Number

Количество товаров для распознавания

data. message

Free

String

Статус синхронизации

data. synctime

2024-04-09 15:26:51

String

Время последней синхронизации

Установка лимита синхронизации

Установить количество измененных шаблонов для запуска загрузки синхронизации, от 1 до 5. Данные товара будут загружены только тогда, когда изменения шаблонов этого товара больше или равны лимиту. Эта функция уменьшает влияние ложных отзывов.

  • URL интерфейса: http://172.22.0.6/api/set_sync_limit

  • Метод запроса: POST

  • Content-Type: application/json

Параметры тела запроса:

{
    "limit": 3
}

Параметр

Пример значения

Тип

Обязательно ?

Описание

limit

3

Number

Да

Лимит для запуска загрузки

Пример успешного ответа

{
    "code": 0,
    "data": null
}

Параметр

Пример значения

Тип

Описание

code

0

Number

Код результата: 0 — успех

data

—

Null

—

Получение лимита синхронизации

Получить количество измененных шаблонов для запуска загрузки синхронизации, от 1 до 5.

  • URL интерфейса: http://172.22.0.6/api/get_sync_limit

  • Метод запроса: POST

  • Content-Type: none

Пример успешного ответа:

{
    "code": 0,
    "data": {
        "limit": 3
    }
}

Параметр

Пример значения

Тип

Описание

code

0

Number

Код результата: 0 — успех

data.limit

3

Number

Количество измененных шаблонов

Установка Superior

Этот интерфейс используется для настройки Superior-устройства (другого родительского Master-устройства). После успешной настройки модуль может загружать результаты обучения от вышестоящего Master-устройства, но не будет выгружать собственные результаты обучения. Загруженные результаты обучения также могут быть переданы всем подчиненным устройствам (slaves), привязанным к этому дочернему мастеру.

Примечание

Данная установка является валидной только для Master-устройства.

  • URL: http://172.22.0.6/api/set_superior

  • Method: POST

  • Content-Type: application/json

Параметры тела запроса:

Параметр

Пример

Тип

Обязательность

Описание

sn

«10180062»

String

Да

Серийный номер (SN) Superior-устройства

ip

«192.168.30.30»

String

Да

IP-адрес Superior-устройства

Пример (Example):

{
  "sn": "10180062",
  "ip": "192.168.30.30"
}

Пример успешного ответа:

{
  "code": 0,
  "data": null
}

Параметр

Пример

Тип

Описание

code

0

Number

Успешное выполнение (success)

data

—

Null

—

Получение данных о Superior-устройстве

Запрос информации о конфигурации Superior-устройства

  • URL: http://172.22.0.6/api/get_superior

  • Method: GET

  • Content-Type: application/json

Пример успешного ответа:

{
  "code": 0,
  "data": {
    "ip": "192.168.30.30",
    "sn": "10180062"
  }
}

Параметр

Пример

Тип

Описание

code

0

Number

Успешное выполнение (success)

data

—

Object

null, если Superior-устройство не настроено

data.ip

«192.168.30.30»

String

IP-адрес Superior-устройства

data.sn

«10180062»

String

Серийный номер (SN) Superior-устройства