Ab die Post!

Gestern kam der All3500 samt zusätzlicher Hardware an. Nach anfänglichen Problemen (der beiliegende Temperatursensor läuft wohl nur direkt am Gerät, nicht am Multiplexer) läuft nun alles.

Naja, "nun". Das SDK ist halt doch schon etwas älter, was vor allem bei den Allnet-Programmen auffällt. Nun sind diese aber für das SDK nicht nötig und ja eigentlich auch nicht zwingend GPL (steht nun aber in deren Codeheader drin).

Hürde Nummer eins: Das Ding ist ja MIPS. Also erstmal statt der ARM-Crosscompilierung die für MIPS konfiguriert. Das war noch einfach, Compilernamen tauschen.

Hürde Nummer zwei: der Linker hat sich sowas von über die libsqlite3.so aufgeregt. Mit Recht! Die lag zwar in einem MIPS-Verzeichnis, war aber die für ARM! Zum Glück lag ein Howto daneben, damit ließ sich das dann machen. Warum aber nicht gleich so?

Hürde Nummer drei: Die Datenbank hat eine bessere Struktur bekommen, dummerweise wusste mein Code nichts davon.

Hürde Nummer vier: Der Shared-Memory-Bereit ist anders strukturiert. Das hätte mir fast die Nacht versaut. Statt der kleinen Speicherblöcke pro Gerät und einer klaren Positionsnummer in der Datenbank nun etwas ganz anderes. In der Datenbank sind die Geräte nun mit Primary-Key einfach durchnummeriert. Nach den vielen Test war ich inzwischen bei Nummer 140. Dump des Speichers war echt mühsam. Zum Glück war die neue Struktur in der Basisidee noch der alten ähnlich: Irgendwo ein Int-Wert mit den Sensordaten. Nach etlichen Stunden der Suche, Analyse und Versuchen läuft nun aber alles!!

Ein erstes Test-UPN-Steuerungsprogramm läuft! Bei Bewegung schaltet es die eingebauten Relais für eine festgelegte Zeit ein.

,$bewegung, timer(bewegung:300),timer(bewegunglang:400)
$bewegung,>bewegung

timer(bewegung) => $Schaltausgang_0
timer(bewegunglang) => $Schaltausgang_1

Schade, hätte ich aber aus meiner Erfahrung mit Embedded-Systemen wissen sollen: Komplexere Mathematik mit Sinus und Cosinus geht nicht. Damit fällt die Berechnung von Sonnenauf- und -untergangszeiten erstmal weg. Mal sehen, was es da online gibt oder ob man die Zeiten als Tabelle fix eincompiliert. Dann fällt aber die Wahl des Standorts weg, nicht so gut.

Kleine Posse: nachdem ich nach einer Woche Pause das eingebaute Passwort der SDK-VM einfach nicht mehr wusste, hab ich das nun endlich gegen was simples ersetzt - was Ubuntu einem ja nicht so leicht macht....