Use interfaces from DCPlugin
This commit is contained in:
		| @@ -93,14 +93,183 @@ struct Tprn_hw_state | ||||
| }; | ||||
|  | ||||
|  | ||||
| struct T_vaultRecord | ||||
| { | ||||
|  | ||||
|     // Kassenbeleg (Abrechnungsdatensatz = Kassenwechsel-Datensatz) | ||||
|         char startbuffer[4];		// Psa>  // never move or change this 1st entry | ||||
|         uint16_t AccountingNumber; | ||||
|         uint16_t CUNU; | ||||
|         uint16_t MANU; | ||||
|         uint16_t resint1; | ||||
|         //uint16_t resint2; | ||||
|  | ||||
|         char label1buffer[4];	 // tim> | ||||
|         uint8_t year; | ||||
|         uint8_t month; | ||||
|         uint8_t dom; | ||||
|         uint8_t hour; | ||||
|         uint8_t min; | ||||
|         uint8_t sec; | ||||
|         uint8_t DoW; | ||||
|         uint8_t reschar3; | ||||
|  | ||||
|         char label2buffer[4];	// abs> | ||||
|         uint32_t AbsIncome1; | ||||
|         uint32_t AbsReserve; | ||||
|         uint32_t AbsNrOfCuts; | ||||
|  | ||||
| //16 | ||||
|         char label3buffer[4];	// mw > | ||||
|  | ||||
|         // Verkauf, T<>r zu: | ||||
|         uint32_t VKcoinsInserted[16];		// nur f<>r Wechsler, soviel wurde eingeworfen | ||||
|         uint32_t VKcoinsReturned[6];		// nur f<>r Wechsler, Anzahl M<>nzen pro Typ, soviel wurde zur<75>ckgegeben | ||||
| //88 | ||||
|  | ||||
|         // Service, T<>r offen: | ||||
|         uint16_t ServCoinsInserted[16];		// nur f<>r Wechsler, soviel wurde eingeworfen | ||||
|         uint16_t ServCoinsReturned[6];		// nur f<>r Wechsler, Anzahl M<>nzen pro Typ, soviel wurde zur<75>ckgegeben | ||||
|         uint16_t resint3; | ||||
|         uint16_t resint4; | ||||
|         uint16_t currentTubeContent[6];		//  nur f<>r Wechsler, aktueller F<>llstand | ||||
|         uint16_t resint5; | ||||
|         uint16_t resint6; | ||||
| // 56 | ||||
|  | ||||
|         char label4buffer[4];	// box> | ||||
|         uint16_t coinsInVault[16]; | ||||
|         uint16_t billsInStacker[8]; | ||||
| // 48 | ||||
|  | ||||
|         char label5buffer[4];	// val> | ||||
|         // actually constant unless exchange rate is changed | ||||
|         uint16_t coinDenomination[16];	// 5..50000 (z.B. 2? sind in Ungarn 760Ft) | ||||
|         uint16_t billDenom[8]; | ||||
|         uint16_t tubeDenom[6]; | ||||
|         uint16_t exchangeRate; | ||||
|         uint16_t resint9; | ||||
|  | ||||
| // 64 | ||||
|  | ||||
|         char endofblock[4];	// end> | ||||
|  | ||||
| // 316 byte Block im Speicher | ||||
|  | ||||
| }; | ||||
|  | ||||
| struct T_moduleCondition | ||||
| { | ||||
|         // store conditon of all system components, hold in RAM | ||||
|         // 0 means unknown, not yet tested/used | ||||
|         // 1 means OK | ||||
|         // 50..99	= HINT / Notification | ||||
|         // 100..150	= WARNING | ||||
|         // 200..250	= ERROR | ||||
|  | ||||
|         uint8_t	structStart;		// always first!!! | ||||
|         uint8_t	ram;				// v | ||||
|         uint8_t	intEe;				// v | ||||
|         uint8_t	extEe;				// v | ||||
|  | ||||
|         uint8_t	rtc;				// 1: time/date OK   100: time not plausible  200: hardware error | ||||
|         uint8_t	boardHw;			// v | ||||
|         uint8_t	printer;			// v | ||||
|         uint8_t	modem;				// v | ||||
|  | ||||
|         uint8_t	signal;				//		1...99 | ||||
|         uint8_t	regist;				// 100:not  1:reg  2:ping OK   3:gotTime | ||||
|         uint8_t	mdbBus; | ||||
|         uint8_t	coinChecker;		// EMP, OMP or mei-cashflow | ||||
|  | ||||
|         uint8_t	coinEscrow;			// v | ||||
|         uint8_t	mifareReader;		// v | ||||
|         uint8_t	creditTerm;			// not available | ||||
|         uint8_t	coinReject;			// v | ||||
|  | ||||
|         uint8_t	coinSafe;			// v | ||||
|         uint8_t   billSafe;			// v | ||||
|         uint8_t	voltage;			// v	// 1:11..14V | ||||
|         uint8_t   temper;				// v | ||||
|  | ||||
|         uint8_t	poweronTest; | ||||
|         uint8_t   doorState;			// 1: alles zu  200: t?r 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   ResetReason; | ||||
|         uint8_t	allModulesChecked; | ||||
|  | ||||
|         uint8_t   alarmState; | ||||
|         uint8_t   res11; | ||||
|         uint8_t   res12; | ||||
|         uint8_t   res13; | ||||
|  | ||||
| }; | ||||
|  | ||||
| struct T_dynamicCondition | ||||
| { | ||||
|         // dynamic conditions, change rapidly and frequently | ||||
|         // these are values for the Heartbeat | ||||
|  | ||||
|         // T?rschalter entprellt: | ||||
|         char upperDoor;		// 0:fehlt  1:drin | ||||
|         char middleDoor; | ||||
|         char lowerDoor; | ||||
|         char coinBox; | ||||
|  | ||||
|         char billBox; | ||||
|         char modeAbrech; | ||||
|         char onAlarm; | ||||
|         char nowCardTest; | ||||
|  | ||||
|         char nowPayment; | ||||
|         char lastMifCardType; | ||||
|         char openedAuthorized; | ||||
|         char allDoorsDebounced; | ||||
|  | ||||
|         uint8_t lastSDoorState; | ||||
|         uint8_t lastVDoorState; | ||||
|         uint8_t CBinDebounced; | ||||
|         uint8_t lastCBstate; | ||||
|  | ||||
|         char  paymentInProgress; | ||||
|         char res1; | ||||
|         char res2; | ||||
|         char res3; | ||||
|  | ||||
|         uint16_t U_Batt; | ||||
|         uint16_t	Temperatur; | ||||
|  | ||||
|         uint16_t	cash_storedaccNumbers[8];	// List all stored accounting numbers in ext. eeprom | ||||
|  | ||||
|         uint16_t	nrCoinsInBox; | ||||
|         uint16_t	resui1; | ||||
|  | ||||
|         uint32_t	amountInBox; | ||||
|         uint32_t	amountJustPaid; | ||||
|  | ||||
|         uint16_t	lastInsCoinType;	// wahrscheinlich uchar | ||||
|         uint16_t	resui2; | ||||
|  | ||||
|         uint32_t	totalTransVolume; | ||||
|         uint32_t	totalNrOfVends; | ||||
|  | ||||
| }; | ||||
|  | ||||
|  | ||||
| class hwinf | ||||
| { | ||||
|  | ||||
| public: | ||||
|     enum class DownloadResult {OK, ERROR, TIMEOUT, NOP}; | ||||
|     enum class FileTypeJson {CONFIG=1, DEVICE, CASH, SERIAL, TIME, PRINTER}; | ||||
|  | ||||
|     virtual ~hwinf() {} | ||||
|                 | ||||
|      | ||||
|                                             | ||||
|     // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$     | ||||
|     //       Use serial interface and protocol stack in Cashagent-Library | ||||
| @@ -123,6 +292,8 @@ public: | ||||
|          | ||||
|     virtual bool dc_isPortOpen(void) const =0; | ||||
|         // returns true if port open (don't send unless open. Sending to closed port will crash program) | ||||
|                     | ||||
|          | ||||
|          | ||||
|     virtual uint8_t test_serialState(void) const =0; | ||||
|         // test on-board signals for the serials | ||||
| @@ -439,11 +610,31 @@ public: | ||||
|     virtual void request_ReadbackDeviceSettings() const =0; | ||||
|  | ||||
|     virtual void readback_DeviceSettings(uint8_t *length, uint8_t *data) const =0; | ||||
|         // refer to DC2 manual for exact content | ||||
|         // state 5.5.21: byte[0]=kindOfPrinter   byte[1]=kindOfCoinChecker | ||||
|     //               byte[2]=kindOfMifarereadr   byte[3]=suppress sleep mode | ||||
|     //               byte[4]=kindOfModem         byte[5]=kind of cc terminal | ||||
|                                                        | ||||
| /* | ||||
|             buf66[0]=devPara.kindOfPrinter; | ||||
|             buf66[1]=devPara.kindOfCoinChecker; | ||||
|             buf66[2]=devPara.kindOfMifareReader; | ||||
|             buf66[3]=devPara.suppressSleepMode; | ||||
|             buf66[4]=devPara.kindOfModem; | ||||
|             buf66[5]=devPara.kindOfCreditcard; | ||||
|             buf66[6]=devPara.CoinEscrow; | ||||
|             buf66[7]=devPara.CoinRejectUnit; | ||||
|             buf66[8]=devPara.CoinShutter; | ||||
|             buf66[9]=devPara.BillAcceptor; | ||||
|             buf66[10]=devPara.usevaultLock; | ||||
|             buf66[11]=devPara.autoAlarm; | ||||
|             buf66[12]=devPara.autoOpen; | ||||
|             buf66[13]=devPara.printAccReceipt; | ||||
|             buf66[14]=devPara.printDoorReceipt; | ||||
|             buf66[15]=devPara.printTokenTicket; | ||||
|             uitmp=devPara.VaultFullWarnLevel; | ||||
|             buf66[16]=swl_getOneByteFromUint(uitmp, GETLOWBYT); | ||||
|             buf66[17]=swl_getOneByteFromUint(uitmp, GETHIGHBYT); | ||||
|             uitmp=devPara.VaultFullErrorLevel; | ||||
|             buf66[18]=swl_getOneByteFromUint(uitmp, GETLOWBYT); | ||||
|             buf66[19]=swl_getOneByteFromUint(uitmp, GETHIGHBYT); | ||||
|  | ||||
| */ | ||||
|  | ||||
|     virtual void sendMachineID(uint16_t customerNr, uint16_t machineNr, | ||||
|                               uint16_t borough, uint16_t zone, | ||||
| @@ -455,8 +646,8 @@ public: | ||||
|     // state 5.5.21: byte[0,1]=customer number    byte[2,3]=machine number | ||||
|     //               byte[4,5]=borough   byte[6,7]=zone   byte[8,9]=alias name | ||||
|     //               byte[10...41]=location | ||||
|     // 12.4.23TS still the same | ||||
|  | ||||
| // 9 | ||||
|     | ||||
|     // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$     | ||||
|     // Printer | ||||
| @@ -1053,7 +1244,7 @@ public: | ||||
|         // return true is bl is up and running | ||||
|         // also initializes "sendFile" | ||||
|  | ||||
|     virtual void bl_sendAddress(u_int16_t blockNumber) const=0; | ||||
|     virtual void bl_sendAddress(uint16_t blockNumber) const=0; | ||||
|         // send start address, nr of 64byte-block, start with 0 | ||||
|         // will be sent only for following block-numbers: | ||||
|         // 0, 1024, 2048, 3072 and 4096, so basically every 64kByte | ||||
| @@ -1065,7 +1256,7 @@ public: | ||||
|     virtual void bl_openBinary(void) const=0; | ||||
|         // to be used within CashAgent, momentary not processed | ||||
|  | ||||
|     virtual void bl_sendDataBlock(uint8_t length, u_int8_t *buffer) const=0; | ||||
|     virtual void bl_sendDataBlock(uint8_t length, uint8_t *buffer) const=0; | ||||
|     // send 64 byte from bin file | ||||
|  | ||||
|     virtual void bl_sendLastBlock(void) const=0; | ||||
| @@ -1091,6 +1282,266 @@ public: | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| // ------------------------------------------------------------------------------------ | ||||
| // 6.4.2023: new functions for coin collection and printing | ||||
| //            some new system functions | ||||
| // ------------------------------------------------------------------------------------ | ||||
|  | ||||
|     virtual bool rtc_setTimeDateDirect(struct Trtc_DateTime *DateTime) const=0; | ||||
|         // return true if sending, false if cmd-stack is full | ||||
|  | ||||
|     virtual bool rtc_getExtendedTime(uint8_t *leng, uint8_t *data) const=0; | ||||
| /* | ||||
|      buf[0]=GlobTime.Hours; | ||||
|     buf[1]=GlobTime.Min; | ||||
|     buf[2]=GlobTime.Sec; | ||||
|     buf[3]=GlobTime.Year; | ||||
|     buf[4]=GlobTime.Month; | ||||
|     buf[5]=GlobTime.Day; | ||||
|     buf[6]=GlobTime.DOW; | ||||
|     buf[7]=' ';                   // immer auf 32bit auff<66>llen sonst Speicherproblem beim Master! | ||||
|     uitmp=GlobTime.MinOfDay; | ||||
|     buf[8]=swl_getOneByteFromUint(uitmp, 0); | ||||
|     buf[9]=swl_getOneByteFromUint(uitmp, 1); | ||||
|     buf[10]=' '; | ||||
|     buf[11]=' '; | ||||
|     ultmp=GlobTime.SecOfDay; | ||||
|     buf[12]=swl_getOneByteFromUlong(ultmp, 0); | ||||
|     buf[13]=swl_getOneByteFromUlong(ultmp, 1); | ||||
|     buf[14]=swl_getOneByteFromUlong(ultmp, 2); | ||||
|     buf[15]=swl_getOneByteFromUlong(ultmp, 3); | ||||
|  | ||||
|     buf[16]=swl_isLeap(GlobTime.Year); | ||||
|     buf[17]=swl_getNextLeapYear(GlobTime.Year); | ||||
|     buf[18]=swl_getLastLeapYear(GlobTime.Year); | ||||
|     buf[19]=swl_hoursOfThisWeek(GlobTime.DOW, GlobTime.Hours); | ||||
|  | ||||
|     uitmp=swl_minutesOfThisWeek(GlobTime.DOW, GlobTime.Hours, GlobTime.Min); | ||||
|     buf[20]=swl_getOneByteFromUint(uitmp, 0);    // 0=low byte   1=high byte | ||||
|     buf[21]=swl_getOneByteFromUint(uitmp, 1); | ||||
|  | ||||
|     uitmp=swl_hoursOfThisMonth(GlobTime.Day, GlobTime.Hours); | ||||
|     buf[22]=swl_getOneByteFromUint(uitmp, 0); | ||||
|     buf[23]=swl_getOneByteFromUint(uitmp, 1); | ||||
|  | ||||
|     uitmp=swl_minutesOfThisMonth(GlobTime.Day, GlobTime.Hours, GlobTime.Min); | ||||
|     buf[24]=swl_getOneByteFromUint(uitmp, 0); | ||||
|     buf[25]=swl_getOneByteFromUint(uitmp, 1); | ||||
|  | ||||
|     uitmp=swl_GetDaysOfYear(GlobTime.Year, GlobTime.Month, GlobTime.Day); | ||||
|     buf[26]=swl_getOneByteFromUint(uitmp, 0); | ||||
|     buf[27]=swl_getOneByteFromUint(uitmp, 1); | ||||
|  | ||||
|     uitmp=swl_GetHoursOfYear(GlobTime.Year, GlobTime.Month, GlobTime.Day, GlobTime.Hours); | ||||
|     buf[28]=swl_getOneByteFromUint(uitmp, 0); | ||||
|     buf[29]=swl_getOneByteFromUint(uitmp, 1); | ||||
|     buf[30]=0; | ||||
|     buf[31]=0; | ||||
|     ultmp= swl_GetMinutesOfYear(GlobTime.Year, GlobTime.Month, GlobTime.Day, | ||||
|                                 GlobTime.Hours, GlobTime.Min); | ||||
|     buf[32]=swl_getOneByteFromUlong(ultmp, 0); | ||||
|     buf[33]=swl_getOneByteFromUlong(ultmp, 1); | ||||
|     buf[34]=swl_getOneByteFromUlong(ultmp, 2); | ||||
|     buf[35]=swl_getOneByteFromUlong(ultmp, 3); | ||||
|  | ||||
|     buf[36]=rtc_getSqwaveSettings(); | ||||
|     buf[37]=0; | ||||
|     buf[38]=0; | ||||
|     buf[39]=0; | ||||
|  | ||||
|     ultmp= 0;       // Minutes of the Millenium | ||||
|     buf[40]=swl_getOneByteFromUlong(ultmp, 0); | ||||
|     buf[41]=swl_getOneByteFromUlong(ultmp, 1); | ||||
|     buf[42]=swl_getOneByteFromUlong(ultmp, 2); | ||||
|     buf[43]=swl_getOneByteFromUlong(ultmp, 3); | ||||
|  | ||||
|     dc2prot_setReadData(44, buf); | ||||
|  | ||||
|  */ | ||||
|  | ||||
|     virtual bool sys_runCompleteTest(void) const=0; | ||||
|         // warning: lasts 20s in one pace | ||||
|         // return true if sending, false if cmd-stack is full | ||||
|  | ||||
|     virtual bool sys_ready4sending(void) const=0; | ||||
|     // return true if a Json-file can be sent | ||||
|  | ||||
|     virtual bool sys_sendJsonFileToDc(uint8_t kindOfFile, uint8_t nrOfTemplate, uint8_t *content ) const=0; | ||||
|         // kindOfFile: 1=config, 2=device, 3=cash, 4=serial, 5=time, 6=printer | ||||
|         //      nrOfTemplate=1...32 if kindOfFile==6 | ||||
|         //      content = content of the Json file, max 800byte ascii signs | ||||
|         // file is 0-terminated | ||||
|         // return true if sending, false if cmd-stack is full | ||||
|  | ||||
|     virtual bool prn_sendDynamicPrnValues(uint8_t *dynPrnVal ) const=0; | ||||
|         // dynPrnVal = array of 8 Variables with 8 byte each, come as ascii string | ||||
|         //            like:     char prn_dynPrnVal[8][8]; | ||||
|         // return true if sending, false if cmd-stack is full | ||||
|  | ||||
|     virtual bool prn_printTemplate(uint8_t nrOftemplate) const=0; | ||||
|         // print one of the templates loaded by Json prior | ||||
|         // nr = 1..32 | ||||
|         // return true if sending, false if cmd-stack is full | ||||
|  | ||||
|         virtual void log_getHoldAccountNumbers(uint32_t *accNr ) const=0; | ||||
|         // returns all acc nrs of the backuped vault records | ||||
|         // use: uint32_t backupedAccNumbers[8] | ||||
|  | ||||
|     virtual bool log_selectVaultRecord(uint16_t accountNr ) const=0; | ||||
|         // return true if sending, false if cmd-stack is full | ||||
|  | ||||
| //request, isAvailable | ||||
| virtual void log_getVaultRecord(struct T_vaultRecord *retVR) const=0; | ||||
|         // which was selected by: log_selectVaultRecord() | ||||
|         // to be forwarded to Ismas | ||||
|  | ||||
|     virtual bool prn_printAccountReceipt(void) const=0; | ||||
|         // return true if sending to DC OK, false if cmd-stack is full | ||||
|  | ||||
|     virtual bool prn_printTestTicket(void) const=0; | ||||
|         // return true if sending to DC OK, false if cmd-stack is full | ||||
|  | ||||
|     virtual bool cash_startPayment(uint16_t amount) const=0; | ||||
|  | ||||
|     virtual uint32_t getInsertedAmount(void) const=0; | ||||
|  | ||||
|     virtual uint16_t getLastInsertedCoin(void) const=0; | ||||
|  | ||||
|     virtual bool getAllInsertedCoins(uint16_t *types, uint16_t *values) const=0; | ||||
|         // all inserted coins (max 64) since "cash_startPayment" | ||||
|  | ||||
|     virtual bool cash_cancelPayment(void) const=0; | ||||
|         // and return coins | ||||
|  | ||||
|     virtual bool cash_stopPayment(void) const=0; | ||||
|         // and keep coins in escrow | ||||
|  | ||||
|     // after ticket/goods issue: | ||||
|     virtual bool vend_success(void) const=0; | ||||
|         // conclude payment process, encash all inserted coins to vault. Printing was successful | ||||
|         // if possible return change | ||||
|  | ||||
|     virtual bool vend_failed(void) const=0; | ||||
|         // conclude payment process and return all inserted coins | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     virtual uint8_t mif_getCardType(QString cardholder) const=0; | ||||
|         // return 1,2,3,4 = upper, lower access card, printer test, coin test | ||||
|         // cardholder: 7byte Name-String | ||||
|  | ||||
|     virtual uint64_t sys_getWakeSource(void) const =0; | ||||
|         // retval: 6 bytes, bit coded, 1=event keeps DC awake | ||||
|  | ||||
|     //virtual void sys_getDeviceConditions(struct T_moduleCondition *devCond) const=0; | ||||
|     virtual void sys_getDeviceConditions(uint8_t *leng, uint8_t *data) const=0; | ||||
|     /* | ||||
|  | ||||
|     outBuf[0]=modCond.ram; | ||||
|     outBuf[1]=modCond.intEe; | ||||
|     outBuf[2]=modCond.extEe; | ||||
|     outBuf[3]=modCond.rtc; | ||||
|     outBuf[4]=modCond.boardHw; | ||||
|     outBuf[5]=modCond.printer; | ||||
|     outBuf[6]=modCond.modem; | ||||
|     outBuf[7]=modCond.signal; | ||||
|     outBuf[8]=modCond.regist; | ||||
|     outBuf[9]=modCond.mdbBus; | ||||
|     outBuf[10]=modCond.coinChecker; | ||||
|     outBuf[11]=modCond.coinEscrow; | ||||
|     outBuf[12]=modCond.mifareReader; | ||||
|     outBuf[13]=modCond.creditTerm; | ||||
|     outBuf[14]=modCond.coinReject; | ||||
|     outBuf[15]=modCond.coinSafe; | ||||
|     outBuf[16]=modCond.billSafe; | ||||
|     outBuf[17]=modCond.voltage; | ||||
|     outBuf[18]=modCond.temper; | ||||
|     outBuf[19]=modCond.poweronTest; | ||||
|     outBuf[20]=modCond.doorState; | ||||
|     outBuf[21]=modCond.doorWasOpened; | ||||
|     outBuf[22]=modCond.changer; | ||||
|     outBuf[23]=modCond.coinBlocker; | ||||
|     outBuf[24]=modCond.billReader; | ||||
|     outBuf[25]=modCond.ResetReason; | ||||
|     outBuf[26]=modCond.allModulesChecked; | ||||
|     outBuf[27]=modCond.alarmState; | ||||
|     outBuf[28]=0; | ||||
|     outBuf[29]=0; | ||||
|  | ||||
|      */ | ||||
|  | ||||
|  | ||||
|     //virtual void sys_getDynMachineConditions(struct T_dynamicCondition *dynMachCond) const=0; | ||||
|     virtual void sys_getDynMachineConditions(uint8_t *leng, uint8_t *data) const=0; | ||||
| /* | ||||
|  | ||||
|     outBuf[pBuf++]=dynCond.allDoorsDebounced; | ||||
|     outBuf[pBuf++]=dynCond.openedAuthorized; | ||||
|     outBuf[pBuf++]=dynCond.CBinDebounced; | ||||
|     outBuf[pBuf++]=dynCond.upperDoor; | ||||
|  | ||||
|     outBuf[pBuf++]=dynCond.middleDoor; | ||||
|     outBuf[pBuf++]=dynCond.lowerDoor; | ||||
|     outBuf[pBuf++]=dynCond.coinBox; | ||||
|     outBuf[pBuf++]=dynCond.billBox; | ||||
|  | ||||
|     outBuf[pBuf++]=dynCond.modeAbrech; | ||||
|     outBuf[pBuf++]=dynCond.onAlarm; | ||||
|     outBuf[pBuf++]=dynCond.nowCardTest; | ||||
|     outBuf[pBuf++]=dynCond.nowPayment; | ||||
|  | ||||
|     outBuf[pBuf++]=dynCond.lastMifCardType; | ||||
|     outBuf[pBuf++]=dynCond.lastSDoorState; | ||||
|     outBuf[pBuf++]=dynCond.lastVDoorState; | ||||
|     outBuf[pBuf++]=dynCond.lastCBstate; | ||||
|  | ||||
|     outBuf[pBuf++]=dynCond.paymentInProgress; | ||||
|     outBuf[pBuf++]=0; | ||||
|     uitmp=dynCond.U_Batt; | ||||
|     outBuf[pBuf++]=swl_getOneByteFromUint(uitmp, GETLOWBYT); | ||||
|     outBuf[pBuf++]=swl_getOneByteFromUint(uitmp, GETHIGHBYT); | ||||
|     uitmp=dynCond.Temperatur; | ||||
|     outBuf[pBuf++]=swl_getOneByteFromUint(uitmp, GETLOWBYT); | ||||
|     outBuf[pBuf++]=swl_getOneByteFromUint(uitmp, GETHIGHBYT); | ||||
|  | ||||
|     uitmp=dynCond.nrCoinsInBox;	// send seperate also | ||||
|     outBuf[pBuf++]=swl_getOneByteFromUint(uitmp, GETLOWBYT); | ||||
|     outBuf[pBuf++]=swl_getOneByteFromUint(uitmp, GETHIGHBYT); | ||||
|  | ||||
|     ultmp=dynCond.amountInBox;	// send seperate also | ||||
|     outBuf[pBuf++]=swl_getOneByteFromUlong(ultmp, GETLOWESTBYT); | ||||
|     outBuf[pBuf++]=swl_getOneByteFromUlong(ultmp, GETLOWMID); | ||||
|     outBuf[pBuf++]=swl_getOneByteFromUlong(ultmp, GETHIGHMID); | ||||
|     outBuf[pBuf++]=swl_getOneByteFromUlong(ultmp, GETHIGHESTBYT); | ||||
|  | ||||
|     ultmp=dynCond.totalTransVolume; | ||||
|     outBuf[pBuf++]=swl_getOneByteFromUlong(ultmp, GETLOWESTBYT); | ||||
|     outBuf[pBuf++]=swl_getOneByteFromUlong(ultmp, GETLOWMID); | ||||
|     outBuf[pBuf++]=swl_getOneByteFromUlong(ultmp, GETHIGHMID); | ||||
|     outBuf[pBuf++]=swl_getOneByteFromUlong(ultmp, GETHIGHESTBYT); | ||||
|  | ||||
|     ultmp=dynCond.totalNrOfVends; | ||||
|     outBuf[pBuf++]=swl_getOneByteFromUlong(ultmp, GETLOWESTBYT); | ||||
|     outBuf[pBuf++]=swl_getOneByteFromUlong(ultmp, GETLOWMID); | ||||
|     outBuf[pBuf++]=swl_getOneByteFromUlong(ultmp, GETHIGHMID); | ||||
|     outBuf[pBuf++]=swl_getOneByteFromUlong(ultmp, GETHIGHESTBYT); | ||||
| // 36 | ||||
|     outBuf[pBuf++]=dynCond.jsonValid_config; | ||||
|     outBuf[pBuf++]=dynCond.jsonValid_device; | ||||
|     outBuf[pBuf++]=dynCond.jsonValid_cash; | ||||
|     outBuf[pBuf++]=dynCond.jsonValid_print; | ||||
|     outBuf[pBuf++]=dynCond.jsonValid_serial; | ||||
|     outBuf[pBuf++]=dynCond.jsonValid_time; | ||||
|     outBuf[pBuf++]=dynCond.lastFileType; | ||||
|     outBuf[pBuf++]=0; | ||||
|  | ||||
| */ | ||||
|  | ||||
|  | ||||
| }; | ||||
|  | ||||
|  | ||||
| @@ -1104,8 +1555,15 @@ public: | ||||
| //                           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" | ||||
|  | ||||
|  | ||||
| #define HWINF_iid "Atb.Psa2020.software.HWapi/3.1" | ||||
|  | ||||
| Q_DECLARE_INTERFACE(hwinf, HWINF_iid) | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user