logo

cubigato

cubigato GmbH veröffentlicht ThinkCar TC Reader als Open Source

Die cubigato GmbH hat das Projekt ThinkCar TC Reader als Open Source unter der Apache 2.0 Lizenz veröffentlicht. Das Projekt ist ab sofort auf GitHub verfügbar und steht der Entwicklergemeinschaft zur Verfügung.

Was ist ThinkCar TC Reader?

ThinkCar TC Reader ist eine Python-Bibliothek und ein Kommandozeilen-Tool zum Lesen und Konvertieren von ThinkCar .TC Diagnoselog-Dateien in das CSV-Format. ThinkCar-Diagnosegeräte (ThinkDiag, ThinkScan, ThinkTool) und Reseller-Apps (Kingbolen eDiag, Topdon) zeichnen OBD-II Live-Daten in einem proprietären Binärformat mit der Endung .TC auf. Diese Software ermöglicht das Parsen dieser Dateien und den Export der Daten für weitere Analysen.

Hauptfunktionen

Reverse Engineering des TC-Formats

Das proprietäre .TC-Dateiformat wurde durch Reverse Engineering vollständig analysiert und dokumentiert. Die Erkenntnisse aus diesem Prozess sind in einem ausführlichen Blogartikel beschrieben:

Binärdateiformate Reverse Engineering: ThinkCar .TC Diagnosedaten

Das Format verwendet eine interessante String-Table-Architektur mit 1-basierter Indizierung und speichert alle Werte als String-Referenzen. Die vollständige Formatspezifikation findet sich in der Projektdokumentation unter docs/TC-FILE-FORMAT.md.

Verwendung

Das Tool kann sowohl über die Kommandozeile als auch programmatisch genutzt werden:

Kommandozeile:

tc2csv recording.TC
tc2csv recording.TC -o output.csv

Python-API:

from thinkcar_tc_reader import parse_tc_file, export_to_csv

data = parse_tc_file("recording.TC")
export_to_csv(data, "output.csv")

# Zugriff auf Metadaten und Daten
print(f"Hersteller: {data.metadata.manufacturer}")
print(f"Parameter: {data.parameters}")

Technische Details

Das Projekt ist als modernes Python-Package strukturiert und verwendet uv für das Dependency Management. Die Architektur trennt sauber zwischen Parser, Exporter und Command-Line Interface. Das TC-Format verwendet eine Magic-Signatur (LSX9), Little-Endian-Encoding und speichert bis zu 32 Parameter pro Datensatz in fester Größe (128 Bytes).

Umfassende Unit-Tests mit pytest dokumentieren die Funktionalität, und ein Beispiel-Datensatz von einem Subaru Outback BR (2014) TCM ist im Repository enthalten.

Anwendungsfälle

Die Software richtet sich an alle, die Fahrzeugdiagnosedaten aus ThinkCar-Geräten für weitere Analysen exportieren möchten. Typische Anwendungsfälle sind:

Open Source Verfügbarkeit

Der vollständige Quellcode ist auf GitHub verfügbar:

https://github.com/cubigato/thinkcar-tc-reader

Das Projekt steht unter der Apache 2.0 Lizenz und freut sich über Beiträge der Entwicklergemeinschaft. Entwickler können das Repository klonen, Issues erstellen und Pull Requests einreichen.