From 660fe292364d2448929ab54f6ecbef6683a5de3d Mon Sep 17 00:00:00 2001 From: Cole Deck Date: Fri, 19 Apr 2024 09:43:43 -0500 Subject: [PATCH] Update camera image parser --- banner_ivu_export.py | 15 +++++++++------ process_video.py | 25 ++++++++++++++++++------- 2 files changed, 27 insertions(+), 13 deletions(-) diff --git a/banner_ivu_export.py b/banner_ivu_export.py index cb61bb5..d0e0c44 100755 --- a/banner_ivu_export.py +++ b/banner_ivu_export.py @@ -40,13 +40,16 @@ class DriveImg(): self.onLine = False fprint("Offline") + def close(self): + self.trans.close() + def read_img(self): resposta = 'Falha' try: if not self.onLine: #print(f'tentando Conectar camera {self.ip}...') gravaLog(ip=self.ip,msg=f'Trying to connect...') - sleep(2) + #sleep(2) try: self.trans = socket.socket(socket.AF_INET,socket.SOCK_STREAM) self.trans.connect((self.ip,self.PORT)) @@ -63,13 +66,13 @@ class DriveImg(): if valida.find("TC IMAGE")<0: self.onLine = False self.trans.close() - sleep(2) + #sleep(2) gravaLog(ip=self.ip,tipo="Falha",msg=f'Unable to find TC IMAGE bookmark') return "Error" except Exception as ex: self.onLine = False self.trans.close() - sleep(2) + #sleep(2) gravaLog(ip=self.ip,tipo="Falha",msg=f'Error - {str(ex)}') return "Error" if ret: @@ -113,7 +116,7 @@ class DriveImg(): #print(f'erro {str(ex)}') self.onLine = False self.trans.close() - sleep(2) + #sleep(2) return resposta class DriveData(): @@ -139,7 +142,7 @@ class DriveData(): if not self.onLine: #print(f'tentando Conectar...\n') gravaLog(ip=self.ip,msg=f'tentando Conectar...',file="log_data.txt") - sleep(2) + #sleep(2) try: self.trans = socket.socket(socket.AF_INET,socket.SOCK_STREAM) self.trans.connect((self.ip,self.PORT)) @@ -154,7 +157,7 @@ class DriveData(): except Exception as ex: self.onLine = False gravaLog(ip=self.ip,tipo="Falha Generica",msg=f'erro {str(ex)}',file="log_data.txt") - sleep(2) + #sleep(2) return resposta diff --git a/process_video.py b/process_video.py index 42b020a..77a6689 100755 --- a/process_video.py +++ b/process_video.py @@ -8,13 +8,18 @@ from util import fprint class qr_reader(): camera = None def __init__(self, ip, port): - self.camera = banner_ivu_export.DriveImg(ip, port) + self.ip = ip + self.port = port + #self.camera = banner_ivu_export.DriveImg(ip, port) def read_qr(self, tries=1): print("Trying " + str(tries) + " frames.") + self.camera = banner_ivu_export.DriveImg(self.ip, self.port) for x in range(tries): - try: - imgtype, img = self.camera.read_img() + print(str(x) + " ", end="", flush=True) + imgtype, img = self.camera.read_img() + + if True: #fprint(imgtype) image_array = np.frombuffer(img, np.uint8) img = cv2.imdecode(image_array, cv2.IMREAD_COLOR) @@ -22,9 +27,13 @@ class qr_reader(): #cv2.waitKey(1) detect = cv2.QRCodeDetector() value, points, straight_qrcode = detect.detectAndDecode(img) - return value - except: - continue + + if value != "": + self.camera.close() + return value + + + self.camera.close() return False @@ -41,5 +50,7 @@ class video_streamer(): if __name__ == "__main__": test = qr_reader("192.168.1.125", 32200) + import time while True: - fprint(test.read_qr(5)) \ No newline at end of file + fprint(test.read_qr(300)) + time.sleep(1) \ No newline at end of file