报文合并函数说明.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
报文合并函数说明

【文件号:】 系统平台数据管理分册 报文合并 函数说明书 VER 1.00.081110 项目代码:SimIED 修 改 历 史 No 修改日期 修改章节 修改内容 备注 1 200/11/10 王浩儒 初步实现报文合并函数 初稿 审核 批准 设计目的: 在接收到报文时,由于网络原因导致接收方不能按顺序接收发送方发送的报文,因此有 必要对报文根据其报文ID和帧ID进行合并。 设计描述: 具体来说,报文合并主要围绕三个链来展开: (1)、报文链:具有相同报文ID的报文按照帧ID由小到大的顺序组成一个链表,而该 链表则为时间链上某一个结点的一个分支; (2)、时间链:具有不同报文ID的时间结点按照其接收报文的时间顺序由早到晚组成一个链表,每接收一个新报文,就会在时间链上查找一次,如果能找到与该报文同报文ID的时间结点,则将该报文添加到该时间结点所对应的报文链中,并将该时间结点移至时间链尾,如果没找到,那么在时间链尾新添加一个时间结点,并将该报文结点作为该时间结点的报文链的链头; (3)、合并链:设置合并链的目的是跟踪报文合并情况,避免重复合并报文。应该在所允许的最短报文合并时间外合并同一个报文,而如果该报文合并的时间短于这个最短报文合并时间,那么应视为重复报文而舍弃。比如说,最短报文合并时间为30秒,那么先接收一个报文符合条件合并后,在接下来的30秒时间内,是不允许再合并与该报文ID相同的报文的。 关于报文合并的相关思想请参考文档《报文合并机制》; 宏说明: 宏名称 意义 MAX_RECEIVE_TIME 接收报文超时时间 MIN_MERGE_TIME 合并报文最短时间 MAX_BUF_LEN 报文数据长度 MAX_ID_NUM 最大接收报文总数 MAX_FRAMEID_NUM 最大合并报文帧数 MAX_MERGE_NUM 最大合并节点数 MAX_TIME_NUM 最大时间结点数 函数说明: (1)、初始化合并链: 原型:ST_VOID InitMergeList(ST_VOID); 参数:无 返回值:无 说明:在合并报文前先对相应的合并链动态分配数组进行初始化,以便在合并时动态申请或释放合并链结点,在初始化函数中调用一次; (2)、初始化报文链和时间链: 原型:ST_VOID InitPackageAndTimeList(ST_VOID); 参数:无 返回值:无 说明:初始化报文链和时间链,以便动态分配和释放报文链和时间链的结点,在初始化函数中调用一次; (3)、动态分配报文链结点: 原型:ST_VOID MallocPackageNode(LPRECEIVE_PACKAGE_NODE *lpAdd); 参数:参数名称 参数类型 参数意义 lpAdd LPRECEIVE_PACKAGE_NODE * 即将分配报文链结点的指针 返回值:无 说明:在添加新的报文链结点时,利用该函数从报文链动态分配数组中分配一个报文链结点,以便将其添加进时间链结点相应的报文链中; (4)、动态释放报文链结点: 原型:ST_VOID FreePackageNode(LPRECEIVE_PACKAGE_NODE lpFree); 参数:参数名称 参数类型 参数意义 lpFree LPRECEIVE_PACKAGE_NODE * 将要释放报文链结点的指针 返回值:无 说明:在将报文链合并后,释放报文链上所涉及的结点的内存,该函数所做的工作就是将这些内存进行回收再利用; (5)、动态分配时间链结点: 原型:ST_VOID MallocTimeNode(LPRECEIVE_TIME_NODE *lpAdd); 参数:参数名称 参数类型 参数意义 lpAdd LPRECEIVE_TIME_NODE * 即将分配时间链结点的指针 返回值:无 说明:在添加新的时间链结点时,利用该函数从时间链动态分配数组中分配一个时间链结点,以便将其添加进时间链; (6)、动态释放时间链结点: 原型:ST_VOID FreeTimeNode(LP

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档