一种基于哈希表的报文协议超时重发管理方法技术

技术编号:37256822 阅读:27 留言:0更新日期:2023-04-20 23:32
本发明专利技术属于计算机控制技术领域,公开了一种基于哈希表的报文协议超时重发管理方法,基于哈希表数据结构,通过一种新型管理结构,将报文重发的过程信息全部记录到哈希表中,对于超时重发的管理仅需在定时器中不断查询关联容器中的报文应答状态,即可高效地完成超时应答管理。答管理。答管理。

【技术实现步骤摘要】
一种基于哈希表的报文协议超时重发管理方法


[0001]本专利技术属于计算机控制
,涉及一种基于哈希表的报文协议超时重发管理方法。

技术介绍

[0002]哈希表是根据关键码值而直接进行访问的数据结构。把关键码值映射到表中的一个位置进行记录,增加查找的速度。哈希表通过关键值计算直接获取目标位置,对于海量数据的精确查找有着明显的数据提升,随着数据量增大,哈希表可以保持O(1)的查找速度,而普通列表只能保持O(n)的查找速度。
[0003]消息重发机制是保证总线数据交互中出现数据错帧、乱帧、丢帧后数据可达的机制。
[0004]传统的系统间报文超时重发管理通常采用数组标记的方式进行管理,对于不同的报文类型,报文发送后在数组中标记是否需要应答,对于不断增加需要应答的报文数量,数组的长度需要不断增加,造成了系统运行负载的增大,计算机控制系统中需要打开定时器进行计数,此定时器用来判断不同定时报文的超时应答。当报文重发的时候,需要找到发送的总线信息,内容,长度等信息,一般为全局共有变量,从第一次发送到超时未应答后发送中间变量以及数据的值都可本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于哈希表的报文协议超时重发管理方法,其特征在于,包括以下步骤:S1:报文需要进行超时重发时,设计系统间报文协议以及在报文发送出去后目的节点接收到报文后需要回复的接收确认帧,即应答帧;S2:定义总线载体BusInfo,S3:定义重发管理结构体MainReSend,S4:定义一个哈希表类Hash型变量gSndQ,此哈希表用来存储帧发送出去的信息,S5:在发送报文端,报文内容填充完成并发送;S6:报文接收线程中,接收应答帧,并在哈希表中标记处理;S7:设置重发处理定时器,启动定时器,遍历重发管理结构体,判断是否重发,重发则转S8;S8:重发管理结构体变量中计数器进行加一操作,对报文进行重发。2.如权利要求1所述的基于哈希表的报文协议超时重发管理方法,其特征在于,步骤S1中,系统间报文协议定为变长协议,包括:两个字节的协议帧头FrmHead,四个字节的帧序号FrmNum,使用帧序号进行ID标记,帧序号是对应应答帧的唯一标识ID,一个字节的此标识ID重发次数ReCnt,两个字节的帧长度FrmLen,两个字节的帧类型FrmType,四个字节的目的地址FrmDst、四个字节的源地址FrmSrc,两个字节的应答标识FrmACKFlag,此标识用来表示该帧是否需要应答,两个字节的功能码FrmCode,字节数不定的负载内容FrmContent,两个字节的校验FrmChk,以及两个字节的帧结尾FrmTail。3.如权利要求2所述的基于哈希表的报文协议超时重发管理方法,其特征在于,步骤S1中,应答帧ACK的帧头部分和帧尾部分与上述报文一致,内容为四个字节的帧序号的帧序号,两个字节的功能码;发送帧与应答帧帧协议相互关联时以帧序号进行关联。4.如权利要求3所述的基于哈希表的报文协议超时重发管理方法,其特征在于,步骤S2中,总线载体BusInfo包含两个元素,分别为:

总线类型,此类型为枚举型,0表示以太网发送,1表示串口发送,2表示CAN总线发送;

需要发送数据的目的地址,类型为整型,根据总线类型确定为目的IP地址,串口端口号,以及CAN总线端口号。5.如权利要求4所述的基于哈希表的报文协议超时重发管理方法,其特征在于,步骤S3中,重发管理结构体MainReSend内容:

S2中定义的总线载体BusInfo,

要发送数据的内存地址Addr,类型为无符号指针型,

是否重发标志IsReSnd,设置为无符号字符型,值为1时表示需要重发,为0时表示不需要重发,

已发送次数计数HaSnCnt,设置为无符号整型,表示此数据已经发送的次数,

需要重发的次数NeSnCnt,此变量设置为无符号短整型。6.如权利要求5所述的基于哈希表...

【专利技术属性】
技术研发人员:王雨龙
申请(专利权)人:天津津航计算技术研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1