X-Git-Url: https://git.realraum.at/?a=blobdiff_plain;f=go%2Fr3-eventbroker_zmq%2Fmetamovement.go;h=3ccfd7227ad50771b8d49f824ec59b37e3343476;hb=1781ff97276a703acb3c42ff7d83b380a94c1c50;hp=e61838deb48c0d00051b083c134cd3fde0eb1cff;hpb=eb53c27cdbdd790e391d29a51dec89c12a1dc3ef;p=svn42.git diff --git a/go/r3-eventbroker_zmq/metamovement.go b/go/r3-eventbroker_zmq/metamovement.go index e61838d..3ccfd72 100644 --- a/go/r3-eventbroker_zmq/metamovement.go +++ b/go/r3-eventbroker_zmq/metamovement.go @@ -30,7 +30,11 @@ func MetaEventRoutine_Movement(ps *pubsub.PubSub, granularity, gran_duration int case event := <- events_chan: switch event.(type) { case r3events.MovementSensorUpdate: - movement_window.Value = (uint32) (movement_window.Value.(uint32) + 1) + if movement_window.Value == nil { + movement_window.Value = uint32(1) + } else { + movement_window.Value = uint32(movement_window.Value.(uint32) + 1) + } } case gots := <- myticker.C: ts := gots.Unix() @@ -46,22 +50,21 @@ func MetaEventRoutine_Movement(ps *pubsub.PubSub, granularity, gran_duration int last_movement2 = ts last_movement3 = ts } - - if last_movement > 0 && ts - last_movement < 3600*6 && ts - last_movement > 3600*3 { - last_movement = 0 - ps.Pub( r3events.SomethingReallyIsMoving{false,99,ts}, "movement") - } - if last_movement1 > 0 && ts - last_movement < 3600*6 && ts - last_movement1 > 120 { - last_movement1 = 0 - ps.Pub( r3events.SomethingReallyIsMoving{false,10,ts}, "movement") - } - if last_movement2 > 0 && ts - last_movement < 3600*6 && ts - last_movement2 > 1800 { - last_movement2 = 0 - ps.Pub( r3events.SomethingReallyIsMoving{false,25,ts}, "movement") - } - if last_movement3 > 0 && ts - last_movement < 3600*6 && ts - last_movement3 > 3600 { - last_movement3 = 0 - ps.Pub( r3events.SomethingReallyIsMoving{false,50,ts}, "movement") + // this sucks..... + if last_movement > 0 && ts - last_movement < 3600*6 { + if ts - last_movement > 3600*3 { + last_movement = 0 + ps.Pub( r3events.SomethingReallyIsMoving{false,99,ts}, "movement") + } else if ts - last_movement > 3600 && last_movement3 > 0 { + last_movement3 = 0 + ps.Pub( r3events.SomethingReallyIsMoving{false,50,ts}, "movement") + } else if ts - last_movement > 1800 && last_movement2 > 0 { + last_movement2 = 0 + ps.Pub( r3events.SomethingReallyIsMoving{false,20,ts}, "movement") + } else if ts - last_movement > 120 && last_movement1 > 0 { + last_movement1 = 0 + ps.Pub( r3events.SomethingReallyIsMoving{false,5,ts}, "movement") + } } } } } \ No newline at end of file