Hallo, ich würde gerne in CANoe Messages mit gleichem identifier anhand der enthaltenen Signale filtern (Messages werden nur bei bestimmtem Wert eines enthaltenen Signals weitergereicht), bevor sie in den Graphik-View gehen. Der Filterblock arbeitet aber nur auf Message-Ebene. Kann ich das irgendwie mit einem CAPL-Knoten machen? Danke + Gruß, Das Ich
Mit einem CAPL-Knoten gehts bestimmt. Du kannst das Signal ja ganz einfach per Verknüpfungen und if-Bedingung(en) filtern und in eine Umgebungsvariable schreiben oder ein neues Signal erzeugen.
Hi, mit nem CAPL-Knoten geht das. Der muss vor dem Grafikfenster im Messaufbau eingebunden werden. Ausm Kopf sollte das ungefähr so ausschauen:
1 | on message XYZ { |
2 | if (this.byte[0] == 0x33) { |
3 | output(this); |
4 | } |
5 | } |
wenn XYZ im DBC File definiert ist kann man glaub' ich auch auf die Signale der Nachricht zugreifen mit this.Signaname Damit werden nur Nachrichten durchgelassen, die dem If Kriterium entspechen. Damit alle andern Messages nicht auch ausgefiltert werden, muss dann noch ein zweites on message in den CAPL-Code , der alle anderen Messages ungehindert durchlässt:
1 | on message * { |
2 | output(this); |
3 | } |
Soweit ich weis gilt bei den on message Funktionen, dass speziell Vorrang hat vor allgemein. Also werden die XYZ mit der ersten Funktion bewertet und alles andere mit der * Funktion. Bin aber grad im Urlaub und kann's deshalb nur ausm Kopf runterschreiben... Gruß Martin
Cool, nach langer Zeit wieder das Problem mit dem CAPL Filter aus der Versunkenheit wieder hervorgehollt. Endlich konnte ich es dank diesem Beitrag lösen :) Cool :)))))
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.