Я создаю приложение в Android для связи с Arduino через USB.
В Android я создаю кнопку для отправки данных в Arduino. Затем Arduino должен ответить на это сообщение и отправить другое сообщение для обработки в функции той же кнопки. Проблема в том, что когда я нажимаю на кнопку, приложение останавливается.
Мой код Arduino:
void setup()
{
Serial.begin(9600);
}
void loop()
{
char c;
int i = 0;
if(Serial.available()){
c=Serial.read();
if (c == '4'){
Serial.write("X:100 Y:10");
}
}
}
Определение обратного вызова, который срабатывает при считывании данных в Android:
UsbSerialInterface.UsbReadCallback mCallback = new UsbSerialInterface.UsbReadCallback() {
@Override
public void onReceivedData(byte[] arg0) {
String data = null;
try {
data = new String(arg0, "UTF-8");
data.concat("\n");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
};
Функция кнопки в Android:
public void goBefore(View view) {
ssend = "M114"; // send message to update current position
serialPort.write(ssend.getBytes());
String[] current_Pos = data.split(" ");
Вы знаете, что я делаю неправильно?