Я немного новичок во всем этом, так что потерпите меня - я буду очень признателен за вашу помощь.
Я пытаюсь связать Android Nexus One с arduino (Duemilanove), подключенным к BlueSmirf. У меня есть программа, которая просто выводит строку «Hello Bluetooth» на любое устройство, к которому подключен BlueSmirf. Вот программа Arduino:
void setup () {Serial.begin (115200); int i; }
void loop () {Serial.print ("Привет, Bluetooth!"); задержка (1000); }
На своем терминале BT на моем компьютере я вижу сообщение и без проблем подключаюсь. Проблема в моем коде Android. Я могу подключиться к устройству с 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: 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
ect ...
Вот код, я пытаюсь ввести только относительный код, но если вам нужно больше, дайте мне знать:
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, потому что «байты» были целыми числами, но это все равно не имело смысла.
Кажется, что отправляется неверная скорость передачи. Может ли это быть правдой?
Любая помощь будет оценена по достоинству. Большое тебе спасибо.