下面我们具体看NL_OBD_SendCANFrame函数关于ISO15765-4协议这部分代码的实现。如下图所示。
NL_OBD_SendCANFrame函数有4个参数:
第1个参数 pro, 当前要处理的CAN协议类型,协议类型可以是SAEJ1939,ISO15765_4STD_500K,ISO15765_4EXT_500K。当前我们讨论的是后两种协议。
第2个参数TxMessage,待发送的请求数据,如上图中的EntCmd15765,DTCCmd15765,VinCmd15765,DSCmd15765。
第3个参数TimeOut,等待响应超时时间,单位为毫秒。如果在该设置时间内没有得到汽车或者模拟器响应请求数据,则超时。超时标志由第4个参数表示。
第4个参数 *err, 该参数用以表示函数请求响应是否超时,参数必须为NLStatus定义变量的地址。超时则未得到汽车或者模拟器响应 *err = NL_NOK;没有超时则说明在第3个参数规定的时间内获得了汽车或者模拟器针对当前请求信息的响应 *err=NL_OK。
看函数体本身代码,51行将第1个参数值赋值给全