CelerCOM, библиотека Java

 

CelerCOM — это бесплатная минималистичная библиотека Java для взаимодействия с внешними устройствами через COM-порты, например: USB, виртуальный COM. Библиотеку также можно использовать для взаимодействия с файлами TTY и FIFO.

CelerCOM

Главные особенности:

  • Драйвер для Linux не зависит от системных или сторонних библиотек, даже от libc. Это позволяет использовать CelerCOM в минималистичных средах, таких как встроенные системы. Например, библиотека совместима с Raspberry Pi.
  • Поддерживаются все версии Windows.
  • В случае отсутствия драйвера для текущей операционной системы (ОС) и архитектуры процессора, CelerCOM автоматически переключается на API RandomAccessFile (RAF). Драйвер RAF поддерживает ограниченную совместимость с внешними устройствами. Преимущества нативных драйверов описаны ниже.
  • Библиотека и нативные драйверы объединены в один JAR. CelerCOM загружает соответствующий драйвер автоматически.

Нативные драйверы поддерживаются для следующих систем:

WindowsLinux
x86 (32-бит)
AMD64 (64-бит)
ARM (32-бит)
 

Мультиплатформенная API RAF используется в качестве запасного варианта. Нативные драйверы предпочтительнее:

  • Нативный драйвер может автоматически восстанавливать соединение в случае ошибок связи.
  • Отключение системного кеша операций ввода-вывода для совместимости с некоторыми внешними устройствами.
  • Операция чтения осуществляется с задержкой не более 200 мс при использовании нативного драйвера. API RAF блокирует чтение на неопределенный срок при «зависании» устройства.

 

Как использовать

Просто добавьте CelerCOM.jar в список classpath. API описана в документации javadoc.

Содержимое CelerCOM

Библиотеку CelerCOM также можно использовать как простой терминал TTY. Просто запустите CelerCOM.bat в Windows или CelerCOM.sh в Linux или Unix, чтобы запустить TTY. Идентификатор COM-порта следует указать в единственном параметре конфигурации внутри скрипта: COM_PORT.

В Windows требуется добавить префикс «\\.\», если номер порта больше 9. Например:

COM9
\\.\COM10

Типичное имя USB-порта в Linux:

/dev/ttyUSB0

Учтите, что доступ к USB или другим портам в Linux может быть ограничен. Обычно доступ открыт только для группы dialout и для root. На TTY и FIFO такие ограничения могут не распространяться.

Терминал TTY попытается открыть указанный COM-порт и начнет отправлять и получать текстовые команды. Если устройство поддерживает AT-команды, такие команды можно отправлять непосредственно через данный терминал.

 

Примеры

GitHubПримеры доступны в нашем репозитории GitHub.