''' Created on 27 set 2019 @author: Emanuele Trabattoni ''' import time import sys import printer as p import logging import socket import protocol def main(): isRunning = True lastAck = True while isRunning: printer = p.MarkoPrinter('./conf.json', LOGGER) connessa = printer.connetti() printer.sendCommand(protocol.deleteMemory()) while connessa: try: if lastAck == True: lastTimestamp = int(time.time()*100) commandString = protocol.callPrintImage(imageName='TM2.00I', printMode='10', fieldContent='{0}\r{0}'.format(lastTimestamp)) printer.sendCommand(commandString) LOGGER.debug('SENT: {}'.format(subChars(commandString))) lastAck = False else: r=printer.readResponse('callPrintImage') LOGGER.debug('RECEIVED: {}'.format(subChars(r))) if protocol.checkResponse('callPrintImage',r): LOGGER.info("Stampa Riuscita: {}".format(lastTimestamp)) else: LOGGER.error("Stampa Fallita: {}".format(lastTimestamp)) lastAck = True except socket.timeout as t: LOGGER.debug("Timeout stampa") lastAck = False printer.keepalive() pass except Exception as e: LOGGER.error(str(e)) pass pass pass def subChars(s): subDict = {'\x02': " #STX ", '\x03': " #ETX ", '\x1B': " #ESC ", '\r': " #CR ", '\f': " #LF ", '\t': " #TAB ", '\x06': " #ACK ", '\x15': " #NACK " } out = "" for c in s: if c in subDict.keys(): out += subDict[c] else: out += c return out if __name__ == '__main__': # Setup Logger LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) LOGGER.propagate = False FORMATTER = logging.Formatter(("%(asctime)s|%(levelname)-7s|%(funcName)-10s|%(lineno)-3d: %(message)-50s"), ("%m-%d %H:%M:%S")) # File Logging fh = logging.FileHandler(("./log/dimelog.log")) fh.setLevel(logging.DEBUG) fh.setFormatter(FORMATTER) LOGGER.addHandler(fh) # Console Logging cl= logging.StreamHandler(sys.stdout) cl.setLevel(logging.DEBUG) cl.setFormatter(FORMATTER) LOGGER.addHandler(cl) LOGGER.warning("MarcaturaDime Started!") sys.exit(main()) pass