#coding:utf8 import threading import time import random from file_monitor import FileMonitor import long_op # Can't do 'from long_op import LongOp' here, because reload only works on module level fm = FileMonitor() fm.add_file("long_op.py", long_op) fm.start() resource = threading.BoundedSemaphore(2) threads = [] lock = threading.Lock() EXITTHREADS = False def start_thread(): while True: resource.acquire() print("Start new thread") t = long_op.LongOp(random.randint(0, 9)) with lock: threads.append(t) t.start() if EXITTHREADS: break def clear_threads():
print("\n[{0}] End Camera..!".format(sys.argv[0])) # start-up if __name__ == "__main__": exeName = main.__file__ # camera obj cap = cv2.VideoCapture(camDevID) if not (cap.isOpened()): print("[{0}] Camera Open Fail..!".format(sys.argv[0])) sys.exit(0) # file monitor fm = FileMonitor() fm.add_file("./Algorithm.py", Algorithm) fm.start() try: print("[{0}] ==== Camera Activated ====".format(sys.argv[0])) while True: ret, frame = cap.read() algo = Algorithm.Algorithm() nFrame = algo.do_func(frame) cv2.imshow('CCD LIVE', nFrame) # update frame if cv2.waitKey(1) & 0xFF == ord('q'): break
img_res_h = int(config['Camera']['resolution_h']) flg_start = False frame = np.zeros((img_res_h, img_res_w, 3), np.uint8) client = mqtt.Client("client_algorithm") client.connect(MQTT_ServerIP, MQTT_ServerPort) print("===========================") print("Data lake IP: {}".format(MQTT_ServerIP)) print("S_Topic: {}".format(MQTT_SubTopic)) print("P_Topic: {}".format(MQTT_TopicName)) ''' hmr ''' # register file_monitor fm = FileMonitor() fm.add_file("algorithm.py", algorithm) fm.start() print("\n===========================") print("FM ready..") ''' mqtt subscriber ''' def on_connect(client, userdata, flags, rc): print("\n===========================") print("Connected with result code " + str(rc)) client.subscribe(MQTT_SubTopic) # sub single topic def on_message(client, userdata, msg): global frame global flg_start