X-Git-Url: https://git.realraum.at/?a=blobdiff_plain;f=go%2Fr3-netstatus%2Fsockettoevent.go;h=7165ac6a1b05539b9cb8a164342ab325aae9237e;hb=281827cdf431aec452bd1dc942a24c766a38efcb;hp=d3ffd22e1b4904752042445950f71c8cf9b3be9c;hpb=a8e0651d52192d208758ae9a59e21af313685da4;p=svn42.git diff --git a/go/r3-netstatus/sockettoevent.go b/go/r3-netstatus/sockettoevent.go index d3ffd22..7165ac6 100644 --- a/go/r3-netstatus/sockettoevent.go +++ b/go/r3-netstatus/sockettoevent.go @@ -4,53 +4,11 @@ package main import ( pubsub "github.com/tuxychandru/pubsub" - //~ "bufio" - //~ "time" - //~ "./brain" - //~ "net" - "encoding/json" - "log" r3events "svn.spreadspace.org/realraum/go.svn/r3-eventbroker_zmq/r3events" ) -func ParseZMQr3Event(lines [][]byte, ps *pubsub.PubSub) { //, brn *brain.Brain) { - //log.Printf("ParseZMQr3Event: len: %d lines: %s", len(lines), lines) - if len(lines) != 2 { - return - } - switch string(lines[0]) { - case "PresenceUpdate": - evnt := new(r3events.PresenceUpdate) - err := json.Unmarshal(lines[1],evnt) - if err == nil {ps.Pub(*evnt, "presence")} - case "IlluminationSensorUpdate" : - evnt := new(r3events.IlluminationSensorUpdate) - err := json.Unmarshal(lines[1],evnt) - if err == nil {ps.Pub(*evnt, "sensors")} - case "TempSensorUpdate" : - evnt := new(r3events.TempSensorUpdate) - err := json.Unmarshal(lines[1],evnt) - if err == nil {ps.Pub(*evnt, "sensors")} - case "MovementSensorUpdate" : - evnt := new(r3events.MovementSensorUpdate) - err := json.Unmarshal(lines[1],evnt) - if err == nil {ps.Pub(*evnt, "movement")} - case "BoreDoomButtonPressEvent" : - evnt := new(r3events.BoreDoomButtonPressEvent) - err := json.Unmarshal(lines[1],evnt) - if err == nil {ps.Pub(*evnt, "buttons")} - case "DoorLockUpdate" : - log.Print("DoorLockUpdate received") - evnt := new(r3events.DoorLockUpdate) - err := json.Unmarshal(lines[1],evnt) - if err == nil {ps.Pub(*evnt, "door")} - case "DoorAjarUpdate" : - evnt := new(r3events.DoorAjarUpdate) - err := json.Unmarshal(lines[1],evnt) - if err == nil {ps.Pub(*evnt, "door")} - case "DoorCommandEvent" : - evnt := new(r3events.DoorCommandEvent) - err := json.Unmarshal(lines[1],evnt) - if err == nil {ps.Pub(*evnt, "door")} - } +func ParseZMQr3Event(lines [][]byte, ps *pubsub.PubSub) { + evnt, pubsubcat, err := r3events.UnmarshalByteByte2Event(lines) + if err != nil { return } + ps.Pub(evnt, pubsubcat) }