Какая есть утилита Bluetooth для Linux, которая позволит мне соединять и отсоединять устройства, отображать сообщения, поступающие с устройства, отправлять сообщения на устройство (надеюсь, с использованием файловой системы!) и устанавливать любые доступные флаги?
Я имею в виду, что мне нужно всего лишь иметь, скажем, 10 крошечных Bluetooth-клавиатур и назначить каждой клавише на каждой клавиатуре отправку MIDI-сообщений (очевидно, что MIDI-часть не является частью этого OP).
решение1
Вот список нескольких инструментов, работающих с Bluetooth, которые можно использовать для взаимодействия с устройством.
hciconfig
hciconfig
- Предоставляет информацию о Bluetooth HCI на вашем ПК
- Убедитесь, что устройство включено и работает, а также имеет необходимые режимы сканирования.
- Бег
hcitool dev
также должен дать некоторую информацию.
hcitool
hcitool inq
иhcitool scan
- Предоставляет информацию или точнее идентифицирует находящиеся поблизости устройства Bluetooth
hcitool info <BTAddr>
- Получить информацию об удаленном устройстве Bluetooth
l2ping
l2ping <BTAddr>
- Один из способов проверить, можем ли мы связаться с удаленным устройством Bluetooth
sdptool
sdptool browse <BTAddr> or sdptool records <BTAddr>
- Предоставляет информацию об услугах, предоставляемых удаленным устройством Bluetooth.
obexftp
obexftp –nopath –noconn –uuid none –bluetooth <BTAddr> –channel <OPUSHChann elNo> –put <FileToPut>
- Позволяет отправлять файлы без указания PIN-кода на стороне удаленного устройства.
- Номер канала OPush для устройства берется из sdptool выше.
obexftp -b <BTAddr> -v -p <FileToPut>
- Позволяет поместить файл на указанное устройство BT.
- obexftp также можно использовать для получения или вывода списка файлов на устройстве BT.
- также позволяет идентифицировать ближайшее устройство BT, просто указав опцию -b
passkey-агент
passkey-agent –default <Pin>
- Указанный здесь PIN-код — это тот, который должно предоставить удаленное устройство BT или ввести пользователь на этом устройстве по запросу.
obexpushd
obexpushd
- Позволяет принимать файлы, отправленные с устройства Bluetooth.
- В зависимости от того, кто его запустил, полученные файлы будут сохранены в соответствующем домашнем каталоге.
Сопряжение
Вы можете следовать инструкциям с этого сайта, чтобы соединить устройство с вашим Linux box через командную строку. Статья называется:Как подключить Bluetooth-устройство из командной строки в Linux.
Пример
Найдите MAC-адрес вашего устройства Bluetooth
$ hcitool scan Scanning ... 11:22:33:44:55:66 device 1 12:34:56:78:90:12 device 2
Настройте bluetooth-агент для передачи ожидаемого кода сопряжения
$ bluetooth-agent 0000 &
Отредактируйте файл конфигурации rfcomm
/etc/bluetooth/rfcomm.conf
и вставьте в него MAC-адрес, указанный выше.rfcomm0 { # Automatically bind the device at startup bind no; # Bluetooth address of the device device 11:22:33:44:55:66; # RFCOMM channel for the connection channel 3; # Description of the connection comment "This is Device 1's serial port."; }
ПРИМЕЧАНИЕ:Важное предостережение: если вы настроите свое устройство так, чтобы оно не привязывалось при запуске (bind no;), вам придется вручную запустить rfcomm с помощью этой команды перед использованием последовательного порта (что также требует прав root).
$ sudo rfcomm connect rfcomm0