668 lines
21 KiB
C++
668 lines
21 KiB
C++
|
#include "win06_prn.h"
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
T_win06::T_win06(hwinf *HWaccess, QWidget *parent) : QWidget(parent)
|
||
|
{
|
||
|
int nn;
|
||
|
this->HWaccess = HWaccess;
|
||
|
|
||
|
myLayout = new QGridLayout;
|
||
|
|
||
|
QFont myTabFont;
|
||
|
|
||
|
myTabFont.setPixelSize(PIXELSIZE_LABEL);
|
||
|
lab1 =new QLabel(tr("Printer"));
|
||
|
lab1->setFont(myTabFont);
|
||
|
myLayout->addWidget(lab1,1,0);
|
||
|
|
||
|
myTabFont.setPixelSize(PIXELSIZE_BUTTONS);
|
||
|
butPrnPow = new QPushButton("Power");
|
||
|
myLayout->addWidget(butPrnPow,1,1);
|
||
|
butPrnPow->setFont(myTabFont);
|
||
|
butPrnPow->setStyleSheet("background-color: white");
|
||
|
butPrnPow->setCheckable(true); // true = toggle button
|
||
|
butPrnPow->setAutoDefault(false); // beim start aus
|
||
|
butPrnPow->setMinimumWidth(100);
|
||
|
butPrnPow->setMinimumHeight(40);
|
||
|
butPrnPow->setChecked(true);
|
||
|
connect(butPrnPow, SIGNAL(clicked()), this, SLOT(slot_powerButton()));
|
||
|
|
||
|
myTabFont.setPixelSize(14);
|
||
|
QLabel *lab14 =new QLabel(tr("external low paper sensor:"));
|
||
|
lab14->setFont(myTabFont);
|
||
|
lab14->setAlignment( Qt::AlignRight);
|
||
|
myLayout->addWidget(lab14,1,2);
|
||
|
|
||
|
lab15 =new QLabel(tr(" "));
|
||
|
lab15->setFont(myTabFont);
|
||
|
lab15->setStyleSheet("background-color: white");
|
||
|
lab15->setFrameStyle(3);
|
||
|
myLayout->addWidget(lab15,1,3);
|
||
|
|
||
|
myTabFont.setPixelSize(PIXELSIZE_LABEL);
|
||
|
QLabel *lab12 =new QLabel(tr("State:"));
|
||
|
lab12->setFont(myTabFont);
|
||
|
myLayout->addWidget(lab12,3,0);
|
||
|
|
||
|
myTabFont.setPixelSize(22);
|
||
|
showPrnState1 =new QLabel(tr(" "));
|
||
|
showPrnState1->setFont(myTabFont);
|
||
|
showPrnState1->setFrameStyle(1);
|
||
|
myLayout->addWidget(showPrnState1,3,1);
|
||
|
|
||
|
// selection box for Template-number to be printed
|
||
|
myTabFont.setPixelSize(20);
|
||
|
cb_templNr = new QComboBox();
|
||
|
myLayout->addWidget(cb_templNr,3,2);
|
||
|
for (nn=1; nn<=32; nn++)
|
||
|
cb_templNr->addItem(swl_int2str(nn));
|
||
|
cb_templNr->setFont(myTabFont);
|
||
|
cb_templNr->setCurrentIndex(0); // war 28 (=29)
|
||
|
cb_templNr->setMaxVisibleItems(5);
|
||
|
cb_templNr->setStyleSheet("QScrollBar:vertical { width: 30px; }");
|
||
|
|
||
|
cb_kombiNr = new QComboBox();
|
||
|
myLayout->addWidget(cb_kombiNr,5,2);
|
||
|
for (nn=1; nn<=8; nn++)
|
||
|
cb_kombiNr->addItem(swl_int2str(nn));
|
||
|
cb_kombiNr->setFont(myTabFont);
|
||
|
cb_kombiNr->setCurrentIndex(0);
|
||
|
cb_kombiNr->setMaxVisibleItems(5);
|
||
|
// cb_kombiNr->view()->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
|
||
|
// cb_kombiNr->view()->setVerticalScrollBar(QScrollBar::setMinimumWidth(20));
|
||
|
//cb_kombiNr->view()->setVerticalScrollBar()->setMinimumWidth(20);
|
||
|
cb_kombiNr->setStyleSheet("QScrollBar::vertical { width: 30px; }"); // geht :))
|
||
|
// cb_kombiNr->setStyleSheet(QComboBox::downarrow {width: 30px; });
|
||
|
//cb_kombiNr->adjustSize();
|
||
|
|
||
|
//myTabFont.setPixelSize(14);
|
||
|
myTabFont.setPixelSize(PIXELSIZE_BUTTONS);
|
||
|
QPushButton *butPrint2 = new QPushButton(" print\ntemplate");
|
||
|
myLayout->addWidget(butPrint2,3,3);
|
||
|
connect(butPrint2, SIGNAL(clicked()), this, SLOT(slot_printVaris()));
|
||
|
|
||
|
QPushButton *butPrint6 = new QPushButton(" print\ncombi");
|
||
|
myLayout->addWidget(butPrint6,5,3);
|
||
|
connect(butPrint6, SIGNAL(clicked()), this, SLOT(slot_printCombi()));
|
||
|
|
||
|
// myTabFont.setPixelSize(14);
|
||
|
myTabFont.setPixelSize(PIXELSIZE_LABEL);
|
||
|
QLabel *lab13 =new QLabel(tr("Result:"));
|
||
|
lab13->setFont(myTabFont);
|
||
|
myLayout->addWidget(lab13,4,0);
|
||
|
|
||
|
myTabFont.setPixelSize(PIXELSIZE_BIGFONT);
|
||
|
showPrnResult =new QLabel(tr(" "));
|
||
|
showPrnResult->setFont(myTabFont);
|
||
|
showPrnResult->setFrameStyle(1);
|
||
|
myLayout->addWidget(showPrnResult,4,1);
|
||
|
|
||
|
// myTabFont.setPixelSize(14);
|
||
|
myTabFont.setPixelSize(PIXELSIZE_LABEL);
|
||
|
QLabel *lab16 =new QLabel(tr("Signals:"));
|
||
|
lab16->setFont(myTabFont);
|
||
|
myLayout->addWidget(lab16,5,0);
|
||
|
|
||
|
myTabFont.setPixelSize(PIXELSIZE_DATA);
|
||
|
labSignal =new QLabel(tr(" "));
|
||
|
labSignal->setFont(myTabFont);
|
||
|
labSignal->setFrameStyle(1);
|
||
|
myLayout->addWidget(labSignal,5,1);
|
||
|
|
||
|
myTabFont.setPixelSize(PIXELSIZE_SMALLFONT);
|
||
|
QLabel *lab10 =new QLabel(tr("send dummy values: "));
|
||
|
lab10->setFont(myTabFont);
|
||
|
myLayout->addWidget(lab10,13,0);
|
||
|
|
||
|
QPushButton *butSendDyn1 = new QPushButton("V1_abcde V2_ghijk V3_mnopq V4_stuvw\nV5_ABCDE V6_GHIJK V7_MNOPQ V8_STUVW");
|
||
|
myLayout->addWidget(butSendDyn1,13,1);
|
||
|
connect(butSendDyn1, SIGNAL(clicked()), this, SLOT(slot_sendDD1()));
|
||
|
|
||
|
QPushButton *butSendDyn2 = new QPushButton("V1_00011 V2_00022 V3_00033 V4_00044\nV5_00055 V6_00066 V7_00077 V8_00088");
|
||
|
myLayout->addWidget(butSendDyn2,13,2);
|
||
|
connect(butSendDyn2, SIGNAL(clicked()), this, SLOT(slot_sendDD2()));
|
||
|
|
||
|
|
||
|
lab6 =new QLabel(tr("read back: "));
|
||
|
lab6->setFont(myTabFont);
|
||
|
myLayout->addWidget(lab6,16,0);
|
||
|
|
||
|
lab7 =new QLabel(tr(" "));
|
||
|
lab7->setFont(myTabFont);
|
||
|
lab7->setFrameStyle(1);
|
||
|
myLayout->addWidget(lab7,16,1);
|
||
|
|
||
|
myTabFont.setPixelSize(PIXELSIZE_BUTTONS);
|
||
|
QPushButton *butGetDD = new QPushButton("read\nback");
|
||
|
myLayout->addWidget(butGetDD,16,2);
|
||
|
connect(butGetDD, SIGNAL(clicked()), this, SLOT(slot_rdBackDD()));
|
||
|
|
||
|
QPushButton *butPrint3 = new QPushButton("print \nLogo");
|
||
|
myLayout->addWidget(butPrint3,19,0);
|
||
|
connect(butPrint3, SIGNAL(clicked()), this, SLOT(slot_printLogo()));
|
||
|
|
||
|
QPushButton *butPrint4 = new QPushButton("print \nAcc.Bill");
|
||
|
myLayout->addWidget(butPrint4,19,1);
|
||
|
connect(butPrint4, SIGNAL(clicked()), this, SLOT(slot_printAcc()));
|
||
|
|
||
|
QPushButton *butPrintTicket = new QPushButton("print \nTicket");
|
||
|
myLayout->addWidget(butPrintTicket,19,2);
|
||
|
connect(butPrintTicket, SIGNAL(clicked()), this, SLOT(slot_printTicket()));
|
||
|
|
||
|
QPushButton *butPrint5 = new QPushButton(" CUT \n");
|
||
|
myLayout->addWidget(butPrint5,19,3);
|
||
|
connect(butPrint5, SIGNAL(clicked()), this, SLOT(slot_printCut()));
|
||
|
|
||
|
|
||
|
// -------------------------------------------------------------
|
||
|
// 25.6.23 dazu:
|
||
|
QPushButton *butPrint10 = new QPushButton("Send\nText");
|
||
|
myLayout->addWidget(butPrint10,22,0);
|
||
|
connect(butPrint10, SIGNAL(clicked()), this, SLOT(slot_sendText()));
|
||
|
|
||
|
QPushButton *butPrint11 = new QPushButton("Setup");
|
||
|
myLayout->addWidget(butPrint11,22,1);
|
||
|
connect(butPrint11, SIGNAL(clicked()), this, SLOT(slot_setup()));
|
||
|
|
||
|
QPushButton *butPrint12 = new QPushButton("Move \n Paper");
|
||
|
myLayout->addWidget(butPrint12,22,2);
|
||
|
connect(butPrint12, SIGNAL(clicked()), this, SLOT(slot_movPap()));
|
||
|
|
||
|
QPushButton *butPrint15 = new QPushButton("Paper \n back");
|
||
|
myLayout->addWidget(butPrint15,22,3);
|
||
|
connect(butPrint15, SIGNAL(clicked()), this, SLOT(slot_movBack()));
|
||
|
|
||
|
|
||
|
QPushButton *butPrint13 = new QPushButton(" set \nFonts");
|
||
|
myLayout->addWidget(butPrint13,23,1);
|
||
|
connect(butPrint13, SIGNAL(clicked()), this, SLOT(slot_fonts()));
|
||
|
|
||
|
QPushButton *butPrint14 = new QPushButton(" set \nLetters");
|
||
|
myLayout->addWidget(butPrint14,23,2);
|
||
|
connect(butPrint14, SIGNAL(clicked()), this, SLOT(slot_letters()));
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
QPushButton *butPrint20 = new QPushButton("Print QR\n");
|
||
|
myLayout->addWidget(butPrint20,23,0);
|
||
|
connect(butPrint20, SIGNAL(clicked()), this, SLOT(slot_printQr()));
|
||
|
|
||
|
|
||
|
setLayout(myLayout);
|
||
|
myNextStep=0;
|
||
|
myStep=0;
|
||
|
|
||
|
myTO = new QTimer();
|
||
|
myTO->setSingleShot(true);
|
||
|
myTO->start(1000);
|
||
|
|
||
|
connect( dynamic_cast<QObject*>(HWaccess), SIGNAL(hwapi_templatePrintFinished_OK()), this, SLOT(signalPrnDone()));
|
||
|
connect( dynamic_cast<QObject*>(HWaccess), SIGNAL(hwapi_templatePrintFinished_Err()), this, SLOT(signalPrnErr()));
|
||
|
|
||
|
HWaccess->prn_switchPower(0);
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
dummyText.clear();
|
||
|
/*
|
||
|
dummyText.append(" Quod equidem non reprehendo; Lorem ipsum dolor sit amet, consectetur adipiscing elit. ");
|
||
|
dummyText.append(" Quibus natura iure responderit non esse verum aliunde finem beate vivendi, ");
|
||
|
dummyText.append(" a se principia rei gerendae peti; Quae enim adhuc protulisti, popularia sunt, ");
|
||
|
dummyText.append(" ego autem a te elegantiora desidero. Duo Reges: constructio interrete. ");
|
||
|
dummyText.append("Tum Lucius: Mihi vero ista valde probata sunt, quod item fratri puto. ");
|
||
|
dummyText.append("Bestiarum vero nullum iudicium puto. Nihil enim iam habes, quod ad corpus referas; ");
|
||
|
dummyText.append("Deinde prima illa, quae in congressu solemus: Quid tu, inquit, huc? Et homini, qui ");
|
||
|
dummyText.append("ceteris animantibus plurimum praestat, praecipue a natura nihil datum esse dicemus? ");
|
||
|
dummyText.append("Iam id ipsum absurdum, maximum malum neglegi. Quod ea non occurrentia fingunt, vincunt Aristonem; ");
|
||
|
dummyText.append("Atqui perspicuum est hominem e corpore animoque constare, cum primae sint animi partes, ");
|
||
|
dummyText.append("secundae corporis. Fieri, inquam, Triari, nullo pacto potest, ut non dicas, quid non probes eius ");
|
||
|
dummyText.append(" a quo dissentias. Equidem e Cn. An dubium est, quin virtus ita maximam partem optineat ");
|
||
|
dummyText.append("in rebus humanis, ut reliquas obruat? ");
|
||
|
dummyText.append("Summus dolor plures dies manere non potest? Dicet pro me ipsa virtus nec dubitabit isti vestro ");
|
||
|
dummyText.append("beato M. Tubulum fuisse, qua illum, cuius is condemnatus est rogatione, P. Quod si ita sit, cur ");
|
||
|
dummyText.append("opera philosophiae sit danda nescio. valde probata sunt, quod item fratri puto");
|
||
|
dummyText.truncate(1278);
|
||
|
*/
|
||
|
dummyText.append("abcdefghijklmnopqrstuvwxyz0123ABCDEFGHIJKLMNOPQRSTUVWXYZ4567"); // 60byte
|
||
|
dummyText.append("abcdefghijklmnopqrstuvwxyz0123ABCDEFGHIJKLMNOPQRSTUVWXYZ4567"); // 60byte
|
||
|
dummyText.append("abcdefghijklmnopqrstuvwxyz0123ABCDEFGHIJKLMNOPQRSTUVWXYZ4567"); // 60byte
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
}
|
||
|
|
||
|
T_win06::~T_win06()
|
||
|
{
|
||
|
close();
|
||
|
}
|
||
|
|
||
|
|
||
|
void T_win06::Nav_back(void)
|
||
|
{
|
||
|
myNextStep=WCS_WIN06BAK;
|
||
|
}
|
||
|
void T_win06::Nav_home(void)
|
||
|
{
|
||
|
myNextStep=WCS_WIN06MID;
|
||
|
}
|
||
|
void T_win06::Nav_next(void)
|
||
|
{
|
||
|
myNextStep=WCS_WIN06FWD;
|
||
|
}
|
||
|
|
||
|
void T_win06::slot_sendDD1(void)
|
||
|
{
|
||
|
uint8_t buf[66];
|
||
|
|
||
|
// schicke V1_abcdef V2_ghijkl V3_mnopqr V4_stuvwx\nV5_ABCDEF V6_GHIJKL V7_MNOPQR V8_STUVWX als dyn.Drucker variablen
|
||
|
swl_text2ui8buf("V1_abcdef", &buf[0],8);
|
||
|
swl_text2ui8buf("V2_ghijkl", &buf[8],8);
|
||
|
swl_text2ui8buf("V3_mnopqr", &buf[16],8);
|
||
|
swl_text2ui8buf("V4_stuvwx", &buf[24],8);
|
||
|
swl_text2ui8buf("V5_ABCDEF", &buf[32],8);
|
||
|
swl_text2ui8buf("V6_GHIJKL", &buf[40],8);
|
||
|
swl_text2ui8buf("V7_MNOPQR", &buf[48],8);
|
||
|
swl_text2ui8buf("V8_STUVWX", &buf[56],8);
|
||
|
HWaccess->prn_sendDynamicPrnValues(buf);
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
void T_win06::slot_rdBackDD(void)
|
||
|
{
|
||
|
HWaccess->prn_requestCurrentDynData();
|
||
|
}
|
||
|
|
||
|
void T_win06::slot_printVaris(void)
|
||
|
{
|
||
|
int val=cb_templNr->currentIndex();
|
||
|
val++;
|
||
|
HWaccess->prn_printTemplate(val);
|
||
|
val++;
|
||
|
HWaccess->prn_printTemplate(val);
|
||
|
val++;
|
||
|
HWaccess->prn_printTemplate(val);
|
||
|
val++;
|
||
|
HWaccess->prn_printTemplate(val);
|
||
|
val++;
|
||
|
HWaccess->prn_printTemplate(val);
|
||
|
val++;
|
||
|
HWaccess->prn_printTemplate(val);
|
||
|
val++;
|
||
|
HWaccess->prn_printTemplate(val);
|
||
|
val++;
|
||
|
HWaccess->prn_printTemplate(val);
|
||
|
|
||
|
}
|
||
|
|
||
|
void T_win06::slot_printCombi(void)
|
||
|
{
|
||
|
int val=cb_kombiNr->currentIndex();
|
||
|
val++;
|
||
|
HWaccess->prn_printKombiticket(val);
|
||
|
}
|
||
|
|
||
|
void T_win06::slot_printTicket(void)
|
||
|
{
|
||
|
|
||
|
// HWaccess->prn_printTemplate(1);
|
||
|
// HWaccess->prn_printTemplate(2);
|
||
|
// HWaccess->prn_printTemplate(3);
|
||
|
|
||
|
HWaccess->prn_printKombiticket(1);
|
||
|
}
|
||
|
|
||
|
|
||
|
void T_win06::slot_sendDD2(void)
|
||
|
{
|
||
|
uint8_t buf[66];
|
||
|
|
||
|
// send V1_000111 V2_000222 V3_000333 V4_000444\nV5_000555 V6_000666 V7_000777 V8_000888
|
||
|
swl_text2ui8buf("V1_000111", &buf[0],8);
|
||
|
swl_text2ui8buf("V2_000222", &buf[8],8);
|
||
|
swl_text2ui8buf("V3_000333", &buf[16],8);
|
||
|
swl_text2ui8buf("V4_000444", &buf[24],8);
|
||
|
swl_text2ui8buf("V5_000555", &buf[32],8);
|
||
|
swl_text2ui8buf("V6_000666", &buf[40],8);
|
||
|
swl_text2ui8buf("V7_000777", &buf[48],8);
|
||
|
swl_text2ui8buf("V8_000888", &buf[56],8);
|
||
|
HWaccess->prn_sendDynamicPrnValues(buf);
|
||
|
|
||
|
}
|
||
|
|
||
|
void T_win06::signalPrnDone(void)
|
||
|
{
|
||
|
labSignal->setText("signal printing finished");
|
||
|
myTO->start(2000);
|
||
|
}
|
||
|
|
||
|
void T_win06::signalPrnErr(void)
|
||
|
{
|
||
|
labSignal->setText("signal printing ERROR");
|
||
|
myTO->start(2000);
|
||
|
}
|
||
|
|
||
|
|
||
|
void T_win06::slot_powerButton(void)
|
||
|
{
|
||
|
|
||
|
if (butPrnPow->isChecked())
|
||
|
{
|
||
|
HWaccess->prn_switchPower(1);
|
||
|
} else
|
||
|
{
|
||
|
HWaccess->prn_switchPower(0);
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
void T_win06::slot_printLogo(void)
|
||
|
{
|
||
|
HWaccess->prn_switchPower(1);
|
||
|
HWaccess->prn_printLogo(1,0);
|
||
|
}
|
||
|
|
||
|
void T_win06::slot_printAcc(void)
|
||
|
{
|
||
|
HWaccess->prn_switchPower(1);
|
||
|
HWaccess->prn_printAccountReceipt();
|
||
|
}
|
||
|
|
||
|
void T_win06::slot_printCut(void)
|
||
|
{
|
||
|
HWaccess->prn_switchPower(1);
|
||
|
HWaccess->prn_cut(1);
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
void T_win06::slot_sendText(void)
|
||
|
{
|
||
|
HWaccess->prn_switchPower(1);
|
||
|
HWaccess->prn_sendText(&dummyText);
|
||
|
// up to 1280 bytes
|
||
|
|
||
|
}
|
||
|
|
||
|
void T_win06::slot_setup(void)
|
||
|
{
|
||
|
uint16_t paperSpeed=240;
|
||
|
uint8_t density=25;
|
||
|
uint8_t alignment='c';
|
||
|
uint8_t orientation=0;
|
||
|
|
||
|
HWaccess->prn_switchPower(1);
|
||
|
HWaccess->prn_sendPrnSetup(paperSpeed, density, alignment, orientation);
|
||
|
// send 5 byte: byte 0,1: speed 5...250 mm/s
|
||
|
// byte2: density 0....(25)....50
|
||
|
// byte3: alignment 'l', 'c', 'r' = left, center, right
|
||
|
// byte4: orientation 0, 90, 180 = 0°, 90°, 180° rotation (by now not supported!)
|
||
|
// not batched! don't use twice within 100ms
|
||
|
|
||
|
}
|
||
|
|
||
|
void T_win06::slot_movPap(void)
|
||
|
{
|
||
|
uint8_t wayInMm=30;
|
||
|
uint8_t direction=1;
|
||
|
|
||
|
HWaccess->prn_switchPower(1);
|
||
|
HWaccess->prn_movePaper(wayInMm, direction);
|
||
|
//direction: 1=forward 2=backward
|
||
|
|
||
|
//void prn_newLine(uint8_t nrOfLines) const override;
|
||
|
|
||
|
}
|
||
|
|
||
|
void T_win06::slot_movBack(void)
|
||
|
{
|
||
|
uint8_t wayInMm=30;
|
||
|
uint8_t direction=2;
|
||
|
|
||
|
HWaccess->prn_switchPower(1);
|
||
|
HWaccess->prn_movePaper(wayInMm, direction);
|
||
|
//direction: 1=forward 2=backward
|
||
|
|
||
|
//void prn_newLine(uint8_t nrOfLines) const override;
|
||
|
|
||
|
}
|
||
|
|
||
|
void T_win06::slot_fonts(void)
|
||
|
{
|
||
|
uint8_t font=10;
|
||
|
uint8_t size=5;
|
||
|
uint8_t width=1;
|
||
|
uint8_t height=2;
|
||
|
|
||
|
HWaccess->prn_switchPower(1);
|
||
|
HWaccess->prn_setFonts(font, size, width, height);
|
||
|
// font = kind of font 5...11 (0..22)
|
||
|
// size = seem to be dots/mm 1..10=nice >15=ugly
|
||
|
// [size = 6...20, 9..9: too tiny 10: small ...12 = normal size ...20=huge] (for some fonts)
|
||
|
// width: 0...4 0=1x 1=2x 2=4x (huge!) 3=8x 4=16x (3,4 make no sense)
|
||
|
// heigth: 0...7 = 1x...8x only 0,1,2,(3) make sense
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
void T_win06::slot_printQr(void)
|
||
|
{
|
||
|
HWaccess->prn_printQRcode();
|
||
|
}
|
||
|
|
||
|
void T_win06::slot_letters(void)
|
||
|
{
|
||
|
uint8_t bold=1;
|
||
|
uint8_t invers=0;
|
||
|
uint8_t underlined=0;
|
||
|
|
||
|
HWaccess->prn_switchPower(1);
|
||
|
HWaccess->prn_setLetters(bold, invers, underlined);
|
||
|
// bold: 0/1
|
||
|
// invers: 0/1
|
||
|
// underlined: 0/1
|
||
|
|
||
|
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
void T_win06::slot_(void)
|
||
|
{
|
||
|
HWaccess->prn_
|
||
|
}
|
||
|
void T_win06::slot_(void)
|
||
|
{
|
||
|
HWaccess->prn_
|
||
|
}
|
||
|
void T_win06::slot_(void)
|
||
|
{
|
||
|
HWaccess->prn_
|
||
|
}
|
||
|
*/
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
bool T_win06::work_ini(uint16_t *nextScreen, uint8_t *useNavi)
|
||
|
{
|
||
|
// one state of the vending/operating FSM
|
||
|
// called ONE time after selecting this state (initialization)
|
||
|
// useNavi=0: no change
|
||
|
// bit0,1: enable/disable button "next"
|
||
|
// bit2,3: enable/disable button "home"
|
||
|
// bit4,5: enable/disable button "back"
|
||
|
|
||
|
*nextScreen=0; // needed 0=no change
|
||
|
*useNavi=SWITCH_BACK_ON | SWITCH_HOME_ON | SWITCH_NEXT_ON;
|
||
|
myNextStep=0;
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
bool T_win06::working(uint16_t *nextScreen, uint8_t *useNavi)
|
||
|
{
|
||
|
// one state of the vending/operating FSM
|
||
|
// called cyclic until this state changes intentionally to another state
|
||
|
// display informations for human operator, react on operators inputs or wait for payment media
|
||
|
|
||
|
// useNavi=0: no change
|
||
|
// bit0,1: enable/disable button "next"
|
||
|
// bit2,3: enable/disable button "home"
|
||
|
// bit4,5: enable/disable button "back"
|
||
|
|
||
|
*nextScreen=0; // 0=no change
|
||
|
*useNavi=0;
|
||
|
QString myStr;
|
||
|
uint8_t buf[66];
|
||
|
char ctmp;
|
||
|
uint8_t uctmp;
|
||
|
bool btmp;
|
||
|
|
||
|
// Ruecklesen und anzeigen der dyn. Variablen
|
||
|
myStr.clear();
|
||
|
btmp=HWaccess->prn_getCurrentDynamicPrnValuesFromDC(buf);
|
||
|
if (btmp)
|
||
|
{
|
||
|
for (int nn=0; nn<32; nn++)
|
||
|
{
|
||
|
ctmp=char(buf[nn]);
|
||
|
myStr.append(ctmp);
|
||
|
}
|
||
|
myStr.append('\n');
|
||
|
for (int nn=32; nn<64; nn++)
|
||
|
{
|
||
|
ctmp=char(buf[nn]);
|
||
|
myStr.append(ctmp);
|
||
|
}
|
||
|
|
||
|
lab7->setText(myStr);
|
||
|
|
||
|
if (HWaccess->prn_dynDataAreEqual(buf))
|
||
|
//lab9->setText("equal");
|
||
|
lab7->setStyleSheet("background-color: rgb(150,230,150)"); // hell grün
|
||
|
else
|
||
|
//lab9->setText("wrong");
|
||
|
lab7->setStyleSheet("background-color: rgb(250,150,150)"); // hell rot
|
||
|
}
|
||
|
|
||
|
// clear signals after 2s:
|
||
|
if (!myTO->isActive())
|
||
|
labSignal->setText(" ");
|
||
|
|
||
|
|
||
|
// HWaccess->sys_getDynMachineConditions(&myDynMachCond);
|
||
|
|
||
|
uctmp=HWaccess->prn_getCurrentPrinterState();
|
||
|
// 0: printer OK
|
||
|
// bit0: near paper end bit1: no paper
|
||
|
// bit2: temperature error bit3: error head open
|
||
|
// bit4: paper jam in cutter
|
||
|
// bit6: no response bit7: serial rec. error
|
||
|
// bit5: printer not ready
|
||
|
myStr.clear();
|
||
|
myStr.append(QString::number(uctmp));
|
||
|
myStr.append(" ");
|
||
|
if (uctmp&0x80) myStr.append("serial rec.error"); else
|
||
|
if (uctmp&0x40) myStr.append("no response"); else
|
||
|
if (uctmp&0x20) myStr.append("Prn not Ready"); else
|
||
|
if (uctmp&0x10) myStr.append("Paper jam"); else
|
||
|
if (uctmp&0x08) myStr.append("head open"); else
|
||
|
if (uctmp&0x04) myStr.append("too hot"); else
|
||
|
if (uctmp&0x02) myStr.append("no paper"); else
|
||
|
if (uctmp&0x01) myStr.append("near paper end");
|
||
|
showPrnState1->setText(myStr);
|
||
|
|
||
|
|
||
|
//btmp=HWaccess->prn_isUpAndReady(); geht nicht richtig
|
||
|
//if (btmp) // up and ready
|
||
|
|
||
|
if (uctmp<2)
|
||
|
showPrnState1->setStyleSheet("background-color: rgb(150,230,150)"); // hell grün
|
||
|
else
|
||
|
showPrnState1->setStyleSheet("background-color: rgb(250,150,150)"); // hell rot
|
||
|
|
||
|
uctmp=HWaccess->prn_getPrintResult();
|
||
|
// return: 0: unknown
|
||
|
// 1: OK - last template was printed succesful
|
||
|
// 2: error - last template was not printed
|
||
|
|
||
|
myStr.clear();
|
||
|
myStr.append(QString::number(uctmp));
|
||
|
myStr.append(" ");
|
||
|
if (uctmp==1) myStr.append("- OK"); else
|
||
|
if (uctmp==2) myStr.append("- error"); else
|
||
|
if (uctmp==3) myStr.append("- 3"); else
|
||
|
myStr.append("- unknown");
|
||
|
showPrnResult->setText(myStr);
|
||
|
|
||
|
uctmp=HWaccess->cash_getLowPaperSensor();
|
||
|
// 0: Sensor sees paper 1: no paper 99: off
|
||
|
if (uctmp==0)
|
||
|
lab15->setStyleSheet("background-color: rgb(150,230,150)"); // hell grün
|
||
|
else if (uctmp==1)
|
||
|
lab15->setStyleSheet("background-color: yellow");
|
||
|
else
|
||
|
lab15->setStyleSheet("background-color: white");
|
||
|
|
||
|
|
||
|
if (HWaccess->prn_isPrinterPowerOn())
|
||
|
{
|
||
|
if (HWaccess->prn_PrnFuseIsOk()==0)
|
||
|
{
|
||
|
// fuse is blown
|
||
|
butPrnPow->setStyleSheet("background-color: rgb(250,150,150)"); // hell rot
|
||
|
butPrnPow->setText("FUSE blown");
|
||
|
} else
|
||
|
{
|
||
|
// on
|
||
|
butPrnPow->setStyleSheet("background-color: rgb(150,230,150)"); // hell grün
|
||
|
butPrnPow->setText(" O N ");
|
||
|
}
|
||
|
} else
|
||
|
{
|
||
|
butPrnPow->setStyleSheet("background-color: white");
|
||
|
butPrnPow->setText("Power");
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
uctmp=HWaccess->log_getAnswerToLastCmdBatch();
|
||
|
// 0xFF: no command sent by now
|
||
|
// 0: started, in progress
|
||
|
// 1: done and OK
|
||
|
// 2: done and error
|
||
|
|
||
|
myStr.clear();
|
||
|
myStr.append(QString::number(uctmp));
|
||
|
label16->setText(myStr);
|
||
|
|
||
|
|
||
|
uctmp=HWaccess->log_getAnswerToLastSlaveRequest();
|
||
|
// use only for ONE request/command
|
||
|
// return: 0xFF: result unknown by now as sending is ongoing
|
||
|
// 0=OK
|
||
|
// 1= wrong length 2=wrong start sign 5= wrong crc
|
||
|
// 6= slave: master cmd was wrong 7: slave: could not write/read data
|
||
|
// 8=timeout, got no response from slave
|
||
|
|
||
|
myStr.clear();
|
||
|
myStr.append(QString::number(uctmp));
|
||
|
label17->setText(myStr);
|
||
|
*/
|
||
|
|
||
|
|
||
|
if (myNextStep)
|
||
|
{
|
||
|
*nextScreen=myNextStep;
|
||
|
myNextStep=0;
|
||
|
}
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
|