looser parsing
[svn42.git] / go / r3-eventbroker_zmq / sockettoevent.go
index 2ebcc76..a7a21bf 100644 (file)
@@ -9,7 +9,7 @@ import (
     //~ "./brain"
     pubsub "github.com/tuxychandru/pubsub"
     zmq "github.com/vaughan0/go-zmq"
-    "./r3events"
+    r3events "svn.spreadspace.org/realraum/go.svn/r3events"
     )
 
 var (
@@ -32,11 +32,13 @@ func parseSocketInputLine_State(lines [][]byte, ps *pubsub.PubSub, ts int64) {
             ps.Pub(r3events.DoorLockUpdate{true, ts}, "door")
         case "opened":
             ps.Pub(r3events.DoorLockUpdate{false, ts}, "door")
-        case "manual":   //movement
+        case "manual", "manual_movement":   //movement
         case "error":
+            ps.Pub(r3events.DoorProblemEvent{100, ts}, "door")
         case "reset":
             ps.Pub(r3events.DoorLockUpdate{true, ts}, "door")
-        case "timeout":   //after open | after close
+        case "timeout", "timeout_after_open", "timeout_after_close":
+            ps.Pub(r3events.DoorProblemEvent{10, ts}, "door")
         case "opening":
         case "closing":
         default:
@@ -55,7 +57,8 @@ func ParseSocketInputLine(lines [][]byte, ps *pubsub.PubSub, keylookup_socket *z
             parseSocketInputLine_State(lines[1:], ps, ts)
         case "Status:":
             if len(lines) < 3 { return }
-            ps.Pub(r3events.DoorLockUpdate{string(lines[1]) == "closed,", ts}, "door")
+            if len(lines[1]) < 4 { return }
+            ps.Pub(r3events.DoorLockUpdate{string(lines[1])[0:4] != "open", ts}, "door")
             ps.Pub(r3events.DoorAjarUpdate{string(lines[len(lines)-1]) == "shut", ts}, "door")
         case "Info(card):":
             if len(lines) < 3 { return }
@@ -81,18 +84,11 @@ func ParseSocketInputLine(lines [][]byte, ps *pubsub.PubSub, keylookup_socket *z
             //~ if err == nil {
                 //~ ps.Pub(r3events.IlluminationSensorUpdate{0, newphoto, ts}, "sensors")
             //~ }
-        case "IlluminationSensorUpdate","TempSensorUpdate":
-            //try decode r3event
-            evnt, err := r3events.UnmarshalByteByte2Event(lines)
-            if err == nil {ps.Pub(evnt, "sensors")}
-        case "MovementSensorUpdate" :
-            //try decode r3event
-            evnt, err := r3events.UnmarshalByteByte2Event(lines)
-            if err == nil {ps.Pub(evnt, "movement")}
-        case "BoreDoomButtonPressEvent" :
-            //try decode r3event
-            evnt, err := r3events.UnmarshalByteByte2Event(lines)
-            if err == nil {ps.Pub(evnt, "buttons")}
+        default:
+            evnt, pubsubcat, err := r3events.UnmarshalByteByte2Event(lines)
+            if err == nil {
+                ps.Pub(evnt, pubsubcat)
+            }
     }
 }