def connect(sensor, location, algorithm, uri): global mqtt2db, rec2db, runva try: mqtt2db = MQTT2DB(algorithm) # this waits for mqtt rec2db = Rec2DB(sensor) runva = RunVA() topic = str( uuid.uuid4()) # topic must be different as camera may reconnect with ThreadPoolExecutor(2) as e: e.submit(mqtt2db.loop, topic) e.submit(rec2db.loop) # any VA exit indicates a camera disconnect with ThreadPoolExecutor(1) as e1: e1.submit(runva.loop, sensor, location, uri, algorithm, topic) if not stop: mqtt2db.stop() rec2db.stop() raise Exception("VA exited. This should not happen.") except Exception as e: print("Exception: " + str(e), flush=True)
def connect(sensor, algorithm, uri): global mqtt2db, rec2db, runva try: mqtt2db = MQTT2DB(algorithm) # this waits for mqtt rec2db = Rec2DB(sensor) runva = RunVA() topic = "smtc_va_inferences_" + algorithm with ThreadPoolExecutor(3) as e: e.submit(mqtt2db.loop, topic) e.submit(rec2db.loop) e.submit(runva.loop, sensor, uri, algorithm, topic) except Exception as e: print("Exception: " + str(e), flush=True)
def connect(sensor, location, uri, algorithm, algorithmName, resolution, zonemap): global mqtt2db, rec2db, runva print("==============count-crowd:connect:zonemap=", zonemap, "========================", flush=True) flatZonemap = [] for sublist in zonemap[0]["polygon"]: for item in sublist: flatZonemap.append(item) try: mqtt2db = MQTT2DB(algorithm) # this waits for mqtt rec2db = Rec2DB(sensor) runva = RunVA("crowd_counting") topic = str( uuid.uuid4()) # topic must be different as camera may reconnect with ThreadPoolExecutor(2) as e: e.submit(mqtt2db.loop, topic) e.submit(rec2db.loop) # any VA exit indicates a camera disconnect with ThreadPoolExecutor(1) as e1: e1.submit(runva.loop, sensor, location, uri, topic, algorithm, algorithmName, resolution, zonemap[0]["zone"], flatZonemap) if not stop: mqtt2db.stop() rec2db.stop() raise Exception("VA exited. This should not happen.") except Exception as e: print("Exception in connect: " + str(e), flush=True)