文件名称:报文显示与分析模块设计-zotero+坚果云文献管理与同步
文件大小:2.99MB
文件格式:PDF
更新时间:2024-06-27 14:45:50
ISO15765 诊断软件
3.4.2报文显示与分析模块设计 报文显示与分析模块,实现对发送和接收的报文内容进行详细分析及显示,见 图3.16,包括时间栏,报文传输方向,诊断诊断的类型,诊断服务类型,报文的 ID,报文的长度,以及报文的数据。 在VC中以报表控件的方式分栏显示,使得其显示相对清晰。 图3.16报文显示与分析模块设计 时间栏显示的为报文显示的当前系统时间,用MFC封装的CTime类的 GetCurrelltTime方法可获得系统的当前时间。 CTime time=CTime::GetCurrentTime0; str=time.Format(”%Y/%mMd%H:%M:%S”); 方向栏的显示,当在接收线程时,接收到的报文即将显示栏设置为“接收’’, 但当在接收线程里判断接收的报文,并响应报文,则应将显示栏设置为“发送”; 当双击树形控件发送诊断服务请求时,将显示栏设置为“发送"。 对帧类型的判断,诊断帧有单帧、第一帧、流控帧和后续帧四种帧类型,取诊 断报文的第一字节的高四位进行判断,若值为0则为单帧,值为1为第一帧,值 为2为后续帧,值为3为流控帧。 对诊断服务的判断,对诊断服务种类进行判断与显示前,首先进行帧类型的判 断,若为单帧则取第二个字节进行判断,若为第一帧则取第三个字节进行判断, 若为流控帧或后续帧,则不对诊断服务种类进行判断与显示,因为此两类帧不含 有诊断服务信息。其判断流程如图3.17所示。 42