Я работаю над небольшим приложением, которое подключается через Bluetooth к Arduino с прикрепленным экраном Bluetooth. Мое соединение через Bluetooth в порядке, и я могу отправлять команды из моего приложения в Arduino. Я делаю это в Котлине. Я учусь на ходу, поэтому я что-то неправильно понимаю. Вот где я надеюсь, что кто-то может направить меня в правильном направлении.
Можно предположить, что все соединения с Bluetooth работают нормально (так и есть).
Это часть моего кода, которая обрабатывает отправку данных в Arduino.
private fun writeDataSendToMothership(outputToBt: String) {
try {
bluetoothSocket.outputStream.write(outputToBt.toByteArray())
Log.i(LOGTAG, "Button clicked, info sent: $outputToBt")
} catch (e: IOException) {
e.printStackTrace()
}
}
button_led_on.setOnClickListener { writeDataSendToMothership("1")}
button_led_off.setOnClickListener { writeDataSendToMothership("0")}
Часть, с которой у меня возникают проблемы, это получение данных от Arduino (Mothership) иделать что-то с этим. Я не могу понять, что мне нужно делать.
То, что я пытаюсь сделать, это показать изображение в приложении в зависимости от того, что Arduino отправляет после нажатия кнопки на Arduino.
На данный момент у меня есть следующее:
private fun readDataFromMothership(inputFromBt: String) {
try {
bluetoothSocket.inputStream.read(inputFromBt.toByteArray())
Log.i(LOGTAG, "Incoming data from Mothership recieved: $inputFromBt")
} catch (e: IOException) {
e.printStackTrace()
}
}
private fun View.showOrInvisible(imageShow: Boolean) {
visibility = if (imageShow) {
View.VISIBLE
} else {
View.INVISIBLE
}
}
Вот где я упал.
if (readDataFromMothership()) {
imageView_mothership_button_pushed.showOrInvisible(true)
} else {
imageView_mothership_button_pushed.showOrInvisible(false)
}
Я ничего не упомянул в этом вызове функции. Я пробовал много разных вещей, но я просто не понимаю, какой параметр мне нужен, или я далеко. Я даже в правильном соседстве?
EDIT Кроме моего отсутствия общих знаний о программировании, я думаю, что мое зависание связано с тем, что делать со строкой "inputFromBt". Нужно ли использовать какой-то буфер. Я пытаюсь / исследую / читаю все, что могу. Но затихает.