私はこのすべてに少し慣れていないので、ご容赦ください - 助けていただければ幸いです。
BlueSmirf に接続されている arduino (Duemilanove) と Android Nexus One をリンクしようとしています。BlueSmirfが接続されているデバイスに「Hello Bluetooth」という文字列を単純に出力するプログラムがあります。Arduinoプログラムは次のとおりです。
ボイド セットアップ () { Serial.begin(115200); int i; }
void loop(){Serial.print("Hello Bluetooth!"); 遅延 (1000); }
私のコンピューターのBT端末の1つで、メッセージが表示され、問題なく接続できます。問題は私のアンドロイドコードにあります。Androidでデバイスに接続できますが、ログを見ると「Hello Bluetooth」が表示されていません。デバッグログは次のとおりです。
04-09 16:27:49.022: エラー/BTArduino(17288): FireFly-2583 が接続され
ました 04-09 16:27:49.022: エラー/BTArduino
(17288): ソケットの接続を開始しています
04-09 16:27:55.705:エラー/BTArduino(17288): 受信: 16
04-09 16:27:56.702: エラー/BTArduino(17288): 受信: 1
04-09 16:27:56.712: エラー/BTArduino(17288): 受信: 15
04- 09 16:27:57.702: ERROR/BTArduino(17288): 受信: 1
04-09 16:27:57.702: ERROR/BTArduino(17288): 受信: 15
04-09 16:27:58.704: ERROR/BTArduino(17288 ): 受信: 1
04-09 16:27:58.704: エラー/BTArduino(17288): 受信: 15
など...
これがコードです。関連するコードのみを配置しようとしていますが、さらに必要な場合はお知らせください。
private class ConnectThread extends Thread {
private final BluetoothSocket mySocket;
private final BluetoothDevice myDevice;
public ConnectThread(BluetoothDevice device) {
myDevice = device;
BluetoothSocket tmp = null;
try {
tmp = device.createRfcommSocketToServiceRecord(MY_UUID);
} catch (IOException e) {
Log.e(TAG, "CONNECTION IN THREAD DIDNT WORK");
}
mySocket = tmp;
}
public void run() {
Log.e(TAG, "STARTING TO CONNECT THE SOCKET");
InputStream inStream = null;
boolean run = false;
//...More Connection code here...
より相対的なコードは次のとおりです。
byte[] buffer = new byte[1024];
int bytes;
// handle Connection
try {
inStream = mySocket.getInputStream();
while (run) {
try {
bytes = inStream.read(buffer);
Log.e(TAG, "Received: " + bytes);
} catch (IOException e3) {
Log.e(TAG, "disconnected");
}
}
私は bytes = inStream.read(buffer) を読んでいます。バイトが整数であることはわかっているので、「バイト」は整数だったので、Bluetooth経由で整数を送信しようとしましたが、それでも意味がありませんでした。
が間違ったボーレートを送信しているようです。これは本当でしょうか?
どんな助けでも大歓迎です。どうもありがとうございました。