N
NerkJ
Neues Mitglied
- 0
Hallo Forum,
ich erstelle gerade eine App, mit der ich Daten an einen Arduino per Bluetooth senden kann.
Das funktioniert soweit ganz gut. Ich habe ein Array mit Daten erzeugt, die gesendet und vom Arduino empfangen werden.
Beim Testen habe ich folgendes Problem:
Rufe ich die close() Methode der BluetoothSocket Variable auf, werden weitere Daten gesendet. Es sind immer die gleichen 19 Zahlen, die mir im Arduino Serial Monitor angezeigt werden. Mit dem Debugger kann ich sehen, das die Übertragung nach dem Aufruf der close() Methode stattfindet.
Ich hoffe, jemand hat eine Idee, was da passiert.
Für alle Hinweise, vielen Dank im vorraus!
Hier ein Teil des Codes:
ich erstelle gerade eine App, mit der ich Daten an einen Arduino per Bluetooth senden kann.
Das funktioniert soweit ganz gut. Ich habe ein Array mit Daten erzeugt, die gesendet und vom Arduino empfangen werden.
Beim Testen habe ich folgendes Problem:
Rufe ich die close() Methode der BluetoothSocket Variable auf, werden weitere Daten gesendet. Es sind immer die gleichen 19 Zahlen, die mir im Arduino Serial Monitor angezeigt werden. Mit dem Debugger kann ich sehen, das die Übertragung nach dem Aufruf der close() Methode stattfindet.
Ich hoffe, jemand hat eine Idee, was da passiert.
Für alle Hinweise, vielen Dank im vorraus!
Hier ein Teil des Codes:
Code:
findViewById<Button>(R.id.sendBtn).setOnClickListener {
// Beispiel Befehl an Arduino
val daten: ByteArray = byteArrayOf(2,5,0,1) //Test Daten
if (bAdapter.isEnabled) {
val hc05: BluetoothDevice = bAdapter.getRemoteDevice("98:D3:31:F5:AC:EB")
var btSocket: BluetoothSocket? = null
var counter = 0
do {
try {
btSocket = hc05.createRfcommSocketToServiceRecord(mUUID)
System.out.println(btSocket)
btSocket.connect()
System.out.println(btSocket.isConnected())
} catch (e: IOException) {
e.printStackTrace()
Toast.makeText(this, "Verbindung fehlgeschlagen", Toast.LENGTH_LONG).show()
}
counter++
} while (!btSocket!!.isConnected && counter < 3)
if (btSocket.isConnected) {
try {
val outputStream: OutputStream = btSocket.outputStream
outputStream.write(daten) //Daten werden gesendet
} catch (e: IOException) {
e.printStackTrace()
}
try {
btSocket.close() //Nach Aufruf Problem
System.out.println(btSocket.isConnected())
} catch (e: IOException) {
e.printStackTrace()
}
}
} else {
Toast.makeText(this, "Bluetooth einschalten", Toast.LENGTH_LONG).show()
}
}