Документация UART API, протокол взаимодействия хоста с RFID-считывателями SAUK

1. Бинарные команды (Short Protocol)

Бинарные команды используют префикс 0xA0 0x00 и завершаются символами 0x0D 0x0A.

A0 00 01 [start] [save]

Описание: Управление непрерывной инвентаризацией.

Параметры:

Параметр Тип Описание Значения
start byte Запуск/остановка инвентаризации 0x01 = старт, 0x00 = стоп
save byte Сохранить конфигурацию 0x01 = сохранить, 0x00 = не сохранять

Ответ: OK или {"result":"ok"} (в зависимости от настройки notify_uart_json).

Пример запроса (запуск):

A0 00 01 01 01 0D 0A

Пример запроса (остановка):

A0 00 01 00 00 0D 0A
A0 00 02

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

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

Ответ: RFID-метки в зоне видимости в формате, определенном настройками UART.

Пример запроса:

A0 00 02 0D 0A
A0 00 FF 01 02

Описание: Диагностика UART-соединения.

Параметры: Фиксированные значения 0x01 и 0x02.

Ответ: Системное сообщение "success" в логах. Устанавливает флаг uart_check_res = 1.

Пример запроса:

A0 00 FF 01 02 0D 0A
A0 00 BE [addr] 01 ...

Описание: Обработка статуса от контроллера рампы (RAMP).

Параметры:

Позиция Тип Описание
[3] byte Адрес RFID-считывателя (должен совпадать с m_nModbusRTU_address)
[4] byte Тип сообщения (0x01 = статус)
[6] byte Состояние сенсоров
[7] byte Флаг "Пандус занят"
[8] byte Состояние светофора 1
[9] byte Состояние светофора 2

Ответ: Нет прямого ответа. Обновляет внутренние переменные системы.

2. JSON команды

Все JSON-команды должны быть правильно сформированными и завершаться символами новой строки (\n\r).

{"cmd":"tag","param":"read",...}

Описание: Чтение памяти RFID-метки (EPC, TID, USER).

Параметры:

Параметр Тип Описание Обязательный
cmd string Команда Да (значение "tag")
param string Параметр команды Да (значение "read")
bank int Банк памяти: 0=Reserved, 1=EPC, 2=TID, 3=USER Да
block int Начальный блок для чтения Да
count int Количество блоков для чтения (макс. MAX_TID_DATA_REQUEST/2) Да

Ответ: Нет прямого ответа. Система отправляет данные метки в формате, определенном настройками UART.

Пример запроса (чтение TID):

{"cmd":"tag","param":"read","bank":2,"block":0,"count":4}
{"cmd":"act","param":"inventory_once"}

Описание: Запуск однократного сканирования (если не запущено непрерывное).

Параметры:

Параметр Тип Описание Обязательный
cmd string Команда Да (значение "act")
param string Параметр команды Да (значение "inventory_once")

Ответ: RFID-метки в зоне видимости.

Пример запроса:

{"cmd":"act","param":"inventory_once"}
{"cmd":"get","param":"type"}

Описание: Получить тип устройства.

Параметры:

Параметр Тип Описание Обязательный
cmd string Команда Да (значение "get")
param string Параметр команды Да (значение "type")

Ответ: {"cmd":"get","param":"type","value":"D|DW|A"}

{"cmd":"get","param":"version"}

Описание: Получить информацию о версии прошивки и конфигурации.

Ответ: JSON объект с ключами: result и version.

Пример ответа:

{"result":"ok","version":"{...}"}
{"cmd":"get","param":"datetime"}

Описание: Получить текущую дату и время.

Ответ: JSON объект с текущей датой и временем.

{"cmd":"get","param":"peripheryconfig"}

Описание: Получить конфигурацию периферии.

Ответ: JSON объект с настройками периферии, отправленный через UART.

{"cmd":"set","param":"[param_name]","value":[value]}

Описание: Установка различных параметров системы.

Параметры:

Параметр Тип Описание Примеры значений параметра (param)
cmd string Команда "set"
param string Имя параметра для установки "tagidentity.validate_ms", "rfidconfig.infiniteinventory", "peripheryconfig.beep_on_start"
value разный Новое значение параметра Зависит от параметра (int, bool, string)

Ответ: {"result":"ok"} при успешном выполнении.

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

Пример запроса (включение звука при обнаружении метки):

{"cmd":"set","param":"tagidentity.beep_on_tag","value":true}

Пример запроса (установка времени валидации метки):

{"cmd":"set","param":"tagidentity.validate_ms","value":500}

3. Форматы ответов

Формат ответа зависит от настройки notify_uart_json в конфигурации RFID-модуля.

JSON формат (notify_uart_json = 1 или 2)

Ответы возвращаются в виде JSON-объектов.

{"result":"ok"}
{"message":"warning","value":"Can't find command"}
{"result":"syntax error"}

Текстовый формат (notify_uart_json = 0 или 3)

Ответы возвращаются в виде простых текстовых строк.

OK

Примечания

Синтаксис: Все команды должны быть правильно сформированы. Неправильный синтаксис JSON приведет к ответу {"result":"syntax error"}.

Безопасность: Некоторые команды могут выполняться только при определенных условиях (например, чтение памяти метки невозможно при запущенной непрерывной инвентаризации).

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

Ограничения: Размер JSON-документа ограничен значением HOST_BUFFERSIZE. Убедитесь, что ваши команды не превышают этот лимит.

Документация по UART API для RFID-считывателей SAUK© 2024

Россия, г. Москва, 
г. Зеленоград, проезд 4922, дом 4, строение 2. Технопарк "ЭЛМА". 
Подробнее...
SAUK© 2020 – 2025. Все тексты и изображения, представленные на сайте, являются интеллектуальной собственностью SAUK. Могут быть использованы только по письменному согласию SAUK. SAUK® является зарегистрированным торговым знаком.