Skip to content

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:

{
  event: TagRemoved (2),
  readerId: 0-3,
  tag: "",              // Пустая строка
  unitId: 0-3
}

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 кэширует последнее событие для каждого ридера. При подключении MQTT публикует все cached события.

Команды

read_rfid

Чтение OpenPrintTag данных с метки.

MQTT команда:

{
  "unitId": "U1"
}

UART: Command{ReadRfid, unitId}

write_rfid

Запись данных на метку. Не реализовано - команда логируется, UART кадры не отправляются.

Ограничения

  • Фрагментированные кадры для RFID данных (RfidReadData/RfidWriteData) не интегрированы
  • write_rfid MQTT команда не реализована
  • Данные OpenPrintTag не передаются обратно через MQTT