CN115913462B - 一种基于事先规划的网络数据发送方法和数据发送模块 - Google Patents
一种基于事先规划的网络数据发送方法和数据发送模块 Download PDFInfo
- Publication number
- CN115913462B CN115913462B CN202211397622.3A CN202211397622A CN115913462B CN 115913462 B CN115913462 B CN 115913462B CN 202211397622 A CN202211397622 A CN 202211397622A CN 115913462 B CN115913462 B CN 115913462B
- Authority
- CN
- China
- Prior art keywords
- period
- data
- data transmission
- timer
- callback
- 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
Links
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Abstract
本发明提供了一种基于事先规划的网络数据发送方法和数据发送模块,涉及航天测控仿真的技术领域,包括获取数据发送模块的定时器最小周期和仿真任务要求的帧周期;在帧周期小于定时器最小周期的情况下,确定数据发送模块的触发回调周期为定时器最小周期,并基于帧周期和定时器最小周期规划每秒内的每个触发回调周期的待发送数据帧数量,以使所有触发回调周期之间数据帧发送量的差异小于预设阈值;基于每秒内的每个触发回调周期的待发送数据帧数量发送网络数据。应用本发明提供基于事先规划的网络数据发送方法的数据发送模块,由于采用了事先规划机制,所以不会出现周期性速率抖动的技术问题,从而有效地提升了数据发送模块的数据发送速率的稳定性。
Description
技术领域
本发明涉及航天测控仿真的技术领域,尤其是涉及一种基于事先规划的网络数据发送方法和数据发送模块。
背景技术
航天测控仿真软件的主要功能是模拟航天器或地面系统的数据收发行为,其主要功能包括以固定的频率向外发送数据帧。数据发送模块是航天测控仿真软件的核心模块之一,数据发送模块通常由缓冲区、定时器、发送器等部件组成。现有的数据发送模块的数据帧发送方法中,当帧周期小于定时器最小周期时,数据发送模块则将一秒内需要发送的所有帧在一秒内的所有周期上平均分配(求平均后,再向下取整),并且,在一秒内的最后一个周期,将累计的误差帧数(少发的帧数)一次性补偿发送。这就导致在每秒的最后一个周期,数据发送的速率会产生一个峰值,造成速率抖动,数据发送速率的稳定性较差,无法满足较高的技术要求。
发明内容
本发明的目的在于提供一种基于事先规划的网络数据发送方法和数据发送模块,以有效地提升了数据发送模块的数据发送速率的稳定性。
第一方面,本发明提供一种基于事先规划的网络数据发送方法,应用于数据发送模块,包括:获取所述数据发送模块的定时器最小周期和仿真任务要求的帧周期;在所述帧周期小于所述定时器最小周期的情况下,确定所述数据发送模块的触发回调周期为所述定时器最小周期,并基于所述帧周期和所述定时器最小周期规划每秒内的每个触发回调周期的待发送数据帧数量,以使所有触发回调周期之间数据帧发送量的差异小于预设阈值;基于每秒内的每个所述触发回调周期的待发送数据帧数量发送网络数据。
在可选的实施方式中,基于所述帧周期和所述定时器最小周期规划每秒内的每个触发回调周期的待发送数据帧数量,包括:基于所述帧周期和所述定时器最小周期,计算每秒内的每个触发回调周期在理论上需要发送的数据帧数量;计算目标触发回调周期结束,理论上需要发送的数据帧总数,得到第一数据帧总数;其中,所述目标触发回调周期表示每秒内的所有触发回调周期中的任一触发回调周期;计算目标触发回调周期之前已发送的数据帧总数,得到第二数据帧总数;对所述第一数据帧总数和所述第二数据帧总数之间的差值进行向下取整运算,得到所述目标触发回调周期的待发送数据帧数量。
在可选的实施方式中,基于所述帧周期和所述定时器最小周期,计算每秒内的每个触发回调周期在理论上需要发送的数据帧数量,包括:计算所述定时器最小周期除以所述帧周期的结果,得到目标数据帧数量;将所述目标数据帧数量作为每秒内的每个触发回调周期在理论上需要发送的数据帧数量。
在可选的实施方式中,所述方法还包括:在所述帧周期大于或者等于所述定时器最小周期的情况下,确定所述数据发送模块的触发回调周期为所述帧周期,且每个所述触发回调周期的待发送数据帧数量为1。
第二方面,本发明提供一种数据发送模块,所述数据发送模块应用前述实施方式中任一项所述的基于事先规划的网络数据发送方法,包括:定时器、规划器、缓冲区和发送器;所述定时器用于根据仿真任务要求设置触发回调周期,并在每个触发回调周期结束产生定时事件,以将所述定时事件发送至所述发送器;其中,所述仿真任务要求包括:帧周期;所述规划器用于根据所述仿真任务要求和定时器最小周期规划每秒内的每个触发回调周期的待发送数据帧数量,得到规划表,以使所有触发回调周期之间数据帧发送量的差异小于预设阈值;所述缓冲区用于存储待发送的数据帧;所述发送器用于在接收到所述定时事件的情况下,基于所述规划表读取所述缓冲区中的数据帧,以完成网络数据的发送。
在可选的实施方式中,所述发送器的内部预置秒内周期计数器;所述秒内周期计数器用于统计所述发送器接收到的定时事件总数,并在所述定时事件总数等于一秒内触发回调周期的总数时,所述秒内周期计数器清零。
在可选的实施方式中,所述规划表携带标志位;所述标志位包括以下其中之一:第一标志位,第二标志位;所述第一标志位表征所述规划表中每个所述触发回调周期的待发送数据帧数量为1;所述第二标志位表征所述发送器以秒内周期计数器的统计结果为索引查询所述规划表,以获取当前触发回调周期的待发送数据帧数量。
第三方面,本发明提供一种基于事先规划的网络数据发送装置,应用于数据发送模块,包括:获取模块,用于获取所述数据发送模块的定时器最小周期和仿真任务要求的帧周期;第一确定模块,用于在所述帧周期小于所述定时器最小周期的情况下,确定所述数据发送模块的触发回调周期为所述定时器最小周期,并基于所述帧周期和所述定时器最小周期规划每秒内的每个触发回调周期的待发送数据帧数量,以使所有触发回调周期之间数据帧发送量的差异小于预设阈值;发送模块,用于基于每秒内的每个所述触发回调周期的待发送数据帧数量发送网络数据。
第四方面,本发明提供一种电子设备,包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现前述实施方式中任一项所述的基于事先规划的网络数据发送方法的步骤。
第五方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令被处理器执行时实现前述实施方式中任一项所述的基于事先规划的网络数据发送方法。
本发明提供的基于事先规划的网络数据发送方法,应用于数据发送模块,包括:获取数据发送模块的定时器最小周期和仿真任务要求的帧周期;在帧周期小于定时器最小周期的情况下,确定数据发送模块的触发回调周期为定时器最小周期,并基于帧周期和定时器最小周期规划每秒内的每个触发回调周期的待发送数据帧数量,以使所有触发回调周期之间数据帧发送量的差异小于预设阈值;基于每秒内的每个触发回调周期的待发送数据帧数量发送网络数据。应用本发明提供的基于事先规划的网络数据发送方法的数据发送模块,由于采用了事先规划机制,因此能够将现有方法中一秒内的最后一个周期所需要补偿发送的帧平均地散步在一秒内的各触发回调周期中,所以不会出现周期性速率抖动的技术问题,从而有效地提升了数据发送模块的数据发送速率的稳定性。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于事先规划的网络数据发送方法的流程图;
图2为本发明实施例提供的传统数据发送模块的数据发送速率与基于事先规划的数据发送模块的数据发送速率的比较示意图;
图3为本发明实施例提供的一种数据发送模块的系统结构图;
图4为本发明实施例提供的一种数据发送模块的工作流程图;
图5为本发明实施例提供的一种基于事先规划的网络数据发送装置的功能模块图;
图6为本发明实施例提供的一种电子设备的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
航天测控仿真软件的主要功能是模拟航天器或地面系统的数据收发行为,其主要功能包括以固定的频率向外发送数据帧。传统仿真软件仅实现了接口级模拟,通常以固定的帧频率(如一秒一帧)模拟实际对象的数据发送。近年来,随着我国航天技术的不断发展,航天器和测控系统设备精度也不断提高,这就对测控仿真软件提出了新的要求。在某些任务中,需要进行接近行为级的数据发送仿真,同时满足高速,平稳,精确三项要求。即数据速率高、帧频率稳定无猝发、单位时间内发送帧数精确。此时,传统的接口级仿真软件难以满足需求,需进行改进。
数据发送模块是航天测控仿真软件的核心模块之一,数据发送模块通常由缓冲区、定时器、发送器等部件组成。现有的数据发送模块的数据帧发送方法中,当帧周期小于定时器最小周期时,数据发送模块则将一秒内需要发送的所有帧在一秒内的所有触发回调周期上平均分配(求平均后,再向下取整),并且,在一秒内的最后一个周期,将累计的误差帧数(少发的帧数)一次性补偿发送。
也就是说,若一秒内需要发送n帧数据(也即,帧周期为),定时器最小周期为t(单位为秒,通常t<1),且/>则每个触发回调周期需要发送的帧数x=n×t,由于每个触发回调周期需要发送的帧数x必须为整数,所以为了实现方便,通常使用如下公式计算每个触发回调周期需要发送的帧数x=floor(n×t),其中,floor表示对括号中的值向下取整。由于取整会累积误差,因此,数据发送模块还设置了补偿机制,以秒为单位进行补偿发送,具体为:数据发送模块会累计每个周期发送的数据帧数,并在一秒内的一个特定的补偿周期(可选择最后一个触发回调周期),将累计的误差帧数一次性补偿发送。也即:这就导致在每秒的最后一个触发回调周期,数据发送的速率会产生一个峰值,造成速率抖动,数据发送速率的稳定性较差,无法满足较高的技术要求。有鉴于此,本发明实施例提供了一种基于事先规划的网络数据发送方法,用以缓解上文中所提出的技术问题。
实施例一
图1为本发明实施例提供的一种基于事先规划的网络数据发送方法的流程图,该方法应用于数据发送模块,如图1所示,具体包括如下步骤:
步骤S102,获取数据发送模块的定时器最小周期和仿真任务要求的帧周期。
具体的,数据发送模块的定时器最小周期t受到机器性能、操作系统以及软件算法的具体实现等条件制约,不同的数据发送模块的定时器最小周期存在差异。对于不同的型号任务,不同的仿真对象,仿真数据发送的帧周期不尽相同。通常,根据仿真任务的具体需求,会给出每秒发送的具体帧数n,作为计算帧周期的依据,也即,若仿真任务要求每秒发送数据帧的总数为n,则帧周期为
步骤S104,在帧周期小于定时器最小周期的情况下,确定数据发送模块的触发回调周期为定时器最小周期,并基于帧周期和定时器最小周期规划每秒内的每个触发回调周期的待发送数据帧数量,以使所有触发回调周期之间数据帧发送量的差异小于预设阈值。
通常情况下定时器最小周期小于1秒,如果帧周期小于定时器最小周期,也即则说明每个定时器最小周期可发送至少一个数据帧,此时将数据发送模块的触发回调周期设置为定时器最小周期,并根据帧周期和定时器最小周期提前规划出每秒内的每个触发回调周期的待发送数据帧数量,以使所有触发回调周期之间数据帧发送量的差异小于预设阈值,进而避免现有技术中利用补偿周期一次性补偿发送多个误差帧数的情况发生,保障了数据发送速率的平稳。本发明实施例不对预设阈值的取值进行具体限定,只要能保证数据发送速率较平稳即可。
步骤S106,基于每秒内的每个触发回调周期的待发送数据帧数量发送网络数据。
在为每一秒内的每一个触发回调周期规划出相应的待发送数据帧数量之后,数据发送模块将按照上述规划平稳的发送网络数据。
应用本发明提供的基于事先规划的网络数据发送方法的数据发送模块,由于采用了事先规划机制,因此能够将现有方法中一秒内的最后一个周期所需要补偿发送的帧平均地散步在一秒内的各触发回调周期中,所以不会出现周期性速率抖动的技术问题,从而有效地提升了数据发送模块的数据发送速率的稳定性。
在一个可选的实施方式中,本发明方法还包括如下步骤:
步骤S103,在帧周期大于或者等于定时器最小周期的情况下,确定数据发送模块的触发回调周期为帧周期,且每个触发回调周期的待发送数据帧数量为1。
也就是说,如果帧周期大于或者等于定时器最小周期,则说明每个定时器最小周期无法发送一个完整的数据帧,所以,此时将数据发送模块的触发回调周期设置为帧周期,并设定触发回调周期的待发送数据帧数量均为1,这样一来,所有的触发回调周期内发送的数据帧数量保持一致,进而可实现平稳、精确的数据发送仿真。
在一个可选的实施方式中,上述步骤S104中,基于帧周期和定时器最小周期规划每秒内的每个触发回调周期的待发送数据帧数量,具体包括如下步骤:
步骤S1041,基于帧周期和定时器最小周期,计算每秒内的每个触发回调周期在理论上需要发送的数据帧数量。
具体的,通过上文中的描述可知,在帧周期小于定时器最小周期的t情况下,触发回调周期为定时器最小周期t。1秒内包含m个触发回调周期,且/>理论上,为了使得数据发送模块的数据发送速率平稳,则1秒内每一个触发回调周期可以平均发送n个数据帧,此时,每个触发回调周期在理论上需要发送的数据帧数量为:/>x为浮点类型。
步骤S1042,计算目标触发回调周期结束,理论上需要发送的数据帧总数,得到第一数据帧总数。
其中,目标触发回调周期表示每秒内的所有触发回调周期中的任一触发回调周期。
在计算出每个触发回调周期在理论上需要发送的数据帧数量之后,那么对于目标触发回调周期p,在目标触发回调周期p结束,其理论上需要发送的数据帧总数,也即第一数据帧总数为:p×n×t。也就是说,一秒内的第1个触发回调周期理论上需要发送的数据帧总数为n×t,第2个触发回调周期理论上需要发送的数据帧总数为2×n×t,以此类推,第m个触发回调周期理论上需要发送的数据帧总数为m×n×t=n。
步骤S1043,计算目标触发回调周期之前已发送的数据帧总数,得到第二数据帧总数。
步骤S1044,对第一数据帧总数和第二数据帧总数之间的差值进行向下取整运算,得到目标触发回调周期的待发送数据帧数量。
本发明实施例中,在规划每一秒内每个触发回调周期实际需要发送的数据帧数量时,需要按照时间顺序依次进行规划,也即,先规划第一个触发回调周期的待发送数据帧数量,然后再规划第二个触发回调周期的待发送数据帧数量,以此类推,规划出1秒内m个触发回调周期的待发送数据帧数量。
按照上述方法,在规划第一个触发回调周期的待发送数据帧数量时,已知第一个触发回调周期结束,理论上需要发送的数据帧总数为:n×t,也即,第一数据帧总数等于n×t;第一个触发回调周期之前已发送的数据帧总数为:0,也即,第二数据帧总数为0,因此,根据上述步骤S1044的描述可知,第一个触发回调周期的待发送数据帧数量为:floor(n×t)。
接下来,再规划第二个触发回调周期的待发送数据帧数量,针对第二个触发回调周期,第一数据帧总数等于2×n×t;第二数据帧总数为floor(n×t),因此,第二个触发回调周期的待发送数据帧数量为:floor(2×n×t-floor(n×t))。以此类推,得到一秒内所有触发回调周期的待发送数据帧数量。
在一个可选的实施方式中,上述步骤S1041,基于帧周期和定时器最小周期,计算每秒内的每个触发回调周期在理论上需要发送的数据帧数量,具体包括如下步骤:
步骤S10411,计算定时器最小周期除以帧周期的结果,得到目标数据帧数量。
步骤S10412,将目标数据帧数量作为每秒内的每个触发回调周期在理论上需要发送的数据帧数量。
也就是说,如果已知定时器最小周期为t,帧周期为那么每个触发回调周期在理论上需要发送的数据帧数量即为n×t。
根据上文中的描述可知,针对步骤S104,基于帧周期和定时器最小周期规划每秒内的每个触发回调周期的待发送数据帧数量,若设定规划表为arr,并初始化arr的长度为m,使用两个计数器,一个浮点计数器sumx记录x累加值,另一个整数计数器frm记录已规划的帧数累加值,通过两者相减并向下取整的方式,算出当前周期需要发送的具体帧数,则实现步骤S104功能的伪代码如下:
举例来说,如果一秒内要求发送889帧数据,而定时器最小周期为10ms时,1秒内包含100个发数周期。此时,每个触发回调周期在理论上需要发送的数据帧数量为889*0.01=8.89,第一个触发回调周期的待发送数据帧数为floor(8.89-0)=8;第二个触发回调周期的待发送数据帧数为floor(2*8.89-8)=9;第三个触发回调周期的待发送数据帧数为floor(3*8.89-(8+9))=9;以此类推,得到1秒内每一个触发回调周期的待发送数据帧数量。
而根据采用背景技术中的方法,如果一秒内要求发送889帧数据,而定时器最小周期为10ms时,1秒内包含100个发数周期。此时,每个发送周期需要发送的数据帧数为8(889除以100,向下取整),而最后一个周期需要补偿发送89帧(889-floor(889*0.01)/0.01)累计误差帧数,因此造成最后一个周期需要发送的数据达到8+89=97帧。这就导致数据发送速率不够平稳,在每秒的最后一个周期,数据发送的速率会产生一个峰值。这种发送策略对于数据速率和发送速率平稳性要求均较高的任务显然是难以满足需求的。
综上所述,本发明实施例所提供的基于事先规划的网络数据发送方法解决了传统网络数据发送模块存在的数据发送速率周期性速率抖动的技术问题。如图2所示,传统数据发送模块使用末尾周期补偿机制,因此一秒内的最后一个触发回调周期总是发送较多的数据帧,造成速率抖动。而本发明实施例提供的数据发送模块采用事先规划,实际上将需要补偿发送的帧平均地散步在一秒内的各触发回调周期中,因此不会造成周期性抖动。
实施例二
本发明实施例还提供了一种数据发送模块,该数据发送模块应用上述实施例一所提供的基于事先规划的网络数据发送方法,以下对本发明实施例提供的数据发送模块做具体介绍。
图3是本发明实施例提供的一种数据发送模块的系统结构图,如图3所示,该数据发送模块主要包括:定时器、规划器、缓冲区和发送器。
定时器用于根据仿真任务要求设置触发回调周期,并在每个触发回调周期结束产生定时事件,以将定时事件发送至发送器;其中,仿真任务要求包括:帧周期。
规划器用于根据仿真任务要求和定时器最小周期规划每秒内的每个触发回调周期的待发送数据帧数量,得到规划表,以使所有触发回调周期之间数据帧发送量的差异小于预设阈值。也即,规划表用于存储事先规划结果,即一秒内的所有触发回调周期中,每个周期的待发送数据帧数量。
缓冲区用于存储待发送的数据帧。通常采用队列结构。
发送器用于在接收到定时事件的情况下,基于规划表读取缓冲区中的数据帧,以完成网络数据的发送。具体的,发送器通过调用系统提供的数据发送接口,进行网络数据的发送。
本发明实施例提供的数据发送模块,采用了事先规划机制,因此能够将现有方法中一秒内的最后一个周期所需要补偿发送的帧平均地散步在一秒内的各触发回调周期中,所以不会出现周期性速率抖动的技术问题,从而有效地提升了数据发送模块的数据发送速率的稳定性。
在一个可选的实施方式中,发送器的内部预置秒内周期计数器。
秒内周期计数器用于统计发送器接收到的定时事件总数,并在定时事件总数等于一秒内触发回调周期的总数时,秒内周期计数器清零。
在一个可选的实施方式中,规划表携带标志位;标志位包括以下其中之一:第一标志位,第二标志位。
第一标志位表征规划表中每个触发回调周期的待发送数据帧数量为1。
第二标志位表征发送器以秒内周期计数器的统计结果为索引查询规划表,以获取当前触发回调周期的待发送数据帧数量。
具体的,本发明实施例所提供的数据发送模块,其工作流程如图4所示:
1.初始化阶段,完成缓冲区、定时器、规划表与发送器等的初始化。
1.1.初始化缓冲区:将需要发送的数据载入到缓冲区中,设置缓冲区的起始指针,当前发送指针和结束指针,其中,初始化阶段的“当前发送的指针”指向起始指针。
1.2.初始化定时器:根据仿真任务要求设置触发回调周期。若任务要求的帧周期大于或等于定时器最小周期,那么将数据发送模块的触发回调周期设置为帧周期,每个触发回调周期发送1帧数据即可满足要求,无需使用规划表,并设置规划表使用标志位为false;若任务要求中的帧周期小于定时器最小周期,则设置触发回调周期为定时器最小周期,并设置规划表使用标志为true,进行规划计算。
1.3.初始化规划表:根据仿真任务要求,设置规划表使用标志,进行规划计算,将一秒内的每个触发回调周期需要发送的具体数据帧数计算出来。
1.4.初始化发送器:设置发送器的各项参数,如绑定网络地址,设置socket选项等,以使发送器能够具备准确发送网络数据的功能。其中,“绑定网络地址”是指发送器绑定的本地IP地址和端口号,“设置socket选项”是指设置发送的传输协议,目的地址,是否加入组播,TTL等与网络发送有关的参数。
2.启动定时器,将定时器启动,使其能够周期性产生定时事件。
3.等待,初始化完毕后,进入等待阶段,等待触发回调周期结束产生定时事件。
4.定时器触发回调,发送数据。定时器到时,产生定时事件,触发回调,调用发送器读取缓冲区数据,进行数据发送。发送器发送的帧数判断方法如下:
(1)若规划表使用标志为false,则发送1帧数据。
(2)若规划表使用标志为true,则以发送器的内部预置秒内周期计数器的统计结果为索引,查询规划表,获取当前触发回调周期需要发送的帧数。
5.判断数据发送模块是否收到停止信号,如果收到,则停止;否则回到等待状态,等待下一个定时事件。
6.停止。进行扫尾工作,包括停止定时器,释放规划表和缓冲区,释放发送器占用的端口资源等。
实施例三
本发明实施例还提供了一种基于事先规划的网络数据发送装置,该基于事先规划的网络数据发送装置应用于数据发送模块,以下对本发明实施例提供的基于事先规划的网络数据发送装置做具体介绍。
图5是本发明实施例提供的一种基于事先规划的网络数据发送装置的功能模块图,如图5所示,该装置主要包括:获取模块10,第一确定模块20,发送模块30,其中:
获取模块10,用于获取数据发送模块的定时器最小周期和仿真任务要求的帧周期。
第一确定模块20,用于在帧周期小于定时器最小周期的情况下,确定数据发送模块的触发回调周期为定时器最小周期,并基于帧周期和定时器最小周期规划每秒内的每个触发回调周期的待发送数据帧数量,以使所有触发回调周期之间数据帧发送量的差异小于预设阈值。
发送模块30,用于基于每秒内的每个触发回调周期的待发送数据帧数量发送网络数据。
应用本发明提供的基于事先规划的网络数据发送装置的数据发送模块,由于采用了事先规划机制,因此能够将现有方法中一秒内的最后一个周期所需要补偿发送的帧平均地散步在一秒内的各触发回调周期中,所以不会出现周期性速率抖动的技术问题,从而有效地提升了数据发送模块的数据发送速率的稳定性。
可选地,第一确定模块20包括:
第一计算单元,用于基于帧周期和定时器最小周期,计算每秒内的每个触发回调周期在理论上需要发送的数据帧数量。
第二计算单元,用于计算目标触发回调周期结束,理论上需要发送的数据帧总数,得到第一数据帧总数;其中,目标触发回调周期表示每秒内的所有触发回调周期中的任一触发回调周期。
第三计算单元,用于计算目标触发回调周期之前已发送的数据帧总数,得到第二数据帧总数。
运算单元,用于对第一数据帧总数和第二数据帧总数之间的差值进行向下取整运算,得到目标触发回调周期的待发送数据帧数量。
可选地,第一计算单元具体用于:
计算定时器最小周期除以帧周期的结果,得到目标数据帧数量。
将目标数据帧数量作为每秒内的每个触发回调周期在理论上需要发送的数据帧数量。
可选地,装置还包括:
第二确定模块,用于在帧周期大于或者等于定时器最小周期的情况下,确定数据发送模块的触发回调周期为帧周期,且每个触发回调周期的待发送数据帧数量为1。
实施例四
参见图6,本发明实施例提供了一种电子设备,该电子设备包括:处理器60,存储器61,总线62和通信接口63,所述处理器60、通信接口63和存储器61通过总线62连接;处理器60用于执行存储器61中存储的可执行模块,例如计算机程序。
其中,存储器61可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口63(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线62可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器61用于存储程序,所述处理器60在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的过程定义的装置所执行的方法可以应用于处理器60中,或者由处理器60实现。
处理器60可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器60中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器60可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器61,处理器60读取存储器61中的信息,结合其硬件完成上述方法的步骤。
本发明实施例所提供的一种基于事先规划的网络数据发送方法和数据发送模块的计算机程序产品,包括存储了处理器可执行的非易失的程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
此外,术语“水平”、“竖直”、“悬垂”等术语并不表示要求部件绝对水平或悬垂,而是可以稍微倾斜。如“水平”仅仅是指其方向相对“竖直”而言更加水平,并不是表示该结构一定要完全水平,而是可以稍微倾斜。
在本发明的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种基于事先规划的网络数据发送方法,其特征在于,应用于数据发送模块,包括:
获取所述数据发送模块的定时器最小周期和仿真任务要求的帧周期;
在所述帧周期小于所述定时器最小周期的情况下,确定所述数据发送模块的触发回调周期为所述定时器最小周期,并基于所述帧周期和所述定时器最小周期规划每秒内的每个触发回调周期的待发送数据帧数量,以使所有触发回调周期之间数据帧发送量的差异小于预设阈值;
基于每秒内的每个所述触发回调周期的待发送数据帧数量发送网络数据。
2.根据权利要求1所述的基于事先规划的网络数据发送方法,其特征在于,基于所述帧周期和所述定时器最小周期规划每秒内的每个触发回调周期的待发送数据帧数量,包括:
基于所述帧周期和所述定时器最小周期,计算每秒内的每个触发回调周期在理论上需要发送的数据帧数量;
计算目标触发回调周期结束,理论上需要发送的数据帧总数,得到第一数据帧总数;其中,所述目标触发回调周期表示每秒内的所有触发回调周期中的任一触发回调周期;
计算目标触发回调周期之前已发送的数据帧总数,得到第二数据帧总数;
对所述第一数据帧总数和所述第二数据帧总数之间的差值进行向下取整运算,得到所述目标触发回调周期的待发送数据帧数量。
3.根据权利要求2所述的基于事先规划的网络数据发送方法,其特征在于,基于所述帧周期和所述定时器最小周期,计算每秒内的每个触发回调周期在理论上需要发送的数据帧数量,包括:
计算所述定时器最小周期除以所述帧周期的结果,得到目标数据帧数量;
将所述目标数据帧数量作为每秒内的每个触发回调周期在理论上需要发送的数据帧数量。
4.根据权利要求1所述的基于事先规划的网络数据发送方法,其特征在于,所述方法还包括:
在所述帧周期大于或者等于所述定时器最小周期的情况下,确定所述数据发送模块的触发回调周期为所述帧周期,且每个所述触发回调周期的待发送数据帧数量为1。
5.一种数据发送模块,其特征在于,所述数据发送模块应用权利要求1-4中任一项所述的基于事先规划的网络数据发送方法,包括:定时器、规划器、缓冲区和发送器;
所述定时器用于根据仿真任务要求设置触发回调周期,并在每个触发回调周期结束产生定时事件,以将所述定时事件发送至所述发送器;其中,所述仿真任务要求包括:帧周期;
所述规划器用于根据所述仿真任务要求和定时器最小周期规划每秒内的每个触发回调周期的待发送数据帧数量,得到规划表,以使所有触发回调周期之间数据帧发送量的差异小于预设阈值;
所述缓冲区用于存储待发送的数据帧;
所述发送器用于在接收到所述定时事件的情况下,基于所述规划表读取所述缓冲区中的数据帧,以完成网络数据的发送。
6.根据权利要求5所述的数据发送模块,其特征在于,所述发送器的内部预置秒内周期计数器;
所述秒内周期计数器用于统计所述发送器接收到的定时事件总数,并在所述定时事件总数等于一秒内触发回调周期的总数时,所述秒内周期计数器清零。
7.根据权利要求6所述的数据发送模块,其特征在于,所述规划表携带标志位;所述标志位包括以下其中之一:第一标志位,第二标志位;
所述第一标志位表征所述规划表中每个所述触发回调周期的待发送数据帧数量为1;
所述第二标志位表征所述发送器以秒内周期计数器的统计结果为索引查询所述规划表,以获取当前触发回调周期的待发送数据帧数量。
8.一种基于事先规划的网络数据发送装置,其特征在于,应用于数据发送模块,包括:
获取模块,用于获取所述数据发送模块的定时器最小周期和仿真任务要求的帧周期;
第一确定模块,用于在所述帧周期小于所述定时器最小周期的情况下,确定所述数据发送模块的触发回调周期为所述定时器最小周期,并基于所述帧周期和所述定时器最小周期规划每秒内的每个触发回调周期的待发送数据帧数量,以使所有触发回调周期之间数据帧发送量的差异小于预设阈值;
发送模块,用于基于每秒内的每个所述触发回调周期的待发送数据帧数量发送网络数据。
9.一种电子设备,包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述的基于事先规划的网络数据发送方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令被处理器执行时实现权利要求1至4中任一项所述的基于事先规划的网络数据发送方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211397622.3A CN115913462B (zh) | 2022-11-09 | 2022-11-09 | 一种基于事先规划的网络数据发送方法和数据发送模块 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211397622.3A CN115913462B (zh) | 2022-11-09 | 2022-11-09 | 一种基于事先规划的网络数据发送方法和数据发送模块 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115913462A CN115913462A (zh) | 2023-04-04 |
CN115913462B true CN115913462B (zh) | 2023-08-08 |
Family
ID=86470389
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211397622.3A Active CN115913462B (zh) | 2022-11-09 | 2022-11-09 | 一种基于事先规划的网络数据发送方法和数据发送模块 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115913462B (zh) |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000036843A1 (en) * | 1998-12-14 | 2000-06-22 | Gte Laboratories Incorporated | System and method for analyzing and transmitting video over a switched network |
EP1207659A2 (en) * | 2000-11-17 | 2002-05-22 | NTT DoCoMo, Inc. | Data transmission method, data transmission system, transmitter and receiver |
CN101217339A (zh) * | 2007-12-29 | 2008-07-09 | 华为技术有限公司 | 进行丢帧检测的方法、装置和基站 |
CN102264103A (zh) * | 2010-05-28 | 2011-11-30 | 大唐移动通信设备有限公司 | 数据发送方法和装置 |
CN103067432A (zh) * | 2011-10-21 | 2013-04-24 | 中国移动通信集团设计院有限公司 | 数据的发送方法、发送端以及通讯系统 |
CN105897759A (zh) * | 2016-06-14 | 2016-08-24 | 青岛乾元通数码科技有限公司 | 一种网络动态自适应音视频缓存方法及系统 |
CN106341738A (zh) * | 2015-07-08 | 2017-01-18 | 杭州海康威视数字技术股份有限公司 | 流媒体网络传输的带宽计算方法、服务器端和系统 |
CN106789385A (zh) * | 2015-11-23 | 2017-05-31 | 杭州海康威视数字技术股份有限公司 | 一种视频流的发送方法、发送装置和网络摄像机 |
CN109743639A (zh) * | 2018-12-25 | 2019-05-10 | 深圳市麦谷科技有限公司 | 一种自适应码率控制方法、系统、计算机设备及存储介质 |
CN110086566A (zh) * | 2019-03-18 | 2019-08-02 | 深圳市元征科技股份有限公司 | 一种车载数据的传输方法及车载设备 |
CN111278152A (zh) * | 2019-01-04 | 2020-06-12 | 维沃移动通信有限公司 | 信道占用方法、帧周期指示方法、帧周期确定方法及设备 |
CN111600680A (zh) * | 2020-05-14 | 2020-08-28 | 中国电子科技集团公司第三十六研究所 | 时分多址tdma突发数据的发送方法、装置和电子设备 |
CN111726300A (zh) * | 2020-06-15 | 2020-09-29 | 哈工大机器人(合肥)国际创新研究院 | 一种数据发送方法及装置 |
US10917355B1 (en) * | 2019-08-28 | 2021-02-09 | Honeywell International Inc. | Methods, systems and apparatuses for optimizing time-triggered ethernet (TTE) network scheduling by using a directional search for bin selection |
CN113497671A (zh) * | 2020-04-02 | 2021-10-12 | 成都鼎桥通信技术有限公司 | 数据处理方法、装置、设备、存储介质及终端设备 |
CN114598648A (zh) * | 2022-03-08 | 2022-06-07 | 中国人民解放军63921部队 | 基于逆向约束传递的航天器上行网络流量控制装置及方法 |
CN114640728A (zh) * | 2022-02-25 | 2022-06-17 | 烽火通信科技股份有限公司 | 协议帧定时发帧控制方法、装置、设备及存储介质 |
CN115291967A (zh) * | 2022-08-01 | 2022-11-04 | 中国人民解放军32039部队 | 航天数据分析方法、装置和电子设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170187635A1 (en) * | 2015-12-28 | 2017-06-29 | Qualcomm Incorporated | System and method of jitter buffer management |
US11552857B2 (en) * | 2019-08-28 | 2023-01-10 | Honeywell International Inc. | Methods, systems and appratuses for optimizing the bin selection of a network scheduling and configuration tool (NST) by bin allocation, demand prediction and machine learning |
-
2022
- 2022-11-09 CN CN202211397622.3A patent/CN115913462B/zh active Active
Patent Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000036843A1 (en) * | 1998-12-14 | 2000-06-22 | Gte Laboratories Incorporated | System and method for analyzing and transmitting video over a switched network |
EP1207659A2 (en) * | 2000-11-17 | 2002-05-22 | NTT DoCoMo, Inc. | Data transmission method, data transmission system, transmitter and receiver |
CN101217339A (zh) * | 2007-12-29 | 2008-07-09 | 华为技术有限公司 | 进行丢帧检测的方法、装置和基站 |
CN102264103A (zh) * | 2010-05-28 | 2011-11-30 | 大唐移动通信设备有限公司 | 数据发送方法和装置 |
CN103067432A (zh) * | 2011-10-21 | 2013-04-24 | 中国移动通信集团设计院有限公司 | 数据的发送方法、发送端以及通讯系统 |
CN106341738A (zh) * | 2015-07-08 | 2017-01-18 | 杭州海康威视数字技术股份有限公司 | 流媒体网络传输的带宽计算方法、服务器端和系统 |
CN106789385A (zh) * | 2015-11-23 | 2017-05-31 | 杭州海康威视数字技术股份有限公司 | 一种视频流的发送方法、发送装置和网络摄像机 |
CN105897759A (zh) * | 2016-06-14 | 2016-08-24 | 青岛乾元通数码科技有限公司 | 一种网络动态自适应音视频缓存方法及系统 |
CN109743639A (zh) * | 2018-12-25 | 2019-05-10 | 深圳市麦谷科技有限公司 | 一种自适应码率控制方法、系统、计算机设备及存储介质 |
CN111278152A (zh) * | 2019-01-04 | 2020-06-12 | 维沃移动通信有限公司 | 信道占用方法、帧周期指示方法、帧周期确定方法及设备 |
CN110086566A (zh) * | 2019-03-18 | 2019-08-02 | 深圳市元征科技股份有限公司 | 一种车载数据的传输方法及车载设备 |
US10917355B1 (en) * | 2019-08-28 | 2021-02-09 | Honeywell International Inc. | Methods, systems and apparatuses for optimizing time-triggered ethernet (TTE) network scheduling by using a directional search for bin selection |
CN113497671A (zh) * | 2020-04-02 | 2021-10-12 | 成都鼎桥通信技术有限公司 | 数据处理方法、装置、设备、存储介质及终端设备 |
CN111600680A (zh) * | 2020-05-14 | 2020-08-28 | 中国电子科技集团公司第三十六研究所 | 时分多址tdma突发数据的发送方法、装置和电子设备 |
CN111726300A (zh) * | 2020-06-15 | 2020-09-29 | 哈工大机器人(合肥)国际创新研究院 | 一种数据发送方法及装置 |
CN114640728A (zh) * | 2022-02-25 | 2022-06-17 | 烽火通信科技股份有限公司 | 协议帧定时发帧控制方法、装置、设备及存储介质 |
CN114598648A (zh) * | 2022-03-08 | 2022-06-07 | 中国人民解放军63921部队 | 基于逆向约束传递的航天器上行网络流量控制装置及方法 |
CN115291967A (zh) * | 2022-08-01 | 2022-11-04 | 中国人民解放军32039部队 | 航天数据分析方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN115913462A (zh) | 2023-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8108557B2 (en) | System and method for measuring clock skew on a network | |
US8203958B2 (en) | Frame counter correction apparatus, opposing apparatus, and frame counter correction method | |
JPH09244984A (ja) | イベント順序補正方法 | |
US20150207877A1 (en) | Time synchronization client, a system and a non-transitory computer readable medium | |
JP2008140162A (ja) | デバッグ情報収集方法 | |
US20160014001A1 (en) | Detailed end-to-end latency tracking of messages | |
CN112306567B (zh) | 集群管理系统和容器管控方法 | |
CN106911927B (zh) | 评估网络视频用户体验质量的方法、装置和dpi设备 | |
CN109656797B (zh) | 日志数据的关联方法及装置 | |
JP6605863B2 (ja) | 電子装置、方法、プログラム、及び保護システム | |
CN103546514A (zh) | 一种处理延迟发送的日志数据的方法和系统 | |
CN111405370B (zh) | 一种视频回放方法和装置 | |
CN110636283B (zh) | 视频传输测试方法、装置及终端设备 | |
CN115913462B (zh) | 一种基于事先规划的网络数据发送方法和数据发送模块 | |
CN104331494A (zh) | 一种更新数据的方法及系统 | |
CN112422369B (zh) | 离线时间的确定方法及装置、存储介质、电子装置 | |
CN107392983B (zh) | 一种录制动画的方法及系统 | |
CN113590017A (zh) | 用于处理数据的方法、电子设备和计算机程序产品 | |
CN110086592B (zh) | 基于虚拟时间轴的数据处理方法、装置及电子设备 | |
CN102413017B (zh) | 时延性能监测方法及装置 | |
US11263112B2 (en) | Method and apparatus for evaluating quality of software running environment of device | |
CN110187971B (zh) | 业务请求处理方法及装置 | |
CN108924013B (zh) | 网络流量精确采集方法及装置 | |
CN115996178B (zh) | 一种空间数据传输的服务质量评估方法和装置 | |
CN108984101B (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 |