Как я соединяю и отправляю данные в последовательный порт Bluetooth на Linux?

В первую очередь, необходимо найти и .xpi файл для требуемого языка. Насколько я знаю, что нет никакого места, которое концентрирует все языки. Затем выполните следующие шаги:

  1. Во вставке addressbar about:config. Хит Входит. Список различных предпочтений появится.
  2. Вставка general.useragent.locale к поисковой вкладке. Только одно предпочтение появится.
  3. Дважды щелкните по предпочтению и введите код своего языка (например, de-DE или en-США)
  4. Перезапуск FF
31
25.09.2013, 08:37
4 ответа

Я, кажется, получил эту работу теперь. Bluetooth кажется немного привередливым. Я резюмирую свои шаги полностью в случае, если кто-то еще находит это полезным (хотя в значительной степени, что я попробовал первоначально). Это - для Android JB (4.2.2) на Nexus 4 и Дуге Linux 3.6.7-1 с блюзом 4.101 на Gnome 3.6 (w/Bluetooth гнома).

(этот шаг не может сделать ничего полезного), Поворот Bluetooth на Android прочь, и разъедините свой Адаптер USB/Bluetooth от Вашей машины Linux (или если Вы имеете в созданном, сбрасываете его с помощью hcitool devname сброс),

Соедините/поверните на своем адаптере Bluetooth на Linux. Удостоверьтесь, что Ваш адаптер видим (может быть установлен в Bluetooth гнома - необходимо видеть значок системного лотка Bluetooth).

Включите Bluetooth на своем устройстве на базе Android. Используйте Android для соединения к адаптеру (я не мог соединиться наоборот из Linux). Диалоговое окно подойдет, прося у Вас ключ. Вставьте любой PIN, который Вы хотите. Gnome должен открыться уведомление, прося у Вас ключ; вставьте тот же PIN-код, который Вы ввели ранее. Ваше устройство на базе Android и ключ должны быть соединены в этой точке.

В Linux откройте терминал и проверьте то, что сервисы Bluetooth доступны путем ввода

sdptool browse local

Если Вы уже имеете сервис последовательного порта, обращаете внимание, каково канал это. Если Вы не делаете, можно добавить сервис:

sdptool add --channel=22 SP

Теперь послушайте на этом канале с помощью rfcomm:

sudo rfcomm listen /dev/rfcomm0 22

rfcomm заблокируется, прислушиваясь к соединению с сообщением как

Waiting for connection on channel 22

Назад на Android, я использовал приложение BlueTerm (http://pymasde.es/blueterm/, также доступный свободно на Google Play Store), хотя любое подобное приложение должно работать. Откройте BlueTerm, перейдите к опциям> Устройство Подключения: выберите парный адаптер.

Хотелось бы надеяться, приложение смогло соединиться. Вы будете видеть дополнительную проверку в терминале, где Вы заблокировали слушание с сообщением как:

Waiting for connection on channel 22
Connection from 22:22:22:22:22:22 to /dev/rfcomm0
Press CTRL-C for hangup

Что-либо, что Вы вводите в приложение BlueTerm, должно идти в/dev/rfcomm0. Вы видите, что материал обнаруживается, поскольку Вы вводите путем открытия нового терминала и выполнения чего-то как:

cat /dev/rfcomm0
21
27.01.2020, 19:38

Ступеньки, приведенные ниже, сработали для меня:

Сначала нужно установить пару устройств. Сопряжение относительно простое. Я позвоню клиенту (который начинает говорить) и серверу (который отвечает)

Вам нужно настроить сервер перед этим: Серверная сторона (как корневая):

sdptool add --channel=3 SP
mknod -m 666 /dev/rfcomm0 c 216 0
rfcomm watch /dev/rfcomm0 3 /sbin/agetty rfcomm0 115200 linux

Клиентская сторона (как корневая):

sdptool add --channel=3 SP
rfcomm connect /dev/rfcomm0 [SERVER_ADDR] 3

Теперь, чтобы открыть последовательный терминал на клиенте:

screen /dev/rfcomm0 115200

Комментарии:

Когда вы вызываете последнюю команду rfcomm connect... в клиенте, будет создано устройство /dev/rfcomm0, которое будет ассоциировано с сервером /dev/recomm0. Это представляет собой последовательный канал связи между обеими командами

/dev/rfcomm0: rfcomm watch.... будет "слушать" входящие соединения. В потерянном соединении команда перезапустит новое состояние 'listen'.

10
27.01.2020, 19:38

Я решил это с небольшим изменением команд Приса. Дайте им шанс, если у кого-то все еще возникают проблемы с установкой соединения rfcomm.

sudo service bluetooth restart

Это ^ гарантирует, что вы начинаете с чистого листа каждый раз, когда пытаетесь установить соединение.

rfcomm add --channel=<a_channel_#> SP

Этот номер канала должен отличаться от любого канала, назначенного в настоящее время.

(НЕОБЯЗАТЕЛЬНО) Для проверки каналов:

sdptool browse local | grep Channel

Я не уверен, зачем нужна эта следующая команда, но у меня она сработала.

rfcomm release 0

Затем, чтобы прослушивать входящие соединения:

rfcomm watch 0 <a_channel_#>

ПРИМЕЧАНИЕ: MAC-адрес bt в /etc/bluetooth/rfcomm.conf, но должен быть MAC-адресом вашего телефона. Также канал в этом файле должен быть таким же, как выбранный для a_channel_ #.

Сделав все это, я использовал эмулятор терминала bt на своем телефоне, чтобы все это проверить.

5
27.01.2020, 19:38

Я пробовал различные инструменты bluetooth, и было трудно найти правильную последовательность команд для подключения и обмена данными с модулем bluetooth. Попробуйте использовать rfcomm и minicom:

Это мой /etc/bluetooth/rfcomm.conf

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.";
}

Сканирование для устройств bluetooth:

hcitool scan
Scanning ...
    20:15:12:08:62:95   HC-06

Привязка с помощью rfcomm

sudo rfcomm bind 0 20:15:12:08:62:95 1

NB: привязка 0 относится к устройству номер 0 (rfcomm0), а 1 - это канал.

Затем используйте minicom с sudo и сохраните конфигурацию, в которой укажите скорость передачи данных и порт. Вы можете найти больше информации здесь.

0
27.01.2020, 19:38

Теги

Похожие вопросы