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)