Update interface hwapi 3.6
This commit is contained in:
parent
de1dc88e51
commit
2717c614e3
263
include/interfaces.h
Normal file → Executable file
263
include/interfaces.h
Normal file → Executable file
@ -2,9 +2,12 @@
|
|||||||
#define INTERFACE_H
|
#define INTERFACE_H
|
||||||
|
|
||||||
#include <QtPlugin>
|
#include <QtPlugin>
|
||||||
#include <QStringList>
|
|
||||||
|
|
||||||
struct T_emp {
|
|
||||||
|
|
||||||
|
struct T_emp
|
||||||
|
{
|
||||||
|
|
||||||
// Fixdata from EMP:
|
// Fixdata from EMP:
|
||||||
uint8_t shaft; // = changer level
|
uint8_t shaft; // = changer level
|
||||||
uint16_t countryCode;
|
uint16_t countryCode;
|
||||||
@ -21,19 +24,29 @@ struct T_emp {
|
|||||||
|
|
||||||
// dynamic:
|
// dynamic:
|
||||||
uint8_t state; // step counter of EMP (electronic coin checker) FSM (finite state machine):
|
uint8_t state; // step counter of EMP (electronic coin checker) FSM (finite state machine):
|
||||||
// 0=Emp & Bus power off, 1=powered, poll off 2=polling on
|
// 0=start command
|
||||||
// 3=device responded, requesting status
|
// 1=powered, do emp ini, send reset
|
||||||
// 4=waiting for status 5=have status,
|
// 2=delay
|
||||||
// 6: IDLE, have paramters from master, polling running, ready for payment
|
// 3=wait for response, requesting status after response
|
||||||
// Master can stop/start polling and acceptance
|
// 4,5 through, startup
|
||||||
// 7: end of transaction, polling on, accept off, reporting coins, (wait for last coin)
|
// 6: wait for status
|
||||||
// 8: transaction running, polling on, acceptance on, reporting coins,
|
// 7: through, startup
|
||||||
|
// 8: IDLE state. EMP is up and ready, polling is running
|
||||||
|
// 9: polling on, payment not yet on
|
||||||
|
// 10: payment, check coins
|
||||||
|
// 11: through
|
||||||
|
// 12: wait 1s for last coin
|
||||||
|
// 90: stop all, 1s delay
|
||||||
|
// 99: off, all stopped
|
||||||
|
|
||||||
|
|
||||||
uint8_t pollingRunning;
|
uint8_t pollingRunning;
|
||||||
uint8_t paymentRunning;
|
uint8_t paymentRunning;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct Trtc_DateTime {
|
struct Trtc_DateTime
|
||||||
|
{
|
||||||
uint8_t rtc_hour;
|
uint8_t rtc_hour;
|
||||||
uint8_t rtc_min;
|
uint8_t rtc_min;
|
||||||
uint8_t rtc_sec;
|
uint8_t rtc_sec;
|
||||||
@ -43,7 +56,8 @@ struct Trtc_DateTime {
|
|||||||
uint8_t rtc_dayOfWeek;
|
uint8_t rtc_dayOfWeek;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct Tprn_hw_state {
|
struct Tprn_hw_state
|
||||||
|
{
|
||||||
// hardware (IO's)
|
// hardware (IO's)
|
||||||
bool powerRdBk; // prn pwr is on
|
bool powerRdBk; // prn pwr is on
|
||||||
bool rsSwOk; // serial switch (printer or modem) is set to printer
|
bool rsSwOk; // serial switch (printer or modem) is set to printer
|
||||||
@ -60,7 +74,8 @@ struct Tprn_hw_state {
|
|||||||
bool badResponse;
|
bool badResponse;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct Tprn_currentSettings {
|
struct Tprn_currentSettings
|
||||||
|
{
|
||||||
uint8_t currFont;
|
uint8_t currFont;
|
||||||
uint8_t currSize;
|
uint8_t currSize;
|
||||||
uint8_t currHeigth;
|
uint8_t currHeigth;
|
||||||
@ -73,18 +88,23 @@ struct Tprn_currentSettings {
|
|||||||
bool nowAligned;
|
bool nowAligned;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct T_dynDat {
|
// obsolete
|
||||||
|
struct T_dynDat
|
||||||
|
{
|
||||||
uint8_t licensePlate[8];
|
uint8_t licensePlate[8];
|
||||||
uint8_t vendingPrice[8];
|
uint8_t vendingPrice[8];
|
||||||
uint8_t parkingEndTime[8];
|
uint8_t parkingEnd[8];
|
||||||
uint8_t parkingEndDate[8];
|
uint8_t currentTime[8];
|
||||||
uint8_t currentDate[8];
|
uint8_t currentDate[8];
|
||||||
uint8_t dynDat5[8];
|
uint8_t dynDat5[8];
|
||||||
uint8_t dynDat6[8];
|
uint8_t dynDat6[8];
|
||||||
uint8_t dynDat7[8];
|
uint8_t dynDat7[8];
|
||||||
};
|
};
|
||||||
|
|
||||||
struct T_vaultRecord {
|
|
||||||
|
struct T_vaultRecord
|
||||||
|
{
|
||||||
|
|
||||||
// Kassenbeleg (Abrechnungsdatensatz = Kassenwechsel-Datensatz)
|
// Kassenbeleg (Abrechnungsdatensatz = Kassenwechsel-Datensatz)
|
||||||
char startbuffer[4]; // Psa> // never move or change this 1st entry
|
char startbuffer[4]; // Psa> // never move or change this 1st entry
|
||||||
uint16_t AccountingNumber;
|
uint16_t AccountingNumber;
|
||||||
@ -111,23 +131,26 @@ struct T_vaultRecord {
|
|||||||
//16
|
//16
|
||||||
char label3buffer[4]; // mw >
|
char label3buffer[4]; // mw >
|
||||||
|
|
||||||
// Verkauf, Tür zu:
|
// Verkauf, Tür zu:
|
||||||
uint32_t VKcoinsInserted[16]; // nur für Wechsler, soviel wurde eingeworfen
|
uint32_t VKcoinsInserted[16]; // nur für Wechsler, soviel wurde eingeworfen
|
||||||
uint32_t VKcoinsReturned[6]; // nur für Wechsler, Anzahl Münzen pro Typ, soviel wurde zurückgegeben
|
uint32_t VKcoinsReturned[6]; // nur für Wechsler, Anzahl Münzen pro Typ, soviel wurde zurückgegeben
|
||||||
//88
|
//88
|
||||||
// Service, Tür offen:
|
|
||||||
uint16_t ServCoinsInserted[16]; // nur für Wechsler, soviel wurde eingeworfen
|
// Service, Tür offen:
|
||||||
uint16_t ServCoinsReturned[6]; // nur für Wechsler, Anzahl Münzen pro Typ, soviel wurde zurückgegeben
|
uint16_t ServCoinsInserted[16]; // nur für Wechsler, soviel wurde eingeworfen
|
||||||
|
uint16_t ServCoinsReturned[6]; // nur für Wechsler, Anzahl Münzen pro Typ, soviel wurde zurückgegeben
|
||||||
uint16_t resint3;
|
uint16_t resint3;
|
||||||
uint16_t resint4;
|
uint16_t resint4;
|
||||||
uint16_t currentTubeContent[6]; // nur für Wechsler, aktueller Füllstand
|
uint16_t currentTubeContent[6]; // nur für Wechsler, aktueller Füllstand
|
||||||
uint16_t resint5;
|
uint16_t resint5;
|
||||||
uint16_t resint6;
|
uint16_t resint6;
|
||||||
// 56
|
// 56
|
||||||
|
|
||||||
char label4buffer[4]; // box>
|
char label4buffer[4]; // box>
|
||||||
uint16_t coinsInVault[16];
|
uint16_t coinsInVault[16];
|
||||||
uint16_t billsInStacker[8];
|
uint16_t billsInStacker[8];
|
||||||
// 48
|
// 48
|
||||||
|
|
||||||
char label5buffer[4]; // val>
|
char label5buffer[4]; // val>
|
||||||
// actually constant unless exchange rate is changed
|
// actually constant unless exchange rate is changed
|
||||||
uint16_t coinDenomination[16]; // 5..50000 (z.B. 2? sind in Ungarn 760Ft)
|
uint16_t coinDenomination[16]; // 5..50000 (z.B. 2? sind in Ungarn 760Ft)
|
||||||
@ -135,12 +158,17 @@ struct T_vaultRecord {
|
|||||||
uint16_t tubeDenom[6];
|
uint16_t tubeDenom[6];
|
||||||
uint16_t exchangeRate;
|
uint16_t exchangeRate;
|
||||||
uint16_t resint9;
|
uint16_t resint9;
|
||||||
|
|
||||||
// 64
|
// 64
|
||||||
|
|
||||||
char endofblock[4]; // end>
|
char endofblock[4]; // end>
|
||||||
|
|
||||||
// 316 byte Block im Speicher
|
// 316 byte Block im Speicher
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct T_moduleCondition {
|
struct T_moduleCondition
|
||||||
|
{
|
||||||
// store conditon of all system components, hold in RAM
|
// store conditon of all system components, hold in RAM
|
||||||
// 0 means unknown, not yet tested/used
|
// 0 means unknown, not yet tested/used
|
||||||
// 1 means OK
|
// 1 means OK
|
||||||
@ -182,26 +210,41 @@ struct T_moduleCondition {
|
|||||||
uint8_t ResetReason;
|
uint8_t ResetReason;
|
||||||
uint8_t allModulesChecked;
|
uint8_t allModulesChecked;
|
||||||
|
|
||||||
|
uint8_t alarmState;
|
||||||
|
uint8_t res11;
|
||||||
|
uint8_t res12;
|
||||||
|
uint8_t res13;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct T_dynamicCondition {
|
struct T_dynamicCondition
|
||||||
char allDoorsDebounced; // 99: undefined, 0=all closed, bit1=upper door open 2=midlle door open 3=lower door open
|
{
|
||||||
|
char allDoorsDebounced;
|
||||||
char openedAuthorized;
|
char openedAuthorized;
|
||||||
uint8_t CBinDebounced;
|
uint8_t CBinDebounced; // 0:fehlt 1:drin
|
||||||
char upperDoor; // 99: undefined 0:closed 1:open
|
char upperDoor; // 99: undefined 0:closed 1:open
|
||||||
char middleDoor; // 99: undefined 0:closed 1:open
|
char middleDoor; // 99: undefined 0:closed 1:open
|
||||||
char lowerDoor; // 99: undefined 0:closed 1:open
|
char lowerDoor; // 99: undefined 0:closed 1:open
|
||||||
char reserve; // not used, always 0
|
char reserve;
|
||||||
char billBox;
|
char billBox;
|
||||||
char modeAbrech;
|
char modeAbrech;
|
||||||
char onAlarm; // 0:alarm aus 1:alarm 2:alarm mit Sirene 3: Sirenentest
|
char onAlarm; // 0:alarm aus 1:alarm 2:alarm mit Sirene 3: Sirenentest
|
||||||
char nowCardTest;
|
char nowCardTest;
|
||||||
char nowPayment;
|
char nowPayment; // not used, always 0
|
||||||
char lastMifCardType;
|
char lastMifCardType;
|
||||||
uint8_t lastSDoorState;
|
uint8_t lastSDoorState;
|
||||||
uint8_t lastVDoorState;
|
uint8_t lastVDoorState;
|
||||||
uint8_t lastCBstate; // 99: undefined 0:not there 1:insered
|
uint8_t lastCBstate;
|
||||||
char paymentInProgress;
|
char paymentInProgress;
|
||||||
|
// 0: stopped by timeout
|
||||||
|
// 1: running 2: wait4lastCoin
|
||||||
|
// 3: payment stopped manually, coins in Escrow
|
||||||
|
// 4: payment stopped autom, amount collected, coins in Escrow
|
||||||
|
// 5: payment stopped, escrow full, coins in Escrow
|
||||||
|
// 6: coins encashed 7:coins returned
|
||||||
|
// 8: CoinChecker or MDB on Error
|
||||||
|
|
||||||
|
|
||||||
char res1;
|
char res1;
|
||||||
uint16_t U_Batt;
|
uint16_t U_Batt;
|
||||||
uint16_t Temperatur;
|
uint16_t Temperatur;
|
||||||
@ -229,10 +272,12 @@ struct T_dynamicCondition {
|
|||||||
// bit6: no response bit7: serial rec. error
|
// bit6: no response bit7: serial rec. error
|
||||||
// bit5: printer not ready
|
// bit5: printer not ready
|
||||||
uint8_t startupTestIsRunning;
|
uint8_t startupTestIsRunning;
|
||||||
|
|
||||||
//54
|
//54
|
||||||
};
|
};
|
||||||
|
|
||||||
struct T_extTime {
|
struct T_extTime
|
||||||
|
{
|
||||||
uint8_t Hours;
|
uint8_t Hours;
|
||||||
uint8_t Min;
|
uint8_t Min;
|
||||||
uint8_t Sec;
|
uint8_t Sec;
|
||||||
@ -258,8 +303,10 @@ struct T_extTime {
|
|||||||
uint8_t res4;
|
uint8_t res4;
|
||||||
uint16_t res5;
|
uint16_t res5;
|
||||||
uint32_t MinutesOfMillenium;
|
uint32_t MinutesOfMillenium;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
typedef uint8_t UCHAR;
|
typedef uint8_t UCHAR;
|
||||||
typedef uint16_t UINT;
|
typedef uint16_t UINT;
|
||||||
|
|
||||||
@ -268,7 +315,7 @@ struct T_devices
|
|||||||
// set by master, used(1) or notused (0) or type 2....20
|
// set by master, used(1) or notused (0) or type 2....20
|
||||||
|
|
||||||
UCHAR kindOfPrinter; // 0:off 1:Gebe
|
UCHAR kindOfPrinter; // 0:off 1:Gebe
|
||||||
UCHAR kindOfCoinChecker; // 0: without 1=EMP820 2=EMP900 3=currenza c² (MW)
|
UCHAR kindOfCoinChecker; // 0: without 1=EMP820 2=EMP900 3=currenza c² (MW)
|
||||||
UCHAR kindOfMifareReader; // by now only stronglink SL025 =1
|
UCHAR kindOfMifareReader; // by now only stronglink SL025 =1
|
||||||
UCHAR suppressSleepMode; // 0:sleep allowed 1: no sleep
|
UCHAR suppressSleepMode; // 0:sleep allowed 1: no sleep
|
||||||
|
|
||||||
@ -293,14 +340,14 @@ struct T_devices
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class hwinf {
|
|
||||||
public:
|
|
||||||
enum class DownloadResult {OK, ERROR, TIMEOUT, NOP};
|
|
||||||
enum class FileTypeJson {CONFIG=1, DEVICE, CASH, SERIAL, TIME, PRINTER};
|
|
||||||
|
|
||||||
|
class hwinf
|
||||||
|
{
|
||||||
|
|
||||||
|
public:
|
||||||
virtual ~hwinf() {}
|
virtual ~hwinf() {}
|
||||||
|
|
||||||
virtual QStringList dc_getStatus() const = 0;
|
|
||||||
|
|
||||||
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
|
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
|
||||||
// Use serial interface and protocol stack in Cashagent-Library
|
// Use serial interface and protocol stack in Cashagent-Library
|
||||||
@ -310,14 +357,14 @@ public:
|
|||||||
// Furthermore the Cashagent-Library answers with status strings about sending and reading result
|
// Furthermore the Cashagent-Library answers with status strings about sending and reading result
|
||||||
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
|
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
|
||||||
|
|
||||||
virtual bool dc_openSerial(int BaudNr, QString BaudStr, QString ComName, uint8_t connect) const = 0;
|
virtual bool dc_openSerial(int BaudNr, QString BaudStr, QString ComName, uint8_t connect) const =0;
|
||||||
// Command: open serial interface
|
// Command: open serial interface
|
||||||
// BaudNr: 0:1200 1:9600 2:19200 3:38400 4:57600 5:115200
|
// BaudNr: 0:1200 1:9600 2:19200 3:38400 4:57600 5:115200
|
||||||
// BaudStr: for exapmle "19200"
|
// BaudStr: for exapmle "19200"
|
||||||
// ComName: for example "COM48"
|
// ComName: for example "COM48"
|
||||||
// connect: 0, 1
|
// connect: 0, 1
|
||||||
|
|
||||||
virtual bool dc_closeSerial(void) const = 0;
|
virtual void dc_closeSerial(void) const =0;
|
||||||
// Command: close serial interface in order to save power while power down
|
// Command: close serial interface in order to save power while power down
|
||||||
// or if another port must be used
|
// or if another port must be used
|
||||||
|
|
||||||
@ -332,21 +379,7 @@ public:
|
|||||||
|
|
||||||
virtual bool test_serialIsOn(void) const =0;
|
virtual bool test_serialIsOn(void) const =0;
|
||||||
|
|
||||||
virtual bool dc_updateDC(QString binFileName,
|
|
||||||
QString baudrate,
|
|
||||||
QString comPort) const = 0;
|
|
||||||
// download binary file down into device controller
|
|
||||||
|
|
||||||
virtual bool dc_updatePrinterTemplate(enum FileTypeJson type,
|
|
||||||
QVector<int> templateIdx,
|
|
||||||
QVector<QString> fnames,
|
|
||||||
QString br,
|
|
||||||
QString serial = QString()) const = 0;
|
|
||||||
|
|
||||||
virtual bool dc_printTemplate(enum FileTypeJson type,
|
|
||||||
QVector<int> templateIdx,
|
|
||||||
QString br,
|
|
||||||
QString serial = QString()) const = 0;
|
|
||||||
|
|
||||||
virtual void dc_autoRequest(bool on) const =0;
|
virtual void dc_autoRequest(bool on) const =0;
|
||||||
// on = true: select that all READ-Requests are sent automatically
|
// on = true: select that all READ-Requests are sent automatically
|
||||||
@ -363,7 +396,7 @@ public:
|
|||||||
// get data back in "payLoad", max 64 byte, can be used for diagnosis
|
// get data back in "payLoad", max 64 byte, can be used for diagnosis
|
||||||
// retval = nr of bytes received. If host buffer too small then
|
// retval = nr of bytes received. If host buffer too small then
|
||||||
// only plBufSiz bytes are copied to "payLoad"
|
// only plBufSiz bytes are copied to "payLoad"
|
||||||
// plBufSizz=size of host buffer
|
// plBufSizz=size of host buffer
|
||||||
|
|
||||||
virtual void dc_requTestResponse() const =0;
|
virtual void dc_requTestResponse() const =0;
|
||||||
// tell DC2 to send a test-string, useful to see if cable and baudrate is OK
|
// tell DC2 to send a test-string, useful to see if cable and baudrate is OK
|
||||||
@ -484,10 +517,10 @@ public:
|
|||||||
|
|
||||||
// Analog values:
|
// Analog values:
|
||||||
virtual uint32_t dc_getTemperature(void) const =0;
|
virtual uint32_t dc_getTemperature(void) const =0;
|
||||||
// in Sax-Format 0...400 (0=-50,0°C 100=0,0°C 141=20,5°C 400=150,0°C)
|
// in Sax-Format 0...400 (0=-50,0°C 100=0,0°C 141=20,5°C 400=150,0°C)
|
||||||
|
|
||||||
virtual QString dc_getTemperaturStr(void) const =0;
|
virtual QString dc_getTemperaturStr(void) const =0;
|
||||||
// as string like "-12,5°C"
|
// as string like "-12,5°C"
|
||||||
|
|
||||||
virtual uint32_t dc_getVoltage(void) const =0;
|
virtual uint32_t dc_getVoltage(void) const =0;
|
||||||
// as value in mV, 0...65,535V
|
// as value in mV, 0...65,535V
|
||||||
@ -642,7 +675,7 @@ public:
|
|||||||
uint8_t kindOfModem, uint8_t kindOfCredit ) const =0;
|
uint8_t kindOfModem, uint8_t kindOfCredit ) const =0;
|
||||||
// enable hardware in device controller:
|
// enable hardware in device controller:
|
||||||
// kindOfPrinter: 0:off 1: GPT4672 (only this one implemented)
|
// kindOfPrinter: 0:off 1: GPT4672 (only this one implemented)
|
||||||
// kindOfCoinChecker: 0:off 1:EMP820 2:EMP900 3: C²_changer
|
// kindOfCoinChecker: 0:off 1:EMP820 2:EMP900 3: C²_changer
|
||||||
// kindOfMifareReader: 0:off 1: SL025 (only this one implemented)
|
// kindOfMifareReader: 0:off 1: SL025 (only this one implemented)
|
||||||
// suppressSleep: 0:sleep allowed 1: sleep surpressed for special reason
|
// suppressSleep: 0:sleep allowed 1: sleep surpressed for special reason
|
||||||
// kindOfModem: 0:off 1: ATB_Sunlink_LTE (not yet implemented)
|
// kindOfModem: 0:off 1: ATB_Sunlink_LTE (not yet implemented)
|
||||||
@ -748,7 +781,7 @@ public:
|
|||||||
// send 5 byte: byte 0,1: speed 5...250 mm/s
|
// send 5 byte: byte 0,1: speed 5...250 mm/s
|
||||||
// byte2: density 0....(25)....50
|
// byte2: density 0....(25)....50
|
||||||
// byte3: alignment 'l', 'c', 'r' = left, center, right
|
// byte3: alignment 'l', 'c', 'r' = left, center, right
|
||||||
// byte4: orientation 0, 90, 180 = 0°, 90°, 180° rotation (by now not supported!)
|
// byte4: orientation 0, 90, 180 = 0°, 90°, 180° rotation (by now not supported!)
|
||||||
// not batched! don't use twice within 100ms
|
// not batched! don't use twice within 100ms
|
||||||
|
|
||||||
virtual void prn_movePaper(uint8_t wayInMm, uint8_t direction) const =0;
|
virtual void prn_movePaper(uint8_t wayInMm, uint8_t direction) const =0;
|
||||||
@ -806,29 +839,36 @@ public:
|
|||||||
// up to 8 dynamic values can be defined in the template ("print val3 here") and will be sent with printing command
|
// up to 8 dynamic values can be defined in the template ("print val3 here") and will be sent with printing command
|
||||||
// example: print current time at this point (the time of printing not the storage time!!)
|
// example: print current time at this point (the time of printing not the storage time!!)
|
||||||
|
|
||||||
virtual void pri_startTicketDesign(void) const =0;
|
// obsolete
|
||||||
|
//virtual void pri_startTicketDesign(void) const =0;
|
||||||
// start for every new printer document, reseting collecting buffer
|
// start for every new printer document, reseting collecting buffer
|
||||||
|
|
||||||
// all further functions write/append text, numbers and command to the ticket-buffer, up to 1278 bytes allowed
|
// all further functions write/append text, numbers and command to the ticket-buffer, up to 1278 bytes allowed
|
||||||
// return val of the appending functions: true=ok false=too long, buffer full
|
// return val of the appending functions: true=ok false=too long, buffer full
|
||||||
|
|
||||||
virtual int pri_TD_getCurrentSize(void) const =0;
|
// obsolete
|
||||||
|
//virtual int pri_TD_getCurrentSize(void) const =0;
|
||||||
// retval: 0...1278
|
// retval: 0...1278
|
||||||
|
|
||||||
virtual bool pri_TD_addText(QByteArray text) const =0;
|
// obsolete
|
||||||
|
//virtual bool pri_TD_addText(QByteArray text) const =0;
|
||||||
// example: pri_TD_addText("Hello") const =0;
|
// example: pri_TD_addText("Hello") const =0;
|
||||||
// example: pri_TD_addText(tempStr) const =0;
|
// example: pri_TD_addText(tempStr) const =0;
|
||||||
// retval: true=ok false=too long, buffer full
|
// retval: true=ok false=too long, buffer full
|
||||||
|
|
||||||
virtual bool pri_TD_addValue(int val) const =0;
|
// obsolete
|
||||||
|
//virtual bool pri_TD_addValue(int val) const =0;
|
||||||
// +/- 0...2^(31)
|
// +/- 0...2^(31)
|
||||||
|
|
||||||
virtual bool pri_TD_addNewLine(void) const =0;
|
// obsolete
|
||||||
|
//virtual bool pri_TD_addNewLine(void) const =0;
|
||||||
|
|
||||||
virtual bool pri_TD_addSign(char sign) const =0;
|
// obsolete
|
||||||
|
//virtual bool pri_TD_addSign(char sign) const =0;
|
||||||
// example: '.' ' ' 0x20 'W' '$'
|
// example: '.' ' ' 0x20 'W' '$'
|
||||||
|
|
||||||
virtual bool pri_TD_addCommand(char group, char attribute, char p1, char p2, char p3, char p4, char p5) const =0;
|
// obsolete
|
||||||
|
//virtual bool pri_TD_addCommand(char group, char attribute, char p1, char p2, char p3, char p4, char p5) const =0;
|
||||||
// always add 8 byte to the ticket layout: ESC & group & attribute & parameter1...5
|
// always add 8 byte to the ticket layout: ESC & group & attribute & parameter1...5
|
||||||
/* complete list of possible commands:
|
/* complete list of possible commands:
|
||||||
group 50 : paper
|
group 50 : paper
|
||||||
@ -869,11 +909,13 @@ public:
|
|||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
virtual char prn_clearDocument(uint8_t documentNumber) const =0;
|
// obsolete
|
||||||
|
//virtual char prn_clearDocument(uint8_t documentNumber) const =0;
|
||||||
// clear memory buffer for ONE document
|
// clear memory buffer for ONE document
|
||||||
// function takes a second! don't send right before "store doc"
|
// function takes a second! don't send right before "store doc"
|
||||||
|
|
||||||
virtual bool prn_store_Document(uint8_t documentNumber ) const =0;
|
// obsolete
|
||||||
|
//virtual bool prn_store_Document(uint8_t documentNumber ) const =0;
|
||||||
// send the predefined Layout (generated with above TD functions) to DeviceController to save
|
// send the predefined Layout (generated with above TD functions) to DeviceController to save
|
||||||
// documentNumber=0...15
|
// documentNumber=0...15
|
||||||
// maximal 1280 bytes each
|
// maximal 1280 bytes each
|
||||||
@ -884,7 +926,8 @@ public:
|
|||||||
// the place in the ticket layout is predefined (already in DC memory)
|
// the place in the ticket layout is predefined (already in DC memory)
|
||||||
// the dynamics are first calculated at printing time
|
// the dynamics are first calculated at printing time
|
||||||
|
|
||||||
virtual bool prn_printDocument(uint8_t documentNumber, struct T_dynDat *dynTicketData) const =0;
|
// obsolete
|
||||||
|
//virtual bool prn_printDocument(uint8_t documentNumber, struct T_dynDat *dynTicketData) const =0;
|
||||||
|
|
||||||
|
|
||||||
// 36
|
// 36
|
||||||
@ -1276,10 +1319,10 @@ public:
|
|||||||
|
|
||||||
virtual void bl_rebootDC(void) const =0;
|
virtual void bl_rebootDC(void) const =0;
|
||||||
|
|
||||||
virtual void bl_startBL(void) const = 0;
|
virtual void bl_startBL(void) const =0;
|
||||||
// send command within 4s after DC power-on, otherwise bl is left
|
// send command within 4s after DC power-on, otherwise bl is left
|
||||||
|
|
||||||
virtual bool bl_checkBL(void) const = 0;
|
virtual void bl_checkBL(void) const =0;
|
||||||
// send command to verify if bl is up
|
// send command to verify if bl is up
|
||||||
|
|
||||||
virtual bool bl_isUp(void) const =0;
|
virtual bool bl_isUp(void) const =0;
|
||||||
@ -1316,7 +1359,7 @@ public:
|
|||||||
|
|
||||||
|
|
||||||
// Komplett-schreib Funktion, noch nicht getestet
|
// Komplett-schreib Funktion, noch nicht getestet
|
||||||
// Nachteil: keine Rückmeldung wie lang's noch dauert
|
// Nachteil: keine Rückmeldung wie lang's noch dauert
|
||||||
//virtual void bl_startSending(void) const=0;
|
//virtual void bl_startSending(void) const=0;
|
||||||
// call once after BL is working and file is loaded
|
// call once after BL is working and file is loaded
|
||||||
//virtual void bl_sendFile(void) const=0;
|
//virtual void bl_sendFile(void) const=0;
|
||||||
@ -1342,7 +1385,7 @@ public:
|
|||||||
buf[4]=GlobTime.Month;
|
buf[4]=GlobTime.Month;
|
||||||
buf[5]=GlobTime.Day;
|
buf[5]=GlobTime.Day;
|
||||||
buf[6]=GlobTime.DOW;
|
buf[6]=GlobTime.DOW;
|
||||||
buf[7]=' '; // immer auf 32bit auffüllen sonst Speicherproblem beim Master!
|
buf[7]=' '; // immer auf 32bit auffüllen sonst Speicherproblem beim Master!
|
||||||
uitmp=GlobTime.MinOfDay;
|
uitmp=GlobTime.MinOfDay;
|
||||||
buf[8]=swl_getOneByteFromUint(uitmp, 0);
|
buf[8]=swl_getOneByteFromUint(uitmp, 0);
|
||||||
buf[9]=swl_getOneByteFromUint(uitmp, 1);
|
buf[9]=swl_getOneByteFromUint(uitmp, 1);
|
||||||
@ -1453,6 +1496,15 @@ public:
|
|||||||
// 17.4.23TS: extended to 32bit
|
// 17.4.23TS: extended to 32bit
|
||||||
|
|
||||||
virtual uint8_t cash_paymentProcessing(void) const=0;
|
virtual uint8_t cash_paymentProcessing(void) const=0;
|
||||||
|
// run this function periodically while coin payment process to generate necessary signals
|
||||||
|
// return value:
|
||||||
|
// 0: stopped 1: starting up 2: coin collection
|
||||||
|
// 3: finished by User (Push button) 4: finished, Max-Value collected
|
||||||
|
// 5: finished by escrow
|
||||||
|
// 10,11: error cannot start
|
||||||
|
// 12: timeout while payment, coins returned
|
||||||
|
// 13: stopped by unexpected error
|
||||||
|
|
||||||
|
|
||||||
virtual uint32_t getInsertedAmount(void) const=0;
|
virtual uint32_t getInsertedAmount(void) const=0;
|
||||||
|
|
||||||
@ -1530,6 +1582,8 @@ public:
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
virtual void sys_getDeviceConditions(struct T_moduleCondition *devCond) const=0;
|
virtual void sys_getDeviceConditions(struct T_moduleCondition *devCond) const=0;
|
||||||
|
|
||||||
|
|
||||||
virtual void sys_getDynMachineConditions(uint8_t *leng, uint8_t *data) const=0;
|
virtual void sys_getDynMachineConditions(uint8_t *leng, uint8_t *data) const=0;
|
||||||
/*
|
/*
|
||||||
|
|
||||||
@ -1602,8 +1656,10 @@ public:
|
|||||||
|
|
||||||
virtual uint16_t cash_getNrCoinsInVault(void) const=0;
|
virtual uint16_t cash_getNrCoinsInVault(void) const=0;
|
||||||
|
|
||||||
|
|
||||||
virtual uint8_t prn_getPrintResult() const=0;
|
virtual uint8_t prn_getPrintResult() const=0;
|
||||||
|
// return: 0: unknown
|
||||||
|
// 1: OK - last template was printed succesful
|
||||||
|
// 2: error - last template was not printed
|
||||||
|
|
||||||
// in case of print-error get detailed error:
|
// in case of print-error get detailed error:
|
||||||
virtual uint8_t prn_getCurrentPrinterState() const=0;
|
virtual uint8_t prn_getCurrentPrinterState() const=0;
|
||||||
@ -1614,61 +1670,27 @@ public:
|
|||||||
// bit6: no response bit7: serial rec. error
|
// bit6: no response bit7: serial rec. error
|
||||||
// bit5: printer not ready
|
// bit5: printer not ready
|
||||||
|
|
||||||
|
|
||||||
virtual void sys_sendDeviceParameter(struct T_devices *deviceSettings) const=0;
|
virtual void sys_sendDeviceParameter(struct T_devices *deviceSettings) const=0;
|
||||||
|
|
||||||
virtual void sys_restoreDeviceParameter(struct T_devices *deviceSettings) const=0;
|
virtual void sys_restoreDeviceParameter(struct T_devices *deviceSettings) const=0;
|
||||||
|
|
||||||
virtual bool sys_areDCdataValid(void) const=0;
|
virtual bool sys_areDCdataValid(void) const=0;
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------------------------------
|
virtual bool sys_sendingTest(void) const =0;
|
||||||
// ------------ supervise all hardware components
|
|
||||||
// ------------ assess the machine state
|
|
||||||
|
|
||||||
1. check if DC startup test is through, retrigger if not
|
virtual void prn_requestCurrentDynData(void) const =0;
|
||||||
2. get results and find errors
|
|
||||||
3. in case of error check if component is used (e.g. billreader is seldom used)
|
|
||||||
4: check doors
|
|
||||||
5. return value: 0: no response from DC
|
|
||||||
1: no Test results and Test not running. need retrigger!
|
|
||||||
2: state not clear by now, test ongoing, wait
|
|
||||||
3: Service or battery door is open, goto INTRUSION MODE
|
|
||||||
from here: after valid ID-card goto SERVICE MODE
|
|
||||||
4: vault door is open, goto INTRUSION MODE
|
|
||||||
from here: after valid ID-card and vault door closed goto TEST MODE
|
|
||||||
in TEST MODE: complete system check decides if vending mode allowed
|
|
||||||
5: All doors are closed but errors found,
|
|
||||||
goto OOO MODE (out-of-order)
|
|
||||||
from here: run system test until problem is fixed
|
|
||||||
6: All doors are closed, no error, maybe warnings,
|
|
||||||
goto VENDING MODE (normal operation)
|
|
||||||
(priority sinks from 0 to 6)
|
|
||||||
|
|
||||||
--------------------------------------------------------------------------------------------- */
|
virtual bool prn_getCurrentDynamicPrnValuesFromDC(uint8_t *dynPrnVal ) const =0;
|
||||||
|
// which was sent with: bool prn_sendDynamicPrnValues(uint8_t *dynPrnVal ) const override;
|
||||||
|
|
||||||
virtual uint8_t sys_componentAssessment(void) const=0;
|
virtual bool prn_dynDataAreEqual(uint8_t *buf) const =0;
|
||||||
// this function decides if vending mode is possible, independant from door
|
|
||||||
// return >0 in case of error
|
|
||||||
// is inncluded in sys_superviseSystem
|
|
||||||
|
|
||||||
virtual uint8_t sys_superviseSystem(void) const=0;
|
virtual bool prn_printKombiticket(uint8_t nrOfKombi) const=0;
|
||||||
// this function proofs if vending is possible depending of doors state
|
// print four of the templates loaded by Json prior
|
||||||
|
// nr = 1..8
|
||||||
virtual uint8_t sys_getSystemErrors(void) const=0;
|
|
||||||
|
|
||||||
|
|
||||||
// retrigger System-Check with:
|
|
||||||
// bool hwapi::sys_runCompleteTest(void) const
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------------------------
|
|
||||||
// ---------------------------------------------------------------------------------------------
|
|
||||||
// ---------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
virtual void hwapi_templatePrintFinished_OK(void) const=0;
|
virtual void hwapi_templatePrintFinished_OK(void) const=0;
|
||||||
@ -1707,12 +1729,19 @@ signals:
|
|||||||
// 14.04.2023: V3.4 new features extended: sys_getDynMachineConditions, sys_getDeviceConditions and
|
// 14.04.2023: V3.4 new features extended: sys_getDynMachineConditions, sys_getDeviceConditions and
|
||||||
// rtc_getExtendedTime return struct in addition. New function to select and get VaultRecord
|
// rtc_getExtendedTime return struct in addition. New function to select and get VaultRecord
|
||||||
//
|
//
|
||||||
|
// 19.04.2023: V3.5 new function: sys_getWakeReason();
|
||||||
|
// 17.05.2023: V3.6 new function: cash_isCollectionActive(), cash_isPayProcessActive()
|
||||||
|
// new signals: hwapi_coinCollectionJustStopped, hwapi_coinCollectionJustStarted
|
||||||
|
// getAllInsertedCoins() fixed, also in datif and storeINdata
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//#define HWINF_iid "Atb.Psa2020.software.HWapi/3.1"
|
//#define HWINF_iid "Atb.Psa2020.software.HWapi/3.1"
|
||||||
//#define HWINF_iid "Atb.Psa1256ptu5.software.HWapi/3.1"
|
//#define HWINF_iid "Atb.Psa1256ptu5.software.HWapi/3.1"
|
||||||
//#define HWINF_iid "Atb.Psa1256ptu5.software.HWapi/3.3"
|
//#define HWINF_iid "Atb.Psa1256ptu5.software.HWapi/3.3"
|
||||||
//#define HWINF_iid "Atb.Psa1256ptu5.software.HWapi/3.4"
|
//#define HWINF_iid "Atb.Psa1256ptu5.software.HWapi/3.4"
|
||||||
#define HWINF_iid "Atb.Psa1256ptu5.software.HWapi/3.5"
|
//#define HWINF_iid "Atb.Psa1256ptu5.software.HWapi/3.5"
|
||||||
|
#define HWINF_iid "Atb.Psa1256ptu5.software.HWapi/3.6"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -122,10 +122,11 @@ void ATBDeviceControllerPlugin::requestPrintTicket(const QHash<QString, QVariant
|
|||||||
memcpy((char*)dynTicketData->vendingPrice, ba_amount.data(), std::min(ba_amount.size(),8));
|
memcpy((char*)dynTicketData->vendingPrice, ba_amount.data(), std::min(ba_amount.size(),8));
|
||||||
|
|
||||||
QByteArray ba_parkingEndTime = codec->fromUnicode(parkingEndDateTime.toString("hh:mm"));
|
QByteArray ba_parkingEndTime = codec->fromUnicode(parkingEndDateTime.toString("hh:mm"));
|
||||||
memcpy((char*)dynTicketData->parkingEndTime, ba_parkingEndTime.data(), std::min(ba_parkingEndTime.size(),8));
|
memcpy((char*)dynTicketData->parkingEnd, ba_parkingEndTime.data(), std::min(ba_parkingEndTime.size(),8));
|
||||||
|
|
||||||
QByteArray ba_parkingEndDate = codec->fromUnicode(parkingEndDateTime.toString("dd.MM.yy"));
|
QByteArray ba_parkingEndDate = codec->fromUnicode(parkingEndDateTime.toString("dd.MM.yy"));
|
||||||
memcpy((char*)dynTicketData->parkingEndDate, ba_parkingEndDate.data(), std::min(ba_parkingEndDate.size(),8));
|
memcpy((char*)dynTicketData->currentTime, ba_parkingEndDate.data(), std::min(ba_parkingEndDate.size(),8));
|
||||||
|
// ! and yes... 'ParkingEndDate' is 'currentTime'
|
||||||
|
|
||||||
QByteArray ba_currentDate = codec->fromUnicode(currentDateTime.toString("dd.MM.yy"));
|
QByteArray ba_currentDate = codec->fromUnicode(currentDateTime.toString("dd.MM.yy"));
|
||||||
memcpy((char*)dynTicketData->currentDate, ba_currentDate.data(), std::min(ba_currentDate.size(),8));
|
memcpy((char*)dynTicketData->currentDate, ba_currentDate.data(), std::min(ba_currentDate.size(),8));
|
||||||
|
Loading…
Reference in New Issue
Block a user