android ble OTA 和空中指令

     最近开始弄ble 的空中升级和空中指令。百度上搜到到升级大都是用 Nordic 给出的库。这里介绍一下自己这段时间用自定义的一个Xmoden文本传输协议来进行空中升级。

    

     空中升级首先要发送一条指令让设备DFU模式,中间会断开连接然后重连。如果直接用 给的第三方库,进入DFU模式后,设备名会变成特定设备名。


    首先模块端发送开始传输指令。app收到消息开始传输。每包1029字节,其中包括包头3字节包尾2字节和1K的文本数据。包尾放校验信息,包头放包编号。文本数据是经过加密处理的。


    发包后等模块端校验,校验成功后发送继续传输指令。发包    校验    回包,如此反复。


   5.0以上可以申请改变MTU,我申请的503字节。4.3每包只能20字节。


    经过实测,5.0以上系统 升级速度可以达到8-9K每秒。会有少量丢包,校验不通过模块端会回消息进行重传。


    4.3系统大概1K每秒,提速小米手机会严重丢包。


   升级完成后模块端会对数据解密,然后重启。


   有款魅族手机,连接,数传都有问题。



    以上

你可能感兴趣的:(android ble OTA 和空中指令)