Я немного новичок в этом, так что медведь со мной - я бы очень признателен за вашу помощь.
Я пытаюсь связать Android Nexus One с arduino (Duemilanove), который подключен к BlueSmirf. У меня есть программа, которая просто выводит строку "Hello Bluetooth" на любое устройство, к которому подключен BlueSmirf. Вот программа Arduino:
void setup() { Serial.begin(115200); int i; }
void loop() {Serial.print( "Hello Bluetooth!" ); Задержка (1000); }
Один терминал моего компьютера BT Я вижу сообщение и не подключаюсь без проблем. Проблема связана с моим кодом Android. Я могу подключиться к устройству с помощью android, но когда я смотрю на журнал, он не отображает "Hello Bluetooth". Вот журнал отладки:
04-09 16: 27: 49.022: ERROR/BTArduino (17288): FireFly-2583 подключен
04-09 16: 27: 49.022: ОШИБКА/БТАРДИИНО (17288): НАЧАТЬ ПОДКЛЮЧИТЬ РОКЕТ
04-09 16: 27: 55.705: ERROR/BTArduino (17288): Поступило в редакцию: 16
04-09 16: 27: 56.702: ERROR/BTArduino (17288): Поступило в редакцию: 1
04-09 16: 27: 56.712: ERROR/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: ERROR/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, потому что "байты" были целыми числами, но это все еще не имело смысла.
Похоже, что отправляет неверную скорость в бодах. Может ли это быть правдой?
Любая помощь будет оценена по достоинству. Большое вам спасибо.