4

我正在尝试在我的 Andorid 手机(使用 SL4A)上运行一个简单的 python 脚本来连接到 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连接到BlueSMiRF115200。

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); 
  }
} 

我可以使用 PuttyblueSMiRF通过键入来访问 的命令模式$$$。一切似乎都还好。我对 Service Class 和 Device Class 的设置只有些担心。0x0000这些分别设置为和的出厂默认值,0x1f00我想知道是否需要将服务类设置为0x1101(SSP 的 UUID)。

其他信息:Android 版本 2.3.3 SL4A r4

4

2 回答 2

0

PyBluez 模块通常运行良好,我已经将它与 SL4A 一起使用,没有任何问题。使用它并完全跳过 Java 可能会更好。

PyBluez 不是纯 Python 模块,因此必须对其进行编译,但这已经完成,最新版本可从 Py4A 站点的下载部分获得。这是我个人使用的副本,没有任何问题。

只需将副本下载到您的机器人,打开 Python4Android 应用程序,点击 Import Modules,然后选择 PyBluez egg。

于 2013-02-18T18:23:31.127 回答
0

当 blueSMiRF 与 arduino 板通信时,将其切换为 RX-TX。

如果您能够通过 PC 连接到 blueSMiRF,它将 RX-TX 设置为 arduino 板。

PC 到 blueSMiRF 设置:
PC TX --> Arduino RX --> blueSMiRF RX
PC RX <-- Arduino TX <-- blueSMiRF TX

Arduino 到 blueSMiRF 设置:
Arduino RX --> blueSMiRF TX
Arduino TX <-- blueSMiRF RX

于 2011-12-20T11:02:59.777 回答