Die Type ist uint8_t für das Signal definiert, mit einem Wertebereich
von 0..255, Scale 1 und Offset 0.
Wozu sind nun die Funktionen encode und decode vorhanden, insbesondere
von und zur Type double? Für mich müsste es von uint8_t zu uint8_t
gewandelt werden bzw. sind die Funktionen ohne Sinn. Wo ist hier mein
Denkfehler?
Beispiel:
>Bei diesen Funktionsnamen bekommt man ja Hirnkrebs.
Hab schon schlimmere Message- und Signalnamen gesehen. So ist halt die
Message und das Signal im DBC definiert.
Eine recht verbreitete Strategie - eine allgemeine Library arbeitet mit
dem universellsten Datentyp. Und der Generator passt die reinkommenden
und ausgehenden Daten an die Library an.
Macht halt weniger Arbeit, als den gesamten Programmcode optimal
generieren.
Thorben schrieb:> Die Type ist uint8_t für das Signal definiert, mit einem Wertebereich> von 0..255, Scale 1 und Offset 0.> Wozu sind nun die Funktionen encode und decode vorhanden, insbesondere> von und zur Type double?
Die werden vermutlich einfach standardmäßig für jedes Signal generiert.
> Für mich müsste es von uint8_t zu uint8_t gewandelt werden bzw. sind die> Funktionen ohne Sinn. Wo ist hier mein Denkfehler?
Wäre der Faktor oder der Offset z.B. 0,5, dann müsste man double nehmen.
Die Software berücksichtigt einfach den Spezialfall "Faktor=1, Offset=0,
Größe <= 8 Bit" nicht und nimmt für alles double, weil man diesen Fall
damit auch abdecken kann. Dementsprechend wird dafür dann auch eine
Umrechnungsfunktion generiert.