driver_tsc/driver/tsc_printer.py

76 lines
1.7 KiB
Python

'''
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