Compare commits

...

6 Commits

Author SHA1 Message Date
Pietro 47b86bef95 Aggiunti template per fusti 2020-03-05 18:40:02 +01:00
Pietro 3f6bf53a96 Aggiunto manuale 2020-02-26 17:41:14 +01:00
Emanuele 72965f4308 sostituisce gli a capo con i tab per scrivere la descrizione su due
righe
2019-12-17 11:41:43 +01:00
Emanuele e9a4a6089f funziona con la versione nuova delle librerie 2019-12-17 11:30:07 +01:00
Emanuele cc2e801ec6 Carica l'immagine di stampa se nello stato viene segnalata memoria vuota 2019-11-12 09:23:01 +01:00
Emanuele 3c726a8937 cambiato livello debug 2019-10-01 10:13:29 +02:00
8 changed files with 104 additions and 48 deletions
+21 -21
View File
@@ -1,21 +1,21 @@
# Eclipse user settings directory
.project
.pydevproject
.settings
# VS Codium user settings directory
.vscode
# Byte-compiled / optimized / DLL files
MkpWIFI/__pycache__/
MkpWIFI/build/
MkpWIFI/dist/
MkpWIFI/main.spec
MkpWIFI/*.dll
__pycache__/
*.py[cod]
log
__pycache__
build
dist
main.spec
# Eclipse user settings directory
.project
.pydevproject
.settings
# VS Codium user settings directory
.vscode
# Byte-compiled / optimized / DLL files
MkpWIFI/__pycache__/
MkpWIFI/build/
MkpWIFI/dist/
MkpWIFI/main.spec
MkpWIFI/*.dll
__pycache__/
*.py[cod]
log
__pycache__
build
dist
main.spec
+65 -24
View File
@@ -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():
@@ -71,21 +76,57 @@ class MainWindow(PyQt5.QtWidgets.QMainWindow):
date = date.strftime(self.printer.data["dateformat"])
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)
descr = str(self.ui.txt_descr.toPlainText()).capitalize().replace('\n','\t').replace('\r','')
self.log.debug("SENDING: {}".format(descr))
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_())
+5 -3
View File
@@ -39,7 +39,10 @@ def main():
LOGGER.debug("Timeout stampa")
lastAck = False
try:
connessa = printer.keepalive()
connessa, statusUpdated = printer.keepalive()
if statusUpdated and printer.headStatus['txt'] == ">> No Label <<":
LOGGER.warning("Immagine di stampa non caricata, invio..")
lastAck = True
except RuntimeError as r:
LOGGER.error("Stampante Disconnessa")
connessa = False
@@ -73,7 +76,7 @@ def subChars(s):
if __name__ == '__main__':
# Setup Logger
LOGGER = logging.getLogger(__name__)
LOGGER.setLevel(logging.DEBUG)
LOGGER.setLevel(logging.INFO)
LOGGER.propagate = False
FORMATTER = logging.Formatter(("%(asctime)s|%(levelname)-7s|%(funcName)-10s|%(lineno)-3d: %(message)-50s"),
("%m-%d %H:%M:%S"))
@@ -89,6 +92,5 @@ if __name__ == '__main__':
LOGGER.addHandler(cl)
LOGGER.warning("MarcaturaDime Started!")
sys.exit(main())
pass
+2
View File
@@ -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
+4
View File
@@ -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
+6
View File
@@ -0,0 +1,6 @@
BI0A0300000000000;A2,5mmB;0123456789
X;#=50;g=1;h=___CLIENTONE____:P1-0-009400000;A3mmB;~xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx~
X;#=51;g=1;h=MODELLO FUST:P1-0-009400120;A2,5mmB;~xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx~
X;#=52;g=1;h=TIPO FUSTO:P1-0-009400200;A2,5mmB;~xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx~
P1r0-018900000;;
P1-0-000000000:h=24
+1
View File
@@ -0,0 +1 @@
EW----;TM3.00I
Binary file not shown.