Code cleanup and re-org

Change-Id: Ifed47cfd5113be790eb57d92d4585b1427b56464
diff --git a/person_detection/action.py b/person_detection/action.py
new file mode 100644
index 0000000..5cd241f
--- /dev/null
+++ b/person_detection/action.py
@@ -0,0 +1,62 @@
+import paho.mqtt.client as mqtt
+import time
+import os
+import sys
+import threading
+import logging as log
+
+import roc
+
+mqttBroker ="localhost"
+
+resolution = {}
+timer = {}
+timestamp = {}
+
+
+def person_detected(device, num):
+    timestamp[device] = time.time()
+    if device in resolution and resolution[device] == "high":
+        return
+    set_resolution_high(device)
+
+
+def start_timer(device):
+    # log.info("Start timer for device {}".format(device))
+    timer[device] = threading.Timer(10.0, timer_expiry, device)
+    timer[device].start()
+
+
+def remove_timer(device):
+    del timer[device]
+
+
+def set_resolution_high(device):
+    set_resolution(device, "high")
+    roc.set_uplink_mbr_high()
+
+
+def set_resolution_low(device):
+    set_resolution(device, "low")
+    roc.set_uplink_mbr_low()
+
+
+def set_resolution(device, level):
+    log.info("Setting camera {} resolution to {}".format(device, level))
+    resolution[device] = level
+    if level == "high" and device not in timer:
+        start_timer(device)
+    client = mqtt.Client()
+    client.connect(mqttBroker)
+    client.publish("camera/" + str(5000 + int(device)), level)
+
+
+def timer_expiry(device):
+    now = time.time()
+    diff = now - timestamp[device]
+    # log.info("timer_expiry() - now:{}, timestamp:{}".format(now, timestamp[device]))
+    if diff > 5.0:
+        set_resolution_low(device)
+        remove_timer(device)
+    else:
+        start_timer(device)