
odrfid-io: ввод UID без смены раскладки
Как вводить UID из ODRFID-M/N/E в активное поле, если строка содержит буквы и важна текущая раскладка клавиатуры.
odrfid-io нужна для ODRFID-M, ODRFID-N и ODRFID-E, когда номер карты нужно
вводить в активное поле, как в режиме клавиатуры HID, но строка содержит буквы.
Например, UID в формате HEX может содержать A–F: при вводе штатной
HID-клавиатурой результат зависит от выбранной раскладки. Программа читает UID
через виртуальный COM-порт CDC и вводит строку средствами компьютера. Менять
раскладку перед каждым считыванием не требуется.
Скачать готовую сборку для Windows, Linux или macOS. Исходный код и полная инструкция — в репозитории odrfid-io.
Как пользоваться
- Подключите считыватель по USB и найдите его CDC-порт. Закройте ODRFIDKit, терминал и другие программы, которые используют этот порт.
- Скачайте сборку для своей ОС и запустите программу с параметром
-port. Например, в Linux:./odrfid-io -port /dev/ttyACM0 -mode hex, в Windows:odrfid-io.exe -port COM3 -mode hex. - Дождитесь сообщения
ожидание UID, поставьте курсор в нужное поле и поднесите карту. По умолчанию программа вводит строку и нажимает Enter.
Режим hex вводит полный UID в HEX, включая буквы A–F, если они есть.
Режим id по умолчанию вводит только цифры: длину UID в байтах и его десятичное
значение. Также доступны обратный порядок байтов, десятичные форматы и
собственная строка через -format. Все параметры и примеры приведены в
README проекта.
Чтобы не нажимать Enter после UID, добавьте -enter=false.
Программа при запуске отключает клавиатуру считывателя командой AT+H0,
настраивает выдачу полного UID через CDC и обрабатывает метки длиной от 4 до 10
байт. После остановки клавиатура считывателя остаётся отключённой. Чтобы
включить её снова, отправьте AT+H1 через последовательный порт.
В Linux нужен сеанс X11. Стандартный способ ввода вставляет строку через буфер
обмена и заменяет его текстовое содержимое; для этого нужен xclip или xsel.
Режим -input=type не использует буфер обмена, но буквы в нём могут зависеть от
раскладки. Нативный ввод через Wayland не поддерживается. В macOS разрешите
терминалу управление компьютером в настройках универсального доступа.