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.
- 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).
- Kamerascan über VisionKit mit On-Device-Texterkennung (Vision,
- 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.
MBDatabase.xcodeproj– Xcode-Projekt (Xcode 16, iOS 17+, iPhone + iPad)MBDatabase/App– App-Einstieg, App-Modell, LoggingMBDatabase/Models,MBDatabase/Database– GRDB-Records, Repository (Port vonecufinder/database.py), CBF-Zuordnung, Import-Speicher, Vergleich, CSV-Export, CBF-NachschlagMBDatabase/Parser– Swift-Port des Kurztest-Parsers (ecufinder/kurztest_parser.py): Xentry-PDF, DAS (deutsch/englisch), DAS-Einzelsteuergerät, Vediamo/Ecoute, HTMLMBDatabase/Import– Kamerascan, OCR, PDF-ImportMBDatabase/UI– alle SwiftUI-Ansichten (deutsche Oberfläche)MBDatabase/Resources– mitgelieferte Referenzdatenbankecufinder.dbundcbf_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
MBDatabase.xcodeprojin Xcode 16 (oder neuer) auf macOS öffnen.- Beim ersten Öffnen lädt Xcode das Swift-Package GRDB.swift (https://github.com/groue/GRDB.swift, 6.x) automatisch.
- 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.
- Bundle-ID: Platzhalter
com.mbdatabase.ios– nach Anlage eines Apple-Developer-Accounts durch die echte ID ersetzen undDEVELOPMENT_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).
- 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).