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