SAUK · Программный интерфейс

HTTP GET API приборов SAUK

Единый программный интерфейс управления и интеграции по сети Wi-Fi и Ethernet. Набор HTTP-запросов одинаков для всех устройств SAUK (RFID-считыватели, BLE-шлюзы, GSM-шлюзы) вне зависимости от аппаратной сборки; различается только состав полей в уведомлениях, отправляемых на хост. Доступность отдельных функций зависит от комплектации — фактический перечень опций возвращает поле options запроса /version.

API v1.8 HTTP GET Wi-Fi / Ethernet Ответы: JSON / text
Содержание
Ничего не найдено. Попробуйте другую формулировку — например, «version», «реле», «инвентаризация» или «уведомление».

1Системные и сервисные запросы

Как отправлять запросы

Все запросы — обычные HTTP GET к IP-адресу прибора в сети Wi-Fi или Ethernet. Параметры передаются в строке запроса (?имя=значение). Изменяющие настройки и управляющие запросы требуют HTTP Basic Authentication (логин и пароль указаны в паспорте прибора). Ответ приходит в формате JSON либо короткой строкой «OK».

# через curl (логин и пароль — из паспорта прибора)
curl -u ЛОГИН:ПАРОЛЬ http://192.168.1.50/version

# прямо из адресной строки браузера
http://192.168.1.50/rfidconfig?pwrant1=20

Во всех примерах ниже 192.168.1.50 — условный адрес прибора; ответы приведены реальные, снятые с прибора (сетевые имена и пароли в примерах обезличены).

GET/version

Описание. Возвращает информацию о версиях прошивки, оборудования, RFID-модуля и о включённых опциях прибора.

Параметры. Нет.

Ответ. 200 — JSON с ключами serial, chip_version, firmware, hardware, hardware_e, webapi, build, options, buffsize.

Реальный пример
GEThttp://192.168.1.50/version
200 OKapplication/json
{
  "serial": "A1B2C3",
  "chip_version": "HW 26dBm VS1.2, FW VS2.4.5",
  "firmware": "4.63",
  "hardware": "1.9",
  "hardware_e": "1.9",
  "webapi": "1.8",
  "build": "MR210_P1",
  "options": "NTP,MBT,RFID",
  "buffsize": 300
}

Поле options перечисляет включённые в данной комплектации функции (интерфейсы Wiegand, реле, HOLD-триггеры, Modbus, NTP и т.д.). Ключи ответа одинаковы для всех приборов; значения зависят от модели и версии прошивки — например, у этого прибора сборка MR210_P1 и буфер меток 300.

GET/messagelog

Описание. Возвращает журнал системных событий и сообщений.

Параметры. Нет.

Ответ. 200 — JSON-массив объектов с полями: метка времени (RTC), тип (type), источник (source) и текст сообщения (message).

GET/messagelog_clear

Описание. Очищает журнал системных событий и сбрасывает счётчики ошибок и предупреждений. Требует аутентификации.

Параметры. Нет.

Ответ. 200 OK — в теле ответа строка «OK».

GET/reboot

Описание. Перезагружает прибор.

Параметры. Нет.

Ответ. 200 OK — в теле ответа строка «OK».

GET/restart_rfid

Описание. Программно перезагружает RFID-модуль (сбрасывает и инициализирует его заново).

Параметры. Нет.

Ответ. 200 OK — в теле ответа строка «OK».

GET/beepdevice

Описание. Подаёт звуковой и световой сигнал (два коротких) для идентификации прибора.

Параметры. Нет.

Ответ. 200 OK — в теле ответа строка «OK».

GET/logout

Описание. Завершает текущую сессию аутентификации. При следующем обращении к защищённому ресурсу браузер снова запросит логин и пароль.

Параметры. Нет.

Ответ. 401 Unauthorized.

2Управление сетью (Wi-Fi / Ethernet)

GET/netinfo

Описание. Возвращает текущую конфигурацию сетевых интерфейсов (Wi-Fi STA, Wi-Fi AP, Ethernet) либо изменяет её при передаче параметров.

Параметры (для изменения).

ПараметрТипОписание
sta_enableboolВключить/выключить подключение к внешней Wi-Fi сети
ap_enableboolВключить/выключить точку доступа (AP)
reduce_powerboolРежим пониженной мощности Wi-Fi
ap_ipstringIP-адрес точки доступа
ap_pass1 / ap_pass2stringНовый пароль точки доступа и его подтверждение (должны совпадать)
eth_enableboolВключить/выключить интерфейс Ethernet
eth_staticboolИспользовать статический IP для Ethernet
eth_ipv4 / eth_mask / eth_gatestringСтатический IP, маска подсети и шлюз для Ethernet

Ответ. 200 — JSON с полной текущей конфигурацией сети.

Реальный пример
GEThttp://192.168.1.50/netinfo
200 OKapplication/json
{
  "type": "info",
  "source": "wifi",
  "mode": "Client & Access point",
  "sta_enable": true,
  "mac": "2C:BC:BB:A1:B2:C3",
  "hostname": "SAUK-UHF-A1B2C3",
  "ipv4": "192.168.1.50",
  "gateway": "192.168.1.1",
  "mask": "255.255.255.0",
  "ap_enable": true,
  "ap_hostname": "SAUK-AP-A1B2C3",
  "ap_ipv4": "192.168.10.1",
  "eth_support": false,
  "eth_enable": false
}

GET/wificonnect

Описание. Инициирует подключение к указанной Wi-Fi сети.

Параметры.

ПараметрТипОписаниеОбяз.
ssidstringИмя сети (SSID)Да
passstringПароль сетиДа
safeboolЕсли true, конфигурация сохраняется в файловую системуНет

Ответ. 200 OK — в теле ответа строка «OK».

GET/wifiscan

Описание. Запускает асинхронный поиск доступных Wi-Fi сетей и возвращает его результат. Не блокирует работу прибора. Требует аутентификации.

Параметры. Нет.

Ответ. 200 — JSON. Пока идёт поиск: {"status":"scanning"}. По завершении: {"status":"ok","networks":[…]}, где каждый элемент содержит поля ssid, rssi и open (признак открытой сети без пароля). Запрос повторяют (поллинг) до получения статуса ok.

Реальный пример · шаг 1 (поиск ещё идёт)
GEThttp://192.168.1.50/wifiscan
200 OKapplication/json
{ "status": "scanning" }
Реальный пример · шаг 2 (поиск завершён)
GEThttp://192.168.1.50/wifiscan
200 OKapplication/json
{
  "status": "ok",
  "networks": [
    { "ssid": "Office-WiFi",  "rssi": -52, "open": false },
    { "ssid": "Guest",        "rssi": -67, "open": true  },
    { "ssid": "Warehouse-AP", "rssi": -81, "open": false }
  ]
}

GET/ntp

Описание. Возвращает или настраивает параметры NTP-клиента для синхронизации времени.

Параметры (для настройки).

ПараметрТипОписание
enableboolВключить/выключить NTP-синхронизацию
server / server2stringАдрес основного и резервного NTP-сервера
zoneintЧасовой пояс (смещение от GMT в часах)
period_hoursintПериод автоматической синхронизации, часы

Ответ. 200 — JSON с текущими настройками NTP.

Реальный пример
GEThttp://192.168.1.50/ntp
200 OKapplication/json
{
  "ntp": {
    "enable": false,
    "server": "ntp1.niiftri.irkutsk.ru",
    "server2": "ntp3.vniiftri.ru",
    "zone": 3,
    "period_hours": 0
  }
}

3Доступ и аутентификация

GET/webaccess

Описание. Изменяет логин и пароль доступа к веб-интерфейсу. Требует текущей аутентификации.

Параметры. login (string, до 9 символов), password (string, до 9 символов) — оба обязательны.

Ответ. 200 OK — в теле ответа строка «OK».

GET/tableaccess

Описание. Изменяет логин и пароль оператора таблицы доступа. Требует текущей аутентификации.

Параметры. tlogin (string, до 9 символов), tpassword (string, до 9 символов) — оба обязательны.

Ответ. 200 OK — в теле ответа строка «OK».

GET/wifiaccess

Описание. Изменяет пароль встроенной точки доступа Wi-Fi. Требует текущей аутентификации.

Параметры. password (string, до 10 символов) — обязателен.

Ответ. 200 OK — в теле ответа строка «OK».

4RFID-модуль и инвентаризация

GET/inventory_once

Описание. Запускает однократный цикл инвентаризации меток (если непрерывное сканирование отключено).

Ответ. 200 OK — «OK».

GET/rfidconfig

Описание. Возвращает текущую конфигурацию RFID-модуля либо изменяет её при передаче параметров.

Параметры (примеры).

ПараметрТипОписание
infiniteinventoryboolНепрерывная инвентаризация
pwrant1…pwrant4intМощность антенн 1–4
enant1…enant4boolВключение антенн 1–4 для инвентаризации
activ1…activ4boolФизическая активность антенн 1–4
txtant1…txtant4stringТекстовые псевдонимы антенн 1–4
entrig1, entrig2boolВключение HOLD-триггеров 1 и 2
no_trig1, no_trig2boolТип HOLD-триггера (NO/NC)
triggered1…triggered4intКакие антенны активируются HOLD-триггерами
rf_sessionintНомер сессии RFID
repeattimeintЧисло циклов сканирования за одну инвентаризацию
min_hold_msintМинимальное время активации от HOLD-триггера
freq_start, freq_space, freq_quanintЧастотный план
freq_errorfloatКомпенсация частотной ошибки
diagnosticsЗапуск диагностики подключения антенн

Ответ. 200 — JSON с полной текущей конфигурацией RFID-модуля.

Реальный пример · изменение мощности антенны и чтение конфигурации
GEThttp://192.168.1.50/rfidconfig?pwrant1=12
200 OKapplication/json
{
  "infiniteinventory": false,
  "rf": {
    "rf_session": 4,
    "freq_start": 866300,
    "freq_space": 60,
    "freq_quan": 3,
    "fhss_enabled": true,
    "repeattime": 1
  },
  "trigger": { "support": false, "enable": [false], "min_hold_ms": 5000 },
  "antennas": {
    "quantity": 1,
    "enable": [true],
    "activ": [true],
    "power": [12],
    "triggered": [1]
  }
}

Запрос без параметров только читает конфигурацию; с параметрами — сначала применяет их, затем возвращает обновлённую конфигурацию. Массивы (power, enable, activ…) содержат по одному значению на каждую физическую антенну прибора.

Рабочие частоты (Россия)

В диапазоне UHF RFID для России разрешён строго фиксированный набор из трёх каналов: 866,3 / 866,9 / 867,5 МГц. Частоты задаются в килогерцах: freq_start — первый канал (например, 866300), freq_space — шаг сетки (60 = 600 кГц, 120 = 1200 кГц), freq_quan — число каналов (до 3).

Прибор автоматически приводит план частот к разрешённому набору: если указать freq_start вне разрешённых значений, оно округляется до ближайшего разрешённого канала, а число каналов ограничивается верхней границей диапазона (867,5 МГц). Например, freq_start=866500 будет приведено к 866300. Любое сочетание параметров всегда остаётся в пределах 866,3 / 866,9 / 867,5 МГц.

Типовые планы: все три канала — ?freq_start=866300&freq_space=60&freq_quan=3; один канал — ?freq_quan=1 с нужным freq_start.

Реальный пример · попытка задать недопустимую частоту
GEThttp://192.168.1.50/rfidconfig?freq_start=866500
200 OKчастота округлена до разрешённой
{
  "rf": {
    "freq_start": 866300,
    "freq_space": 60,
    "freq_quan": 3,
    "fhss_enabled": true
  }
}

GET/tagidentity

Описание. Возвращает или настраивает параметры идентификации и фильтрации меток, а также уведомлений на хост.

Параметры (примеры).

ПараметрТипОписание
validtime_mslongВремя «сна» метки перед повторной инвентаризацией
hold_time_msuint32Время удержания метки в списке инвентаризации
beep_on_tagboolЗвуковой сигнал при обнаружении метки
rssi_filter_enable / rssi_filter_valuebool / intФильтр по уровню сигнала RSSI и его порог
epc_filter_enable1…4 / epc_filter_value1…4bool / stringEPC-фильтры 1–4 и их значения
epc_access_passwordstringПароль доступа к меткам
extra_mem_read / extra_mem_bankbool / uint8Чтение доп. банка памяти и его выбор (2=TID, 3=USER)
data_start_words / data_len_wordsuint8Смещение и длина читаемых данных в словах (макс. 6)
accesstableboolПроверка меток по таблице доступа
notify_enableboolУведомления на хост по TCP-сокету
notify_ip / notify_portstring / uint32Адрес и порт получателя уведомлений
notify_time_lim_msuint32Таймаут соединения для уведомлений
http_enableboolОтправка уведомлений в формате HTTP GET
http_waitboolОжидать ответ HTTP-сервера перед локальным управлением реле
modbus_rtuboolПротокол Modbus RTU (отключает прочие UART-уведомления)
notify_uartboolУведомления по UART
notify_uart_jsonuint8Формат UART-уведомления (0=байтовый, 1=JSON, 2=ASCII, 3=настраиваемый байтовый)
add_prefix / add_suffixstringПрефикс/суффикс UART-уведомления
add_epcl, add_epc, add_tidl, add_tid, add_ant, add_rssi, add_crlfboolВключение соответствующих полей в UART-уведомление
notify_uart_aliveboolОтправка KeepAlive по UART
notify_uart_speedintСкорость UART
ble_keybboolЭмуляция BLE-клавиатуры
antenna_stay / antenna_rssiboolФильтр по удержанию антенны и по RSSI удержания

Ответ. 200 — JSON с текущими параметрами идентификации. При taglist=true в ответ включается таблица обнаруженных меток.

Реальный пример · ключевые поля
GEThttp://192.168.1.50/tagidentity
200 OKapplication/json
{
  "beep_on_tag": true,
  "validtime_ms": 1000,
  "hold_time_ms": 10000,
  "rssi_filter_enable": false,
  "rssi_filter_value": -50,
  "epc_filter_enable": [false, false, false, false],
  "extra_mem_read": true,
  "extra_mem_bank": 2,
  "accesstable": false,
  "notify_enable": false,
  "http_enable": true,
  "http_endpoint": "/api/rfid",
  "notify_ip": "192.168.1.40",
  "notify_port": 8001,
  "notify_uart": true,
  "notify_uart_json": 1,
  "notify_uart_speed": 9600
}

Полный ответ содержит больше полей (префикс/суффикс UART-строки, набор передаваемых полей и т.д.) — см. таблицу параметров выше.

GET/peripheryconfig

Описание. Возвращает или настраивает параметры периферии (Wiegand, реле, звуковая индикация, рампа).

Параметры (примеры).

ПараметрТипОписание
w_pullupboolПодтяжка линий Wiegand
wiegand1_enable, wiegand2_enableboolИнтерфейсы Wiegand 1 и 2
wiegand1_type, wiegand2_typeintТип Wiegand (26, 34, 48 и т.д.)
wiegand1_shift_bytes, wiegand2_shift_bytesintСмещение данных Wiegand
wiegand1_source, wiegand2_sourceintИсточник данных Wiegand (1=EPC, иначе DATA)
wiegand1_depends, wiegand2_dependsintЗависимость Wiegand от антенн (битовая маска)
timeout_logical_0 / timeout_next_bituint16Ширина импульса и период следования импульсов Wiegand
parity_enableboolБиты чётности Wiegand
beep_on_startboolЗвуковой сигнал при старте прибора
smartboard_enableboolУправление платой SmartBoard
smartboard_portN_enable / _timer / _antsbool / uint32Порты SmartBoard: включение, время удержания, зависимость от антенн
ramp_link, ramp_enable, ramp_renableboolВзаимодействие с контроллером рампы
ramp_timeout, ramp_ltimeout, ramp_senable, ramp_stype, ramp_addressuint32Параметры работы с рампой
wd_hour, wd_min, wd_secuint8Время ежедневной перезагрузки

Ответ. 200 — JSON с текущей конфигурацией периферии.

Реальный пример
GEThttp://192.168.1.50/peripheryconfig
200 OKapplication/json
{
  "beep_on_start": true,
  "rwdog_enable": true,
  "rwdog_timeout": 3500,
  "wdog_enable": true,
  "wd_hour": 23,
  "wd_min": 59,
  "wd_sec": 59,
  "smartboard": { "exists": false }
}

GET/checkwiegand

Описание. Проверяет интерфейсы Wiegand, подавая на линии D0 и D1 короткий импульс. Ответ. 200 OK — «OK».

GET/simulatewiegand

Описание. Отправляет тестовые данные по интерфейсу Wiegand для проверки его работы. Ответ. 200 OK — «OK».

GET/lasttag

Описание. Возвращает данные о последней обнаруженной метке на указанной антенне; если инвентаризация не запущена — запускает её.

Параметры. antenna (int, 1–4; по умолчанию 1).

Ответ. 200 — JSON с данными метки (EPC, RSSI, антенна и т.д.).

GET/taglist

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

Параметры. limit (int; по умолчанию 50, макс. 150).

Ответ. 200 — JSON с массивом list.

Реальный пример · в зоне считывателя одна метка
GEThttp://192.168.1.50/taglist
200 OKapplication/json
{
  "list": [
    {
      "RTC": "109.088",
      "CNT": 1,
      "ANT": 1,
      "EPC": "77770220F73F0AFD00000006",
      "EPCLEN": 12,
      "PC": "3400",
      "RSSI": -34,
      "BANK": 2,
      "DATA": "E280117020000220F73F0AFD",
      "DATALEN": 12,
      "FP": 1
    }
  ]
}
ПолеВ примереСмысл
EPC77770220F73F0AFD00000006Уникальный номер метки (память EPC)
ANT1Антенна, обнаружившая метку
RSSI-34Сила сигнала (ближе к 0 — сильнее)
CNT1Сколько раз метка прочитана
DATA / BANKE280…0AFD / 2Доп. данные из банка памяти (2 = TID)

Если в зоне несколько меток — массив list содержит соответствующее число объектов. Пустой список {"list":[]} означает, что метки уже «уснули» после чтения (см. validtime_ms) либо их нет в зоне.

GET/taglist_clear

Описание. Очищает список обнаруженных меток. Ответ. 200 OK — «OK».

5Время и система

GET/datetime

Описание. Возвращает системное время и состояние прибора либо устанавливает новое системное время.

Параметры (установка времени). day, month, year, hour, minute, second (int, все вместе) и wday (int, 1–7, где 1 — воскресенье).

Параметры (запрос). taglist (bool) — включить в ответ таблицу текущих меток.

Ответ. При установке — 200 OK «OK». При запросе — 200 JSON с текущим временем, статусом Wi-Fi, состоянием индикации, количеством меток и диагностикой.

Реальный пример · запрос состояния (ключевые поля)
GEThttp://192.168.1.50/datetime
200 OKapplication/json
{
  "param": ["Started 1970-01-01 00:01:48(?)"],
  "stassid": "Office-WiFi",
  "inventory": false,
  "temperature": "0.00",
  "tag_types": "uhf",
  "log_counter": 38,
  "log_errors": 0,
  "log_warns": 0
}

GET/uart

Описание. Диагностика UART-порта: отправляет тестовую последовательность байт и ожидает ответ. Ответ. 200 OK — «OK».

6Таблица доступа (EEPROM)

GET/accesstable_size

Описание. Текущее количество записей в таблице доступа. Ответ. 200 — число.

Реальный пример
GEThttp://192.168.1.50/accesstable_size
200 OKtext/plain
0

GET/accesstable_capacity

Описание. Максимальная ёмкость таблицы доступа. Ответ. 200 — число.

GET/accesstable_format

Описание. Форматирует (очищает) таблицу доступа, создавая новый заголовок. Ответ. 200 OK — «OK».

GET/accesstable_part

Описание. Возвращает часть записей таблицы. Параметры. s, f (uint16) — начальный и конечный индексы (включительно), оба обязательны. Ответ. 200 — JSON-массив записей.

GET/accesstable_save

Описание. Сохраняет (перезаписывает) часть записей таблицы.

Параметры. s, f (uint16) — диапазон индексов; data (string) — JSON-массив записей. Все обязательны.

Ответ. 200 OK — «OK».

Пример — запись одной записи (индекс 0):

GET /accesstable_save?s=0&f=0&data=[{"RFID":"E2801170200031215A3B09EF",
  "VIS":"00042","CMT":"Volvo_XC",
  "A1":62,"SH1":"08","SM1":"00","FH1":"20","FM1":"00",
  "A2":0,"SH2":"00","SM2":"00","FH2":"23","FM2":"59","ANT":3}]
  • RFID — EPC-номер метки (24 hex-символа = 12 байт)
  • VIS — визуальный номер пропуска (строка)
  • CMT — комментарий (до 9 символов)
  • A1, A2 — маски правил доступа (день недели + признак активности)
  • SH/SM/FH/FM — начало и конец временного интервала правила
  • ANT — маска разрешённых антенн

Маска байта A1/A2:

Бит 7 — признак активности правила (1 = активно)
Бит 6 — Суббота     Бит 2 — Вторник
Бит 5 — Пятница     Бит 1 — Понедельник
Бит 4 — Четверг     Бит 0 — Воскресенье
Бит 3 — Среда

Примеры:
255 (0xFF) — любой день, без проверки времени
190 (0xBE) — активно, Пн–Пт

Маска байта ANT:

Бит 0 — Антенна 1    Бит 2 — Антенна 3
Бит 1 — Антенна 2    Бит 3 — Антенна 4

1  (0x01) — только антенна 1
3  (0x03) — антенны 1 и 2
15 (0x0F) — все четыре антенны

GET/accesstable_commit

Описание. Фиксирует итоговое количество записей после серии запросов /accesstable_save. Вызывается один раз после успешной отправки всех пакетов и завершает транзакцию обновления таблицы.

Параметры. total (uint16) — итоговое число записей; значения сверх ёмкости отбрасываются. Обязателен.

Ответ. 200 OK — «OK». При отсутствии total400.

7Кодирование RFID-меток

Доступно в соответствующей комплектации прибора.

GET/copy_tid

Описание. Кодирование метки по алгоритму «COPY TID»: читает TID, формирует на его основе новый EPC, записывает его в метку, устанавливает новый пароль и блокирует память.

Параметры.

ПараметрТипОписаниеОбяз.
passstringТекущий пароль метки (8 hex)Да
npassstringНовый пароль метки (8 hex)Да
filterstringНовый фильтр EPC (4 hex)Да
serialstringНовая серийная часть EPC (12 hex)Да
beepboolСигнал при успешном кодированииНет

Ответ. 200 — JSON с результатом операции и деталями закодированной метки.

GET/write

Описание. Записывает произвольные данные в указанный банк памяти метки. Требует аутентификации.

Параметры.

ПараметрТипОписаниеОбяз.
antennauint8Номер антенны для кодированияДа
selectstringEPC выбираемой метки (иначе первая попавшаяся)Нет
passstringПароль доступа к метке (8 hex)Да
bankuint8Банк памяти (0=Reserved, 1=EPC, 2=TID, 3=USER)Да
shift_wuint8Смещение в словах (по 2 байта)Да
datalen_wuint8Длина данных в словах (макс. 6)Да
datastringДанные в hex (длина по datalen_w)Да
beepboolСигнал при успешном кодированииНет
GET /write?antenna=1&select=000000000000000000000000&pass=00000000
   &bank=1&shift_w=2&datalen_w=6&data=1234010105441CDFFF003097&beep=true

Ответ. 200 — JSON с результатом операции.

GET/encode_result

Описание. Возвращает статус и результат последней операции кодирования (/copy_tid или /write). Применяется для опроса хода длительной операции.

Ответ. 200 — JSON: {"status":"processing"} — операция выполняется; {"status":"idle"} — операций нет; либо объект с результатом по завершении.

8Управление периферией (реле)

Все запросы раздела требуют аутентификации и кратковременно замыкают соответствующее реле (либо порт SmartBoard). В теле ответа — строка «OK».

Реальный пример · открыть шлагбаум (сработать реле №1)
GEThttp://192.168.1.50/relay1
200 OKtext/plain
OK
ЗапросДействие
/relay1Электромагнитное реле №1 (или порт SmartBoard №1)
/relay2Электромагнитное реле №2 (или порт SmartBoard №2)
/ssr1Твердотельное реле (SSR) №1 (или порт SmartBoard №3)
/ssr2Твердотельное реле (SSR) №2 (или порт SmartBoard №4)
/beepontagЗвуковой сигнал (имитация обнаружения метки)

9Уведомления на хост

При включённых уведомлениях прибор сам отправляет на хост сообщение по каждой обнаруженной метке, удовлетворяющей правилам фильтрации. Транспорт настраивается: TCP-сокет (notify_enable, адрес notify_ip:notify_port) или HTTP GET (http_enable, путь http_endpoint). Формат тела — строка JSON, настраиваемая строка-конструктор или байтовая посылка (выбирается настройкой notify_uart_json). Проводной транспорт (UART, в т.ч. через USB/RS232/RS485) описан в отдельном документе «Протокол взаимодействия с RFID-считывателем по UART».

9.1Событие по обнаруженной метке (JSON)

Фиксированный набор полей. Поля BANK/DATA/DATALEN присутствуют, если у метки были прочитаны дополнительные данные (например, TID).

Реальный пример · обнаружена метка
СОБЫТИЕприбор → хост
формат JSON
{"SN":"A1B2C3","RTC":"109.088","ANT":1,"EPC":"77770220F73F0AFD00000006","EPCLEN":12,"RSSI":-34,"BANK":2,"DATA":"E280117020000220F73F0AFD","DATALEN":12}
ПолеСмысл
SNСерийный номер считывателя
RTCМомент обнаружения (время работы, секунды.миллисекунды)
ANTНомер антенны, обнаружившей метку
EPC / EPCLENКод метки (память EPC) и его длина в байтах
RSSIУровень сигнала (ближе к 0 — сильнее)
BANK / DATA / DATALENБанк, содержимое и длина доп. данных (например, TID) — при наличии

9.2Keep-alive

Если включён keep-alive (notify_uart_alive, по умолчанию включён), прибор периодически — примерно раз в 5 секунд — отправляет «сигнал жив», чтобы хост убеждался в наличии связи. При включённой непрерывной инвентаризации keep-alive идёт в моменты простоя (когда метки нет), при выключенной — регулярно. Поле scan отражает состояние непрерывного сканирования.

Реальный пример · keep-alive (JSON)
СОБЫТИЕприбор → хост, ~каждые 5 с
формат JSON
{"SN":"A1B2C3","cmd":"act","param":"inventory","warning":"no_tag_alive","scan":false}

Состав полей зависит от типа прибора

Приведённый JSON — пример для RFID-считывателя. У BLE-шлюза и других приборов набор полей отличается (например, вместо EPC/ANT передаются идентификатор и параметры BLE-маяка). Формат уведомления (байты, ASCII или JSON) и транспорт доставки (TCP-сокет, HTTP GET, UART, а в соответствующей комплектации — MQTT) настраиваются параметрами идентификации (раздел 4, /tagidentity).

10Примечания и статусы

Аутентификация

Большинство критически важных запросов (изменение настроек, управление реле, кодирование меток) требуют HTTP Basic Authentication. Заводские логин и пароль указаны в паспорте прибора; в целях безопасности настоятельно рекомендуется сменить их сразу после ввода прибора в эксплуатацию через /webaccess (а логин/пароль оператора таблицы доступа — через /tableaccess).

Единый API и комплектация

Набор HTTP-запросов одинаков для всех приборов SAUK. Доступность отдельных функций зависит от комплектации и версии прошивки (кодирование меток, таблица доступа, синхронизация NTP, интеграция MQTT, эмуляция BLE-клавиатуры и т.п.). Фактический перечень включённых опций возвращает поле options запроса /version. Если функция не поддерживается прибором, соответствующий запрос вернёт текст NOT SUPPORT или статус 404.

Формат ответа и статусы HTTP

Большинство запросов возвращают JSON; служебные — простой текст «OK» либо сообщение об ошибке. Основные статусы: 200 OK (успех), 400 Bad Request (неверные параметры), 401 Unauthorized (требуется аутентификация), 403 Forbidden (действие запрещено), 404 Not Found (ресурс не существует или функция не поддерживается), 500 Internal Server Error (внутренняя ошибка).

SAUK · HTTP GET API v1.8 sauk.ru
Россия, г. Москва, 
г. Зеленоград, проезд 4922, дом 4, строение 2. Технопарк "ЭЛМА". 
Подробнее...
SAUK© 2020 – 2026. Все тексты и изображения, представленные на сайте, являются интеллектуальной собственностью SAUK. Могут быть использованы только по письменному согласию SAUK. SAUK® является зарегистрированным торговым знаком. Заказы принимаются только от юридических лиц.

Товары

Корзина пуста

Итого

Заказ

Заказы принимаются только от юридических лиц