Я пытаюсь отправить данные акселерометра со своего смартфона на Arduino через последовательную связь. Когда я нажимаю кнопку на телефоне, я хочу, чтобы непрерывные данные передавались. Тем не менее, когда я нажимаю на переключатель, экран телефона зависает, но на Arduino TX & RX контакты мигают (это означает, что последовательные данные принимаются Arduino), и затем приложение вылетает. Я не могу получить доступ к logcat, чтобы увидеть, какие ошибки происходят, потому что мне нужно подключиться к Arduino для передачи последовательных данных.
Я попробовал скорость без задержки (приложение сразу зависло), с задержкой 100 мс и задержкой 1000 мс. Я использовал кнопку для отправки новых данных акселерометра одним нажатием кнопки, и это прекрасно работает.
Есть ли способ исправить эту проблему или есть идеи, почему это происходит?
public void onSensorChanged(SensorEvent event) {
int sensorType = event.sensor.getType();
switch (sensorType) {
case Sensor.TYPE_ACCELEROMETER:
accelX = event.values[0];
accelX_str = "<"+ accelX +">";
Switch Xswitch = findViewById(R.id.Xbutton);
Xswitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
while(isChecked) {
serialPort.write(accelX_str.getBytes());
try {
TimeUnit.MILLISECONDS.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
});
}