CANoe-Signalfilterung

Gast #939215
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
#940044
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren