数据传输方法和装置、计算机可读存储介质、融合终端转让专利

申请号 : CN202210661623.8

文献号 : CN114760373B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 夏再琦姜帆杜君王文赫庞振江郭艳鹏宋绍华

申请人 : 北京智芯微电子科技有限公司北京智芯半导体科技有限公司

摘要 :

本发明公开了一种数据传输方法和装置、计算机可读存储介质、融合终端,所述方法包括:接收多个MQTT协议消息数据,其中,多个MQTT协议消息数据由多个业务采集应用程序发送;依次获取多个MQTT协议消息数据的数据类型,其中,数据类型包括第一数据类型和第二数据类型;将数据类型为第一数据类型的MQTT协议消息数据加入到待发送的第一消息队列中,将数据类型为第二数据类型的MQTT协议消息数据加入到待发送的第二消息队列中;按照预设规则将第一消息队列和第二消息队列中的MQTT协议消息数据发送至电力通信装置。本发明的数据传输方法,能够同时支持两种数据类型的MQTT协议消息数据,满足不同业务通信要求。

权利要求 :

1.一种数据传输方法,其特征在于,包括:

接收多个消息队列遥测传输MQTT协议消息数据,其中,所述多个MQTT协议消息数据由多个业务采集应用程序发送;

依次获取所述多个MQTT协议消息数据的数据类型,其中,所述数据类型包括第一数据类型和第二数据类型,所述第一数据类型为A‑XDR格式,所述第二数据类型为JSON格式;

将所述数据类型为所述第一数据类型的MQTT协议消息数据加入到待发送的第一消息队列中,将所述数据类型为所述第二数据类型的MQTT协议消息数据加入到待发送的第二消息队列中;

按照预设规则将所述第一消息队列和所述第二消息队列中的MQTT协议消息数据通过同一个通信通道发送至电力通信装置。

2.根据权利要求1所述的数据传输方法,其特征在于,按照预设规则将所述第一消息队列和所述第二消息队列中的所述MQTT协议消息数据发送至电力通信装置,包括:将所述第一消息队列和所述第二消息队列中的所述MQTT协议消息数据交替发送至电力通信装置;或者将所述第二消息队列和所述第一消息队列中的所述MQTT协议消息数据交替发送至电力通信装置。

3.根据权利要求1所述的数据传输方法,其特征在于,在将所述MQTT协议消息数据加入到待发送的第一消息队列中之后,所述方法还包括:分别获取所述第一消息队列中待发送的所述MQTT协议消息数据的优先级;

将待发送的所述MQTT协议消息数据按照优先级由高到低的顺序加入第一消息队列中。

4.根据权利要求1所述的数据传输方法,其特征在于,在将所述MQTT协议消息数据加入到待发送的第二消息队列中之后,所述方法还包括:分别获取所述第二消息队列中的待发送的所述MQTT协议消息数据的优先级;

将待发送的所述MQTT协议消息数据按照优先级由高到低的顺序加入第二消息队列中。

5.根据权利要求3所述的数据传输方法,其特征在于,在所述第一消息队列中的待发送的所述MQTT协议消息数据的优先级相同时,按照接收所述MQTT协议消息数据的时间先后顺序加入所述第一消息队列中。

6.根据权利要求4所述的数据传输方法,其特征在于,在所述第二消息队列中的待发送的所述MQTT协议消息数据的优先级相同时,按照接收所述MQTT协议消息数据的时间先后顺序加入所述第二消息队列中。

7.根据权利要求1所述的数据传输方法,其特征在于,在将所述第一消息队列和所述第二消息队列中的所述MQTT协议消息数据发送至电力通信装置之前,所述方法还包括:确定所述电力通信装置的通信通道处于空闲状态时,获取上一次所述通信通道传输的数据类型;

在上一次所述通信通道传输的数据类型为所述第一数据类型时,获取所述第二消息队列中的所述MQTT协议消息数据;

在确定成功获取到所述第二消息队列中的所述MQTT协议消息数据时,将该MQTT协议消息数据发送至所述电力通信装置。

8.根据权利要求7所述的数据传输方法,其特征在于,在确定未成功获取所述第二消息队列中的所述MQTT协议消息数据,或者所述第二消息队列中为空时,获取所述第一消息队列中的所述MQTT协议消息数据,并发送至所述电力通信装置。

9.根据权利要求1‑8中任一项所述的数据传输方法,其特征在于,还包括:接收所述电力通信装置的应答报文;

在确定接收到所述电力通信装置的应答报文时,根据所述数据类型和业务采集应用程序的标识将所述应答报文发送至对应的业务采集应用程序。

10.根据权利要求9所述的数据传输方法,其特征在于,还包括:

在预设时间内未接收到所述电力通信装置的应答报文时,将所述数据类型、业务采集应用程序的标识和超时信息发送至对应的业务采集应用程序。

11.一种数据传输装置,其特征在于,包括:

第一接收模块,用于接收多个MQTT协议消息数据,其中,所述多个MQTT协议消息数据由多个业务采集应用程序发送;

第一获取模块,用于依次获取所述多个MQTT协议消息数据的数据类型,其中,所述数据类型包括第一数据类型和第二数据类型,所述第一数据类型为A‑XDR格式,所述第二数据类型为JSON格式;

消息队列确定模块,用于将所述数据类型为所述第一数据类型的MQTT协议消息数据加入到待发送的第一消息队列中,将所述数据类型为所述第二数据类型的MQTT协议消息数据加入到待发送的第二消息队列中;

数据发送模块,用于按照预设规则将所述第一消息队列和所述第二消息队列中的MQTT协议消息数据通过同一个通信通道发送至电力通信装置。

12.根据权利要求11所述的数据传输装置,其特征在于,所述数据发送模块按照预设规则将所述第一消息队列和所述第二消息队列中的所述MQTT协议消息数据发送至电力通信装置,具体用于:将所述第一消息队列和所述第二消息队列中的所述MQTT协议消息数据交替发送至电力通信装置;或者将所述第二消息队列和所述第一消息队列中的所述MQTT协议消息数据交替发送至电力通信装置。

13.根据权利要求11所述的数据传输装置,其特征在于,所述消息队列确定模块在将所述MQTT协议消息数据加入到待发送的第一消息队列中之后,还用于:分别获取所述第一消息队列中待发送的所述MQTT协议消息数据的优先级;

将待发送的所述MQTT协议消息数据按照优先级由高到低的顺序加入第一消息队列中。

14.根据权利要求11所述的数据传输装置,其特征在于,所述消息队列确定模块在将所述MQTT协议消息数据加入到待发送的第二消息队列中之后,还用于:分别获取所述第二消息队列中的待发送的所述MQTT协议消息数据的优先级;

将待发送的所述MQTT协议消息数据按照优先级由高到低的顺序加入第二消息队列中。

15.根据权利要求13所述的数据传输装置,其特征在于,所述消息队列确定模块还用于,在所述第一消息队列中的待发送的所述MQTT协议消息数据的优先级相同时,按照接收所述MQTT协议消息数据的时间先后顺序加入所述第一消息队列中。

16.根据权利要求14所述的数据传输装置,其特征在于,所述消息队列确定模块还用于,在所述第二消息队列中的待发送的所述MQTT协议消息数据的优先级相同时,按照接收所述MQTT协议消息数据的时间先后顺序加入所述第二消息队列中。

17.根据权利要求13所述的数据传输装置,其特征在于,还包括:

第二获取模块,用于在确定所述电力通信装置的通信通道处于空闲状态时,获取上一次所述通信通道传输的数据类型,并在上一次所述通信通道传输的数据类型为所述第一数据类型时,获取所述第二消息队列中的所述MQTT协议消息数据,以及在确定成功获取到所述第二消息队列中的所述MQTT协议消息数据时,将该MQTT协议消息数据发送至所述电力通信装置。

18.根据权利要求17所述的数据传输装置,其特征在于,所述第二获取模块还用于,在确定未成功获取所述第二消息队列中的所述MQTT协议消息数据,或者所述第二消息队列中为空时,获取所述第一消息队列中的所述MQTT协议消息数据,并发送至所述电力通信装置。

19.根据权利要求11‑18中任一项所述的数据传输装置,其特征在于,还包括:第二接收模块,用于接收所述电力通信装置的应答报文,并在确定接收到所述电力通信装置的应答报文时,根据所述数据类型和业务采集应用程序的标识将所述应答报文发送至对应的业务采集应用程序。

20.根据权利要求19所述的数据传输装置,其特征在于,所述第二接收模块,还用于在预设时间内未接收到所述电力通信装置的应答报文时,将所述数据类型、业务采集应用程序的标识和超时信息发送至对应的业务采集应用程序。

21.一种计算机可读存储介质,其特征在于,其上存储有数据传输程序,该数据传输程序被处理器执行时实现根据权利要求1‑10中任一项所述的数据传输方法。

22.一种融合终端,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的数据传输程序,所述处理器执行所述数据传输程序时,实现根据权利要求1‑10中任一项所述的数据传输方法。

说明书 :

数据传输方法和装置、计算机可读存储介质、融合终端

技术领域

[0001] 本发明涉及数据传输技术领域,尤其涉及一种数据传输方法、一种数据传输装置、一种计算机可读存储介质和一种融合终端。

背景技术

[0002] 为了更好地实现用电采集、配电自动化等业务系统和采集终端的互联、互通,满足电能信息采集、台区智能监控、源网荷储协同等业务需要,并且为建设新型电力系统服务,一种新型融合终端应运而生。HPLC(High Power Line Carrier,低压电力线高速载波通道)作为新型融合终端的最主要通信端口,其如何满足各种业务功能的通信需求是当前亟需考虑的问题。

发明内容

[0003] 本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明的第一个目的在于提出一种数据传输方法,根据多个业务采集应用程序发送的MQTT协议消息数据的数据类型,将不同的数据类型放在对应的消息队列中,然后按照一定的规则将消息队列中的数据发送至电力通信装置,这样可以同时支持两种数据类型的MQTT协议消息数据,满足不同业务通信要求。
[0004] 本发明的第二个目的在于提出一种数据传输装置。
[0005] 本发明的第三个目的在于提出一种计算机可读存储介质。
[0006] 本发明的第四个目的在于提出一种融合终端。
[0007] 为达到上述目的,本发明第一方面实施例提出了一种数据传输方法,包括:接收多个MQTT协议消息数据,其中,多个MQTT协议消息数据由多个业务采集应用程序发送;依次获取多个MQTT协议消息数据的数据类型,其中,数据类型包括第一数据类型和第二数据类型;将数据类型为第一数据类型的MQTT协议消息数据加入到待发送的第一消息队列中,将数据类型为第二数据类型的MQTT协议消息数据加入到待发送的第二消息队列中;按照预设规则将第一消息队列和第二消息队列中的MQTT协议消息数据发送至电力通信装置。
[0008] 根据本发明实施例的数据传输方法,首先接收多个MQTT协议消息数据,其中,多个MQTT协议消息数据由多个业务采集应用程序发送,然后依次获取多个MQTT协议消息数据的数据类型,将数据类型为第一数据类型的将MQTT协议消息数据加入到待发送的第一消息队列中,将数据类型为第二数据类型的MQTT协议消息数据加入到待发送的第二消息队列中,最后按照预设规则将第一消息队列和第二消息队列中的MQTT协议消息数据发送至电力通信装置。由此,该方法根据多个业务采集应用程序发送的MQTT协议消息数据的数据类型,将不同的数据类型放在对应的消息队列中,然后按照一定的规则将消息队列中的数据发送至电力通信装置,这样可以同时支持两种数据类型的MQTT协议消息数据,满足不同业务通信要求。
[0009] 另外,根据本发明上述实施例的数据传输方法还可以具有如下的附加技术特征:
[0010] 根据本发明的一个实施例,按照预设规则将第一消息队列和第二消息队列中的MQTT协议消息数据发送至电力通信装置,包括:将第一消息队列和第二消息队列中的MQTT协议消息数据交替发送至电力通信装置;或者将第二消息队列和第一消息队列中的MQTT协议消息数据交替发送至电力通信装置。
[0011] 根据本发明的一个实施例,在将MQTT协议消息数据加入到待发送的第一消息队列中之后,方法还包括:分别获取第一消息队列中待发送的MQTT协议消息数据的优先级;将待发送的MQTT协议消息数据按照优先级由高到低的顺序加入第一消息队列中。
[0012] 根据本发明的一个实施例,在将MQTT协议消息数据加入到待发送的第二消息队列中之后,方法还包括:分别获取第二消息队列中的待发送的MQTT协议消息数据的优先级;将待发送的MQTT协议消息数据按照优先级由高到低的顺序加入第二消息队列中。
[0013] 根据本发明的一个实施例,在第一消息队列中的待发送的MQTT协议消息数据的优先级相同时,按照接收MQTT协议消息数据的时间先后顺序加入第一消息队列中。
[0014] 根据本发明的一个实施例,在第二消息队列中的待发送的MQTT协议消息数据的优先级相同时,按照接收MQTT协议消息数据的时间先后顺序加入第二消息队列中。
[0015] 根据本发明的一个实施例,在将第一消息队列和第二消息队列中的MQTT协议消息数据发送至电力通信装置之前,方法还包括:确定电力通信装置的通信通道处于空闲状态时,获取上一次通信通道传输的数据类型;在上一次通信通道传输的数据类型为第一数据类型时,获取第二消息队列中的MQTT协议消息数据;在确定成功获取到第二消息队列中的MQTT协议消息数据时,将该MQTT协议消息数据发送至电力通信装置。
[0016] 根据本发明的一个实施例,在确定未成功获取第二消息队列中的MQTT协议消息数据,或者第二消息队列中为空时,获取第一消息队列中的MQTT协议消息数据,并发送至电力通信装置。
[0017] 根据本发明的一个实施例,数据传输方法还包括:接收电力通信装置的应答报文;在确定接收到电力通信装置的应答报文时,根据数据类型和业务采集应用程序的标识将应答报文发送至对应的业务采集应用程序。
[0018] 根据本发明的一个实施例,数据传输方法还包括:在预设时间内未接收到电力通信装置的应答报文时,将数据类型、业务采集应用程序的标识和超时信息发送至对应的业务采集应用程序。
[0019] 根据本发明的一个实施例,第一数据类型为A‑XDR格式,第二数据类型为JSON格式。
[0020] 为达到上述目的,本发明第二方面实施例提出了一种数据传输装置,包括:第一接收模块,用于接收多个MQTT协议消息数据,其中,多个MQTT协议消息数据由多个业务采集应用程序发送;第一获取模块,用于依次获取多个MQTT协议消息数据的数据类型,其中,数据类型包括第一数据类型和第二数据类型;消息队列确定模块,用于将数据类型为第一数据类型的MQTT协议消息数据加入到待发送的第一消息队列中,将数据类型为第二数据类型的MQTT协议消息数据加入到待发送的第二消息队列中;数据发送模块,用于按照预设规则将第一消息队列和第二消息队列中的MQTT协议消息数据发送至电力通信装置。
[0021] 根据本发明实施例的数据传输装置,第一接收模块接收多个MQTT协议消息数据,第一获取模块依次获取多个MQTT协议消息数据的数据类型,消息队列确定模块将数据类型为第一数据类型的MQTT协议消息数据加入到待发送的第一消息队列中,将数据类型为第二数据类型的MQTT协议消息数据加入到待发送的第二消息队列中,数据发送模块按照预设规则将第一消息队列和第二消息队列中的MQTT协议消息数据发送至电力通信装置。由此,该装置根据多个业务采集应用程序发送的MQTT协议消息数据的数据类型,将不同的数据类型放在对应的消息队列中,然后按照一定的规则将消息队列中的数据发送至电力通信装置,这样可以同时支持两种数据类型的MQTT协议消息数据,满足不同业务通信要求。
[0022] 另外,根据本发明上述实施例的数据传输装置还可以具有如下的附加技术特征:
[0023] 根据本发明的一个实施例,数据发送模块按照预设规则将第一消息队列和第二消息队列中的MQTT协议消息数据发送至电力通信装置,具体用于:将第一消息队列和第二消息队列中的MQTT协议消息数据交替发送至电力通信装置;或者将第二消息队列和第一消息队列中的MQTT协议消息数据交替发送至电力通信装置。
[0024] 根据本发明的一个实施例,消息队列确定模块在将MQTT协议消息数据加入到待发送的第一消息队列中之后,还用于:分别获取第一消息队列中待发送的MQTT协议消息数据的优先级;将待发送的MQTT协议消息数据按照优先级由高到低的顺序加入第一消息队列中。
[0025] 根据本发明的一个实施例,消息队列确定模块在将MQTT协议消息数据加入到待发送的第二消息队列中之后,还用于:分别获取第二消息队列中的待发送的MQTT协议消息数据的优先级;将待发送的MQTT协议消息数据按照优先级由高到低的顺序加入第二消息队列中。
[0026] 根据本发明的一个实施例,消息队列确定模块还用于,在第一消息队列中的待发送的MQTT协议消息数据的优先级相同时,按照接收MQTT协议消息数据的时间先后顺序加入第一消息队列中。
[0027] 根据本发明的一个实施例,消息队列确定模块还用于,在第二消息队列中的待发送的MQTT协议消息数据的优先级相同时,按照接收MQTT协议消息数据的时间先后顺序加入第二消息队列中。
[0028] 根据本发明的一个实施例,上述数据传输装置还包括:第二获取模块,用于在确定电力通信装置的通信通道处于空闲状态时,获取上一次通信通道传输的数据类型,并在上一次通信通道传输的数据类型为第一数据类型时,获取第二消息队列中的MQTT协议消息数据,以及在确定成功获取到第二消息队列中的MQTT协议消息数据时,将该MQTT协议消息数据发送至电力通信装置。
[0029] 根据本发明的一个实施例,第二获取模块还用于,在确定未成功获取第二消息队列中的MQTT协议消息数据,或者第二消息队列中为空时,获取第一消息队列中的MQTT协议消息数据,并发送至电力通信装置。
[0030] 根据本发明的一个实施例,上述数据传输装置还包括:第二接收模块,用于接收电力通信装置的应答报文,并在确定接收到电力通信装置的应答报文时,根据数据类型和业务采集应用程序的标识将应答报文发送至对应的业务采集应用程序。
[0031] 根据本发明的一个实施例,第二接收模块还用于:在预设时间内未接收到电力通信装置的应答报文时,将数据类型、业务采集应用程序的标识和超时信息发送至对应的业务采集应用程序。
[0032] 根据本发明的一个实施例,第一数据类型为A‑XDR格式,第二数据类型为JSON格式。
[0033] 为达到上述目的,本发明第三方面实施例提出一种计算机可读存储介质,其上存储有数据传输程序,该数据传输程序被处理器执行时实现上述的数据传输方法。
[0034] 本发明实施例的计算机可读存储介质,通过执行上述的数据传输方法,能够同时支持两种数据类型的MQTT协议消息数据,满足不同业务通信要求。
[0035] 为达到上述目的,本发明第四方面实施例提出了一种融合终端,包括:存储器、处理器及存储在存储器上并可在处理器上运行的数据传输程序,处理器执行数据传输程序时,实现上述的数据传输方法。
[0036] 根据本发明实施例的融合终端,通过执行上述的数据传输方法,能够同时支持两种数据类型的MQTT协议消息数据,满足不同业务通信要求。
[0037] 本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

[0038] 图1为根据本发明实施例的数据传输方法的流程图;
[0039] 图2为根据本发明实施例的数据传输方法的整体架构框图;
[0040] 图3为根据本发明一个实施例的数据传输方法的流程图;
[0041] 图4为根据本发明另一个实施例的数据传输方法的流程图;
[0042] 图5为根据本发明实施例的数据传输装置的方框示意图;
[0043] 图6为根据本发明实施例的融合终端的方框示意图。

具体实施方式

[0044] 下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
[0045] 下面参考附图描述本发明实施例提出的数据传输方法、数据传输装置、计算机可读存储介质和融合终端。
[0046] 现有的集中器、台区智能融合终端、能源控制器都只采用单一格式的MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)协议总线来实现报文的传输,低压电力线高速载波通道作为新型融合终端的主要通信端口,单一的数据传输格式无法满足各种业务功能的通信需求。为此,本发明提出了一种数据传输方法,采用两种不同的MQTT消息通信格式,即营销业务类应用程序采用A‑XDR(Abstract eXternal Data Representation)格式,配电业务类应用程序采用JSON(JavaScript Object Notation)格式。
[0047] 图1为根据本发明实施例数据传输方法的流程图。
[0048] 如图1所示,本发明实施例的数据传输方法可包括以下步骤:
[0049] S1,接收多个MQTT协议消息数据,其中,多个MQTT协议消息数据由多个业务采集应用程序发送。
[0050] S2,依次获取多个MQTT协议消息数据的数据类型,其中,数据类型包括第一数据类型和第二数据类型。也就是说,不同的业务采集应用程序发送的数据类型不同,有的业务采集应用程序发送第一数据类型,有的业务采集应用程序发送第二数据类型。
[0051] S3,将数据类型为第一数据类型的MQTT协议消息数据加入到待发送的第一消息队列中,将数据类型为第二数据类型的MQTT协议消息数据加入到待发送的第二消息队列中。
[0052] 也就是说,分别判断多个业务采集应用程序发送的MQTT协议消息数据的数据类型,当MQTT协议消息数据的数据类型为第一数据类型时,将该MQTT协议消息数据加入到待发送的第一消息队列中;当MQTT协议消息数据的数据类型为第二数据类型时,将该MQTT协议消息数据加入到待发送的第二消息队列中。
[0053] S4,按照预设规则将第一消息队列和第二消息队列中的MQTT协议消息数据发送至电力通信装置。
[0054] 根据本发明的一个实施例,第一数据类型为A‑XDR格式,第二数据类型为JSON格式。其中,营销业务类应用程序可采用A‑XDR格式,配电业务类应用程序可采用JSON格式。
[0055] 具体而言,结合图2所示,本发明的数据传输方法集成在本地通信管理应用程序中。数据中心应用程序与各业务采集应用程序与本地通信管理应用程序之间采用MQTT通信协议,MQTT协议消息数据的数据类型包括第一数据类型和第二数据类型。在进行数据传输过程中,如果涉及到二进制数据传输,则采用标准Base64编解码方式传输。本地通信管理应用程序作为电力通信装置的通信通道的管理,与电力通信装置之间可采用串行通信接口如USB接口进行通信,采用GW1376.2协议进行数据交互,全权负责各业务采集应用程序访问HPLC网络。
[0056] 多个业务采集应用程序将采集到的信息经MQTT协议发送至本地通信管理应用程序,并由本地通信管理应用程序接收多个MQTT协议消息数据,其中,业务采集应用程序可通过定时自动采集信息或者由用户操作主动采集信息,本地通信管理应用程序同时支持A‑XDR和JSON两种报文格式,满足营销和配电业务与电力通信装置间的通信。
[0057] 本地通信管理应用程序根据MQTT协议消息数据的数据类型不同对数据进行划分,在确定当前MQTT协议消息数据为第一数据类型时,将该MQTT协议消息数据加入到待发送的第一消息队列中,在确定当前MQTT协议消息数据为第二数据类型时,将该MQTT协议消息数据加入到待发送的第二消息队列中。当第一消息队列和第二消息队列中存有相应的MQTT协议消息数据后,本地通信管理应用程序按照预设规则将第一消息队列和第二消息队列中的MQTT协议消息数据发送至电力通信装置。其中,预设规则可以为按照定时交替发送的方式,也可以为按发送消息的个数交替发送的方式,具体可根据实际需求设定。
[0058] 需要说明的是,图2仅作为本发明的一个实施例,电力通信装置与智能电表、智能开关、智能电容器等器件进行通信连接时,可以是HPLC作为通信端口,也可以是无线通信作为通信端口,这里不做限制。
[0059] 由此,本发明实施例的数据传输方法能够同时支持两种数据类型的MQTT协议消息数据,满足不同业务通信要求。
[0060] 下面详细描述本发明的数据传输方法的具体工作流程。
[0061] 根据本发明的一个实施例,按照预设规则将第一消息队列和第二消息队列中的MQTT协议消息数据发送至电力通信装置,包括:将第一消息队列和第二消息队列中的MQTT协议消息数据交替发送至电力通信装置;或者将第二消息队列和第一消息队列中的MQTT协议消息数据交替发送至电力通信装置。
[0062] 具体而言,当本地通信管理应用程序将第一消息队列和第二消息队列中的MQTT协议消息数据发送至电力通信装置时,为了保证MQTT协议消息数据的公平传输,两种MQTT协议消息数据之间没有优先级的划分,会依次提取第一消息队列和第二消息队列中的内容,不会连续获取同一种消息格式的队列内容。也就是说,可以先将第一消息队列中的其中一条消息数据发送至电力通信装置,然后再将第二消息队列中的其中一条消息数据发送至电力通信装置;也可以先将第二消息队列中的其中一条消息数据发送至电力通信装置,然后再将第一消息队列中的其中一条消息数据发送至电力通信装置。
[0063] 举例而言,第一消息队列中包含A、B两条消息数据,第二消息队列中包含C、D两条消息数据,本地通信管理应用程序可先将第一消息队列中的待发送的消息数据A发送至电力通信装置,在数据消息A发送完成后,再将第二消息队列中待发送的消息数据C发送至电力通信装置。在消息数据C发送完成后,再将第一消息队列中的消息数据B发送至电力通信装置,在消息数据B发送完成后,再将第二消息队列中待发送的消息数据D发送至电力通信装置,由此将消息队列中的MQTT协议消息数据交替发送,保证了消息数据传输的公平性。
[0064] 在本发明的一个实施例中,也可以按照设定时间交替发送第一消息队列和第二消息队列中的待发送消息数据,也可以多个数据交替发送的方式,即先发送第一消息队列中的两个消息数据,然后再发送第二消息队列中的两个消息数据,具体这里不做限制。
[0065] 根据本发明的一个实施例,在将第一数据类型的MQTT协议消息数据加入到待发送的第一消息队列中之后,方法还包括:分别获取第一消息队列中的待发送的MQTT协议消息数据的优先级;将待发送的MQTT协议消息数据按照优先级由高到低的顺序加入第一消息队列中。
[0066] 根据本发明的一个实施例,在第一消息队列中的待发送的MQTT协议消息数据的优先级相同时,按照接收MQTT协议消息数据的时间先后顺序加入第一消息队列中。
[0067] 具体而言,虽然两种MQTT协议消息数据之间没有优先级的划分,但是同一个数据类型的协议消息数据之间存在优先级。本地通信管理应用程序根据接收到业务采集应用程序的MQTT协议消息数据格式的不同,将第一数据类型(A‑XDR格式)的MQTT协议消息数据加入到待发送的第一消息队列中。第一消息队列支持高优先级插队机制,也就是说本地通信管理应用程序首先获取待发送的MQTT协议消息数据的优先级,并根据优先级高低顺序,逐一加入到待发送给电力通信装置的第一消息队列中,在将第一消息队列中的消息数据发送至电力通信装置时,按照优先级顺序依次发送。当MQTT协议消息数据的优先级相同时,则可按照本地通信管理应用程序接收到MQTT协议消息数据的时间先后顺序,逐一加入到待发送给电力通信装置的第一消息队列中。
[0068] 根据本发明的一个实施例,在将第二数据类型的MQTT协议消息数据加入到待发送的第二消息队列中之后,方法还包括:分别获取第二消息队列中的待发送的MQTT协议消息数据的优先级;将待发送的MQTT协议消息数据按照优先级由高到低的顺序加入第二消息队列中。
[0069] 根据本发明的一个实施例,在第二消息队列中的待发送的MQTT协议消息数据的优先级相同时,按照接收MQTT协议消息数据的时间先后顺序加入第二消息队列中。
[0070] 具体而言,本地通信管理应用程序根据接收到业务采集应用程序的MQTT协议消息数据格式的不同,将第二数据类型(JSON格式)的MQTT协议消息数据加入到待发送的第二消息队列中。第二消息队列支持高优先级插队机制,也就是说本地通信管理应用程序首先获取待发送的MQTT协议消息数据的优先级,并根据优先级高低顺序,逐一加入到待发送给电力通信装置的第二消息队列中,在将第二消息队列中的消息数据发送至电力通信装置时,按照优先级顺序依次发送。当MQTT协议消息数据的优先级相同时,则可按照本地通信管理应用程序接收到MQTT协议消息数据的时间先后顺序,逐一加入到待发送给电力通信装置的第二消息队列中。
[0071] 作为一个具体示例,如图3所示,数据传输方法可包括以下步骤:
[0072] S301,各业务采集应用程序发送MQTT协议消息数据。
[0073] S302,判断本地通信管理应用程序是否接收到MQTT协议消息数据。如果是,执行步骤S303;如果否,执行步骤S302。
[0074] S303,判断MQTT协议消息数据类型是否是A‑XDR格式。如果是,执行步骤S304;如果否,执行步骤S305。
[0075] S304,判断MQTT协议消息数据的优先级是否不同。如果是,执行步骤S307;如果否,执行步骤S306。
[0076] S305,判断MQTT协议消息数据类型是否是JSON格式。如果是,执行步骤S308;如果否,执行步骤S302。
[0077] S306,按照接收MQTT协议消息数据的时间先后顺序加入第一消息队列中。
[0078] S307,按照MQTT协议消息数据优先级顺序加入第一消息队列。
[0079] S308,判断MQTT协议消息数据的优先级是否不同。如果是,执行步骤S309;如果否,执行步骤S310。
[0080] S309,按照MQTT协议消息数据优先级顺序加入第二消息队列。
[0081] S310,按照接收MQTT协议消息数据的时间先后顺序加入第二消息队列中。
[0082] 根据本发明的一个实施例,在将第一消息队列和第二消息队列中的MQTT协议消息数据发送至电力通信装置之前,方法还包括:确定电力通信装置的通信通道处于空闲状态时,获取上一次通信通道传输的数据类型;在上一次通信通道传输的数据类型为第一数据类型时,获取第二消息队列中的MQTT协议消息数据;在确定成功获取到第二消息队列中的MQTT协议消息数据时,将该MQTT协议消息数据发送至电力通信装置。
[0083] 根据本发明的一个实施例,在确定未成功获取第二消息队列中的MQTT协议消息数据,或者第二消息队列中为空时,获取第一消息队列中的MQTT协议消息数据,并发送至电力通信装置。
[0084] 具体而言,在第一消息队列和第二消息队列中的MQTT协议消息数据按照数据优先级或者接收消息数据的时间先后顺序排序完成后,本地通信管理应用程序将MQTT协议消息数据发送至电力通信装置。由于仅有一个通信通道,在MQTT协议消息数据发送之前需要先确定电力通信装置的通信通道是否处于空闲状态。如果通信通道不处于空闲状态,则说明当前有消息传送,本地通信管理应用程序继续查询通信通道的状态并等待;如果通信通道处于空闲状态,本地通信管理应用程序可以将待发送的MQTT协议消息数据发送至电力通信装置。先获取上一次通信通道传输的数据类型,如果上一次通信通道传输的数据类型为第一数据类型(A‑XDR格式),则说明上一次通信通道获取的是第一消息队列中的MQTT协议消息数据,根据交替获取第一消息队列和第二消息队列的消息数据原则,本次优先获取第二消息队列中的MQTT协议消息数据。如果成功获取到第二消息队列中的MQTT协议消息数据,本地通信管理应用程序将该MQTT协议消息数据发送至电力通信装置;如果未成功获取,本地通信管理应用程序则获取第一消息队列中的MQTT协议消息数据并发送至电力通信装置。另外,如果第二消息队列中MQTT协议消息数据为空,则说明MQTT协议消息数据已经全部发送或者第二消息队列中未存入JSON格式的消息数据,本地通信管理应用程序获取第一消息队列中的MQTT协议消息数据并发送至电力通信装置。不管第二消息队列中的MQTT协议消息数据是否为空,在下一次发送第一消息队列的MQTT协议消息数据之后,依旧遵循交替发送原则,再次获取第二消息队列中的MQTT协议消息数据。
[0085] 如果上一次通信通道传输的数据类型为第二数据类型(JSON格式),则本次优先获取第一消息队列中的MQTT协议消息数据。当本地通信管理应用程序成功获取到第一消息队列中的MQTT协议消息数据时,将该MQTT协议消息数据发送至电力通信装置;当本地通信管理应用程序未成功获取第一消息队列中的MQTT协议消息数据,或者第一消息队列中为空时,获取第二消息队列中的MQTT协议消息数据并发送至电力通信装置。
[0086] 根据本发明的一个实施例,数据传输方法还包括:接收电力通信装置的应答报文;在确定接收到电力通信装置的应答报文时,根据数据类型和业务采集应用程序的标识将应答报文发送至对应的业务采集应用程序。
[0087] 根据本发明的一个实施例,数据传输方法还包括:在预设时间内未接收到电力通信装置的应答报文时,将数据类型、业务采集应用程序的标识和超时信息发送至对应的业务采集应用程序。其中,预设时间可根据实际情况而定。
[0088] 具体而言,在本地管理应用程序成功获取第一消息队列或者第二消息队列MQTT协议消息数据时,则将该消息内容提取并转换成GW1376.2协议报文发送至电力通信装置,并记录该数据类型(A‑XDR格式或JSON格式,为下一次获取消息提供依据)和采集业务应用程序的标识(例如,采集业务应用程序的名称)并启动监控消息超时的定时器。本地管理应用程序在监控定时器设定的时间内等待电力通信装置的响应,接收电力通信装置的应答报文。如果在预设时间内(如10s),本地管理应用程序成功接收到电力通信装置发送的应答报文,则将该答应报文根据数据类型转换成对应格式的MQTT协议,并根据业务采集应用程序的标识将应答报文发送至对应的业务采集应用程序。如果在预设时间内,本地管理应用程序未成功接收到电力通信装置发送的应答报文,则根据数据类型将超时消息的报文转换成对应格式的MQTT协议并根据业务采集应用程序的标识发送至对应的业务采集应用程序。
[0089] 作为一个具体示例,如图4所示,数据传输方法可包括以下步骤:
[0090] S401,本地管理应用程序将MQTT协议消息数据发送至电力通信装置。
[0091] S402,判断电力通信装置的通信通道是否处于空闲状态。如果是,执行步骤S403;如果否,执行步骤S402。
[0092] S403,获取上次发送电力通信装置的数据类型:比如JSON类型。
[0093] S404,判断是否优先获取到数据类型为A‑XDR格式的消息。如果是,执行步骤S406;如果否,执行步骤S405。
[0094] S405,判断是否再次获取到数据类型为JSON格式的消息。如果是,执行步骤S406;如果否,执行步骤S407。
[0095] S406,记录该数据类型,给下次获取MQTT协议消息数据提供依据。
[0096] S407,休眠片刻。
[0097] S408,本地管理应用程序给电力通信装置发送相关报文,等待应答报文。
[0098] S409,启动监控定时器。
[0099] S410,判断本地管理应用程序是否接收到应答报文。如果是,执行步骤S411;如果否,执行步骤S412。
[0100] S411,根据数据类型和业务采集应用程序的标识将应答报文发送至对应的业务采集应用程序。
[0101] S412,判断监控定时器是否达到预设时间。如果是,执行步骤S413;如果否,执行步骤S410。
[0102] S413,将数据类型、业务采集应用程序的标识和超时信息发送至对应的业务采集应用程序。
[0103] 综上所述,根据本发明实施例的数据传输方法,首先接收多个MQTT协议消息数据,其中,多个MQTT协议消息数据由多个业务采集应用程序发送,然后依次获取多个MQTT协议消息数据的数据类型,将数据类型为第一数据类型的MQTT协议消息数据加入到待发送的第一消息队列中,将数据类型为第二数据类型的MQTT协议消息数据加入到待发送的第二消息队列中,最后按照预设规则将第一消息队列和第二消息队列中的MQTT协议消息数据发送至电力通信装置。由此,该方法根据多个业务采集应用程序发送的MQTT协议消息数据的数据类型,将不同的数据类型放在对应的消息队列中,然后按照一定的规则将消息队列中的数据发送至电力通信装置,这样可以同时支持两种数据类型的MQTT协议消息数据,满足不同业务通信要求。
[0104] 对应上述实施例,本发明还提出了一种数据传输装置。
[0105] 如图5所示,本发明实施例的数据传输装置100包括:第一接收模块110、第一获取模块120、消息队列确定模块130和数据发送模块140。
[0106] 其中,第一接收模块110用于接收多个MQTT协议消息数据,其中,多个MQTT协议消息数据由多个业务采集应用程序发送。第一获取模块120用于依次获取多个MQTT协议消息数据的数据类型,其中,数据类型包括第一数据类型和第二数据类型。消息队列确定模块130用于将数据类型为第一数据类型的MQTT协议消息数据加入到待发送的第一消息队列中,将数据类型为第二数据类型的MQTT协议消息数据加入到待发送的第二消息队列中。数据发送模块140用于按照预设规则将第一消息队列和第二消息队列中的MQTT协议消息数据发送至电力通信装置。
[0107] 根据本发明的一个实施例,数据发送模块140按照预设规则将第一消息队列和第二消息队列中的MQTT协议消息数据发送至电力通信装置,具体用于:将第一消息队列和第二消息队列中的MQTT协议消息数据交替发送至电力通信装置;或者将第二消息队列和第一消息队列中的MQTT协议消息数据交替发送至电力通信装置。
[0108] 根据本发明的一个实施例,消息队列确定模块130在将MQTT协议消息数据加入到待发送的第一消息队列中之后,还用于:分别获取第一消息队列中的待发送的MQTT协议消息数据的优先级;将待发送的MQTT协议消息数据按照优先级由高到低的顺序加入第一消息队列中。
[0109] 根据本发明的一个实施例,消息队列确定模块130在将MQTT协议消息数据加入到待发送的第二消息队列中之后,还用于:分别获取第二消息队列中的待发送的MQTT协议消息数据的优先级;将待发送的MQTT协议消息数据按照优先级由高到低的顺序加入第二消息队列中。
[0110] 根据本发明的一个实施例,消息队列确定模块130还用于,在第一消息队列中的待发送的MQTT协议消息数据的优先级相同时,按照接收MQTT协议消息数据的时间先后顺序加入第一消息队列中。
[0111] 根据本发明的一个实施例,消息队列确定模块130还用于,在第二消息队列中的待发送的MQTT协议消息数据的优先级相同时,按照接收MQTT协议消息数据的时间先后顺序加入第二消息队列中。
[0112] 根据本发明的一个实施例,数据传输装置100还包括:第二获取模块,用于在确定电力通信装置的通信通道处于空闲状态时,获取上一次通信通道传输的数据类型,并在上一次通信通道传输的数据类型为第一数据类型时,获取第二消息队列中的MQTT协议消息数据,以及在确定成功获取到第二消息队列中的MQTT协议消息数据时,将该MQTT协议消息数据发送至电力通信装置。
[0113] 根据本发明的一个实施例,第二获取模块还用于,在确定未成功获取第二消息队列中的MQTT协议消息数据,或者第二消息队列中为空时,获取第一消息队列中的MQTT协议消息数据,并发送至电力通信装置。
[0114] 根据本发明的一个实施例,数据传输装置100还包括:第二接收模块,用于接收电力通信装置的应答报文,并在确定接收到电力通信装置的应答报文时,根据数据类型和业务采集应用程序的标识将应答报文发送至对应的业务采集应用程序。
[0115] 根据本发明的一个实施例,第二接收模块还用于:在预设时间内未接收到电力通信装置的应答报文时,将数据类型、业务采集应用程序的标识和超时信息发送至对应的业务采集应用程序。
[0116] 根据本发明的一个实施例,第一数据类型为A‑XDR格式,第二数据类型为JSON格式。
[0117] 需要说明的是,本发明实施例的数据传输装置中未披露的细节,请参照本发明实施例的数据传输方法中所披露的细节,具体这里不再赘述。
[0118] 根据本发明实施例的数据传输装置,第一接收模块接收多个MQTT协议消息数据,第一获取模块依次获取多个MQTT协议消息数据的数据类型,消息队列确定模块将数据类型为第一数据类型的MQTT协议消息数据加入到待发送的第一消息队列中,将数据类型为第二数据类型的MQTT协议消息数据加入到待发送的第二消息队列中,数据发送模块按照预设规则将第一消息队列和第二消息队列中的MQTT协议消息数据发送至电力通信装置。由此,该装置根据多个业务采集应用程序发送的MQTT协议消息数据的数据类型,将不同的数据类型放在对应的消息队列中,然后按照一定的规则将消息队列中的数据发送至电力通信装置,这样可以同时支持两种数据类型的MQTT协议消息数据,满足不同业务通信要求。
[0119] 对应上述实施例,本发明还提出了一种计算机可读存储介质。
[0120] 本发明的计算机可读存储介质,其上存储有数据传输程序,该数据传输程序被处理器执行时实现上述的据传输方法。
[0121] 本发明实施例的计算机可读存储介质,通过执行上述的据传输方法,能够同时支持两种数据类型的MQTT协议消息数据,满足不同业务通信要求。
[0122] 对应上述实施例,本发明还提出了一种融合终端。
[0123] 如图6所示,本发明的融合终端200可包括:存储器210、处理器220以及存储在存储器210上并可在处理器220上运行的数据传输程序,处理器220执行数据传输程序时,实现上述的数据传输方法。
[0124] 本发明的融合终端,通过执行上述的数据传输方法,能够同时支持两种数据类型的MQTT协议消息数据,满足不同业务通信要求。
[0125] 需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
[0126] 应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
[0127] 在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0128] 此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0129] 在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
[0130] 尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。