使用cordovarduino

时间:2017-12-04 02:26:33

标签: javascript android cordova serial-port

我正在Android(v5.1.1)上构建一个Cordova应用程序,它通过串行/ USB端口从传感器读取数据。使用Cordova插件xseignard/cordovarduino,我可以从端口A或端口B获取数据,但不能同时获取数据。

这是我测试过的代码片段,它将从端口B获取数据,但不从端口A获取数据。在registerReadCallback中,两个端口都调用相同的函数进程Data。

serial.requestPermission(
    portAInfo,
    function(successMessage) {
        console.log("Permission for port A aquired!");

        serial.open(
            {baudRate: 460800},
            // if port is succesfuly opened
            function(successMessage) {
                console.log("port A opened!");

                serial.registerReadCallback(
                    function(data) {
                        // read data from port A
                        processData(data)
                    },
                    errorHandler
                );

                serial.requestPermission(
                    portBInfo,
                    // if user grants permission
                    function(successMessage) {
                        console.log("Permission for port B acquired!");

                        serial.open(
                            {baudRate: 460800},
                            // if port is successfully opened
                            function(successMessage) {
                                console.log("port B opened!");

                                serial.registerReadCallback(
                                    function(data) {
                                        // read data from port B
                                        processData(data)
                                    },
                                    errorHandler
                                );
                            }
                        );
                    }, errorHandler
                )
            }, errorHandler
        );
    }, errorHandler
);

可能是" serial"在打开端口B后仅与portBInfo绑定,因此调用serial.registerReadCallback将永远不会从端口A获取数据。

我知道这与图书馆有特别的关系,但如果有人之前遇到过这个问题,请就此提出一些建议。

0 个答案:

没有答案