Merge commit 'f214e0ff43594ebf48a00f8debb96613c307c309'
fetch sources for CashAgentLib 3.3.
This commit is contained in:
@@ -61,6 +61,10 @@ char T_datif::datif_cycleSend()
|
||||
uint8_t dataSendBuf[160], dataBufLen, dbl, who;
|
||||
static uint8_t BlockCounter;
|
||||
|
||||
uint8_t nextWrCmd, nextRdCmd, blockNum, dat1, dat2, dat3, dat4;
|
||||
uint8_t length, data[66];
|
||||
bool b_ret;
|
||||
|
||||
if (cycl_running)
|
||||
{
|
||||
// request is still running, wait for response before next sending
|
||||
@@ -77,6 +81,43 @@ char T_datif::datif_cycleSend()
|
||||
if (myDCIF->isSerialFree())
|
||||
#endif
|
||||
{
|
||||
// new, from 11.4.23: direkt access to fastDevice Interface
|
||||
// always use this three functions to send data:
|
||||
//void myDCIF->setUserWriteData(uint16_t WriteCmd, uint16_t WrAddr, uint8_t WrDatLen, uint8_t *data);
|
||||
//void myDCIF->setUserWriteData(uint16_t WriteCmd, uint16_t WrAddr);
|
||||
//void myDCIF->setUserWriteData(uint16_t WriteCmd);
|
||||
//void myDCIF->setUserWrite1DB (uint16_t WriteCmd, uint16_t WrAddr, uint8_t val);
|
||||
//void myDCIF->setUserWrite2DB (uint16_t WriteCmd, uint16_t WrAddr, uint8_t val0, uint8_t val1);
|
||||
|
||||
//void myDCIF->setUserReadData( uint16_t ReadCmd, uint16_t RdAddr, uint16_t reserv);
|
||||
//void myDCIF->setUserReadData( uint16_t ReadCmd, uint16_t RdAddr);
|
||||
//void myDCIF->setUserReadData( uint16_t ReadCmd);
|
||||
|
||||
//void myDCIF->sendUserData(uint16_t slaveAdr);
|
||||
|
||||
if (check4FDshortCmd())
|
||||
{
|
||||
b_ret=sendFDcmd_get(&nextWrCmd, &nextRdCmd, &blockNum, &dat1, &dat2, &dat3, &dat4);
|
||||
if (b_ret)
|
||||
{
|
||||
data[0]=dat1; data[1]=dat2; data[2]=dat3; data[3]=dat4; data[4]=0;
|
||||
myDCIF->setUserWriteData(nextWrCmd, blockNum, 4, data);
|
||||
myDCIF->setUserReadData(nextRdCmd);
|
||||
myDCIF->sendUserData(selectedSlaveAddr);
|
||||
}
|
||||
}
|
||||
|
||||
if (check4FDlongCmd())
|
||||
{
|
||||
b_ret=longFDcmd_get(&nextWrCmd, &nextRdCmd, &blockNum, &length, data);
|
||||
if (b_ret)
|
||||
{
|
||||
myDCIF->setUserWriteData(nextWrCmd, blockNum, length, data);
|
||||
myDCIF->setUserReadData(nextRdCmd);
|
||||
myDCIF->sendUserData(selectedSlaveAddr);
|
||||
}
|
||||
}
|
||||
|
||||
// direct commands have highest prio (setting OUTPUTS)
|
||||
nxtAsCmd=sendWRcmd_getSendCommand0(); // command was stored by Gui
|
||||
if (nxtAsCmd>0)
|
||||
@@ -624,62 +665,71 @@ char T_datif::sendINrequestsAutomatic(void)
|
||||
{
|
||||
//qDebug() << "send IN request " << dif_scanStep;
|
||||
|
||||
// one time: 105, 11,12,101,18
|
||||
// cyclic: 22,23,24,27, 102,103,104,106,107,108,109,
|
||||
|
||||
// fehlen: 112, 113,14,17, 19, 30,31,32,33,
|
||||
// 38 on request
|
||||
|
||||
switch (dif_scanStep)
|
||||
{
|
||||
// first 5 items are performed only one time after startup as this data never change
|
||||
|
||||
case 0:
|
||||
datif_sendIOrequest(0, CMD2DC_GetSerialConfig, 0);
|
||||
datif_sendIOrequest(0, CMD2DC_GetSerialConfig, 0); // 105
|
||||
break;
|
||||
|
||||
case 1:
|
||||
datif_sendIOrequest(0, CMD2DC_RdBkHWversion, 0);
|
||||
datif_sendIOrequest(0, CMD2DC_RdBkHWversion, 0); // 11
|
||||
break;
|
||||
|
||||
case 2:
|
||||
datif_sendIOrequest(0, CMD2DC_RdBkSWversion, 0);
|
||||
datif_sendIOrequest(0, CMD2DC_RdBkSWversion, 0); // 12
|
||||
break;
|
||||
|
||||
case 3:
|
||||
datif_sendIOrequest(0, CMD2DC_RdBkDCstate, 0);
|
||||
datif_sendIOrequest(0, CMD2DC_RdBkDCstate, 0); // 101
|
||||
break;
|
||||
|
||||
case 4:
|
||||
datif_sendIOrequest(0, CMD2DC_RdBkUID, 0);
|
||||
datif_sendIOrequest(0, CMD2DC_RdBkUID, 0); // 18
|
||||
break;
|
||||
|
||||
// repeat cyclic from here:
|
||||
case 5:
|
||||
datif_sendIOrequest(0, CMD2DC_GetAllInputs, 0);
|
||||
datif_sendIOrequest(0, CMD2DC_GetAllInputs, 0); // 102
|
||||
break;
|
||||
|
||||
case 6:
|
||||
datif_sendIOrequest(0, CMD2DC_RdBkTime, 0);
|
||||
datif_sendIOrequest(0, CMD2DC_RdBkTime, 0); // 104
|
||||
break;
|
||||
|
||||
case 7:
|
||||
datif_sendIOrequest(0, CMD2DC_GetAllInputs, 0);
|
||||
//datif_sendIOrequest(0, CMD2DC_GetAllInputs, 0);
|
||||
datif_sendIOrequest(0, 112, 0);
|
||||
break;
|
||||
|
||||
case 8:
|
||||
datif_sendIOrequest(0, CMD2DC_RdBkAnalog, 0);
|
||||
datif_sendIOrequest(0, CMD2DC_RdBkAnalog, 0); // 106
|
||||
break;
|
||||
|
||||
case 9:
|
||||
datif_sendIOrequest(0, CMD2DC_GetAllInputs, 0);
|
||||
//datif_sendIOrequest(0, CMD2DC_GetAllInputs, 0);
|
||||
datif_sendIOrequest(0, 113, 0);
|
||||
break;
|
||||
|
||||
case 10:
|
||||
datif_sendIOrequest(0, CMD2DC_RdBkAllOutputs, 0);
|
||||
datif_sendIOrequest(0, CMD2DC_RdBkAllOutputs, 0); // 103
|
||||
break;
|
||||
|
||||
case 11:
|
||||
datif_sendIOrequest(0, CMD2DC_GetAllInputs, 0);
|
||||
//datif_sendIOrequest(0, CMD2DC_GetAllInputs, 0);
|
||||
datif_sendIOrequest(0, 14, 0);
|
||||
break;
|
||||
|
||||
case 12:
|
||||
if (indat_isPrinterOn())
|
||||
datif_sendIOrequest(0, CMD2DC_RdBk_AllPrnData, 0);
|
||||
datif_sendIOrequest(0, CMD2DC_RdBk_AllPrnData, 0); // 27
|
||||
// datif_sendIOrequest(0, CMD2DC_RdBk_PrnState, 0);
|
||||
break;
|
||||
|
||||
@@ -690,20 +740,21 @@ char T_datif::sendINrequestsAutomatic(void)
|
||||
case 14:
|
||||
if (indat_isMifareOn())
|
||||
{
|
||||
datif_sendIOrequest(0, CMD2DC_RdBk_MifState, 0);
|
||||
datif_sendIOrequest(0, CMD2DC_RdBk_MifState, 0); // 109
|
||||
//qDebug()<<"requesting MIF reader state";
|
||||
}
|
||||
break;
|
||||
|
||||
case 15:
|
||||
datif_sendIOrequest(0, CMD2DC_GetAllInputs, 0);
|
||||
//datif_sendIOrequest(0, CMD2DC_GetAllInputs, 0);
|
||||
datif_sendIOrequest(0, 17, 0);
|
||||
break;
|
||||
|
||||
case 16:
|
||||
if (indat_isMifareOn())
|
||||
{
|
||||
datif_OutCmdpara1=0; // data block number 0 contains the Mifare-ID
|
||||
datif_sendIOrequest(0, CMD2DC_RdBk_MifData, 1);
|
||||
datif_sendIOrequest(0, CMD2DC_RdBk_MifData, 1); // 24
|
||||
// qDebug()<<"automatically requesting mif card data";
|
||||
if (++RDBLKNR>11)
|
||||
RDBLKNR=0;
|
||||
@@ -712,23 +763,24 @@ char T_datif::sendINrequestsAutomatic(void)
|
||||
} break;
|
||||
|
||||
case 17:
|
||||
datif_sendIOrequest(0, CMD2DC_GetAllInputs, 0);
|
||||
//datif_sendIOrequest(0, CMD2DC_GetAllInputs, 0);
|
||||
datif_sendIOrequest(0, 19, 0);
|
||||
break;
|
||||
|
||||
case 18:
|
||||
if (indat_isMdbOn())
|
||||
datif_sendIOrequest(0, CMD2DC_MDB_GET_STATE, 0);
|
||||
datif_sendIOrequest(0, CMD2DC_MDB_GET_STATE, 0); // 107
|
||||
//else
|
||||
// dif_scanStep=24; unsinn
|
||||
break;
|
||||
|
||||
case 19:
|
||||
datif_sendIOrequest(0, CMD2DC_GetAllInputs, 0);
|
||||
datif_sendIOrequest(0, 30, 0);
|
||||
break;
|
||||
|
||||
case 20:
|
||||
//if (indat_isMdbOn())
|
||||
datif_sendIOrequest(0, CMD2DC_MDB_GETRESP, 0);
|
||||
datif_sendIOrequest(0, CMD2DC_MDB_GETRESP, 0); // 22
|
||||
|
||||
break;
|
||||
|
||||
@@ -738,23 +790,32 @@ char T_datif::sendINrequestsAutomatic(void)
|
||||
|
||||
case 22:
|
||||
//if (indat_isMdbOn()) // kein eigener Schalter für EMP
|
||||
datif_sendIOrequest(0, CMD2DC_EMP_GET_ALL, 0);
|
||||
datif_sendIOrequest(0, CMD2DC_EMP_GET_ALL, 0); // 23
|
||||
break;
|
||||
|
||||
case 23:
|
||||
datif_sendIOrequest(0, CMD2DC_GetAllInputs, 0);
|
||||
datif_sendIOrequest(0, 31, 0);
|
||||
break;
|
||||
|
||||
case 24:
|
||||
//if (indat_isMdbOn()) // kein eigener Schalter für EMP
|
||||
datif_sendIOrequest(0, CMD2DC_EMP_GOTCOIN, 0);
|
||||
datif_sendIOrequest(0, CMD2DC_EMP_GOTCOIN, 0); // 108
|
||||
break;
|
||||
|
||||
case 25:
|
||||
datif_sendIOrequest(0, 32, 0);
|
||||
break;
|
||||
|
||||
case 26:
|
||||
datif_sendIOrequest(0, 33, 0);
|
||||
break;
|
||||
|
||||
|
||||
}
|
||||
|
||||
dif_scanStep++;
|
||||
if (dif_scanStep>=25)
|
||||
dif_scanStep=0; //dif_scanStep=5;
|
||||
if (dif_scanStep>26)
|
||||
dif_scanStep=5;
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -792,13 +853,13 @@ void T_datif::StoredRecData()
|
||||
char T_datif::loadRecDataFromFrame()
|
||||
{
|
||||
// necessary data in T_prot:
|
||||
uint16_t readSource, uitmp;
|
||||
uint16_t readSource, uitmp,uit2;
|
||||
uint16_t readAddress;
|
||||
//uint8_t pp;
|
||||
uint8_t SlaveAdr, RdDleng;
|
||||
uint8_t receivedData[FRAME_DATALEN];
|
||||
QString localStr;
|
||||
//uint32_t ultmp;
|
||||
uint32_t ultmp;
|
||||
//int portNr;
|
||||
bool ret;
|
||||
uint8_t uctmp; // maxai
|
||||
@@ -837,7 +898,7 @@ char T_datif::loadRecDataFromFrame()
|
||||
// receivedData[1]='B';
|
||||
// receivedData[2]='1';
|
||||
// receivedData[3]='-';
|
||||
// for (int ii=0; ii<4; ii++) haut hin :)
|
||||
|
||||
|
||||
for (int ii=0; ii<RdDleng; ii++)
|
||||
{
|
||||
@@ -847,7 +908,7 @@ char T_datif::loadRecDataFromFrame()
|
||||
//qDebug() << "got HW version: " << localStr;
|
||||
switch (readSource) // = request command
|
||||
{
|
||||
case CMD2DC_TestSerial: // serial line check
|
||||
case CMD2DC_TestSerial: // serial line check 10
|
||||
ret=verifyLineTestresponse(RdDleng, receivedData);
|
||||
gpi_storeResult_serialTestOK(ret);
|
||||
if (ret==true)
|
||||
@@ -856,41 +917,41 @@ char T_datif::loadRecDataFromFrame()
|
||||
gpi_setTxt4datifLine("false");
|
||||
break;
|
||||
|
||||
case CMD2DC_GetSerialConfig: // get slave's RS232 config
|
||||
case CMD2DC_GetSerialConfig: // get slave's RS232 config 105
|
||||
gpi_storeSlaveSerParams(receivedData[0], receivedData[1], receivedData[2], receivedData[3]);
|
||||
//gpi_storeSlaveBusAddr(SlaveAdr);
|
||||
break;
|
||||
|
||||
case CMD2DC_RdBkHWversion:
|
||||
case CMD2DC_RdBkHWversion: //11
|
||||
//qDebug() << "got HW version: " << localStr;
|
||||
gpi_storeGenerals(0, localStr);
|
||||
// 0=HW 1=SW 2=State
|
||||
//gpi_storeSlaveBusAddr(SlaveAdr);
|
||||
break;
|
||||
|
||||
case CMD2DC_RdBkSWversion:
|
||||
case CMD2DC_RdBkSWversion: //12
|
||||
//qDebug() << "got SW version: " << localStr;
|
||||
gpi_storeGenerals(1, localStr);
|
||||
break;
|
||||
|
||||
case CMD2DC_RdBkDCstate:
|
||||
case CMD2DC_RdBkDCstate: //101
|
||||
//qDebug() << "got DC state " << localStr;
|
||||
localStr[8]=0;
|
||||
gpi_storeGenerals(2, localStr);
|
||||
// 0=HW 1=SW 2=State
|
||||
break;
|
||||
|
||||
case CMD2DC_RdBkUID: // getback UID in DB0....7
|
||||
case CMD2DC_RdBkUID: // getback UID in DB0....7 18
|
||||
gpi_storeUID(receivedData);
|
||||
break;
|
||||
|
||||
case CMD2DC_RdBkTime: // slave returned RTC time and date
|
||||
case CMD2DC_RdBkTime: // slave returned RTC time and date 104
|
||||
// new, FastProt: 0=dayOfWeek 1=min 2=sec 3=hours 4=year 5=month 6=dayOfYear
|
||||
gpi_backupTime(receivedData, RdDleng); // function reads 20 bytes from the buffer
|
||||
|
||||
break;
|
||||
|
||||
case CMD2DC_RdBkAnalog: // get ALL AIs 0...3, 4byte + 2byte each
|
||||
case CMD2DC_RdBkAnalog: // get ALL AIs 0...3, 4byte + 2byte each 106
|
||||
|
||||
// DB0,1: Value0=Temperature
|
||||
// DB2,3: Value1=Voltage
|
||||
@@ -906,7 +967,7 @@ char T_datif::loadRecDataFromFrame()
|
||||
gpi_storeAIs(1, uitmp);
|
||||
break;
|
||||
|
||||
case CMD2DC_GetAllInputs:
|
||||
case CMD2DC_GetAllInputs: //102
|
||||
/*
|
||||
// alle DI's in einen 8byte Puffer zusammenstellen, werden in einen Rutsch zum Master gesendet
|
||||
|
||||
@@ -990,7 +1051,7 @@ char T_datif::loadRecDataFromFrame()
|
||||
gpi_storeDI_paperLow(receivedData[5]);
|
||||
break;
|
||||
|
||||
case CMD2DC_RdBkAllOutputs:
|
||||
case CMD2DC_RdBkAllOutputs: //103
|
||||
|
||||
/*
|
||||
// alle DO's in einen 8byte Puffer zusammenstellen, werden in einen Rutsch zum Master gesendet
|
||||
@@ -1048,27 +1109,27 @@ char T_datif::loadRecDataFromFrame()
|
||||
break;
|
||||
|
||||
|
||||
case CMD2DC_RdBk_MifState:
|
||||
case CMD2DC_RdBk_MifState: //109
|
||||
// get reader status and card type
|
||||
|
||||
gpi_storeMifReaderStateAndCardType(receivedData);
|
||||
break;
|
||||
|
||||
case CMD2DC_RdBk_MifData:
|
||||
case CMD2DC_RdBk_MifData: //24
|
||||
// one block of data (64byte) comes in
|
||||
// blkNr 0...11 in "Addr"
|
||||
gpi_storeMifCardData(readAddress, receivedData);
|
||||
//qDebug()<<"datif storing mif data: (adr/data) "<<readAddress<<receivedData;
|
||||
break;
|
||||
|
||||
case CMD2DC_RdBk_AtbCardType:
|
||||
case CMD2DC_RdBk_AtbCardType: //25
|
||||
// DC reports the type of mif-card (valid ATB card?)
|
||||
|
||||
break;
|
||||
|
||||
|
||||
|
||||
case CMD2DC_RdBk_PrnState: // 0x2A02
|
||||
case CMD2DC_RdBk_PrnState: // 110
|
||||
|
||||
// byte 1...6 come right from printer, see printer manual
|
||||
// byte 0 = all important infos:
|
||||
@@ -1080,7 +1141,7 @@ char T_datif::loadRecDataFromFrame()
|
||||
gpi_storePrinterState(receivedData); // derzeit 10bytes ( 0x2A02)
|
||||
break;
|
||||
|
||||
case CMD2DC_RdBk_PrnFonts: // 0x2A12
|
||||
case CMD2DC_RdBk_PrnFonts: // 26
|
||||
//D0: font table/type
|
||||
//D1: size
|
||||
//D2: height
|
||||
@@ -1094,7 +1155,7 @@ char T_datif::loadRecDataFromFrame()
|
||||
gpi_storePrinterFonts(receivedData); // derzeit 10bytes
|
||||
break;
|
||||
|
||||
case CMD2DC_RdBk_AllPrnData: // 0x2A40
|
||||
case CMD2DC_RdBk_AllPrnData: // 27
|
||||
gpi_storePrinterState(receivedData); // derzeit 10bytes ( 0x2A02)
|
||||
gpi_storePrinterFonts(&receivedData[10]); // derzeit 10bytes
|
||||
/*
|
||||
@@ -1107,7 +1168,7 @@ char T_datif::loadRecDataFromFrame()
|
||||
*/
|
||||
break;
|
||||
|
||||
case CMD2DC_MDB_GET_STATE:
|
||||
case CMD2DC_MDB_GET_STATE: //107
|
||||
// DB0: mdb_bus_ready (switched on)
|
||||
// DB1: rdBackV12devicePower
|
||||
// DB2: rdBackV5busPwr
|
||||
@@ -1116,7 +1177,7 @@ char T_datif::loadRecDataFromFrame()
|
||||
gpi_storeMdbState(receivedData[0],receivedData[1],receivedData[2]);
|
||||
break;
|
||||
|
||||
case CMD2DC_MDB_GETRESP:
|
||||
case CMD2DC_MDB_GETRESP: //22
|
||||
// last received mdb answer (from mdb device)
|
||||
// only needed if a special command was sent directly
|
||||
// DB0: mdb Device-Nr
|
||||
@@ -1127,12 +1188,12 @@ char T_datif::loadRecDataFromFrame()
|
||||
gpi_storeMdbResponse(receivedData[2]+3, receivedData);
|
||||
break;
|
||||
|
||||
case CMD2DC_EMP_GET_ALL:
|
||||
case CMD2DC_EMP_GET_ALL: //23
|
||||
//qDebug() << "got emp parameters "<< receivedData[1];
|
||||
gpi_storeEmpSettings(64, receivedData);
|
||||
break;
|
||||
|
||||
case CMD2DC_EMP_GOTCOIN:
|
||||
case CMD2DC_EMP_GOTCOIN: //108
|
||||
// DB0: 1=coin 0xFF=error 0=got nothing
|
||||
// DB1: last coin signal (value / scale)
|
||||
// DB2,3: last coin value
|
||||
@@ -1140,18 +1201,355 @@ char T_datif::loadRecDataFromFrame()
|
||||
gpi_storeEmpCoinSignal(receivedData[0], &receivedData[1]);
|
||||
break;
|
||||
|
||||
case CMD2DC_RDBK_DEV_PARA:
|
||||
gpi_storeDeviceSettings(RdDleng, receivedData);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// ab hier neu: XXX
|
||||
|
||||
case CMD2DC_RDBK_DEV_PARA: //14
|
||||
/*
|
||||
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);
|
||||
|
||||
*/
|
||||
gpi_storeRbDeviceSettings(RdDleng, receivedData);
|
||||
|
||||
|
||||
break;
|
||||
|
||||
case CMD2DC_RDBK_MACH_ID:
|
||||
// get machine parameters and location
|
||||
case CMD2DC_RDBK_MACH_ID: //15
|
||||
case 17:
|
||||
/*
|
||||
buf66[0]=swl_getOneByteFromUint(machPara.customerNumber, GETLOWBYT);
|
||||
buf66[1]=swl_getOneByteFromUint(machPara.customerNumber, GETHIGHBYT);
|
||||
buf66[2]=swl_getOneByteFromUint(machPara.machineNumber, GETLOWBYT);
|
||||
buf66[3]=swl_getOneByteFromUint(machPara.machineNumber, GETHIGHBYT);
|
||||
buf66[4]=swl_getOneByteFromUint(machPara.borough, GETLOWBYT);
|
||||
buf66[5]=swl_getOneByteFromUint(machPara.borough, GETHIGHBYT);
|
||||
buf66[6]=swl_getOneByteFromUint(machPara.zone, GETLOWBYT);
|
||||
buf66[7]=swl_getOneByteFromUint(machPara.zone, GETHIGHBYT);
|
||||
buf66[8]=swl_getOneByteFromUint(machPara.alias, GETLOWBYT);
|
||||
buf66[9]=swl_getOneByteFromUint(machPara.alias, GETHIGHBYT);
|
||||
for (pp=0; pp<32; pp++)
|
||||
buf66[10+pp]=machPara.location[pp];
|
||||
dc2prot_setReadData(42, buf66);
|
||||
|
||||
*/
|
||||
gpi_storeMachineIDsettings(RdDleng, receivedData);
|
||||
break;
|
||||
|
||||
case 19: // get time and date and Extra values
|
||||
/*
|
||||
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ü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);
|
||||
|
||||
*/
|
||||
// speicher-fkt fehlt noch, gpi_backupTime ist nur kurz
|
||||
gpi_storeExtendedTime(RdDleng, receivedData);
|
||||
|
||||
break;
|
||||
|
||||
case 111: // get square wafe settings
|
||||
gpi_backupSquareMode(receivedData[0]);
|
||||
break;
|
||||
|
||||
case 112: // get inserted amount in cent in sum
|
||||
// byte 0..3: amount just paid 4,5:last coin type 6,7: last coin value
|
||||
ultmp=uchar2ulong(receivedData[3],receivedData[2],receivedData[1],receivedData[0]);
|
||||
uitmp=uchar2uint(receivedData[5],receivedData[4]);
|
||||
uit2=uchar2uint(receivedData[7],receivedData[6]);
|
||||
gpi_storeCurrentPayment(ultmp, uitmp, uit2);
|
||||
break;
|
||||
|
||||
case 113: // get wake source, 8byte
|
||||
gpi_storeWakeSources(receivedData);
|
||||
break;
|
||||
|
||||
case 30: // Get Devices Condition (warnings, errors)
|
||||
/*
|
||||
|
||||
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;
|
||||
|
||||
*/
|
||||
gpi_storeDeviceConditions(RdDleng, receivedData);
|
||||
|
||||
break;
|
||||
|
||||
case 31: // Get dynamic machine conditions (doors, voltage, alarm….)
|
||||
/*
|
||||
|
||||
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;
|
||||
|
||||
*/
|
||||
|
||||
gpi_storeDynMachineConditions(RdDleng, receivedData);
|
||||
break;
|
||||
|
||||
case 32: // Get current cash level (in vault)
|
||||
// bytes 0..3: amount bytes 4,5=Nr.ofCoins in vault
|
||||
|
||||
break;
|
||||
|
||||
case 33: // Get all backuped acc. Numbers
|
||||
// 8 UINTs with acc-nr
|
||||
|
||||
|
||||
break;
|
||||
|
||||
case 38: // Get stored account record backup
|
||||
/*
|
||||
|
||||
struct T_vaultRecord
|
||||
{
|
||||
UCHAR startbuffer[4]; // Psa> // never move or change this 1st entry
|
||||
UINT AccountingNumber;
|
||||
UINT CUNU;
|
||||
UINT MANU;
|
||||
UINT resint1;
|
||||
//UINT resint2;
|
||||
|
||||
UCHAR label1buffer[4]; // tim>
|
||||
UCHAR year;
|
||||
UCHAR month;
|
||||
UCHAR dom;
|
||||
UCHAR hour;
|
||||
UCHAR min;
|
||||
UCHAR sec;
|
||||
UCHAR DoW;
|
||||
UCHAR reschar3;
|
||||
|
||||
UCHAR label2buffer[4]; // abs>
|
||||
ULONG AbsIncome1;
|
||||
ULONG AbsReserve;
|
||||
ULONG AbsNrOfCuts;
|
||||
|
||||
//16
|
||||
UCHAR label3buffer[4]; // mw >
|
||||
|
||||
// Verkauf, Tür zu:
|
||||
ULONG VKcoinsInserted[16]; // nur für Wechsler, soviel wurde eingeworfen
|
||||
ULONG VKcoinsReturned[6]; // nur für Wechsler, Anzahl Münzen pro Typ, soviel wurde zurückgegeben
|
||||
//88
|
||||
|
||||
// Service, Tür offen:
|
||||
UINT ServCoinsInserted[16]; // nur für Wechsler, soviel wurde eingeworfen
|
||||
UINT ServCoinsReturned[6]; // nur für Wechsler, Anzahl Münzen pro Typ, soviel wurde zurückgegeben
|
||||
UINT resint3;
|
||||
UINT resint4;
|
||||
UINT currentTubeContent[6]; // nur für Wechsler, aktueller Füllstand
|
||||
UINT resint5;
|
||||
UINT resint6;
|
||||
// 56
|
||||
|
||||
UCHAR label4buffer[4]; // box>
|
||||
UINT coinsInVault[16];
|
||||
UINT billsInStacker[8];
|
||||
// 48
|
||||
|
||||
UCHAR label5buffer[4]; // val>
|
||||
// actually constant unless exchange rate is changed
|
||||
UINT coinDenomination[16]; // 5..50000 (z.B. 2 sind in Ungarn 760Ft)
|
||||
UINT billDenom[8];
|
||||
UINT tubeDenom[6];
|
||||
UINT exchangeRate;
|
||||
UINT resint9;
|
||||
|
||||
// 64
|
||||
|
||||
UCHAR endofblock[4]; // end>
|
||||
// 316 byte Block im Speicher
|
||||
*/
|
||||
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// fehlen: 112, 113,14,17, 19, 30,31,32,33,
|
||||
|
||||
// subs:
|
||||
|
||||
|
Reference in New Issue
Block a user