2013-10-03 2 views
3

Я пытаюсь соединиться с автомобильным устройством Bluetooth OBDII от Beaglebone Black, работающим под управлением Ubuntu Linux, и не имея большой удачи.У меня возникли трудности с соединением с устройством OBDII Bluetooth на Ubuntu

Я смог сначала настроить hci0 с помощью bluez-simple-agent, хотя он никогда не спрашивал меня о PIN-коде. PIN-код для этого устройства должен быть «1234». Теперь, когда я бегу Bluez-простой-агент, я получаю это:

[email protected]:/etc/bluetooth$ sudo bluez-simple-agent hci0 00:0D:18:A0:4E:35 
Creating device failed: org.bluez.Error.AlreadyExists: Already Exists 

Что было бы хорошо, если он работает, но когда я пытаюсь выполнить привязку RFCOMM, я неоднократно получить либо «Не удается подключиться RFCOMM socket: Invalid exchange "(первый раз после перезапуска устройства), а затем« Невозможно подключить разъем RFCOMM: соединение отказалось »каждый раз после этого.

Это мой файл /etc/bluetooth/rfcomm.conf файл:

rfcomm0 { 
    # Automatically bind the device at startup 
    bind no; 

    # Bluetooth address of the device 
    device 00:0D:18:A0:4E:35; 

    # RFCOMM channel for the connection 
    channel 16; 

    # Description of the connection 
    comment "OBDII"; 
} 

И работает "RFCOMM привязку 0" не удается успешно создать устройство в/Dev/rfcomm0:

rfcomm0: 00:0D:18:A0:4E:35 channel 16 clean 

Однако , пытаясь прочитать из/Dev/rfcomm0, дает мне это:

[email protected]:/etc/bluetooth$ sudo cat /dev/rfcomm0 
cat: /dev/rfcomm0: Invalid exchange 
[email protected]:/etc/bluetooth$ sudo cat /dev/rfcomm0 
cat: /dev/rfcomm0: Connection refused 
[email protected]:/etc/bluetooth$ 

И после этого, RFCOMM возвращает это:

[email protected]:/etc/bluetooth$ rfcomm 
rfcomm0: 00:0D:18:A0:4E:35 channel 16 closed 

Я думаю, что я использую правильный канал (16), основываясь на результате «sdptool записей»

[email protected]:/etc/bluetooth$ sudo sdptool records 00:0D:18:A0:4E:35 
... 
Protocol Descriptor List: 
    "L2CAP" (0x0100) 
    "RFCOMM" (0x0003) 
    Channel: 16 
Profile Descriptor List: 
    "Serial Port" (0x1101) 
    Version: 0x0100 

Любая помощь будет принята с благодарностью, потому что я очень хорошо из идей с этой точки зрения.

Refs:

+0

Относительно Обнаружена ошибка, как «Создание устройства не удалось: org.bluez.Error.AlreadyExists: уже существует», его потому, что устройство уже создано, попробуйте с этим DBus команды, чтобы удалить это устройство 1. Dbus-посыла --system --type = method_call --print-reply --dest = org.bluez "/org/bluez/bluetooth_PID/hci0"org.bluez.Adapter.GetProperties 2. dbus-send --system --type = method_call --print-reply --dest = org.bluez "/ org/bluez/3858/hci0" org.bluez.Adapter.RemoveDevice objpath: "/ org/bluez/3858/hci0/dev_00_0D_18_A0_4E_35", после этого попробуйте снова соединить с агента. – ashish

ответ

3

Удалить сопряженное устройство из блютуз настройки и добавить его снова

+0

Да, но это было трюк в моем случае. – Gellweiler

0

Я знаю, что это немного запоздало, но так как я здесь, может быть, есть другие люди, которые борются с ним, поэтому я опубликую то, что сработало для меня, используя то, что, как я полагаю, является одним и тем же устройством (OBDII ELM327 Blue Connector),

[ИСПОЛЬЗОВАНИЕ ГЭБ с DEBIAN свистящих]

  1. у меня есть следующий RFCOMM.conf файл под/etc/bluetooth/

    rfcomm0 {
    связывать yes;
    устройство AA: BB: CC: DD: EE: FF; # MAC-адрес удаленного устройства
    канал 16;
    комментарий "OBDII";
    }

  2. $ # RFCOMM подключить rfcomm0

Каждый раз, когда ГЭБ подключен к устройству, кажется, она сохраняет свою конфигурацию в/вар/Библиотека/Bluetooth/XX: XX: XX: XX: XX: XX (MAC-адрес ключа Bluetooth нечестным с hcitool Dev)

  1. Что Я делаю, чтобы убедиться, что он подключается в следующий раз, я удалить все содержимое/вар/Библиотека/Bluetooth/XX: XX: XX: XX: XX: X X forlder с хрон при загрузке, добавив следующую строку в CRON, используя "crontrab -e" команда на консоли

$ @reboot гт/вар/Библиотека/Bluetooth/*

Итак, каждый раз, когда он снова загружается, я могу восстановить соединение с помощью команд Linux, когда это необходимо

Я знаю, что это немного сложно, и я не знаю, насколько хорошо или плохо удаляется папка Bluetooth, но он работает для меня, если у вас есть другие комментарии или предложения, пожалуйста, дайте мне знать

Привет