Hi,
mir ist ein kleiner Fehler in der obd2_kw1281.c Datei aufgefallen.
In der Function KW1281_chk_err steht folgendes
Code:
...
for (i=1; i<=block_length-6; i++) // 3+3 Bytes der block length bereits verarbeitet
{
--> ecu = ser_getc(); // weitere fehlerbytes interessieren jetzt nicht
uart_putc (0xFF-ecu); // Komplement schicken
ser_getc(); // echo ignorieren
}
ser_getc(); // Block-end Byte ignorieren
--> if ((ecu == 0xFF) && (ecu1 == 0xFF) && (ecu2 == 0x88)) // kein Fehler gespeichert
fehler = 0;
kw1281_snd_ack ();
...
Sollte die Block_length länger als 0x06 sein, wird das
ecu Byte überschrieben!