CN111277353B - 系统时间偏差纠正处理方法及装置、计算机设备、介质 - Google Patents

系统时间偏差纠正处理方法及装置、计算机设备、介质 Download PDF

Info

Publication number
CN111277353B
CN111277353B CN202010087021.7A CN202010087021A CN111277353B CN 111277353 B CN111277353 B CN 111277353B CN 202010087021 A CN202010087021 A CN 202010087021A CN 111277353 B CN111277353 B CN 111277353B
Authority
CN
China
Prior art keywords
time
difference
seconds
calibrated
chip
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
Application number
CN202010087021.7A
Other languages
English (en)
Other versions
CN111277353A (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.)
Shenzhen Genew Technologies Co Ltd
Original Assignee
Shenzhen Genew Technologies Co 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 Shenzhen Genew Technologies Co Ltd filed Critical Shenzhen Genew Technologies Co Ltd
Priority to CN202010087021.7A priority Critical patent/CN111277353B/zh
Publication of CN111277353A publication Critical patent/CN111277353A/zh
Application granted granted Critical
Publication of CN111277353B publication Critical patent/CN111277353B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0658Clock or time synchronisation among packet nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/28Timers or timing mechanisms used in protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)
  • Electric Clocks (AREA)

Abstract

本申请涉及系统时间偏差纠正处理方法及装置、计算机设备、介质,所述方法包括:系统获取接口函数,业务代码通过接口函数获取当前校准时间;当芯片时间和系统时间二者时间差异>=0,则当前要校准的秒数=芯片时间和系统时间二者时间差异;在接口函数中,记录上次到本次调用本函数的时间差;如果两次调用本函数的时间差大于校准的时间差,则直接将校准时间倒流m_diffRtc2Local的秒数;如果两次调用的时间差小于校准差,则当前调用获取的时间等于上一次的时间,控制时间停止调用时间差数。通过本发明方法可以准确进行系统时间偏差纠正,不会出现时间倒流的情况;并且可以定期对系统时间进行修正,实现简单,可靠性高。

Description

系统时间偏差纠正处理方法及装置、计算机设备、介质
技术领域
本申请涉及系统时间纠正技术领域,特别是涉及一种系统时间偏差纠正处理方法及装置、计算机设备、可读存储介质。
背景技术
计算系统有个系统本地时间,时间是计算机系统中最基础的功能,例如计算网络性能,计算运行时间,标记文件日期,日志等等,都要时间来支持。计算机系统的时间来源一般分为本地和外部。本地时间一般是用电池或者电容供电的时间芯片(RTC),在系统掉电后仍然能够精准的计时并保存若干天或者年。当系统重新上电后,软件从时间芯片中读取时间并给整个系统授时。外部时间,一般有时钟源服务器通过NTP/SNTP协议给当前系统授时,也可以通过人工方式给系统设置时间。
现有技术中,在系统上电后第一次被授时间后,由于本地系统时间的精确度比较低,随着时间的流逝,本地时间与实际时间的偏差越来越大,一般一天之内能相差两三秒钟,一年后的偏差可以达到数分钟。这种偏差可能是比实际时间快,也可能是慢。这样就需要定期的修正系统时间。如图1所示,现有技术中容易出现在当前获取到系统时间为T1,经过若干时间后,定时的修复了时间,总共经过t实际时间后,再次获取T2时间,可能出现T2-T1<t,甚至T2-T1<=0,也就是说经过了一段时间t后,获得的系统时间反而倒退了,出现了所谓的时间倒流。即现有技术中的系统时间修正不太准确,且费时费力,有时不方便用户使用。
因此,现有技术有待改进。
发明内容
本发明针对上述现有技术中的技术问题,提供一种系统时间偏差纠正处理方法及装置、计算机设备、可读存储介质,通过本发明方法可以准确进行系统时间偏差纠正,不会出现时间倒流的情况;并且可以定期对系统时间进行修正,实现简单,可靠性高。
本发明的技术方案如下:
一种系统时间偏差纠正处理方法,其中,所述方法包括:
系统第一次启动,从本地时间芯片获取时间设置为系统时间;
系统每隔预定时间计算芯片时间和系统时间的差值;
系统获取接口函数EOS_GetTime(),业务代码通过接口函数EOS_GetTime()获取当前校准时间;
定义一全局变量记录当前要校准的秒数m_AdjustSeconds;
当芯片时间和系统时间二者时间差异m_diffRtc2Local>=0,则当前要校准的秒数m_AdjustSeconds=芯片时间和系统时间二者时间差异m_diffRtc2Local;
在接口函数EOS_GetTime()中,记录上次到本次调用本函数的时间差m_diffLast2Now;如果两次调用本函数的时间差大于校准的时间差,则直接将校准时间倒流m_diffRtc2Local的秒数;如果两次调用的时间差小于校准差,则当前调用获取的时间等于上一次的时间,控制时间停止调用时间差数;
所述时间差数是当前调用时的时间与上次调用的时间的差值。
所述系统时间偏差纠正处理方法,其中,所述系统每隔预定时间计算芯片时间和系统时间的差值的步骤包括:
系统每隔30分钟,对芯片时间和系统时间进行比较,
计算计算芯片时间和系统时间的差值m_diffRtc2Local=芯片时间-系统本地时间。
所述系统时间偏差纠正处理方法,其中,所述系统获取接口函数EOS_GetTime(),业务代码通过接口函数EOS_GetTime()获取当前校准时间的步骤包括:
系统获取接口函数EOS_GetTime(),业务代码不直接调用系统的时间函数time(),通过接口函数EOS_GetTime()获取当前校准时间。
所述系统时间偏差纠正处理方法,其中,所述定义一全局变量记录当前要校准的秒数m_AdjustSeconds的步骤包括:
定义一个全局变量记录当前要校准的秒数m_AdjustSeconds,初始值为0,表示不需要校准。
所述系统时间偏差纠正处理方法,其中,所述当芯片时间和系统时间二者时间差异m_diffRtc2Local>=0,则当前要校准的秒数m_AdjustSeconds=芯片时间和系统时间二者时间差异m_diffRtc2Local的步骤包括:
在接口函数EOS_GetTime()中,判断:
如果芯片时间和系统时间二者时间差异m_diffRtc2Local>=0,则表示本地系统时间已经比芯片时间要慢了,当前要校准的秒数m_AdjustSeconds=芯片时间和系统时间二者时间差异m_diffRtc2Local。
所述系统时间偏差纠正处理方法,其中,所述在接口函数EOS_GetTime()中,记录上次到本次调用本函数的时间差m_diffLast2Now;如果两次调用本函数的时间差大于校准的时间差,则直接将校准时间倒流m_diffRtc2Local的秒数;如果两次调用的时间差小于校准差,则当前调用获取的时间等于上一次的时间,控制时间停止调用时间差数的步骤包括:
在接口函数EOS_GetTime()中,记录上次到本次调用本函数的时间差m_diffLast2Now=当前调用时的时间-上次调用的时间;
如果两次调用本函数的时间差要大于校准的时间差,则直接将校准时间倒流m_diffRtc2Local的秒数;
如果两次调用的时间差小于校准差,则当前调用获取的时间等于上一次的时间,控制时间停止调用时间差数,m_AdjustSeconds=-m_diffLast2Now。
所述系统时间偏差纠正处理方法,其中,其还包括步骤:
控制接口函数EOS_GetTime()的结果返回值为time()-m_AdjustSeconds;
所述time()-m_AdjustSeconds是当前要校准的秒数。
一种系统时间偏差纠正处理装置,其中,所述装置包括:
启动控制模块,用于控制系统第一次启动,从本地时间芯片获取时间设置为系统时间;
计算控制模块,用于控制系统每隔预定时间计算芯片时间和系统时间的差值;
封装与获取模块,用于控制系统获取接口函数EOS_GetTime(),业务代码通过接口函数EOS_GetTime()获取当前校准时间;
定义模块,用于定义一全局变量记录当前要校准的秒数m_AdjustSeconds;
第一校准模块,用于当芯片时间和系统时间二者时间差异m_diffRtc2Local>=0,则当前要校准的秒数m_AdjustSeconds=芯片时间和系统时间二者时间差异m_diffRtc2Local;
第二校准模块,用于在接口函数EOS_GetTime()中,记录上次到本次调用本函数的时间差m_diffLast2Now;如果两次调用本函数的时间差大于校准的时间差,则直接将校准时间倒流m_diffRtc2Local的秒数;如果两次调用的时间差小于校准差,则当前调用获取的时间等于上一次的时间,控制时间停止调用时间差数;所述时间差数是当前调用时的时间与上次调用的时间的差值。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现任一项所述系统时间偏差纠正处理方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现任一项所述的系统时间偏差纠正处理方法的步骤。
与现有技术相比,本发明实施例具有以下优点:
提供一种系统时间偏差纠正处理方法及装置、计算机设备、可读存储介质,通过本发明方法可以准确进行系统时间偏差纠正,不会出现时间倒流的情况;并且可以定期对系统时间进行修正,实现简单,可靠性高。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术的时间偏差修复示意图。
图2为本发明实施例1的一种系统时间偏差纠正处理方法的流程示意图。
图3为本发明实施例1的一种系统时间偏差纠正处理方法的第一种情况校准示意图。
图4为本发明实施例1的一种系统时间偏差纠正处理方法的第二种情况校准示意图。
图5为本发明实施例1的一种系统时间偏差纠正处理方法的第三种情况校准示意图。
图6为本发明实施例1的一种系统时间偏差纠正处理方法的每隔三十分钟执行一次校准操作结构示意图。
图7为本发明实施例2的一种系统时间偏差纠正处理方法的流程示意图。
图8为本发明实施例中一种系统时间偏差纠正处理装置的结构示意图。
图9为本发明实施例中计算机设备的内部结构图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
发明人经过研究发现,现有技术中,在系统上电后第一次被授时间后,由于本地系统时间的精确度比较低,随着时间的流逝,本地时间与实际时间的偏差越来越大,一般一天之内能相差两三秒钟,一年后的偏差可以达到数分钟。这种偏差可能是比实际时间快,也可能是慢。这样就需要定期的修正系统时间。如图1所示,现有技术中在当前获取到系统时间为T1,经过若干时间后,定时的修复了时间,总共经过t实际时间后,再次获取T2时间,可能出现T2-T1<t,甚至T2-T1<=0,也就是说经过了一段时间t后,获得的系统时间反而倒退了,出现了所谓的时间倒流。即现有技术中的系统时间修正不太准确,且费时费力,有时不方便用户使用。
为了解决上述问题,本发明提供了一种系统时间偏差纠正处理方法,提供了一种系统时间偏差修复方法,并且不会出现时间倒流的现象,下面结合附图,详细说明本发明的各种非限制性实施方式。
请参阅图2,图2示出了本发明实施例一种系统时间偏差纠正处理方法,所述方法包括以下步骤:
步骤S1、系统第一次启动,从本地时间芯片获取时间设置为系统时间;
本发明系统第一次启动后,从本地时间芯片获取时间,并设置其为系统时间;
步骤S2、系统每隔预定时间计算芯片时间和系统时间的差值m_diffRtc2Local;
例如、系统每隔30分钟,对芯片时间和系统时间进行比较,计算芯片时间和系统时间二者的差异m_diffRtc2Local=芯片时间(秒数)-系统本地时间(秒数)。
步骤S3、系统获取接口函数EOS_GetTime(),业务代码通过接口函数EOS_GetTime()获取当前校准时间。
例如,本发明中系统获取接口函数EOS_GetTime(),具体实施时业务代码不直接调用系统的时间函数time(),而是通过接口函数EOS_GetTime()获取当前校准时间。可以有效避免时间的不准确性。
步骤S4、定义一个全局变量记录当前要校准的秒数m_AdjustSeconds;
本实施例中,当当前要校准的秒数m_AdjustSeconds初始值为0,表示不需要校准。
步骤S5、当芯片时间和系统时间二者时间差异m_diffRtc2Local>=0,则当前要校准的秒数m_AdjustSeconds=芯片时间和系统时间二者时间差异m_diffRtc2Local。
例如、在接口函数EOS_GetTime()中,判断:如果芯片时间和系统时间二者时间差异m_diffRtc2Local>=0,则表示本地系统时间已经比芯片时间要慢了,需要校准的秒数(当前要校准的秒数)m_AdjustSeconds=m_diffRtc2Local(芯片时间和系统时间二者时间差异)。
举例,如图3所示,时间芯片轴的:芯片时间=10005秒,本地时间轴的本地时间10000秒,修正值(当前要校准的秒数)m_AdjustSeconds=m_diffRtc2Local(芯片时间和系统时间二者时间差异)即修正值m_diffRtc2Local=10005-10000=5秒。那么隔时间10秒后修正后,获取的接口函数EOS_GetTime()=10010+5=10015秒。
步骤S6、在接口函数EOS_GetTime()中,记录上次到本次调用本函数的时间差m_diffLast2Now;如果两次调用本函数的时间差大于校准的时间差,则直接将校准时间倒流m_diffRtc2Local的秒数;如果两次调用的时间差小于校准差,则当前调用获取的时间等于上一次的时间,控制时间停止调用时间差数;所述时间差数是当前调用时的时间与上次调用的时间的差值。
本发明实施例中,在接口函数EOS_GetTime()中,记录上次到本次调用本接口函数的时间差m_diffLast2Now=当前调用时的时间-上次调用的时间。如果两次调用本接口函数的时间差要大于校准的时间差,则直接将校准时间倒流m_diffRtc2Local的秒数,如图4所示;时间芯片轴:芯片时间=10000秒,本地时间轴的本地时间10005秒,修正值(当前要校准的秒数)m_AdjustSeconds=m_diffRtc2Local(芯片时间和系统时间二者时间差异)即修正值m_diffRtc2Local=10000-10005=-5秒。两次调用本接口函数的时间差10秒要大于校准的时间差-5秒;则直接将校准时间倒流m_diffRtc2Local的秒数,如图4所示,获取的接口函数EOS_GetTime()=本地时间10010秒-5秒=10005秒。将本地时间倒流5秒。
如果两次调用的时间差小于校准差,则当前调用获取的时间等于上一次的时间,控制时间停止调用时间差数m_AdjustSeconds=-m_diffLast2Now,如图5所示,时间芯片轴:芯片时间=10000秒,本地时间轴:本地时间10005秒,修正值(当前要校准的秒数)m_AdjustSeconds=m_diffRtc2Local(芯片时间和系统时间二者时间差异)即修正值m_diffRtc2Local=10000-10005=-5秒。两次调用本接口函数的时间差3秒小于校准的时间差-5秒的绝对值,则当前调用获取的时间等于上一次的时间,控制时间停止调用时间差数m_AdjustSeconds=-m_diffLast2Now,如图5所示,获取的接口函数EOS_GetTime()=上次的时间=10007秒;将本地时间倒流3秒。
在进一步地实施例中,所述系统时间偏差纠正处理方法还包括以下步骤:
步骤S7、控制接口函数EOS_GetTime()的结果返回值为time()-m_AdjustSeconds;所述time()-m_AdjustSeconds是当前要校准的秒数。
例如:time()函数是系统时间的函数,会返回系统时间,有偏差的
EOS_GetTime()
{
Now=time();//Now=50000;m_AdjustSeconds=10
return 49990;//50000-10
}
在另一种实施方式中,如图6所示,可以定义一个30分钟的软件定时器,每隔三十分钟执行一次校准操作,在校准过程中计算系统时间和芯片二者时间差异m_diffRtc2Local=芯片时间(秒数)-系统本地时间(秒数)。
所有的应用程序都不直接调用获取系统时间的接口函数time(),而是使用EOS_GetTime()来获取修正的时间。
本发明具体应用实施例的一种系统时间偏差纠正处理方法,如图7所示,方法具体应用实施例包括以下步骤:
步骤11、接口函数EOS_GetTime()开始,进入步骤12;
步骤12、判读芯片时间和系统时间二者时间差异m_diffRtc2Local>=0是否?当是进入步骤15,当否进入步骤13;
步骤13、记录上次到本次调用本函数的时间差m_diffLast2Now=当前调用时的时间-上次调用的时间,单位为秒;进入步骤14;
步骤14、判断(上次到本次调用本函数的时间差)m_diffLast2Now是否>=m_diffRtc2Local(芯片时间和系统时间两者的差异),当是进入步骤16,当否进入步骤17;
步骤15、则需要校准的秒数(当前要校准的秒数)m_AdjustSeconds=m_diffRtc2Local(芯片时间和系统时间两者的差异),直接将本地时间调快;并进入步骤18;
步骤16、则需要校准的秒数(当前要校准的秒数)m_AdjustSeconds=m_diffRtc2Local(芯片时间和系统时间两者的差异),本次的时间直接倒流,并进入步骤18;
步骤17、m_AdjustSeconds=负m_diffRtc2Local(芯片时间和系统时间两者的差异),上次和本次的时间相同;
步骤18、记录本次调用的时间,并进入步骤19;
步骤19、返回值=time()-m_AdjustSeconds(当前要校准的秒数)。
由上可见,通过本发明方法可以准确进行系统时间偏差纠正,不会出现时间倒流的情况;并且可以定期对系统时间进行修正,实现简单,可靠性高。
在一个实施例中,本发明提供了一种系统时间偏差纠正处理装置,如图8所示,所述装置包括:
启动控制模块41,用于控制系统第一次启动,从本地时间芯片获取时间设置为系统时间;
计算控制模块42,用于控制系统每隔预定时间计算芯片时间和系统时间的差值;
封装与获取模块43,用于控制系统获取接口函数EOS_GetTime(),业务代码通过接口函数EOS_GetTime()获取当前校准时间;
定义模块44,用于定义一全局变量记录当前要校准的秒数m_AdjustSeconds;
第一校准模块45,用于当芯片时间和系统时间二者时间差异m_diffRtc2Local>=0,则当前要校准的秒数m_AdjustSeconds=芯片时间和系统时间二者时间差异m_diffRtc2Local;
第二校准模块46,用于在接口函数EOS_GetTime()中,记录上次到本次调用本函数的时间差m_diffLast2Now;如果两次调用本函数的时间差大于校准的时间差,则直接将校准时间倒流m_diffRtc2Local的秒数;如果两次调用的时间差小于校准差,则当前调用获取的时间等于上一次的时间,控制时间停止调用时间差数;所述时间差数是当前调用时的时间与上次调用的时间的差值。具体如上所述。
在一个实施例中,本发明提供了一种计算机设备,该设备可以是终端,内部结构如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种自然语言模型的生成方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图9所示的仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本发明实施例提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其中,所述处理器执行所述计算机程序时实现以下步骤:
系统第一次启动,从本地时间芯片获取时间设置为系统时间;
系统每隔预定时间计算芯片时间和系统时间的差值;
系统获取接口函数EOS_GetTime(),业务代码通过接口函数EOS_GetTime()获取当前校准时间;
定义一全局变量记录当前要校准的秒数m_AdjustSeconds;
当芯片时间和系统时间二者时间差异m_diffRtc2Local>=0,则当前要校准的秒数m_AdjustSeconds=芯片时间和系统时间二者时间差异m_diffRtc2Local;
在接口函数EOS_GetTime()中,记录上次到本次调用本函数的时间差m_diffLast2Now;如果两次调用本函数的时间差大于校准的时间差,则直接将校准时间倒流m_diffRtc2Local的秒数;如果两次调用的时间差小于校准差,则当前调用获取的时间等于上一次的时间,控制时间停止调用时间差数;
所述时间差数是当前调用时的时间与上次调用的时间的差值;具体如上所述。
综上所述,提供一种系统时间偏差纠正处理方法及装置、计算机设备、可读存储介质,通过本发明方法可以准确进行系统时间偏差纠正,不会出现时间倒流的情况;并且可以定期对系统时间进行修正,实现简单,可靠性高。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种系统时间偏差纠正处理方法,其特征在于,所述方法包括:
系统第一次启动,从本地时间芯片获取时间设置为系统时间;
系统每隔预定时间计算芯片时间和系统时间的差值;
系统获取接口函数EOS_GetTime(),业务代码通过接口函数EOS_GetTime()获取当前校准时间;
定义一全局变量记录当前要校准的秒数m_AdjustSeconds;
当芯片时间和系统时间二者时间差异m_diffRtc2Local>=0,则当前要校准的秒数m_AdjustSeconds=芯片时间和系统时间二者时间差异m_diffRtc2Local;
在接口函数EOS_GetTime()中,记录上次到本次调用本函数的时间差m_diffLast2Now;如果两次调用本函数的时间差大于校准的时间差,则直接将校准时间倒流m_diffRtc2Local的秒数;如果两次调用的时间差小于校准差,则当前调用获取的时间等于上一次的时间,控制时间停止调用时间差数;
所述时间差数是当前调用时的时间与上次调用的时间的差值。
2.根据权利要求1所述系统时间偏差纠正处理方法,其特征在于,所述系统每隔预定时间计算芯片时间和系统时间的差值的步骤包括:
系统每隔30分钟,对芯片时间和系统时间进行比较,
计算芯片时间和系统时间的差值m_diffRtc2Local=芯片时间-系统本地时间。
3.根据权利要求1所述系统时间偏差纠正处理方法,其特征在于,所述系统获取接口函数EOS_GetTime(),业务代码通过接口函数EOS_GetTime()获取当前校准时间的步骤包括:
系统获取接口函数EOS_GetTime(),业务代码不直接调用系统的时间函数time(),通过接口函数EOS_GetTime()获取当前校准时间。
4.根据权利要求1所述系统时间偏差纠正处理方法,其特征在于,所述定义一全局变量记录当前要校准的秒数m_AdjustSeconds的步骤包括:
定义一个全局变量记录当前要校准的秒数m_AdjustSeconds,初始值为0,表示不需要校准。
5.根据权利要求1所述系统时间偏差纠正处理方法,其特征在于,所述当芯片时间和系统时间二者时间差异m_diffRtc2Local>=0,则当前要校准的秒数m_AdjustSeconds=芯片时间和系统时间二者时间差异m_diffRtc2Local的步骤包括:
在接口函数EOS_GetTime()中,判断:
如果芯片时间和系统时间二者时间差异m_diffRtc2Local>=0,则表示本地系统时间已经比芯片时间要慢了,当前要校准的秒数m_AdjustSeconds=芯片时间和系统时间二者时间差异m_diffRtc2Local。
6.根据权利要求1所述系统时间偏差纠正处理方法,其特征在于,所述在接口函数EOS_GetTime()中,记录上次到本次调用本函数的时间差m_diffLast2Now;如果两次调用本函数的时间差大于校准的时间差,则直接将校准时间倒流m_diffRtc2Local的秒数;如果两次调用的时间差小于校准差,则当前调用获取的时间等于上一次的时间,控制时间停止调用时间差数的步骤包括:
在接口函数EOS_GetTime()中,记录上次到本次调用本函数的时间差m_diffLast2Now=当前调用时的时间-上次调用的时间;
如果两次调用本函数的时间差要大于校准的时间差,则直接将校准时间倒流m_diffRtc2Local的秒数;
如果两次调用的时间差小于校准差,则当前调用获取的时间等于上一次的时间,控制时间停止调用时间差数,m_AdjustSeconds=-m_diffLast2Now。
7.根据权利要求6所述系统时间偏差纠正处理方法,其特征在于,其还包括步骤:
控制接口函数EOS_GetTime()的结果返回值为time()-m_AdjustSeconds;
所述time()-m_AdjustSeconds是当前要校准的秒数。
8.一种系统时间偏差纠正处理装置,其特征在于,所述装置包括:
启动控制模块,用于控制系统第一次启动,从本地时间芯片获取时间设置为系统时间;
计算控制模块,用于控制系统每隔预定时间计算芯片时间和系统时间的差值;
封装与获取模块,用于控制系统获取接口函数EOS_GetTime(),业务代码通过接口函数EOS_GetTime()获取当前校准时间;
定义模块,用于定义一全局变量记录当前要校准的秒数m_AdjustSeconds;
第一校准模块,用于当芯片时间和系统时间二者时间差异m_diffRtc2Local>=0,则当前要校准的秒数m_AdjustSeconds=芯片时间和系统时间二者时间差异m_diffRtc2Local;
第二校准模块,用于在接口函数EOS_GetTime()中,记录上次到本次调用本函数的时间差m_diffLast2Now;如果两次调用本函数的时间差大于校准的时间差,则直接将校准时间倒流m_diffRtc2Local的秒数;如果两次调用的时间差小于校准差,则当前调用获取的时间等于上一次的时间,控制时间停止调用时间差数;所述时间差数是当前调用时的时间与上次调用的时间的差值。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述系统时间偏差纠正处理方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的系统时间偏差纠正处理方法的步骤。
CN202010087021.7A 2020-02-11 2020-02-11 系统时间偏差纠正处理方法及装置、计算机设备、介质 Active CN111277353B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010087021.7A CN111277353B (zh) 2020-02-11 2020-02-11 系统时间偏差纠正处理方法及装置、计算机设备、介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010087021.7A CN111277353B (zh) 2020-02-11 2020-02-11 系统时间偏差纠正处理方法及装置、计算机设备、介质

Publications (2)

Publication Number Publication Date
CN111277353A CN111277353A (zh) 2020-06-12
CN111277353B true CN111277353B (zh) 2021-12-14

Family

ID=71002162

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010087021.7A Active CN111277353B (zh) 2020-02-11 2020-02-11 系统时间偏差纠正处理方法及装置、计算机设备、介质

Country Status (1)

Country Link
CN (1) CN111277353B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106817184A (zh) * 2017-01-19 2017-06-09 重庆重邮汇测通信技术有限公司 网络测量中本地时钟与gps时钟的时间同步方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6611922B2 (en) * 1999-08-09 2003-08-26 Power Measurement, Ltd. Power system time synchronization device and method for sequence of event recording
US20050132246A1 (en) * 2003-12-01 2005-06-16 Halliburton Energy Services, Inc. Method and system for adjusting time settings
US8675689B2 (en) * 2011-02-15 2014-03-18 General Electric Company Method of time synchronization of free running nodes in an avionics network

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106817184A (zh) * 2017-01-19 2017-06-09 重庆重邮汇测通信技术有限公司 网络测量中本地时钟与gps时钟的时间同步方法及装置

Also Published As

Publication number Publication date
CN111277353A (zh) 2020-06-12

Similar Documents

Publication Publication Date Title
EP2369438B1 (en) Calibration method of a real time clock signal
CN105334383A (zh) 一种电能表的电量数据存储方法
US20120265461A1 (en) Electronic device and system time setting method thereof
US6590376B1 (en) Method of deriving a frequency of a pulse signal from alternate sources and method of calibrating same
CN111831056A (zh) 一种实时时钟校准模块、方法及一种实时时钟芯片
US8719614B2 (en) Apparatus and method for generating a timing signal
CN111277353B (zh) 系统时间偏差纠正处理方法及装置、计算机设备、介质
CN116032411A (zh) 一种时间戳同步方法、系统、终端及存储介质
EP3503690A1 (en) Electronic device capable of adjusting light emitting frequency, computer system having the same and method for adjusting light emitting frequency of electronic device
JP5372315B2 (ja) テレメーターシステムの子局装置
CN115347970A (zh) 电力实时仿真系统的时钟同步方法、装置及设备
CN113987803B (zh) 基于模型修正的频率驾驭方法、装置、设备及存储介质
CN110442186A (zh) 一种时钟走时偏差修正方法、智能终端及存储介质
JP4651988B2 (ja) 時計精度修正装置
CN113535206A (zh) 多版本代码升级方法及系统
JPS599732A (ja) タイマの自動修正方式
US20140163917A1 (en) Multi-sensing-elements calibration system, multi-sensing-elements calibration method and recording medium
JP2003270371A (ja) コンピュータシステムの時計装置
JP2015059851A (ja) 時刻補正装置、時刻補正方法、および、コンピュータ・プログラム
CN113434787B (zh) 网络数据获取方法、装置及终端设备
JP3926232B2 (ja) 流量データ取得方法と自動検針システム
CN111189471A (zh) 一种校正方法、装置和计算机存储介质
CN115314142B (zh) 时间校准方法、装置、电子设备以及存储介质
CN115729313A (zh) 一种实时时钟的校准方法、装置及电子设备
CN114721797A (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