一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据传输方法、装置及系统与流程

2021-11-10 03:46:00 来源:中国专利 TAG:


1.本公开涉及计算机通信领域,特别涉及一种数据传输方法、装置及系统。


背景技术:

2.在物联网领域中,管理节点可以实时将采集的数据发送至分析节点,分析节点在接收到管理节点发送的多个数据之后,可以对该多个数据进行分析。例如,分析节点接收到的数据为风机发电组的桨距角和该风机发电组的有功功率,则分析节点可以对接收到的多个有功功率和多个桨距角进行分析,以预测风机发电组在未来一段时间的发电功率。
3.但是,若管理节点检测到与分析节点的通信中断,则管理节点会将采集到的数据丢弃,该种数据传输方法会影响分析节点接收到的数据的完整性。


技术实现要素:

4.本公开实施例提供了一种数据传输方法、装置及系统,可以解决相关技术中管理节点检测到与分析节点的通信中断时,会将采集到的数据丢弃,从而影响分析节点接收到的数据的完整性的问题。所述技术方案如下:
5.一方面,提供了一种数据传输方法,应用于管理节点,所述方法包括:
6.若检测到与分析节点之间的通信中断,则存储实时采集到的数据;
7.若检测到与所述分析节点之间的通信恢复,与所述分析节点建立第一通道和第二通道;
8.从存储的数据中获取实时数据,并采用所述第一通道向所述分析节点发送所述实时数据;
9.从所述存储的数据中获取历史数据,并采用所述第二通道向所述分析节点发送所述历史数据;
10.其中,所述实时数据在所述管理节点中的存储时长小于时长阈值,所述历史数据在所述管理节点中的存储时长大于或等于时长阈值。
11.可选的,所述从存储的数据中获取实时数据,包括:
12.若第一目录中存在非空文件,从所述第一目录的文件中获取实时数据,所述第一目录用于存储在所述管理节点中的存储时长小于所述时长阈值的文件;
13.若所述第一目录中不存在非空文件,基于第一循环队列获取实时数据,所述第一循环队列用于存储实时采集的数据,并在处于队满状态时,将所述数据以文件形式存储至所述第一目录。
14.可选的,所述第一目录中存在多个文件;所述从所述第一目录中获取实时数据,包括:
15.基于第二循环队列从所述第一目录中的第一文件中获取实时数据,所述第一文件的存储时长大于所述第一目录中其他文件的存储时长,所述第二循环队列用于读取所述第一文件的数据。
16.可选的,所述从所述存储的数据中获取历史数据,包括:
17.若第二目录中存在非空文件,从所述第二目录的文件中获取历史数据,所述第二目录用于存储在所述管理节点的存储时长大于或等于所述时长阈值的文件。
18.可选的,所述第二目录中存在多个文件;所述从所述第二目录中获取历史数据,包括:
19.基于第三循环队列从所述第二文件中获取历史数据,所述第二文件的存储时长大于所述第二目录中其他文件的存储时长,所述第三循环队列用于读取所述第二文件中的数据。
20.可选的,对于所述管理节点中用于读取数据的循环队列,所述循环队列采用以下方式从对应的文件中读取数据:
21.将所述文件中的数据映射至内存块中;
22.按照所述数据映射至所述内存块的顺序,将所述内存块的内存地址依次存储至所述循环队列中;
23.基于所述循环队列的出队端的内存地址从所述内存块获取数据。
24.可选的,所述方法还包括:
25.若所述管理节点中用于读取数据的循环队列处于队空状态,则释放所述循环队列对应的内存块;
26.删除所述循环队列读取的文件。
27.另一方面,提供了一种管理节点,所述管理节点包括:
28.存储模块,若检测到与分析节点之间的通信中断,则存储实时采集到的数据;
29.建立模块,用于若检测到与所述分析节点之间的通信恢复,与所述分析节点建立第一通道和第二通道;
30.第一获取模块,用于从存储的数据中获取实时数据,并采用所述第一通道向所述分析节点发送所述实时数据;
31.第二获取模块,用于从所述存储的数据中获取历史数据,并采用所述第二通道向所述分析节点发送所述历史数据;
32.其中,所述实时数据在所述管理节点中的存储时长小于时长阈值,所述历史数据在所述管理节点中的存储时长大于或等于时长阈值。
33.再一方面,提供了一种数据传输系统,所述系统包括:上述方面所述的管理节点和接收所述管理节点传输的数据的分析节点。
34.又一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述方面所述的数据传输方法。
35.再一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条程序代码,所述程序代码由处理器加载并执行以实现如上述方面所述的数据传输方法。
36.本公开实施例提供的技术方案带来的有益效果至少包括:
37.本公开实施例提供了一种数据传输方法、装置及系统,该方法可以在检测到与分
析节点之间的通信中断之后,存储实时采集的数据。在检测到与分析节点之间的通信恢复之后,采用第一通道发送存储时长小于时长阈值的实时数据,并采用第二通道发送存储时长大于或等于时长阈值的历史数据。由于本公开实施例提供的方法在检测到与分析节点之间的通信中断之后并不会将实时采集到的数据丢失,因此并不会影响分析节点接收到的数据完整性。
38.并且,由于将存储的数据同时采用不同的通道向分析节点传输,因此提高了向分析节点传输数据的效率,确保了分析节点接收到的数据的实时性和连续性。
附图说明
39.为了更清楚地说明本公开实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
40.图1是本公开实施例提供的一种数据传输方法所涉及的数据传输系统的示意图;
41.图2是本公开实施例提供的一种数据传输方法的流程图;
42.图3是本公开实施例提供的另一种数据传输方法的流程图;
43.图4是本公开实施例提供的一种第一循环队列将数据以文件的形式进行存储的示意图;
44.图5是本公开实施例提供的一种获取实时数据的示意图;
45.图6是本公开实施例提供的一种获取历史数据的示意图;
46.图7是本公开实施例提供的一种管理节点的框图;
47.图8是本公开实施例提供的另一种管理节点的框图。
具体实施方式
48.为使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开实施方式作进一步地详细描述。
49.图1是本公开实施例提供的一种数据传输方法所涉及的数据传输系统的示意图。如图1所示,该数据传输系统可以包括:至少一个数据采集节点10、管理节点20和分析节点30。图1以该数据传输系统包括两个数据采集节点10为例。
50.其中,至少一个数据采集节点10与管理节点20之间,以及管理节点20和分析节点30之间均可以通过有线网络或无线网络建立连接。
51.该数据采集节点10可以是能够进行数据采集的设备,例如其可以为设置在风机发电组上的传感器。该数据采集节点10用于将实时采集的数据传输至管理节点20。
52.该管理节点20可以是用于供管理人员操作的终端。例如其为计算机。该管理节点20可以对至少一个数据采集节点10采集的数据进行统一管理,并在分析节点30需要进行数据分析时,将至少一个数据采集节点10采集到的数据发送至分析节点30。
53.该分析节点30可以是能够对数据进行分析的设备。例如其可以是一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心。该分析节点30用于对接收到的数据进行分析。例如,若分析节点30接收到的数据为风机发电组的桨距角和该风
机发电组的有功功率,则分析节点30可以对接收到的多个有功功率和多个桨距角进行分析,以预测风机发电组在未来一段时间的发电功率。
54.相关技术中,管理节点在检测到与分析节点的通信中断后,会将采集到的数据丢弃,该种数据传输方法会影响分析节点接收到的数据的完整性。而本公开实施例提供的数据传输方法中管理节点20在检测到与分析节点30之间的通信中断之后,可以存储实时采集的数据。并在检测到与分析节点30之间的通信恢复之后,管理节点20可以与分析节点30建立第一通道001和第二通道002。之后管理节点20可以将存储的数据同时采用该第一通道001和第二通道002向分析节点30传输。由于在检测到与分析节点30之间的通信中断后,管理节点20并不会将实时采集到的数据丢弃,因此并不会影响分析节点30最终接收到的数据完整性。且由于采用不同的通道传输存储的数据,因此提高了向分析节点传输数据的效率。
55.图2是本公开实施例提供的一种数据传输方法的流程图。该方法可以应用于图1所示的管理节点20。如图2所示,该方法可以包括:
56.步骤201、若检测到与分析节点之间的通信中断,则存储实时采集到的数据。
57.在本公开实施例中,管理节点可以周期性检测与分析节点之间的通信状态。若检测到与分析节点之间的通信中断,则可以存储实时采集到的数据。该实时采集到的数据为数据采集节点实时发送至管理节点的数据。
58.可选的,管理节点可以周期性向分析节点发送心跳包,若在目标时长内未接收到分析节点发送的心跳响应,则可以确定与分析节点之间的通信中断。若在目标时长内接收到分析节点发送的心跳响应,则可以确定与分析节点之间的通信未中断。其中,该目标时长可以为管理节点中预先存储的固定时长。
59.步骤202、若检测到与分析节点之间的通信恢复,与分析节点建立第一通道和第二通道。
60.管理节点在检测到与分析节点之间的通信中断之后,还可以周期性检测与分析节点之间的通信是否恢复。若检测到与分析节点之间的通信恢复,则可以与分析节点建立第一通道和第二通道。
61.可选的,管理节点在检测到与分析节点之间的通信中断之后,也可以周期性向分析节点发送心跳包。若在目标时长内接收到分析节点发送的心跳响应,则可以确定与分析节点之间的通信恢复。之后,管理节点可以向分析节点发送第一通道建立请求和第二通道建立请求,分析节点在接收到该第一通道建立请求和第二通道建立请求。之后,分析节点可以与管理节点建立第一通道和第二通道,由此实现管理节点与分析节点建立第一通道和第二通道。若在目标时长内未接收到分析节点发送的心跳响应,则可以确定与分析节点之间的通信未恢复。
62.步骤203、从存储的数据中获取实时数据,并采用第一通道向分析节点发送实时数据。
63.管理节点在与分析节点建立第一通道之后,可以从存储的数据中获取实时数据,并可以采用该第一通道向分析节点发送该实时数据。其中,该实时数据在管理节点中的存储时长小于时长阈值。该时长阈值可以为管理节点中预先存储的固定时长。可选的,该存储时长可以为从存储该数据开始计时所得到的时长。或者,该存储时长可以为从存储该数据开始到当前时刻的时长,该当前时刻可以为管理节点获取该数据的时刻。
64.步骤204、从存储的数据中获取历史数据,并采用第二通道向分析节点发送历史数据。
65.管理节点在与分析节点建立第二通道之后,还可以从存储的数据中获取历史数据,并可以采用该第二通道向分析节点发送该历史数据。其中,该历史数据在管理节点中的存储时长大于或等于时长阈值。
66.综上所述,本公开实施例提供了一种数据传输方法,该方法可以在检测到与分析节点之间的通信中断之后,存储实时采集的数据。在检测到与分析节点之间的通信恢复之后,采用第一通道发送存储时长小于时长阈值的实时数据,并采用第二通道发送存储时长大于或等于时长阈值的历史数据。由于本公开实施例提供的方法在检测到与分析节点之间的通信中断之后并不会将实时采集到的数据丢失,因此并不会影响分析节点接收到的数据完整性。
67.并且,由于将存储的数据同时采用不同的通道向分析节点传输,因此提高了向分析节点传输数据的效率,确保了分析节点接收到的数据的实时性和连续性。
68.图3是本公开实施例提供的另一种数据传输方法的流程图。该方法可以应用于图1所示的管理节点20和分析节点30中。下述实施例中以采用循环队列的方式进行数据的读写为例进行说明。每个循环队列具有入队端和出队端,入队端用于输入数据,出队端用于输出数据。入队端和出队端分别位于一个循环队列的两端。如图3所示,该方法可以包括:
69.步骤301、若检测到与分析节点之间的通信中断,则管理节点存储实时采集到的数据。
70.管理节点可以周期性检测与分析节点之间的通信状态。若检测到与分析节点之间的通信中断,则可以存储实时采集到的数据。该实时采集到的数据为数据采集节点实时发送至管理节点的数据。
71.可选的,管理节点可以周期性向分析节点发送心跳包,若在目标时长内未接收到分析节点发送的心跳响应,则可以确定与分析节点之间的通信中断。若在目标时长内接收到分析节点发送的心跳响应,则可以确定与分析节点之间的通信未中断。其中,该目标时长可以为管理节点中预先存储的固定时长。
72.在本公开实施例中,管理节点可以创建第一目录,该第一目录用于存储在管理节点中的存储时长小于时长阈值的文件。存储在该第一目录下的文件中的数据可以称为实时数据。
73.示例的,管理节点可以在接收到队列创建操作时创建第一循环队列。参考图4,第一循环队列用于存储实时采集的数据,并在处于队满状态时,将数据以文件的形式存储至管理节点的第一目录中。可选的,该队列创建操作可以为针对管理节点的启动操作。其中,在检测到与分析节点之间的通信中断后,管理节点通过第一循环队列将数据以文件的形式存储至第一目录中的过程可以包括以下步骤:
74.a1、管理节点将采集的数据对应的内存地址存储至第一循环队列。
75.管理节点在检测到与分析节点之间的通信中断后,对于实时采集到的每个数据,管理节点可以先为该数据申请动态内存(也称临时内存),并将该数据存储至该动态内存中。之后,管理节点可以检测该第一循环队列是否处于队满状态。若该第一循环队列未处于队满状态,则可以将该采集的数据对应的内存地址从第一循环队列的入队端存储至第一循
环队列。若循环队列处于队满状态,则暂停向第一循环队列中存入内存地址。
76.a2、若检测到该第一循环队列处于队满状态,则管理节点可以将第一循环队列存储的内存地址所对应的数据写入第一目录中的文件。
77.若检测到该第一循环队列处于队满状态,则管理节点可以按照第一顺序,依次从该第一循环队列的出队端获取该多个内存地址,并基于该多个内存地址获取多个数据。并可以按照该第一顺序,将该多个数据依次存储至第一目录的文件中。该第一顺序为多个内存地址存储至该第一循环队列的顺序。
78.其中,该第一目录中的文件可以为管理节点在需要进行数据存储时(也即是第一循环队列处于队满状态时),创建的文件;也可以是预先创建在第一目录中的空文件(即内容为空的文件)。
79.可选地,在管理节点完成将第一循环队列存储的内存地址所对应的数据写入第一目录中的文件之后,管理节点可以对该文件进行压缩处理。由此以降低文件对管理节点存储空间的占用量。
80.a3、管理节点可以清空该第一循环队列。
81.需要说明的是,管理节点可以重复执行前述步骤a1至a3,以持续通过第一循环队列将数据存储至文件中。
82.在本公开实施例中,通过采用第一循环队列将该多个数据整体迁移至文件中,提高了对多个数据移动的效率。
83.步骤302、若检测到与分析节点之间的通信恢复,管理节点与分析节点建立第一通道和第二通道。
84.管理节点在检测到与分析节点之间的通信中断之后,还可以周期性检测与分析节点之间的通信是否恢复。若检测到与分析节点之间的通信恢复,则可以与分析节点建立第一通道和第二通道。其中,第一通道用于与分析节点传输实时数据,第二通道用于与分析节点传输历史数据。
85.可选的,管理节点在检测到与分析节点之间的通信中断之后,也可以周期性向分析节点发送心跳包。若在目标时长内接收到分析节点的心跳响应,则可以确定与分析节点之间的通信恢复。进而管理节点可以向分析节点发送第一通道建立请求和第二通道建立请求。分析节点在接收到该第一通道建立请求和第二通道建立请求之后,可以与管理节点建立第一通道和第二通道,由此实现与分析节点建立第一通道和第二通道。若在目标时长内未接收到分析节点的心跳响应,则可以确定与分析节点之间的通信未恢复。
86.步骤303、管理节点获取实时数据。
87.如步骤301所述,管理节点采集的实时数据是在第一循环队列处于队满状态后,存储在第一目录的文件中的,因此,管理节点可以先检测第一目录中是否存在非空文件,若第一目录中存在非空文件,从第一目录的文件中获取实时数据;若第一目录中不存在非空文件,基于第一循环队列获取实时数据。该过程包括:
88.b1、检测第一目录中是否存在非空文件。
89.若步骤a2中,第一目录中的文件为管理节点在需要进行数据存储时才创建的文件,管理节点可以检测第一目录中的文件的个数是否等于0。若该第一目录中文件的个数不等于0,则管理节点可以确定该第一目录中存在非空文件。若该第一目录中的文件个数等于
0,则管理节点可以确定该第一目录不存在非空文件。
90.b2、管理节点在检测到第一目录中存在非空文件之后,可以从该第一目录的文件中获取实时数据。
91.第一目录中存在非空文件,说明第一目录中存在可以供读取的实时数据。管理节点可以通过第二循环队列将数据读出。示例的,管理节点在创建第一循环队列的同时,还可以创建第二循环队列,该第二循环队列的长度与该第一循环队列的长度相等。
92.示例的,管理节点在检测到第一目录中存在非空文件之后,可以检测该第一目录中文件的个数。参考图5,若检测到第一目录中存在一个文件,则管理节点可以基于第二循环队列从该文件中获取实时数据,该第二循环队列可以用于读取该文件中的数据。若该第一目录中存在多个文件,则管理节点可以基于该第二循环队列从第一目录中的第一文件中获取实时数据。其中,该第二循环队列可以用于读取该第一文件的数据,该第一文件的存储时长大于该第一目录中其他文件的存储时长。如此,可以从第一目录中获取存储时长较久的文件优先进行读取,减少数据读取工作对其他文件的影响。
93.在本公开实施例中,管理节点在第一目录中获取到文件之后,该第二循环队列采用以下方式从对应的文件中读取实时数据:
94.管理节点可以采用内存映射技术将该文件中的数据映射至第一内存块中。之后,管理节点可以按照第二顺序,将该第一内存块的内存地址依次存储至第二循环队列中。进而可以基于该第二循环队列的出队端的内存地址从该第一内存块中的获取实时数据。其中,该第二顺序为前述将该文件中的数据映射至第一内存块中的顺序,该第二顺序与上述步骤301中第一顺序相同。
95.由于管理节点可以将该第一目录中的文件中的数据直接映射至第一内存块中,并基于该第二循环队列中的内存地址从该第一内存块中获取实时数据,而无需对文件执行i/o操作(即对文件执行输入/输出操作)以获取实时数据,因此有效提高了实时数据获取的效率。
96.可选的,若在步骤301中,管理节点对位于第一目录中的文件进行了压缩处理,则管理节点在获取到第一目录中的文件之后,可以先对该文件进行解压处理,之后再采用第二循环队列从该文件中读取实时数据。
97.需要说明的是,管理节点每次基于第二循环队列的出队端的内存地址从第一内存块中获取实时数据之后,可以将该内存地址从第二循环队列的出队端删除。并将位于该内存地址之后且相邻的内存地址移动至第二循环队列的出队端,如此循环,直至第二循环队列中内存地址的个数为0,此时该第二循环队列处于队空状态,且该第二循环队列对应的第一内存块中的所有数据已经获取完成。则为了避免在第一内存块中的数据获取完成之后,该第一内存块仍占用管理节点的内存,管理节点在每次获取到实时数据之后,可以检测该第二循环队列是否处于队空状态。若该第二循环队列处于队空状态,则管理节点可以释放该第二循环队列对应的第一内存块,并可以删除或清空该第二循环队列读取的文件。由此有效减少管理节点中内存的占用,并减少管理节点中存储的数据量,进而确保管理节点的运行速度。
98.b3、管理节点在检测到第一目录中不存在非空文件之后,基于第一循环队列获取实时数据。
99.若第一目录中不存在非空文件包括以下两种情况:在一种情况下,参考b2,第一目录中原来存在非空文件,但第二循环队列已完成第一目录中的数据的读取,并删除或清空该第二循环队列读取的文件。在另一种情况下,参考a1,管理节点将采集的数据对应的内存地址存储至第一循环队列中,但第一循环队列还未处于队满状态,因此,第一目录中不存在非空文件。
100.在前述两种情况下,第一循环队列中均可能存储有实时数据对应的内存地址。则参考图5,管理节点可以基于第一循环队列获取实时数据。可选的,参考步骤a1,管理节点可以基于该第一循环队列的出队端的内存地址在动态内存中获取实时数据。
101.步骤304、管理节点采用第一通道向分析节点发送实时数据。
102.管理节点在获取到实时数据之后,可以采用第一通道向分析节点发送该实时数据。
103.步骤305、分析节点对获取的实时数据进行分析。
104.分析节点在接收到管理节点发送的实时数据之后,可以对获取的实时数据进行分析。通过分析实时数据,可以及时地了解数据采集节点所采集的数据的内容,从而实现对数据采集节点所监测对象的及时了解。例如,数据采集节点所监测对象为风机发电组,分析节点通过分析实时数据,可以迅速了解风机发电组的工作是否异常,和/或,对未来一段时间的发电功率进行预测。
105.步骤306、管理节点获取历史数据。
106.在本公开实施例中,管理节点可以创建第二目录,该第二目录用于存储在管理节点中的存储时长大于或等于时长阈值的文件。存储在该第二目录下的文件中的数据可以称为历史数据。其中,管理节点与分析节点之间的通信恢复之后,若第一目录中存在多个非空文件,则对于每个文件,管理节点可以周期性检测该文件的存储时长是否大于或等于时长阈值。若该文件的存储时长大于或等于时长阈值,则管理节点可以将该文件移动至第二目录中,由此使得该第一目录中存储的文件均小于时长阈值,且第二目录存储的文件的存储时长大于或等于时长阈值。
107.管理节点在获取历史数据的过程中,可以先检测第二目录中是否存在非空文件。若第二目录中存在非空文件,则管理节点可以从该第二目录的文件中获取历史数据。若第二目录中不存在非空文件,则管理节点可以继续存储实时采集到的数据。该过程包括:
108.c1、管理节点检测第二目录中是否存在非空文件。
109.示例的,管理节点可以检测第二目录中的文件的个数是否等于0。若第二目录中文件的个数不等于0,则可以确定该第二目录中存在非空文件。若该第二目录中的文件个数等于0,则可以确定该第二目录不存在非空文件。
110.c2、管理节点在检测到第二目录中存在非空文件之后,可以从该第二目录的文件中获取历史数据。
111.第二目录中存在非空文件,说明第二目录中存在可以供读取的历史数据。管理节点可以通过第三循环队列将数据读出。示例的,管理节点在创建第一循环队列的同时,还可以创建第三循环队列,该第三循环队列的长度与该第一循环队列的长度相等。
112.示例的,管理节点在检测到第二目录中存在非空文件之后,可以检测该第二目录中文件的个数。参考图6,若第二目录中存在一个文件,则管理节点可以基于第三循环队列
从该文件中获取历史数据,该第三循环队列可以用于读取该文件中的数据。若第二目录中存在多个文件,管理节点可以基于第三循环队列从第二文件中获取历史数据,其中,该第三循环队列可以用于读取第二文件中的数据,且该第二文件的存储时长大于第二目录中其他文件的存储时长。如此,可以从第二目录中获取存储时长较久的文件优先进行读取,减少数据读取工作对其他文件的影响。
113.在本公开实施例中,管理节点在第二目录中获取到文件之后,该第三循环队列采用以下方式从对应的文件中读取历史数据:
114.管理节点可以采用内存映射技术将该文件中的数据映射至第二内存块中。之后,管理节点可以按照第二顺序,将该第二内存块的内存地址依次存储至第三循环队列中。进而管理节点可以基于该第三循环队列的出队端的内存地址从该第二内存块中的获取历史数据。
115.由于管理节点可以将该第二目录中的文件中的数据直接映射至第二内存块中,并基于该第三循环队列从该第二内存块中获取历史数据,而无需对第二目录中的文件执行i/o操作以获取历史数据,因此有效提高了历史数据获取的效率。
116.可选的,若在步骤301中,管理节点对位于第一目录中的文件进行了压缩处理,由于第二目录中的文件是从第一目录移动至第二目录中的文件,因此第二管理节点中的文件也是经过压缩处理的。则管理节点在获取到第二目录中的文件之后,可以先对该文件进行解压处理,之后再采用第三循环队列从该文件中读取历史数据。
117.需要说明的是,管理节点每次基于第三循环队列的出队端的内存地址从第二内存块中获取历史数据之后,可以将该内存地址从第三循环队列的出队端删除。并可以将位于该内存地址之后且相邻的内存地址移动至第三循环队列的出队端,如此循环,直至第三循环队列中内存地址的个数为0,此时该第三循环队列处于队空状态,且该第三循环队列对应的第二内存块中的所有数据已经获取完成。则为了避免第二内存块中的数据获取完成的情况下,该第二内存块仍占用管理节点的内存,管理节点在每次获取到历史数据后,可以检测该第三循环队列是否处于队空状态。若该第三循环队列处于队空状态,则管理节点可以释放该第三循环队列对应的第二内存块,并可以删除或清空该第三循环队列读取的文件。由此有效减少管理节点中内存的占用,并减少管理节点中存储的数据,进而确保管理节点的运行速度。
118.c3、管理节点在检测到第二目录中不存在非空文件之后,可以继续存储实时采集的数据。
119.若第二目录中不存在非空文件,说明第二目录中不存在可以供读取的历史数据。该第二目录中不存在非空文件包括以下两种情况:在一种情况下,参考c2,第二目录中原来存在非空文件,但第三循环队列已完成第二目录中的数据的读取,并删除或清空该第三循环队列读取的文件。在另一种情况下,管理节点在检测第二目录中是否存在非空文件之前,第一目录中不存在时长大于或等于时长阈值的文件,因此该第二目录中也会不存在非空文件。此时管理节点可以继续存储实时采集的数据。
120.步骤307、管理节点采用第二通道发送历史数据。
121.管理节点在获取到历史数据之后,可以采用第二通道向分析节点发送该历史数据。
122.步骤308、分析节点对获取的历史数据进行分析。
123.分析节点在接收到管理节点发送的历史数据之后,可以对获取的历史数据进行分析。通过分析历史数据,可以了解过去一段时间数据采集节点所采集的数据的内容,从而实现对数据采集节点所监测对象的历史状态的了解。例如,数据采集节点所监测对象为风机发电组,分析节点通过分析历史数据,可以了解过去一段时间风机发电组的工作是否异常,和/或,通信中断是否对风机发电组的工作状态产生了影响,和/或,预测风机发电组在未来一段时间的发电功率。
124.在本公开实施例中,管理节点还可以创建第一线程和第二线程,并采用第一线程执行步骤301和步骤302,采用第二线程执行步骤303至步骤308。管理节点可以采用第一线程和第二线程异步执行,即管理节点可以在采用第一线程执行步骤301和步骤302的同时,采用第二线程执行步骤303至步骤308,由此提高了向分析节点发送数据的效率。
125.值得说明的是,当分析节点的分析资源不足时,可以先分析实时数据,再分析历史数据,以保证对数据采集节点所监测对象的工作状态的及时了解。
126.需要说明的是,本技术实施例提供的数据传输方法步骤的先后顺序可以进行适当调整,步骤也可以根据情况进行删除。例如,步骤304和步骤308可以同步执行,即分析节点可以同时对接收到的实时数据和历史数据进行分析。或者步骤306至步骤308可以在步骤303之前执行。任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本技术的保护范围之内,因此不再赘述。
127.综上所述,本公开实施例提供了一种数据传输方法,该方法可以在检测到与分析节点之间的通信中断之后,存储实时采集的数据。在检测到与分析节点之间的通信恢复之后,采用第一通道发送存储时长小于时长阈值的实时数据,并采用第二通道发送存储时长大于或等于时长阈值的历史数据。由于本公开实施例提供的方法管理节点在检测到与分析节点之间的通信中断之后并不会将实时采集到的数据丢失,因此并不会影响分析节点接收到的数据完整性。
128.并且,由于将存储的数据同时采用不同的通道向分析节点传输,因此提高了向分析节点传输数据的效率,同时确保了分析节点接收到的数据的实时性和连续性。
129.进一步的,管理节点通过不同的通道分别传输实时数据和历史数据,可以满足分析节点的不同分析需求,通过分析实时数据可以对需要及时了解的情况作出及时分析;通过分析历史数据可以对时限性要求不高的情况做分析,从而了解数据采集节点所监测对象的历史状态。
130.图7是本公开实施例提供的一种管理节点的框图。如图7所示,该管理节点20包括:
131.存储模块701,若检测到与分析节点之间的通信中断,则存储实时采集到的数据。
132.建立模块702,用于若检测到与分析节点之间的通信恢复,与分析节点建立第一通道和第二通道。
133.第一获取模块703,用于从存储的数据中获取实时数据,并采用第一通道向分析节点发送实时数据。
134.第二获取模块704,用于从存储的数据中获取历史数据,并采用第二通道向分析节点发送历史数据。
135.其中,实时数据在管理节点中的存储时长小于时长阈值,历史数据在管理节点中
的存储时长大于或等于时长阈值。
136.综上所述,本公开实施例提供了一种管理设备,该管理设备可以在检测到与分析节点之间的通信中断之后,存储实时采集的数据。在检测到与分析节点之间的通信恢复之后,采用第一通道发送存储时长小于时长阈值的实时数据,并采用第二通道发送存储时长大于或等于时长阈值的历史数据。由于本公开实施例提供的方法管理节点在检测到与分析节点之间的通信中断之后并不会将实时采集到的数据丢失,因此并不会影响分析节点接收到的数据完整性。
137.并且,由于将存储的数据同时采用不同的通道向分析节点传输,因此提高了向分析节点传输数据的效率,同时确保了分析节点接收到的数据的实时性和连续性。
138.可选的,第一获取模块703,用于:
139.若第一目录中存在非空文件,从第一目录的文件中获取实时数据,第一目录用于存储在管理节点中的存储时长小于时长阈值的文件。
140.若第一目录中不存在非空文件,基于第一循环队列获取实时数据,第一循环队列用于存储实时采集的数据,并在处于队满状态时,将数据以文件形式存储至第一目录。
141.可选的,第一目录中存在多个文件,第一获取模块703,用于:
142.基于第二循环队列从第一目录中的第一文件中获取实时数据,第一文件的存储时长大于第一目录中其他文件的存储时长,第二循环队列用于读取第一文件的数据。
143.可选的,第二获取模块704,用于:
144.若第二目录中存在非空文件,从第二目录的文件中获取历史数据,第二目录用于存储在管理节点的存储时长大于或等于时长阈值的文件。
145.可选的,第二目录中存在多个文件;第二获取模块704,用于:
146.基于第三循环队列从第二文件中获取历史数据,第二文件的存储时长大于第二目录中其他文件的存储时长,第三循环队列用于读取第二文件中的数据。
147.可选的,对于管理节点中用于读取数据的循环队列,循环队列采用以下方式从对应的文件中读取数据:
148.将文件中的数据映射至内存块中。
149.按照数据映射至内存块的顺序,将内存块的内存地址依次存储至循环队列中。
150.基于循环队列的出队端的内存地址从内存块获取数据。
151.可选的,如图8所示,该装置还可以包括:
152.释放模块705,用于若管理节点中用于读取数据的循环队列处于队空状态,则释放循环队列对应的内存块。
153.删除模块706,用于删除循环队列读取的文件。
154.综上所述,本公开实施例提供了一种管理设备,该管理设备可以在检测到与分析节点之间的通信中断之后,存储实时采集的数据。在检测到与分析节点之间的通信恢复之后,采用第一通道发送存储时长小于时长阈值的实时数据,并采用第二通道发送存储时长大于或等于时长阈值的历史数据。由于本公开实施例提供的方法管理节点在检测到与分析节点之间的通信中断之后并不会将实时采集到的数据丢失,因此并不会影响分析节点接收到的数据完整性。
155.并且,由于将存储的数据同时采用不同的通道向分析节点传输,因此提高了向分
析节点传输数据的效率,同时确保了分析节点接收到的数据的实时性和连续性。
156.本公开实施例提供了一种数据传输系统,该系统可以包括至少一个数据采集节点10(例如,图1所示的数据采集节点10)、管理节点20(例如,图1、图7或图8所示的管理节点20)和接收管理节点20传输的分析节点30(例如,图1所示的分析节点30)。
157.本公开实施例提供了一种计算机设备,该计算机设备可以包括处理器和存储器,存储器中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述实施例所示的数据传输方法,例如,实现图2或图3所示的数据传输方法。
158.本公开实施例提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条程序代码,程序代码由处理器加载并执行以实现如实现上述实施例所示的数据传输方法,例如,实现图2或图3所示的数据传输方法。
159.在本公开实施例中,术语“第一”、“第二”和“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。本公开实施例中术语“多个”的含义是指两个或两个以上。术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
160.以上所述仅为本公开的可选实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献