Forum: Mikrocontroller und Digitale Elektronik CANoe-Signalfilterung


von Das Ich (Gast)


Lesenswert?

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

von tom (Gast)


Lesenswert?

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.

von Martin B. (bennigotchi)


Lesenswert?

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

von Das Ich (Gast)


Lesenswert?

Hat super funktioniert, vielen Dank! :-)

von Nur so (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.