// Data Interface between slave (DC) and pi buffer // determines sending and receiving order of data // cares for storing input data and restoring output data #ifndef DIF_H #define DIF_H #include #include "tslib.h" #include "prot.h" #include "dcBL.h" #include #include #include #include #include #include #include // WRITE Commands (e.g. switch relay) #define CMD2DC_sendTime 0x1310 #define CMD2DC_setWakeFrequ 0x1320 #define CMD2DC_MOV_UPLOCK 0x1801 #define CMD2DC_MOV_DNLOCK 0x1802 #define CMD2DC_UPPER_DOOR 0x1810 #define CMD2DC_LOWER_DOOR 0x1811 #define CMD2DC_VAULT_DOOR 0x1812 // neu 7.10.21: #define CMD2DC_REJMOT_ON 0x1813 #define CMD2DC_REJMOT_RUN 0x1814 #define CMD2DC_LED_COIN 0x1204 #define CMD2DC_LED_ILLU 0x1205 #define CMD2DC_LED_TICKET 0x1206 #define CMD2DC_LED_START 0x1208 #define CMD2DC_LED_PIN 0x1207 #define CMD2DC_LED_IN 0x1209 #define CMD2DC_FAN 0x1210 #define CMD2DC_SIREN 0x1211 #define CMD2DC_BARRIER 0x1212 #define CMD2DC_WAKEPTU 0x1218 #define CMD2DC_SWITCHAUXPWR 0x1220 #define CMD2DC_SWITCHAUXDDR 0x1222 #define CMD2DC_SWITCHAUXOUT 0x1224 #define CMD2DC_UCONTACTON 0x1226 #define CMD2DC_DEVICE_PARAM 0x2000 #define CMD2DC_SEND_MACH_ID 0x2002 #define CMD2DC_RDBK_DEV_PARA 0x2001 #define CMD2DC_RDBK_MACH_ID 0x2003 // --------------------------- MDB -------------- #define CMD2DC_MDB_ON 0x2800 #define CMD2DC_MDB_GET_STATE 0x2801 // REQ #define CMD2DC_MDB_DORESET 0x2802 #define CMD2DC_MDB_SETWAK 0x2811 //#define CMD2DC_MDB_GETWAK 0x2812 // REQ not nec. #define CMD2DC_MDB_SENDCMD 0x2820 #define CMD2DC_MDB_SENDMSG 0x2821 #define CMD2DC_MDB_GETRESP 0x2822 // REQ // --------------------------- EMP -------------- #define CMD2DC_EMP_SET 0x2830 #define CMD2DC_EMP_GET_ALL 0x2831 // REQ #define CMD2DC_EMP_STARTPOLL 0x2832 #define CMD2DC_EMP_STARTPAY 0x2834 #define CMD2DC_EMP_STOPPAY 0x2836 #define CMD2DC_EMP_GOTCOIN 0x2837 // REQ #define CMD2DC_SHUTTER_OPEN 0x2911 #define CMD2DC_ESCR_OPEN 0x2920 #define CMD2DC_ESCR_TAKE 0x2921 #define CMD2DC_ESCR_RETURN 0x2922 #define CMD2DC_MOD_ON 0x2940 #define CMD2DC_MOD_WAK 0x2941 #define CMD2DC_CRED_ON 0x2960 #define CMD2DC_CRED_WAK 0x2961 // READ Commands ((e.g. get input) #define CMD2DC_TestSerial 0x1101 #define CMD2DC_GetSerialConfig 0x1107 #define CMD2DC_RdBkHWversion 0x110A #define CMD2DC_RdBkSWversion 0x110B #define CMD2DC_RdBkDCstate 0x110C #define CMD2DC_RdBkUID 0x1305 #define CMD2DC_RdBkTime 0x1313 #define CMD2DC_RdBkAnalog 0x1550 #define CMD2DC_GetAllInputs 0x1201 #define CMD2DC_RdBkAllOutputs 0x1202 #define CMD2DC_MIFREADERON 0x2900 #define CMD2DC_ATB_CREATE 0x2907 // Mif read data: #define CMD2DC_RdBk_MifReader 0x2902 #define CMD2DC_RdBk_Mifcard 0x2903 #define CMD2DC_RdBk_AtbCardType 0x2905 //#define CMD2DC_RdBk_CardData 0x2906 // higher Level operation commands //#define CMD2DC_SHUTTER_ONE 0x2912 #define CMD2DC_SHUTTER_COIN 0x2913 #define CMD2DC_SHUTTER_OPEN3S 0x2912 #define CMD2DC_SEND_SHUT_TIME 0x2915 #define CMD2DC_ESCR_TAKE 0x2921 #define CMD2DC_ESCR_RETURN 0x2922 #define CMD2DC_PRINTERON 0x2A01 #define CMD2DC_RdBk_PrnState 0x2A02 #define CMD2DC_RdBk_PrnFonts 0x2A12 #define CMD2DC_RdBk_AllPrnData 0x2A40 // nr of params: #define CMD2DC_PRI_SYS_CMD 0x2A03 // 3 #define CMD2DC_PRI_ESC_CMD 0x2A04 // 4 #define CMD2DC_PRI_SETUP 0x2A05 // 5 #define CMD2DC_PRI_MOVE 0x2A06 // 2 #define CMD2DC_PRI_SETFONT 0x2A10 // 4 #define CMD2DC_PRI_SETLETTER 0x2A11 // 3 #define CMD2DC_PRI_CUT 0x2A13 // 1 #define CMD2DC_PRI_PRINT_TXT 0x2A14 // 64 #define CMD2DC_PRI_LF 0x2A15 // 1 #define CMD2DC_PRI_PRIFONTTABLE 0x2A16 #define CMD2DC_PRI_BARCODE 0x2A17 // ca 15...25 #define CMD2DC_STOR_QR_DATA 0x2A18 // 150 #define CMD2DC_PRI_QR_CODE 0x2A19 // 0 #define CMD2DC_PRI_LOGOFROMFLASH 0x2A1A // 2 #define CMD2DC_PRI_STORE_DOC 0x2A41 // 1 #define CMD2DC_PRI_DOCUMENT_NR 0x2A42 // 1 + 64 #define CMD2DC_PRI_CLEAR_DOC 0x2A43 // 1 #define FIX_SLAVE_ADDR 0 #define SEND_ATONCE 1 #define SENDCOMBINED 0 class T_datif : public QMainWindow { Q_OBJECT char sendINrequestsAutomatic(void); // sende alle Befehle um die Eingangsdaten abzufragen der Reihe nach char loadRecDataFromFrame(); void datif_startSending(void); void datif_sendIOrequest(uint16_t WRcmd, uint16_t RDcmd, uint8_t nrOfWrData); void datif_send8byteOutCmd(uint16_t WRcmd, uint16_t RDcmd); bool verifyLineTestresponse(uint8_t RdDlen, uint8_t *receivedData); void datif_OUT_setTime(void); uint8_t datif_OUT_SendRandomData(uint8_t *buf, uint8_t Length); void datif_send64byteOutCmd(uint16_t WRcmd, uint16_t addr, uint16_t RDcmd); void datif_sendToMemory(uint16_t WRcmd, uint16_t docNr, uint16_t blockNr, uint8_t *data64); // send printer documents to DC2 memory // docNr: 0...15(31) with 1280 byte each (20 blocks a 64byte) // blockNr=0...19 with 64byte each // docNr =transmitted in WRITEADDRESS high byte // blockNr=transmitted in WRITEADDRESS low byte T_prot *myDCIF; QTimer *datif_trigger; uint8_t selectedSlaveAddr; private slots: char datif_cycleSend(); void StoredRecData(); public: T_datif(QWidget *parent = nullptr); void resetChain(void); char isPortOpen(void); void sendWRcommand(uint16_t nxtAsCmd); // Sende Schreibbefehle die bereits vorher asynchron gespeichert wurden void send_requests(uint16_t nextWrCmd); void sendHighLevel(uint16_t nxtHLCmd); signals: void ResponseRecieved(); //the requested data are stored in peripheral image // can be loaded with epi }; #endif // CI_H