remove stuff
[svn42.git] / go / r3-eventbroker_zmq / metamovement.go
diff --git a/go/r3-eventbroker_zmq/metamovement.go b/go/r3-eventbroker_zmq/metamovement.go
deleted file mode 100644 (file)
index 3ccfd72..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-// (c) Bernhard Tittelbach, 2013
-
-package main
-
-import (
-    "time"
-    pubsub "github.com/tuxychandru/pubsub"
-    "container/ring"
-    r3events "svn.spreadspace.org/realraum/go.svn/r3events"
-    )
-
-
-/// Movement Meta Event Injector:
-///     threshold number of movements within gran_duration*granularity seconds -> SomethingReallyIsMoving{True}
-///     No movement within 3 hours but movement within the last 6 hours -> SomethingReallyIsMoving{False}
-///
-/// Thus SomethingReallyIsMoving{True} fires regularly, but at most every gran_duration seconds
-/// While SomethingReallyIsMoving{False} fires only once to assure us that everybody might really be gone
-
-
-func MetaEventRoutine_Movement(ps *pubsub.PubSub, granularity, gran_duration int , threshold uint32) {
-    var last_movement,last_movement1,last_movement2,last_movement3 int64
-    var confidence uint8
-    movement_window := ring.New(granularity+1)
-    events_chan := ps.Sub("movement")
-    defer ps.Unsub(events_chan, "movement")
-    myticker := time.NewTicker(time.Duration(gran_duration) * time.Second)
-
-    for { select {
-        case event := <- events_chan:
-            switch event.(type) {
-                case r3events.MovementSensorUpdate:
-                    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()
-            movement_window.Prev().Value = (uint32) (0)
-            movement_window = movement_window.Next()
-            var movsum uint32 = 0
-            movement_window.Do(func(v interface{}){if v != nil {movsum += v.(uint32)}})
-            if movsum > threshold {
-                confidence = uint8(movsum)
-                ps.Pub( r3events.SomethingReallyIsMoving{true, confidence ,ts}, "movement")
-                last_movement = ts
-                last_movement1 = ts
-                last_movement2 = ts
-                last_movement3 = ts
-            }
-            // 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