Files
Camper-Monitor/Tools/README.md
T
fototeddyandClaude Sonnet 5 e9b9c5bcd5 Solar-Integration und dev_watch-Geräte zusammenführen
solar-integration (aus dem separaten VanAligneiOS-Repo) und dev_watch
haben unabhängige Git-Historien, decken aber überlappende und sich
ergänzende Funktionen ab. Übernommen aus solar-integration: Votronic-
Solar-ESP-Anbindung samt Geräterolle, die Live-Activity/Widget-Extension
fürs Sperrbildschirm/Dynamic-Island/CarPlay, das Querformat-Layout für
Libelle/Fahrzeug-Ansicht und Ausrichtungs-Assistent, sowie die
mehreren Fahrzeuggrafik-Stile (Vanster/California). Beibehalten aus
dev_watch: alle zusätzlichen Geräteprotokolle (Daly-/JBD-BMS, Alpicool-
Kühlbox, WattCycle, Victron), die dort zwischenzeitlich entstanden.

Die Xcode-Projektdatei wurde von Hand um die neue Widget-Extension samt
SharedActivity-Gruppe erweitert (Datei-synchronisierte Gruppen, kein
App-Group-Entitlement nötig). Build für App, Watch und Widget-Extension
geprüft (Debug und Release).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-06 21:00:14 +02:00

1.8 KiB
Raw Blame History

Werkzeuge

make-app-icon.swift

Bereitet logo.png zum App-Icon auf. Nötig, weil das Logo als fertige Kachel vorliegt: mit weißem Rand und eingebrannten runden Ecken. iOS maskiert die Ecken selbst und verbietet einen Alphakanal unbearbeitet säße auf dem Homescreen ein weißer Rahmen um das Icon.

Das Skript schneidet den weißen Rand weg, macht den Ausschnitt quadratisch und versetzt ihn so weit nach innen, bis die vier Ecken im Hintergrund liegen. Anschließend skaliert es auf 1024×1024 ohne Alphakanal.

swiftc -O -o /tmp/make-app-icon Tools/make-app-icon.swift
/tmp/make-app-icon logo.png CamperMonitor/Assets.xcassets/AppIcon.appiconset/AppIcon-1024.png

Nur nötig, wenn logo.png sich ändert das erzeugte Icon liegt im Repo.

make-vehicle-art.swift

Bereitet die Fahrzeugzeichnungen aus VanAlign Pro für die Neigungsanzeige auf. Die Vorlagen sind weiß gefüllt mit dunklen Linien und Fenstern. Als Schablone eingefärbt ginge beides verloren, weil alles Deckende zur Tintfarbe wird übrig bliebe eine massive Fläche.

Das Skript übersetzt deshalb die Helligkeit in Deckkraft: dunkle Linien werden voll deckend, die helle Karosserie nur angedeutet. Eingefärbt ergibt das eine gefüllte Form, in der die Details erhalten bleiben.

swiftc -O -o /tmp/make-vehicle-art Tools/make-vehicle-art.swift
sips --resampleHeight 600 heckansicht.png --out /tmp/rear.png
/tmp/make-vehicle-art /tmp/rear.png CamperMonitor/Assets.xcassets/VansterRear.imageset/VansterRear.png

Jedes Fahrzeug-Grafikset (siehe VehicleGraphicStyle) hat sein eigenes Bildpaar <Name>Side/<Name>Rear. Hat die Vorlage schon einen transparenten Hintergrund, geht die Quelldatei direkt ins Skript. Liegt sie auf weißem Grund, muss der Rand vorher weg sonst wird die ganze Fläche mitgefärbt.