Kombiinstrument - Anpassen des Kilometerstands: Unterschied zwischen den Versionen

Aus T4Forums Doku
Zur Navigation springenZur Suche springen
Keine Bearbeitungszusammenfassung
Zeile 7: Zeile 7:
Er kann nach dem Ersetzen eines defekten Kombiinstruments in das neue Instrument übernommen werden, indem der komplette Bereich kopiert wird.  
Er kann nach dem Ersetzen eines defekten Kombiinstruments in das neue Instrument übernommen werden, indem der komplette Bereich kopiert wird.  


Bei einem Kilometerstand von 15 sind alle Blöcke des genanten Speicherbereichs auf 0x00 gesetzt. Dann wird pro gefahrenem Kilometer eine Zelle um eins hoch gezählt, bis alle 16 Zellen den gleichen Wert haben.
Alternativ kann er auch berechnet werden:
Daraufhin wird wird wieder an Offset 0x00 begonnen, die erste Zelle des Speicherbereichs um eins zu imkrementieren.
Der Kilometerstand wird in Blöcken zu je 2 Byte im genannten Speicherbereich abgelegt
 
Bei einem Kilometerstand von 15 sind alle Blöcke auf 0x00 gesetzt. Dann wird pro gefahrenem Kilometer ein Block um eins hoch gezählt, bis alle 16 Blöcke den gleichen Wert aufweisen.
Daraufhin wird wird wieder an Offset 0x00 begonnen, den ersten Block des Speicherbereichs um eins zu imkrementieren.
<pre>
15 0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
15 0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 
16 0000: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
16 0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 
17 0000: 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00
17 0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 
...
 
31 0000: 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00
31 0010: 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00
 
32 0000: 02 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00
32 0010: 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00
 
33 0000: 02 00 02 00 01 00 01 00 01 00 01 00 01 00 01 00
33 0010: 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00
</pre>
 


Der Kilometerstand kann mittels folgendem Python-Skript berechnet werden: (die ausgegebenen Werte müssen noch byteweise gedreht werden, bevor sie in den Speicher geschrieben werden)
Der Kilometerstand kann mittels folgendem Python-Skript berechnet werden: (die ausgegebenen Werte müssen noch byteweise gedreht werden, bevor sie in den Speicher geschrieben werden)

Version vom 17. März 2021, 19:56 Uhr

Hinweis das modifizieren des Kilometerstandes zu betrügerischen Zwecken ist verboten. Die folgenden Informationen sollen dazu dienen, nach dem Tausch des KIs den zum Fahrzeug passenden Kilometerstand zu programmieren oder einfach nur aufzeigen, wie einfach der Kilometerstand verändert werden kann

grünes KI(1996 - 1998)

Der Kilometerstand ist in den Speicherstellen 0x00 - 0x1F abgelegt.

Er kann nach dem Ersetzen eines defekten Kombiinstruments in das neue Instrument übernommen werden, indem der komplette Bereich kopiert wird.

Alternativ kann er auch berechnet werden: Der Kilometerstand wird in Blöcken zu je 2 Byte im genannten Speicherbereich abgelegt

Bei einem Kilometerstand von 15 sind alle Blöcke auf 0x00 gesetzt. Dann wird pro gefahrenem Kilometer ein Block um eins hoch gezählt, bis alle 16 Blöcke den gleichen Wert aufweisen. Daraufhin wird wird wieder an Offset 0x00 begonnen, den ersten Block des Speicherbereichs um eins zu imkrementieren.

15 0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
15 0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

16 0000: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
16 0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

17 0000: 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00
17 0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

...

31 0000: 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00
31 0010: 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00

32 0000: 02 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00
32 0010: 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00

33 0000: 02 00 02 00 01 00 01 00 01 00 01 00 01 00 01 00
33 0010: 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00


Der Kilometerstand kann mittels folgendem Python-Skript berechnet werden: (die ausgegebenen Werte müssen noch byteweise gedreht werden, bevor sie in den Speicher geschrieben werden)

import sys

print("Kilometerstand eingeben:")

Kilometerstand = int(input())

if (Kilometerstand <= 15):
    print("Kilometerstand muss mindestens 16 betragen")
    input()
    sys.exit()


Kilometerstand = Kilometerstand - 15

Basis = Kilometerstand // 16

Inkrement = Kilometerstand % 16

BasisHex = hex(Basis)

print("Wert der ersten " + str(Inkrement) + " Blöcke: " + str(hex(Basis+1)))
print("Wert der restlichen Blöcke: " + str(hex(Basis)))

input()