RFID Функционал¶
Назначение¶
RFID ридеры идентифицируют филамент (катушки) и отправляют события Backend для отслеживания состояния.
События¶
TagDetected¶
Катушка установлена или присутствует при включении.
UART:
{
event: TagDetected (1),
readerId: 0-3, // R1=0, R2=1, R3=2, R4=3
tag: "DEADBEEF...", // HEX ID метки (до 32 символов)
unitId: 0-3 // Привязка к юниту
}
MQTT:
{
"event": "tag_detected",
"tag": "DEADBEEF12345678",
"readerId": 0,
"unitId": "U1",
"timestamp": "2026-01-03T10:00:00Z"
}
TagRemoved¶
Катушка извлечена или отсутствует при включении.
UART:
MQTT:
{
"event": "tag_removed",
"tag": "",
"readerId": 0,
"unitId": "U1",
"timestamp": "2026-01-03T10:05:00Z"
}
Логика работы¶
При включении (Boot)¶
MCU отправляет событие для каждого ридера: - Если метка обнаружена → TagDetected с ID - Если ридер пустой → TagRemoved с пустым tag
Runtime¶
- Установка катушки → TagDetected
- Извлечение катушки → TagRemoved
Кэширование (LINK)¶
LINK кэширует последнее событие для каждого ридера. При подключении MQTT публикует все cached события.
Команды¶
read_rfid¶
Чтение OpenPrintTag данных с метки.
MQTT команда:
UART: Command{ReadRfid, unitId}
write_rfid¶
Запись данных на метку. Не реализовано - команда логируется, UART кадры не отправляются.
Ограничения¶
- Фрагментированные кадры для RFID данных (
RfidReadData/RfidWriteData) не интегрированы write_rfidMQTT команда не реализована- Данные OpenPrintTag не передаются обратно через MQTT