CN112073992A - 数据传输方法、装置、设备及存储介质 - Google Patents

数据传输方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN112073992A
CN112073992A CN201910501375.9A CN201910501375A CN112073992A CN 112073992 A CN112073992 A CN 112073992A CN 201910501375 A CN201910501375 A CN 201910501375A CN 112073992 A CN112073992 A CN 112073992A
Authority
CN
China
Prior art keywords
downlink
instruction
downlink scheduler
lora node
scheduler
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.)
Granted
Application number
CN201910501375.9A
Other languages
English (en)
Other versions
CN112073992B (zh
Inventor
陈东杰
王�华
李国银
揭鸿
谢玖实
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201910501375.9A priority Critical patent/CN112073992B/zh
Publication of CN112073992A publication Critical patent/CN112073992A/zh
Application granted granted Critical
Publication of CN112073992B publication Critical patent/CN112073992B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/04Error control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/12Wireless traffic scheduling
    • H04W72/1263Mapping of traffic onto schedule, e.g. scheduled allocation or multiplexing of flows
    • H04W72/1273Mapping of traffic onto schedule, e.g. scheduled allocation or multiplexing of flows of downlink data flows
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本公开提出了一种数据传输方法、装置、设备及存储介质。响应于接收到LoRa节点发送的上行数据,判断是否存在与LoRa节点对应的第一下行调度器;在判定存在与LoRa节点对应的第一下行调度器的情况下,取消第一下行调度器的执行,构造并执行第二下行调度器,其中,第一下行调度器用于针对LoRa节点的ClassB接收窗口或ClassC接收窗口发送下行数据,第二下行调度器用于针对LoRa节点的ClassA接收窗口发送下行数据。由此,在不影响下行数据的正常下发的同时,可以解决由于LoRa节点上行数据引起窗口冲突而导致的下行数据丢失问题。

Description

数据传输方法、装置、设备及存储介质
技术领域
本公开涉及通信领域,特别是涉及一种数据传输方法、装置、设备及存储介质。
背景技术
LoRaWAN是一种低功耗广域物联网解决方案,是由LoRa联盟推出的一个基于开源的MAC层协议的低功耗广域网(Low Power Wide Area Network,LPWAN)标准。这一技术可以为电池供电的无线设备提供一个低功耗、可扩展的长距离无线网络。
在LoRaWAN中,终端设备(也即LoRa节点)的工作模式分为三种:ClassA、ClassB和ClassC。其中ClassA是最基本的模式,ClassB和ClassC都要兼容ClassA模式。因此,如果一个终端工作在ClassB或者ClassC模式,那么该终端会有两类下行窗口,一类是ClassB或者ClassC特有的下行窗口,一类是上行数据之后开启的Rx1和Rx2窗口,Rx1和Rx2窗口均为ClassA模式下的下行窗口。
如果网络服务器(Network Server,简称NS)要给一个终端连续下发多条下行指令,持续下发期间终端可能上行数据,此时,原有的ClassB或者ClassC下行窗口会被中断,终端会在上行数据之后优先开启Rx1和Rx2窗口。此时,如果NS依然从ClassB或者ClassC的窗口下发数据,会造成下行数据丢失。
因此,需要一种方案,解决上述问题。
发明内容
本公开所要解决的一个技术问题是,提供一种指令调度方案,以解决由于终端上行数据引起窗口冲突而导致的下行数据丢失问题。
根据本公开的第一个方面,提供了一种数据传输方法,包括:响应于接收到LoRa节点发送的上行数据,判断是否存在与LoRa节点对应的第一下行调度器;在判定存在与LoRa节点对应的第一下行调度器的情况下,取消第一下行调度器的执行,构造并执行第二下行调度器,其中,第一下行调度器用于针对LoRa节点的ClassB接收窗口或ClassC接收窗口发送下行数据,第二下行调度器用于针对LoRa节点的ClassA接收窗口发送下行数据。
可选地,该方法还包括:在判定不存在与LoRa节点对应的第一下行调度器的情况下,构造第二下行调度器。
可选地,第二下行调度器被配置为:在首次执行的情况下,针对LoRa节点的ClassA接收窗口发送下行数据;并且/或者在非首次执行的情况下,转换为第一下行调度器,针对LoRa节点的ClassB接收窗口或ClassC接收窗口发送下行数据。
可选地,该方法还包括:接收应用服务器生成的要向LoRa节点发送的指令,并将指令存储到指令池。
可选地,该方法还包括:判断是否存在与LoRa节点对应的下行调度器;在判定不存在与LoRa节点对应的下行调度器的情况下,构造第一下行调度器。
可选地,第一下行调度器或第二下行调度器还用于从指令池中取出指令,将取出的指令封装为下行数据。
可选地,该方法还包括:在第一下行调度器从指令池中取出的指令为空的情况下,删除第一下行调度器;或者在第二下行调度器从指令池中取出的指令为空的情况下,删除第二下行调度器。
可选地,该方法还包括:延迟预定时长后,再次利用第一下行调度器或第二下行调度器从指令池中取出指令,将取出的指令封装为下行数据,并将下行数据发送到LoRa节点。
可选地,该方法还包括:计算LoRa节点下一个适于下行的接收窗口的时间;基于时间,确定预定时长。
可选地,该方法还包括:检查第一下行调度器的状态是否合法,在第一下行调度器的状态不合法的情况下,删除第一下行调度器;或者检查第二下行调度器的状态是否合法,在第二下行调度器的状态不合法的情况下,删除第二下行调度器。
根据本公开的第二个方面,还提供了一种数据传输方法,包括:接收应用服务器生成的要向LoRa节点发送的指令,并将指令存储到指令池;构造第一下行调度器,第一下行调度器用于从指令池取出指令,将取出的指令封装为下行数据,并针对LoRa节点的ClassB接收窗口或ClassC接收窗口发送下行数据;响应于接收到LoRa节点发送的上行数据,取消第一下行调度器的执行,构造并执行第二下行调度器,第二下行调度器用于从指令池中取出指令,将取出的指令封装为下行数据,并针对LoRa节点的ClassA接收窗口发送下行数据。
根据本公开的第三个方面,还提供了一种数据传输装置,包括:判断模块,用于响应于接收到LoRa节点发送的上行数据,判断是否存在与LoRa节点对应的第一下行调度器;取消模块,用于在判断模块判定存在与LoRa节点对应的第一下行调度器的情况下,取消第一下行调度器的执行;构造模块,用于构造并执行第二下行调度器,其中,第一下行调度器用于针对LoRa节点的ClassB接收窗口或ClassC接收窗口发送下行数据,第二下行调度器用于针对LoRa节点的ClassA接收窗口发送下行数据。
根据本公开的第四个方面,还提供了一种数据传输装置,包括:第一接收模块,用于接收应用服务器生成的用于向LoRa节点发送的指令;存储模块,用于将指令存储到LoRa节点的指令池;第一构造模块,用于构造第一下行调度器,第一下行调度器用于从指令池取出指令,将取出的指令封装为下行数据,并针对LoRa节点的ClassB接收窗口或ClassC接收窗口发送下行数据;第二接收模块,用于接收LoRa节点发送的上行数据;取消模块,用于响应于第二接收模块接收到LoRa节点发送的上行数据,取消第一下行调度器的执行;第二构造模块,用于响应于第二接收模块接收到LoRa节点发送的上行数据,构造并执行第二下行调度器,第二下行调度器用于从指令池中取出指令,将取出的指令封装为下行数据,并针对LoRa节点的ClassA接收窗口发送下行数据。
根据本公开的第五个方面,还提供了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行如本公开第一个方面或第二个方面述及的方法。
根据本公开的第六个方面,还提供了一种非暂时性机器可读存储介质,其上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器执行如本公开第一个方面或第二个方面述及的方法。
本公开在接收到LoRa节点发送的上行数据后,可以立即取消当前与该LoRa节点对应的下行调度器的执行,并构造新的下行调度器,由新构造的下行调度器针对LoRa节点的ClassA接收窗口发送下行数据。由此,在不影响下行数据的正常下发的同时,可以解决由于LoRa节点上行数据引起窗口冲突而导致的下行数据丢失问题。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了根据本公开一个实施例的数据传输方法的示意性流程图。
图2示出了本公开的数据传输方法还可以包括的步骤的示意性流程图。
图3示出了根据本公开一实施例的下行调度器的执行方法的示意性流程图。
图4示出了根据本公开一实施例的数据传输装置的结构的示意性方框图。
图5示出了根据本公开另一实施例的数据传输装置的结构的示意性方框图。
图6示出了根据本公开一实施例的计算设备的结构的示意性方框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在LoRaWAN中,LoRa节点(Node)上行数据后会开启ClassA接收窗口,ClassA接收窗口包括Rx1窗口和Rx2窗口,Rx1窗口是指LoRa节点上行数据后第一次开启的接收窗口,Rx2窗口是指在Rx1窗口之后开启的接收窗口。
如前文所述,LoRa节点在通过基站(Gateway,也即网关)向网络服务器(NetworkServer,简称NS)发送上行数据之后,会中断并干扰原有的ClassB或者ClassC的窗口,此时如果NS依然从ClassB或者ClassC的窗口下发数据,会造成指令丢失。
针对于此,本公开提出,可以由NS构造下行调度器,由下行调度器使用与LoRa节点的工作模式相对应的接收窗口(ClassB接收窗口或ClassC接收窗口)将下行数据发送到LoRa节点。
在接收到LoRa节点发送的上行数据后,NS可以立即取消当前与该LoRa节点对应的下行调度器的执行,并构造新的下行调度器,由新构造的下行调度器针对LoRa节点的ClassA接收窗口(也即Rx1窗口和/或Rx2窗口)发送下行数据。由此,在不影响下行数据的正常下发的同时,可以解决由于LoRa节点上行数据引起窗口冲突而导致的下行数据丢失问题。
图1示出了根据本公开一个实施例的数据传输方法的示意性流程图。图1所示的方法可以由NS执行。
参见图1,在步骤S110,接收LoRa节点发送的上行数据。
此处述及的上行数据是指LoRa节点通过基站向NS发送的数据,也即上行报文。关于上行数据的发送、上行数据发送后LoRa节点端下行接收窗口的开启以及NS端针对上行数据处理,均可以参见现有LoRaWAN协议,此处不再赘述。
在步骤S120,响应于接收到LoRa节点发送的上行数据,判断是否存在与LoRa节点对应的下行调度器(为了便于区分,可以称为“第一下行调度器”)。
第一下行调度器是指用于针对LoRa节点的ClassB接收窗口或ClassC接收窗口发送下行数据的下行调度器,其中第一下行调度器具体利用何种窗口发送下行数据取决于LoRa节点的工作模式。
在判定存在与LoRa节点对应的第一下行调度器的情况下,可以执行步骤S130,取消第一下行调度器的执行,也即使第一下行调度器失效。作为示例,可以对第一下行调度器的状态进行标记,将其标记为“取消(可用特殊标识符标示)”,下行调度器在执行前可以检查自身是否被标记为取消,在检查到自身被标记为取消的情况下,可以取消执行,如可以删除下行调度器。
在判定不存在与LoRa节点对应的第一下行调度器的情况下,可以跳转至步骤S140。
在步骤S140,构造并执行新的下行调度器(为了便于区分,可以称为“第二下行调度器”)。第二下行调度器是指用于针对LoRa节点的ClassA接收窗口发送下行数据的下行调度器。
本公开述及的第一下行调度器、第二下行调度器,是根据下行调度器执行时所使用的下行窗口的类型进行划分的。在利用第二下行调度器针对LoRa节点的ClassA接收窗口发送完下行数据后,第二下行调度器还可以转换为第一下行调度器,针对LoRa节点的ClassB接收窗口或ClassC接收窗口发送下行数据。其中,此处述及的“转换”是指逻辑上的转换,而非限定具体转换动作。
换言之,第二下行调度器可以被配置为:在首次执行的情况下,针对LoRa节点的ClassA接收窗口发送下行数据;在非首次执行的情况下(也即在首次执行完毕后),“转换为”(也即作为)第一下行调度器,针对LoRa节点的ClassB接收窗口或ClassC接收窗口发送下行数据。
可见,本公开述及的第一下行调度器的来源可以分为两种。一种是在构造之初就是用于针对LoRa节点的ClassB接收窗口或ClassC接收窗口发送下行数据的下行调度器(也即图2中构造的下行调度器),另一种是由第二下行调度器转换而来的下行调度器。
可选地,在利用第二下行调度器针对LoRa节点的ClassA接收窗口发送完下行数据后,也可以取消第二下行调度器的执行(或者删除第二下行调度器),并且同时还可以重新启用第一下行调度器。
如上文所述,第二下行调度器是响应于接收到LoRa节点发送的上行数据而构造的,在利用第二下行调度器针对LoRa节点的ClassA接收窗口发送完下行数据后,可以将第二下行调度器转换为第一下行调度器,也可以取消第二下行调度器的执行。
换言之,针对LoRa节点设置的下行调度器分为第一下行调度器和第二下行调度器,而第二下行调度器的存续时间有限。一般来说,在下次接收到LoRa节点发送的上行数据时,响应于上次接收到该LoRa节点的上行数据而设置的第二下行调度器已经不再存在(转换为第一下行调度器或者被取消)。
因此,在执行步骤S120,响应于接收到LoRa节点发送的上行数据判断是否存在与LoRa节点对应的第一下行调度器时,可以直接判断当前是否存在与LoRa节点对应的下行调度器,如果存在下行调度器,则执行步骤S130,如果不存在则跳转至步骤S140,也即判断过程无需再对下行调度器的类型做进一步判断。
图2示出了本公开的数据传输方法还可以包括的步骤的示意性流程图。图2所示的方法也可以由NS执行。
参见图2,在步骤S210,接收应用服务器下发的指令。
应用服务器(Application Server,简称AS)是物联网解决方案中的上层应用。AS可以生成要向LoRa节点发送的指令(也即下行指令),并将指令发送给NS,由NS将其下发给选定的基站,再由基站将其下发给LoRa节点。另外对于接收到的LoRa节点上传的上行数据,NS可以将其发送至AS,由AS进行分析处理。
在步骤S220,将指令存储到指令池。
指令池中可以存储所有需要下发给LoRa节点的指令。指令池中的指令可以分为多播指令(也即组播指令)和单播指令,多播指令是指对应于多个接收端(也即多个LoRa节点)的指令,单播指令是指对应于单个接收端(也即单个LoRa节点)的指令。
在步骤S230,判断下行调度器是否存在。
步骤S230可以实时(或周期性地)执行,也可以定时执行。例如,可以实时(或周期性地)判断是否存在与指令池中的指令所对应的LoRa节点相对应的下行调度器。再例如,也可以在接收到新的指令,或者将新的指令存储到指令池中时,判断与该指令对应的LoRa节点的下行调度器是否存在。
在判定下行调度器不存在的情况下,可以执行步骤S240,构造新的下行调度器。在判定存在下行调度器的情况下,可以跳转至步骤S250。
在步骤S250,执行下行调度器,即利用下行调度器将指令池中的指令下发给对应的LoRa节点。
由此,NS可以将接收到的AS发送的指令存储到指令池,并通过构造并执行下行调度器,实现指令的下发。
需要说明的是,图2中示出的下行调度器是指用于针对LoRa节点的ClassB接收窗口或ClassC接收窗口发送下行数据的调度器,也即上文述及的第一调度器,所构造的下行调度器具体利用何种窗口发送下行数据取决于LoRa节点的工作模式。
图3示出了根据本公开一实施例的下行调度器的执行方法的示意性流程图。其中图3所示的方法可以由NS执行,例如可以由部署在NS端的下行调度器执行。
参见图3,在步骤S310,下行调度器初始化。
根据上文结合图1、图2的描述可知,下行调度器的构造来源有两种。一种是响应于接收到上行数据而构造的下行调度器,另一种是在LoRa节点的下行调度器不存在时构造的下行调度器。
在初始化时,可以标记调度器的构造来源,以便于后续可以根据构造来源,确定使用何种接收窗口。
在步骤S320,判断下行调度器是否合法。
此处述及的判断下行调度器是否合法,是指判断下行调度器的当前状态是否合法。如上文所述,在某些情况下可以取消下行调度器的执行,因此此处述及的下行调度器是否合法,也即下行调度器是否被取消。例如,下行调度器在初始化后,可以检查自身状态,如果发现自身被取消,就放弃执行,如可以跳至步骤S390,删除调度器。
在判定下行调度器合法的情况下,可以执行步骤S330至步骤S380,以将指令池中的指令下发给对应的LoRa节点。
在步骤S330,从指令池获取指令。此处可以按照指令下发时间,从指令池中获取要向与该下行调度器对应的LoRa节点发送的指令。其中从指令池中获取的指令可以是一个,也可以是多个。
在步骤S340,判断下行调度器是否获取到指令,也即判断下行调度器获取到的指令是否为空。
在下行调度器获取到的指令为空的情况下,表明指令池中不存在要向该下行调度器对应的LoRa节点发送的指令。因此可以跳至步骤S390,删除调度器,也即下行调度器可以退出执行,避免后续无用的尝试调度,节省系统资源。
在下行调度器获取到的指令不为空的情况下,可以执行步骤S350,组装下行数据,也即将获取到的指令组装(或封装)为下行数据包。
在步骤S360,确定LoRa节点的接收接口。
在下行调度器为第二下行调度器的情况下,可以使用ClassA接收窗口,在下行调度器为第一行调度器的情况下,可以使用ClassB接收窗口或ClassC接收窗口。
换言之,在下行调度器是响应于接收到LoRa节点发送的上行数据而构造的下行调度器且为首次执行的情况下,可以使用ClassA接收窗口,否则使用ClassB接收窗口或ClassC接收窗口。
如上文所述,在初始化时,可以标记下行调度器的构造来源。因此可以根据下行调度器的构造来源以及该下行调度器是否首次执行,来确定选用何种接收窗口。具体地,如果下行调度器是基于图1所示的方式构造的、且首次执行,则使用ClassA接收窗口,否则使用ClassB接收窗口或ClassC接收窗口。
在步骤S370,发送下行数据。
这里是指将组装好的下行数据发送给选定的基站(也即下行基站),由基站将该下行数据发送给对应的LoRa节点。
至此,下行调度器完成了一次下行数据的发送过程。
在发送下行数据之后,可以执行步骤S380,计算LoRa节点下一个适于下行的接收窗口的时间,并基于该时间确定延迟时长t。
在延迟时长t后,可以返回执行步骤S320至步骤S370,再次利用下行调度器从指令池中取出指令,将取出的指令封装为下行数据,并将下行数据发送到LoRa节点。
下行调度器的延时实现可以使用分布式延迟队列,以实现调度器的负载均衡以及提高调度器的容灾能力。
作为示例,在计算LoRa节点下一个适于下行的接收窗口,确定延迟时长t时,还可以考虑多种其他因素。例如可以考虑组播单播窗口冲突、基站时延(也即基站与NS之间的网络传输延迟)等等。
组播单播窗口冲突
工作在ClassB模式下的设备如果同时支持单播和组播。单播和组播会按照各自的周期开启接收窗口,这两类窗口正常情况下接收的频点速率是不一样的,所以单播窗口只能接收单播数据,组播窗口只能接收组播数据。但是会出现一种情况:单播和组播的窗口开启时间很接近,这样的话如果是组播优先,就会中断单播接口,导致原来的单播接口不能接收数据。
因此,在组装完成下行数据后确定LoRa节点的接收窗口时(即步骤S360),如果要发送的下行数据是单播数据,在确定单播窗口时,可以计算单播窗口附近是否存在组播窗口,如果存在组播窗口,则放弃该单播窗口,计算下一个单播窗口,直到找到附近不存在组播窗口的单播窗口。
基站时延
在计算LoRa节点下一个适于下行的接收窗口的时间,基于该时间确定延迟时长t时,可以参考基站与NS之间的网络传输延迟。具体地,延迟时长t可以等于t1–t2–t_now,其中,t1为LoRa节点下一次开启接收窗口的时间,t2为基站与NS之间的网络传输延迟,t_now为当前时间。
综上,本公开的数据传输方案可以视为一种下行指令的时域调度算法,可以解决混合模式下的窗口冲突问题,提高下行指令的成功率,并且可以很方便的处理其他窗口冲突类问题。
图4示出了根据本公开一个实施例的数据传输装置的结构示意图。
数据传输装置的功能模块可以由实现本发明原理的硬件、软件或硬件和软件的结合来实现。本领域技术人员可以理解的是,图4所描述的功能模块可以组合起来或者划分成子模块,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能模块的任何可能的组合、或者划分、或者更进一步的限定。
下面就数据传输装置可以具有的功能模块以及各功能模块可以执行的操作做简要说明,对于其中涉及的细节部分可以参见上文描述,这里不再赘述。
图4示出的数据传输装置400可以设置在网络服务器端。参见图4,数据传输装置400包括判断模块410、取消模块420以及构造模块430。
判断模块410用于响应于接收到LoRa节点发送的上行数据,判断是否存在与LoRa节点对应的第一下行调度器。
取消模块420用于在判断模块判定存在与LoRa节点对应的第一下行调度器的情况下,取消第一下行调度器的执行。
构造模块430用于构造并执行第二下行调度器。
第一下行调度器用于针对LoRa节点的ClassB接收窗口或ClassC接收窗口发送下行数据,第二下行调度器用于针对LoRa节点的ClassA接收窗口发送下行数据。关于第一下行调度器、第二下行调度器以及下行调度器的执行过程均可以参见上文相关描述,此处不再赘述。
图5示出了根据本公开另一个实施例的数据传输装置的结构示意图。
数据传输装置的功能模块可以由实现本发明原理的硬件、软件或硬件和软件的结合来实现。本领域技术人员可以理解的是,图5所描述的功能模块可以组合起来或者划分成子模块,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能模块的任何可能的组合、或者划分、或者更进一步的限定。
下面就数据传输装置可以具有的功能模块以及各功能模块可以执行的操作做简要说明,对于其中涉及的细节部分可以参见上文描述,这里不再赘述。
参见图5,数据传输装置500包括第一接收模块510、存储模块520、第一构造模块530、第二接收模块540、取消模块550以及第二构造模块560。
第一接收模块510用于接收应用服务器生成的用于向LoRa节点发送的指令。
存储模块520用于将所述指令存储到所述LoRa节点的指令池。
第一构造模块530用于构造第一下行调度器,所述第一下行调度器用于从所述指令池取出指令,将取出的指令封装为下行数据,并针对所述LoRa节点的ClassB接收窗口或ClassC接收窗口发送所述下行数据。
第二接收模块540用于接收LoRa节点发送的上行数据。
取消模块550用于响应于所述第二接收模块接收到LoRa节点发送的上行数据,取消所述第一下行调度器的执行。
第二构造模块560用于响应于所述第二接收模块接收到LoRa节点发送的上行数据,构造并执行第二下行调度器,所述第二下行调度器用于从所述指令池中取出指令,将取出的指令封装为下行数据,并针对所述LoRa节点的ClassA接收窗口发送下行数据。
关于第一下行调度器、第二下行调度器以及下行调度器的执行过程均可以参见上文相关描述,此处不再赘述。
图6示出了根据本发明一实施例可用于实现上述数据传输方法的计算设备的结构示意图。
参见图6,计算设备1000包括存储器1010和处理器1020。
处理器1020可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器1020可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(GPU)、数字信号处理器(DSP)等等。在一些实施例中,处理器1020可以使用定制的电路实现,例如特定用途集成电路(ASIC,Application Specific Integrated Circuit)或者现场可编程逻辑门阵列(FPGA,Field Programmable Gate Arrays)。
存储器1010可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM),和永久存储装置。其中,ROM可以存储处理器1020或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器1010可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器1010可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
存储器1010上存储有可执行代码,当可执行代码被处理器1020处理时,可以使处理器1020执行上文述及的数据传输方法。
上文中已经参考附图详细描述了根据本发明的数据传输方法、装置及设备。
此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (15)

1.一种数据传输方法,其特征在于,包括:
响应于接收到LoRa节点发送的上行数据,判断是否存在与所述LoRa节点对应的第一下行调度器;
在判定存在与所述LoRa节点对应的第一下行调度器的情况下,取消所述第一下行调度器的执行,构造并执行第二下行调度器,其中,
所述第一下行调度器用于针对所述LoRa节点的ClassB接收窗口或ClassC接收窗口发送下行数据,所述第二下行调度器用于针对所述LoRa节点的ClassA接收窗口发送下行数据。
2.根据权利要求1所述的数据传输方法,其特征在于,还包括:
在判定不存在与所述LoRa节点对应的第一下行调度器的情况下,构造所述第二下行调度器。
3.根据权利要求1所述的数据传输方法,其特征在于,所述第二下行调度器被配置为:
在首次执行的情况下,针对所述LoRa节点的ClassA接收窗口发送下行数据;并且/或者
在非首次执行的情况下,转换为所述第一下行调度器,针对所述LoRa节点的ClassB接收窗口或ClassC接收窗口发送下行数据。
4.根据权利要求1所述的数据传输方法,其特征在于,还包括:
接收应用服务器生成的要向LoRa节点发送的指令,并将所述指令存储到指令池。
5.根据权利要求4所述的数据传输方法,其特征在于,还包括:
判断是否存在与所述LoRa节点对应的下行调度器;
在判定不存在与所述LoRa节点对应的下行调度器的情况下,构造所述第一下行调度器。
6.根据权利要求4所述的数据传输方法,其特征在于,
所述第一下行调度器或所述第二下行调度器还用于从所述指令池中取出指令,将取出的指令封装为所述下行数据。
7.根据权利要求6所述的数据传输方法,其特征在于,还包括:
在所述第一下行调度器从所述指令池中取出的指令为空的情况下,删除所述第一下行调度器;或者
在所述第二下行调度器从所述指令池中取出的指令为空的情况下,删除所述第二下行调度器。
8.根据权利要求6所述的数据传输方法,其特征在于,还包括:
延迟预定时长后,再次利用所述第一下行调度器或所述第二下行调度器从所述指令池中取出指令,将取出的指令封装为所述下行数据,并将所述下行数据发送到所述LoRa节点。
9.根据权利要求8所述的数据传输方法,其特征在于,还包括:
计算所述LoRa节点下一个适于下行的接收窗口的时间;
基于所述时间,确定所述预定时长。
10.根据权利要求1所述的数据传输方法,其特征在于,还包括:
检查所述第一下行调度器的状态是否合法,在所述第一下行调度器的状态不合法的情况下,删除所述第一下行调度器;或者
检查所述第二下行调度器的状态是否合法,在所述第二下行调度器的状态不合法的情况下,删除所述第二下行调度器。
11.一种数据传输方法,其特征在于,包括:
接收应用服务器生成的要向LoRa节点发送的指令,并将所述指令存储到指令池;
构造第一下行调度器,所述第一下行调度器用于从所述指令池取出指令,将取出的指令封装为下行数据,并针对所述LoRa节点的ClassB接收窗口或ClassC接收窗口发送所述下行数据;
响应于接收到LoRa节点发送的上行数据,取消所述第一下行调度器的执行,构造并执行第二下行调度器,所述第二下行调度器用于从所述指令池中取出指令,将取出的指令封装为下行数据,并针对所述LoRa节点的ClassA接收窗口发送下行数据。
12.一种数据传输装置,其特征在于,包括:
判断模块,用于响应于接收到LoRa节点发送的上行数据,判断是否存在与所述LoRa节点对应的第一下行调度器;
取消模块,用于在所述判断模块判定存在与所述LoRa节点对应的第一下行调度器的情况下,取消所述第一下行调度器的执行;
构造模块,用于构造并执行第二下行调度器,其中,
所述第一下行调度器用于针对所述LoRa节点的ClassB接收窗口或ClassC接收窗口发送下行数据,所述第二下行调度器用于针对所述LoRa节点的ClassA接收窗口发送下行数据。
13.一种数据传输装置,其特征在于,包括:
第一接收模块,用于接收应用服务器生成的用于向LoRa节点发送的指令;
存储模块,用于将所述指令存储到所述LoRa节点的指令池;
第一构造模块,用于构造第一下行调度器,所述第一下行调度器用于从所述指令池取出指令,将取出的指令封装为下行数据,并针对所述LoRa节点的ClassB接收窗口或ClassC接收窗口发送所述下行数据;
第二接收模块,用于接收LoRa节点发送的上行数据;
取消模块,用于响应于所述第二接收模块接收到LoRa节点发送的上行数据,取消所述第一下行调度器的执行;
第二构造模块,用于响应于所述第二接收模块接收到LoRa节点发送的上行数据,构造并执行第二下行调度器,所述第二下行调度器用于从所述指令池中取出指令,将取出的指令封装为下行数据,并针对所述LoRa节点的ClassA接收窗口发送下行数据。
14.一种计算设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1至11中任何一项所述的方法。
15.一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1至11中任一项所述的方法。
CN201910501375.9A 2019-06-11 2019-06-11 数据传输方法、装置、设备及存储介质 Active CN112073992B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910501375.9A CN112073992B (zh) 2019-06-11 2019-06-11 数据传输方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910501375.9A CN112073992B (zh) 2019-06-11 2019-06-11 数据传输方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN112073992A true CN112073992A (zh) 2020-12-11
CN112073992B CN112073992B (zh) 2024-08-06

Family

ID=73658424

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910501375.9A Active CN112073992B (zh) 2019-06-11 2019-06-11 数据传输方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN112073992B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107071836A (zh) * 2017-03-03 2017-08-18 国动物联网技术(上海)有限公司 一种兼容classa和classb的数据下行方法
CN107071869A (zh) * 2016-11-15 2017-08-18 国动物联网技术(上海)有限公司 兼容LoRaWAN Class A、Class B和手抄模式的多模终端及多模兼容方法
US20180132177A1 (en) * 2016-11-09 2018-05-10 Cisco Technology, Inc. System and method to facilitate power management in a long range radio network environment
CN108880775A (zh) * 2018-07-20 2018-11-23 东信和平科技股份有限公司 一种基于ClassB模式的唤醒方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180132177A1 (en) * 2016-11-09 2018-05-10 Cisco Technology, Inc. System and method to facilitate power management in a long range radio network environment
CN107071869A (zh) * 2016-11-15 2017-08-18 国动物联网技术(上海)有限公司 兼容LoRaWAN Class A、Class B和手抄模式的多模终端及多模兼容方法
CN107071836A (zh) * 2017-03-03 2017-08-18 国动物联网技术(上海)有限公司 一种兼容classa和classb的数据下行方法
CN108880775A (zh) * 2018-07-20 2018-11-23 东信和平科技股份有限公司 一种基于ClassB模式的唤醒方法及装置

Also Published As

Publication number Publication date
CN112073992B (zh) 2024-08-06

Similar Documents

Publication Publication Date Title
WO2019128873A1 (zh) 一种波束训练方法及相关设备
CN108199925A (zh) 一种数据发送方法、接收方法及装置
US9769850B2 (en) Method, device and system for transmitting data
US10614006B2 (en) Low latency interrupt with existence of interrupt moderation
CN105141603A (zh) 通信数据传输方法及系统
WO2023160568A1 (zh) 通信方法、装置、系统及存储介质
CN103650401A (zh) 一种移动终端内部通信方法
CN112306693B (zh) 数据包的处理方法和设备
US10372667B2 (en) Communication apparatus and control method thereof
CN113259956A (zh) LoRa数据传输方法、LoRa网关、LoRa节点以及LoRa网络
WO2020125485A1 (zh) 下行基站选择方法、装置、设备及存储介质
JP2021022941A (ja) モバイル通信ネットワークにおける可変容量データ送信
CN112073992A (zh) 数据传输方法、装置、设备及存储介质
CN112087399A (zh) LoRa数据传输方法、装置、设备及存储介质
CN111641565A (zh) 一种以太网报文的传输方法、装置及系统
CN111478859B (zh) Dtn网络中的消息传输方法、节点和存储介质
JP2023527814A (ja) リソース処理方法、リソース処理装置及び端末
CN112752296B (zh) 一种数据传输方法、装置及电子设备
CN112019305B (zh) 数据传输方法、装置、设备及存储介质
JP2018137637A (ja) 通信ネットワーク及び通信端末
CN113453368A (zh) 指令调度方法和指令调度装置
CN111356175B (zh) 数据传输方法、装置、设备及存储介质
JP2015536063A (ja) ファースト−イン−ファースト−アウトトランスポート機構からのランダムアクセスメッセージ取り出しの方法
WO2022062856A1 (zh) 资源管理方法及装置
CN111356212B (zh) 数据传输方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40039140

Country of ref document: HK

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant