#ifndef SENDWRCMDS_DEFS_H #define SENDWRCMDS_DEFS_H #include "tslib.h" #include // asynch. Commands // store OUTPUT commands until time to send // problem: OUT commands are set if a button is pressed or a transaction event happens // so it's never synchron with sending grid // but sending must apply the 100ms time grid as we have to wait for the response before sending the next command!!! // aug2023: used with setSendCommand0 //#define SENDDIRCMD_TestSerial 1 //#define SENDDIRCMD_MakeReset 2 //#define SENDDIRCMD_setTime 3 //#define SENDDIRCMD_setWakeFrequ 4 //#define SENDDIRCMD_MOVEUP_LOCK 5 //#define SENDDIRCMD_MOVEDN_LOCK 6 //#define SENDDIRCMD_OPENUP_DOOR 7 //#define SENDDIRCMD_OPENDN_DOOR 8 //#define SENDDIRCMD_LEDILLU 9 //#define SENDDIRCMD_LEDCOIN 10 //#define SENDDIRCMD_LEDTICKET 11 //#define SENDDIRCMD_LEDPAD 12 //#define SENDDIRCMD_LEDSTART 13 //#define SENDDIRCMD_LEDINSIDE 14 //#define SENDDIRCMD_LED_ALL 15 //#define SENDDIRCMD_FAN 16 //#define SENDDIRCMD_LAERM 17 //#define SENDDIRCMD_REL1 18 //#define SENDDIRCMD_WAKEPTU 20 //#define SENDDIRCMD_AUXPWR 21 //#define SENDDIRCMD_AUXDDR 22 //#define SENDDIRCMD_AUXOUT 23 //#define SENDDIRCMD_UCONTACT_ON 30 //#define SENDDIRCMD_PRN2_SWONOFF 31 //#define SENDDIRCMD_MIF_SWONOFF 32 //#define SENDDIRCMD_MIF_ATBCREATE 33 //#define SENDDIRCMD_MOD_SWONOFF 40 //#define SENDDIRCMD_MOD_WAKE 41 //#define SENDDIRCMD_MDB_POWER 42 //#define SENDDIRCMD_MDB_WAKE 43 //#define SENDDIRCMD_CRED_ON 44 //#define SENDDIRCMD_CRED_WAKE 45 //#define SENDDIRCMD_SHUT_MOV 50 //#define SENDDIRCMD_ESCRO_MOV 51 //#define SENDDIR_OPENVAULT 52 //#define SENDDIR_REJMOT_ON 53 //#define SENDDIR_REJMOT_RUN 54 // Level 2 (serial from DC to devices) //#define SEND_REQU_SERCONF 100 //#define SEND_REQU_HWversion 101 //#define SEND_REQU_SWversion 102 //#define SEND_REQU_CONDITION 103 //#define SEND_REQU_UID 104 //#define SEND_REQU_TIME 105 // includes wake frequency //#define SEND_REQU_ANALOGS 110 //#define SEND_REQU_DIG_INPUTS 111 //#define SEND_REQU_DIG_OUTPUTS 112 //#define SEND_REQU_PRN_STATE 120 //#define SEND_REQU_PRN_FONTS 121 //#define SEND_REQU_PRN_ALL 122 //#define SEND_REQU_MIFSTATE 123 // Type and state of reader //#define SEND_REQU_MIFDATA 124 // Type, UID, Header of card // read one card sector // sectors must be addressed by RD_ADD //#define SEND_REQU_MIF_ATB_TYPE 125 //#define SEND_REQU_MDB_GETSTAT 126 //#define SEND_REQU_MDB_GETWAK 127 //#define SEND_REQU_MDB_GETRESP 128 //#define SEND_REQU_EMP_GETALL 129 //#define SEND_REQU_EMP_GETCOIN 130 //#define SENDDIRCMD_DEVICE_PARA 131 //#define SENDDIRCMD_MACHINE_ID 132 //#define SEND_REQU_DEVICE_PARA 133 //#define SEND_REQU_MACINE_ID 134 // TODO: //#define SENDDIRCMD_PRN_SETUP 72 //#define SENDDIRCMD_MDB_SNDMSG 92 //#define SENDDIRCMD_EMP_SETT 93 //#define SENDDIRCMD_PRN_BC 80 // further: mdb state, coinchecker state, bill state, modem state, credit_state.... /* #define SENDDIRCMD_SHUTOPENBYTIME 60 #define SENDDIRCMD_SHUTOPENBYCOIN 61 //#define SENDDIRCMD_SHUT_SENDTIME 62 #define SENDDIRCMD_ESCRO_TAKE 63 #define SENDDIRCMD_ESCRO_GIVE 64 #define SENDDIRCMD_PRN_SYS_CMD 70 #define SENDDIRCMD_PRN_ESC_CMD 71 #define SENDDIRCMD_PRN_MOVE 73 #define SENDDIRCMD_PRN_SETFONT 74 #define SENDDIRCMD_PRN_SETLETT 75 #define SENDDIRCMD_PRN_CUT 76 //#define SENDDIRCMD_PRN_TXT // not needed #define SENDDIRCMD_PRN_LF 78 #define SENDDIRCMD_PRN_FONTTAB 79 #define SENDDIRCMD_PRN_QR 81 #define SENDDIRCMD_PRN_STOREDQR 82 #define SENDDIRCMD_PRN_LOGO_FL 83 //#define SENDDIRCMD_PRN_LOGO_GRAF 84 //#define SENDDIRCMD_PRN_LOGODAT 85 //#define SENDDIRCMD_PRN_STORBC 86 #define SENDDIRCMD_PRN_STORQR 87 #define SENDDIRCMD_PRN_DOC 88 #define SENDDIRCMD_PRN_CLEARDOC 89 //#define SENDDIRCMD_MDB_POWER 42 //#define SENDDIRCMD_MDB_WAKE 43 #define SENDDIRCMD_MDB_RES 90 #define SENDDIRCMD_MDB_SENDCMD 91 #define SENDDIRCMD_EMP_POLL 94 #define SENDDIRCMD_EMP_STARPPAY 95 #define SENDDIRCMD_EMP_STOPPAY 96 */ // obsolete: /* #define SENDDIRCMD_PRN1_SENDTEXT 54 #define SENDDIRCMD_PRN1_SENDCMD 55 #define SENDDIRCMD_PRN1_SERPAR 56 #define SENDDIRCMD_PRN_LEVEL2_4B 58 #define SENDDIRCMD_PRN_LEVEL2_64 59 */ // highest priority //#define CMDSTACKDEPTH 16 // means: up to 16 cmd can be stored. They are issued one by one every 100ms //void sendWRcmd_clrCmdStack(void); //bool sendWRcmd_setSendCommand0(uint16_t nextCmd); // GUI or app sends a command to DC transfered by serial //uint16_t sendWRcmd_getSendCommand0(void); // lower priority //#define CMD4STACKDEPTH 8 //void sendWRcmd_clrCmd4Stack(void); //bool sendWRcmd_setSendCommand4(uint16_t nextCmd, uint8_t dat1, uint8_t dat2, uint8_t dat3, uint8_t dat4); //uint16_t sendWRcmd_getSendCommand4(uint8_t *dat1, uint8_t *dat2, uint8_t *dat3, uint8_t *dat4); //#define CMD8STACKDEPTH 4 //void sendWRcmd_clrCmd8Stack(void); //bool sendWRcmd_setSendCommand8(uint16_t nextCmd, uint8_t dat1, uint8_t dat2, uint16_t dat3, uint32_t dat4); //uint16_t sendWRcmd_getSendCommand8(uint8_t *dat1, uint8_t *dat2, uint16_t *dat3, uint32_t *dat4); // lowest priority // wait for resonse before send next! bool sendWRcmd_setSendBlock160(uint8_t leng, uint8_t *buf); uint8_t sendWRcmd_getSendBlock160(uint8_t *leng, uint8_t *buf); // retval = *leng void sendWRcmd_INI(void); //uint8_t epi_store64ByteSendData(uint8_t length, uint8_t *buf); // HWapi writes data to be forwarded to DC and further to mdb-device // not batched! don't use twice within 100ms //uint8_t gpi_restore64ByteSendData(uint8_t *length, uint8_t *buf); // datif reads data to forward to dc // ONE printer doc consists of 20 x 64 byte //#define MAXNROF_PRNBYTES 64 //#define MAXNROF_PRNBLOCKS 20 /* void epi_resetPrinterStack(void); uint8_t epi_storePrnText(char *buf, uint8_t leng); // store text and binary data from Gui in next higher free memory 0....9 uint8_t gpi_restorePrnText(uint8_t *retbuf); // read printer text and send to slave, size of retbuf== 64 uint8_t gpi_chk4remainingText(void); // retval: 0: no more textline left (to send) >0: nr of lines */ //void epi_storeUserOfSendingTextBuffer(uint8_t user, uint8_t para1, uint8_t para2, uint8_t para3, uint8_t para4 ); // user=1: Text-Print is using this buffer // 2: QR-code-Printer is using this buffer //uint8_t gpi_getUserOfSendingTextBuffer(uint8_t *para1, uint8_t *para2, uint8_t *para3, uint8_t *para4); // user=1: Text-Print is using this buffer // 2: QR-code-Printer is using this buffer // #define FDCMD_STACKDEPTH 16 / 32 // short and long commands are queued into the same stack to guaranty right order void sendFDcmd_clrStack(void); bool sendFDcmd_set(uint8_t nextWrCmd, uint8_t nextRdCmd, uint8_t blockNum, uint8_t dat1, uint8_t dat2, uint8_t dat3, uint8_t dat4); // write Command to memory, wait for transport bool sendFDcmd_get(uint8_t *nextWrCmd, uint8_t *nextRdCmd, uint8_t *blockNum, uint8_t *dat1, uint8_t *dat2, uint8_t *dat3, uint8_t *dat4); uint8_t check4usedFDstack(void); // returns number of waiting command, maxFDCMD_STACKDEPTH uint8_t checkNextFDcmd(void); // return 0: no command waiting // 1: short cmd // 2: long cmd uint8_t check4freeFDstack(void); // returns number of free places in FD-command stack bool longFDcmd_set(uint8_t nextWrCmd, uint8_t nextRdCmd, uint8_t blockNum, uint8_t length, uint8_t *data); bool longFDcmd_set(uint8_t nextWrCmd, uint8_t nextRdCmd, uint8_t blockNum, uint8_t length, QByteArray *data); // write Command to memory, wait for transport // data buffer size always 64! data[64], padded with 0 bool longFDcmd_get(uint8_t *nextWrCmd, uint8_t *nextRdCmd, uint8_t *blockNum, uint8_t *length, uint8_t *data); #endif