rewrote web app with threading indication_driver
This commit is contained in:
parent
5197c767b0
commit
b61d514910
22
app.py
22
app.py
@ -1,5 +1,4 @@
|
|||||||
from flask import Flask, render_template, Response
|
from flask import Flask, render_template, Response
|
||||||
import asyncio
|
|
||||||
|
|
||||||
from indication_driver import IndicationDriver
|
from indication_driver import IndicationDriver
|
||||||
from camera_driver import CameraDriver
|
from camera_driver import CameraDriver
|
||||||
@ -13,18 +12,21 @@ camera_driver = CameraDriver()
|
|||||||
def stream():
|
def stream():
|
||||||
global indication_driver
|
global indication_driver
|
||||||
global camera_driver
|
global camera_driver
|
||||||
indication_task = None
|
last_codes = []
|
||||||
while True:
|
while True:
|
||||||
jpg, codes = camera_driver.get_decoded_frame(400, 800)
|
jpg, codes = camera_driver.get_decoded_frame(400, 800)
|
||||||
trash_category = None
|
if codes and not (set(codes) & set(last_codes)):
|
||||||
if codes:
|
print(codes)
|
||||||
if indication_task is not None:
|
trash_category = None
|
||||||
indication_driver.stop_loop()
|
known_code = None
|
||||||
if codes[0] in config.BARCODE_LOOKUP_TABLE.keys():
|
for code in codes:
|
||||||
trash_category = config.BARCODE_LOOKUP_TABLE[codes[0]]
|
known_code = code if code in config.BARCODE_LOOKUP_TABLE.keys() else known_code
|
||||||
indication_task = asyncio.create_task(indication_driver.indicate_async(trash_category))
|
if known_code:
|
||||||
|
trash_category = config.BARCODE_LOOKUP_TABLE[known_code]
|
||||||
|
indication_driver.indicate(trash_category)
|
||||||
else:
|
else:
|
||||||
indication_driver.stop_loop()
|
indication_driver.stop()
|
||||||
|
last_codes = codes
|
||||||
yield b'--frame\r\nContent-Type: image/jpeg\r\n\r\n' + jpg + b'\r\n\r\n'
|
yield b'--frame\r\nContent-Type: image/jpeg\r\n\r\n' + jpg + b'\r\n\r\n'
|
||||||
|
|
||||||
@app.route('/')
|
@app.route('/')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user