4

(RN41 デバイスに基づく) BlueSMiRF bluetooth モデムに接続するために、Andorid 電話 (SL4A を使用) で実行されている単純な python スクリプトを取得しようとしていますが、何を試しても次のエラーが発生し続けます。接続。

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()上記のコードに示すように、3 つのバリエーションすべてを試しました。最初の 2 つの接続方法を試すと、blueSMiRF接続するデバイスのリストにも が表示されます。

私の arduino スケッチ (Arduino Mega で実行) を以下に示します。あるポートから別のポートに文字を転送するだけです。Serial9600 で私のラップトップに接続され、 115200 でSerial1接続されています。BlueSMiRF

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これらはそれぞれとの工場出荷時のデフォルト値に設定されており、サービス クラスを(SSP の UUID)0x1f00に設定する必要があるのではないかと思います。0x1101

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

4

2 に答える 2

0

arduino ボードと通信するときに、blueSMiRF の RX-TX を切り替えます。

PC を介して blueSMiRF に接続できる場合、arduino ボードとして RX-TX が設定されています。

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 に答える
0

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

PyBluez は純粋な Python モジュールではないため、コンパイルする必要がありますが、コンパイルは完了しており、Py4A サイトのダウンロードセクションから最新バージョンを入手できます。私が個人的に使用しているのはこのコピーで、問題はありません。

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

于 2013-02-18T18:23:31.127 に答える