Я сделал связку Android + ESP32(микроконтроллер со встроенным Bluetooth Low Energy модулем). Теперь столкнулся с проблемой отправки большого потока данных. Я например хочу плавно управлять яркостью светодиодной лампы, для этого у меня есть SeekBar. Но когда его плавно начинаю переводить и в этот момент начинает идти отправка данных на контроллер, то яркость меняется слишком медленно. Как я понял, все команды которые я отправляю ставятся в очередь. Вот из за этого я не знаю как реализовать быстродействие, что бы яркостью менялась сразу же когда происходит плавное изменение
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onStopTrackingTouch(SeekBar seekBar) { } });
Возможно некропостинг. У вас по BLE можно за раз передать не больше 20 байт.
Можно поиграться с throttlингом. С этим замечательно справится RxJava
У Rx есть метод throttle прогони через него значения своего сикбар
Обсуждают сегодня