Я пытаюсь смоделировать узел в CAPL, который дает диагностический ответ на запросы тестера. В CANoe я добавил 2 сетевых узла: 1) ЭБУ и 2) Тестер.
//**In Tester.can**
DiagRequest service req; // In variables, with corresponding service from cdd
on key 'a'
{
read_diag_addr_request();
}
void read_diag_addr_request()
{
DiagSetTarget ("Target");
DiagResize(Diag_addr_req,2);
DiagSetprimitiveByte(req,1,0x1A);
DiagSetprimitiveByte(req,2,0xB0);
DiagSendRequest(req);
}
//**In ECU.can**
DiagResponse service res; // In variables, with corresponding service from cdd
on diagResponse *
{
write("IN DIAG_RESPONSE");
DiagResize(res,3);
DiagSetprimitiveByte(res,0,0x5A);
DiagSetprimitiveByte(res,1,0xB0);
DiagSetprimitiveByte(res,2,0x"data");
DiagSendResponse(res);
}
Запрос тестера [1A B0] виден в окне трассировки, но положительного ответа не наблюдается.
Примечание: учитывайте только положительный ответ, и запрос тестера правильный. Я попытался получить ответ, используя событие message *, и это отлично работает.
Может ли кто-нибудь помочь мне разобраться в проблеме при использовании функции CAPL DiagSendResponse?
Спасибо