列车实时数据通信协议(TRDP)探索之路【五】

您所在的位置:网站首页 trdp协议栈 列车实时数据通信协议(TRDP)探索之路【五】

列车实时数据通信协议(TRDP)探索之路【五】

2023-10-02 03:40| 来源: 网络整理| 查看: 265

时隔N久,才发现TRDP中的MD一直没有更新。距离项目已经好几个月了,大致已经忘光啦。何时能达到张无忌学习太极拳剑的地步QAQ。

不过还是稍微总结一下吧 。

MD大致也就是caller和replier的交互。需要做的工作便是加入监听的comId,然后发送call请求,剩下的便是在收包时做处理了。关于MD的类型也是有好几种,不同类型的处理流程也是不一样的。

EXT_DECL TRDP_ERR_T tlm_addListener ( TRDP_APP_SESSION_T appHandle, TRDP_LIS_T *pListenHandle, const void *pUserRef, TRDP_MD_CALLBACK_T pfCbFunction, BOOL8 comIdListener, UINT32 comId, UINT32 etbTopoCnt, UINT32 opTrnTopoCnt, TRDP_IP_ADDR_T srcIpAddr1, TRDP_IP_ADDR_T srcIpAddr2, TRDP_IP_ADDR_T mcDestIpAddr, TRDP_FLAGS_T pktFlags, const TRDP_URI_USER_T srcURI, const TRDP_URI_USER_T destURI) TRDP_ERR_T tlm_request ( TRDP_APP_SESSION_T appHandle, const void *pUserRef, TRDP_MD_CALLBACK_T pfCbFunction, TRDP_UUID_T *pSessionId, UINT32 comId, UINT32 etbTopoCnt, UINT32 opTrnTopoCnt, TRDP_IP_ADDR_T srcIpAddr, TRDP_IP_ADDR_T destIpAddr, TRDP_FLAGS_T pktFlags, UINT32 numReplies, UINT32 replyTimeout, const TRDP_SEND_PARAM_T *pSendParam, const UINT8 *pData, UINT32 dataSize, const TRDP_URI_USER_T sourceURI, const TRDP_URI_USER_T destURI)

call动作调用的是

TRDP_ERR_T trdp_mdCall ( const TRDP_MSG_T msgType, TRDP_APP_SESSION_T appHandle, const void *pUserRef, TRDP_MD_CALLBACK_T pfCbFunction, TRDP_UUID_T *pSessionId, UINT32 comId, UINT32 etbTopoCnt, UINT32 opTrnTopoCnt, TRDP_IP_ADDR_T srcIpAddr, TRDP_IP_ADDR_T destIpAddr, TRDP_FLAGS_T pktFlags, UINT32 numExpReplies, UINT32 replyTimeout, INT32 replyStatus, const TRDP_SEND_PARAM_T *pSendParam, const UINT8 *pData, UINT32 dataSize, const TRDP_URI_USER_T srcURI, const TRDP_URI_USER_T destURI)

这里面做了很多准备工作,socket etc..

replier和caller一样,需要加入监听comId,剩下的都是收包处理。可以在Linux下用rep-repliertest试试效果。

MD在实时数据传输中是非常重要的,TTDB的数据都是基于这个模型,整体流程没那么复杂,重要的是理解交换流程来满足业务需求。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3