Skip to content

Latest commit

 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MB Database (iOS/iPadOS)

Native SwiftUI-App zum Nachschlagen von Mercedes-Benz-Steuergeräten (CBF/SMR, Varianten, Teilenummern, Fehlercodes) – Portierung der Desktop-App "ecufinder" auf iPhone und iPad. Die App arbeitet vollständig offline; Daten verlassen das Gerät ausschließlich über den ausdrücklichen "Per Mail senden"-Knopf.

Funktionsumfang

  • Suche: Einträge nach CBF/SMR, Steuergerät/Name/Einbauort, Variante und Teilenummern durchsuchen (zuschaltbare Filter, Varianten ausblenden), Einträge bearbeiten/löschen/als geprüft markieren, CSV-Export der Ansicht.
  • Fehlercodes: Suche über alle Fehlercodes mit Beschreibung und Status.
  • Teilenummern: HW-/SW-Teilenummern je Eintrag, immer pro Kurztest/Quelle getrennt (Stände verschiedener Fahrzeuge werden nie vermischt); mehrere Hardware-Revisionen über den "+"-Knopf pflegbar.
  • Fahrzeuge: alle Kurztest-Quellen (FIN maskiert, Baureihe, km, Zeitpunkt) mit ihren Steuergeräten und Fehlercodes.
  • Vergleich: zwei Kurztests vergleichen – geänderte Varianten, getauschte HW-/SW-Stände, neue/verschwundene Fehlercodes.
  • Kompatibilität (Spender-Check): zu Steuergerät + Variante alle Fahrzeuge anzeigen, in denen diese Variante lief, mit HW-/SW-Ständen.
  • Statistik: umschaltbar Liste/Statistik – Anzahl betroffener Fahrzeuge pro Fehlercode + Steuergerät.
  • CBF-Zuordnung: manuelle Zuordnungs-/Umbenennungstabelle ansehen und bearbeiten; wird sofort auf die Datenbank angewendet.
  • Logs: App-Aktivität/Warnungen/Fehler mit Level-Filter (DEBUG/INFO/WARNING/ERROR).
  • Duplikate & Zusammenführen: exakte Duplikate löschen; Einträge mit gemeinsamer Hardware-Teilenummer zusammenführen – bei Konflikten wählt der Benutzer je Feld (CBF/SMR, Steuergerät, Variante, Name, Einbauort, Diagnosekennung, Hardware-Nummern) den zu behaltenden Wert. Importierte HW-/SW-Nummern bleiben immer erhalten.
  • Kurztest-Import ("Meine Importe"):
    • Kamerascan über VisionKit mit On-Device-Texterkennung (Vision, VNRecognizeTextRequest) – ohne Internet.
    • PDF-Import über den Dateidialog, Textextraktion über PDFKit.
    • Ergebnisse landen in einem getrennten lokalen Speicher (meine_importe.db) und werden nie automatisch mit der Referenzdatenbank vermischt; Übernahme erst nach Prüfung per Knopf.
    • FIN/VIN werden beim Parsen automatisch maskiert (letzte 2 Stellen).
  • Mailversand: pro Import "Per Mail senden" – vorausgefüllt an peter.roitner@gmx.de, mit Original (Foto/PDF) und Parse-Ergebnis (JSON) als Anhang. Ohne eingerichtetes Mail-Konto öffnet sich stattdessen der Teilen-Dialog mit denselben Anhängen.

Projektstruktur

  • MBDatabase.xcodeproj – Xcode-Projekt (Xcode 16, iOS 17+, iPhone + iPad)
  • MBDatabase/App – App-Einstieg, App-Modell, Logging
  • MBDatabase/Models, MBDatabase/Database – GRDB-Records, Repository (Port von ecufinder/database.py), CBF-Zuordnung, Import-Speicher, Vergleich, CSV-Export, CBF-Nachschlag
  • MBDatabase/Parser – Swift-Port des Kurztest-Parsers (ecufinder/kurztest_parser.py): Xentry-PDF, DAS (deutsch/englisch), DAS-Einzelsteuergerät, Vediamo/Ecoute, HTML
  • MBDatabase/Import – Kamerascan, OCR, PDF-Import
  • MBDatabase/UI – alle SwiftUI-Ansichten (deutsche Oberfläche)
  • MBDatabase/Resources – mitgelieferte Referenzdatenbank ecufinder.db und cbf_zuordnung.json (werden beim ersten Start in das Application-Support-Verzeichnis kopiert)
  • MBDatabaseTests – XCTest-Suite mit vier echten Kurztest-Fixtures (W166, W205, W212, DAS/W219) samt erwarteten Parse-Ergebnissen

Bauen und Testen

  1. MBDatabase.xcodeproj in Xcode 16 (oder neuer) auf macOS öffnen.
  2. Beim ersten Öffnen lädt Xcode das Swift-Package GRDB.swift (https://github.com/groue/GRDB.swift, 6.x) automatisch.
  3. Schema "MBDatabase" wählen, Simulator oder Gerät wählen, ⌘R zum Starten, ⌘U für die Tests.

Die Tests vergleichen den Parser feldgenau gegen die mit der Python-Referenz erzeugten *.expected.json-Fixtures (Text-Pfad) und prüfen zusätzlich die PDF-Extraktion über PDFKit (Mengenvergleich der erkannten Steuergeräte, da PDFKit Zeilen anders umbrechen kann als pdfminer).

Hinweis: Dieses Projekt wurde in einer Linux-Umgebung ohne Swift-Toolchain erstellt. Der Code ist gegen die dokumentierten GRDB-/SwiftUI-/Vision-APIs geschrieben und textuell geprüft, aber ein erster Build-/Testlauf unter Xcode auf macOS steht noch aus und kann kleinere Korrekturen erfordern.

App-Store-Vorbereitung (offene Schritte)

  • Bundle-ID: Platzhalter com.mbdatabase.ios – nach Anlage eines Apple-Developer-Accounts durch die echte ID ersetzen und DEVELOPMENT_TEAM (Team-ID) in den Target-Einstellungen setzen (Signing & Capabilities → Team).
  • App-Icon: Platzhalter (1024×1024) durch ein finales Icon ersetzen.
  • App Store Connect: App-Eintrag anlegen (Name, Untertitel, deutsche Beschreibung, Schlagwörter, Support-URL).
  • Screenshots: iPhone (6,7") und iPad (12,9") erstellen.
  • Datenschutz-Label ("Privacy Nutrition Label"): "Daten werden nicht erhoben" – die App sammelt/überträgt keine Daten; Inhalte verlassen das Gerät nur über den vom Benutzer ausgelösten Mailversand/Teilen-Dialog. Kamera-/Fotozugriff nur zur lokalen Texterkennung (siehe Info.plist).
  • Version 1.0.0, Build 1 (bereits eingestellt).

Bekannte Einschränkungen (erste Version)

  • OCR-Qualität hängt von der Fotoqualität ab; Kurztest-Protokolle mit sehr kleiner Schrift ggf. seitenweise fotografieren. Erkannte Ergebnisse vor der Übernahme in die Datenbank prüfen.
  • Reine Bild-PDFs (Scans ohne Textebene) werden beim PDF-Import nicht erkannt – solche Protokolle stattdessen mit der Kamera scannen.
  • Beim Kamerascan wird die erste Seite als Foto-Anhang gespeichert (mehrseitige Scans werden vollständig erkannt, aber nur die erste Seite hängt an der Mail).
  • Der Vergleich zweier Kurztests rekonstruiert die Daten aus der Datenbank; Details, die beim Import verworfen wurden (z. B. Statusmarker der Kopfzeile), fließen nicht in den Vergleich ein.
  • Kein GitHub-Upload (bewusst entfallen – ersetzt durch den Mailversand).

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages