2011-11-06 32 views
4

私はAndoridの携帯電話(SL4Aを使用)でBlueSMiRFブルートゥースモデム(RN41デバイスに基づいて)に接続するための単純なPythonスクリプトを取得しようとしていますが、接続しようとすると次のエラーが発生します。Android Bluetooth接続の問題

java.io.IOException: Unable to start Service Discovery 

Pythonスクリプトは、上記のコードに示すように、私は)(bluetoothConnectのすべての3つのバリエーションを試みた

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) 

下に示されています。最初の2つの接続方法を試してみると、接続するデバイスの一覧にblueSMiRFが表示されます。

私のarduinoスケッチ(Arduino Megaで実行)は以下の通りです。あるポートから別のポートに文字を転送するだけです。シリアルが9600で私のラップトップに接続され、シリアル1は私が$$$入力して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); 
    } 
} 

でBlueSMiRFに接続されています。すべてが大丈夫と思われる。私は、サービスクラスとデバイスクラスの設定についてわずかな懸念があります。これらは工場出荷時のデフォルト値0x0000と0x1f00のrespectivleyに設定されており、サービスクラスを0x1101(SSPのUUID)に設定する必要があるかどうか疑問です。

その他の情報: Androidのバージョン2.3.3 SL4A R4

+0

Py4Aのメーリングリストに問い合わせるか、Py4Aの問題をチェックしてみてください。 – Velociraptors

答えて

0

blueSMiRFためのスイッチRX-TX、それはarduinoのボードと話をしなければなりません。

PC経由でblueSMiRFに接続できる場合は、arduino-boardとしてRX-TXが設定されています。 blueSMiRFセットアップへ

PC:
PCのTX - > ArduinoのRX - > blueSMiRF RX
PC RX < - ArduinoのTX < - blueSMiRF TX

ArduinoのblueSMiRFセットアップへ:
アルドゥイーノRX - > blueSMiRF TX
ArduinoのTX < - blueSMiRF RX

0

PyBluezモジュールは一般的にうまく機能し、問題なくSL4Aで使用しました。あなたはそれを使用して、Javaを完全にスキップするだけで、より良い運を持つかもしれません。

PyBluezは純粋なPythonモジュールではないため、コンパイルする必要がありますが、これが行われており、最近のバージョンはPy4Aサイトのdownloadsセクションから入手できます。私が個人的に使っているこのコピーです。何の問題もありません。

ドロイドにコピーをダウンロードし、Python4Androidアプリを開き、[モジュールをインポート]をクリックし、PyBluezの卵を選択します。