这是代码示例:
我在Main()中调用此函数:
fDiag_read_faults()
{
byte DTCasText[1000];
char reasonOut[10];
dword i;
diagRequest FaultMem_ReportDTCByStatusMask diag_req;
diagSetTarget("EPS218");
diagConnectChannel();
diagSetCurrentSession(1);
diagSendRequest(diag_req);
等等... 然后我期望对以下内容有反应:
on diagResponse *
{
byte data[4096];
long size;
diagResponse * resp; // declare response with no concrete interpretation
size=this.GetPrimitiveSize(); // get length of response
this.GetPrimitiveData(data, elcount(data)); // copy actual response into
data array
}
但是什么也没发生。 响应在总线上发出,但未执行diagresponse。 我正在使用CAN总线/ UDS协议。
非常感谢您的帮助。
答案 0 :(得分:1)
在测试模块中,您应该使用
testWaitForDiagResponse
用于等待响应。 然后,您可以使用
获取响应参数DiagGetRespParameter