From 24e0094d2a2486b28f2941005de270178299ad49 Mon Sep 17 00:00:00 2001 From: Cole Deck Date: Thu, 25 Jul 2024 10:35:16 -0500 Subject: [PATCH] Add system controller camera mode --- process_video.py | 63 ++++++++++++++++++++++++++++++------------------ 1 file changed, 39 insertions(+), 24 deletions(-) diff --git a/process_video.py b/process_video.py index 14b1006..303ab59 100755 --- a/process_video.py +++ b/process_video.py @@ -4,40 +4,55 @@ import cv2 import banner_ivu_export import numpy as np from util import fprint +import requests class qr_reader(): camera = None def __init__(self, ip, port): self.ip = ip self.port = port + self.url = "http://" + ip + ":" + str(port) + "/barcode" #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): + # print(str(x) + " ", end="", flush=True) + # imgtype, img = self.camera.read_img() + + # if img is not None: + # #fprint(imgtype) + # image_array = np.frombuffer(img, np.uint8) + # img = cv2.imdecode(image_array, cv2.IMREAD_COLOR) + # #cv2.imshow('Image', img) + # #cv2.waitKey(1) + # detect = cv2.QRCodeDetector() + # value, points, straight_qrcode = detect.detectAndDecode(img) + + # if value != "": + # self.camera.close() + # return value + # else: + # print("\nGot no image for " + str(x)) + + # self.camera.close() + # return False 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): - print(str(x) + " ", end="", flush=True) - imgtype, img = self.camera.read_img() - - if img is not None: - #fprint(imgtype) - image_array = np.frombuffer(img, np.uint8) - img = cv2.imdecode(image_array, cv2.IMREAD_COLOR) - #cv2.imshow('Image', img) - #cv2.waitKey(1) - detect = cv2.QRCodeDetector() - value, points, straight_qrcode = detect.detectAndDecode(img) - - if value != "": - self.camera.close() - return value - else: - print("\nGot no image for " + str(x)) - - self.camera.close() - return False + try: + response = requests.get(self.url, timeout=tries * 15) + response.raise_for_status() # Raise an error for bad status codes + print(response.text) # Or handle the response as needed + if len(response.text < 8): + return False + return response.text + except requests.Timeout: + print(f'The request timed out after {tries * 15} seconds') + except requests.RequestException as e: + print(f'An error occurred: {e}') - + return False + class video_streamer(): camera = None def __init__(self, ip, port):