CN113038438B - 一种网关的数据传输方法、装置、网关和存储介质 - Google Patents
一种网关的数据传输方法、装置、网关和存储介质 Download PDFInfo
- Publication number
- CN113038438B CN113038438B CN202110154540.5A CN202110154540A CN113038438B CN 113038438 B CN113038438 B CN 113038438B CN 202110154540 A CN202110154540 A CN 202110154540A CN 113038438 B CN113038438 B CN 113038438B
- Authority
- CN
- China
- Prior art keywords
- bluetooth
- command
- tag
- gateway
- data transmission
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W48/00—Access restriction; Network selection; Access point selection
- H04W48/08—Access restriction or access information delivery, e.g. discovery data delivery
- H04W48/10—Access restriction or access information delivery, e.g. discovery data delivery using broadcasted information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W52/00—Power management, e.g. TPC [Transmission Power Control], power saving or power classes
- H04W52/02—Power saving arrangements
- H04W52/0209—Power saving arrangements in terminal devices
- H04W52/0225—Power saving arrangements in terminal devices using monitoring of external events, e.g. the presence of a signal
- H04W52/0248—Power saving arrangements in terminal devices using monitoring of external events, e.g. the presence of a signal dependent on the time of the day, e.g. according to expected transmission activity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/20—Manipulation of established connections
- H04W76/28—Discontinuous transmission [DTX]; Discontinuous reception [DRX]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W88/00—Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
- H04W88/16—Gateway arrangements
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请适用于数据传输领域,提供了一种网关的数据传输方法、装置、网关和存储介质。其中,该网关的数据传输方法包括:检测网关的蓝牙模块的数量;接收服务器发送的指令,并对所述指令进行解析,得到待传输数据的数据量和所述网关需进行数据传输的各个蓝牙标签;根据所述待传输数据的数据量和所述蓝牙模块的数量,对所述需进行数据传输的各个蓝牙标签进行分组,得到多个蓝牙标签组;利用所述蓝牙模块依次与每个所述蓝牙标签组中的各个蓝牙标签进行数据传输。本申请的实施例提供的方法能够降低数据传输过程中蓝牙标签的功耗。
Description
技术领域
本申请属于数据传输领域,尤其涉及一种网关的数据传输方法、装置、网关和存储介质。
背景技术
网关(Gateway)又称网间连接器、协议转换器,是在多个网络设备间提供数据转换服务的计算机系统或设备,例如可以用于将服务器的命令数据转发给下游设备。
蓝牙标签是可周期地发送带自身特征码的广播信号的标签,可以附着在网关上,当服务器需要获取蓝牙标签的信息时,可以通过网关,将命令数据传输给蓝牙标签,以获取标签信息。
实际应用中,网关往往需要将单个数据发送给多个蓝牙标签,而使用现有的数据传输方式会导致在数据传输过程中蓝牙标签功耗较高。
发明内容
本申请实施例提供一种网关的数据传输方法、装置、网关和存储介质,可以降低数据传输过程中蓝牙标签的功耗。
本申请实施例第一方面提供一种网关的数据传输方法,包括:
检测网关的蓝牙模块的数量;
接收服务器发送的指令,并对所述指令进行解析,得到待传输数据的数据量和所述网关需进行数据传输的各个蓝牙标签;
根据所述待传输数据的数据量和所述蓝牙模块的数量,对所述需进行数据传输的各个蓝牙标签进行分组,得到多个蓝牙标签组;
利用所述蓝牙模块依次与每个所述蓝牙标签组中的各个蓝牙标签进行数据传输。
本申请实施例第二方面提供的一种网关的数据传输装置,包括:
检测单元,用于检测网关的蓝牙模块的数量;
解析单元,用于接收服务器发送的指令,并对所述指令进行解析,得到待传输数据的数据量和所述网关需进行数据传输的各个蓝牙标签;
分组单元,用于根据所述待传输数据的数据量和所述蓝牙模块的数量,对所述需进行数据传输的各个蓝牙标签进行分组,得到多个蓝牙标签组;
传输单元,用于利用所述蓝牙模块依次与每个所述蓝牙标签组中的各个蓝牙标签进行数据传输。
本申请实施例第三方面提供一种网关,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
本申请实施例第四方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
本申请实施例第五方面提供了一种计算机程序产品,当计算机程序产品在网关上运行时,使得网关执行时实现方法的步骤。
本申请实施方式中,通过根据待传输数据的数据量和蓝牙模块的数量,对需进行数据传输的各个蓝牙标签进行分组,使得网关不需要一次唤醒全部的蓝牙标签并进行数据传输,而是对当前进行数据传输的蓝牙标签组内的各个蓝牙标签进行唤醒进行数据传输,并在满足一定条件后对下一个蓝牙标签组进行数据传输。由于每个蓝牙标签组内蓝牙标签的数量是根据待传输数据的数据量和蓝牙模块的数量确定出来的,在唤醒当前进行数据传输的蓝牙标签组内的蓝牙标签后,网关可以及时连接上蓝牙标签组内的各个蓝牙标签,避免了蓝牙标签未能及时与网关连接而不断地广播BLE广播包,也避免了蓝牙标签未能及时与网关连接而重新进入睡眠状态,大大降低了数据传输过程中蓝牙标签的功耗。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种网关的数据传输方法的实现流程示意图;
图2是本申请实施例提供的一种网关的结构示意图;
图3是本申请实施例提供的步骤S104的具体实现流程示意图;
图4是本申请实施例提供的命令链表的示意图;
图5是本申请实施例提供的步骤S302的具体实现流程示意图;
图6是本申请实施例提供的确定扫描蓝牙模块、唤醒蓝牙模块以及连接蓝牙模块的具体实现流程示意图;
图7是本申请实施例提供的将唤醒蓝牙模块转换为连接蓝牙模块的具体实现流程示意图;
图8是本申请实施例提供的删除唤醒命令子链表的具体实现流程示意图;
图9是本申请实施例提供的删除连接命令子链表的具体实现流程示意图;
图10是本申请实施例提供的一种网关的数据传输装置的结构示意图;
图11是本申请实施例提供的网关的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
网关又称网间连接器、协议转换器,是在多个网络设备间提供数据转换服务的计算机系统或设备,例如可以用于将服务器的命令数据转发给下游设备。
蓝牙标签是可周期地发送带自身特征码的广播信号的标签,可以附着在网关上,当服务器需要获取蓝牙标签的信息时,可以通过网关,将命令数据传输给蓝牙标签,以获取标签信息。
为了达到节能的效果,蓝牙标签一般会处于睡眠状态,睡眠状态下的蓝牙标签会以极低功耗运行,并且不会广播蓝牙低能耗(Bluetooh Low Energy,BLE)广播包,因此网关无法和蓝牙标签建立连接。蓝牙标签会每隔一段时间监听网关是否在使用私有信号来唤醒自己。如果蓝牙标签发现有私有信号在唤醒自己时,将脱离睡眠状态并广播BLE广播包。网关在扫描到蓝牙标签的BLE广播包之后,可以向蓝牙标签发起连接并且传输命令或者数据。但是,蓝牙标签在脱离睡眠状态一段时间之后,如果没有网关与其连接,则会重新进入睡眠状态。
实际应用中,网关往往需要将单个数据发送给多个蓝牙标签。而研究发现,目前网关在进行数据传输时,往往是由网关内的蓝牙模块将蓝牙标签全部唤醒,再由蓝牙标签逐个地连接并进行数据传输。这种数据传输方式会使得部分蓝牙模块在被唤醒后不能及时与网关连接,则这些未与网关连接的蓝牙标签会不断地广播BLE广播包,如果持续广播BLE广播包在一段时间后仍未与网关连接,则会进入睡眠状态,需要网关重新唤醒,导致数据传输过程中蓝牙标签的功耗较高。
为了说明本申请的技术方案,下面通过具体实施例来进行说明。
图1示出了本申请实施例提供的一种网关的数据传输方法的实现流程示意图,该方法可以应用于网关,可适用于需降低数据传输过程中蓝牙标签的功耗的情形。
具体的,上述网关的数据传输方法可以包括以下步骤S101至步骤S104。
步骤S101,检测网关的蓝牙模块的数量。
当需要向相同数量的蓝牙标签发送数据时,蓝牙模块的数量越多,则数据传输的速度越快。但实际应用中考虑到成本等因素,蓝牙模块的数量是有限的,基于具有不同数量蓝牙模块的网关设备,其在进行数据传输时的传输方式可以不同。因此,在本申请的实施方式中,需要对网关蓝牙模块的数量进行检测。
在本申请的一些实施方式中,网关可以通过对蓝牙模块进行断电操作检测蓝牙模块的数量。具体的,每个蓝牙模块均可以通过一个通用型之输入输出(General-purposeinput/output,GPIO)接口连接到网关的控制模块,各个蓝牙模块对应的GPIO接口均不同。上述网关利用控制模块可以通过对GPIO口上下电,控制单个蓝牙模块的开启与断电,通过在每次断电后检测蓝牙模块发出的数据,可以检测到网关的蓝牙模块的数量。并且,可以检测到每个GPIO口对应的蓝牙模块,以区分上述网关的各个蓝牙模块。通过该方式,可以对网关实际能够使用的蓝牙模块进行检测,不会因为网关部分蓝牙模块的损坏而影响对蓝牙标签的数据传输。
在本申请的另一些实施方式中,也可以通过网关的标识符、产品序列号或型号等信息,获取网关配置的蓝牙模块数量。
在本申请的一些实施方式中,每个蓝牙模块的操作都放到不同的上下文(context)中,以防止各个蓝牙模块在工作时互相冲突。
步骤S102,接收服务器发送的指令,并对指令进行解析,得到待传输数据的数据量和网关需进行数据传输的各个蓝牙标签。
在本申请的实施方式中,当服务器需要向蓝牙标签发送信息时,会向网关发送指令,该指令内包含需要向蓝牙标签传输的待传输数据,以及需要向哪些蓝牙标签进行传输待传输数据的信息。网关在接收到服务器发送的指令之后,可以根据预先设置好的规则,对指令进行解析,解析得到网关需进行数据传输的各个蓝牙标签、待传输数据及待传输数据的数据量。
需要说明的是,在本申请的一些实施方式中,在接收服务器发送的指令之前,网关可以和服务器建立连接。
具体的,在网关上电之后,可以根据预设的通讯协议向服务器发起连接。如果网关未成功连接服务器,则可以在经过预设时间后重新连接,直到连接成功为止;如果网关成功连接服务器,则可以向服务器发送消息,以向服务器提示网关已经准备就绪。其中,上述服务器可以为消息队列遥测传输协议(Message Queuing Telemetry Transport,MQTT)服务器。
步骤S103,根据待传输数据的数据量和蓝牙模块的数量,对需进行数据传输的各个蓝牙标签进行分组,得到多个蓝牙标签组。
在本申请的实施方式中,待传输数据的数据量越大,则对单个蓝牙标签进行数据传输的速度越慢;蓝牙模块的数量越多,则可以同时对越多的蓝牙标签进行数据传输。因此,当接收到服务器发送的指令,并解析得到蓝牙模块的数量之后,不是直接将所有的蓝牙标签唤醒,并在连接蓝牙标签后进行数据传输,而是先根据待传输数据的数据量和蓝牙模块的数量,对需进行数据传输的各个蓝牙标签进行分组,得到多个蓝牙标签组。
其中,每个蓝牙标签组包含至少一个蓝牙标签,蓝牙标签组的数量为至少一个。
具体的,在本申请的一些实施方式中,上述网关可以依据蓝牙模块的数量,确定蓝牙模块数量对应的数据量区间,每个数据量区间对应有单个蓝牙标签组内蓝牙标签的数量。根据待传输数据的数据量所处的数据量区间,可以得到单个蓝牙标签组内蓝牙标签的数量,接着依据该数量对需进行数据传输的蓝牙标签进行分组,可以得到至少一个蓝牙标签组。
例如,当蓝牙模块的数量为3时,数据量区间可以为小于等于5KBytes、大于5KBytes且小于10KBytes,以及大于等于10KBytes。若待传输数据的数据量小于5KBytes时,一个蓝牙标签组内的蓝牙标签的数量可以为10个;若待传输数据的数据量大于5KBytes且小于10KBytes时,一个蓝牙标签组内的蓝牙标签的数量可以为7个;若待传输数据的数据量大于等于10KBytes时,一个蓝牙标签组内的蓝牙标签的数量可以为4个。此时,如果实际需进行数据传输的蓝牙标签为20个,且待传输数据的数据量小于5KBytes,则可以将需进行数据传输的蓝牙标签平均分为两组,每组包含10个蓝牙标签。
上述蓝牙模块的数量、数据量区间以及数据量区间对应的单个蓝牙标签组内的蓝牙标签的数量仅为了举例说明。蓝牙模块的数量、不同数量的蓝牙模块对应的数据量区间、不同数据量区间对应的单个蓝牙标签组内的蓝牙标签的数量均可以根据实际情况进行调整。
步骤S104,利用蓝牙模块依次与每个蓝牙标签组中的各个蓝牙标签进行数据传输。
在本申请的实施方式中,在完成蓝牙标签的分组,得到至少一个蓝牙标签组之后,可以利用蓝牙模块依次与每个蓝牙标签组中的各个蓝牙标签进行数据传输。也就是说,网关可以先与一个蓝牙标签组内的各个蓝牙标签进行数据传输,并在满足一定条件后与下一个蓝牙标签组进行数据传输,直至与每个蓝牙标签组中的各个蓝牙标签均完成数据传输。
例如,在本申请的一些实施方式中,可以在完成与一个蓝牙标签组内的各个蓝牙标签的数据传输之后,与下一个蓝牙标签组进行数据传输,直至与每个蓝牙标签组中的各个蓝牙标签均完成数据传输。
本申请实施方式中,通过根据待传输数据的数据量和蓝牙模块的数量,对需进行数据传输的各个蓝牙标签进行分组,使得网关不需要一次唤醒全部的蓝牙标签并进行数据传输,而是对当前进行数据传输的蓝牙标签组内的各个蓝牙标签进行唤醒进行数据传输,并在满足一定条件后对下一个蓝牙标签组进行数据传输。由于每个蓝牙标签组内蓝牙标签的数量是根据待传输数据的数据量和蓝牙模块的数量确定出来的,在唤醒当前进行数据传输的蓝牙标签组内的蓝牙标签后,网关可以及时连接上蓝牙标签组内的各个蓝牙标签,避免了蓝牙标签未能及时与网关连接而不断地广播BLE广播包,也避免了蓝牙标签未能及时与网关连接而重新进入睡眠状态,大大降低了数据传输过程中蓝牙标签的功耗。
为了更好的说明本申请的实现方式,图2示出了用于执行图1所示的数据传输方法的一种网关的结构示意图。其中,上述网关可以包含网口、Wifi模块、至少一个蓝牙模块、USB接口;上述网口可以连接网线,以根据预设的通讯协议与服务器进行交互,例如根据MQTT协议与MQTT服务器进行交互。上述Wifi模块用于执行图1所示的数据传输方法,可以通过UART串口与多路蓝牙模块连接,以控制蓝牙模块与蓝牙标签进行数据传输。上述USB接口可以读写U盘的数据。
在本申请的一些实施方式中,上述Wifi模块内置了一个网页配置页面,用户可以通过手机、笔记本等终端与Wifi模块进行交互,访问网关的网页配置页面,以对网关进行配置。
在本申请的一些实施方式中,上述利用蓝牙模块依次与每个蓝牙标签组中的各个蓝牙标签进行数据传输可以通过链表实现。具体的,如图3所示,上述步骤S104可以包括以下步骤S301至步骤S302。
步骤S301,确定每个蓝牙标签组的命令链表。
其中,上述命令链表包含蓝牙标签组中的各个蓝牙标签对应的唤醒命令子链表和连接命令子链表。唤醒命令子链表中包含唤醒命令,唤醒命令用于指示蓝牙模块对蓝牙标签进行唤醒操作,以使蓝牙标签处于可连接状态;连接命令子链表则中包含连接命令,连接命令用于指示蓝牙模块建立与蓝牙标签的蓝牙连接。
在本申请的一些实施方式中,上述命令链表可以为双向链表。例如,图4示出了对三个蓝牙标签进行数据传输的命令链表的示意图,其中,对三个蓝牙标签的唤醒操作可以放到一个唤醒命令子链表中,对每个蓝牙标签的连接操可以作单独放到一个连接命令子链表中,组成一个双向链表。
步骤S302,利用蓝牙模块基于命令链表依次与每个蓝牙标签组中的各个蓝牙标签进行数据传输。
在本申请的实施方式中,通过命令列表内的唤醒命令子链表和连接命令子链表,网关可以有序地控制每一组蓝牙标签组内蓝牙标签的数据传输操作,能够提高数据传输的速度。
具体的,如图5所示,上述步骤S302可以具体包括以下步骤S501至步骤S505。
步骤S501,利用蓝牙模块执行第一个蓝牙标签组中的各个蓝牙标签对应的唤醒命令子链表中的唤醒命令,以使第一个蓝牙标签组中的各个蓝牙标签处于可连接状态。
具体的,上述蓝牙模块可以依据唤醒命令子链表中的唤醒命令,向第一个蓝牙标签组中的各个蓝牙标签发送信息,该信息用于指示蓝牙标签进入可连接状态,并广播BLE广播包。当蓝牙模块扫描到蓝牙标签广播的BLE广播包之后,则可以确认蓝牙标签处于可连接状态。
步骤S502,利用蓝牙模块执行第一个蓝牙标签组中处于可连接状态的蓝牙标签对应的连接命令子链表中的连接命令,以建立与第一个蓝牙标签组中处于可连接状态的各个蓝牙标签的蓝牙连接,并基于蓝牙连接完成与蓝牙标签组中处于可连接状态的各个蓝牙标签之间的数据传输。
具体的,在确认蓝牙标签处于可连接状态之后,上述蓝牙模块可以依据连接命令子链表中的连接命令,与第一个蓝牙标签组中处于可连接状态的各个蓝牙标签建立蓝牙连接。此时,网关可以通过蓝牙模块将待传输数据发送给已与蓝牙模块建立蓝牙连接的蓝牙标签;蓝牙标签在接收到待传输数据之后,也可以将自身的信息反馈给已与自身建立蓝牙连接的蓝牙模块。
步骤S503,检测第一个蓝牙标签组中未与蓝牙模块完成蓝牙连接的建立的蓝牙标签的数量,若未与蓝牙模块完成蓝牙连接的建立的蓝牙标签的数量满足预设的数量条件,则利用蓝牙模块执行第二个蓝牙标签组中的各个蓝牙标签对应的唤醒命令子链表中的唤醒命令,以使第二个蓝牙标签组中的各个蓝牙标签处于可连接状态。
其中,第二个蓝牙标签组为与第一个蓝牙标签组不同的蓝牙标签组。
也就是说,在本申请的实施方式中,在根据待传输数据的数据量和蓝牙模块的数量,对需进行数据传输的各个蓝牙标签进行分组,得到多个蓝牙标签组之后,可以对其中的第一个蓝牙标签组进行数据传输,即对第一个蓝牙标签组中的各个蓝牙标签进行唤醒操作和连接操作。当第一个蓝牙标签组中未与蓝牙模块完成蓝牙连接的建立的蓝牙标签的数量满足预设的数量条件时,可以开始对下一组蓝牙标签组(即第二个蓝牙标签组)进行数据传输,以此类推。
其中,上述数量条件是指可以对下一组蓝牙标签组进行数据传输操作时,未与蓝牙模块连接的蓝牙标签的数量所需满足的条件。例如可以为预设的数量值。
在本申请的一些实施方式中,该数量条件可以为小于或等于用于执行连接命令的蓝牙模块的数量。也就是说,如果发现已经唤醒但还没有连接过蓝牙模块的蓝牙标签数量较少,而剩下的负责执行连接命令的蓝牙模块已经可以处理了,则负责执行唤醒命令的蓝牙模块可以开始唤醒下一个蓝牙标签组的蓝牙标签。通过该方式,网关可以减少对多个蓝牙标签组进行数据传输时,不同蓝牙标签组之间的等待时间,并且由于唤醒操作需要一定的时间,因此优先处理唤醒,可以防止数据传输速度过慢。
具体的,由于蓝牙标签在与蓝牙模块连接后会通过蓝牙模块向网关反馈信息,因此,网关可以根据已收到的反馈信息,和根据指令解析出的网关需进行数据传输的各个蓝牙标签,确定出第一个蓝牙标签组中未与连接蓝牙模块连接的蓝牙标签的数量。
步骤S504,利用蓝牙模块执行第二个蓝牙标签组中处于可连接状态的蓝牙标签对应的连接命令子链表中的连接命令,以建立与蓝牙标签组中处于可连接状态的各个蓝牙标签的蓝牙连接,并基于蓝牙连接完成与蓝牙标签组中处于可连接状态的各个蓝牙标签之间的数据传输。
其中,对第二个蓝牙标签组中的各个蓝牙标签的唤醒操作和连接操作与前述对第一个蓝牙标签组中各个蓝牙标签的唤醒操作与连接操作相同,本申请不再进行赘述。
步骤S505,依此类推,直至完成与每个蓝牙标签组中的各个蓝牙标签之间的数据传输。
也就是说,对第一个蓝牙标签组进行数据传输的过程中,若第一个蓝牙标签组中未与蓝牙模块完成蓝牙连接的建立的蓝牙标签的数量满足预设的数量条件时,则开始对第二个蓝牙标签组进行数据传输,若第二个蓝牙标签组中未与蓝牙模块完成蓝牙连接的建立的蓝牙标签的数量满足预设的数量条件时,则对第三个蓝牙标签组进行数据传输,直至完成与每个蓝牙标签组中的各个蓝牙标签之间的数据传输。
本申请的实施方式中,通过对命令链表的方式,由各个蓝牙模块根据唤醒命令子链表和连接命令子链表,与各组蓝牙标签组中的蓝牙标签进行数据传输,并通过在对每组蓝牙标签组中的蓝牙标签进行数据传输时,通过对蓝牙标签组中未与蓝牙模块完成蓝牙连接的建立的蓝牙标签的数量是否满足预设的数量条件进行判断,以实现依次与每个所述蓝牙标签组中的各个蓝牙标签进行数据传输,能够提高数据传输过程的有序性,避免数据传输过程中蓝牙模块的任务发生冲突。
当上述网关包含多个蓝牙模块时,为了进一步平衡数据传输过程中蓝牙标签的能耗和数据传输的速度,在本申请的一些实施方式中,在对每一个蓝牙标签组进行数据传输时,可以对蓝牙模块所执行的任务进行调配。
下面以对第一个蓝牙标签组进行数据传输的过程为例进行说明。
如图6所示,上述网关的数据传输方法,可以具体包括以下步骤S601至步骤S602。
步骤S601,从多个蓝牙模块中,确定N个扫描蓝牙模块。
具体的,扫描蓝牙模块用于检测蓝牙标签是否处于可连接状态。即由于扫描蓝牙标签广播的BLE广播包,并在扫描到蓝牙标签广播的BLE广播包之后,确定对应的蓝牙标签处于可连接状态。
其中,确定扫描蓝牙模块的方式可以根据实际情况进行选择,在本申请的实施方式中可以随机选择N个蓝牙模块作为扫描蓝牙模块。N为大于等于1且小于蓝牙模块的数量的正整数,。
并且,由于唤醒蓝牙标签和与蓝牙标签建立蓝牙连接所需的时间更长,在本申请的一些实施方式中,上述N可以为1,使得网关可以有更多的蓝牙模块处理唤醒操作与连接操作,并且一般情况下,一个扫描蓝牙模块即可扫描各个蓝牙标签广播的BLE广播包,因此,网关仍可以及时扫描到各个蓝牙标签广播的BLE广播包。
步骤S602,从多个蓝牙模块中除扫描蓝牙模块以外的蓝牙模块中,确定至少一个唤醒蓝牙模块以及至少一个连接蓝牙模块。
此时,上述利用蓝牙模块执行第一个蓝牙标签组中的各个蓝牙标签对应的唤醒命令子链表中的唤醒命令,可以包括:利用唤醒蓝牙模块执行第一个蓝牙标签组中的各个蓝牙标签对应的唤醒命令子链表中的唤醒命令。
也就是说,在本申请的一些实施方式中,在网关从蓝牙模块中确定出用于检测蓝牙标签是否处于可连接状态的扫描蓝牙模块之后,可以再从剩余的蓝牙模块中确定出至少一个唤醒蓝牙模块。上述唤醒蓝牙模块可以用于执行第一个蓝牙标签组中的各个蓝牙标签对应的唤醒命令子链表中的唤醒命令。
相应的,上述利用蓝牙模块执行第一个蓝牙标签组中处于可连接状态的蓝牙标签对应的连接命令子链表中的连接命令,可以包括:在扫描蓝牙模块检测到第一个蓝牙标签组中的蓝牙模块处于可连接状态后,利用连接蓝牙模块执行第一个蓝牙标签组中处于可连接状态的蓝牙标签对应的连接命令子链表中的连接命令。
现有的网关在进行数据传输时,如果有多个蓝牙模块,则各个蓝牙模块的工作任务是固定的,即,会有一些蓝牙模块专门负责执行唤醒操作,另一些蓝牙模块专门负责执行扫描操作,再另一些蓝牙模块专门负责执行连接操作。
而在本申请的实施方式中,网关可以根据实际情况从扫描蓝牙模块之外的蓝牙模块中确定至少一个连接蓝牙模块。
具体的,在本申请的一些实施方式中,网关可以将目前未确定为唤醒蓝牙模块、扫描蓝牙模块和连接蓝牙模块的蓝牙模块确定为连接蓝牙模块,用于执行第一个蓝牙标签组中处于可连接状态的蓝牙标签对应的连接命令子链表中的连接命令;或者,可以将已经确定连接蓝牙模块但处于空闲状态的连接蓝牙模块,由其执行第一个蓝牙标签组中处于可连接状态的蓝牙标签对应的连接命令子链表中的连接命令。
在本申请的另一些实施方式中,网关也可以根据实际情况将唤醒蓝牙模块转变为连接蓝牙模块执行连接命令。
具体的,如图7所示,上述从多个蓝牙模块中除扫描蓝牙模块以外的蓝牙模块中,确定至少一个连接蓝牙模块,可以包括以下步骤S701至步骤S702。
步骤S701,检测第一个蓝牙标签组中已完成唤醒的蓝牙标签的数量。
具体的,由于蓝牙标签在被唤醒后会广播自身的BLE广播包,网关可以根据扫描到的BLE广播包,确定出第一个蓝牙标签组中已唤醒的蓝牙标签的数量。
步骤S702,若第一个蓝牙标签组中已完成唤醒的蓝牙标签的数量等于第一个蓝牙标签组中蓝牙标签的总数量,则将唤醒蓝牙模块转换为连接蓝牙模块,以完成执行第一个蓝牙标签组中处于可连接状态的蓝牙标签对应的连接命令子链表中的连接命令。
即,如果第一个蓝牙标签组中的蓝牙标签均已被唤醒,则将唤醒蓝牙模块转换为连接蓝牙模块,由原先执行唤醒命令的蓝牙模块执行连接命令。
相应的,在本申请的一些实施方式中,若未与蓝牙模块完成蓝牙连接的建立的蓝牙标签的数量满足预设的数量条件,则将连接蓝牙模块转换为唤醒蓝牙模块,并利用唤醒蓝牙模块执行第二个蓝牙标签组中的各个蓝牙标签对应的唤醒命令子链表中的唤醒命令。
在本申请的一些实施方式中,当未与连接蓝牙模块连接的蓝牙标签的数量满足预设的数量条件时,说明连接蓝牙模块已经能够满足剩余未连接的蓝牙标签的需求,则可以将连接蓝牙模块转换为唤醒蓝牙模块,例如将原先转换为连接蓝牙模块的唤醒蓝牙模块切换回唤醒蓝牙模块,以对下一个蓝牙标签组(即第二个蓝牙标签组)内的蓝牙标签执行唤醒操作。可以理解的是,对第二个蓝牙标签组进行数据传输的步骤与对第一个蓝牙标签组进行数据传输的步骤相似,本申请不再赘述。
本申请的实施方式中,一方面,通过由固定的扫描蓝牙模块执行扫描操作,可以让被唤醒的蓝牙模块及时被扫描到。另一方面,通过从扫描模块以外的其他蓝牙模块中确定唤醒蓝牙模块和连接蓝牙模块,使得可以有更多的蓝牙模块执行唤醒操作和连接操作。并且,通过唤醒蓝牙模块和连接蓝牙模块之间动态地进行切换,使得蓝牙模块可以最高效地实现唤醒操作和连接操作,避免蓝牙标签不能够及时连接,可以在降低功耗的同时,提高整个数据传输过程的效率。
由于上述数据传输过程是基于命令链表实现的,因此,在本申请的实施方式中,可以通过对命令链表中唤醒命令子链表和连接命令子链表的删除,避免命令的重复执行。
具体的,在本申请的一些实施方式中,上述利用所述蓝牙模块执行第一个蓝牙标签组中的各个蓝牙标签对应的唤醒命令子链表中的唤醒命令,还可以包括:检测各个唤醒命令子链表是否满足预设的第一删除条件,并对每个满足第一删除条件的唤醒命令子链表进行删除。
其中,上述第一删除条件可以根据实际情况进行设置。
在本申请的一些实施方式中,上述第一删除条件可以为唤醒命令子链表对应的蓝牙标签组内的蓝牙标签均已唤醒,或者对唤醒命令子链表对应的蓝牙标签组内的蓝牙标签进行唤醒的重试次数超过预设阈值。
具体的,如图8所示,上述检测各个唤醒命令子链表是否满足预设的第一删除条件,并对每个满足第一删除条件的唤醒命令子链表进行删除的步骤中,对单个唤醒命令子链表的删除步骤可以包括以下步骤S801至步骤S803。
步骤S801,检测该唤醒命令子链表对应的蓝牙标签组中的各个蓝牙标签是否均已完成唤醒。
步骤S802,若该唤醒命令子链表对应的蓝牙标签组中的各个蓝牙标签均已成功唤醒,则从所述命令链表中删除该唤醒命令子链表。
步骤S803,若该唤醒命令子链表对应的蓝牙标签组中存在蓝牙标签未成功唤醒,则重置该唤醒命令子链表中未成功唤醒的蓝牙标签对应的唤醒命令,由蓝牙模块执行该唤醒命令子链表中未成功唤醒的蓝牙标签对应的唤醒命令,并蓝牙模块执行该唤醒命令子链表中未成功唤醒的蓝牙标签对应的唤醒命令的第一重试次数,直至该唤醒命令子链表对应的蓝牙标签组中的各个蓝牙标签均已成功唤醒,或者第一重试次数大于预设的第一次数阈值,则从命令链表中删除该唤醒命令子链表。
在本申请的一些实施方式中,蓝牙模块成功唤醒蓝牙标签,可以得到执行成功的标识码,如果唤醒命令子链表对应的蓝牙标签组中的各个蓝牙标签均已完成唤醒,则可以从命令链表中删除该唤醒命令子链表。如果唤醒命令子链表对应的蓝牙标签组中存在蓝牙标签未成功唤醒,则重置该唤醒命令子链表中未成功唤醒的蓝牙标签对应的唤醒命令,以重新唤醒未成功唤醒。如果在重试次数未达到第一次数阈值前,唤醒命令子链表对应的蓝牙标签组中的各个蓝牙标签均已完成唤醒,则可以从命令链表中删除该唤醒命令子链表。如果在重试次数达到第一次数阈值时该唤醒命令子链表对应的蓝牙标签组中仍然存在蓝牙标签未成功唤醒,则可以返回执行失败的标识码,并从命令链表中删除该唤醒命令子链表。
其中,第一次数阈值可以根据实际情况进行调整。
在本申请的另一些实施方式中,上述利用蓝牙模块执行第一个蓝牙标签组中处于可连接状态的蓝牙标签对应的连接命令子链表中的连接命令,还可以包括:检测各个连接命令子链表是否满足预设的第二删除条件,并对每个满足第二删除条件的连接命令子链表进行删除。
其中,上述第二删除条件可以根据实际情况进行设置。
在本申请的一些实施方式中,上述第二删除条件可以为连接命令子链表对应的蓝牙标签已和蓝牙模块连接,或者对连接命令子链表对应的蓝牙标签进行连接的重试次数超过预设阈值。
具体的,如图9所示,上述检测各个连接命令子链表是否满足预设的第二删除条件,并对每个满足第二删除条件的连接命令子链表进行删除的步骤中,对单个连接命令子链表的删除步骤可以包括以下步骤S901至步骤S903。
步骤S901,检测该连接命令子链对应的蓝牙标签是否已和蓝牙模块连接。
步骤S902,若该连接命令子链对应的蓝牙标签已和蓝牙模块连接,则从命令链表中删除该连接命令子链表。
步骤S903,若该连接命令子链对应的蓝牙标签未和蓝牙模块连接,则重置该连接命令子链表中的连接命令,利用蓝牙模块执行该连接命令子链表中的连接命令,并统计执行连接命令的第二重试次数,直至该连接命令子链对应的蓝牙标签已和蓝牙模块连接,或者第二重试次数大于预设的第二次数阈值,则从命令链表中删除该连接命令子链表。
在本申请的一些实施方式中,蓝牙模块成功连接蓝牙标签,可以得到执行成功的标识码。如果连接命令子链对应的蓝牙标签已和蓝牙模块连接,则可以从命令链表中删除该连接命令子链表。如果连接命令子链对应的蓝牙标签未和蓝牙模块连接,则可以对连接命令子链表中的连接命令进行重置,以使蓝牙模块重新连接未连接的蓝牙标签。如果在重试次数未达到第二次数阈值前,连接命令子链对应的蓝牙标签未和蓝牙模块连接,则可以从命令链表中删除该连接命令子链表。如果在重试次数达到第二次数阈值时连接命令子链对应的蓝牙标签仍未和蓝牙模块连接,则可以得到执行失败的标识码,并从命令链表中删除该连接命令子链表。
其中,第二次数阈值可以根据实际情况进行调整。
因此,本申请的实施方式中,在进行数据传输时,可以在每次执行完成一个蓝牙标签组的唤醒命令后之后,对唤醒命令子链表进行删除,并且,在每次完成蓝牙标签的连接操作之后,对连接命令子链表进行删除。使得蓝牙模块不会重复执行已完成的唤醒命令或已完成的连接命令,提高的数据传输的效率。并且,在唤醒失败或连接失败时可以进行重试,能够有效提高数据传输的成功率。
同时,当命令链表内的唤醒命令子链表和连接命令子链表均已被销毁,表示所有的蓝牙标签组均完成数据传输,即网关的数据传输结束。
需要说明的是,如果网关中蓝牙模块的数量为1,则在确定出多个蓝牙标签组之后,该蓝牙模块会先作为唤醒蓝牙模块唤醒第一个蓝牙标签组内的蓝牙标签,再转换为扫描蓝牙模块扫描蓝牙标签广播的BLE广播包,最后再转换为连接蓝牙模块执行连接操作和数据传输操作,在完成第一个蓝牙标签组的数据传输后,再对第二个蓝牙标签组进行数据传输,直至完成各个蓝牙标签组的数据传输。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为根据本申请,某些步骤可以采用其它顺序进行。
如图10所示为本申请实施例提供的一种网关的数据传输装置1000的结构示意图,所述网关的数据传输装置1000配置于网关上。其中,所述网关的数据传输装置1000包括:
检测单元1001,用于检测网关的蓝牙模块的数量;
解析单元1002,用于接收服务器发送的指令,并对所述指令进行解析,得到待传输数据的数据量和所述网关需进行数据传输的各个蓝牙标签;
分组单元1003,用于根据所述待传输数据的数据量和所述蓝牙模块的数量,对所述需进行数据传输的各个蓝牙标签进行分组,得到多个蓝牙标签组;
传输单元1004,用于利用所述蓝牙模块依次与每个所述蓝牙标签组中的各个蓝牙标签进行数据传输。
在本申请的一些实施方式中,上述传输单元1004,还可以用于:确定每个蓝牙标签组的命令链表;所述命令链表包含所述蓝牙标签组中的各个蓝牙标签对应的唤醒命令子链表和连接命令子链表;利用所述蓝牙模块基于所述命令链表依次与每个所述蓝牙标签组中的各个蓝牙标签进行数据传输。
在本申请的一些实施方式中,上述传输单元1004,还可以用于:利用所述蓝牙模块执行第一个蓝牙标签组中的各个蓝牙标签对应的唤醒命令子链表中的唤醒命令,以使所述第一个蓝牙标签组中的各个蓝牙标签处于可连接状态;利用所述蓝牙模块执行所述第一个蓝牙标签组中处于可连接状态的蓝牙标签对应的连接命令子链表中的连接命令,以建立与所述第一个蓝牙标签组中处于可连接状态的各个蓝牙标签的蓝牙连接,并基于所述蓝牙连接完成与所述蓝牙标签组中处于可连接状态的各个蓝牙标签之间的数据传输;检测所述第一个蓝牙标签组中未与所述蓝牙模块完成蓝牙连接的建立的蓝牙标签的数量,若未与所述蓝牙模块完成蓝牙连接的建立的蓝牙标签的数量满足预设的数量条件,则利用所述蓝牙模块执行第二个蓝牙标签组中的各个蓝牙标签对应的唤醒命令子链表中的唤醒命令,以使所述第二个蓝牙标签组中的各个蓝牙标签处于可连接状态;利用所述蓝牙模块执行所述第二个蓝牙标签组中处于可连接状态的蓝牙标签对应的连接命令子链表中的连接命令,以建立与所述蓝牙标签组中处于可连接状态的各个蓝牙标签的蓝牙连接,并基于所述蓝牙连接完成与所述蓝牙标签组中处于可连接状态的各个蓝牙标签之间的数据传输;依此类推,直至完成与每个所述蓝牙标签组中的各个蓝牙标签之间的数据传输。
在本申请的一些实施方式中,上述网关的数据传输装置1000还包括确定模块,可以用于:从所述多个蓝牙模块中,确定N个扫描蓝牙模块,所述扫描蓝牙模块用于检测所述蓝牙标签是否处于可连接状态,其中,N为大于等于1且小于所述蓝牙模块的数量的正整数;从所述多个蓝牙模块中除扫描蓝牙模块以外的蓝牙模块中,确定至少一个唤醒蓝牙模块以及至少一个连接蓝牙模块。此时,上述传输单元1004,还可以用于:利用所述唤醒蓝牙模块执行所述第一个蓝牙标签组中的各个蓝牙标签对应的唤醒命令子链表中的唤醒命令;以及,在所述扫描蓝牙模块检测到所述第一个蓝牙标签组中的所述蓝牙模块处于可连接状态后,利用所述连接蓝牙模块执行所述第一个蓝牙标签组中处于可连接状态的蓝牙标签对应的连接命令子链表中的连接命令。
在本申请的一些实施方式中,上述传输单元1004,还可以用于:检测所述第一个蓝牙标签组中已完成唤醒的蓝牙标签的数量;若所述第一个蓝牙标签组中已完成唤醒的蓝牙标签的数量等于所述第一个蓝牙标签组中蓝牙标签的总数量,则将所述唤醒蓝牙模块转换为连接蓝牙模块,以完成执行所述第一个蓝牙标签组中处于可连接状态的蓝牙标签对应的连接命令子链表中的连接命令。
在本申请的一些实施方式中,上述传输单元1004,还可以用于:若未与所述蓝牙模块完成蓝牙连接的建立的蓝牙标签的数量满足预设的数量条件,则将所述转换为连接蓝牙模块的唤醒蓝牙模块转换回唤醒蓝牙模块,并利用所述唤醒蓝牙模块执行第二个蓝牙标签组中的各个蓝牙标签对应的唤醒命令子链表中的唤醒命令。
在本申请的一些实施方式中,上述传输单元1004,还可以用于:检测各个所述唤醒命令子链表是否满足预设的第一删除条件,并对每个满足所述第一删除条件的唤醒命令子链表进行删除;以及,检测各个所述连接命令子链表是否满足预设的第二删除条件,并对每个满足所述第二删除条件的连接命令子链表进行删除。
需要说明的是,为描述的方便和简洁,上述网关的数据传输装置1000的具体工作过程和有益效果,可以参考图1至图9所述方法的对应过程,在此不再赘述。
如图11所示,为本申请实施例提供的一种网关的示意图。该网关11可以包括:处理器1100、存储器1101以及存储在所述存储器1101中并可在所述处理器1100上运行的计算机程序1102,例如网关的数据传输程序。所述处理器1100执行所述计算机程序1102时实现上述各个网关的数据传输方法实施例中的步骤,例如图1所示的步骤S101至S104。或者,所述处理器1100执行所述计算机程序1102时实现上述各装置实施例中各模块/单元的功能,例如图10所示的检测单元、解析单元、分组单元和传输单元的功能。
所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器1101中,并由所述处理器1100执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述网关中的执行过程。
例如,所述计算机程序可以被分割成:检测单元、解析单元、分组单元和传输单元。各单元具体功能如下:检测单元,用于检测网关的蓝牙模块的数量;解析单元,用于接收服务器发送的指令,并对所述指令进行解析,得到待传输数据的数据量和所述网关需进行数据传输的各个蓝牙标签;分组单元,用于根据所述待传输数据的数据量和所述蓝牙模块的数量,对所述需进行数据传输的各个蓝牙标签进行分组,得到多个蓝牙标签组;传输单元,用于利用所述蓝牙模块依次与每个所述蓝牙标签组中的各个蓝牙标签进行数据传输。
所述网关可包括,但不仅限于,处理器1100、存储器1101。本领域技术人员可以理解,图11仅仅是网关的示例,并不构成对网关的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述网关还可以包括输入输出设备、网络接入设备、总线等。
所称处理器1100可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器1101可以是所述网关的内部存储单元,例如网关的硬盘或内存。所述存储器1101也可以是所述网关的外部存储设备,例如所述网关上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器1101还可以既包括所述网关的内部存储单元也包括外部存储设备。所述存储器1101用于存储所述计算机程序以及所述网关所需的其他程序和数据。所述存储器1101还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/网关和方法,可以通过其它的方式实现。例如,以上所描述的装置/网关实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种网关的数据传输方法,其特征在于,包括:
检测网关的蓝牙模块的数量;
接收服务器发送的指令,并对所述指令进行解析,得到待传输数据的数据量和所述网关需进行数据传输的各个蓝牙标签;
根据所述待传输数据的数据量和所述蓝牙模块的数量,对所述需进行数据传输的各个蓝牙标签进行分组,得到多个蓝牙标签组;
利用所述蓝牙模块依次与每个所述蓝牙标签组中的各个蓝牙标签进行数据传输。
2.如权利要求1所述的网关的数据传输方法,其特征在于,利用所述蓝牙模块依次与每个所述蓝牙标签组中的各个蓝牙标签进行数据传输,包括:
确定每个蓝牙标签组的命令链表;所述命令链表包含所述蓝牙标签组中的各个蓝牙标签对应的唤醒命令子链表和连接命令子链表;
利用所述蓝牙模块基于所述命令链表依次与每个所述蓝牙标签组中的各个蓝牙标签进行数据传输。
3.如权利要求2所述的网关的数据传输方法,其特征在于,所述利用所述蓝牙模块基于所述命令链表依次与每个所述蓝牙标签组中的各个蓝牙标签进行数据传输,包括:
利用所述蓝牙模块执行第一个蓝牙标签组中的各个蓝牙标签对应的唤醒命令子链表中的唤醒命令,以使所述第一个蓝牙标签组中的各个蓝牙标签处于可连接状态;
利用所述蓝牙模块执行所述第一个蓝牙标签组中处于可连接状态的蓝牙标签对应的连接命令子链表中的连接命令,以建立与所述第一个蓝牙标签组中处于可连接状态的各个蓝牙标签的蓝牙连接,并基于所述蓝牙连接完成与所述蓝牙标签组中处于可连接状态的各个蓝牙标签之间的数据传输;
检测所述第一个蓝牙标签组中未与所述蓝牙模块完成蓝牙连接的建立的蓝牙标签的数量,若未与所述蓝牙模块完成蓝牙连接的建立的蓝牙标签的数量满足预设的数量条件,则利用所述蓝牙模块执行第二个蓝牙标签组中的各个蓝牙标签对应的唤醒命令子链表中的唤醒命令,以使所述第二个蓝牙标签组中的各个蓝牙标签处于可连接状态;
利用所述蓝牙模块执行所述第二个蓝牙标签组中处于可连接状态的蓝牙标签对应的连接命令子链表中的连接命令,以建立与所述蓝牙标签组中处于可连接状态的各个蓝牙标签的蓝牙连接,并基于所述蓝牙连接完成与所述蓝牙标签组中处于可连接状态的各个蓝牙标签之间的数据传输;
依此类推,直至完成与每个所述蓝牙标签组中的各个蓝牙标签之间的数据传输。
4.如权利要求3所述的网关的数据传输方法,其特征在于,所述网关包含多个蓝牙模块,所述网关的数据传输方法,包括:
从所述多个蓝牙模块中,确定N个扫描蓝牙模块,所述扫描蓝牙模块用于检测所述蓝牙标签是否处于可连接状态,其中,N为大于等于1且小于所述蓝牙模块的数量的正整数;
从所述多个蓝牙模块中除扫描蓝牙模块以外的蓝牙模块中,确定至少一个唤醒蓝牙模块以及至少一个连接蓝牙模块;
所述利用所述蓝牙模块执行第一个蓝牙标签组中的各个蓝牙标签对应的唤醒命令子链表中的唤醒命令,包括:
利用所述唤醒蓝牙模块执行所述第一个蓝牙标签组中的各个蓝牙标签对应的唤醒命令子链表中的唤醒命令;
所述利用所述蓝牙模块执行所述第一个蓝牙标签组中处于可连接状态的蓝牙标签对应的连接命令子链表中的连接命令,包括:
在所述扫描蓝牙模块检测到所述第一个蓝牙标签组中的所述蓝牙模块处于可连接状态后,利用所述连接蓝牙模块执行所述第一个蓝牙标签组中处于可连接状态的蓝牙标签对应的连接命令子链表中的连接命令。
5.如权利要求4所述的网关的数据传输方法,其特征在于,所述从所述多个蓝牙模块中除扫描蓝牙模块以外的蓝牙模块中,确定至少一个连接蓝牙模块,包括:
检测所述第一个蓝牙标签组中已完成唤醒的蓝牙标签的数量;
若所述第一个蓝牙标签组中已完成唤醒的蓝牙标签的数量等于所述第一个蓝牙标签组中蓝牙标签的总数量,则将所述唤醒蓝牙模块转换为连接蓝牙模块,以完成执行所述第一个蓝牙标签组中处于可连接状态的蓝牙标签对应的连接命令子链表中的连接命令。
6.如权利要求5所述的网关的数据传输方法,其特征在于,所述若未与所述蓝牙模块完成蓝牙连接的建立的蓝牙标签的数量满足预设的数量条件,则利用所述蓝牙模块执行第二个蓝牙标签组中的各个蓝牙标签对应的唤醒命令子链表中的唤醒命令,包括:
若未与所述蓝牙模块完成蓝牙连接的建立的蓝牙标签的数量满足预设的数量条件,则将所述连接蓝牙模块转换为唤醒蓝牙模块,并利用所述唤醒蓝牙模块执行第二个蓝牙标签组中的各个蓝牙标签对应的唤醒命令子链表中的唤醒命令。
7.如权利要求3至6任一项所述的网关的数据传输方法,其特征在于,所述利用所述蓝牙模块执行第一个蓝牙标签组中的各个蓝牙标签对应的唤醒命令子链表中的唤醒命令,还包括:
检测各个所述唤醒命令子链表是否满足预设的第一删除条件,并对每个满足所述第一删除条件的唤醒命令子链表进行删除;
所述利用所述蓝牙模块执行所述第一个蓝牙标签组中处于可连接状态的蓝牙标签对应的连接命令子链表中的连接命令,还包括:
检测各个所述连接命令子链表是否满足预设的第二删除条件,并对每个满足所述第二删除条件的连接命令子链表进行删除。
8.一种网关的数据传输装置,其特征在于,包括:
检测单元,用于检测网关的蓝牙模块的数量;
解析单元,用于接收服务器发送的指令,并对所述指令进行解析,得到待传输数据的数据量和所述网关需进行数据传输的各个蓝牙标签;
分组单元,用于根据所述待传输数据的数据量和所述蓝牙模块的数量,对所述需进行数据传输的各个蓝牙标签进行分组,得到多个蓝牙标签组;
传输单元,用于利用所述蓝牙模块依次与每个所述蓝牙标签组中的各个蓝牙标签进行数据传输。
9.一种网关,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110154540.5A CN113038438B (zh) | 2021-02-04 | 2021-02-04 | 一种网关的数据传输方法、装置、网关和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110154540.5A CN113038438B (zh) | 2021-02-04 | 2021-02-04 | 一种网关的数据传输方法、装置、网关和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113038438A CN113038438A (zh) | 2021-06-25 |
CN113038438B true CN113038438B (zh) | 2023-02-28 |
Family
ID=76459923
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110154540.5A Active CN113038438B (zh) | 2021-02-04 | 2021-02-04 | 一种网关的数据传输方法、装置、网关和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113038438B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104661172A (zh) * | 2015-01-26 | 2015-05-27 | 武汉健坤科技有限公司 | 基于蓝牙低功耗的扩展数据传输方法和系统 |
CN109462845A (zh) * | 2018-11-26 | 2019-03-12 | 国网四川省电力公司电力科学研究院 | 一种基于蓝牙通信的低功耗模块化数据采集系统 |
CN111669419A (zh) * | 2019-03-07 | 2020-09-15 | 阿里巴巴集团控股有限公司 | 网关及数据通信系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8116682B2 (en) * | 2009-09-25 | 2012-02-14 | Tang-Hsien Chang | Near field communcation device |
-
2021
- 2021-02-04 CN CN202110154540.5A patent/CN113038438B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104661172A (zh) * | 2015-01-26 | 2015-05-27 | 武汉健坤科技有限公司 | 基于蓝牙低功耗的扩展数据传输方法和系统 |
CN109462845A (zh) * | 2018-11-26 | 2019-03-12 | 国网四川省电力公司电力科学研究院 | 一种基于蓝牙通信的低功耗模块化数据采集系统 |
CN111669419A (zh) * | 2019-03-07 | 2020-09-15 | 阿里巴巴集团控股有限公司 | 网关及数据通信系统 |
Non-Patent Citations (2)
Title |
---|
Technical verification of applying wearable physiological sensors in ubiquitous health monitoring;Eliasz Kantoch;《IEEE》;20140116;全文 * |
基于体域网的个人健康监护系统设计;马恒;《测控技术》;20150131;第34卷(第1期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113038438A (zh) | 2021-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8078768B2 (en) | Universal Serial Bus (USB) remote wakeup | |
CN113163345B (zh) | 一种广播通信方法、系统、网关设备及电子价签 | |
CN110858483A (zh) | 智能设备、语音唤醒方法、语音唤醒装置及存储介质 | |
US20150312868A1 (en) | Node device and method for communication | |
WO2022037176A1 (zh) | 核间通信方法、装置、电子组件以及电子设备 | |
US20140334364A1 (en) | Remote wake-up system and method | |
US20140057564A1 (en) | Method and apparatus for utilizing advertisements in conjunction with device discovery | |
CN110955625A (zh) | 一种基于spi的全双工实时通信的方法及装置 | |
EP1650669B1 (en) | Method and system for reducing power consumption of handsets through uart auto flow control | |
CN104411003A (zh) | 无线通信设备的休眠唤醒控制方法和系统 | |
JP6785332B2 (ja) | ブルートゥーススピーカーデータ処理の方法、装置及びブルートゥーススピーカー | |
CN113038438B (zh) | 一种网关的数据传输方法、装置、网关和存储介质 | |
CN101771631B (zh) | 一种接收邮件的方法及装置 | |
CN110909359A (zh) | 基于双系统架构的通信方法及终端设备 | |
CN114996195B (zh) | 一种获取碳足迹数据的方法、系统、装置及介质 | |
CN109996319B (zh) | 信标信号处理装置 | |
CN113965915B (zh) | 数据处理方法和电子设备 | |
WO2014024175A2 (en) | Managing timers | |
CN112882985A (zh) | 一种数据传输系统、方法、装置及介质 | |
CN114301857A (zh) | 一种基于物联网的水表通讯方法及装置 | |
CN113873026A (zh) | 动态超时响应方法、装置、终端设备及存储介质 | |
CN103731888A (zh) | 无线通讯方法、通讯装置及其通讯系统 | |
CN114885407A (zh) | 一种数据包发送的方法、装置及设备 | |
CN117880941A (zh) | 测试方法、终端设备及计算机可读存储介质 | |
CN111083772B (zh) | 一种用于移动通信终端的睡眠唤醒方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |