@GW3 >> found 268:9:FlowTemperatureSensor >> in dem File Open3Edatapoints_680.py steht >> 268 : None, Wenn in einer Open3Edatapoints_6yz.py bei einem Datenpunkt : None steht heisst das, dass es bei dem Codec (die Interpretation der Daten) keine Änderung gegenüber der (generellen) Open3Edatapoints.py gibt, also es so aussieht wie in Open3Edatapoints.py verzeichnet. Auf dein Beispiel bezogen steht da 268 : O3EComplexType(9, "FlowTemperatureSensor", [O3EInt16(2, "Actual", signed=True), O3EInt16(2, "Minimum", signed=True), O3EInt16(2, "Maximum", signed=True), O3EInt16(2, "Average", signed=True), O3EByteVal(1, "Unknown")]), und so ist es dann auch bei deinem gescannten Device. Dass der Datenpunkt trotzdem in der Open3Edatapoints_680.py aufgeführt ist, hat den Zweck, anzuzeigen, dass der Datenpunkt bei ECU 0x680 existiert (in der Open3Edatapoints.py stehen ja auch noch ganz viele Datenpunkte, die auf der 0x680 nicht existieren). Das ist wichtig für ein --scanall. Jörg hat die treffende Bezeichnung 'Overlay' für die datapoints_6yz kreiert: Die 6yz Tabelle wird über die generelle datapoints drüber gelegt, da wo in der 6yz nix steht, ist auch nix. da wo in der 6yz None steht, schimmert der Eintrag aus der generellen datapoints durch, da wo in der 6yz etwas Explizites steht, gilt das Expizite. Wenn etwas Explizites da steht, kann das zwei Gründe haben:. Es gibt schlicht noch keinen Eintrag in der generellen Open3Edatapoints.py Die Länge der ausgelesenen Daten unterscheidet sich von der in der Open3Edatapoints.py und folglich kann der Codec dort nicht 'unfallfrei' angewendet werden. Dann schreiben wir den RawCodec hin, weil wir gewöhnlich nichts Tiefergehendes wissen. Bei 1. wäre es sinnvoll, den Eintrag in die generelle offizielle Open3Edatapoints.py zu übernehmen, damit eine einmal gefundene Decodierung dann automatisch für alle anderen Geräte angewendet wird. Bei 2. lohnt es nachzusehen, ob es sich in der generellen Tabelle um einen 'einfachen' Codec handelt. Ist es bsw. dort ein O3EUtf8, so liegt die Vermutung nahe, dass es auch ein Utf8 String ist, lediglich mit einer anderen Länge. Dann kann man das in seiner lokalen datapoints_6yz auch so reinschreiben und hat dann die Klartext/de/codierung mit passender Länge. Wenn es etwas complex/er/es ist, muss man gucken... Für 1. wäre es schön, wenn auf Dauer mal alle Leute entweder ihre _6yx.py's bei uns 'einschicken' oder selber die entsprechenden Datenpunkte in der Open3Edatapoints.py im abnoname/open3e develop branch ergänzen (per Fork -> einpflegen -> zum Mergen pushen).
... Mehr anzeigen