mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik CANoe-Signalfilterung


Autor: Das Ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Martin B. (bennigotchi)
Datum:

Bewertung
0 lesenswert
nicht 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:
on message XYZ {
  if (this.byte[0] == 0x33) {
    output(this);
  } 
}

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:
on message * {
  output(this);
}

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

Autor: Das Ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat super funktioniert, vielen Dank! :-)

Autor: Nur so (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :)))))

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.