Add collected changes from T.Sax

This commit is contained in:
2024-07-04 14:01:43 +02:00
parent ab5a343ab2
commit b0e55d8ea4
16 changed files with 2623 additions and 338 deletions

View File

@@ -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)