diff --git a/driver/tsc_printer.py b/driver/tsc_printer.py index 185a751..6bbd122 100644 --- a/driver/tsc_printer.py +++ b/driver/tsc_printer.py @@ -6,7 +6,7 @@ Created on 19 mar 2020 import queue, time, socket, logging from driver.tsc_commands import TSC_COMMANDS, TSC_STATUS, LINE_SEP -from driver.notifier import URL_ERR, URL_EVENT, URL_RESPONSE, send_response +from driver.notifier import URL_ERR, URL_EVENT, URL_RESPONSE, send_response, send_event import traceback import struct @@ -95,14 +95,20 @@ def tsc_printer(q_in: queue.Queue, q_out: queue.Queue, q_cmd: queue.Queue, ip: s nonlocal prt prt.sendall(b'\x1B'+bytearray(TSC_COMMANDS['STATUS'], encoding=ENC)) time.sleep(0.1) - send_response(q_out, ip, "STATUS",{"stato": TSC_STATUS[struct.unpack('>b',prt.recv(1))[0]]}) + rsp=TSC_STATUS[struct.unpack('>b',prt.recv(1))[0]] + send_response(q_out, ip, "STATUS",{"stato": rsp}) + return rsp while True: # connetti mantieni vivo il socket try: with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as prt: prt.connect((ip, port)) - get_status() + sts=get_status() + if sts=="Normal": + send_event(q_out, ip, True, None, None) + else: + send_event(q_out, ip, True, sts, None) while True: itm = q_in.get(block=True) cmd = itm['name'] @@ -144,14 +150,17 @@ def tsc_printer(q_in: queue.Queue, q_out: queue.Queue, q_cmd: queue.Queue, ip: s logger.error("Comando stampante non riconosciuto") except socket.timeout as st: logger.error(f"Stampante {__name__} irraggiungibile:{st}") + send_event(q_out, ip, True, f"Stampante {__name__} irraggiungibile:{st}", None) prt.close() del prt except socket.error as se: - logger.error(f"Errore generico stamoante {__name__}: {se}") + logger.error(f"Errore generico stampante {__name__}: {se}") + send_event(q_out, ip, True, f"Errore generico stampante {__name__}: {se}", None) prt.close() del prt except Exception as e: traceback.print_exc() + send_event(q_out, ip, True, "Errore generale inizializzando la stampante: {}".format(e), None) logger.error("Errore generale inizializzando la stampante: {}".format(e)) pass \ No newline at end of file