一种基于基准同步机制进行时间校准的方法及系统转让专利

申请号 : CN201710658066.3

文献号 : CN107359954B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杜广香

申请人 : 广东浩云长盛网络股份有限公司

摘要 :

本发明公开了一种基于基准同步机制进行时间校准的方法及系统,用于在基于消息队列遥测传输协议MQTT进行消息传递的监测网络内对监测节点进行时间校准,所述方法包括:数据采集节点向每个监测节点推送经过修改的采集协商消息;每个监测节点向所述时间控制节点发送携带时间信息的心跳消息;时间控制节点根据基础时间源的时间信息同步各个扩展时间源的时间信息,从而实现所述多个监测节点间的时间基准同步;利用标准时间源对上传主节点进行时间校准并且从上传主节点接收监测数据;以及所述上传主节点利用标准时间对多个上传从节点进行时间校准,并且多个上传从节点在完成时间校准后将各自的监测数据上传给数据采集节点。

权利要求 :

1.一种基于基准同步机制进行时间校准的方法,用于在基于消息队列遥测传输协议MQTT进行消息传递的监测网络内对监测节点进行时间校准,所述方法包括:在接收到时间控制节点发送的辅助控制请求时,数据采集节点对计时器期满时准备发送的采集协商消息的内容进行修改:将数据类型修改为空、将心跳消息回送地址修改为所述时间控制节点的网络地址以及将采集时间修改为空;

所述数据采集节点在所述计时器期满时向所述监测网络内多个监测节点中的每个监测节点推送经过修改的采集协商消息;

响应于接收到所述经过修改的采集协商消息,每个监测节点在确定数据类型为空并且采集时间为空的情况下,根据心跳消息回送地址向所述时间控制节点发送携带时间信息的心跳消息并且不进行与数据上传相关的数据准备;

时间控制节点从多个监测节点中的每个监测节点接收心跳消息后,从所述心跳消息中提取每个监测节点的时间信息,但不向所述多个监测节点中的任何监测节点发送心跳确认消息;

当基于所提取的每个监测节点的时间信息确定所述多个监测节点间的时间偏差值大于预定值时,时间控制节点从多个监测节点中选择一个监测节点作为时间同步主节点并且将时间同步主节点的时间源作为基础时间源,以及将除作为时间同步主节点的监测节点之外的其它监测节点作为时间同步从节点并且将时间同步从节点的时间源作为扩展时间源;

所述时间控制节点获取所述基础时间源的时间信息并且获取各个扩展时间源的时间信息,所述时间控制节点根据所述基础时间源的时间信息同步各个扩展时间源的时间信息,从而实现所述多个监测节点间的时间基准同步;

所述时间控制节点向所述多个监测节点中的每个监测节点发送包括所述数据采集节点的网络地址的心跳确认消息,以促使每个监测节点向所述数据采集节点发送时间基准同步完成消息以表明完成时间基准同步;

所述数据采集节点向完成时间基准同步的每个监测节点发送数据采集指令并且等待所述每个监测节点发送的响应消息,当所述数据采集节点接收到第一个响应消息后向发送除所述第一个响应消息的第一监测节点之外的其它监测节点发送拒绝上传指令,将发送所述第一个响应消息的第一监测节点作为上传主节点,并且将所述多个监测节点中除上传主节点之外的其它监测节点作为上传从节点;

所述数据采集节点利用标准时间源对上传主节点进行时间校准并且在上传主节点的本地时间被校准为标准时间后从所述上传主节点接收监测数据;以及所述上传主节点利用标准时间对多个上传从节点进行时间校准,并且指示所述多个上传从节点在完成时间校准后将各自的监测数据上传给数据采集节点。

2.根据权利要求1所述的方法,还包括在没有接收到时间控制节点发送的辅助控制请求并且所述计时器期满时,所述数据采集节点向所述监测网络内多个监测节点中的每个监测节点推送原始采集协商消息,所述原始采集协商消息包括:数据类型、心跳消息回送地址以及采集时间,其中所述数据类型包括:文本类型、音频类型和视频类型,所述心跳消息回送地址为所述数据采集节点的网络地址,以及所述采集时间为进行数据上传的起始时间;

在所述数据采集节点向所述监测网络内多个监测节点中的每个监测节点推送原始采集协商消息之后,将所述计时器重置以使得所述计时器重新开始计时。

3.根据权利要求2所述的方法,所述多个监测节点中的每个监测节点在接收到所述数据采集节点推送的所述原始采集协商消息后,基于所述数据采集节点的网络地址向所述数据采集节点发送心跳消息;以及根据所述数据类型和采集时间来进行与数据上传相关的数据准备:根据所述数据类型的值来准备文本类型、音频类型或视频类型的数据,所述准备应当在所述进行数据上传的起始时间之前的特定时间完成。

4.根据权利要求1所述的方法,在所述数据采集节点向完成时间基准同步的每个监测节点发送数据采集指令之前还包括:当所述数据采集节点接收到所述多个监测节点中所有监测节点发送的时间基准同步完成消息后,无论所述计时器是否期满均向多个监测节点中的每个监测节点发送附加采集协商消息包括:数据类型、心跳消息回送地址以及采集时间,其中所述数据类型包括:文本类型、音频类型和视频类型,所述心跳消息回送地址为所述数据采集节点的网络地址,以及所述采集时间为进行数据上传的起始时间;

在所述数据采集节点向所述监测网络内多个监测节点中的每个监测节点推送附加采集协商消息之后,将所述计时器重置以使得所述计时器重新开始计时。

5.根据权利要求1所述的方法,在所述多个上传从节点将各自的监测数据上传给数据采集节点之后,所述数据采集节点向所述上传主节点发送进入独立运行模式的指示消息;

所述上传主节点在接收到进入独立运行模式的指示消息后,在预定时间内,对所述数据采集节点所发送的原始采集协商消息或经过修改的采集协商消息进行判断,当数据类型不为空并且采集时间早于所述上传主节点的本地当前时间时,基于心跳消息回送地址发送心跳消息;否则不发送心跳消息。

6.一种基于基准同步机制进行时间校准的系统,用于在基于消息队列遥测传输协议MQTT进行消息传递的监测网络内对监测节点进行时间校准,所述系统包括:时间控制节点,向数据采集节点发送辅助控制请求,所述时间控制节点从多个监测节点中的每个监测节点接收心跳消息后,从所述心跳消息中提取每个监测节点的时间信息时,暂时不向所述多个监测节点中的任何监测节点发送心跳确认消息;

当基于所提取的每个监测节点的时间信息确定所述多个监测节点间的时间偏差值大于预定值时,时间控制节点从多个监测节点中选择一个监测节点作为时间同步主节点并且将时间同步主节点的时间源作为基础时间源,以及将除作为时间同步主节点的监测节点之外的其它监测节点作为时间同步从节点并且将时间同步从节点的时间源作为扩展时间源;

所述时间控制节点获取所述基础时间源的时间信息并且获取各个扩展时间源的时间信息,所述时间控制节点根据所述基础时间源的时间信息同步各个扩展时间源的时间信息,从而实现所述多个监测节点间的时间基准同步;

所述时间控制节点向所述多个监测节点中的每个监测节点发送包括所述数据采集节点的网络地址的心跳确认消息,以促使每个监测节点向所述数据采集节点发送时间基准同步完成消息以表明完成时间基准同步;

数据采集节点,在接收到时间控制节点发送的辅助控制请求时,数据采集节点对计时器期满时准备发送的采集协商消息的内容进行修改:将数据类型修改为空、将心跳消息回送地址修改为所述时间控制节点的网络地址以及将采集时间修改为空;

所述数据采集节点在所述计时器期满时向所述监测网络内多个监测节点中的每个监测节点推送经过修改的采集协商消息;

所述数据采集节点向完成时间基准同步的每个监测节点发送数据采集指令并且等待所述每个监测节点发送的响应消息,当所述数据采集节点接收到第一个响应消息后向发送除所述第一个响应消息的第一监测节点之外的其它监测节点发送拒绝上传指令,将发送所述第一个响应消息的第一监测节点作为上传主节点,并且将所述多个监测节点中除上传主节点之外的其它监测节点作为上传从节点;

所述数据采集节点利用标准时间源对上传主节点进行时间校准并且在上传主节点的本地时间被校准为标准时间后从所述上传主节点接收监测数据;

多个监测节点,响应于接收到所述经过修改的采集协商消息,多个多个监测节点中的每个监测节点在确定数据类型为空并且采集时间为空的情况下,根据心跳消息回送地址向所述时间控制节点发送携带时间信息的心跳消息并且不进行与数据上传相关的数据准备;

其中所述上传主节点利用标准时间对多个上传从节点进行时间校准,并且指示所述多个上传从节点在完成时间校准后将各自的监测数据上传给数据采集节点。

7.根据权利要求6所述的系统,还包括,在没有接收到时间控制节点发送的辅助控制请求并且所述计时器期满时,所述数据采集节点向所述监测网络内多个监测节点中的每个监测节点推送原始采集协商消息,所述原始采集协商消息包括:数据类型、心跳消息回送地址以及采集时间,其中所述数据类型包括:文本类型、音频类型和视频类型,所述心跳消息回送地址为所述数据采集节点的网络地址,以及所述采集时间为进行数据上传的起始时间;

在所述数据采集节点向所述监测网络内多个监测节点中的每个监测节点推送原始采集协商消息之后,将所述计时器重置以使得所述计时器重新开始计时。

8.根据权利要求7所述的系统,所述多个监测节点中的每个监测节点在接收到所述数据采集节点推送的所述原始采集协商消息后,基于所述数据采集节点的网络地址向所述数据采集节点发送心跳消息;以及根据所述数据类型和采集时间来进行与数据上传相关的数据准备:根据所述数据类型的值来准备文本类型、音频类型或视频类型的数据,所述准备应当在所述进行数据上传的起始时间之前的特定时间完成。

9.根据权利要求6所述的系统,还包括,当所述数据采集节点接收到所述多个监测节点中所有监测节点发送的时间基准同步完成消息后,无论所述计时器是否期满均向多个监测节点中的每个监测节点发送附加采集协商消息包括:数据类型、心跳消息回送地址以及采集时间,其中所述数据类型包括:文本类型、音频类型和视频类型,所述心跳消息回送地址为所述数据采集节点的网络地址,以及所述采集时间为进行数据上传的起始时间;

在所述数据采集节点向所述监测网络内多个监测节点中的每个监测节点推送附加采集协商消息之后,将所述计时器重置以使得所述计时器重新开始计时。

10.根据权利要求6所述的系统,在所述多个上传从节点将各自的监测数据上传给数据采集节点之后,所述数据采集节点向所述上传主节点发送进入独立运行模式的指示消息;

所述上传主节点在接收到进入独立运行模式的指示消息后,在预定时间内,对所述数据采集节点所发送的原始采集协商消息或经过修改的采集协商消息进行判断,当数据类型不为空并且采集时间早于所述上传主节点的本地当前时间时,基于心跳消息回送地址发送心跳消息;否则不发送心跳消息。

说明书 :

一种基于基准同步机制进行时间校准的方法及系统

技术领域

[0001] 本发明涉及计算机网络领域,并且更具体地涉及一种在物联网中基于基准同步机制进行时间校准的方法及系统。

背景技术

[0002] 目前,在遵从诸如消息队列遥测传输协议(MQTT,(Message Queuing Telemetry Transport)进行消息传递的物联网网络中,数据监测节点(传感器节点)通常是低功率设备。数据监测节点通常不进行会对消息进行及时应答,并且由于消息队列遥测传输协议基于发布和订阅机制进行消息传递,为此无法在这种网络中进行实时的时间校准。此外,由于大量的数据监测节点位于户外的各种位置,容易受到各种外部因素的印象,为此数据监测节点的时间经常的不准确的。这种时间上的不准确通常会导致所采集数据的有效性和准确性降低。

发明内容

[0003] 本发明提供一种基于基准同步机制进行时间校准的方法,用于在监测网络内对监测节点进行时间校准,所述方法包括:
[0004] 在接收到时间控制节点发送的辅助控制请求时,数据采集节点对计时器期满时准备发送的采集协商消息的内容进行修改:将数据类型修改为空、将心跳消息回送地址修改为所述时间控制节点的网络地址以及将采集时间修改为空;
[0005] 所述数据采集节点在所述计时器期满时向所述监测网络内多个监测节点中的每个监测节点推送经过修改的采集协商消息;
[0006] 响应于接收到所述经过修改的采集协商消息,每个监测节点在确定数据类型为空并且采集时间为空的情况下,根据心跳消息回送地址向所述时间控制节点发送携带时间信息的心跳消息并且不进行与数据上传相关的数据准备;
[0007] 时间控制节点从多个监测节点中的每个监测节点接收心跳消息后,从所述心跳消息中提取每个监测节点的时间信息,但不向所述多个监测节点中的任何监测节点发送心跳确认消息;
[0008] 当基于所提取的每个监测节点的时间信息确定所述多个监测节点间的时间偏差值大于预定值时,时间控制节点从多个监测节点中选择一个监测节点作为时间同步主节点并且将时间同步主节点的时间源作为基础时间源,以及将除作为时间同步主节点的监测节点之外的其它监测节点作为时间同步从节点并且将时间同步从节点的时间源作为扩展时间源;
[0009] 所述时间控制节点获取所述基础时间源的时间信息并且获取所述各个扩展时间源的时间信息,所述时间控制节点根据所述基础时间源的时间信息同步各个扩展时间源的时间信息,从而实现所述多个监测节点间的时间基准同步;
[0010] 所述时间控制节点向所述多个监测节点中的每个监测节点发送包括所述数据采集节点的网络地址的心跳确认消息,以促使每个监测节点向所述数据采集节点发送时间基准同步完成消息以表明完成时间基准同步;
[0011] 所述数据采集节点向完成时间基准同步的每个监测节点发送数据采集指令并且等待所述每个监测节点发送的响应消息,当所述数据采集节点接收到第一个响应消息后向发送除所述第一个响应消息的第一监测节点之外的其它监测节点发送拒绝上传指令,将发送所述第一个响应消息的第一监测节点作为上传主节点,并且将所述多个监测节点中除上传主节点之外的其它监测节点作为上传从节点;
[0012] 所述数据采集节点利用标准时间源对上传主节点进行时间校准并且在上传主节点的本地时间被校准为标准时间后从所述上传主节点接收监测数据;以及
[0013] 所述上传主节点利用标准时间对多个上传从节点进行时间校准,并且指示所述多个上传从节点在完成时间校准后将各自的监测数据上传给数据采集节点。
[0014] 如上所述的一种基于基准同步机制进行时间校准的方法能够用于在基于消息队列遥测传输协议MQTT进行消息传递的监测网络内对监测节点进行时间校准。
[0015] 根据本发明的另一方面,提供一种基于基准同步机制进行时间校准的系统,用于在监测网络内对监测节点进行时间校准,所述系统包括:
[0016] 时间控制节点,向数据采集节点发送辅助控制请求,所述时间控制节点从多个监测节点中的每个监测节点接收心跳消息后,从所述心跳消息中提取每个监测节点的时间信息时,暂时不向所述多个监测节点中的任何监测节点发送心跳确认消息;
[0017] 当基于所提取的每个监测节点的时间信息确定所述多个监测节点间的时间偏差值大于预定值时,时间控制节点从多个监测节点中选择一个监测节点作为时间同步主节点并且将时间同步主节点的时间源作为基础时间源,以及将除作为时间同步主节点的监测节点之外的其它监测节点作为时间同步从节点并且将时间同步从节点的时间源作为扩展时间源;
[0018] 所述时间控制节点获取所述基础时间源的时间信息并且获取所述各个扩展时间源的时间信息,所述时间控制节点根据所述基础时间源的时间信息同步各个扩展时间源的时间信息,从而实现所述多个监测节点间的时间基准同步;
[0019] 所述时间控制节点向所述多个监测节点中的每个监测节点发送包括所述数据采集节点的网络地址的心跳确认消息,以促使每个监测节点向所述数据采集节点发送时间基准同步完成消息以表明完成时间基准同步;
[0020] 数据采集节点,在接收到时间控制节点发送的辅助控制请求时,数据采集节点对计时器期满时准备发送的采集协商消息的内容进行修改:将数据类型修改为空、将心跳消息回送地址修改为所述时间控制节点的网络地址以及将采集时间修改为空;
[0021] 所述数据采集节点在所述计时器期满时向所述监测网络内多个监测节点中的每个监测节点推送经过修改的采集协商消息;
[0022] 所述数据采集节点向完成时间基准同步的每个监测节点发送数据采集指令并且等待所述每个监测节点发送的响应消息,当所述数据采集节点接收到第一个响应消息后向发送除所述第一个响应消息的第一监测节点之外的其它监测节点发送拒绝上传指令,将发送所述第一个响应消息的第一监测节点作为上传主节点,并且将所述多个监测节点中除上传主节点之外的其它监测节点作为上传从节点;
[0023] 所述数据采集节点利用标准时间源对上传主节点进行时间校准并且在上传主节点的本地时间被校准为标准时间后从所述上传主节点接收监测数据;
[0024] 多个监测节点,响应于接收到所述经过修改的采集协商消息,多个多个监测节点中的每个监测节点在确定数据类型为空并且采集时间为空的情况下,根据心跳消息回送地址向所述时间控制节点发送携带时间信息的心跳消息并且不进行与数据上传相关的数据准备;
[0025] 其中所述上传主节点利用标准时间对多个上传从节点进行时间校准,并且指示所述多个上传从节点在完成时间校准后将各自的监测数据上传给数据采集节点。
[0026] 如上所述的一种基于基准同步机制进行时间校准的系统能够用于在基于消息队列遥测传输协议MQTT进行消息传递的监测网络内对监测节点进行时间校准。
[0027] 还包括,在没有接收到时间控制节点发送的辅助控制请求并且所述计时器期满时,所述数据采集节点向所述监测网络内多个监测节点中的每个监测节点推送原始采集协商消息,所述原始采集协商消息包括:数据类型、心跳消息回送地址以及采集时间,其中所述数据类型包括:文本类型、音频类型和视频类型,所述心跳消息回送地址为所述数据采集节点的网络地址,以及所述采集时间为进行数据上传的起始时间;
[0028] 在所述数据采集节点向所述监测网络内多个监测节点中的每个监测节点推送原始采集协商消息之后,将所述计时器重置以使得所述计时器重新开始计时。
[0029] 所述多个监测节点中的每个监测节点在接收到所述数据采集节点推送的所述原始采集协商消息后,基于所述数据采集节点的网络地址向所述数据采集节点发送心跳消息;以及
[0030] 根据所述数据类型和采集时间来进行与数据上传相关的数据准备:根据所述数据类型的值来准备文本类型、音频类型或视频类型的数据,所述准备应当在所述进行数据上传的起始时间之前的特定时间完成。
[0031] 还包括,当所述数据采集节点接收到所述多个监测节点中所有监测节点发送的时间基准同步完成消息后,无论所述计时器是否期满均向多个监测节点中的每个监测节点发送附加采集协商消息包括:数据类型、心跳消息回送地址以及采集时间,其中所述数据类型包括:文本类型、音频类型和视频类型,所述心跳消息回送地址为所述数据采集节点的网络地址,以及所述采集时间为进行数据上传的起始时间;
[0032] 在所述数据采集节点向所述监测网络内多个监测节点中的每个监测节点推送附加采集协商消息之后,将所述计时器重置以使得所述计时器重新开始计时。
[0033] 在所述多个上传从节点将各自的监测数据上传给数据采集节点之后,所述数据采集节点向所述上传主节点发送进入独立运行模式的指示消息;
[0034] 所述上传主节点在接收到进入独立运行模式的指示消息后,在预定时间内,对所述数据采集节点所发送的原始采集协商消息或经过修改的采集协商消息进行判断,当数据类型不为空并且采集时间早于所述上传主节点的本地当前时间时,基于心跳消息回送地址发送心跳消息;否则不发送心跳消息。
[0035] 其中,所述时间控制节点根据所述基础时间源的时间信息同步各个扩展时间源的时间信息,包括:
[0036] 所述时间控制节点确定所述各个扩展时间源的时间信息与所述基础时间源的时间信息的差值;
[0037] 所述时间控制节点向所述各个扩展时间源的监测节点发送对应的差值,所述对应的差值用于所述各个扩展时间源的监测节点将自身的时间信息调整到与所述基础时间源的时间信息同步。
[0038] 其中,所述时间控制节点根据所述基础时间源的时间信息同步各个扩展时间源的时间信息,包括:
[0039] 所述时间控制节点向所述各个扩展时间源的监测节点发送所述基础时间源的时间信息,所述基础时间源的时间信息用于所述各个扩展时间源的监测节点将自身的时间信息调整到与所述基础时间源的时间信息同步。
[0040] 其中对所提取的每个监测节点的时间信息进行解析,以获取每个监测节点的当前时间,当所述每个监测节点的当前时间的方差大于预先设定的方差阈值时,[0041] 进一步确定所述每个监测节点的当前时间的平均值,在当前时间落入所述平均值±预设时间量的时间范围内的监测节点的数量小于监测节点总数的1/10时,确定所述多个监测节点间的时间偏差值大于预定值。
[0042] 所述时间控制节点从多个监测节点中选择当前时间与所述平均值的差值的绝对值最小的监测节点作为时间同步主节点,
[0043] 其中当存在多于一个的与所述平均值的差值的绝对值最小的监测节点时,从所述多于一个的监测节点中随机选择一个监测节点作为时间同步主节点。
[0044] 所述基础时间源的时间信息包括:基础时间源的无线数据包序号,所述各个扩展时间源的时间信息包括:各个扩展时间源的无线数据包序号,
[0045] 所述时间控制节点确定所述各个扩展时间源与所述基础时间源之间的帧号差值,所述帧号差值为所述各个扩展时间源的无线数据包序号与所述基础时间源的无线数据包序号之间的差值;
[0046] 所述时间控制节点向所述各个扩展时间源的监测节点发送对应的帧号差值,所述对应的帧号差值用于所述各个扩展时间源的监测节点将自身的无线数据包序号调整到与所述基础时间源的无线数据包序号同步。
[0047] 所述基础时间源的时间信息包括:基础时间源的无线数据包序号,所述各个扩展时间源的时间信息包括:各个扩展时间源的无线数据包序号,
[0048] 所述时间控制节点向所述各个扩展时间源的监测节点发送所述基础时间源的无线数据包序号,所述基础时间源的无线数据包序号用于所述各个扩展时间源的监测节点将自身的无线数据包序号调整到与所述基础时间源的无线数据包序号同步。

附图说明

[0049] 通过参考下面的附图,可以更为完整地理解本发明的示例性实施方式:
[0050] 图1为现有技术中数据采集网络的结构示意图;
[0051] 图2为根据本发明优选实施方式的基于基准同步机制进行时间校准的系统的结构示意图;
[0052] 图3为根据本发明另一优选实施方式的基于基准同步机制进行时间校准的系统的结构示意图;
[0053] 图4为根据本发明再一优选实施方式的基于基准同步机制进行时间校准的系统的结构示意图;以及
[0054] 图5为根据本发明优选实施方式的基于基准同步机制进行时间校准的方法的流程图。

具体实施方式

[0055] 现在参考附图介绍本发明的示例性实施方式,然而,本发明可以用许多不同的形式来实施,并且不局限于此处描述的实施例,提供这些实施例是为了详尽地且完全地公开本发明,并且向所属技术领域的技术人员充分传达本发明的范围。对于表示在附图中的示例性实施方式中的术语并不是对本发明的限定。在附图中,相同的单元/元件使用相同的附图标记。
[0056] 除非另有说明,此处使用的术语(包括科技术语)对所属技术领域的技术人员具有通常的理解含义。另外,可以理解的是,以通常使用的词典限定的术语,应当被理解为与其相关领域的语境具有一致的含义,而不应该被理解为理想化的或过于正式的意义。
[0057] 图1为现有技术中数据采集网络100的结构示意图。如图1所示,数据采集网络100包括:数据采集节点101、监测节点1、监测节点2、...、监测节点N。其中N为大于3的自然数。监测节点1、监测节点2、...、监测节点N可以是任何类型的传感器或监测器,并且监测节点
1、监测节点2、...、监测节点N用于监测周围环境中各种参数以获得监测结果。例如,监测节点1、监测节点2、...、监测节点N中的任意监测节点可以是电压传感器、电流传感器、声音传感器、烟雾传感器、温度传感器、湿度传感器等各种类型的传感器或监测器。
[0058] 通常,监测节点1、监测节点2、...、监测节点N可以不断获取周围环境中各种参数的值,例如,电压值、电流值、声音音量、烟雾浓度、温度值、湿度值等各种类型的数据。在获得了一定数量的数据后,监测节点1、监测节点2、...、监测节点N可以定期将上述内容上传给数据采集节点101。通常,数据采集节点101会定期获取监测节点1、监测节点2、...、监测节点N中各个监测节点的数据。
[0059] 监测节点1、监测节点2、...、监测节点N通常不进行会对消息进行及时应答,并且由于数据采集节点101基于发布和订阅机制进行消息传递,为此无法对监测节点1、监测节点2、...、监测节点N进行实时的时间校准。此外,由于监测节点1、监测节点2、...、监测节点N可能位于户外的各种位置,容易受到各种外部因素的印象,为此监测节点1、监测节点2、...、监测节点N的时间经常的不准确的。这种时间上的不准确通常会导致所采集数据的有效性和准确性降低。
[0060] 图2为根据本发明优选实施方式的基于基准同步机制进行时间校准的系统200的结构示意图。系统200在基于消息队列遥测传输协议MQTT进行消息传递的监测网络内对监测节点进行时间校准。所属领域技术人员应当了解的是,本申请可以在基于其它网络协议(或物联网协议)进行消息传递的监测网络内对监测节点进行时间校准。如图2所示,系统200包括:数据采集节点201、时间控制节点202、监测节点1、监测节点2、...、监测节点N。系统200利用时间控制节点202来对监测节点1、监测节点2、...、监测节点N进行时间同步。然而,由于在监测网络中,时间控制节点202并不具备发送订阅消息的权限,因此为了实现时间同步,时间控制节点202必须要借助于数据采集节点201的帮助。数据采集节点201是监测网络中唯一能够推送发布消息的节点,并且所述发布消息能够被推送给监测网络中的所有监测节点。
[0061] 为此,时间控制节点202需要发送辅助控制请求给数据采集节点201,以促使数据采集节点201能够向所有监测节点推送发布消息。然而,数据采集节点201所发布的采集协商消息包括数据类型、心跳消息回送地址以及采集时间。其中所述数据类型包括:文本类型、音频类型和视频类型,所述心跳消息回送地址为所述数据采集节点的网络地址,以及所述采集时间为进行数据上传的起始时间。其中,数据采集节点201使用采集协商消息向所有监测节点指示在特定时间(采集时间所指示的进行数据上传的起始时间)将会进行数据上传,并且在所述采集协商消息中表明了需要采集的数据类型。然而,心跳消息回送地址默认是数据采集节点201的网络地址,以使得监测节点能够将心跳消息发送给数据采集节点201。
[0062] 数据采集节点201使用计时器来确定发布采集协商消息的时间。通常,当所述计时器期满时,数据采集节点201向监测网络内多个监测节点中的每个监测节点推送采集协商消息。在数据采集节点201向监测网络内多个监测节点中的每个监测节点推送原始采集协商消息之后,将所述计时器重置以使得所述计时器重新开始计时。优选地,计时器每次计时的时间可以相同也可以不同。通常,系统200可以根据用户配置文件或系统运行情况来动态调整所述计时器的计时时间。在接收到时间控制节点202发送的辅助控制请求时,数据采集节点201对计时器期满时准备发送的采集协商消息的内容进行修改。其中,这种修改包括:将数据类型修改为空、将心跳消息回送地址修改为所述时间控制节点的网络地址以及将采集时间修改为空。其中,将数据类型修改为空并且将采集时间修改为空,以指示这个采集协商消息用于时间同步。并且,将心跳消息回送地址修改为所述时间控制节点202的网络地址,以使得监测节点能够将心跳消息发送给时间控制节点202而不是发送给数据采集节点
201。
[0063] 数据采集节点201在所述计时器期满时向所述监测网络内监测节点1、监测节点2、...、监测节点N中的每个监测节点推送经过修改的采集协商消息。响应于接收到所述经过修改的采集协商消息,监测节点1、监测节点2、...、监测节点N中每个监测节点在确定数据类型为空并且采集时间为空的情况下,根据心跳消息回送地址向所述时间控制节点发送携带时间信息的心跳消息并且不进行与数据上传相关的数据准备。由于数据类型为空并且采集时间为空,则表明修改的采集协商消息不是用于进行采集协商的原始消息,而是用于进行时间同步的修改消息。为此,数据采集节点201是向监测节点1、监测节点2、...、监测节点N中每个监测节点指示进行时间同步。
[0064] 时间控制节点202从监测节点1、监测节点2、...、监测节点N中的每个监测节点接收心跳消息后,从所述心跳消息中提取每个监测节点的时间信息,但不向所述多个监测节点中的任何监测节点发送心跳确认消息。通常,数据采集节点201使用采集协商消息向所有监测节点指示在特定时间(采集时间所指示的进行数据上传的起始时间)将会进行数据上传,为此,每个监测节点会在心跳消息中携带指示当前时间的时间信息、是否开始准备数据的指示等。每个监测节点在发送心跳消息后,开始进行数据上传准备。此外,数据采集节点201会向多个监测节点中的任何监测节点发送心跳确认消息。然而,时间控制节点202在从所述心跳消息中提取每个监测节点的时间信息后不向所述多个监测节点中的任何监测节点发送心跳确认消息,这是因为时间控制节点202还需要进行时间同步处理。优选地,当基于所提取的每个监测节点的时间信息确定所述多个监测节点间的时间偏差值大于预定值时,时间控制节点202从监测节点1、监测节点2、...、监测节点N中选择一个监测节点作为时间同步主节点(如图3所示的监测节点2)并且将时间同步主节点的时间源作为主时间源,以及将除作为时间同步主节点的监测节点之外的其它监测节点(如图3所示的监测节点
1、...、监测节点N)作为时间同步从节点并且将时间同步从节点的时间源作为从时间源。其中对所提取的每个监测节点的时间信息进行解析,以获取每个监测节点的当前时间,当所述每个监测节点的当前时间的方差大于预先设定的方差阈值时,进一步确定所述每个监测节点的当前时间的平均值,在当前时间落入所述平均值±预设时间量的时间范围内的监测节点的数量小于监测节点总数的1/10时,确定所述监测节点1、监测节点2、...、监测节点N间的时间偏差值大于预定值。其中,时间控制节点202从监测节点1、监测节点2、...、监测节点N中选择当前时间与所述平均值的差值的绝对值最小的监测节点作为时间同步主节点。
当存在多于一个的与所述平均值的差值的绝对值最小的监测节点时,从所述多于一个的监测节点中随机选择一个监测节点作为时间同步主节点。
[0065] 优选地,时间控制节点202获取所述主时间源的时间信息并且获取所述各个从时间源的时间信息,所述时间控制节点202根据所述主时间源的时间信息同步各个从时间源的时间信息,从而实现监测节点1、监测节点2、...、监测节点N间的时间基准同步。时间控制节点202根据所述主时间源的时间信息同步各个从时间源的时间信息,包括:所述时间控制节点202确定所述各个从时间源的时间信息与所述主时间源的时间信息的差值;时间控制节点202向所述各个从时间源的监测节点发送对应的差值,所述对应的差值用于所述各个从时间源的监测节点将自身的时间信息调整到与所述主时间源的时间信息同步。所述主时间源的时间信息包括:主时间源的无线数据包序号,所述各个从时间源的时间信息包括:各个从时间源的无线数据包序号。时间控制节点202确定所述各个从时间源与所述主时间源之间的帧号差值,所述帧号差值为所述各个从时间源的无线数据包序号与所述主时间源的无线数据包序号之间的差值。时间控制节点202向所述各个从时间源的监测节点发送对应的帧号差值,所述对应的帧号差值用于所述各个从时间源的监测节点将自身的无线数据包序号调整到与所述主时间源的无线数据包序号同步。
[0066] 时间控制节点202根据所述主时间源的时间信息同步各个从时间源的时间信息,包括:时间控制节点202向所述各个从时间源的监测节点发送所述主时间源的时间信息,主时间源的时间信息用于所述各个从时间源的监测节点将自身的时间信息调整到与所述主时间源的时间信息同步。其中主时间源的时间信息包括:主时间源的无线数据包序号,所述各个从时间源的时间信息包括:各个从时间源的无线数据包序号。时间控制节点202向所述各个从时间源的监测节点发送所述主时间源的无线数据包序号,所述主时间源的无线数据包序号用于所述各个从时间源的监测节点将自身的无线数据包序号调整到与所述主时间源的无线数据包序号同步。
[0067] 优选地,时间控制节点202向监测节点1、监测节点2、...、监测节点N中的每个监测节点发送包括所述数据采集节点的网络地址的心跳确认消息,以促使每个监测节点向所述数据采集节点201发送时间基准同步完成消息以表明完成时间基准同步。优选地,由于当前的心跳消息被发送给时间控制节点202,为此时间控制节点202具有向监测节点1、监测节点2、...、监测节点N中的每个监测节点发送包括所述数据采集节点的网络地址的心跳确认消息的权限。
[0068] 当数据采集节点201接收到监测节点1、监测节点2、...、监测节点N中所有监测节点发送的时间基准同步完成消息后,无论所述计时器是否期满均向监测节点1、监测节点2、...、监测节点N中的每个监测节点发送附加的采集协商消息包括:数据类型、心跳消息回送地址以及采集时间,其中所述数据类型包括:文本类型、音频类型和视频类型,所述心跳消息回送地址为所述数据采集节点的网络地址,以及所述采集时间为进行数据上传的起始时间。在数据采集节点201向所述监测网络内监测节点1、监测节点2、...、监测节点N中的每个监测节点推送附加的采集协商消息之后,将所述计时器重置以使得所述计时器重新开始计时。
[0069] 优选地,数据采集节点201向完成时间基准同步的每个监测节点发送数据采集指令并且等待所述每个监测节点发送的响应消息,当所述数据采集节点接收到第一个响应消息后向发送除所述第一个响应消息的第一监测节点之外的其它监测节点发送拒绝上传指令,并且将发送所述第一个响应消息的第一监测节点作为上传主节点,并且将所述监测节点1、监测节点2、...、监测节点N中除上传主节点之外的多个其它监测节点作为上传从节点。
[0070] 数据采集节点201利用标准时间源对上传主节点进行时间校准并且在上传主节点的本地时间被校准为标准时间后从所述上传主节点接收监测数据。数据采集节点确定上传主节点的时间与标准时间的差值;数据采集节点向上传主节点发送对应的差值,所述对应的差值用于上传主节点将自身的时间调整为所述标准时间。优选地,在时间控制节点202对监测节点1、监测节点2、...、监测节点N进行时间同步后,可以保证监测节点1、监测节点2、...、监测节点N的本地时间均是相同的(即,基准同步的)。然而,这种同步后的基准时间并不一定是与标准时间(例如,卫星时间、时钟振荡器等指示的)是相同的。为此,本申请在监测节点进行数据上传时,为监测节点进行标准时间的校准。通常,数据采集节点201可以使用各种类型的标准时间,例如来自卫星时间、各地标准时间等,来对监测节点进行时间校准。
[0071] 随后,上传主节点利用标准时间对多个上传从节点进行时间校准,并且指示所述多个上传从节点在完成时间校准后将各自的监测数据上传给数据采集节点201。上传主节点确定多个上传从节点中每个上传从节点的时间与标准时间的差值;上传主节点向每个上传从节点发送对应的差值,所述对应的差值用于每个上传从节点将自身的时间调整为所述标准时间。在所述多个上传从节点将各自的监测数据上传给数据采集节点201之后,所述数据采集节点201向所述上传主节点发送进入独立运行模式的指示消息。所述上传主节点在接收到进入独立运行模式的指示消息后,在预定时间内,对所述数据采集节点201所发送的原始采集协商消息或经过修改的采集协商消息进行判断,当数据类型不为空并且采集时间早于所述上传主节点的本地当前时间时,基于心跳消息回送地址发送心跳消息;否则不发送心跳消息。
[0072] 此外,没有接收到时间控制节点202发送的辅助控制请求并且所述计时器期满时,数据采集节点201向所述监测网络内监测节点1、监测节点2、...、监测节点N中的每个监测节点推送原始采集协商消息,所述原始采集协商消息包括:数据类型、心跳消息回送地址以及采集时间,其中所述数据类型包括:文本类型、音频类型和视频类型,所述心跳消息回送地址为所述数据采集节点的网络地址,以及所述采集时间为进行数据上传的起始时间。在数据采集节点201向所述监测网络内监测节点1、监测节点2、...、监测节点N中的每个监测节点推送原始采集协商消息之后,将计时器重置以使得所述计时器重新开始计时。
[0073] 优选地,监测节点1、监测节点2、...、监测节点N中的每个监测节点在接收到所述数据采集节点201推送的所述原始采集协商消息后,基于所述数据采集节点201的网络地址向所述数据采集节点201发送心跳消息。其中根据所述数据类型和采集时间来进行与数据上传相关的数据准备包括:根据所述数据类型的值来准备文本类型、音频类型或视频类型的数据,所述准备应当在所述进行数据上传的起始时间之前的特定时间完成。例如,在距离数据上传的起始时间之前的1分钟、2分钟、5分钟等完成数据准备。
[0074] 图3为根据本发明另一优选实施方式的基于基准同步机制进行时间校准的系统300的结构示意图。时间控制节点302从监测节点1、监测节点2、...、监测节点N中的每个监测节点接收心跳消息后,从所述心跳消息中提取每个监测节点的时间信息,但不向所述多个监测节点中的任何监测节点发送心跳确认消息。通常,数据采集节点301使用采集协商消息向所有监测节点指示在特定时间(采集时间所指示的进行数据上传的起始时间)将会进行数据上传,为此,每个监测节点会在心跳消息中携带指示当前时间的时间信息、是否开始准备数据的指示等。每个监测节点在发送心跳消息后,开始进行数据上传准备。此外,数据采集节点301会向多个监测节点中的任何监测节点发送心跳确认消息。然而,时间控制节点
302在从所述心跳消息中提取每个监测节点的时间信息后不向所述多个监测节点中的任何监测节点发送心跳确认消息,这是因为时间控制节点302还需要进行时间同步处理。优选地,当基于所提取的每个监测节点的时间信息确定所述多个监测节点间的时间偏差值大于预定值时,时间控制节点302从监测节点1、监测节点2、...、监测节点N中选择监测节点2作为时间同步主节点并且将时间同步主节点的时间源作为主时间源,以及将除作为时间同步主节点的监测节点之外的其它监测节点,例如监测节点1、...、监测节点N,作为时间同步从节点并且将时间同步从节点的时间源作为从时间源。其中对所提取的每个监测节点的时间信息进行解析,以获取每个监测节点的当前时间,当所述每个监测节点的当前时间的方差大于预先设定的方差阈值时,进一步确定所述每个监测节点的当前时间的平均值,在当前时间落入所述平均值±预设时间量的时间范围内的监测节点的数量小于监测节点总数的
1/10时,确定所述监测节点1、监测节点2、...、监测节点N间的时间偏差值大于预定值。其中,时间控制节点202从监测节点1、监测节点2、...、监测节点N中选择当前时间与所述平均值的差值的绝对值最小的监测节点作为时间同步主节点。当存在多于一个的与所述平均值的差值的绝对值最小的监测节点时,从所述多于一个的监测节点中随机选择一个监测节点作为时间同步主节点。
[0075] 优选地,时间控制节点302获取所述主时间源的时间信息并且根据所述主时间源的时间信息并且获取所述各个从时间源的时间信息,所述时间控制节点302根据所述主时间源的时间信息同步各个从时间源的时间信息,从而实现监测节点1、监测节点2、...、监测节点N间的时间基准同步。时间控制节点302根据所述主时间源的时间信息同步各个从时间源的时间信息,包括:所述时间控制节点302确定所述各个从时间源的时间信息与所述主时间源的时间信息的差值;时间控制节点302向所述各个从时间源的监测节点发送对应的差值,所述对应的差值用于所述各个从时间源的监测节点将自身的时间信息调整到与所述主时间源的时间信息同步。所述主时间源的时间信息包括:主时间源的无线数据包序号,所述各个从时间源的时间信息包括:各个从时间源的无线数据包序号。时间控制节点302确定所述各个从时间源与所述主时间源之间的帧号差值,所述帧号差值为所述各个从时间源的无线数据包序号与所述主时间源的无线数据包序号之间的差值。时间控制节点302向所述各个从时间源的监测节点发送对应的帧号差值,所述对应的帧号差值用于所述各个从时间源的监测节点将自身的无线数据包序号调整到与所述主时间源的无线数据包序号同步。
[0076] 时间控制节点302根据所述主时间源的时间信息同步各个从时间源的时间信息,包括:时间控制节点302向所述各个从时间源的监测节点发送所述主时间源的时间信息,主时间源的时间信息用于所述各个从时间源的监测节点将自身的时间信息调整到与所述主时间源的时间信息同步。其中主时间源的时间信息包括:主时间源的无线数据包序号,所述各个从时间源的时间信息包括:各个从时间源的无线数据包序号。时间控制节点302向所述各个从时间源的监测节点发送所述主时间源的无线数据包序号,所述主时间源的无线数据包序号用于所述各个从时间源的监测节点将自身的无线数据包序号调整到与所述主时间源的无线数据包序号同步。
[0077] 优选地,时间控制节点302向监测节点1、监测节点2、...、监测节点N中的每个监测节点发送包括所述数据采集节点的网络地址的心跳确认消息,以促使每个监测节点向所述数据采集节点301发送时间基准同步完成消息以表明完成时间基准同步。优选地,由于当前的心跳消息被发送给时间控制节点302,为此时间控制节点302具有向监测节点1、监测节点2、...、监测节点N中的每个监测节点发送包括所述数据采集节点的网络地址的心跳确认消息的权限。
[0078] 图4为根据本发明再一优选实施方式的基于基准同步机制进行时间校准的系统400的结构示意图。当数据采集节点401接收到监测节点1、监测节点2、...、监测节点N中所有监测节点发送的时间基准同步完成消息后,无论所述计时器是否期满均向监测节点1、监测节点2、...、监测节点N中的每个监测节点发送附加的采集协商消息包括:数据类型、心跳消息回送地址以及采集时间,其中所述数据类型包括:文本类型、音频类型和视频类型,所述心跳消息回送地址为所述数据采集节点的网络地址,以及所述采集时间为进行数据上传的起始时间。在数据采集节点401向所述监测网络内监测节点1、监测节点2、...、监测节点N中的每个监测节点推送附加的采集协商消息之后,将所述计时器重置以使得所述计时器重新开始计时。
[0079] 优选地,数据采集节点401向完成时间基准同步的每个监测节点发送数据采集指令并且等待所述每个监测节点发送的响应消息,当所述数据采集节点接收到第一个响应消息后向发送除所述第一个响应消息的第一监测节点之外的其它监测节点发送拒绝上传指令,并且将发送所述第一个响应消息的第一监测节点作为上传主节点,例如监测节点1,并且将所述监测节点1、监测节点2、...、监测节点N中除上传主节点之外的多个其它监测节点作为上传从节点,例如监测节点2、...、监测节点N。
[0080] 数据采集节点401利用标准时间源对上传主节点进行时间校准并且在上传主节点的本地时间被校准为标准时间后从所述上传主节点接收监测数据。优选地,在时间控制节点402对监测节点1、监测节点2、...、监测节点N进行时间同步后,可以保证监测节点1、监测节点2、...、监测节点N的本地时间均是相同的(即,基准同步的)。然而,这种同步后的基准时间并不一定是与标准时间(例如,卫星时间、时钟振荡器等指示的)是相同的。为此,本申请在监测节点进行数据上传时,为监测节点进行标准时间的校准。通常,数据采集节点401可以使用各种类型的标准时间,例如来自卫星时间、各地标准时间等,来对监测节点进行时间校准。
[0081] 随后,上传主节点对多个上传从节点进行时间校准,并且指示所述多个上传从节点在完成时间校准后将各自的监测数据上传给数据采集节点401。在所述多个上传从节点将各自的监测数据上传给数据采集节点401之后,所述数据采集节点401向所述上传主节点发送进入独立运行模式的指示消息。所述上传主节点在接收到进入独立运行模式的指示消息后,在预定时间内,对所述数据采集节点401所发送的原始采集协商消息或经过修改的采集协商消息进行判断,当数据类型不为空并且采集时间早于所述上传主节点的本地当前时间时,基于心跳消息回送地址发送心跳消息;否则不发送心跳消息。
[0082] 此外,没有接收到时间控制节点402发送的辅助控制请求并且所述计时器期满时,数据采集节点401向所述监测网络内监测节点1、监测节点2、...、监测节点N中的每个监测节点推送原始采集协商消息,所述原始采集协商消息包括:数据类型、心跳消息回送地址以及采集时间,其中所述数据类型包括:文本类型、音频类型和视频类型,所述心跳消息回送地址为所述数据采集节点的网络地址,以及所述采集时间为进行数据上传的起始时间。在数据采集节点401向所述监测网络内监测节点1、监测节点2、...、监测节点N中的每个监测节点推送原始采集协商消息之后,将计时器重置以使得所述计时器重新开始计时。
[0083] 优选地,监测节点1、监测节点2、...、监测节点N中的每个监测节点在接收到所述数据采集节点401推送的所述原始采集协商消息后,基于所述数据采集节点401的网络地址向所述数据采集节点401发送心跳消息。其中根据所述数据类型和采集时间来进行与数据上传相关的数据准备包括:根据所述数据类型的值来准备文本类型、音频类型或视频类型的数据,所述准备应当在所述进行数据上传的起始时间之前的特定时间完成。例如,在距离数据上传的起始时间之前的1分钟、2分钟、5分钟等完成数据准备。
[0084] 图5为根据本发明优选实施方式的基于基准同步机制进行时间校准的方法500的流程图。方法500在基于消息队列遥测传输协议MQTT进行消息传递的监测网络内对监测节点进行时间校准。应当了解的是,本申请可以在基于其它网络协议(或物联网协议)进行消息传递的监测网络内对监测节点进行时间校准。如图5所示,方法500从步骤501处开始。在步骤501处,在接收到时间控制节点发送的辅助控制请求时,数据采集节点对计时器期满时准备发送的采集协商消息的内容进行修改:将数据类型修改为空、将心跳消息回送地址修改为所述时间控制节点的网络地址以及将采集时间修改为空。通常情况下,数据采集节点所发布的采集协商消息包括数据类型、心跳消息回送地址以及采集时间。其中所述数据类型包括:文本类型、音频类型和视频类型,所述心跳消息回送地址为所述数据采集节点的网络地址,以及所述采集时间为进行数据上传的起始时间。其中,数据采集节点使用采集协商消息向所有监测节点指示在特定时间(采集时间所指示的进行数据上传的起始时间)将会进行数据上传,并且在所述采集协商消息中表明了需要采集的数据类型。然而,心跳消息回送地址默认是数据采集节点的网络地址,以使得监测节点能够将心跳消息发送给数据采集节点。
[0085] 数据采集节点使用计时器来确定发布采集协商消息的时间。通常,当所述计时器期满时,数据采集节点向监测网络内多个监测节点中的每个监测节点推送采集协商消息。在数据采集节点向监测网络内多个监测节点中的每个监测节点推送原始采集协商消息之后,将所述计时器重置以使得所述计时器重新开始计时。优选地,计时器每次计时的时间可以相同也可以不同。通常,方法500可以根据用户配置文件或系统运行情况来动态调整所述计时器的计时时间。在接收到时间控制节点202发送的辅助控制请求时,数据采集节点对计时器期满时准备发送的采集协商消息的内容进行修改。其中,这种修改包括:将数据类型修改为空、将心跳消息回送地址修改为所述时间控制节点的网络地址以及将采集时间修改为空。其中,将数据类型修改为空并且将采集时间修改为空,以指示这个采集协商消息用于时间同步。并且,将心跳消息回送地址修改为所述时间控制节点的网络地址,以使得监测节点能够将心跳消息发送给时间控制节点而不是发送给数据采集节点。
[0086] 在步骤502,数据采集节点在所述计时器期满时向所述监测网络内监测节点1、监测节点2、...、监测节点N中的每个监测节点推送经过修改的采集协商消息。
[0087] 在步骤503,响应于接收到所述经过修改的采集协商消息,监测节点1、监测节点2、...、监测节点N中每个监测节点在确定数据类型为空并且采集时间为空的情况下,根据心跳消息回送地址向所述时间控制节点发送携带时间信息的心跳消息并且不进行与数据上传相关的数据准备。由于数据类型为空并且采集时间为空,则表明修改的采集协商消息不是用于进行采集协商的原始消息,而是用于进行时间同步的修改消息。为此,数据采集节点是向监测节点1、监测节点2、...、监测节点N中每个监测节点指示进行时间同步。
[0088] 在步骤504,时间控制节点从监测节点1、监测节点2、...、监测节点N中的每个监测节点接收心跳消息后,从所述心跳消息中提取每个监测节点的时间信息,但不向所述多个监测节点中的任何监测节点发送心跳确认消息。通常,数据采集节点使用采集协商消息向所有监测节点指示在特定时间(采集时间所指示的进行数据上传的起始时间)将会进行数据上传,为此,每个监测节点会在心跳消息中携带指示当前时间的时间信息、是否开始准备数据的指示等。每个监测节点在发送心跳消息后,开始进行数据上传准备。此外,数据采集节点会向多个监测节点中的任何监测节点发送心跳确认消息。然而,时间控制节点在从所述心跳消息中提取每个监测节点的时间信息后不向所述多个监测节点中的任何监测节点发送心跳确认消息,这是因为时间控制节点还需要进行时间同步处理。
[0089] 在步骤505,当基于所提取的每个监测节点的时间信息确定所述多个监测节点间的时间偏差值大于预定值时,时间控制节点从监测节点1、监测节点2、...、监测节点N中选择一个监测节点作为时间同步主节点(如图3所示的监测节点2)并且将时间同步主节点的时间源作为主时间源,以及将除作为时间同步主节点的监测节点之外的其它监测节点(如图3所示的监测节点1、...、监测节点N)作为时间同步从节点并且将时间同步从节点的时间源作为从时间源。
[0090] 其中对所提取的每个监测节点的时间信息进行解析,以获取每个监测节点的当前时间,当所述每个监测节点的当前时间的方差大于预先设定的方差阈值时,进一步确定所述每个监测节点的当前时间的平均值,在当前时间落入所述平均值±预设时间量的时间范围内的监测节点的数量小于监测节点总数的1/10时,确定所述监测节点1、监测节点2、...、监测节点N间的时间偏差值大于预定值。其中,时间控制节点从监测节点1、监测节点2、...、监测节点N中选择当前时间与所述平均值的差值的绝对值最小的监测节点作为时间同步主节点。当存在多于一个的与所述平均值的差值的绝对值最小的监测节点时,从所述多于一个的监测节点中随机选择一个监测节点作为时间同步主节点。
[0091] 在步骤506,时间控制节点获取所述主时间源的时间信息并且获取所述各个从时间源的时间信息,所述时间控制节点根据所述主时间源的时间信息同步各个从时间源的时间信息,从而实现监测节点1、监测节点2、...、监测节点N间的时间基准同步。时间控制节点根据所述主时间源的时间信息同步各个从时间源的时间信息,包括:所述时间控制节点确定所述各个从时间源的时间信息与所述主时间源的时间信息的差值;时间控制节点向所述各个从时间源的监测节点发送对应的差值,所述对应的差值用于所述各个从时间源的监测节点将自身的时间信息调整到与所述主时间源的时间信息同步。所述主时间源的时间信息包括:主时间源的无线数据包序号,所述各个从时间源的时间信息包括:各个从时间源的无线数据包序号。时间控制节点确定所述各个从时间源与所述主时间源之间的帧号差值,所述帧号差值为所述各个从时间源的无线数据包序号与所述主时间源的无线数据包序号之间的差值。时间控制节点向所述各个从时间源的监测节点发送对应的帧号差值,所述对应的帧号差值用于所述各个从时间源的监测节点将自身的无线数据包序号调整到与所述主时间源的无线数据包序号同步。
[0092] 在步骤506,时间控制节点根据所述主时间源的时间信息同步各个从时间源的时间信息,包括:时间控制节点向所述各个从时间源的监测节点发送所述主时间源的时间信息,主时间源的时间信息用于所述各个从时间源的监测节点将自身的时间信息调整到与所述主时间源的时间信息同步。其中主时间源的时间信息包括:主时间源的无线数据包序号,所述各个从时间源的时间信息包括:各个从时间源的无线数据包序号。时间控制节点向所述各个从时间源的监测节点发送所述主时间源的无线数据包序号,所述主时间源的无线数据包序号用于所述各个从时间源的监测节点将自身的无线数据包序号调整到与所述主时间源的无线数据包序号同步。
[0093] 在步骤507,时间控制节点向监测节点1、监测节点2、...、监测节点N中的每个监测节点发送包括所述数据采集节点的网络地址的心跳确认消息,以促使每个监测节点向所述数据采集节点发送时间基准同步完成消息以表明完成时间基准同步。优选地,由于当前的心跳消息被发送给时间控制节点,为此时间控制节点具有向监测节点1、监测节点2、...、监测节点N中的每个监测节点发送包括所述数据采集节点的网络地址的心跳确认消息的权限。
[0094] 当数据采集节点接收到监测节点1、监测节点2、...、监测节点N中所有监测节点发送的时间基准同步完成消息后,无论所述计时器是否期满均向监测节点1、监测节点2、...、监测节点N中的每个监测节点发送附加的采集协商消息包括:数据类型、心跳消息回送地址以及采集时间,其中所述数据类型包括:文本类型、音频类型和视频类型,所述心跳消息回送地址为所述数据采集节点的网络地址,以及所述采集时间为进行数据上传的起始时间。在数据采集节点向所述监测网络内监测节点1、监测节点2、...、监测节点N中的每个监测节点推送附加的采集协商消息之后,将所述计时器重置以使得所述计时器重新开始计时。
[0095] 在步骤508,数据采集节点向完成时间基准同步的每个监测节点发送数据采集指令并且等待所述每个监测节点发送的响应消息,当所述数据采集节点接收到第一个响应消息后向发送除所述第一个响应消息的第一监测节点之外的其它监测节点发送拒绝上传指令,并且将发送所述第一个响应消息的第一监测节点作为上传主节点,并且将所述监测节点1、监测节点2、...、监测节点N中除上传主节点之外的多个其它监测节点作为上传从节点。
[0096] 在步骤509,数据采集节点利用标准时间源对上传主节点进行时间校准并且在上传主节点的本地时间被校准为标准时间后从所述上传主节点接收监测数据。数据采集节点确定上传主节点的时间与标准时间的差值;数据采集节点向上传主节点发送对应的差值,所述对应的差值用于上传主节点将自身的时间调整为所述标准时间。优选地,在时间控制节点对监测节点1、监测节点2、...、监测节点N进行时间同步后,可以保证监测节点1、监测节点2、...、监测节点N的本地时间均是相同的(即,基准同步的)。然而,这种同步后的基准时间并不一定是与标准时间(例如,卫星时间、时钟振荡器等指示的)是相同的。为此,本申请在监测节点进行数据上传时,为监测节点进行标准时间的校准。通常,数据采集节点可以使用各种类型的标准时间,例如来自卫星时间、各地标准时间等,来对监测节点进行时间校准。
[0097] 在步骤510,上传主节点利用标准时间对多个上传从节点进行时间校准,并且指示所述多个上传从节点在完成时间校准后将各自的监测数据上传给数据采集节点。上传主节点确定多个上传从节点中每个上传从节点的时间与标准时间的差值;上传主节点向每个上传从节点发送对应的差值,所述对应的差值用于每个上传从节点将自身的时间调整为所述标准时间。在所述多个上传从节点将各自的监测数据上传给数据采集节点之后,所述数据采集节点向所述上传主节点发送进入独立运行模式的指示消息。所述上传主节点在接收到进入独立运行模式的指示消息后,在预定时间内,对所述数据采集节点所发送的原始采集协商消息或经过修改的采集协商消息进行判断,当数据类型不为空并且采集时间早于所述上传主节点的本地当前时间时,基于心跳消息回送地址发送心跳消息;否则不发送心跳消息。
[0098] 此外,没有接收到时间控制节点发送的辅助控制请求并且所述计时器期满时,数据采集节点向所述监测网络内监测节点1、监测节点2、...、监测节点N中的每个监测节点推送原始采集协商消息,所述原始采集协商消息包括:数据类型、心跳消息回送地址以及采集时间,其中所述数据类型包括:文本类型、音频类型和视频类型,所述心跳消息回送地址为所述数据采集节点的网络地址,以及所述采集时间为进行数据上传的起始时间。在数据采集节点向所述监测网络内监测节点1、监测节点2、...、监测节点N中的每个监测节点推送原始采集协商消息之后,将计时器重置以使得所述计时器重新开始计时。
[0099] 优选地,监测节点1、监测节点2、...、监测节点N中的每个监测节点在接收到所述数据采集节点推送的所述原始采集协商消息后,基于所述数据采集节点的网络地址向所述数据采集节点发送心跳消息。其中根据所述数据类型和采集时间来进行与数据上传相关的数据准备包括:根据所述数据类型的值来准备文本类型、音频类型或视频类型的数据,所述准备应当在所述进行数据上传的起始时间之前的特定时间完成。例如,在距离数据上传的起始时间之前的1分钟、2分钟、5分钟等完成数据准备。