一种提高微信小程序蓝牙传输速度的方法与流程

文档序号:21084720发布日期:2020-06-12 16:49阅读:3410来源:国知局
一种提高微信小程序蓝牙传输速度的方法与流程

本发明涉及蓝牙无线通讯技术领域,特别涉及一种提高微信小程序蓝牙传输速度的方法。



背景技术:

蓝牙低功耗技术(bluetoothlowenergy,简称ble)是指可以实现蓝牙设备之间低功耗的数据传输。当前手机通过微信小程序与蓝牙设备进行通信可以通过ble的方式。由于手机系统和蓝牙设备会限制ble单次传输数据的大小,微信小程序为了确保不丢数据,对最大传输单元mtu做了限制,默认20字节。按照蓝牙协议,手机可以与蓝牙设备进行mtu协商,但是手机端的系统是能够接收到mtu协商值,但是微信小程序不能获取这个mtu协商值。微信小程序中数据发送接口里面仍是按照20字节发送,在其他接口中也没有发现微信小程序可以获取mtu协商值的证明。所以小程序无法按照mtu协商值进行数据传输。因此在通讯数据长度很大是,微信小程序通过ble传输数据时速率很低。



技术实现要素:

本发明所要解决的技术问题是:提供一种提高微信小程序蓝牙传输速度的方法,使微信小程序能够获取mtu协商值,然后根据mtu协商值对通讯数据进行传输,以提高通讯数据的传输速度。

为了实现上述目的,本发明采用的第一个技术方案是:提供一种提高微信小程序蓝牙传输速度的方法,包括:微信小程序和蓝牙设备通过普通属性协议gatt建立通信连接;蓝牙设备向微信小程序发送最大传输单元mtu协商请求,其中,协商后的最大传输单元mtu大于20字节;微信小程序接受最大传输单元mtu协商请求后,蓝牙设备将最大传输单元mtu协商值通过普通属性协议gatt传输给微信小程序;微信小程序根据接收到的所述最大传输单元mtu协商值,将拆分好的数据包发送给蓝牙设备。

本发明采用的第二个技术方案是:一种计算机可读存储介质,其存储有计算机指令,其特征在于,计算机指令被操作以执行方案一中的提高微信小程序蓝牙传输速度的方法。

本发明采用的第三个技术方案是:一种计算机设备,其包括处理器和存储器,存储器存储有计算机指令,其特征在于,处理器操作计算机指令以执行方案一中的提高微信小程序蓝牙传输速度的方法。

本发明的有益效果在于:通过协商mtu,然后利用gatt服务使微信小程序能够获取到这个mtu协商值,然后微信小程序能够以较大的mtu进行通讯数据传输,减少传输次数,从而提高通讯数据传输速度。

附图说明

图1为本发明提高微信小程序蓝牙传输速度的方法的过程示意图;

图2为本发明提高微信小程序蓝牙传输速度的方法的一个具体实施例的功能模块示意图;

图3为本发明中提高微信小程序蓝牙传输速度的方法的一个具体实施例的原理时序图。

具体实施方式

在目前现有的技术中,按照蓝牙协议,当手机和外围设备进行mtu协商后,手机端的系统能够接收到mtu协商值,但是微信小程序不能够获取该mtu协商值。本发明利用普通属性协议gatt把mtu协商值通知给微信小程序,使微信小程序根据mtu协商值将通讯数据进行拆包和发送。

为了使本发明的上述特征和优点更加易懂,下面结合附图和具体实施方式对本发明做进一步详细说明。该详细说明仅仅是为了帮助理解本发明,本发明的保护范围不仅仅限于具体实施方式中的具体说明。

图1示出了本发明一种提高微信小程序蓝牙传输速度的方法的具体实施方式,在该具体实施方式中,主要包括以下步骤:

步骤s101:通信连接过程。

在本发明的一个具体实施方式中,微信小程序和蓝牙设备可以采用蓝牙低功耗技术通过普通属性协议gatt建立通信连接。该步骤的主要目的是实现主控设备和外围设备的通信连接。

如图2所示,主控设备(controller),相对比较强大,能够主动连接和控制外围设备,在本发明中主控设备可以为手机、电脑等,涉及的功能模块为微信小程序。外围设备(peripheral),非常小或者简单的蓝牙设备,用来提供数据,并连接到一个更加相对强大的主控设备。外围设备支持蓝牙低功耗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协商后,蓝牙设备将最大传输单元mtu协商值通过gatt服务传输给微信小程序,从而为后续的通讯数据传输提供技术支持;该步骤的主要目的是使微信小程序能够获取增大的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协商值通知给微信小程序,微信小程序按照mtu协商值的大小对通讯数据进行拆包和数据传输,减少了数据包的数量,从而减少了传输次数,提高了微信小程序与蓝牙设备之间的数据传输速度。

本发明一种提高微信小程序蓝牙传输速度的方法描述的各种说明性逻辑、逻辑块、模块可用经设计以执行本文提高微信小程序蓝牙传输速度的方法的通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其任何组合来实施或执行。通用处理器可以是微处理器,但在替代方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,例如dsp与微处理器的组合、多个微处理器、结合dsp核心的一个或一个以上微处理器或任何其它此类配置。

本发明一种提高微信小程序蓝牙传输速度的方法可直接在硬件中、在由处理器执行的软件模块中或在两者的组合中实施。软件模块可驻留在ram存储器、快闪存储器、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、可装卸盘、cd-rom或此项技术中已知的任何其它形式的存储介质中。示范性存储介质耦合到处理器,使得处理器可从存储介质读取信息和向存储介质写入信息。在替代方案中,存储介质可与处理器成一体式。处理器和存储介质可驻留在专用集成电路(asic)中。asic可驻留在用户终端中。在替代方案中,处理器和存储介质可作为离散组件驻留在用户终端中。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1