Документация HTTP GET API v1.6 для RFID-считывателей SAUK
Содержание
- 1. Системные и Сервисные Запросы
- 2. Управление Сетью (Wi-Fi/Ethernet)
- 3. Управление Доступом и Аутентификацией
- 4. Управление RFID-Модулем и Инвентаризацией
- 5. Управление Временем и Системой
- 6. Работа с Таблицей Доступа (EEPROM)
- 7. Кодирование RFID-меток
- 8. Управление Периферией (Реле)
- 9. Уведомления, отправляемые на хост
- Примечания
1. Системные и Сервисные Запросы
Описание: Программно перезагружает RFID-модуль (сбрасывает его и инициализирует заново).
Параметры: Нет.
Ответ: 200 OK - в теле ответа строка "OK".
Описание: Завершает текущую сессию аутентификации. При следующем запросе к защищенному ресурсу браузер запросит логин и пароль.
Параметры: Нет.
Ответ: 401 Unauthorized.
Описание: Перезагружает RFID-считыватель.
Параметры: Нет.
Ответ: 200 OK - в теле ответа строка "OK".
Описание: Инициирует звуковой и световой сигнал (два коротких сигнала) на устройстве для его идентификации.
Параметры: Нет.
Ответ: 200 OK - в теле ответа строка "OK".
Описание: Возвращает информацию о версиях прошивки, оборудования, чипа RFID и т.д.
Параметры: Нет.
Ответ: 200 - JSON объект с ключами: serial, chip_version, firmware, hardware, hardware_e, webapi, build, options, buffsize.
Пример ответа:
Описание: Возвращает журнал системных событий и сообщений.
Параметры: Нет.
Ответ: 200 - JSON массив объектов, каждый из которых содержит метку времени (RTC), тип (type), источник (source) и само сообщение (message).
2. Управление Сетью (Wi-Fi/Ethernet)
Описание: Возвращает текущую конфигурацию сетевых интерфейсов (Wi-Fi STA, Wi-Fi AP, Ethernet) или позволяет ее изменить.
Параметры (для изменения):
| Параметр | Тип | Описание | Обязательный |
|---|---|---|---|
| sta_enable | bool | Включить/выключить подключение к внешней Wi-Fi сети | Нет |
| ap_enable | bool | Включить/выключить точку доступа (AP). Примечание: В коде AP нельзя выключить. | Нет |
| reduce_power | bool | Включить/выключить режим пониженной мощности Wi-Fi | Нет |
| ap_ip | string | Установить IP-адрес для точки доступа | Нет |
| ap_pass1 | string | Новый пароль для точки доступа | Нет |
| ap_pass2 | string | Подтверждение нового пароля (должен совпадать с ap_pass1) | Нет |
| eth_enable | bool | Включить/выключить интерфейс Ethernet | Нет |
| eth_static | bool | Использовать статический IP для Ethernet | Нет |
| eth_ipv4 | string | Статический IP-адрес для Ethernet | Нет |
| eth_mask | string | Маска подсети для Ethernet | Нет |
| eth_gate | string | Шлюз по умолчанию для Ethernet | Нет |
Ответ: 200 - JSON объект с полной текущей конфигурацией сети.
Описание: Инициирует подключение к указанной Wi-Fi сети.
Параметры:
| Параметр | Тип | Описание | Обязательный |
|---|---|---|---|
| ssid | string | Имя сети (SSID) | Да |
| pass | string | Пароль сети | Да |
| safe | bool | Если true, текущая конфигурация будет сохранена в файловую систему | Нет |
Ответ: 200 OK - в теле ответа строка "OK".
Описание: Возвращает или настраивает параметры NTP-клиента для синхронизации времени.
Параметры (для настройки):
| Параметр | Тип | Описание | Обязательный |
|---|---|---|---|
| enable | bool | Включить/выключить NTP-синхронизацию | Нет |
| server | string | Адрес основного NTP-сервера | Нет |
| server2 | string | Адрес резервного NTP-сервера | Нет |
| zone | int | Часовой пояс (смещение от GMT в часах) | Нет |
| period_hours | int | Период автоматической синхронизации в часах | Нет |
Ответ: 200 - JSON объект с текущими настройками NTP.
3. Управление Доступом и Аутентификацией
Описание: Изменяет логин и пароль для доступа к веб-интерфейсу. Требует текущей аутентификации.
Параметры:
| Параметр | Тип | Описание | Обязательный |
|---|---|---|---|
| login | string | Новый логин (макс. 9 символов) | Да |
| password | string | Новый пароль (макс. 9 символов) | Да |
Ответ: 200 OK - в теле ответа строка "OK".
Описание: Изменяет логин и пароль для оператора таблицы доступа. Требует текущей аутентификации.
Параметры:
| Параметр | Тип | Описание | Обязательный |
|---|---|---|---|
| tlogin | string | Новый логин оператора таблицы (макс. 9 символов) | Да |
| tpassword | string | Новый пароль оператора таблицы (макс. 9 символов) | Да |
Ответ: 200 OK - в теле ответа строка "OK".
Описание: Изменяет пароль для встроенной точки доступа Wi-Fi. Требует текущей аутентификации.
Параметры:
| Параметр | Тип | Описание | Обязательный |
|---|---|---|---|
| password | string | Новый пароль для Wi-Fi AP (макс. 10 символов) | Да |
Ответ: 200 OK - в теле ответа строка "OK".
4. Управление RFID-Модулем и Инвентаризацией
Описание: Запускает однократный цикл инвентаризации RFID-меток (если непрерывное сканирование отключено).
Параметры: Нет.
Ответ: 200 OK - в теле ответа строка "OK".
Описание: Возвращает текущую конфигурацию RFID-модуля или позволяет ее изменить.
Параметры (для изменения, примеры):
| Параметр | Тип | Описание | Обязательный |
|---|---|---|---|
| infiniteinventory | bool | Включить/выключить непрерывную инвентаризацию | Нет |
| pwrant1, pwrant2, pwrant3, pwrant4 | int | Установить мощность для антенн 1-4 | Нет |
| enant1, enant2, enant3, enant4 | bool | Включить/выключить антенны 1-4 для инвентаризации | Нет |
| activ1, activ2, activ3, activ4 | bool | Включить/выключить физическую активность антенн 1-4 | Нет |
| txtant1, txtant2, txtant3, txtant4 | string | Установить текстовые псевдонимы для антенн 1-4 | Нет |
| entrig1, entrig2 | bool | Включить/выключить триггеры HOLD 1 и 2 | Нет |
| no_trig1, no_trig2 | bool | Установить тип триггера HOLD 1 и 2 (NO/NC) | Нет |
| triggered1, triggered2, triggered3, triggered4 | int | Настроить, какие антенны активируются триггерами HOLD (1, 2, 3) | Нет |
| rf_session | int | Установить номер сессии RFID | Нет |
| repeattime | int | Установить количество циклов сканирования за одну инвентаризацию | Нет |
| min_hold_ms | int | Установить минимальное время активации от HOLD-триггера | Нет |
| freq_start, freq_space, freq_quan | int | Настроить частотный план | Нет |
| freq_error | float | Установить компенсацию частотной ошибки | Нет |
| diagnostics | - | Запустить диагностику подключения антенн | Нет |
Ответ: 200 - JSON объект с полной текущей конфигурацией RFID-модуля.
Описание: Возвращает или настраивает параметры идентификации и фильтрации RFID-меток.
Параметры (для настройки, примеры):
| Параметр | Тип | Описание | Обязательный |
|---|---|---|---|
| validtime_ms | long | Время "сна" метки перед повторной инвентаризацией | Нет |
| hold_time_ms | uint32 | Время удержания метки в списке инвентаризации | Нет |
| beep_on_tag | bool | Включить/выключить звуковой сигнал при обнаружении метки | Нет |
| rssi_filter_enable | bool | Включить/выключить фильтр по уровню RSSI | Нет |
| rssi_filter_value | int | Установить пороговое значение RSSI для фильтра | Нет |
| epc_filter_enable1-4 | bool | Включить/выключить EPC-фильтры 1-4 | Нет |
| epc_filter_value1-4 | string | Установить значения EPC-фильтров 1-4 | Нет |
| epc_access_password | string | Установить пароль доступа к меткам | Нет |
| extra_mem_read | bool | Включить/выключить чтение дополнительного банка памяти (TID/USER) | Нет |
| extra_mem_bank | uint8 | Выбрать банк памяти для чтения (2=TID, 3=USER) | Нет |
| data_start_words | uint8 | Установить начальное смещение для чтения данных (в словах) | Нет |
| data_len_words | uint8 | Установить длину читаемых данных (в словах, макс. 6) | Нет |
| accesstable | bool | Включить/выключить проверку меток по таблице доступа | Нет |
| notify_enable | bool | Включить/выключить уведомления по Socket | Нет |
| notify_ip | string | Установить IP-адрес для уведомлений по Socket | Нет |
| notify_port | uint32 | Установить порт для уведомлений по Socket | Нет |
| notify_time_lim_ms | uint32 | Установить таймаут соединения для уведомлений | Нет |
| http_enable | bool | Разрешить отправку уведомлений в формате HTTP GET | Нет |
| http_wait | bool | Ждать ответа от HTTP-сервера перед локальным управлением реле | Нет |
| modbus_rtu | bool | Включить/выключить протокол MODBUS RTU (отключает другие UART-уведомления) | Нет |
| notify_uart | bool | Включить/выключить уведомления по UART | Нет |
| notify_uart_json | uint8 | Установить формат UART-уведомлений (0-байтовый, 1-JSON, 2-ASCII, 3-настраиваемый байтовый) | Нет |
| add_prefix, add_suffix | string | Добавить префикс/суффикс к UART-уведомлениям | Нет |
| add_epcl, add_epc, add_tidl, add_tid, add_ant, add_rssi, add_crlf | bool | Включить/выключить добавление соответствующих полей в UART-уведомления | Нет |
| notify_uart_alive | bool | Включить/выключить отправку KeepAlive сообщений по UART | Нет |
| notify_uart_speed | int | Установить скорость UART | Нет |
| ble_keyb | bool | Включить/выключить эмуляцию BLE-клавиатуры | Нет |
| antenna_stay | bool | Включить фильтр по удержанию антенны | Нет |
| antenna_rssi | bool | Включить фильтр по RSSI для удержания антенны | Нет |
Ответ: 200 - JSON объект с текущими параметрами идентификации. Если параметр taglist=true, в ответ также включается таблица обнаруженных меток.
Описание: Возвращает или настраивает параметры управления периферией (Wiegand, реле, пищалка, рампа).
Параметры (для настройки, примеры):
| Параметр | Тип | Описание | Обязательный |
|---|---|---|---|
| w_pullup | bool | Включить/выключить подтяжку линий Wiegand | Нет |
| wiegand1_enable, wiegand2_enable | bool | Включить/выключить интерфейсы Wiegand 1 и 2 | Нет |
| wiegand1_type, wiegand2_type | int | Установить тип Wiegand (26, 34, 48 и т.д.) | Нет |
| wiegand1_shift_bytes, wiegand2_shift_bytes | int | Установить смещение для данных Wiegand | Нет |
| wiegand1_source, wiegand2_source | int | Выбрать источник данных для Wiegand (1=EPC, иначе DATA) | Нет |
| wiegand1_depends, wiegand2_depends | int | Настроить зависимость Wiegand от антенн (битовая маска) | Нет |
| timeout_logical_0 | uint16 | Установить ширину импульса Wiegand | Нет |
| timeout_next_bit | uint16 | Установить период следования импульсов Wiegand | Нет |
| parity_enable | bool | Включить/выключить биты четности для Wiegand | Нет |
| beep_on_start | bool | Включить/выключить звуковой сигнал при старте устройства | Нет |
| smartboard_enable | bool | Включить/выключить управление платой SmartBoard | Нет |
| smartboard_port1_enable, smartboard_port2_enable... | bool | Включить/выключить порты SmartBoard | Нет |
| smartboard_port1_timer, smartboard_port2_timer... | uint32 | Установить время удержания для портов SmartBoard | Нет |
| smartboard_port1_ants, smartboard_port2_ants... | uint32 | Настроить зависимость портов SmartBoard от антенн | Нет |
| ramp_link, ramp_enable, ramp_renable | bool | Настроить взаимодействие с контроллером рампы | Нет |
| ramp_timeout, ramp_ltimeout, ramp_senable, ramp_stype, ramp_address | uint32 | Настроить параметры работы с рампой | Нет |
| wdog_enable, rwdog_enable | bool | Включить/выключить системный и RFID watchdog | Нет |
| rwdog_timeout | uint32 | Установить таймаут RFID watchdog | Нет |
| wd_hour, wd_min, wd_sec | uint8 | Установить время для ежедневной перезагрузки | Нет |
Ответ: 200 - JSON объект с текущей конфигурацией периферии.
Описание: Проверяет работу интерфейсов Wiegand, подавая на линии D0 и D1 короткий импульс HIGH.
Параметры: Нет.
Ответ: 200 OK - в теле ответа строка "OK".
Описание: Отправляет тестовые данные по интерфейсу Wiegand для проверки его работы.
Параметры: Нет.
Ответ: 200 OK - в теле ответа строка "OK".
Описание: Возвращает данные о последней обнаруженной RFID-метке на указанной антенне. Если инвентаризация не запущена, запускает ее.
Параметры:
| Параметр | Тип | Описание | Обязательный |
|---|---|---|---|
| antenna | int | Номер антенны (1-4). По умолчанию 1 | Нет |
Ответ: 200 - JSON объект с данными о последней метке (EPC, RSSI, антенна и т.д.).
Описание: Возвращает список всех RFID-меток, находящихся в данный момент в зоне действия считывателя и прошедших фильтрацию.
Параметры:
| Параметр | Тип | Описание | Обязательный |
|---|---|---|---|
| limit | int | Максимальное количество меток в ответе (по умолчанию 50, макс. 150) | Нет |
Ответ: 200 - JSON объект, содержащий массив list с данными о метках.
Описание: Очищает список обнаруженных RFID-меток.
Параметры: Нет.
Ответ: 200 OK - в теле ответа строка "OK".
5. Управление Временем и Системой
Описание: Возвращает текущее системное время и статус устройства или позволяет установить новое системное время.
Параметры (для установки времени):
| Параметр | Тип | Описание | Обязательный |
|---|---|---|---|
| day, month, year, hour, minute, second | int | Компоненты даты и времени | Да (все вместе) |
| wday | int | День недели (1-7, где 1 - воскресенье) | Да |
Параметры (для получения времени):
| Параметр | Тип | Описание | Обязательный |
|---|---|---|---|
| taglist | bool | Если true, в ответ также включается таблица list с текущими метками | Нет |
Ответ:
- При установке времени:
200 OK- в теле ответа строка "OK". - При запросе времени:
200- JSON объект с текущим временем, статусом Wi-Fi, цветом LED, количеством меток и другой диагностической информацией.
Описание: Запускает диагностику UART-порта. Отправляет тестовую последовательность байт A0 00 FF 01 02 0D 0A и ожидает ответ.
Параметры: Нет.
Ответ: 200 OK - в теле ответа строка "OK".
6. Работа с Таблицей Доступа (EEPROM)
Описание: Возвращает текущее количество записей в таблице доступа, хранящейся в EEPROM.
Параметры: Нет.
Ответ: 200 - число (количество записей).
Описание: Возвращает максимальную емкость таблицы доступа в EEPROM.
Параметры: Нет.
Ответ: 200 - число (максимальное количество записей).
Описание: Форматирует (очищает) таблицу доступа в EEPROM, создавая новый заголовок.
Параметры: Нет.
Ответ: 200 OK - в теле ответа строка "OK".
Описание: Возвращает часть записей из таблицы доступа EEPROM.
Параметры:
| Параметр | Тип | Описание | Обязательный |
|---|---|---|---|
| s | uint16 | Начальный индекс записи (включительно) | Да |
| f | uint16 | Конечный индекс записи (включительно) | Да |
Ответ: 200 - JSON массив объектов, представляющих записи таблицы доступа.
Описание: Сохраняет (перезаписывает) часть записей в таблицу доступа EEPROM.
Параметры:
| Параметр | Тип | Описание | Обязательный |
|---|---|---|---|
| s | uint16 | Начальный индекс записи для сохранения | Да |
| f | uint16 | Конечный индекс записи для сохранения | Да |
| data | string | JSON-массив с данными записей для сохранения | Да |
Ответ: 200 OK - в теле ответа строка "OK".
7. Кодирование RFID-меток (Требуется ENCODE_ENABLE)
Описание: Запускает процесс кодирования RFID-метки по алгоритму "COPY TID": читает TID, формирует новый EPC на его основе и записывает его в метку, а также устанавливает новый пароль и блокирует память.
Параметры:
| Параметр | Тип | Описание | Обязательный |
|---|---|---|---|
| pass | string | Текущий пароль метки (8 hex-символов) | Да |
| npass | string | Новый пароль для метки (8 hex-символов) | Да |
| filter | string | Новый фильтр (4 hex-символа) для EPC | Да |
| serial | string | Новая серийная часть (12 hex-символов) для EPC | Да |
| beep | bool | Подать звуковой сигнал при успешном кодировании | Нет |
Ответ: 200 - JSON объект с результатом операции (успех или код ошибки) и деталями закодированной метки.
Описание: Записывает произвольные данные в указанный банк памяти RFID-метки. Требует аутентификации.
Параметры:
| Параметр | Тип | Описание | Обязательный |
|---|---|---|---|
| antenna | uint8 | Номер антенны для кодирования | Да |
| select | string | EPC метки для выбора (если не указан, будет выбрана первая попавшаяся) | Нет |
| pass | string | Пароль доступа к метке (8 hex-символов) | Да |
| bank | uint8 | Банк памяти (0=Reserved, 1=EPC, 2=TID, 3=USER) | Да |
| shift_w | uint8 | Смещение в словах (по 2 байта) | Да |
| datalen_w | uint8 | Длина данных для записи в словах (макс. 6) | Да |
| data | string | Данные для записи (в hex-формате, длина зависит от datalen_w) | Да |
| beep | bool | Подать звуковой сигнал при успешном кодировании | Нет |
Ответ: 200 - JSON объект с результатом операции (успех или код ошибки).
Пример:
antenna=1&
select=000000000000000000000000&
pass=00000000&
bank=1&shift_w=2&datalen_w=6&
data=1234010105441CDFFF003097&
beep=true
Комменетарий:
- Метка будет закодирована первой антенной
- Будет закодирована первая попавшаяся метка
- Предполагается, что эта метка не защищена паролем (а точнее сектор метки, куда будет производится запись)
- Будет закодирована память EPC (сектор №1), начиная со второго слова (то есть начиная с пятого по порядку байта)
- Будет закодировано 6 слов (12 байт, 96 бит)
- Нове данные, записываемые в память EPC = 1234010105441CDFFF003097
- После успешной кодировки считыватель подаст звуковой сигнал "beep"
8. Управление Периферией (Реле)
Описание: Кратковременно включает реле №1 (или порт SmartBoard №1). Требует аутентификации.
Параметры: Нет.
Ответ: 200 OK - в теле ответа строка "OK".
Описание: Кратковременно включает реле №2 (или порт SmartBoard №2). Требует аутентификации.
Параметры: Нет.
Ответ: 200 OK - в теле ответа строка "OK".
Описание: Кратковременно включает SSR реле №1 (или порт SmartBoard №3). Требует аутентификации.
Параметры: Нет.
Ответ: 200 OK - в теле ответа строка "OK".
Описание: Кратковременно включает SSR реле №2 (или порт SmartBoard №4). Требует аутентификации.
Параметры: Нет.
Ответ: 200 OK - в теле ответа строка "OK".
Описание: Инициирует звуковой сигнал, имитируя обнаружение RFID-метки.
Параметры: Нет.
Ответ: 200 OK - в теле ответа строка "OK".
9. Уведомления, отправляемые на хост
Если параметр notify_enable имеет значение true, то при возникновении события (чтение RFID-метки, которая удовлетворяет критериям Свой-Чужой) на хост будет отправлено уведомление: Байтовая посылка, текстовая строка в формате ASCII или Текстовая строка в формате JSON.
Пример уведомление в виде текстовой строки JSON: { "READER": ”Серийный номер считывателя”, "EPC": ”Уникальный номер метки, закодированный в память EPC”, "DATA": ”Дополнительные данные из памяти RFID-метки, например, TID-номер”, "DB": ”Номер банка памяти из которого прочитаны дополнительные данные”, "RSSI": “Сила сигнала -90 самый слабый, 30 самый сильный”, "ANT": "Номер RFID-антенны, которая обнаружила метку" }
Примечания
Аутентификация: Большинство критически важных запросов (изменение настроек, управление реле, доступ к файлам) требуют HTTP Basic Authentication. По умолчанию используются логин admin и пароль admin, которые можно изменить через /webaccess.
Формат ответа: Большинство запросов возвращают данные в формате JSON. Некоторые служебные запросы возвращают простой текст "OK" или сообщения об ошибках.
Статусы HTTP: Основные статусы: 200 OK (успех), 401 Unauthorized (требуется аутентификация), 403 Forbidden (доступ запрещен, например, для /copy_tid если функция не поддерживается), 404 Not Found (запрашиваемый ресурс не существует), 500 Internal Server Error (внутренняя ошибка сервера).
Зависимости: Некоторые функции (например, работа с SD-картой, BLE-клавиатура) доступны только если они были включены при компиляции прошивки (определены соответствующие препроцессорные директивы, такие как SD_CARD_SUPPORT, KEYBOARD_SUPPORT, MQTT_SUPPORT).