funziona con la versione nuova delle librerie
parent
cc2e801ec6
commit
e9a4a6089f
|
|
@ -4,22 +4,24 @@ Created on 8 apr 2019
|
|||
@author: Emanuele Trabattoni
|
||||
'''
|
||||
|
||||
import sys
|
||||
import sys, logging, os
|
||||
import datetime
|
||||
import PyQt5.QtWidgets
|
||||
from MKPrint_GUI import Ui_MainWindow
|
||||
from printer import MarkoPrinter
|
||||
import protocol
|
||||
|
||||
|
||||
class MainWindow(PyQt5.QtWidgets.QMainWindow):
|
||||
def __init__(self, configFilePath):
|
||||
def __init__(self, configFilePath, LOGGER):
|
||||
try:
|
||||
self.printer = MarkoPrinter(configFilePath)
|
||||
self.printer = MarkoPrinter(configFilePath, LOGGER)
|
||||
except FileNotFoundError as e:
|
||||
print("Configuration file error: {}".format(e))
|
||||
sys.exit(1)
|
||||
|
||||
PyQt5.QtWidgets.QMainWindow.__init__(self)
|
||||
self.log = LOGGER
|
||||
self.ui = Ui_MainWindow()
|
||||
self.ui.setupUi(self)
|
||||
self.setFixedSize(self.maximumSize())
|
||||
|
|
@ -31,27 +33,18 @@ class MainWindow(PyQt5.QtWidgets.QMainWindow):
|
|||
self.ui.rad_dataOn.setChecked(True)
|
||||
self.ui.prg_inkLevel.setTextVisible(True)
|
||||
|
||||
def updateStatusView(self):
|
||||
connessa = self.printer.connected
|
||||
self.ui.btn_upload.setEnabled(connessa)
|
||||
if connessa:
|
||||
self.ui.prg_inkLevel.setValue(self.printer.headStatus["iuse"])
|
||||
self.ui.lcd_printCount.display(
|
||||
str(self.printer.headStatus["labelCnt"]))
|
||||
else:
|
||||
self.ui.prg_inkLevel.setValue(0)
|
||||
self.ui.lcd_printCount.display('0')
|
||||
|
||||
def toggla_connessione(self):
|
||||
connessa = self.printer.connected
|
||||
if connessa:
|
||||
connessa = self.printer.disconnetti()
|
||||
else:
|
||||
connessa = self.printer.connetti()
|
||||
|
||||
if connessa:
|
||||
self.ui.btn_connect.setText("DISCONNETTI")
|
||||
self.ui.lbl_stat.setText("Connesso")
|
||||
self.timer.start(self.printer.settings["keepalive"])
|
||||
self.printer.sendCommand(protocol.deleteMemory())
|
||||
self.timer.start(5000)
|
||||
self.timer.timeout.connect(self.keepalive)
|
||||
else:
|
||||
self.timer.stop()
|
||||
|
|
@ -59,11 +52,23 @@ class MainWindow(PyQt5.QtWidgets.QMainWindow):
|
|||
self.ui.btn_connect.setText("CONNETTI")
|
||||
self.updateStatusView()
|
||||
|
||||
def updateStatusView(self):
|
||||
connessa = self.printer.connected
|
||||
self.ui.btn_upload.setEnabled(connessa)
|
||||
if connessa:
|
||||
self.ui.lbl_stat.setText("Ready")
|
||||
self.ui.prg_inkLevel.setValue(self.printer.headStatus["iuse"])
|
||||
self.ui.lcd_printCount.display(str(self.printer.headStatus["labelCnt"]))
|
||||
else:
|
||||
self.ui.prg_inkLevel.setValue(0)
|
||||
self.ui.lcd_printCount.display('0')
|
||||
|
||||
def keepalive(self):
|
||||
# TODO: usare il primo argomento di keepalive (stato connessione) per aggiornare la ui
|
||||
_, statusUpdated = self.printer.keepalive()
|
||||
if statusUpdated:
|
||||
self.updateStatusView()
|
||||
pass
|
||||
|
||||
def upload(self):
|
||||
if self.ui.rad_dataOn.isChecked():
|
||||
|
|
@ -72,20 +77,54 @@ class MainWindow(PyQt5.QtWidgets.QMainWindow):
|
|||
else:
|
||||
date = ""
|
||||
descr = str(self.ui.txt_descr.toPlainText()).capitalize()
|
||||
datastr = str(self.ui.txt_model.text()).upper() + "\r" + \
|
||||
date + descr + "\r"
|
||||
response, statusUpdated = self.printer.upload(descr, datastr)
|
||||
if statusUpdated:
|
||||
self.updateStatusView()
|
||||
self.ui.lbl_stat.setText(response)
|
||||
self.printer.sendCommand(protocol.callPrintImage(imageName='TM1.00I',
|
||||
printMode='11',
|
||||
fieldContent = '{0}\r{1}'.format(self.ui.txt_model.text().upper(),date + descr)))
|
||||
r=self.printer.readResponse('callPrintImage')
|
||||
if protocol.checkResponse('callPrintImage', r):
|
||||
self.log.info("Caricamento Riuscito")
|
||||
self.ui.lbl_stat.setText(self.subChars(r))
|
||||
else:
|
||||
self.log.error("Caricamento Fallito")
|
||||
|
||||
def quit(self):
|
||||
pass
|
||||
|
||||
def subChars(self, 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__':
|
||||
app = PyQt5.QtWidgets.QApplication(sys.argv)
|
||||
configFilePath = "MkpWIFI/conf.json"
|
||||
window = MainWindow(configFilePath)
|
||||
configFilePath = "conf.json"
|
||||
print(os.getcwd())
|
||||
|
||||
# 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"))
|
||||
# Console Logging
|
||||
cl= logging.StreamHandler(sys.stdout)
|
||||
cl.setLevel(logging.DEBUG)
|
||||
cl.setFormatter(FORMATTER)
|
||||
LOGGER.addHandler(cl)
|
||||
|
||||
window = MainWindow(configFilePath, LOGGER)
|
||||
window.show()
|
||||
sys.exit(app.exec_())
|
||||
|
|
|
|||
|
|
@ -150,6 +150,8 @@ class MarkoPrinter:
|
|||
c = self.printSock.recv(1)
|
||||
# disattivo lettura bloccante
|
||||
self.printSock.settimeout(0.5)
|
||||
# VERIFICARE SE VA BENE
|
||||
self.reading = False
|
||||
return str(buf, 'ascii')
|
||||
except socket.timeout as t:
|
||||
self.reading = False
|
||||
|
|
|
|||
|
|
@ -0,0 +1,4 @@
|
|||
X;#=51;g=1;h=MODELLO:P1-0-000000000;A9mmB;~xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx~
|
||||
X;#=52;g=1;h=Descrizione:P1-0-014800000;A4mm;~xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx~
|
||||
P1r0-035430000;;
|
||||
P1-0-000000000:h=24
|
||||
Loading…
Reference in New Issue