混合式应用开发之串口通讯(2)

发送指令与解析数据

  

  Cordova插件 : https://github.com/xseignard/cordovarduino

  安装:cordova plugin add cordovarduino

  代码示例:

  

var opts = {
        baudRate: 115200
    };
    $scope.allData = [];
    serial.requestPermission(function success(res){
        console.log(res);
        serial.open(opts, function success(res){
            console.log(res);
        }, function error(err){
            console.log(err);
        });
    }, function error(err){
        console.log(err);
    });
    var view = [];
    serial.registerReadCallback(function success(res) {
                var lin = new Uint8Array(res);
                view = view.concat(Array.from(lin));//因为插件把一次数据分多次返回所以先进行拼接
                if (view.length == 35) {
                    //单卡
                    $scope.anaData(view);
                    console.log('单' + view)
                }else{
                        //多卡
                    if ((view.length-35)%20 == 0) {
                        console.log('多' + view)
                        $scope.anaDatas(view);
                    }
                }
            },function error(error) {
                console.log(error)
    }); 
    //发送指令
    $scope.sendOrder = function(){
        serial.writeHex(myOrderString, function success(res){
            console.log(res);
        }, function error(err){
            console.log(err);
        });
    }
    //接收数据
    //解析数据单个
     $scope.anaData = function(aaa){
        var bbb = aaa.slice(13,29);
        var ccc = '';
        var arr = [];
        var ddd = [];
        function topow(x) {
            return x.toString(16)
        };
        bbb.map(topow);
        ccc = String.fromCharCode.apply(null,bbb);
        for (var i = 0;i<ccc.length;i=i+2) {
            arr.push(ccc.substring(i,i+2));
        }
        arr.reverse();
        ddd = arr.join('')
        console.log(ddd);
        $scope.allData.push(ddd);
        $scope.$apply();
     };

   注意:

    不知道插件的问题还是硬件的问题,本来应该一次返回的数据报文分了多次返回,所以在监测回调接收数据的时候先把收到的数据拼接之后再进行下一步处理。如果你的设备正常可以去除这一步。

  

 

转载于:https://www.cnblogs.com/zhuxuda/p/8611893.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前端混合式开发app是一种通过前端技术来构建移动应用程序的方法。它结合了原生应用程序和Web应用程序的特点,既可以使用Web技术来开发应用程序的界面和功能,又能够利用原生应用程序的优势提供更好的用户体验。 前端混合式开发app通常使用一种称为混合App开发框架的工具进行开发。这些框架允许开发人员使用HTML、CSS和JavaScript等Web技术来构建应用程序的用户界面和逻辑,再将这些Web内容封装在一个原生应用程序的容器中,以实现在移动设备上的运行。 混合式开发app的一个重要特点是跨平台性。通过使用前端技术进行开发,可以实现在不同操作系统和设备上运行。开发人员只需编写一次代码,就可以将应用程序发布到多个平台上,大大减少了开发的工作量和成本。 在前端混合式开发app中,可以使用一些常见的开发框架,如Cordova(前身是PhoneGap)、React Native等。这些框架提供了丰富的API和插件,可以与设备的硬件和操作系统进行交互,例如访问相机、地理位置、通知等功能。 当然,前端混合式开发app也存在一些挑战和限制。由于应用程序运行在一个原生容器中,相对于原生应用程序来说,性能可能会稍有降低。另外,某些高级功能和特性可能无法完全实现,需要使用原生开发来完成。 总的来说,前端混合式开发app是一种灵活、高效、跨平台的开发方法,适用于许多场景。它结合了Web技术和原生应用程序的优势,为开发人员提供了更好的开发体验和用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值