Непрерывная последовательная передача данных акселерометра со смартфона на Arduino - PullRequest
0 голосов
/ 29 октября 2019

Я пытаюсь отправить данные акселерометра со своего смартфона на 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();
                            }
                        }
                    }
                });
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...