Hallo, eine Frage zum Thema, was ein CAN-Empfänger mit dem DBC-File anstellt, speziell wie Wertetabellen behandelt werden: Ich habe hier einen Sensor, der über CAN Daten schickt. Im DBC-File ist definiert: Signal: 16 Bit signed Faktor: 0,01 Offset: 0 somit Wertebereich -327,68 bis 327,67 Außerdem ist eine Wertetabelle hinterlegt, laut der der Wert 0xFFFF bedeutet "Keine Daten erhalten". (Ich weiß, das liegt mitten im normalen Messbereich, 0x8000 wäre besser.) Das Problem: Das Empfangsprogramm (ich weiß leider nicht, welches benutzt wird) speichert, wenn 0xFFFF empfangen wird, den Wert -0,01, also einen "normalen" Messwert. Sollte dieser Wert nicht ausgefiltert und durch "Keine Daten erhalten" ersetzt werden? Was steht denn normalerweise in der Messwertdatei, wenn solche "Sonderwerte" empfangen werden?
:
Bearbeitet durch User
Günter N. schrieb: > Das Empfangsprogramm (ich weiß leider nicht, welches benutzt wird) > speichert, wenn 0xFFFF empfangen wird, den Wert -0,01, also einen > "normalen" Messwert. > Sollte dieser Wert nicht ausgefiltert und durch "Keine Daten erhalten" > ersetzt werden? Nö, warum? Es ist aus der Sicht des Programms nur ein Wert, der einen bestimmten Namen bekommen hat. Dass das bedeutet, dass keine Daten da sind, ist nur deine Interpretation des Wertes. Stell dir mal die Gangwahl für ein Automatrikgetriebe vor. Es gibt die manuelle Wahl der Gänge 1 bs 7 und die "Spezialwerte" R, N, D und P. Würdest du da erwarten, dass nur bei manueller Gangwahl was rauskommt und R, N, D und P als "keine Daten" gewertet werden? > Was steht denn normalerweise in der Messwertdatei, wenn solche > "Sonderwerte" empfangen werden? Das kommt auf den Anwendungsfall an. Aber das universellste wäre, den Wert einfach auszugeben, so wie es deine Software getan hat.
:
Bearbeitet durch User
Günter N. schrieb: > Das Empfangsprogramm (ich weiß leider nicht, welches benutzt wird) Die Interpretation der dbc-Datei und Umrechnung der rohen CAN-Daten ist nun mal Aufgabe des Empfangsprogramms. Wenn dieses etwas anderes macht hat das erst mal nix mit der CAN-Spezifikation zu tun. Es steht dem Programmierer frei ob er sich an die Vorgaben in der DBC halten will.
Vielen Dank an Euch beide! Das erklärt einiges. In diesem Fall werden die empfangenen Daten geplottet, und da sieht es dann so aus, als ob es Ausreißer zu 0 bzw. -0,01 hin gibt. Die Interpretation, dass das "kein Wert" bedeutet, wird also dem geneigten Anwender überlassen. Prima, dass es hier endlich mal Antworten ohne das übliche "bist du aber doof" und so weiter gab!
Günter N. schrieb: > In diesem Fall werden die empfangenen Daten geplottet, und da sieht es > dann so aus, als ob es Ausreißer zu 0 bzw. -0,01 hin gibt. Die > Interpretation, dass das "kein Wert" bedeutet, wird also dem geneigten > Anwender überlassen. Wenn im dbc 0xFFFF als "Fehlerwert" definiert ist so darf dieser nicht in eine physikalische Darstellung umgerechnet werden. Der Plotter verhält sich also falsch.
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.