forked from fritob/Camper-Monitor
Android: Protokollschicht portiert und geprüft
Erster Teil der Android-Fassung. Portiert ist die Schicht, in der die ganze Erfahrung aus unseren Fehlersuchen steckt: Victron-Entschlüsselung, Daly klassisch und Modbus, JBD, WattCycle, Alpicool, der Neigungsmesser samt Einbaulage, Ausrichtungs-Assistent und Keilrechner. Sie liegt in einem eigenen Gradle-Modul aus reinem Kotlin, ohne Android-Abhängigkeiten. Das ist keine Förmlichkeit: nur so laufen ihre Prüfungen auf der Kommandozeile, ohne Emulator und ohne Android SDK - genau wie das run-tests.sh der iOS-Fassung. 50 Prüfungen, alle grün. Dieselben Vektoren wie unter iOS, darunter die, die uns Tage gekostet haben: der AES-Vektor aus NIST SP 800-38A, der echte Orion-XS-Rahmen aus der Diagnoseansicht, das mitgeschnittene Ausschaltpaket der IceCube Dual und die 30-Byte-Antwort der Box im Fahrzeug, an der sich zeigt, dass ein Fühlerplatzhalter von -128 keine zweite Zone ist. Zwei Dinge weichen bewusst ab. AES-CTR kommt aus der JVM statt aus CommonCrypto - der Zähler wird dort ebenso big-endian gezählt. Und Zeitstempel sind Millisekunden statt Date-Objekten: das läuft ohne Rücksicht auf die Android-Version und lässt sich in Prüfungen vorgeben, statt von der Uhr abzuhängen. Die Werkzeugkette steht in Android/env.sh: JDK 17, Gradle 8.11.1 über den Wrapper, Android SDK 35. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
BIN
Binary file not shown.
@@ -0,0 +1,9 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
|
||||
networkTimeout=10000
|
||||
retries=0
|
||||
retryBackOffMs=500
|
||||
validateDistributionUrl=true
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
Reference in New Issue
Block a user