本发明涉及蓝牙无线通信技术领域,具体涉及一种提高微信小程序蓝牙传输速度的方法。
背景技术:
蓝牙低功耗技术(bluetoothlowenergy,简称ble)是指实现蓝牙设备之间的低功耗数据传输。目前手机可以通过ble微信小程序与蓝牙设备进行通信。由于手机系统和蓝牙设备会限制ble单次传输数据的大小,所以微信小程序限制了最大传输单位mtu,以保证不丢失数据,默认为20字节。根据蓝牙协议微信小程序蓝牙开发,手机可以和蓝牙设备协商mtu,但是手机上的系统可以收到mtu协商值,但是微信小程序无法获取mtu协商值。微信小程序中的数据发送接口还是按照20字节发送的,并且没有证据证明微信小程序可以在其他接口获取mtu协商值。因此,小程序无法按照mtu协商值进行数据传输。因此,当通讯数据的长度很大时,微信小程序通过ble的数据传输率很低。
技术实施要素:
本发明要解决的技术问题是:提供一种提高微信小程序蓝牙传输速度的方法,使微信小程序能够获取mtu协商值,然后根据mtu协商传输通信数据值,从而提高通信数据的传输速度。
为了实现上述目的,本发明采用的第一个技术方案是提供一种提高微信小程序蓝牙传输速度的方法,包括:通过公共属性建立微信小程序与蓝牙设备之间的通信连接。协议关贸总协定;小程序发送MTU协商请求,协商的MTU mtu大于20字节;微信小程序接受MTU协商请求后 小程序开发制作 ,蓝牙设备通过通用属性协议gatt将MTU协商值传递给微信小程序;微信小程序根据接收到的最大传输单元mtu的协商值将拆分后的数据包发送给蓝牙设备。
本发明采用的技术方案二为:一种存储计算机指令的计算机可读存储介质微信小程序蓝牙开发,其特征在于,所述计算机指令用于执行方案一中提高微信小程序蓝牙传输速度的方法。
本发明采用的第三种技术方案是:一种计算机设备 百度小程序开发 ,包括处理器和存储器,所述存储器存储计算机指令,其特征在于,所述处理器对计算机指令进行操作,以执行改进的微信小程序蓝牙传输。速度解法。
本发明的有益效果是:通过协商mtu,然后使用gatt服务,微信小程序可以获得mtu协商值,然后微信小程序可以传输更大mtu的通信数据,减少传输次数,从而增加通信数据。传输速度。
图纸说明
图1为本发明提高微信小程序蓝牙传输速度的方法的流程示意图;
图2为本发明提高微信小程序蓝牙传输速度的方法一个具体实施例的功能模块示意图;
如图。图3为本发明提高微信小程序蓝牙传输速度的方法的一个具体实施例的原理时序图。
详细方法
现有技术中,根据蓝牙协议,手机与外围设备协商mtu后,手机上的系统可以收到mtu协商值,但微信小程序无法获取mtu协商值。本发明利用通用属性协议gatt将mtu协商值通知微信小程序,使微信小程序根据mtu协商值解包发送通信数据。
为使本发明的上述特征和优点更加清楚明白,以下结合附图及具体实施例对本发明作进一步详细说明。详细说明仅用于帮助理解本发明,本发明的保护范围不限于具体实施例中的具体说明。
如图。图1为本发明提高微信小程序蓝牙传输速度的方法的一个具体实施例。在本具体实施例中,主要包括以下步骤:
步骤s101:通信连接过程。
在本发明的一个具体实施例中,微信小程序和蓝牙设备可以利用蓝牙低功耗技术通过通用属性协议gatt建立通信连接。本步骤的主要目的是实现主控设备与外围设备的通信连接。
如图2所示,主控设备(控制器)功能比较强大,可以主动连接和控制外围设备。本发明中,主控设备可以是手机、电脑等,所涉及的功能模块为微信小程序。外围设备是非常小的或简单的蓝牙设备,可提供数据并连接到更强大的主机设备。外围设备支持蓝牙低功耗ble协议。在本发明中,外围设备可以是蓝牙耳机、蓝牙mp3、蓝牙闪存盘、蓝牙适配器、蓝牙cf卡、蓝牙手环、蓝牙工作卡、血压计、打印机等。
蓝牙低功耗 (BLE) 连接建立在通用属性协议 gatt (genericattributeprofile) 协议之上。gatt 是通过蓝牙连接发送和接收短数据段的通用规范。因此,在本发明中,蓝牙设备与微信小程序通过gatt建立通信连接。gatt连接是独占的,即一个ble外设一次只能被一个主设备连接。一旦外围设备连接上,它就会停止广播。当设备断开连接时,外围设备再次开始广播。如果主设备和外围设备需要双向通信,唯一的办法就是建立gatt连接。
步骤s102:协商mtu进程。
在本发明的一个具体实施例中,为了提高通信的传输速度,减少传输数据包的数量,微信小程序与蓝牙设备连接成功后,蓝牙设备会发送最大传输单元mtu协商向微信小程序请求,其中协商的最大传输单元mtu大于20字节;这一步的主要目的是增加mtu,使通信数据包的数量更少,从而尽可能减少通信数据传输的次数。
最大传输单元mtu是指一个pdu(协议数据单元,一个传输单元中的有效传输数据)中可以传输的最大数据量(一次可以向对方传输多少字节)。属性协议的默认mtu长度为23字节,3字节为头部,载荷为20字节。如果要发送更大的数据包,则需要协商 mtu 长度。由于协议数据单元的包头和包尾的长度是固定的,所以mtu越大,一个协议数据单元承载的有效数据越长,通信效率越高。mtu越大,传输相同的通信数据所需的数据包就越少。但是mtu越大越好,因为mtu越大,传输数据包的延迟越大;并且数据包中出现误码的概率越大。因此,需要权衡通信效率和传输延迟来选择合适的mtu。
在本发明的一个具体实施例中,最大传输单元mtu的协商过程为蓝牙设备向微信小程序发送交换mtu请求包,交换mtu请求包中包含蓝牙设备支持的mtu大小,而微信小程序收到蓝牙设备发送的交换mtu请求包后,会回复蓝牙设备一个交换mtu响应包,其中交换mtu响应包中包含微信小程序支持的mtu大小。
步骤s103:mtu协商值传输过程。
在本发明的一个具体实施例中,在微信小程序接受MTU协商后,蓝牙设备通过gatt服务将MTU协商值传输给微信小程序,从而为后续的通信数据传输提供技术支持。这一步的主要目的是让微信小程序获得增加的mtu。
在本发明的一个具体实施例中,协商成功后,蓝牙设备根据蓝牙设备支持的mtu大小和微信小程序支持的mtu大小修改mtu协商值。
gatt 协议中有多种服务。服务是一个单独的逻辑项,将通信数据划分为一个,它包含一个或多个特征。特征是 gatt 协议中最小的逻辑数据单元和最低级别。它可以包含与组相关的数据,例如加速度计的 x/y/z 三轴值。特征之一包括属性、值和一个或多个描述符。在通信过程中,可以免费使用蓝牙联盟官方定义的标准特性,也可以自定义特性。微信小程序与蓝牙设备的通信主要是通过特征来实现的。可以从特征中读取数据,也可以将数据写入特征中微信小程序蓝牙开发,从而实现双向通信。
在本发明的一个具体实施例中,蓝牙设备将mtu协商值写入gatt服务的fc特征中,然后将包含mtu协商值的fc特征通知微信小程序。
步骤s104:分包发送过程。
在本发明的一个具体实施例中,微信小程序根据接收到的最大传输单元mtu的协商值对通信数据进行解包发送,其中每个拆分数据包的字节数大于20,直到所有的通信数据都为发送到蓝牙设备;这一步的主要目的是为了达到更高的沟通效率。
微信小程序成功接收到mtu协商值后,根据mtu协商值的大小对通信数据进行拆分,依次发送给蓝牙设备,完成本次通信。
该方法利用gatt服务中的fc特性将mtu协商值通知给微信小程序。如果mtu协商值大于20字节,微信小程序根据mtu协商值对通信数据进行解包,从而减少数据包数量,从而减少数据包数量。减少了传输次数,提高了数据传输速度。
下面结合具体实施例对本发明提高微信小程序蓝牙传输速度的方法进行进一步说明。
智能手机(涉及的功能模块为微信小程序)向蓝牙手环(蓝牙设备)传输一段包含10000字节的通信数据。如图3所示,根据本发明传输这条数据需要以下步骤:
一、微信小程序和蓝牙手环使用蓝牙ble通过gatt协议建立连接;
其次,微信小程序与蓝牙手环连接成功后,蓝牙手环向微信小程序发送交换mtu请求包,其中交换mtu请求包中包含蓝牙手环支持的mtu大小,如mtu=300字节,微信小程序收到交换mtu请求包后,回复交换mtu响应包给蓝牙手环,其中交换mtu响应包中包含微信小程序支持的mtu大小,例如mtu=200字节;
然后,双方协商成功后,蓝牙设备根据蓝牙设备支持的mtu=300字节和微信小程序支持的mtu=200字节修改mtu,取两者的最小值,即mtu协商值为200字节,则蓝牙手环将mtu=200字节写入一个gatt服务的fc特性,然后将此fc特性通知给微信小程序;
最后,微信小程收到fc特性后,将10000字节的通信数据按照mtu=200字节拆分成50个数据包,发送到蓝牙手环。
上例中,微信小程序需要向蓝牙手环发送50个数据包,才能完成10000字节通信数据的传输。如果现有技术中mtu=20字节,即把通信数据分成500个包进行数据传输,传输时间显然会更长。
本发明先进行mtu协商,然后利用gatt服务中的fc特性将mtu协商值通知给微信小程序。减少了传输次数,提高了微信小程序与蓝牙设备之间的数据传输速度。
本发明提高微信小程序蓝牙传输速度的方法中描述的各种说明性逻辑、逻辑块和模块可以与被设计用于执行该方法的通用处理器、数字信号处理器(DSP)一起使用本文用于提高微信小程序的蓝牙传输速度。dsp)、专用集成电路 (asic)、现场可编程门阵列 (fpga) 或其他可编程逻辑器件、分立门或晶体管逻辑、分立硬件组件或其任何组合。通用处理器可以是微处理器,但在备选方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器也可以实现为计算设备的组合,
本发明提高微信小程序蓝牙传输速度的方法,可以直接用硬件实现,也可以用处理器执行的软件模块实现,也可以两者结合实现。软件模块可以驻留在ram存储器、闪存、ROM存储器、eprom存储器、eeprom存储器、寄存器、硬盘、可移动磁盘、cd-rom或本领域已知的任何其他形式的存储介质中。示例性存储介质耦合到处理器,使得处理器可以从存储介质读取信息并将信息写入存储介质。或者,存储介质可以与处理器集成在一起。处理器和存储介质可以驻留在专用集成电路(asic)中。asic 可以驻留在用户终端中。在替代方案中,
以上所述仅为本发明的实施例而已,并不用于限制本发明的专利范围。凡是利用本发明的说明书和附图的内容所作的等效结构变换,或者直接或间接应用于其他相关技术领域,其原理相同,均包含在本发明的专利保护范围之内。
本站声明: 本文章内容来源于互联网,文章内容仅供用户参考。本公司不能完全保证文章内容的准备性、时效性。如果因本文章对用户造成了任何损失或者损害,本公司将不会承担任何法律责任。如果涉及到版权问题,请提交到wikins@nbyuyuan.com