* Passiert auf einer der beiden Leitungen ein Event, wird dieses per IP Broadcast über Ethernet Broadcast und ein UDP auf einem lustigen Port ins LAN geblasen.
* Dort können beliebige Slaves mithören und das anzeigen.
* Im Frickelraum gibt es dann ein weiteres netIO, dass auf diese Broadcasts wartet und diese, wenn sie eintreten, visualisiert.
-* Ist es möglich einen befehl in der art von "leuchte 30 sec." zu geben? --[[Benutzer:Matthis|Matthis]] 15:15, 18. Okt. 2012 (CEST)
+* Ist es möglich einen Befehl in der Art von "leuchte 30 sec." zu geben? --[[Benutzer:Matthis|Matthis]] 15:15, 18. Okt. 2012 (CEST)
** Ja, ist möglich. Das Quell-Gerät sagt nur: Das Event ist passiert. Wie die anderen Geräte reagieren, kann auf denen jeweils festlegen. Eine Zeit ist dabei auf jeden Fall schon vorgesehen. --[[Benutzer:Chrissi^|Chrissi^]] 15:28, 18. Okt. 2012 (CEST)
== Systemarchitektur ==
=== UDP-Pakete ===
:''siehe: [[EVENTDISTR]]''
-Doorbell-Extender Ereignisse werden per UDP als IP-Broadcast (Broadcast des lokalen Netzes) auf Port 31337 (''wir sind in einem Hackerspace; welcher Port auch sonst!) übertragen. Der Datenteil der Pakete hat dabei einen fixen Aufbau:
+Doorbell-Extender Ereignisse werden per UDP als IP-Broadcast (Broadcast des lokalen Netzes) auf Port 31337 (''wir sind in einem Hackerspace; welcher Port auch sonst!'') übertragen. Der Datenteil der Pakete hat dabei einen fixen Aufbau:
<Proto ID>;<Event name>=<Event type>
Den Feldern kommt dabei folgende Bedeutung zu:
* '''Proto ID''': String, der das genaue verwendete Protokoll beschreibt. Zunächst ist nur der String "''EVENTDISTRv1''" erlaubt!
[[Datei:2012-10-23 19.56.32.jpg|thumb|Geöffnete Klingel-Box]]
[[Datei:2012-10-23 19.57.59.jpg|thumb|netIO im Flur]]
-== Demonstrator-Anwendung ==
+== Anwendungen ==
+
+=== pyEventdistr ===
+[https://github.com/stratum0/pyEventdistr pyEventdistr] hat die Skripte <tt>s0ring</tt>, um Klingelgeräusche zu erzeugen (use reasonably!), und <tt>s0open</tt>, um die Tür unten zu öffnen.
+
+=== Java-Implementierung ===
Java-Klasse, mit der UDP-Events gesendet und empfangen werden können.
-* Broadcast für den Space: 192.168.178.255
+* Broadcast für den Space: 192.168.179.255
* Events: siehe weiter oben
Verfügbar im [http://svn.tinyhost.de/stratum0/doorbell/trunk/UDP_SEND_workspace_%28Java%29/UDP-Send/src/doorbell/ SVN]
stop_command = b"EVENTDISTRv1;DoorUnten=RISING"
start_command = b"EVENTDISTRv1;DoorUnten=FALLING"
-ip = "192.168.178.255"
+ip = "192.168.179.255"
port = 31337
s = sock.socket(sock.AF_INET, sock.SOCK_DGRAM)