''' Created on 19 mar 2020 @author: Emanuele Trabattoni ''' import queue, sys, time, socket, logging SOCK_TIMEOUT = 2 def tsc_printer(q_in: queue.Queue, q_out: queue.Queue, q_cmd: queue.Queue, ip: str, port: int, logger: logging.getLogger): prt = None def lista_file(): nonlocal prt pass def invia_file(name=None, content=None): nonlocal prt pass def elimina_file(name=None): nonlocal prt pass def muovi_file(name=None): #per default muove i file dalla RAM alla FLASH nonlocal prt pass def esegui(name=None): nonlocal prt pass def stato(): nonlocal prt return sts while True: # connetti mantieni vivo il socket try: with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as prt: prt.create_connection(address=(ip, port), timeout=SOCK_TIMEOUT) while True: itm = q_in.get(block=True) prt_cmd = "" cmd = itm['name'] par = itm['parameters'] if cmd == 'DOWNLOAD': invia_file(par['name'], par['lines']) pass elif cmd == 'REMOVE': elimina_file(par['name']) pass elif cmd == 'MOVE': muovi_file(par['name']) pass elif cmd == 'LIST': q_out.put({'url='}) pass elif cmd == 'RUN': pass else: logger.error("Comando stampante non riconosciuto") except socket.timeout as st: logger.error(f"Stampante {__name__} irraggiungibile:{st}") prt.close() del prt except socket.error as se: logger.error(f"Errore generico stamoante {__name__}: {se}") prt.close() del prt except Exception as e: logger.error("Errore generale inizializzando la stampante: {}".format(e)) pass