3. Модуль распознавания

В разделе представлены эндпоинты, которые повторяют логику работы модуля распознавания. Более подробно с работой можно ознакомиться в документации Руководство программиста по REST API V2 .

3.1 Templates

3.1.1 Добавить template

URL интерфейса: {host}/api/add_item_template

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

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

{ "id": "3" }

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

{
  "code": 0,
  "data": {
    "image": "example_base64",
    "sid": "20250409172600091096974"
  }
}

3.1.2 Получить список templates объектов

URL интерфейса: {host}/api/get_item_template_list

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

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

{ "id": "001" }

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

{
  "code": 0,
  "data": ["20250325182631900286512", "20250325182635248390972", "center"],
  "max": 30
}

3.1.3 Удалить template объекта

URL интерфейса: {host}/api/delete_item_template

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

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

{
  "id": "3",
  "sid": "20250325182635248390972"
}

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

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

3.1.4 Получить список объектов

URL интерфейса: {host}/api/get_item_list

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

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

{
  "code": 0,
  "data": [
    { "count": 3, "id": "001" },
    { "count": 1, "sid": "002" }
  ]
}

3.1.5 Удалить объект

URL интерфейса: {host}/api/delete_item

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

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

{ "id": "001" }

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

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

3.1.6 Очистить все templates

URL интерфейса: {host}/api/clear_all_template

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

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

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

3.1.7 Экспортировать templates

URL интерфейса: {host}/api/export_template

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

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

{ "ids": ["003", "002"] }

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

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

3.1.8 Статус экспорта templates

URL интерфейса: {host}/api/export_template_status

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

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

{
  "code": 0,
  "filename": "12067_20250409.evo",
  "msg": "Export completed",
  "status": 3
}

3.1.9 Импортировать templates

URL интерфейса: {host}/api/import_template

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

Входные данные: Файл

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

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

3.1.10 Статус импорта templates

URL интерфейса: {host}/api/import_template_status

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

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

{
  "code": 0,
  "msg": "Import successful",
  "status": 4
}

3.1.11 Скачать templates

URL интерфейса: {host}/api/download/{filename}

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

Выходные данные: Файл

3.2 Синхронизация

3.2.1 Установить автономную синхронизацию

URL интерфейса: {host}/api/set_sync_normal

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

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

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

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

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

3.2.2 Установить синхронизацию Master

URL интерфейса: {host}/api/set_sync_master

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

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

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

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

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

3.2.3 Установить синхронизацию Slave

URL интерфейса: {host}/api/set_sync_slave

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

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

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

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

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

3.2.4 Запустить автономную синхронизацию

URL интерфейса: {host}/api/manual_sync

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

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

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

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

URL интерфейса: {host}/api/get_sync_status

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

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

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

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

URL интерфейса: {host}/api/set_sync_limit

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

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

{ "limit": 3 }

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

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

3.2.7 Установить лимит продажи

URL интерфейса: {host}/api/set_sold_out_limit

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

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

{ "day": 3 }

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

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

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

URL интерфейса: {host}/api/get_sync_limit

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

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

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

3.3 Распознавание

3.3.1 Установить скорость распознавания

URL интерфейса: {host}/api/set_predict_speed

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

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

{ "speed": "normal" }

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

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

3.3.2 Получить результат

URL интерфейса: {host}/api/get_result

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

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

{
  "code": 0,
  "data": {
    "items": [
      { "id": "002", "score": 0.29 },
      { "id": "003", "score": 0.28 }
    ],
    "sid": "20250409172600091096974"
  }
}

3.3.3 Установить максимальное количество результатов

URL интерфейса: {host}/api/set_max_result

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

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

{ "num": 3 }

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

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

3.3.4 Feedback результатов

URL интерфейса: {host}/api/result_feedback

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

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

{
  "id": "001",
  "sid": "17001010826330419672962"
}

Помимо обязательных полей, чтобы детализировать информацию для сервера мониторинга и сделать сбор статистики более точной, в качестве входных параметров могут быть переданы:

  • response_time_ms: 30 — время затраченное клиентским приложением на получение, обработку данных, формирование ТОП-5 и вывод результатов на экран;

  • method_of_selection: «pinpad» — строковое значение действия пользователя:
    • recognition — выбор товара через результат предсказания;

    • pinpad — выбор товара через ручной поиск;

    • without_recognition — выбор товара был до получения результата распознавания;

    • abandoned — отмена:

    • unknown — неизвестный вариант.

  • position_relevance: «top4» — строковое значение соответствия позиции ТОП-5 SKU:
    • top_unknown — выбранный товар системе не известен;

    • top_not_in_top5 — выбранный товар не входит в предложенный ТОП-5 SKU;

    • top1 — выбранный товар соответствует ТОП-1 из предложенных SKU;

    • top2 — выбранный товар соответствует ТОП-2 из предложенных SKU;

    • top3 — выбранный товар соответствует ТОП-3 из предложенных SKU;

    • top4 — выбранный товар соответствует ТОП-4 из предложенных SKU;

    • top5 — выбранный товар соответствует ТОП-5 из предложенных SKU.

  • product_category: «Beverages» — категория, к которой относится выбранный товар;

  • product_name: «Juice» — название товара, выбранного по итогу взвешивания;

  • product_weight: 0.5 — вес выбранной товарной позиции;

  • top_recognition: — информация по каждому варианту из ТОП-5 распознавания, с указанием для каждого кода, наименования, категории и рейтинга распознавания.

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

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

3.3.5 Текущий режим обучения

URL интерфейса: {host}/api/get_learnmode

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

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

{
  "code": 0,
  "data": { "mode": 1 }
}

3.3.6 Установить режим обучения

URL интерфейса: {host}/api/set_learnmode

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

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

{ "mode": 1 }

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

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

3.4 Прочее

3.4.1 Установить время

URL интерфейса: {host}/api/set_time

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

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

{
  "sec": 1742894010,
  "usec": 615948
}

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

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

3.4.2 Получить информацию об устройстве

URL интерфейса: {host}/api/get_device_info

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

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

{
  "code": 0,
  "data": {
    "app": "2.0.7",
    "board": "1109",
    "download": false,
    "engine": "9.6",
    "firmware": "9.9.5.6",
    "item_count": 100,
    "learnMode": 1,
    "max_result_num": 5,
    "predict_speed": "fast",
    "sn": "10110102",
    "sync": "9.6.0.0",
    "sync_limit": 3,
    "sync_mode": "normal",
    "upload": false
  }
}

3.4.3 Установить дополнительную информацию

URL интерфейса: {host}/api/set_extra_info

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

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

{
  "store_name": "test",
  "store_id": "001",
  "store_dep": "test"
}

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

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

3.4.4 Получить дополнительную информацию

URL интерфейса: {host}/api/get_extra_info

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

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

{
  "code": 0,
  "data": {
    "store_name": "test",
    "store_id": "001",
    "store_dep": "test"
  }
}

3.4.5 Получить изображение

URL интерфейса: {host}/api/get_image

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

Выходные данные: Файл изображения

3.4.6 Выполнить калибровку

URL интерфейса: {host}/api/set_calib

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

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

{
  "top": 39,
  "left": 444,
  "height": 482,
  "width": 348
}

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

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

3.4.7 Получить данные калибровки

URL интерфейса: {host}/api/get_calib

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

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

{
  "code": 0,
  "data": {
    "top": 39,
    "left": 444,
    "height": 482,
    "width": 348
  }
}

3.4.8 Сбросить устройство

URL интерфейса: {host}/api/reset_device

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

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

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

3.4.9 Перезагрузить

URL интерфейса: {host}/api/reboot

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

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

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

3.4.10 Автономное обновление

URL интерфейса: {host}/api/offline_upgrade

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

Входные данные: Файл прошивки

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

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

3.4.11 Статус автономного обновления

URL интерфейса: {host}/api/offline_upgrade_status

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

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

{
  "code": 0,
  "msg": "Upgrading",
  "status": 2
}

3.4.12 Получить информацию о плате

URL интерфейса: {host}/api/get_board_info

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

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

{
  "code": 0,
  "data": {
    "board": "1109",
    "clientID": "12067",
    "engine": "9.6",
    "firmware": "9.9.5.6",
    "sn": "9Y412177",
    "syncMode": "normal"
  }
}