🍅 我是蚂蚁小兵 ,专注于车载诊断领域,尤其擅长于对CANoe工具的使用 🍅 寻找组织 ,答疑解惑,摸鱼聊天,博客源码,点击加入👉【相亲相爱一家人】 🍅 玩转CANoe,博客目录大全,点击跳转👉
在不使用cdd/pdx等诊断数据库的情况下,用户可以使用LINtp.dll文件实现LIN总线的诊断通信 在LINtp.DLL文件中封装的函数如下图所示
以下测试基于主节点仿真,从节点真实在线 在主节点的Componts中加载LINtp.dll。文件路径参考下图
在主节点中加载lintp.can文件,发送单帧请求的示例代码如下
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) ;
} 。。。。
🚩要有最朴素的生活,最遥远的梦想,即使明天天寒地冻,路遥马亡! 🚩如果这篇博客对你有帮助,请 “点赞” “评论”“收藏”一键三连 哦!码字不易,大家的支持就是我坚持下去的动力。