forked from GerhardHoffmann/DCLibraries
Add collected changes from T.Sax
This commit is contained in:
@@ -179,57 +179,64 @@ struct T_moduleCondition
|
||||
// 50..99 = HINT / Notification
|
||||
// 100..150 = WARNING
|
||||
// 200..250 = ERROR
|
||||
|
||||
uint8_t ram;
|
||||
uint8_t intEe;
|
||||
uint8_t extEe;
|
||||
uint8_t rtc; // 1: time/date OK 100: time not plausible 200: hardware error
|
||||
|
||||
uint8_t boardHw;
|
||||
uint8_t printer;
|
||||
uint8_t modem;
|
||||
uint8_t signal; // 1...99
|
||||
|
||||
uint8_t regist; // 100:not 1:reg 2:ping OK 3:gotTime
|
||||
uint8_t mdbBus;
|
||||
// 10
|
||||
uint8_t coinChecker; // EMP, OMP or mei-cashflow
|
||||
uint8_t coinEscrow;
|
||||
|
||||
uint8_t mifareReader; // 0: unknown 1=OK 200=no response 201=wrong response 202: Reader reports HW-error
|
||||
uint8_t creditTerm;
|
||||
uint8_t coinReject;
|
||||
uint8_t coinSafe;
|
||||
|
||||
uint8_t billSafe;
|
||||
uint8_t voltage; // 1:11..14V
|
||||
uint8_t temper;
|
||||
uint8_t poweronTest;
|
||||
// 20
|
||||
|
||||
uint8_t doorState; // 1: alles zu 200: tuer offen + bit1(S) +bit2(CB) + bit3(CB)
|
||||
uint8_t doorWasOpened; // 1: all doors are closed 200: any door was just opened
|
||||
uint8_t changer; // can only be tested by usage
|
||||
uint8_t coinBlocker; // can only be tested by usage
|
||||
uint8_t billReader; // can only be tested by usage
|
||||
uint8_t doorWasOpened; // 1: all doors are closed 200: any door was just opened
|
||||
uint8_t changer;
|
||||
uint8_t coinBlocker;
|
||||
|
||||
uint8_t billReader;
|
||||
uint8_t ResetReason;
|
||||
uint8_t allModulesChecked;
|
||||
uint8_t alarmState;
|
||||
|
||||
uint8_t fuses;
|
||||
uint8_t res11;
|
||||
uint8_t res12;
|
||||
// 30
|
||||
uint8_t res13;
|
||||
// 32
|
||||
|
||||
uint8_t padd00;
|
||||
uint8_t padd01;
|
||||
uint8_t padd02;
|
||||
uint8_t padd03;
|
||||
//36
|
||||
uint32_t padd04;
|
||||
uint32_t padd05;
|
||||
uint32_t padd06;
|
||||
uint32_t padd07;
|
||||
// 50
|
||||
// 52
|
||||
uint32_t padd08;
|
||||
uint32_t padd09;
|
||||
uint32_t padd10;
|
||||
uint16_t padd11;
|
||||
// 64
|
||||
};
|
||||
|
||||
// ATTENTION: struct length must be 64 exactly!!!
|
||||
|
||||
struct T_dynamicCondition
|
||||
{
|
||||
char allDoorsDebounced;
|
||||
@@ -248,7 +255,7 @@ struct T_dynamicCondition
|
||||
char lastMifCardType;
|
||||
uint8_t lastSDoorState;
|
||||
uint8_t lastVDoorState;
|
||||
uint8_t lastCBstate;
|
||||
uint8_t lastCBstate; // =0, not used
|
||||
char paymentInProgress;
|
||||
// Version Szeged: aug2023
|
||||
// 0: stopped by timeout
|
||||
@@ -291,7 +298,10 @@ struct T_dynamicCondition
|
||||
char jsonValid_serial;
|
||||
char jsonValid_time;
|
||||
char lastFileType;
|
||||
|
||||
uint8_t MifCardHolder[8];
|
||||
// 51
|
||||
|
||||
uint8_t resultOfLastTemplPrint;
|
||||
// 0: unknown or printing in progress
|
||||
// 1: OK, doc was printed 2: error, doc was not printed
|
||||
@@ -302,17 +312,36 @@ struct T_dynamicCondition
|
||||
// bit4: paper jam in cutter
|
||||
// bit6: no response bit7: serial rec. error
|
||||
// bit5: printer not ready
|
||||
uint8_t startupTestIsRunning;
|
||||
uint8_t startupTestIsRunning; // =0, not used
|
||||
uint16_t empty; // neu 3.7.24, dieser Platz wird vom Compiler im Ram
|
||||
// freigehalten weil naechster Wert ein Long ist
|
||||
// 56
|
||||
// new since 7.5.24
|
||||
uint32_t totalNrOfCuts;
|
||||
uint16_t nextAccountNumber;
|
||||
uint16_t nrOfBillsInBox;
|
||||
//uint16_t padd07; // raus am 3.7.24
|
||||
// 64
|
||||
|
||||
// rest comes with new cmd:
|
||||
uint32_t amountInBillbox;
|
||||
uint16_t UbatAtLastPrint;
|
||||
uint16_t pad01;
|
||||
uint32_t reserve01;
|
||||
uint32_t reserve02;
|
||||
uint32_t reserve03;
|
||||
uint32_t reserve04;
|
||||
uint32_t reserve05;
|
||||
uint32_t reserve06;
|
||||
uint32_t reserve07;
|
||||
uint32_t reserve08;
|
||||
uint32_t reserve09;
|
||||
uint32_t reserve10;
|
||||
uint32_t reserve11;
|
||||
uint32_t reserve12;
|
||||
uint32_t reserve13;
|
||||
uint32_t reserve14;
|
||||
|
||||
uint8_t padd01;
|
||||
uint8_t padd02;
|
||||
uint8_t padd03;
|
||||
//50
|
||||
uint32_t padd04;
|
||||
uint32_t padd05;
|
||||
uint32_t padd06;
|
||||
uint16_t padd07;
|
||||
// 64
|
||||
};
|
||||
|
||||
struct T_extTime
|
||||
@@ -358,24 +387,37 @@ struct T_devices
|
||||
UCHAR kindOfCoinChecker; // 0: without 1=EMP820 2=EMP900 3=currenza Csquare (MW)
|
||||
UCHAR kindOfMifareReader; // by now only stronglink SL025 =1
|
||||
UCHAR solarPower; // 1:sleep allowed 0: no sleep
|
||||
|
||||
UCHAR kindOfModem; // 0:off 1:Sunlink
|
||||
UCHAR kindOfCreditcard; // 0:off 1:Feig NFC
|
||||
UCHAR CoinEscrow;
|
||||
UCHAR CoinRejectUnit;
|
||||
|
||||
UCHAR CoinShutter;
|
||||
UCHAR BillAcceptor;
|
||||
// 10
|
||||
UCHAR usevaultLock;
|
||||
UCHAR autoAlarm; // 1: switch on siren for 1min in doors opened unauthorized
|
||||
|
||||
UCHAR autoOpen; // 1: open door covers after valid ATBcard
|
||||
UCHAR printAccReceipt; // 0/1
|
||||
UCHAR printDoorReceipt;
|
||||
UCHAR printTokenTicket;
|
||||
|
||||
UINT VaultFullWarnLevel;
|
||||
UINT VaultFullErrorLevel;
|
||||
// 30
|
||||
// 20
|
||||
UINT BattEmptyWarnLevel;
|
||||
UINT BattEmptyErrorLevel;
|
||||
|
||||
UCHAR useForeignCharacters;
|
||||
UCHAR printRefundReceipt;
|
||||
UINT BillFullWarnLevel;
|
||||
UINT BillFullErrorLevel;
|
||||
|
||||
UCHAR housing;
|
||||
UCHAR resUc1;
|
||||
// 32
|
||||
uint32_t padd01;
|
||||
uint32_t padd02;
|
||||
uint32_t padd03;
|
||||
@@ -383,7 +425,7 @@ struct T_devices
|
||||
uint32_t padd05;
|
||||
uint32_t padd06;
|
||||
uint32_t padd07;
|
||||
uint16_t padd08;
|
||||
uint32_t padd08;
|
||||
// 64
|
||||
|
||||
};
|
||||
@@ -417,6 +459,8 @@ struct T_changer
|
||||
uint8_t paymentRunning; // 1: coins are accepted
|
||||
uint16_t denomination[16];
|
||||
uint16_t availableTubes; //bitwise 0,1 1=av. bit0 = lowest coin value
|
||||
uint16_t pad;
|
||||
// 64byte
|
||||
};
|
||||
|
||||
struct T_bna
|
||||
@@ -425,19 +469,29 @@ struct T_bna
|
||||
uint8_t setup; // 0: not 1: got valid parameters from device
|
||||
uint8_t FeatureLevel;
|
||||
uint16_t countryCode; // programmed in EMP
|
||||
|
||||
uint16_t scalingFactor; // z.B. 5
|
||||
uint8_t decimalPlace;
|
||||
uint8_t pad1;
|
||||
|
||||
uint16_t stackerCap;
|
||||
uint16_t billSecureLevel;
|
||||
// 12
|
||||
uint8_t hasEscrow;
|
||||
uint8_t accBillTypes[16]; // programmed in EMP z.B. (bit 0..7): 1 2 4 10 20 40 0 0
|
||||
uint16_t currentStackerLevel; // requested number of notes in billbox
|
||||
|
||||
// 31
|
||||
// settings from Master
|
||||
uint16_t intendedAccept; // bit 0 =5€
|
||||
uint16_t pad2;
|
||||
uint16_t billDenomination[16];
|
||||
// 35
|
||||
uint16_t billDenomination[8];
|
||||
// 51
|
||||
uint8_t pad3;
|
||||
uint32_t pad4;
|
||||
uint32_t pad5;
|
||||
uint32_t pad6;
|
||||
// 8.5.24 reduced, 3 bytes too much.
|
||||
|
||||
};
|
||||
|
||||
@@ -1279,16 +1333,17 @@ public:
|
||||
|
||||
// read printer condition and settings
|
||||
|
||||
virtual uint8_t prn_getHwState(struct Tprn_hw_state *prn_hw_state) const {
|
||||
virtual uint8_t prn_getHwState(struct Tprn_hw_state *prn_hw_state) const
|
||||
{
|
||||
Q_UNUSED(prn_hw_state);
|
||||
return 0;
|
||||
}
|
||||
// retval: status byte
|
||||
// byte 0 = 0: prnter OK, >0: error
|
||||
// bit0: paper low 1: no paper 2: temperature error
|
||||
// 3: head open 4: paper jam in cutter
|
||||
// 6: no response 7: bad response from printer
|
||||
// and return struct "Tprn_hw_state"
|
||||
// return value: =prn_hw_state[0]
|
||||
// 0:unknown 1: printer OK 100: printer OK but paper near end
|
||||
// 200: not connected 201: printer on error 202: no paper
|
||||
|
||||
|
||||
|
||||
|
||||
virtual bool prn_isUpAndReady(void) const {
|
||||
return false;
|
||||
@@ -2380,6 +2435,40 @@ public:
|
||||
|
||||
virtual QObject const *getAPI() { return nullptr; }
|
||||
|
||||
virtual void mod_switchResetline() { }
|
||||
|
||||
|
||||
// direct ticket printing
|
||||
// new from 22.5.2024, print Json-Printer-Template which
|
||||
// is stored locally here in PTU memory,
|
||||
// rather then loading several jsons to DC and tell it to print (until now)
|
||||
// the local printer-json can have any length using predefined commands
|
||||
// printing a local printer-json happens like this:
|
||||
// 1) select a file to be printed from memory
|
||||
// 2) load, parse, translate and save the file with following function
|
||||
// 3) set dynamics (values from current transaction)
|
||||
// 4) send saved file to printer one or several times
|
||||
// hint: dynamics can be changed at any time without reloading the ticket, just repeat 3) and 4)
|
||||
|
||||
virtual void prn_translateLocalPrinterJson(QByteArray jsonFile2print) const
|
||||
{ Q_UNUSED(jsonFile2print) }
|
||||
// load, parse, translate and save the file
|
||||
|
||||
virtual void prnStoreDynamics(char *bufferDynPrintVars[], uint8_t nrOfDyns) const
|
||||
{ Q_UNUSED(bufferDynPrintVars); Q_UNUSED(nrOfDyns) }
|
||||
// store nrOfDyns (up to 16) dynamics before printing
|
||||
// max length = 16 byte per dynamic
|
||||
// 16 strings with up to 16bytes each
|
||||
|
||||
virtual void prn_printTranslatedTicket(void) const { }
|
||||
|
||||
virtual uint8_t prn_waitForDirectTicket(void) const { return 0; }
|
||||
// return: 0: just printing, wait
|
||||
// 1: OK - last print was succesful
|
||||
// 2: error - not printed
|
||||
// 2: printer error 3: no connection to DC
|
||||
|
||||
|
||||
|
||||
signals:
|
||||
/*
|
||||
@@ -2422,31 +2511,7 @@ signals:
|
||||
|
||||
virtual void hwapi_coinAttached() const = 0;
|
||||
|
||||
// NOTE: declaring a "pure virtual" "signal" should be an error and thus not valid.
|
||||
/* GH Version, bringt Fehler
|
||||
void hwapi_templatePrintFinished_OK() const;
|
||||
void hwapi_templatePrintFinished_Err() const;
|
||||
|
||||
void hwapi_coinCollectionJustStarted() const;
|
||||
void hwapi_coinCollectionAborted() const;
|
||||
|
||||
void hwapi_gotNewCoin() const;
|
||||
void hwapi_payStopByMax() const;
|
||||
void hwapi_payStopByPushbutton() const;
|
||||
|
||||
void hwapi_payStopByEscrow() const;
|
||||
void hwapi_payStopByError() const;
|
||||
void hwapi_payStopByTimeout() const;
|
||||
void hwapi_payCancelled() const;
|
||||
void hwapi_coinProcessJustStopped() const;
|
||||
|
||||
void hwapi_doorServiceDoorOpened() const;
|
||||
void hwapi_doorVaultDoorOpened() const;
|
||||
void hwapi_doorCoinBoxRemoved() const;
|
||||
void hwapi_doorCoinBoxInserted() const;
|
||||
void hwapi_doorCBinAndAllDoorsClosed() const;
|
||||
void hwapi_doorAllDoorsClosed() const;
|
||||
*/
|
||||
};
|
||||
|
||||
|
||||
@@ -2511,11 +2576,21 @@ signals:
|
||||
// hier von =0 auf {} durch Gerhard
|
||||
//#define HWINF_iid "Atb.Psa1256ptu5.software.HWapi/5.2"
|
||||
// 7.11.2023: bna functions activated
|
||||
#define HWINF_iid "Atb.Psa1256ptu5.software.HWapi/5.3"
|
||||
//#define HWINF_iid "Atb.Psa1256ptu5.software.HWapi/5.3"
|
||||
// 14.3.24:new function bool hwapi::cash_isCollectionStarted(void) const
|
||||
// padding three struct to 64 byte to avoid stack overflow when using
|
||||
// signal coin attached is much faster now
|
||||
|
||||
//#define HWINF_iid "Atb.Psa1256ptu5.software.HWapi/5.4"
|
||||
// 7.may.2024, matches to DC V6, some structs extended
|
||||
// new function: modem reset, dyn. data come with two commands now
|
||||
// released 17.may.2024
|
||||
|
||||
#define HWINF_iid "Atb.Psa1256ptu5.software.HWapi/5.5"
|
||||
// started at 21.5.24, integration of ticket interpreter
|
||||
// see change log in hwapi.h
|
||||
|
||||
|
||||
Q_DECLARE_INTERFACE(hwinf, HWINF_iid)
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user