Проблемы с подключением Android Bluetooth

Я пытаюсь запустить простой скрипт python на моем телефоне Andorid (с использованием SL4A) для подключения к Bluetooth-модему BlueSMiRF (на основе устройства RN41), однако, что бы я ни пытался, я продолжаю получать следующую ошибку, когда пытаюсь соединять.

java.io.IOException: невозможно запустить обнаружение службы

Скрипт python показан ниже

import android

droid = android.Android()
droid.toggleBluetoothState(True)

result = droid.bluetoothConnect()
#result = droid.bluetoothConnect('00001101-0000-1000-8000-00805f9B34fb')
#result = droid.bluetoothConnect('00001101-0000-1000-8000-00805f9B34fb', '00:06:66:07:AE:44')

print repr(result)

droid.toggleBluetoothState(False)

Я пробовал все три варианта bluetoothConnect(), как показано в приведенном выше коде. Если я попробую использовать первые два метода подключения, я также увижу blueSMiRF в списке подключаемых устройств.

Мой эскиз Arduino (работающий на Arduino Mega) показан ниже. Он просто пересылает символы из одного порта в другой. Serial подключен к моему ноутбуку по адресу 9600, Serial1 подключен к BlueSMiRF по адресу 115200.

void setup ()
{
  // initialise serial
  Serial.begin(9600);  
  Serial1.begin(115200);  
}

void loop ()
{

  if (Serial1.available())
  {
    char c = Serial1.read(); 
    Serial.print(c); 
  }

  if (Serial.available())
  {
    char c = Serial.read();        
    Serial1.print(c); 
  }
} 

Я могу использовать Putty для доступа к командному режиму blueSMiRF, набрав $$$. Вроде все в порядке. У меня есть только небольшие опасения по поводу настроек для класса обслуживания и класса устройства. Для них установлены заводские значения по умолчанию 0x0000 и 0x1f00 соответственно, и мне интересно, может ли класс обслуживания быть установлен на 0x1101 (UUID для SSP).

Прочая информация: Android версии 2.3.3 SL4A r4


person Koisto    schedule 06.11.2011    source источник
comment
Вы можете попробовать спросить в списке рассылки Py4A или проверить проблемы Py4A.   -  person Velociraptors    schedule 07.11.2011


Ответы (2)


Переключите RX-TX для blueSMiRF, когда он будет разговаривать с платой Arduino.

Если вы можете подключиться к blueSMiRF через ПК, у него есть настройка RX-TX в качестве платы arduino.

Настройка с ПК на blueSMiRF:
ПК TX -> Arduino RX -> blueSMiRF RX
ПК RX ‹- Arduino TX‹ - blueSMiRF TX

Настройка Arduino на blueSMiRF:
Arduino RX -> blueSMiRF TX
Arduino TX ‹- blueSMiRF RX

person mach    schedule 20.12.2011

Модуль PyBluez в целом работает хорошо, и я без проблем использовал его с SL4A. Возможно, вам повезет, если вы просто воспользуетесь этим и полностью пропустите Java.

PyBluez не является чистым модулем Python, поэтому его нужно скомпилировать, но это было сделано, и последняя версия доступна по адресу загрузки сайта Py4A. Именно эту копию я использую лично, без каких-либо проблем.

Просто загрузите копию на свой дроид, откройте приложение Python4Android, нажмите «Импортировать модули» и выберите яйцо PyBluez.

person Carl Smith    schedule 18.02.2013