Files
Camper-Monitor/run-tests.sh
T
BiasFandClaude Opus 5 daea73d649 Kühlbox: Zonen richtig erkennen, Stellbefehle nicht mehr abschneiden
Zwei Fehler am Gerät gefunden.

Einzonen-Boxen als Doppelzone erkannt: Manche senden den langen
Datensatz einer Zweizonen-Box mit, füllen den zweiten Block aber mit
Nullen. Die Nutzlastlänge allein taugt deshalb nicht als Kriterium. Als
zweizonig gilt jetzt nur, wo dieser Block überhaupt Inhalt hat, und in
den Geräteeinstellungen lässt sich die Erkennung auf "Eine Zone" oder
"Zwei Zonen" festnageln.

Einschalten reagierte nicht: Ein/Aus und Betriebsart schicken den
kompletten Einstellungsblock, der mit dem langen Datensatz auf 31 Byte
kommt. Ohne ausgehandelte MTU nimmt BLE aber nur 20 Nutzbytes je
Schreibvorgang an, der Rest wurde stillschweigend verworfen. Die
Solltemperatur ging als kurzes Paket durch, alles Längere nicht. Lange
Pakete werden jetzt anhand von maximumWriteValueLength aufgeteilt und
versetzt geschrieben; die Statusabfrage danach wartet entsprechend
länger. Aus dem kurzen Datensatz ist der Befehl übrigens genau 20 Byte
groß und hätte gerade noch gepasst - deshalb trat es nur an dieser Box
auf.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-30 14:21:28 +02:00

23 lines
895 B
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# Prüft die Protokoll-Logik (Victron-Entschlüsselung, Daly-Rahmen) ohne Hardware
# und ohne Simulator die Dateien sind bewusst frei von CoreBluetooth und SwiftUI.
set -e
cd "$(dirname "$0")"
OUT=$(mktemp -d)
swiftc -O -o "$OUT/tests" \
CamperMonitor/Bluetooth/AESCounterMode.swift \
CamperMonitor/Bluetooth/BitReader.swift \
CamperMonitor/Bluetooth/VictronAdvertisement.swift \
CamperMonitor/Bluetooth/DalyProtocol.swift \
CamperMonitor/Bluetooth/DalyState.swift \
CamperMonitor/Bluetooth/JBDProtocol.swift \
CamperMonitor/Bluetooth/WattCycleProtocol.swift \
CamperMonitor/Bluetooth/AlpicoolProtocol.swift \
CamperMonitor/Models/DeviceSnapshot.swift \
CamperMonitor/Models/ConfiguredDevice.swift \
CamperMonitor/Models/Profile.swift \
CamperMonitor/Models/VictronCodes.swift \
CamperMonitor/Store/KeychainStore.swift \
Tests/main.swift
"$OUT/tests"