+ ps := pubsub.New(3)
+ defer ps.Shutdown()
+ //~ ticker := time.NewTicker(time.Duration(5) * time.Minute)
+ publish_these_events_chan := ps.Sub("door", "doorcmd", "presence", "sensors", "buttons", "movement")
+
+ go MetaEventRoutine_Movement(ps, 10, 20, 10)
+ go MetaEventRoutine_Presence(ps)
+
+ for {
+ select {
+ case subin := <- sub_in_chans.In():
+ ParseSocketInputLine(subin, ps, keylookup_socket)
+ //~ case <- ticker.C:
+ //~ MakeTimeTick(ps)
+ case event_interface := <- publish_these_events_chan:
+ data, err := r3events.MarshalEvent2ByteByte(event_interface)
+ log.Printf("publishing %s",data)
+ if err != nil {
+ if Syslog_ != nil {Syslog_.Print(err)}
+ continue
+ }
+ if err := pub_out_socket.Send(data); err != nil {
+ panic(err)
+ }
+ }
+ }
+