向特征写入多个命令

我只是发现rxandroidble并且可以在连接后可靠地将单个命令发送到BLE设备


但是,我正在努力寻找编写命令链的最佳方法,即如果我有一系列需要发送的3条命令


当然,这可以通过嵌套发送来完成,但是我确定有更好的方法!


单个命令的发送代码为


rxBleMainConection.writeCharacteristic(COMS_WRITE_CHAR_UUID,bytes).toObservable()

.subscribe(

                    characteristicValue -> {

                        // Written characteristic value.

                        Log.d(TAG,"Written command: " + Arrays.toString(characteristicValue));


                    },

                    throwable -> {

                        // Handle an error here.

                        Log.d(TAG,"Error writing command");

                        throwable.printStackTrace();

                    }

            );

发送一系列说5条命令的最佳方法是什么?


慕工程0101907
浏览 150回答 1
1回答

慕丝7291255

您可以像这样将所有要写入的内容串联起来:Single.concat(Arrays.asList(        rxBleMainConnection.writeCharacteristic(COMS_WRITE_CHAR_UUID, bytes0),        rxBleMainConnection.writeCharacteristic(COMS_WRITE_CHAR_UUID, bytes1),        rxBleMainConnection.writeCharacteristic(COMS_WRITE_CHAR_UUID, bytes2),        rxBleMainConnection.writeCharacteristic(COMS_WRITE_CHAR_UUID, bytes3),        // ...        rxBleMainConnection.writeCharacteristic(COMS_WRITE_CHAR_UUID, bytesn)))        .subscribe(                characteristicValue -> {                    // Written characteristic value.                    Log.d(TAG, "Written command: " + Arrays.toString(characteristicValue));                },                throwable -> {                    // Handle an error here.                    Log.d(TAG, "Error writing command");                    throwable.printStackTrace();                },                () -> {                    Log.d(TAG, "All writes completed");                }        );我鼓励您看一下有关“多次写入”的RxAndroidBle其他问题,这些问题已经在本网站上问过。有些帖子可能会给您提示/想法。附带说明一下:最好创建仅使用单个代码的代码,.subscribe()因为这样您便拥有需要自己管理的最少状态。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java