本文主要是介绍LIN诊断(4)——Tp层函数LINtp.dll应用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
- 🍅 我是蚂蚁小兵,专注于车载诊断领域,尤其擅长于对CANoe工具的使用
- 🍅 寻找组织 ,答疑解惑,摸鱼聊天,博客源码,点击加入👉【相亲相爱一家人】
- 🍅 玩转CANoe,博客目录大全,点击跳转👉
- 在不使用cdd/pdx等诊断数据库的情况下,用户可以使用LINtp.dll文件实现LIN总线的诊断通信
- 在LINtp.DLL文件中封装的函数如下图所示
- 以下测试基于主节点仿真,从节点真实在线
- 在主节点的Componts中加载LINtp.dll。文件路径参考下图
- 在主节点中加载lintp.can文件,发送单帧请求的示例代码如下
/*@!Encoding:936*/variables
{byte req_data[4095] ;byte rxBuffer[4096];byte NAD = 0X55;enum eSchedTables{AppSend = 0,MasterReq = 1,DiagResp = 2};
}LINtp_DataInd(long count, DWORD nad)
{ long i;LINtp_GetRxData(rxBuffer, count);write( "004——————从0x%X接收了 %d 字节数据,然后切换到App调度表", nad,count);linChangeSchedTable(AppSend);for(i = 0;i<count;i++)write( "005——————rxBuffer[%d] = 0x%X", i,rxBuffer[i]);
}LINtp_DataCon(long count)
{write( "003——————成功发送了 %d 字节数据,然后切换到0x3D调度表", count);linChangeSchedTable(DiagResp);
}on key 'a'
{ write( "001——————切换到0x3C调度表");linChangeSchedTable(MasterReq);write( "002——————发送单帧请求数据");req_data[0] = 0x10;req_data[1] = 0x01;LINtp_DataReq(req_data,2,NAD);
}void LINtp_ErrorInd(int error)
{write( "error type %d", error);
}
- 测试结果如下图所示:
- 发送多帧请求的示例代码如下
。。。
on key 'b'
{ write( "001——————切换到0x3C调度表");linChangeSchedTable(MasterReq);write( "002——————发送多帧请求数据");req_data[0] = 0x2E;req_data[1] = 0xF1;req_data[2] = 0x90;LINtp_DataReq(req_data,110,NAD);
}。。。。
- 测试结果如下图所示
- 🚩要有最朴素的生活,最遥远的梦想,即使明天天寒地冻,路遥马亡!
- 🚩如果这篇博客对你有帮助,请 “点赞” “评论”“收藏”一键三连 哦!码字不易,大家的支持就是我坚持下去的动力。
这篇关于LIN诊断(4)——Tp层函数LINtp.dll应用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!