diff --git a/src/storeINdata sm.cpp b/src/storeINdata sm.cpp deleted file mode 100755 index 20ebcca..0000000 --- a/src/storeINdata sm.cpp +++ /dev/null @@ -1,2053 +0,0 @@ -#include -#include -#include -#include "storeINdata.h" -#include "tslib.h" -#include "shared_mem_buffer.h" -#include "datei.h" - -// gpi: grafical access to PI: access from external devices over device controller FOR GUI -// epi: external access from GUI to PI: FOR external devices (DC) - - - - -// store power on/off condition of the devices to control the data request - -//static bool indat_savePrnPwr; - -void indat_storePrinterPower(bool isOn) -{ - SharedMem::write()->indat_savePrnPwr=isOn; -} - -bool indat_isPrinterOn() -{ - return SharedMem::read()->indat_savePrnPwr; -} - - -//static bool indat_saveMifPwr; - -void indat_storeMifarePower(bool isOn) -{ - SharedMem::write()->indat_saveMifPwr=isOn; -} - -bool indat_isMifareOn() -{ - return SharedMem::read()->indat_saveMifPwr; -} - - -//static bool indat_MdbIsOn; - -void indat_storeMDBisOn(bool isOn) -{ - SharedMem::write()->indat_MdbIsOn=isOn; -} - -bool indat_isMdbOn() -{ - return SharedMem::read()->indat_MdbIsOn; -} - - - -//QString indat_HWversion; -//QString indat_SWversion; -//QString indat_DCstate; - - -void gpi_storeHWver(QString text) -{ - SharedMem::write()->indat_HWversion=text; -} - -QString epi_loadHWver(void) -{ - return SharedMem::read()->indat_HWversion; -} - -void gpi_storeSWver(QString text) -{ - SharedMem::write()->indat_SWversion=text; -} - -QString epi_loadSWver(void) -{ - return SharedMem::read()->indat_SWversion; -} - -void gpi_storeDCstate(QString text) -{ - text.chop(8); // DC2 State is shorter (8byte) - SharedMem::write()->indat_DCstate=text; -} - -QString epi_loadDCstate(void) -{ - return SharedMem::read()->indat_DCstate; -} - - -// ------------------------------- - -/* -static uint64_t Sdata_slaveUID; -static uint8_t Sdata_UIDstr[8]; -static QString Sdata_DcUidStr; - - -void write2file_UID(void) -{ - QByteArray myBA; - csv_startCreatingFile(); - csv_addUintToFile(Sdata_UIDstr[0]); - csv_addUintToFile(Sdata_UIDstr[1]); - csv_addUintToFile(Sdata_UIDstr[2]); - csv_addUintToFile(Sdata_UIDstr[3]); - csv_addUintToFile(Sdata_UIDstr[4]); - csv_addUintToFile(Sdata_UIDstr[5]); - csv_addUintToFile(Sdata_UIDstr[6]); - csv_addUintToFile(Sdata_UIDstr[7]); - csv_addNewlineToFile(); - csv_addUlongvalToFile(Sdata_slaveUID); - csv_addNewlineToFile(); - csv_addTextToFile(Sdata_DcUidStr); - csv_addNewlineToFile(); - myBA=csv_readbackArray(); - datei_clearFile(FILENAME_SHARED_UID); - datei_writeToFile(FILENAME_SHARED_UID, myBA); - -} - -void gpi_storeUID(uint8_t *buf8byteUid) -{ - uint64_t udltmp=0; - QString myStr; - - //qDebug()<< "store UID "; - - for (int ii=0; ii<8; ii++) - { - //qDebug()<< buf8byteUid[ii] << " "; - - Sdata_UIDstr[ii]=buf8byteUid[ii]; - udltmp|=buf8byteUid[ii]; - udltmp<<=8; - } - Sdata_slaveUID=udltmp; - - Sdata_DcUidStr.clear(); - for (int ii=0;ii<8; ii++) - { - - Sdata_DcUidStr+=QString::number(Sdata_UIDstr[ii],16); - Sdata_DcUidStr+=" "; - } - - write2file_UID(); -} - -void epi_getUIDdec(uint8_t *buf8byteUid) -{ -//qDebug()<< "get UID "; - for (int ii=0; ii<8; ii++) - { - //qDebug()< umformen in hexstring - - QString myStr; - for (int ii=0;ii<8; ii++) - { - - myStr+=QString::number(Sdata_UIDstr[ii],16); - myStr+=" "; - } - return myStr; -} -*/ - -/* read from file: -void epi_getUIDfromFile(uint8_t *buf8byteUid) -{ - QByteArray myBA; - int nn; - - myBA=datei_readFromFile(FILENAME_SHARED_UID); - for (nn=0; nn<8; nn++) - buf8byteUid[nn]=csv_getEntryAsUshort(myBA, nn); - -} - -uint64_t epi_getUIDnumberFromFile(void) -{ - QByteArray myBA; - - myBA=datei_readFromFile(FILENAME_SHARED_UID); - return csv_getEntryAs2Ulong(myBA, 8); - -} - -QString epi_getUIDstrFromFile(void) -{ - QByteArray myBA; - - myBA=datei_readFromFile(FILENAME_SHARED_UID); - return csv_getEntryAsString(myBA, 9); - -} -*/ - -// the same with shared memory : -void gpi_storeUID(uint8_t const *buf8byteUid) -{ - uint64_t udltmp=0; - - for (int ii=0; ii<8; ii++) - { -// SharedMem::getData()->Sdata.UIDstr[ii] = buf8byteUid[ii]; - SharedMem::write()->Sdata.UIDstr[ii] = buf8byteUid[ii]; - udltmp |= buf8byteUid[ii]; - udltmp <<= 8; - } -// SharedMem::getData()->Sdata.slaveUID = udltmp; - SharedMem::write()->Sdata.slaveUID = udltmp; -} - -void epi_getUIDdec(uint8_t *buf8byteUid) -{ - for (int ii=0; ii<8; ii++) - { - //buf8byteUid[ii] = SharedMem::getDataConst()->Sdata.UIDstr[ii]; - buf8byteUid[ii] = SharedMem::read()->Sdata.UIDstr[ii]; - } -} - -QString epi_getUIDstr() -{ - // die UID besteht aus 8 bytes (8 dezimalzahlen) - // -> umformen in hexstring - - QString myStr; - for (int ii=0;ii<8; ii++) - { - //myStr += QString::number(SharedMem::getDataConst()->Sdata.UIDstr[ii], 16); - myStr += QString::number(SharedMem::read()->Sdata.UIDstr[ii], 16); - myStr += " "; - } - return myStr; -} - -// /////////////////////////////////////////////////////////////////////////////////// -// Time and Date -// /////////////////////////////////////////////////////////////////////////////////// -/* -struct T_globTime -{ - // Reihenfolge nicht vertauschen!!!!! - uint8_t hour; - uint8_t minute; - uint8_t second; - uint8_t Year; - uint8_t Month; - uint8_t DayOfMonth; - uint8_t DayOfWeek; // 1=monday...7 - uint8_t reserve1; - - uint16_t MinutesOfToday; - uint16_t reserve2; - - uint32_t SecondsOfToday; - - uint8_t IsLeapyear; - uint8_t nextLeap; - uint8_t lastLeap; - uint8_t hoursOfWeek; - - uint16_t minOfWeek; - uint16_t hoursOfMonth; - uint16_t minOfMonth; - uint16_t dayOfYear; - uint16_t hoursOfYear; - uint16_t reserve3; - - uint32_t minOfYear; - - uint8_t squareOutMode; - uint8_t free1; - uint16_t reserve4; - uint32_t minOfMillenium; - // bis hierher 44byts - uint32_t free2; - uint32_t free3; - uint32_t free4; - -}; -static T_globTime getGlobalTime; -*/ - - -void gpi_backupSquareMode(uint8_t squMode) -{ - SharedMem::write()->getGlobalTime.squareOutMode=squMode; -} - -uint8_t epi_getSquareMode() -{ - return SharedMem::read()->getGlobalTime.squareOutMode; -} - - -void gpi_backupTime(uint8_t *timeBuffer, uint8_t Leng) -{ - /* - // Daten kommen in gleicher Reihenfolge vom Slave - uint8_t *pTime; - pTime=&getGlobalTime.hour; - if (Leng>44) Leng=44; // mehr brauch ma ned - for (int nn=0; nngetGlobalTime.second=Leng; // nur damit CompilerWarnung weg ist - - SharedMem::write()->getGlobalTime.DayOfWeek=timeBuffer[0]; - SharedMem::write()->getGlobalTime.minute=timeBuffer[1]; - SharedMem::write()->getGlobalTime.second=timeBuffer[2]; - SharedMem::write()->getGlobalTime.hour=timeBuffer[3]; - SharedMem::write()->getGlobalTime.Year=timeBuffer[4]; - SharedMem::write()->getGlobalTime.Month=timeBuffer[5]; - SharedMem::write()->getGlobalTime.DayOfMonth=timeBuffer[6]; - -} - -void epi_getTime(uint8_t *hh, uint8_t *mm, uint8_t *ss) -{ - *hh=SharedMem::read()->getGlobalTime.hour; - *mm=SharedMem::read()->getGlobalTime.minute; - *ss=SharedMem::read()->getGlobalTime.second; -} - -void epi_getDate(uint8_t *yy, uint8_t *mm, uint8_t *dd) -{ - *yy=SharedMem::read()->getGlobalTime.Year; - *mm=SharedMem::read()->getGlobalTime.Month; - *dd=SharedMem::read()->getGlobalTime.DayOfMonth; -} - -void epi_getToday(uint8_t *dow, uint16_t *minOfToday, uint32_t *secOfToday) -{ - *dow=SharedMem::read()->getGlobalTime.DayOfWeek; - *minOfToday=SharedMem::read()->getGlobalTime.MinutesOfToday; - *secOfToday=SharedMem::read()->getGlobalTime.SecondsOfToday; -} - -bool epi_isLeapYear(uint8_t *lastLeapYear, uint8_t *NextLeapYear) -{ - *lastLeapYear=SharedMem::read()->getGlobalTime.lastLeap; - *NextLeapYear=SharedMem::read()->getGlobalTime.nextLeap; - if (SharedMem::read()->getGlobalTime.IsLeapyear) - return true; - return false; -} - -bool epi_isLeapYear() -{ - if (SharedMem::read()->getGlobalTime.IsLeapyear) - return true; - return false; -} - -void epi_getSpecialWeekTimeDate(uint8_t *DayOfWeek, uint8_t *HoursOfWeek, uint16_t *MinutesOfWeek) -{ - *DayOfWeek=SharedMem::read()->getGlobalTime.DayOfWeek; - *HoursOfWeek=SharedMem::read()->getGlobalTime.hoursOfWeek; - *MinutesOfWeek=SharedMem::read()->getGlobalTime.minOfWeek; -} - -void epi_getSpecialMonthTimeDate(uint8_t *DayOfMonth, uint16_t *HoursOfMonth, uint16_t *MinutesOfMonth) -{ - *DayOfMonth=SharedMem::read()->getGlobalTime.DayOfMonth; - *HoursOfMonth=SharedMem::read()->getGlobalTime.hoursOfMonth; - *MinutesOfMonth=SharedMem::read()->getGlobalTime.minOfMonth; -} - -void epi_getSpecialYearTimeDate(uint16_t *DayOfYear, uint16_t *HoursOfYear, uint32_t *MinutesOfYear) -{ - *DayOfYear=SharedMem::read()->getGlobalTime.dayOfYear; - *HoursOfYear=SharedMem::read()->getGlobalTime.hoursOfYear; - *MinutesOfYear=SharedMem::read()->getGlobalTime.minOfYear; -} - -QString epi_getRtcTimeStr(uint8_t timeStyle) -{ - // style: 0: hh:mm 1: hh:mm:ss - QString mystr=nullptr, tempStr=nullptr; - - tempStr.setNum(SharedMem::read()->getGlobalTime.hour,10); - mystr=tempStr.rightJustified(2,'0',false); // macht feste Länge, 5->05 - mystr.append(':'); - //tempStr.clear(); - tempStr.setNum(SharedMem::read()->getGlobalTime.minute,10); // mit 16 statt 10 wirds in HEX angezeigt - //mystr.append(tempStr); - mystr+=tempStr.rightJustified(2,'0',false); - //mystr.append(':'); // so - //mystr+=':'; // oder so, =gleich - - if (timeStyle==1) // hh:mm:ss - { - mystr.append(':'); - tempStr.setNum(SharedMem::read()->getGlobalTime.second,10); - mystr.append(tempStr.rightJustified(2,'0',false)); // wie += - } - return mystr; -} - - -QString epi_getRtcDateStr(uint8_t dateStyle) -{ - // 1=german dd.mm.yy 2=american yy/mm/dd 3=mm.dd.yy - QString tmpStr=nullptr, YYstr=nullptr, MMstr=nullptr, DDstr=nullptr, mystr=nullptr; - mystr.clear(); - - tmpStr.setNum(SharedMem::read()->getGlobalTime.Year,10); // itoa decimal - YYstr=tmpStr.rightJustified(4,'0',false); // immer vierstellig - YYstr[0]='2'; // 2000 dazu - - tmpStr.setNum(SharedMem::read()->getGlobalTime.Month,10); - MMstr=tmpStr.rightJustified(2,'0',false); - - tmpStr.setNum(SharedMem::read()->getGlobalTime.DayOfMonth,10); - DDstr=tmpStr.rightJustified(2,'0',false); - - if (dateStyle==1) // Germany dd.mm.yy - { - mystr=DDstr + '.' + MMstr + '.' + YYstr; - } else - if (dateStyle==2) // american yy/mm/dd - { - mystr=YYstr + '/' + MMstr + '/' + DDstr; - } else - // mm.dd.yy - { - mystr=MMstr + '.' + DDstr + '.' + YYstr; - } - return mystr; -} - - -QString epi_getSlaveTimeDateStr() -{ - QString myStr; - myStr=epi_getRtcTimeStr(1) + " " + epi_getRtcDateStr(1); - return myStr; - -} - - -// /////////////////////////////////////////////////////////////////////////////////// -// analog values -// /////////////////////////////////////////////////////////////////////////////////// - - -//static uint16_t AI_val[MAXNROF_AI]; - -uint8_t gpi_getMaxNrAIs() -{ - return MAXNROF_AI; -} - -void gpi_storeAIs(uint8_t aiNr, uint16_t val) -{ - if (aiNrAI_val[aiNr]=val; -} - -uint16_t epi_loadAIs(uint8_t aiNr) -{ - if (aiNrAI_val[aiNr]; - return 0; -} - - -//-------------- -// measurement values -// ADC0: temp -// 1: voltage -// 2: brightness -#define MAXNROF_MEASURE 4 - -//static uint32_t Sdata_measurement[MAXNROF_MEASURE]; - -uint32_t epi_loadMeasureValue(uint8_t ValueNr) -{ - // ValueNr 0=ADC0, 1=ADC1 aso... - if (ValueNrSdata_measurement[ValueNr]; - return 0; -} - -void gpi_storeMeasureValue(uint8_t ValueNr, uint32_t val) -{ - // in mV, also bis 65,535V - if (ValueNrSdata_measurement[ValueNr]=val; - -} - - - -QString epi_getSlaveTemperatureStr() -{ - char myStr[8], halfDegree=0, Minus=0, oneChar; - int16_t val=0, pp, einer, zehner; - QString myqStr; - - //qDebug() << "AIN0: " << epi_loadAIs(0) << "AIN1: " << epi_loadAIs(1); - - uint32_t meas_temper=epi_loadMeasureValue(MEASCHAN_TEMPERATURE); - // im SaxFormat gespeichert, hier umwandeln in String - - //qDebug() << "meas_temper: " << meas_temper; - - - for (pp=0; pp<8; pp++) myStr[pp]=0; - if (meas_temper&1) // ungerade, also ,5°C - { - halfDegree=1; - meas_temper &=0xFFFE; // um 0,5°C abrunden - } - if (meas_temper<100) - { - Minus=1; - val=int16_t(meas_temper)/2; - val-=50; - } else - { - val=int16_t(meas_temper)-100; - val/=2; - } - pp=0; // pointer auf string - if (Minus) - myStr[pp++]='-'; - // val is now 0..150 for pos Temp or 0..49 for negativ temperature - if (val<10) - { - // only one digit, just change to ascii - oneChar = char(val)+0x30; - if (tslib_isDecAsciiNumber(oneChar)) - myStr[pp++]=oneChar; - else - myStr[pp++]='0'; - } else - if (val<100) - { - // 10...99 - einer=val%10; - zehner=val/10; - //myStr[pp++]=char(zehner); - //myStr[pp++]=char(einer); - - oneChar = char(zehner)+0x30; - if (tslib_isDecAsciiNumber(oneChar)) - myStr[pp++]=oneChar; - else - myStr[pp++]='0'; - - oneChar = char(einer)+0x30; - if (tslib_isDecAsciiNumber(oneChar)) - myStr[pp++]=oneChar; - else - myStr[pp++]='0'; - - } else - { - // 100...150 - myStr[pp++]='1'; // hunderter Stelle immer 1 - val-=100; - einer=val%10; - zehner=val/10; - //myStr[pp++]=char(zehner)+0x30; - //myStr[pp++]=char(einer)+0x30; - oneChar = char(zehner)+0x30; - if (tslib_isDecAsciiNumber(oneChar)) - myStr[pp++]=oneChar; - else - myStr[pp++]='0'; - - oneChar = char(einer)+0x30; - if (tslib_isDecAsciiNumber(oneChar)) - myStr[pp++]=oneChar; - else - myStr[pp++]='0'; - } - myStr[pp++]=','; - if (halfDegree) - myStr[pp++]='5'; - else - myStr[pp++]='0'; - myqStr.clear(); - myqStr.append(myStr); - myqStr.append("°C"); - return myqStr; -} - -QString epi_getSlaveVoltageStr() -{ - // value in "meas_volt" in mV, also bis 65,535V. Value range [6000...16000] (6V...16V) - QString myqStr; - uint32_t vor, nach, tmp32; - uint16_t pp; - char myStr[12], ke; //, kz, kh; - - uint32_t ultmp=epi_loadMeasureValue(MEASCHAN_VOLTAGE); - for (pp=0; pp<12; pp++) myStr[pp]=0; - - //qDebug() << ultmp << "mV"; - - myqStr.clear(); - vor=ultmp/1000; - //qDebug() << "vor: " << vor; - - nach=ultmp%1000; - //qDebug() << "nach: " << nach; - pp=0; - if (vor>9) - { - myStr[pp++]=char(vor/10)+0x30; - } - myStr[pp++]=char(vor%10)+0x30; - myStr[pp++]=','; - - ke=char(nach/100); - //qDebug() << "ke: " << ke; - myStr[pp++]=char(ke)+0x30; - - tmp32=nach%100; - ke=char(tmp32/10); - //qDebug() << "ke: " << ke; - myStr[pp++]=char(ke)+0x30; - - tmp32=nach%10; - ke=char(tmp32); - //qDebug() << "ke: " << ke; - myStr[pp++]=char(ke)+0x30; - - - myStr[pp++]='V'; - myqStr.append(myStr); - return myqStr; -} - - - -// /////////////////////////////////////////////////////////////////////////////////// -// digital inputs -// /////////////////////////////////////////////////////////////////////////////////// - -/* come all in with 0x1201: -D0: upper door D1: low door D2:vault door -D3: cash box D4: bill box in -D5: bit 0: upper lockbar up bit1:down -D6: bit 0: lower lockbar up bit1:down - -D7: 0 -D7: DI_contact Power Is On - -D8: OptoIn 1,2 -D9: Aux0...5 -D10:Wake from ptu -D11: DI Wake From Mdb -D12: Ready from printer -D13: Coin Shutter Input -D14: CoinEscrow switch -D15: Mifare IN -D16: Modem_Wake In - -D18: DI Mif Pwr is on -D19: DI MDB_TxD_rdBack -D20: DI Aux Pwr is on -D21: DI GSM Pwr from PO2 is ON -D22: DI Credit Pwr from PO2 is on - =DI RdBack Credit Wake -D23: DI Printer Pwr from PO2 is on -D24: DI MDB Pwr from PO2 is on - */ - -//static uint8_t di_doorSwitch; -void gpi_storeDI_doorSwitches(uint8_t upperDoor, uint8_t lowerDoor, uint8_t vaultDoor) -{ - SharedMem::write()->di_doorSwitch=0; - if (upperDoor) SharedMem::write()->di_doorSwitch |=1; - if (lowerDoor) SharedMem::write()->di_doorSwitch |=2; - if (vaultDoor) SharedMem::write()->di_doorSwitch |=4; -// qDebug()<<"storeINdata: "<di_doorSwitch; -} - - -//static uint8_t di_vaultSwitch; -void gpi_storeDI_vaultSwitches(uint8_t CashBoxIn, uint8_t BillBoxIn) -{ - SharedMem::write()->di_vaultSwitch=0; - if (CashBoxIn) SharedMem::write()->di_vaultSwitch |=1; - if (BillBoxIn) SharedMem::write()->di_vaultSwitch |=2; -} - -uint8_t epi_getDI_vaultSwitches(void) -{ - // bit0: cash box 1: bill box in - return SharedMem::read()->di_vaultSwitch; -} - - -//static uint8_t di_lockSwitch; -void gpi_storeDI_lockSwitches(uint8_t indatUL, uint8_t indatLL) -{ - // D5: bit 0: upper lockbar up bit1:down - // D6: bit 0: lower lockbar up bit1:down - SharedMem::write()->di_lockSwitch=0; - if (indatUL & 1) SharedMem::write()->di_lockSwitch |=1; - if (indatUL & 2) SharedMem::write()->di_lockSwitch |=2; - if (indatLL & 1) SharedMem::write()->di_lockSwitch |=4; - if (indatLL & 2) SharedMem::write()->di_lockSwitch |=8; -} - -uint8_t epi_getDI_lockSwitches(void) -{ - // retval: bit 0: upper lockbar up bit1: upper lockbar is down - // bit 2: lower lockbar up bit1: lower lockbar is down - - return SharedMem::read()->di_lockSwitch; -} - -//static uint8_t di_opto; -void gpi_storeDI_optos(uint8_t indatOpto) -{ - // OptoIn bit 0,1: optoin 1,2 - SharedMem::write()->di_opto=0; - if (indatOpto & 1) SharedMem::write()->di_opto |=1; - if (indatOpto & 2) SharedMem::write()->di_opto |=2; - -} - -uint8_t epi_getDI_optos(void) -{ - // bit0: opto in 1 1: opto in 2 - return SharedMem::read()->di_opto; -} - - -//static uint8_t di_aux; -void gpi_storeDI_auxIn(uint8_t indatAuxIn) -{ - // Aux0...5 - SharedMem::write()->di_aux=indatAuxIn; -} - -uint8_t epi_getDI_auxIn(void) -{ - // bit0: auxin 1 ... 5: auxin 6 - return SharedMem::read()->di_aux; -} - - -//static bool di_wakeFromPtu; -void gpi_storeDI_ptuWake(uint8_t indat) -{ - if (indat) - SharedMem::write()->di_wakeFromPtu=true; - else - SharedMem::write()->di_wakeFromPtu=false; -} - -bool epi_getDI_ptuWake(void) -{ - return SharedMem::read()->di_wakeFromPtu; -} - - -//static bool di_wakeFromMdb; -void gpi_storeDI_mbdWake(uint8_t indat) -{ - if (indat) - SharedMem::write()->di_wakeFromMdb=true; - else - SharedMem::write()->di_wakeFromMdb=false; -} - -bool epi_getDI_mdbWake(void) -{ - return SharedMem::read()->di_wakeFromMdb; -} - - -//static bool di_PrnReady; -void gpi_storeDI_prnReady(uint8_t indat) -{ - if (indat) - SharedMem::write()->di_PrnReady=true; - else - SharedMem::write()->di_PrnReady=false; -} - -bool epi_getDI_prnReady(void) -{ - return SharedMem::read()->di_PrnReady; -} - - -//static bool di_CoinAttach; -void gpi_storeDI_CoinAttach(uint8_t indat) -{ - if (indat) - SharedMem::write()->di_CoinAttach=true; - else - SharedMem::write()->di_CoinAttach=false; -} - -bool epi_getDI_CoinAttach(void) -{ - return SharedMem::read()->di_CoinAttach; -} - -//static bool di_CoinEscrowOpen; -void gpi_storeDI_CoinEscrow(uint8_t indat) -{ - if (indat) - SharedMem::write()->di_CoinEscrowOpen=true; - else - SharedMem::write()->di_CoinEscrowOpen=false; -} - -bool epi_getDI_CoinEscrow(void) -{ - return SharedMem::read()->di_CoinEscrowOpen; -} - - -//static bool di_mifCardTap; -void gpi_storeDI_mifareCardTapped(uint8_t indat) -{ - if (indat) - SharedMem::write()->di_mifCardTap=true; - else - SharedMem::write()->di_mifCardTap=false; -} - -bool epi_getDI_mifareCardTapped(void) -{ - return SharedMem::read()->di_mifCardTap; -} - - -//static bool di_wakeFromModem; -void gpi_storeDI_modemWake(uint8_t indat) -{ - if (indat) - SharedMem::write()->di_wakeFromModem=true; - else - SharedMem::write()->di_wakeFromModem=false; -} - -bool epi_getDI_modemWake(void) -{ - return SharedMem::read()->di_wakeFromModem; -} - - - -//static bool di_contactPwrOn; - -void gpi_storeDI_contactPowerIsOn(bool di_contact_PwrOn) -{ - SharedMem::write()->di_contactPwrOn=di_contact_PwrOn; -} - -bool epi_getDI_contactPwr(void) -{ - // invertiert! - if (SharedMem::read()->di_contactPwrOn) - return false; - return true; -} - -//static bool di_mifarePwrOn; - -void gpi_storeDI_MifarePowerIsOn(bool di_mifare_PwrOn) -{ - SharedMem::write()->di_mifarePwrOn=di_mifare_PwrOn; -} - -bool epi_getDI_mifarePwr(void) -{ - return SharedMem::read()->di_mifarePwrOn; -} - -//static bool di_rdbk_mdbTxd; - -void gpi_storeDI_readbackMdbTxD(bool di_rdbkMdbTxd) -{ - SharedMem::write()->di_rdbk_mdbTxd=di_rdbkMdbTxd; -} - -bool epi_getDI_mdbTxd(void) -{ - return SharedMem::read()->di_rdbk_mdbTxd; -} - -//static bool di_AuxPwrOn; - -void gpi_storeDI_AuxPowerIsOn(bool di_Aux_PwrOn) -{ - SharedMem::write()->di_AuxPwrOn=di_Aux_PwrOn; -} - -bool epi_getDI_auxPwr(void) -{ - return SharedMem::read()->di_AuxPwrOn; -} - -//static bool di_gsmPwrOn; - -void gpi_storeDI_GsmPowerIsOn(bool di_gsm_PwrOn) -{ - SharedMem::write()->di_gsmPwrOn=di_gsm_PwrOn; -} - -bool epi_getDI_gsmPwr(void) -{ - return SharedMem::read()->di_gsmPwrOn; -} - -//static bool di_creditPwrOn; - -void gpi_storeDI_CreditPowerIsOn(bool di_credit_PwrOn) -{ - // invertieren!!! - if (di_credit_PwrOn) - SharedMem::write()->di_creditPwrOn=0; - else - SharedMem::write()->di_creditPwrOn=1; -} - -bool epi_getDI_creditPwr(void) -{ - return SharedMem::read()->di_creditPwrOn; -} - -//static bool di_printerPwrOn; - -void gpi_storeDI_PrinterPowerIsOn(bool di_printer_PwrOn) -{ - SharedMem::write()->di_printerPwrOn=di_printer_PwrOn; -} - -bool epi_getDI_printerPwr(void) -{ - return SharedMem::read()->di_printerPwrOn; -} - -//static bool di_mdbPwrOn; - -void gpi_storeDI_MdbPowerIsOn(bool di_mdb_PwrOn) -{ - SharedMem::write()->di_mdbPwrOn=di_mdb_PwrOn; -} - -bool epi_getDI_mdbPwr(void) -{ - return SharedMem::read()->di_mdbPwrOn; -} - -//static bool di_rejMot_home; - -void gpi_storeDI_rejMot_home(bool di) -{ - SharedMem::write()->di_rejMot_home=di; -} - -bool epi_getDI_rejectMotor_homepos(void) -{ - return SharedMem::read()->di_rejMot_home; -} - -//static uint8_t di_npe_sensor; - -void gpi_storeDI_paperLow(uint8_t di) -{ - // 0: Sensor sees paper 1: no paper 99: off - SharedMem::write()->di_npe_sensor=di; -} - -uint8_t epi_getDI_npe_sensor(void) -{ - return SharedMem::read()->di_npe_sensor; -} - - - -// /////////////////////////////////////////////////////////////////////////////////// -// readaback digital outputs -// /////////////////////////////////////////////////////////////////////////////////// - - -/* -D0 bit0: MDB devices 0=off 1=on - bit1: MDB bus power - bit2: MDB WakeOut - -D1=Printer -D2=Credit -D3=Modem - -D5: serial drv on/off, Serial mux1, Serial mux2 -D6: Leds, Fan, -D7: Siren and relay -D8: PtuWakeOut -D9: Power Aux/Barcode -D10: AuxDir 1...6 -D11: AuxOut 1...6 -D12: Coin shutter output -D13: CoinEscrow Outputs -*/ - -//static uint8_t do_mbdRxTst; -void gpi_storeDO_mdbRxTst(uint8_t mdbRxTst) -{ - SharedMem::write()->do_mbdRxTst=mdbRxTst; -} - -bool epi_getDO_mdbRxTestOut(void) -{ - if (SharedMem::read()->do_mbdRxTst & 1) - return true; - return false; -} - -//static uint8_t do_motorBits; -void gpi_storeDO_motorOutputs(uint8_t Pwr) -{ - //D1: motor outputs bit0: upper lock forw bit 1 backw - // Bit2: lowLock forw bit3: LL backw - SharedMem::write()->do_motorBits=Pwr; -} - -uint8_t epi_getDO_motorOuts(void) -{ - // bit0: upper lock forward bit 1 backward - // bit2: lower lock forward bit 3 backward - return SharedMem::read()->do_motorBits; -} - - - -//static uint8_t do_serialSwitch; // serial drv on/off, Serial mux1, Serial mux2 -void gpi_storeDO_serialSwitch(uint8_t state) // serial drv on/off, Serial mux1, Serial mux2 -{ - SharedMem::write()->do_serialSwitch=state; -} - -uint8_t epi_getDO_serialSwitch(void) -{ - // serial drv on/off, Serial mux1, Serial mux2 - return SharedMem::read()->do_serialSwitch; -} - -bool epi_getDO_serialDriverIsOn(void) -{ - - if ( SharedMem::read()->do_serialSwitch & 1) - return true; - return false; -} - -bool epi_getDO_serialMux1isSetToPrinter(void) -{ - // mux1 off: serial is switched to printer - if ((SharedMem::read()->do_serialSwitch & 2)==0) - return true; - return false; -} - -bool epi_getDO_serialMux1isSetToModem(void) -{ - // mux1 on: serial is switched to modem - if ((SharedMem::read()->do_serialSwitch & 2)>0) - return true; - return false; -} - -bool epi_getDO_serialMux2isSetToCredit(void) -{ - // mux2 off: serial is switched to credit card terminal - if ((SharedMem::read()->do_serialSwitch & 4)==0) - return true; - return false; -} - -bool epi_getDO_serialMux2isSetToMifare(void) -{ - // mux2 on: serial is switched to mifare reader - if ((SharedMem::read()->do_serialSwitch & 4)>0) - return true; - return false; -} - - - - - - -//static uint8_t do_ledsAndFan; -void gpi_storeDO_ledsAndFan(uint8_t ledState) -{ - // bit0: coinled 1:front_illu 2: paper-led 3:pinpad-led 4:start-led 5:service-led 6:fan - SharedMem::write()->do_ledsAndFan=ledState; -} - -bool epi_getDO_led_coin(void) -{ - if (SharedMem::read()->do_ledsAndFan & 1) - return true; - return false; -} - -bool epi_getDO_led_front(void) -{ - if (SharedMem::read()->do_ledsAndFan & 2) - return true; - return false; -} - -bool epi_getDO_led_ticket(void) -{ - if (SharedMem::read()->do_ledsAndFan & 4) - return true; - return false; -} - -bool epi_getDO_led_pin(void) -{ - if (SharedMem::read()->do_ledsAndFan & 8) - return true; - return false; -} - -bool epi_getDO_led_start(void) -{ - if (SharedMem::read()->do_ledsAndFan & 16) - return true; - return false; -} - -bool epi_getDO_led_inside(void) -{ - if (SharedMem::read()->do_ledsAndFan & 32) - return true; - return false; -} - -bool epi_getDO_fan(void) -{ - if (SharedMem::read()->do_ledsAndFan & 64) - return true; - return false; -} - - - -//static uint8_t do_laermUndRelay; -void gpi_storeDO_sirenAndRelay(uint8_t sirenRelay) -{ - // bit0: siren 1:relay - SharedMem::write()->do_laermUndRelay=sirenRelay; -} - -bool epi_getDO_sirene(void) -{ - if (SharedMem::read()->do_laermUndRelay & 1) - return true; - return false; -} - -bool epi_getDO_relay(void) -{ - if (SharedMem::read()->do_laermUndRelay & 2) - return true; - return false; -} - - - -//static uint8_t do_ptuWake; -void gpi_storeDO_ptuWake(uint8_t state) -{ - SharedMem::write()->do_ptuWake=state; -} - -bool epi_getDO_ptuWake(void) -{ - if (SharedMem::read()->do_ptuWake>0) - return true; - return false; -} - -//static uint8_t do_auxPower; -void gpi_storeDO_auxPower(uint8_t pwr) -{ - SharedMem::write()->do_auxPower=pwr; -} - -bool epi_getDO_auxPower(void) -{ - if (SharedMem::read()->do_auxPower>0) - return true; - return false; -} - - - -//static uint8_t do_coinShutter; -void gpi_storeDO_coinShutter(uint8_t state) -{ - SharedMem::write()->do_coinShutter=state; -} - -bool epi_getDO_coinShutterOpen(void) -{ - // bit0: Coin shutter output, bit1: input-test-output - if (SharedMem::read()->do_coinShutter & 1) - return true; - return false; -} - -bool epi_getDO_coinShutterTest(void) -{ - // bit0: Coin shutter output, bit1: input-test-output - if (SharedMem::read()->do_coinShutter & 2) - return true; - return false; -} - -//static uint8_t do_coinEscrow; - -void gpi_storeDO_coinEscrow(uint8_t state) -{ - SharedMem::write()->do_coinEscrow=state; -} - -uint8_t epi_getDO_coinEscrow(void) -{ - // retval: 1:return flap is open 2:take flap is open 0:closed - if (SharedMem::read()->do_coinEscrow &1) - return 1; // return flap is open - if (SharedMem::read()->do_coinEscrow &2) - return 2; // take flap is open - return 0; -} - -//static uint8_t do_printerPower; - -void gpi_storeDO_printerPwrOn(uint8_t state) -{ - SharedMem::write()->do_printerPower=state; -} - -uint8_t epi_getDO_printerPwr(void) -{ - return SharedMem::read()->do_printerPower; -} - -//------------------------------------------------------------------------------------ -//------------------------------------------------------------------------------------ -//----------------------------- Mifare Card Reader ----------------------------------- - -//#define NROFMIFSTATEBYTES 40 -//static uint8_t Sdata_MIF_STATE[NROFMIFSTATEBYTES]; - -uint8_t gpi_storeMifReaderStateAndCardType(uint8_t *buf) -{ - // retval 0=OK 1=error host buffer too small - for (uint8_t nn=0; nnSdata_MIF_STATE[nn]=0; - for (uint8_t nn=0; nn<8; nn++) - SharedMem::write()->Sdata_MIF_STATE[nn]=buf[nn]; - return 0; // OK -} - -/* data description: - -new fast version: -byte 0= still the same: current read state: - 0=power off 1=reader-fault 2=ready - 3=just reading 4=read complete - 5=read partial, removed too early - 6=state unknown - -byte 1: reader state 1=ok 0=nok -byte 2: card preent (0,1) -byte 3: card selected (0) -byte 4: card type: 0...5 -byte 5: card allowed (0=no 1=MifareClassic 1k or 4k) -byte 6: CardSize: 1 or 4 (kB) -byte 7: length of UID 4 or 7 (byte) - - -old long version -byte 0: current read state: 0=power off 1=reader-fault 2=ready - 3=just reading 4=read complete - 5=read partial, removed too early - 6=state unknown -byte 1,2: read data length from card -3: 1=reader is OK (reported serial nr is OK) 0=wrong or no reader -4...15: reader version, expected "SL025-1.8" -byte16: 1=card is present 0:not -17: 0 -18: card type reported from reader -19: 1=allowed card type 0=not -20: card size: 1 or 4 (dec) = card size -21: LengthOfUID: 4 or 7 (dec) (byte) -22: UID 8 byte in hex -byte 30: sector logged: 0 -byte 31: current sector: 0 -byte 32: result, always 0 -*/ - -uint8_t epi_restoreMifState(uint8_t *buf, uint8_t maxBufferSize) -{ - // HWapi can read States from DC - if (maxBufferSize<8) - return 1; // error - - for (uint8_t nn=0; nn<8; nn++) - buf[nn]=SharedMem::read()->Sdata_MIF_STATE[nn]; - return 0; // OK - -} - - - -//static uint8_t Sdata_MIF_DATA[12][64]; -// data come in blockwise, so safe them blockwise as well -void gpi_storeMifCardData(uint8_t blkNr, uint8_t *receivedData) -{ - if (blkNr<12) - { - for (uint8_t nn=0; nn<64; nn++) - SharedMem::write()->Sdata_MIF_DATA[blkNr][nn]=receivedData[nn]; - } - -} - -uint8_t epi_restoreMifData(uint8_t blkNr, uint8_t *buf, uint8_t maxBufferSize) -{ - if (blkNr>11 || maxBufferSize<64) - return 1; // error - - for (uint8_t nn=0; nn<64; nn++) - buf[nn]=SharedMem::read()->Sdata_MIF_DATA[blkNr][nn]; - - return 0; // ois OK -} - -//static uint8_t mif_cardType; -//static uint8_t mif_cardHolder[8]; - -void gpi_storeNewMifareCard(uint8_t typ, uint8_t *holder ) -{ - SharedMem::write()->mif_cardType=typ; - uint8_t nn; - - //tslib_strcpy(holder, SharedMem::write()->mif_cardHolder, 7); - for (nn=0; nn<7; nn++) - SharedMem::write()->mif_cardHolder[nn] = holder[nn]; - SharedMem::write()->mif_cardHolder[7]=0; -} - -uint8_t epi_mifGetCardType(uint8_t *holder) -{ - //holder[8] = name of card holder - // retval Type of MifareCard, 1=upper door, 2=lower door 3=test printer 4=test coins - - //tslib_strcpy(SharedMem::read()->mif_cardHolder, holder, 7); - - uint8_t nn; - - for (nn=0; nn<7; nn++) - holder[nn]= SharedMem::read()->mif_cardHolder[nn]; - holder[7]=0; - return SharedMem::read()->mif_cardType; -} - - -//------------------------------------------------------------------------------------ -//------------------------------------------------------------------------------------ - - -//static uint8_t Sdata_PRN_STATE[pi_prnStateArraySize]; - -void epi_restorePrinterState(uint8_t *buf) -{ - uint8_t nn; - - for (nn=0; nnSdata_PRN_STATE[nn]; - -} - -void gpi_storePrinterState(uint8_t *buf) -{ - uint8_t nn; - - for (nn=0; nnSdata_PRN_STATE[nn]=buf[nn]; - -} - -//static uint8_t Sdata_PRN_FONTS[pi_prnFontArraySize]; - -void epi_restorePrinterFonts(uint8_t *buf) -{ - uint8_t nn; - - for (nn=0; nnSdata_PRN_FONTS[nn]; - -} - -void gpi_storePrinterFonts(uint8_t *buf) -{ - uint8_t nn; - - for (nn=0; nnSdata_PRN_FONTS[nn]=buf[nn]; -/* - qDebug()<<"printer fonts stored " <Sdata_mdb_busRdy=bool(busReady); - SharedMem::write()->Sdata_mdb_V12on=bool(V12on); - SharedMem::write()->Sdata_mdb_V5on=bool(V5on); -} - -bool epi_restoreMdbBusReady(void) -{ - return SharedMem::read()->Sdata_mdb_busRdy; -} - -bool epi_restoreMdbV12Ready(void) -{ - return SharedMem::read()->Sdata_mdb_V12on; -} - -bool epi_restoreMdbV5Ready(void) -{ - return SharedMem::read()->Sdata_mdb_V5on; -} - - - -//static uint8_t Sdata_mdbNrOfRecData; -//static uint8_t Sdata_RecBuff[40]; - -// last received mdb answer (from mdb device) -// only needed if a special command was sent directly -// DB0: mdb Device-Nr -// DB1: last sent mdb command -// DB2: nr of received (payload) data bytes (apart from ACK, can be 0....34) -// DB3...DB38: rec.data (payload) -void gpi_storeMdbResponse(uint8_t leng, uint8_t *data) -{ - uint8_t nn; - if (leng>40) leng=40; - tslib_strclr(SharedMem::write()->Sdata_RecBuff,0,40); - SharedMem::write()->Sdata_mdbNrOfRecData=leng; - //tslib_strcpy(data, SharedMem::write()->Sdata_RecBuff, uint16_t(Sdata_mdbNrOfRecData)); - for (nn=0; nnSdata_RecBuff[nn] = data[nn]; - -} - -void epi_restoreMdbResponse(uint8_t *leng, uint8_t *data) -{ - uint8_t nn, LL; - LL=SharedMem::read()->Sdata_mdbNrOfRecData; - //tslib_strcpy(SharedMem::read()->Sdata_RecBuff, data, SharedMem::read()->Sdata_mdbNrOfRecData); - for (nn=0; nnSdata_RecBuff[nn]; - - *leng = LL; -} - - -//static uint8_t Sdata_empNrOfsettings; -//static uint8_t Sdata_emp_settingsBuff[66]; - -void gpi_storeEmpSettings(uint8_t leng, uint8_t *data) -{ - uint8_t nn; - if (leng>64) leng=64; - SharedMem::write()->Sdata_empNrOfsettings=leng; - //tslib_strcpy(data, SharedMem::write()->Sdata_emp_settingsBuff, leng); - for (nn=0; nnSdata_emp_settingsBuff[nn] = data[nn]; - -} - -void epi_restoreEmpSettings(uint8_t *leng, uint8_t *data) -{ - uint8_t nn, LL; - LL=SharedMem::read()->Sdata_empNrOfsettings; - *leng=LL; - //tslib_strcpy(SharedMem::read()->Sdata_emp_settingsBuff, data, SharedMem::read()->Sdata_empNrOfsettings); - for (nn=0; nnSdata_emp_settingsBuff[nn]; - - -} - - - - - -// ...................................................................... -// Münzbuffer[10]: Münze für Münze auslesen (LIFO) -// 4.5.21 - - -/* -struct T_coin -{ - uint8_t valid; - uint8_t signal; - uint8_t error; - uint8_t pad; - uint16_t value; -}; - -static struct T_coin gotCoin[MEMDEPTH_GOTCOINS]; -static uint8_t ctr_gotCoin; -*/ - -void sub_enterData(uint8_t valid, uint8_t signal, uint8_t error, uint16_t value ) -{ - uint8_t pGotCoin; - - pGotCoin=SharedMem::read()->ctr_gotCoin; - if (pGotCoingotCoin[pGotCoin].valid=valid; - SharedMem::write()->gotCoin[pGotCoin].signal=signal; - SharedMem::write()->gotCoin[pGotCoin].error=error; - SharedMem::write()->gotCoin[pGotCoin].value=value; - } - pGotCoin++; - SharedMem::write()->ctr_gotCoin=pGotCoin; - -} - -void gpi_storeEmpCoinSignal(uint8_t leng, uint8_t *data) -{ - // leng is number of coin record with 5 bytes each - uint8_t LL=leng; // nr of coin records - uint16_t vv, pp=0; - - vv=uchar2uint(data[pp+4], data[pp+3]); - sub_enterData(data[pp], data[pp+1], data[pp+2], vv ); - pp+=5; - LL--; - -} - -uint8_t epi_isNewCoinLeft(void) -{ - // retval: 0...16 coins left in FIFO - return SharedMem::read()->ctr_gotCoin; -} - -void epi_restoreEmpCoinSignal(uint8_t *valid, uint8_t *signal, uint8_t *error, uint16_t *value) -{ - uint8_t pGotCoin; - - pGotCoin=SharedMem::read()->ctr_gotCoin; - - pGotCoin--; - if (pGotCoingotCoin[pGotCoin].valid; - *signal=SharedMem::read()->gotCoin[pGotCoin].signal; - *error=SharedMem::read()->gotCoin[pGotCoin].error; - *value=SharedMem::read()->gotCoin[pGotCoin].value; - } - SharedMem::write()->ctr_gotCoin=pGotCoin; -} - - - -//static uint8_t Sdata_NrOfDeviceSetting; -//static uint8_t Sdata_DeviceSettingBuff[66]; - -void gpi_storeRbDeviceSettings(uint8_t leng, uint8_t *data) // getestet am 12.4.23TS -{ - uint8_t nn; - - if (leng>64) leng=64; - SharedMem::write()->Sdata_NrOfDeviceSetting=leng; - //tslib_strcpy(data, SharedMem::write()->Sdata_DeviceSettingBuff, leng); - for (nn=0; nnSdata_DeviceSettingBuff[nn] = data[nn]; - -} - -void epi_restoreRbDeviceSettings(uint8_t *leng, uint8_t *data) // getestet am 12.4.23TS -{ - uint8_t nn, LL; - LL=SharedMem::read()->Sdata_NrOfDeviceSetting; - - *leng=LL; - //tslib_strcpy(SharedMem::read()->Sdata_DeviceSettingBuff, data, SharedMem::read()->Sdata_NrOfDeviceSetting); - for (nn=0; nnSdata_DeviceSettingBuff[nn]; - -} - - - -/* -Beispiel: - -void gpi_storeUID(uint8_t const *buf8byteUid) -{ - uint64_t udltmp=0; - - for (int ii=0; ii<8; ii++) - { - SharedMem::getData()->Sdata.UIDstr[ii] = buf8byteUid[ii]; - udltmp |= buf8byteUid[ii]; - udltmp <<= 8; - } - SharedMem::getData()->Sdata.slaveUID = udltmp; -} - -void epi_getUIDdec(uint8_t *buf8byteUid) -{ - for (int ii=0; ii<8; ii++) - { - buf8byteUid[ii] = SharedMem::getDataConst()->Sdata.UIDstr[ii]; - } -} - -*/ - -//static uint8_t Sdata_NrOfMachineIDSetting; -//static uint8_t Sdata_NrOfMachineIDBuff[66]; - -void gpi_storeMachineIDsettings(uint8_t leng, uint8_t *data) -{ - uint8_t nn; - if (leng>64) leng=64; - //Sdata_NrOfMachineIDSetting=leng; - //tslib_strcpy(data, Sdata_NrOfMachineIDBuff, leng); - SharedMem::write()->SizeMachineIDBuff=leng; - - for (nn=0; nn<64; nn++) - SharedMem::write()->MachineIDBuff[nn]=data[nn]; - -} - -void epi_restoreMachineIDsettings(uint8_t *leng, uint8_t *data) -{ - - //*leng=Sdata_NrOfMachineIDSetting; - //tslib_strcpy(Sdata_NrOfMachineIDBuff, data, Sdata_NrOfMachineIDSetting); - uint8_t uctmp, nn; - - uctmp=SharedMem::read()->SizeMachineIDBuff; - *leng=uctmp; - for (nn=0; nn<64; nn++) - data[nn]=SharedMem::read()->MachineIDBuff[nn]; - -} - - - - -//static uint32_t store_insertedAmount; -//static uint16_t store_lastCoinType[64]; -//static uint16_t store_lastCoinValue[64]; -//static uint8_t p_lastCoin; -//static char store_curPayNewCoin; - -void epi_clearCurrentPayment(void) -{ - // call at beginning of coin collection - int nn; - - SharedMem::write()->store_insertedAmount=0; - SharedMem::write()->p_lastCoin=0; - - // 17.5.23TS: ergänzt: - for (nn=0; nn<64; nn++) - { - SharedMem::write()->store_lastCoinType[nn]=0; - SharedMem::write()->store_lastCoinValue[nn]=0; - } - SharedMem::write()->store_curPayNewCoin=0; -} - -void gpi_storeCurrentPayment(uint32_t insertedAmount, uint16_t lastCoinType, uint16_t lastCoinValue) -{ - uint8_t pLC=SharedMem::read()->p_lastCoin; - SharedMem::write()->store_insertedAmount=insertedAmount; - SharedMem::write()->store_lastCoinType[pLC]=lastCoinType; - SharedMem::write()->store_lastCoinValue[pLC]=lastCoinValue; - pLC++; - SharedMem::write()->p_lastCoin=pLC; - SharedMem::write()->store_curPayNewCoin++; -} - -uint32_t epi_CurrentPaymentGetAmount(void) -{ - return SharedMem::read()->store_insertedAmount; -} - -uint16_t epi_CurrentPaymentGetLastCoin(void) -{ - uint8_t pp; - - pp=SharedMem::read()->p_lastCoin; - if (pp==0) - return 0; // noch keine Münze erhalten - if (pp>0) pp--; - //store_curPayNewCoin=0; // nur 1x melden - return SharedMem::read()->store_lastCoinValue[pp]; -} - -bool epi_CurrentPaymentGetAllCoins(uint16_t *types, uint16_t *values) -{ - // alle bei diesem Verkauf eingeworfenen Münzen sind gespeichert falls die jmd. braucht - uint8_t nn; - uint8_t pp; - - pp=SharedMem::read()->p_lastCoin; - if (pp==0) - return false; - for (nn=0; nn<64; nn++) - { - types[nn]= SharedMem::read()->store_lastCoinType[nn]; - values[nn]=SharedMem::read()->store_lastCoinValue[nn]; - } - - return true; -} - - -//uint64_t stor_wakSrc; -//uint8_t stor_reason; - - -void gpi_storeWakeSources(uint8_t *receivedData) -{ - uint8_t uctmp; - int nn; - SharedMem::write()->stor_wakSrc=0; - for (nn=5; nn>=0; nn--) - { - uctmp=receivedData[nn]; - SharedMem::write()->stor_wakSrc |=uctmp; - SharedMem::write()->stor_wakSrc<<=8; - } - SharedMem::write()->stor_reason=receivedData[6]; -} - -uint64_t epi_getWakeSources(void) -{ - return SharedMem::read()->stor_wakSrc; -} - -uint8_t epi_getWakeReason(void) -{ - return SharedMem::read()->stor_reason; -} - - - -//static uint8_t store_rbDevParamLen; -//static uint8_t store_rbDevParams[66]; - -void gpi_storeExtendedTime(uint8_t leng, uint8_t *data) -{ - uint8_t nn; - if (leng>64) leng=64; - SharedMem::write()->store_rbDevParamLen=leng; - //tslib_strcpy(data, SharedMem::write()->store_rbDevParams, leng); - for (nn=0; nnstore_rbDevParams[nn] = data[nn]; -} - -void epi_restoreExtendedTime(uint8_t *leng, uint8_t *data) -{ - uint8_t nn, LL; - LL=SharedMem::read()->store_rbDevParamLen; - *leng=LL; - //tslib_strcpy(SharedMem::read()->store_rbDevParams, data, SharedMem::read()->store_rbDevParamLen); - for (nn=0; nnstore_rbDevParams[nn]; -} - - -// store device conditions -//static uint8_t store_deviceCondLen; -//static uint8_t store_deviceCond[66]; - -void gpi_storeDeviceConditions(uint8_t leng, uint8_t *data) -{ - uint8_t nn; - if (leng>64) leng=64; - SharedMem::write()->store_deviceCondLen=leng; - //tslib_strcpy(data, SharedMem::write()->store_deviceCond, leng); - for (nn=0; nnstore_deviceCond[nn]=data[nn]; -} - -void epi_restoreDeviceConditions(uint8_t *leng, uint8_t *data) -{ - uint8_t nn, LL; - LL=SharedMem::read()->store_deviceCondLen; - *leng=LL; - //tslib_strcpy(SharedMem::read()->store_deviceCond, data, SharedMem::read()->store_deviceCondLen); - for (nn=0; nnstore_deviceCond[nn]; -} - - - -// store dynamic machine conditions -//static uint8_t store_machCondLen; -//static uint8_t store_machCond[66]; - -void gpi_storeDynMachineConditions(uint8_t leng, uint8_t *data) -{ - uint8_t nn; - if (leng>64) leng=64; - SharedMem::write()->store_machCondLen=leng; -// tslib_strcpy(data, SharedMem::write()->store_machCond, leng); - for (nn=0; nnstore_machCond[nn] = data[nn]; - - } - -void epi_restoreDynMachineConditions(uint8_t *leng, uint8_t *data) -{ - uint8_t nn, LL; - LL=SharedMem::read()->store_machCondLen; - *leng=LL; - //tslib_strcpy(SharedMem::read()->store_machCond, data, SharedMem::read()->store_machCondLen); - for (nn=0; nnstore_machCond[nn]; -} - - - -//static uint8_t store_DcBackupNrOfAccNr; -//static uint16_t store_DcBackupAccNr[16]; // z.Z. nur 8 - -void gpi_storeDCbackupAccNr(uint8_t leng, uint8_t *data) -{ - if (leng>32) leng=32; - SharedMem::write()->store_DcBackupAccNr[0]=uchar2uint(data[1], data[0]); - SharedMem::write()->store_DcBackupAccNr[1]=uchar2uint(data[3], data[2]); - SharedMem::write()->store_DcBackupAccNr[2]=uchar2uint(data[5], data[4]); - SharedMem::write()->store_DcBackupAccNr[3]=uchar2uint(data[7], data[6]); - SharedMem::write()->store_DcBackupAccNr[4]=uchar2uint(data[9], data[8]); - SharedMem::write()->store_DcBackupAccNr[5]=uchar2uint(data[11], data[10]); - SharedMem::write()->store_DcBackupAccNr[6]=uchar2uint(data[13], data[12]); - SharedMem::write()->store_DcBackupAccNr[7]=uchar2uint(data[15], data[14]); - SharedMem::write()->store_DcBackupNrOfAccNr=8; -} - -void epi_restoreDCbackupAccNr(uint8_t *leng, uint16_t *accNrs) -{ - // return accNrs[0..7] - uint8_t nn; - - *leng=SharedMem::read()->store_DcBackupNrOfAccNr; - for (nn=0; nn<8; nn++) - accNrs[nn]=SharedMem::read()->store_DcBackupAccNr[nn]; - -} - - -//static uint8_t store_gotNrBlocksOfVaultRec; -//static uint8_t store_vaultrecord[360]; - -void epi_iniVRstorage(void) -{ - tslib_strclr(SharedMem::write()->store_vaultrecord, 0, 360); - SharedMem::write()->store_gotNrBlocksOfVaultRec=0; -} - -void gpi_storeVaultRecord(uint8_t blkNr, uint8_t *data ) -{ - uint16_t start=blkNr, ii; - - SharedMem::write()->store_gotNrBlocksOfVaultRec |= (1<store_vaultrecord[start+ii]=data[ii]; - -} - -bool epi_checkIfVaultRecordAvailable(void) -{ - if (SharedMem::read()->store_gotNrBlocksOfVaultRec==0x1F) - return true; - else - return false; -} - - -bool epi_restoreVaultRecord(uint16_t *length, uint8_t *buf ) -{ - uint16_t nn; - *length=0; - if (SharedMem::read()->store_gotNrBlocksOfVaultRec==0x1F) - { - *length=320; - //tslib_strcpy(store_vaultrecord, buf, 320); - for (nn=0; nn<320; nn++) - buf[nn] = SharedMem::read()->store_vaultrecord[nn]; - } else - return false; - - return true; -} - - -//static uint32_t store_amount; -//static uint16_t store_nrOfCoins; - -void gpi_storeCBlevel(uint32_t amount, uint16_t nrOfCoins ) -{ - SharedMem::write()->store_amount=amount; - SharedMem::write()->store_nrOfCoins=nrOfCoins; -} - -uint32_t epi_getCashBoxContent(void) -{ - return SharedMem::read()->store_amount; -} - -uint16_t epi_getNrOfCoinsInCashBox(void) -{ - return SharedMem::read()->store_nrOfCoins; -} - -//static bool store_DcDataAreValid; - -void gpi_storeDcDataValid(bool isVal) -{ - SharedMem::write()->store_DcDataAreValid = isVal; -} - - -bool epi_areDcDataValid() -{ - return SharedMem::read()->store_DcDataAreValid; -} - -// .................................................................................... -// 24.5.2023 - -//static uint8_t storeDCdynPrinterData[64]; -//static uint8_t DCdynPrinterDataActual; - - -/* -uint8_t nn, LL; - LL=SharedMem::read()->Sdata_mdbNrOfRecData; - //tslib_strcpy(SharedMem::read()->Sdata_RecBuff, data, SharedMem::read()->Sdata_mdbNrOfRecData); - for (nn=0; nnSdata_RecBuff[nn]; -*/ - -void epi_clearDynData(void) -{ - uint8_t nn; - SharedMem::write()->DCdynPrinterDataActual=0; - //memset(SharedMem::write()->storeDCdynPrinterData,0, sizeof(storeDCdynPrinterData)); - for (nn=0; nn<64; nn++) - SharedMem::write()->storeDCdynPrinterData[nn]=0; -} - -void gpi_storeDynData(uint8_t *DCdynDat) -{ - uint8_t nn; - // buffer size: 64 byte - //memcpy(SharedMem::write()->storeDCdynPrinterData, DCdynDat, 64); - SharedMem::write()->DCdynPrinterDataActual=1; - for (nn=0; nn<64; nn++) - SharedMem::write()->storeDCdynPrinterData[nn] = DCdynDat[nn]; -} - -bool epi_getDynPrnData(uint8_t *DCdynDat) -{ - // buffer size: 64 byte - // return true if data are new and valid - uint8_t nn; - if (SharedMem::read()->DCdynPrinterDataActual) - { - //memcpy(DCdynDat, SharedMem::read()->storeDCdynPrinterData, 64); - for (nn=0; nn<64; nn++) - DCdynDat[nn] = SharedMem::read()->storeDCdynPrinterData[nn]; - return true; - } else - { - return false; - } -} - - - - - -