Hallo,
ich habe in CANoe UDS Nachrichten definiert. Jetzt möchte ich in CAPL
ein Skript schreiben, welches mir eine Nachricht raussendet und die
Antwort auswertet. Später möchte ich dann so mein Protokoll testen. Aber
bei CAPL habe ich noch das Problem, dass ich nicht weiß, wie ich an die
Daten von CANoe komme. Als Vorlage habe ich mir das Beispiel von Vector
genommen.
1 |
|
2 | SendRequestAndCheckReturnvalue(diagRequest * req)
|
3 | {
|
4 | long ret;
|
5 |
|
6 | ret=req.SendRequest();
|
7 | if(ret>=0)
|
8 | write("(First frame of) Request has been successfully sent");
|
9 | else
|
10 | write("Error when trying to send the request");
|
11 | }
|
12 |
|
13 | on key '4'
|
14 | {
|
15 | DiagRequest TesterPresent req;
|
16 |
|
17 | SendRequestAndCheckReturnvalue(req);
|
18 |
|
19 | }
|
20 |
|
21 | on diagResponse TesterPresent
|
22 | {
|
23 | long ret;
|
24 |
|
25 | if(this.IsPositiveResponse())
|
26 | {
|
27 | ret = 1;
|
28 | write("Tester Present positive response");
|
29 | }
|
30 | else
|
31 | {
|
32 | ret = 0;
|
33 | write("Tester Present negative response");
|
34 | }
|
35 | }
|
Dieses Skript soll mir eigentlich nur ausgeben, ob vom Service
TesterPresent eine positive oder negative response zurück kam.
Allerdings bekomme ich schon immer den Fehler
Error when trying to send the request
Das ist auch ein bisschen klar, da nirgendwo in CAPL definiert ist, wie
die Nachricht von TesterPresent aussieht.
In CANoe ist der Request und die erwartete response eingetragen.
Wie kann ich in CAPL jetzt sagen, dass diese Daten benutzt werden
sollen?
Ich hatte das Problem auch scbonmal im Mikrocontroller und Digitale
Elektronik geschrieben aber bisher keine Antwort erhalten. Daher
versuche ich es hier noch einmal.