Code cleanup and re-org
Change-Id: Ifed47cfd5113be790eb57d92d4585b1427b56464
diff --git a/person_detection/mqtt.py b/person_detection/action.py
similarity index 82%
rename from person_detection/mqtt.py
rename to person_detection/action.py
index ce40411..5cd241f 100644
--- a/person_detection/mqtt.py
+++ b/person_detection/action.py
@@ -5,6 +5,8 @@
import threading
import logging as log
+import roc
+
mqttBroker ="localhost"
resolution = {}
@@ -16,7 +18,7 @@
timestamp[device] = time.time()
if device in resolution and resolution[device] == "high":
return
- set_resolution(device, "high")
+ set_resolution_high(device)
def start_timer(device):
@@ -29,6 +31,16 @@
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
@@ -44,7 +56,7 @@
diff = now - timestamp[device]
# log.info("timer_expiry() - now:{}, timestamp:{}".format(now, timestamp[device]))
if diff > 5.0:
- set_resolution(device, "low")
+ set_resolution_low(device)
remove_timer(device)
else:
start_timer(device)
diff --git a/person_detection/app.py b/person_detection/app.py
index 1386d63..87a2cd9 100644
--- a/person_detection/app.py
+++ b/person_detection/app.py
@@ -8,15 +8,8 @@
from flask import Flask, render_template, Response
from argparse import ArgumentParser, SUPPRESS
-# import camera driver
-if os.environ.get('CAMERA'):
- Camera = import_module('camera_' + os.environ['CAMERA']).Camera
-else:
- # from camera import Camera
- from person_detection import Camera
+from person_detection import Camera
-# Raspberry Pi camera module (requires picamera package)
-# from camera_pi import Camera
app = Flask(__name__)
diff --git a/person_detection/person_detection.py b/person_detection/person_detection.py
index 92a5e4a..47a3fcf 100644
--- a/person_detection/person_detection.py
+++ b/person_detection/person_detection.py
@@ -17,15 +17,11 @@
from base_camera import BaseCamera
-import mqtt
+import action
Shape = namedtuple('Shape', ['n','c','h','w'])
class Camera(BaseCamera):
- model = None
- prob_threshold = 0.0
- input = None
- device = None
def __init__(self, device, args):
log.basicConfig(format="[ %(levelname)s ] %(message)s", level=log.INFO, stream=sys.stdout)
@@ -33,9 +29,7 @@
self.model_xml = args.model
self.input = args.input
self.prob_threshold = args.prob_threshold
-
self.is_async_mode = True
-
self.device = device
super(Camera, self).__init__(device, args.idle)
@@ -148,7 +142,7 @@
cv2.FONT_HERSHEY_COMPLEX, 0.6, black, 1)
if obj_count > 0:
- mqtt.person_detected(self.device, obj_count)
+ action.person_detected(self.device, obj_count)
yield cv2.imencode('.jpg', frame)[1].tobytes()
diff --git a/person_detection/roc.py b/person_detection/roc.py
index ecf7e77..96d4ac5 100644
--- a/person_detection/roc.py
+++ b/person_detection/roc.py
@@ -8,7 +8,8 @@
from requests.structures import CaseInsensitiveDict
-TOKEN = "### A VALID TOKEN ###"
+TOKEN = "eyJhbGciOiJSUzI1NiIsImtpZCI6IjU0MzE3MDI4ZWJjNGZjNzFkNGUyZDdlODQwN2M2NTI4MWU5ZmYzYTgifQ.eyJpc3MiOiJodHRwczovL2RleC5hZXRoZXJwcm9qZWN0Lm9yZy9kZXgiLCJzdWIiOiJDaXN4TmpNNE5ERTZPRGMxWlRNeU5qY3RZakkwT1MwME9XTXdMV0V5TW1ZdE1qUmlaalUyWXprNVpEazFFZ1ZqY205M1pBIiwiYXVkIjoiYWV0aGVyLXJvYy1ndWkiLCJleHAiOjE2Mzg2MzkwNTQsImlhdCI6MTYzODU1MjY1NCwibm9uY2UiOiJkemw0TkZGb1RDMDBjVWxyVlRsMmJVTTVRekJvY3pCRVQzZEVWbWxKVlU5UVZXVlBjSFpoTm14NU1ERnIiLCJhdF9oYXNoIjoiWElONGprZzdyeWRzVVRROVBjekVZZyIsImNfaGFzaCI6IlZuSng4cklpSGRYeWFjSi0yaVgyaEEiLCJlbWFpbCI6InNoYWRAb3Blbm5ldHdvcmtpbmcub3JnIiwiZW1haWxfdmVyaWZpZWQiOnRydWUsImdyb3VwcyI6WyJBZXRoZXJST0NBZG1pbiIsIk9ORlN0YWZmIl0sIm5hbWUiOiJzaGFkIiwicHJlZmVycmVkX3VzZXJuYW1lIjoic2hhZCJ9.F6v3q5RuJVUm-4BPcj02IOoDL5grsmjlYzGJSvuM7R9lCIWXI-Qi6Xb-rgLtCBH3qGhWHuk8abd7ud2ipYDnpLybavJOB8iPr_I-lBy6MFxriTxp6OipeZ5nxAXyt9iyslNcLTTmzapsV5Blzl5xvzwOqCItV9dIRVtDNYPiU5CYEA69Eu8Gy8d_0URmI5re26LaBzJ8EHu1KHuhTh3RoExZUHyCagrTmtUnLkep9jXOTszGoKW2Qw7p2H3d-vHIAVGCx2JBERQC8zAalIaajTZ_gc8lqgzsYauSbHIVdm7o5AesL_dCOJQF1E-FTXDOdVMHVmos7BDchr9jui5_Dg"
+### A VALID TOKEN ###"
URL = "https://roc.menlo.aetherproject.org/aether-roc-api/aether/v4.0.0/connectivity-service-v4/"
#URL = "https://roc.staging.aether.onlab.us/aether-roc-api/aether/v4.0.0/connectivity-service-v4/"
@@ -16,8 +17,8 @@
cameras = "menlo-4g-cameras"
#cameras = "cameras-4g"
-MBR_HIGH = 4000000
-MBR_LOW = 2000000
+MBR_HIGH = 5000000
+MBR_LOW = 2000000
roc_headers = CaseInsensitiveDict()
roc_headers["Content-Type"] = "application/json"
@@ -26,7 +27,9 @@
def get_mbr(device_group):
url = URL + "vcs/vcs/vcs-{}/slice/mbr".format(device_group)
response = requests.get(url, headers=roc_headers)
- assert response.status_code == 200, "Failed to get mbr"
+ if response.status_code != 200:
+ print("Failed to get mbr, status_code: {}".format(response.status_code))
+ return None
mbr = json.loads(response.text)
return mbr
@@ -34,6 +37,8 @@
url = URL + "vcs/vcs/vcs-{}/slice/mbr".format(device_group)
response = requests.post(url, headers=roc_headers, json=mbr)
assert response.status_code == 201, "Failed to set mbr"
+ if response.status_code != 201:
+ print("Failed to set mbr, device_group:{}, mbr:{}, status_code: {}".format(device_group, mbr, response.status_code))
def set_uplink_mbr_high():
mbr = {'uplink' : MBR_HIGH}
diff --git a/requirements.txt b/requirements.txt
index 4258352..e822bda 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,6 +1,9 @@
+certifi==2021.10.8
+charset-normalizer==2.0.8
click==8.0.1
dataclasses==0.8
Flask==2.0.1
+idna==3.3
importlib-metadata==4.8.1
imutils==0.5.4
itsdangerous==2.0.1
@@ -8,6 +11,8 @@
MarkupSafe==2.0.1
numpy==1.19.5
paho-mqtt==1.6.1
+requests==2.26.0
typing-extensions==3.10.0.2
+urllib3==1.26.7
Werkzeug==2.0.1
zipp==3.6.0