Merge commit '6099d07650acb28df1a5c9659479351daa7c2d27'
This commit is contained in:
		@@ -324,6 +324,7 @@ public:
 | 
			
		||||
        // Sende Schreibbefehle die bereits vorher asynchron gespeichert wurden
 | 
			
		||||
    void send_requests(uint16_t nextWrCmd);
 | 
			
		||||
    void sendHighLevel(uint16_t nxtHLCmd);
 | 
			
		||||
    bool areDataValid(void);
 | 
			
		||||
 | 
			
		||||
signals:
 | 
			
		||||
    void ResponseRecieved();
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										35
									
								
								DCPlugin/include/hwChk.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										35
									
								
								DCPlugin/include/hwChk.h
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,35 @@
 | 
			
		||||
 | 
			
		||||
#ifndef hwchk_H
 | 
			
		||||
#define hwchk_H
 | 
			
		||||
 | 
			
		||||
#include <stdint.h>
 | 
			
		||||
#include <QTabWidget>
 | 
			
		||||
#include <QObject>
 | 
			
		||||
#include "interfaces.h"
 | 
			
		||||
//#include "datIf.h"
 | 
			
		||||
#include <QDebug>
 | 
			
		||||
#include <QSharedMemory>
 | 
			
		||||
#include "hwapi.h"
 | 
			
		||||
 | 
			
		||||
//class QSharedMemory;
 | 
			
		||||
class hwChk :   public QObject,
 | 
			
		||||
                public hwinf
 | 
			
		||||
{
 | 
			
		||||
    Q_OBJECT
 | 
			
		||||
//    Q_PLUGIN_METADATA(IID "Atb.Psa2020.software.HWapi/1.0" )   //FILE "HWapi.json")
 | 
			
		||||
//    Q_INTERFACES(hwinf)
 | 
			
		||||
//private:
 | 
			
		||||
//    QSharedMemory *m_sharedMem;
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
    explicit hwChk(QWidget *parent = nullptr);
 | 
			
		||||
    virtual ~hwChk();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
    hwinf *HWaccess;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,94 +1,8 @@
 | 
			
		||||
/*
 | 
			
		||||
matching interfaces.h:
 | 
			
		||||
 | 
			
		||||
// History
 | 
			
		||||
// 11.10.2021: V1.0  222 functions
 | 
			
		||||
// 23.12.2021: V1.1  added block-parameter to function "read mifare data"
 | 
			
		||||
// 30.12.2021: V1.2  added function: mif_clearDataBuffer(), mif_isBlockAvailable(uint8_t blkNr) and mif_getAvailableDataBlocks()
 | 
			
		||||
// 1.1.2022: V1.3    Mifare extended. ( background: read 16 x 48byte from card to DC, read 12 x 64byte from DC to CA)
 | 
			
		||||
//                   new:  read full card with 768bytes from HWapi without block borders
 | 
			
		||||
//                   added: mif_getNrOfAvailableDataBytes     mif_getCardData768byteDec(uint8_t *buf, uint16_t bufferSize)
 | 
			
		||||
//                           mif_getCardDataDec(uint16_t fromAddr, uint16_t toAddr, uint8_t *buf, uint16_t bufferSize)
 | 
			
		||||
//                            mif_getCardDataStr(bool useHexFormat, char seperator)
 | 
			
		||||
// 29.03.2023: V3.1 some extensions for PSA1256_ptu5,
 | 
			
		||||
//             V3.2 Bootloader improvement
 | 
			
		||||
// 12.04.2023: V3.3 new features extended: loading and using Json-files, cash-collection, cash-data-logging
 | 
			
		||||
 | 
			
		||||
//#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.3"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
PSA1259 hardware control using the DeviceController DC2
 | 
			
		||||
 | 
			
		||||
covering enclosure (switches and doors) and money devices,
 | 
			
		||||
controls mifare card to access or program
 | 
			
		||||
optional it can control printer, modem, bar code reader and credit card
 | 
			
		||||
 | 
			
		||||
 * API to the PSA1259 Hardware
 | 
			
		||||
 * All data come in from device controller via serial interface and will be stored
 | 
			
		||||
 * in "PI" = peripheral image
 | 
			
		||||
 * PI is updated every 100ms (up to 30ms possible)
 | 
			
		||||
 * This api uses stored pi data and returns them in the following functions
 | 
			
		||||
 * created: Q1/2020 TS
 | 
			
		||||
 *
 | 
			
		||||
 | 
			
		||||
The devices, connected to device controller2 (DC2) can be controlled in different access levels.
 | 
			
		||||
Level 1:
 | 
			
		||||
    direct connection to DC2, check versions, state and parameters
 | 
			
		||||
    control serial interfaces
 | 
			
		||||
    digital/analog IO's
 | 
			
		||||
    read and write to connected devices on lowest level, this is a kind of fall-back-level
 | 
			
		||||
    in case higher levels fail or do not support the needed (new) function
 | 
			
		||||
    Example: send a specific printer command, several bytes that need to be conform to
 | 
			
		||||
            printer manual. This command is routed to the printer through the DC2 without
 | 
			
		||||
            any action of the DC. You can write your own device driver that way.
 | 
			
		||||
    Level 1 is flexible but complicated
 | 
			
		||||
 | 
			
		||||
Level 2:
 | 
			
		||||
   The DC controls the connected devices containing a device driver. The DC offers
 | 
			
		||||
   usage of the device by simple commands,
 | 
			
		||||
   Example: "Printer on", "set Font size 3" "print "hello world"", "cut"
 | 
			
		||||
   In opposite to level 1 where you had to send a set of numbers and letters.
 | 
			
		||||
   In other words: you "talk" to the device controller, not to the device itself.
 | 
			
		||||
 | 
			
		||||
Level 3:
 | 
			
		||||
    start/stop complete processes.
 | 
			
		||||
    Example: 1) print (predefined) document nr 3 with Text, letter size, font set, cut.
 | 
			
		||||
                Also power up/down the printer, check if paper ok and so on.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
Another access example: control the coin unit
 | 
			
		||||
 | 
			
		||||
Level 1): read digital inputs to detect coin,
 | 
			
		||||
          switch digital output which opens coin slot
 | 
			
		||||
          communicate with coin checker by certain mdb-commands (manual conform)
 | 
			
		||||
          poll coin checker for inserted coins
 | 
			
		||||
          close coin slot after 3seconds by setting DO to 0....
 | 
			
		||||
 | 
			
		||||
Level 2): get message of attached coin from DC
 | 
			
		||||
          send command "initialize coin checker" to DC
 | 
			
		||||
          send command "open slot for 3s"
 | 
			
		||||
          poll DC for inserted coins, DC polls coin checker in right way, no need
 | 
			
		||||
                to know the data sheet of the coin checker or mdb-bus
 | 
			
		||||
          command to DC "open coin escrow's return flap for 1s"
 | 
			
		||||
 | 
			
		||||
Level 3): send command: "start payment process"
 | 
			
		||||
          all coin devices are started up
 | 
			
		||||
          coin blocker opens for 3s if a coin is attached
 | 
			
		||||
          coin checker summarizes inserted value and reports sum
 | 
			
		||||
          later send command "stop payment process" (puts coins to vault) or
 | 
			
		||||
          send command "cancel payment process" (returns coins to user)
 | 
			
		||||
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef hwapi_H
 | 
			
		||||
#define hwapi_H
 | 
			
		||||
 | 
			
		||||
#include <stdint.h>
 | 
			
		||||
#include <QTabWidget>
 | 
			
		||||
#include <QtPlugin>
 | 
			
		||||
#include <QObject>
 | 
			
		||||
#include "interfaces.h"
 | 
			
		||||
#include "datIf.h"
 | 
			
		||||
@@ -98,7 +12,6 @@ class hwapi :   public QObject,
 | 
			
		||||
                public hwinf
 | 
			
		||||
{
 | 
			
		||||
    Q_OBJECT
 | 
			
		||||
    Q_PLUGIN_METADATA(IID "Atb.Psa2020.software.HWapi/1.0" )   //FILE "HWapi.json")
 | 
			
		||||
    Q_INTERFACES(hwinf)
 | 
			
		||||
private:
 | 
			
		||||
    void sub_storeSendingText(QByteArray *buf) const;
 | 
			
		||||
@@ -118,13 +31,13 @@ private:
 | 
			
		||||
 | 
			
		||||
    QSharedMemory *m_sharedMem;
 | 
			
		||||
public:
 | 
			
		||||
    explicit hwapi(QWidget *parent = nullptr);
 | 
			
		||||
    explicit hwapi(QObject *parent = nullptr);
 | 
			
		||||
    virtual ~hwapi();
 | 
			
		||||
 | 
			
		||||
    T_datif *myDatif;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    virtual QStringList dc_getStatus() const;
 | 
			
		||||
    virtual QStringList dc_getStatus() const override;
 | 
			
		||||
 | 
			
		||||
    // ------------------------------------------------------------------------------
 | 
			
		||||
    // Level 0 commands, interface
 | 
			
		||||
@@ -1083,6 +996,16 @@ public:
 | 
			
		||||
    uint64_t sys_getWakeSource(void) const override;
 | 
			
		||||
        // retval: 6 bytes, bit coded, 1=event keeps DC awake
 | 
			
		||||
 | 
			
		||||
    uint8_t sys_getWakeReason(void) const override;
 | 
			
		||||
         // Master was woken by following reason:
 | 
			
		||||
         // 1: MDB Event
 | 
			
		||||
         // 2: Coin Event
 | 
			
		||||
         // ( 3: Master Event) - will not set the wake line
 | 
			
		||||
         // ( 4: 32s pulse) - will not set the wake line
 | 
			
		||||
         // 5: Door Event
 | 
			
		||||
         // ( 6: Diag Event) - will not set the wake line
 | 
			
		||||
         // 7: 30min-Pulse for HB
 | 
			
		||||
 | 
			
		||||
    void sys_getDeviceConditions(uint8_t *leng, uint8_t *data) const override;
 | 
			
		||||
 | 
			
		||||
    void sys_getDeviceConditions(struct T_moduleCondition *devCond) const override;
 | 
			
		||||
@@ -1105,6 +1028,50 @@ public:
 | 
			
		||||
        //          bit6: no response             bit7: serial rec. error
 | 
			
		||||
        //			bit5: printer not ready
 | 
			
		||||
 | 
			
		||||
    void sys_sendDeviceParameter(struct T_devices *deviceSettings) const override;
 | 
			
		||||
 | 
			
		||||
    void sys_restoreDeviceParameter(struct T_devices *deviceSettings) const override;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /* ---------------------------------------------------------------------------------------------
 | 
			
		||||
    // ------------   supervise  all hardware components
 | 
			
		||||
    // ------------    assess the machine state
 | 
			
		||||
 | 
			
		||||
    1. check if DC startup test is through, retrigger if not
 | 
			
		||||
    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)
 | 
			
		||||
 | 
			
		||||
     --------------------------------------------------------------------------------------------- */
 | 
			
		||||
 | 
			
		||||
    uint8_t sys_componentAssessment(void) const override;
 | 
			
		||||
    // this function decides if vending mode is possible, independant from door
 | 
			
		||||
    // return >0 in case of error
 | 
			
		||||
    // is inncluded in sys_superviseSystem
 | 
			
		||||
 | 
			
		||||
    uint8_t sys_superviseSystem(void) const override;
 | 
			
		||||
    // this function proofs if vending is possible depending of doors state
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    uint8_t sys_getSystemErrors(void) const override;
 | 
			
		||||
 | 
			
		||||
    // ---------------------------------------------------------------------------------------------
 | 
			
		||||
    // ---------------------------------------------------------------------------------------------
 | 
			
		||||
    // ---------------------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
signals:
 | 
			
		||||
    void hwapi_templatePrintFinished_OK(void) const override;
 | 
			
		||||
 
 | 
			
		||||
@@ -182,29 +182,25 @@ struct T_moduleCondition {
 | 
			
		||||
    uint8_t   ResetReason;
 | 
			
		||||
    uint8_t	allModulesChecked;
 | 
			
		||||
 | 
			
		||||
    uint8_t   alarmState;
 | 
			
		||||
    uint8_t   res11;
 | 
			
		||||
    uint8_t   res12;
 | 
			
		||||
    uint8_t   res13;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct T_dynamicCondition {
 | 
			
		||||
    char allDoorsDebounced;
 | 
			
		||||
    char allDoorsDebounced;     // 99: undefined, 0=all closed, bit1=upper door open  2=midlle door open 3=lower door open
 | 
			
		||||
    char openedAuthorized;
 | 
			
		||||
    uint8_t CBinDebounced;
 | 
			
		||||
    char upperDoor;		// 0:fehlt  1:drin
 | 
			
		||||
    char middleDoor;
 | 
			
		||||
    char lowerDoor;
 | 
			
		||||
    char coinBox;
 | 
			
		||||
    char upperDoor;		// 99: undefined  0:closed  1:open
 | 
			
		||||
    char middleDoor;    // 99: undefined  0:closed  1:open
 | 
			
		||||
    char lowerDoor;     // 99: undefined  0:closed  1:open
 | 
			
		||||
    char reserve;       // not used, always 0
 | 
			
		||||
    char billBox;
 | 
			
		||||
    char modeAbrech;
 | 
			
		||||
    char onAlarm;
 | 
			
		||||
    char onAlarm;       // 0:alarm aus  1:alarm  2:alarm mit Sirene   3: Sirenentest
 | 
			
		||||
    char nowCardTest;
 | 
			
		||||
    char nowPayment;
 | 
			
		||||
    char lastMifCardType;
 | 
			
		||||
    uint8_t lastSDoorState;
 | 
			
		||||
    uint8_t lastVDoorState;
 | 
			
		||||
    uint8_t lastCBstate;
 | 
			
		||||
    uint8_t lastCBstate;        // 99: undefined  0:not there   1:insered
 | 
			
		||||
    char        paymentInProgress;
 | 
			
		||||
    char        res1;
 | 
			
		||||
    uint16_t    U_Batt;
 | 
			
		||||
@@ -232,7 +228,8 @@ struct T_dynamicCondition {
 | 
			
		||||
                //          bit4: paper jam in cutter
 | 
			
		||||
                //          bit6: no response             bit7: serial rec. error
 | 
			
		||||
                //			bit5: printer not ready
 | 
			
		||||
//54
 | 
			
		||||
    uint8_t     startupTestIsRunning;
 | 
			
		||||
    //54
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct T_extTime {
 | 
			
		||||
@@ -263,6 +260,39 @@ struct T_extTime {
 | 
			
		||||
    uint32_t    MinutesOfMillenium;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
typedef uint8_t UCHAR;
 | 
			
		||||
typedef uint16_t UINT;
 | 
			
		||||
 | 
			
		||||
struct T_devices
 | 
			
		||||
{
 | 
			
		||||
    // set by master, used(1) or notused (0) or type 2....20
 | 
			
		||||
 | 
			
		||||
    UCHAR   kindOfPrinter;			// 0:off   1:Gebe
 | 
			
		||||
    UCHAR	kindOfCoinChecker;		// 0: without  1=EMP820   2=EMP900    3=currenza c²	(MW)
 | 
			
		||||
    UCHAR	kindOfMifareReader;		// by now only stronglink SL025 =1
 | 
			
		||||
    UCHAR   suppressSleepMode;		// 0:sleep allowed   1: no sleep
 | 
			
		||||
 | 
			
		||||
    UCHAR	kindOfModem;			// 0:off    1:Sunlink
 | 
			
		||||
    UCHAR	kindOfCreditcard;		// 0:off    1:Feig NFC
 | 
			
		||||
    UCHAR	CoinEscrow;
 | 
			
		||||
    UCHAR   CoinRejectUnit;
 | 
			
		||||
 | 
			
		||||
    UCHAR	CoinShutter;
 | 
			
		||||
    UCHAR	BillAcceptor;
 | 
			
		||||
    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;
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class hwinf {
 | 
			
		||||
public:
 | 
			
		||||
    enum class DownloadResult {OK, ERROR, TIMEOUT, NOP};
 | 
			
		||||
@@ -1451,6 +1481,16 @@ public:
 | 
			
		||||
    virtual uint64_t sys_getWakeSource(void) const =0;
 | 
			
		||||
        // retval: 6 bytes, bit coded, 1=event keeps DC awake
 | 
			
		||||
 | 
			
		||||
    virtual uint8_t sys_getWakeReason(void) const=0;
 | 
			
		||||
         // Master was woken by following reason:
 | 
			
		||||
         // 1: MDB Event
 | 
			
		||||
         // 2: Coin Event
 | 
			
		||||
         // ( 3: Master Event) - will not set the wake line
 | 
			
		||||
         // ( 4: 32s pulse) - will not set the wake line
 | 
			
		||||
         // 5: Door Event
 | 
			
		||||
         // ( 6: Diag Event) - will not set the wake line
 | 
			
		||||
         // 7: 30min-Pulse for HB
 | 
			
		||||
 | 
			
		||||
    virtual void sys_getDeviceConditions(uint8_t *leng, uint8_t *data) const=0;
 | 
			
		||||
    /*
 | 
			
		||||
 | 
			
		||||
@@ -1572,6 +1612,60 @@ public:
 | 
			
		||||
        //          bit6: no response             bit7: serial rec. error
 | 
			
		||||
        //			bit5: printer not ready
 | 
			
		||||
 | 
			
		||||
    virtual void sys_sendDeviceParameter(struct T_devices *deviceSettings) const=0;
 | 
			
		||||
 | 
			
		||||
    virtual void sys_restoreDeviceParameter(struct T_devices *deviceSettings) const=0;
 | 
			
		||||
 | 
			
		||||
    /* ---------------------------------------------------------------------------------------------
 | 
			
		||||
    // ------------   supervise  all hardware components
 | 
			
		||||
    // ------------    assess the machine state
 | 
			
		||||
 | 
			
		||||
    1. check if DC startup test is through, retrigger if not
 | 
			
		||||
    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 uint8_t sys_componentAssessment(void) 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;
 | 
			
		||||
    // this function proofs if vending is possible depending of doors state
 | 
			
		||||
 | 
			
		||||
    virtual uint8_t sys_getSystemErrors(void) const=0;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    // retrigger System-Check with:
 | 
			
		||||
    // bool hwapi::sys_runCompleteTest(void) const
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    // ---------------------------------------------------------------------------------------------
 | 
			
		||||
    // ---------------------------------------------------------------------------------------------
 | 
			
		||||
    // ---------------------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
signals:
 | 
			
		||||
    virtual void hwapi_templatePrintFinished_OK(void) const=0;
 | 
			
		||||
    virtual void hwapi_templatePrintFinished_Err(void) const=0;
 | 
			
		||||
 
 | 
			
		||||
@@ -237,6 +237,14 @@ uint8_t check4freeFDlongCmd(void);
 | 
			
		||||
    // returns number of free places in long-command stack
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
uint8_t epi_store64BdevParameter(uint8_t length, uint8_t *buf);
 | 
			
		||||
    // HWapi writes data to be stored
 | 
			
		||||
 | 
			
		||||
uint8_t epi_restore64BdevParameter(uint8_t *length, uint8_t *buf);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -225,6 +225,9 @@ struct SharedMemBuffer {
 | 
			
		||||
        uint8_t vaultrecord[360];
 | 
			
		||||
        uint32_t amount;
 | 
			
		||||
        uint16_t nrOfCoins;
 | 
			
		||||
        bool    dcDataValid;
 | 
			
		||||
        uint8_t wakeReason;
 | 
			
		||||
 | 
			
		||||
    } store;
 | 
			
		||||
 | 
			
		||||
    struct T_globTime {
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@
 | 
			
		||||
#define STOREINDATA_H
 | 
			
		||||
 | 
			
		||||
#include <stdint.h>
 | 
			
		||||
#include "tslib.h"
 | 
			
		||||
//#include "tslib.h"
 | 
			
		||||
#include <QString>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -384,6 +384,7 @@ bool epi_CurrentPaymentGetAllCoins(uint16_t *types, uint16_t *values);
 | 
			
		||||
 | 
			
		||||
void gpi_storeWakeSources(uint8_t const *receivedData);
 | 
			
		||||
uint64_t epi_getWakeSources(void);
 | 
			
		||||
uint8_t epi_getWakeReason(void);
 | 
			
		||||
 | 
			
		||||
void gpi_storeExtendedTime(uint8_t leng, uint8_t const *data);
 | 
			
		||||
void epi_restoreExtendedTime(uint8_t *leng, uint8_t *data);
 | 
			
		||||
@@ -415,6 +416,11 @@ uint8_t epi_mifGetCardType(uint8_t const *holder);
 | 
			
		||||
    //holder[8] = name of card holder
 | 
			
		||||
    // retval Type of MifareCard, 1=upper door, 2=lower door 3=test printer 4=test coins
 | 
			
		||||
 | 
			
		||||
void gpi_storeDcDataValid(bool isVal);
 | 
			
		||||
bool gpi_areDcDataValid();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user