Module Aufbau

Hallo,

Ich will ein Module für eine Kamera Abfrage schreiben.
Aufbau:
Parent ist ein Client socket
Module Typ ist 3 (Gerät)

Das Modul macht den Login,baut eine Verbindung über den Socket zur Kamera auf und Überwacht ob die Kamera online ist.
Die Kamera schickt Events. Diese könen je nach größe auch in mehreren Packeten über den Socket kommen.
Das Modul sammelt die Packete bis sie komplett empfangen wurden und dekodiert die Daten.
Dieser Ablauf ist für jede Kamera gleich.

Meine Frage:
Wie schicke ich das komplette Event für die weiter Verarbeitung dann weiter??
Meine Idee war, es an eine Registervariable weiter zu senden. Kann man das so machen?

Die Registervariable ruft dann ein Script auf, dass das Event weiter verarbeitet (Dieses Script gibt es dann für jede Kamera, da die Events je nach Kamera unterschiedlich verarbeitet werden)

Wäre für eine Hilfe dankbar.

Ja… kann man machen.
Aber warum sollte man es so machen?

Warum dekoriert die Geräte Instanz nicht gleich das Event und verarbeitet es?
Alternativ wäre auch möglich; die Geräte Instanzen bilden nur bestimmte Typen von Events ab und zwischen IO und Geräte Instanz hänge ein Splitter welcher überwacht, sammelt und Events weiterleitet.
Michael

Weil jede Kamera je nach Anwendung andere Events schickt.

Kennzeichen, Bewegung usw. und dann auch andere Aktionen ausgelöst werden.

Wie schicke ich im Modul die Daten an eine Registervariable?
sendDatatochild?
welche GUID verwende ich da?

Gar nicht. Du musst die Registervariable nachbauen.

Ein Gerät kann den Datenfluss nie nach oben nutzen, da Geräte schon die oberste Ebene sind.

Ein Splitter kann es machen.
Aber nochmal… Warum???
Dann Bau doch eine Geräte Instanz für Bewegung, eine für Kennzeichen eine für Aufzeichnung usw…
Der Sinn von Modulen ist doch, dass sie ohne Script auskommen.
Sonst brauchst du auch gar kein Modul und machst alles mit Scripten in Symcon.

Michael

Ok, werde mir das ganze nochmal durch den Kopf gehen lassen…

Aber nur für mich:
Wie schicke ich mit dem Splitter dann die Daten an eine Registervariable

Der normale Virtual I/O Datenfluss.
Aber der kann halt nicht viel… Eigentlich kannst du dort nur einen Stream an Daten hinsenden.
Somit macht es auch null Sinn den zu nutzen, wenn du vorher schon einen Stream an Daten sammelst und aufbereitet hast, die Daten dann wieder zusammenzusetzen um sie seriell an die RegVar zu senden.

Dann kannst du die RegVar auch direkt an den IO hängen und alles im Script lösen :rofl:
Michael

ok, Danke

Mal schaun was ich bastle