From 7628ec0d5f0b7dcb5e90db104fa9744cc2c5c86f Mon Sep 17 00:00:00 2001 From: Thomas Date: Tue, 14 Nov 2023 08:45:05 +0100 Subject: [PATCH] remove unused file --- src/sendWRcmd sm.cpp | 811 ------------------------------------------- 1 file changed, 811 deletions(-) delete mode 100755 src/sendWRcmd sm.cpp diff --git a/src/sendWRcmd sm.cpp b/src/sendWRcmd sm.cpp deleted file mode 100755 index 4f226cc..0000000 --- a/src/sendWRcmd sm.cpp +++ /dev/null @@ -1,811 +0,0 @@ -#include -#include -#include -#include -#include "tslib.h" -#include "sendWRcmd.h" -#include "shared_mem_buffer.h" - - -void indat_PrnPwr(void); - - -void sendWRcmd_INI(void) -{ - - sendWRcmd_clrCmdStack(); - sendWRcmd_clrCmd4Stack(); - sendFDcmd_clrStack(); - -} - -// Command Stack for commands without parameters - - -//static uint16_t nextAsynchsendCmd0[CMDSTACKDEPTH]; -//static uint8_t nrOfCmdsInQueue; - -/* convention: use simple (not rotating) FIFO Stack: -Example: nrOfCmdsInQueue=4 then - nextAsynchsendCmd0[0]=cmd1 // was stored as first - nextAsynchsendCmd0[1]=cmd2 - nextAsynchsendCmd0[2]=cmd3 - nextAsynchsendCmd0[3]=cmd4 // came in as last - - Send: [0] first, then move buffer 1 down: - nextAsynchsendCmd0[0]=cmd2 - nextAsynchsendCmd0[1]=cmd3 - nextAsynchsendCmd0[2]=cmd4 - nextAsynchsendCmd0[3]=0; - nrOfCmdsInQueue=3 now -*/ - -void sendWRcmd_clrCmdStack(void) -{ - uint8_t nn; - for (nn=0; nnnextAsynchsendCmd0[nn]=0; - SharedMem::write()->nrOfCmdsInQueue=0; -} - -bool sendWRcmd_setSendCommand0(uint16_t nextCmd) -{ - // write Command to memory, wait for transport - uint8_t ciq=SharedMem::read()->nrOfCmdsInQueue; - if (ciq>=CMDSTACKDEPTH) - { - qDebug() << "cannot save cmd because stack is full"; - return false; // not possible - } - - SharedMem::write()->nextAsynchsendCmd0[ciq++]=nextCmd; - SharedMem::write()->nrOfCmdsInQueue=ciq; - - //qDebug() << "PI cmd queued:"<< nextCmd << ", saved, pp=" << nrOfCmdsInQueue; - return true; // ok, will be sent -} - -uint16_t sendWRcmd_getSendCommand0(void) -{ - uint16_t nxtAsynchCmd, data; - uint8_t nn, ll; - uint8_t ciq=SharedMem::read()->nrOfCmdsInQueue; - - if (ciq==0 || ciq>CMDSTACKDEPTH) - return 0; // error - nxtAsynchCmd=SharedMem::read()->nextAsynchsendCmd0[0]; - - // move Puffer down by one element - if (ciq>0) - ll=ciq-1; - else - ll=0; - for (nn=0; nnnextAsynchsendCmd0[nn+1]; - SharedMem::write()->nextAsynchsendCmd0[nn]=data; - } - SharedMem::write()->nrOfCmdsInQueue=ciq; - //qDebug() << "PI cmd queued:"<< nxtAsynchCmd << ", restored, pp now =" << nrOfCmdsInQueue; - return nxtAsynchCmd; -} - -//--------------------------------------------------------------------------------------------------------------------- -//--------------------------------------------------------------------------------------------------------------------- -// Command Stack for commands with 4 parameters - - -/* -static uint16_t nextAsynchsendCmd4[CMD4STACKDEPTH]; -static uint8_t nextCmd4para1[CMD4STACKDEPTH]; -static uint8_t nextCmd4para2[CMD4STACKDEPTH]; -static uint8_t nextCmd4para3[CMD4STACKDEPTH]; -static uint8_t nextCmd4para4[CMD4STACKDEPTH]; -static uint8_t nrOfCmds4InQueue; -*/ - - -void sendWRcmd_clrCmd4Stack(void) -{ - uint8_t nn; - for (nn=0; nnnextAsynchsendCmd4[nn]=0; - SharedMem::write()->nextCmd4para1[nn]=0; - SharedMem::write()->nextCmd4para2[nn]=0; - SharedMem::write()->nextCmd4para3[nn]=0; - SharedMem::write()->nextCmd4para4[nn]=0; - } - SharedMem::write()->nrOfCmds4InQueue=0; -} - - -bool sendWRcmd_setSendCommand4(uint16_t nextCmd, uint8_t dat1, uint8_t dat2, uint8_t dat3, uint8_t dat4) -{ - // write Command to memory, wait for transport - uint8_t ciq; - ciq=SharedMem::read()->nrOfCmds4InQueue; - - if (ciq>=CMD4STACKDEPTH) - { - qDebug() << "cannot save cmd because stack is full"; - return false; // not possible - } - - SharedMem::write()->nextAsynchsendCmd4[ciq]=nextCmd; - SharedMem::write()->nextCmd4para1[ciq]=dat1; - SharedMem::write()->nextCmd4para2[ciq]=dat2; - SharedMem::write()->nextCmd4para3[ciq]=dat3; - SharedMem::write()->nextCmd4para4[ciq]=dat4; - ciq++; - SharedMem::write()->nrOfCmds4InQueue=ciq; - - //qDebug() << QDateTime::currentDateTime().time() - // << "sendWRcmd 4 byte saved, pp=" << nextCmd - // << " para: " << SharedMem::getDataConst()->nextCmd4para1[pp]; - - return true; // ok, will be sent -} - -/* -uint16_t sendWRcmd_getSendCommand4(uint8_t *dat1, uint8_t *dat2, uint8_t *dat3, uint8_t *dat4) -{ - uint16_t nxtAsynchCmd; - uint8_t nn, ll; - - if (nrOfCmds4InQueue==0 || nrOfCmds4InQueue>CMD4STACKDEPTH) - return 0; // error - nxtAsynchCmd=nextAsynchsendCmd4[0]; - *dat1=nextCmd4para1[0]; - *dat2=nextCmd4para2[0]; - *dat3=nextCmd4para3[0]; - *dat4=nextCmd4para4[0]; - //qDebug() << "cmd4 restored to send from [0]; pp=" << nrOfCmds4InQueue; - //qDebug() << " data1: " << nextCmd4para1[0] << " data2: " << nextCmd4para2[0] << - // " data3: " << nextCmd4para3[0] << " data4: " << nextCmd4para4[0]; - - // move Puffer down by one element - if (CMD4STACKDEPTH>0) - ll=CMD4STACKDEPTH-1; - else - ll=0; - for (nn=0; nn0) - nrOfCmds4InQueue--; - //qDebug() << "cmd4 after push down: pp=" << nrOfCmds4InQueue; - return nxtAsynchCmd; -} - - -*/ - -uint16_t sendWRcmd_getSendCommand4(uint8_t *dat1, uint8_t *dat2, uint8_t *dat3, uint8_t *dat4) -{ - uint16_t nxtAsynchCmd, data; - uint8_t nn; - uint8_t ciq=SharedMem::read()->nrOfCmds4InQueue; - - if (ciq==0 || ciq > CMD4STACKDEPTH) - return 0; // error - - nxtAsynchCmd=SharedMem::read()->nextAsynchsendCmd4[0]; - *dat1=SharedMem::read()->nextCmd4para1[0]; - *dat2=SharedMem::read()->nextCmd4para2[0]; - *dat3=SharedMem::read()->nextCmd4para3[0]; - *dat4=SharedMem::read()->nextCmd4para4[0]; - //qDebug() << "cmd4 restored to send from [0]; pp=" << nrOfCmds4InQueue; - //qDebug() << " data1: " << nextCmd4para1[0] << " data2: " << nextCmd4para2[0] << - // " data3: " << nextCmd4para3[0] << " data4: " << nextCmd4para4[0]; - - // move Puffer down by one element - if (ciq>0) ciq--; - - for (nn=0; nnnextAsynchsendCmd4[nn+1]; - SharedMem::write()->nextAsynchsendCmd4[nn]=data; - data=SharedMem::read()->nextCmd4para1[nn+1]; - SharedMem::write()->nextCmd4para1[nn]=data; - data=SharedMem::read()->nextCmd4para2[nn+1]; - SharedMem::write()->nextCmd4para2[nn]=data; - data=SharedMem::read()->nextCmd4para3[nn+1]; - SharedMem::write()->nextCmd4para3[nn]=data; - data=SharedMem::read()->nextCmd4para4[nn+1]; - SharedMem::write()->nextCmd4para4[nn]=data; - } - - SharedMem::write()->nrOfCmds4InQueue=ciq; - return nxtAsynchCmd; -} - - - -void sendWRcmd_clrCmd8Stack(void) -{ - uint8_t nn; - for (nn=0; nnnextAsynchsendCmd8[nn]=0; - SharedMem::write()->nextCmd8para1[nn]=0; - SharedMem::write()->nextCmd8para2[nn]=0; - SharedMem::write()->nextCmd8para3[nn]=0; - SharedMem::write()->nextCmd8para4[nn]=0; - } - SharedMem::write()->nrOfCmds8InQueue=0; -} - -bool sendWRcmd_setSendCommand8(uint16_t nextCmd, uint8_t dat1, uint8_t dat2, uint16_t dat3, uint32_t dat4) -{ - // write Command to memory, wait for transport - uint8_t ciq; - ciq=SharedMem::read()->nrOfCmds8InQueue; - - if (ciq>=CMD8STACKDEPTH) - { - qDebug() << "cannot save cmd because stack is full"; - return false; // not possible - } - SharedMem::write()->nextAsynchsendCmd8[ciq]=nextCmd; - SharedMem::write()->nextCmd8para1[ciq]=dat1; - SharedMem::write()->nextCmd8para2[ciq]=dat2; - SharedMem::write()->nextCmd8para3[ciq]=dat3; - SharedMem::write()->nextCmd8para4[ciq]=dat4; - ciq++; - SharedMem::write()->nrOfCmds8InQueue=ciq; - return true; // ok, will be sent -} - -uint16_t sendWRcmd_getSendCommand8(uint8_t *dat1, uint8_t *dat2, uint16_t *dat3, uint32_t *dat4) -{ - uint16_t nxtAsynchCmd, data; - uint8_t nn; - - uint8_t ciq=SharedMem::read()->nrOfCmds8InQueue; - - if (ciq==0 || ciq > CMD8STACKDEPTH) - return 0; // error - - nxtAsynchCmd=SharedMem::read()->nextAsynchsendCmd8[0]; - *dat1=SharedMem::read()->nextCmd8para1[0]; - *dat2=SharedMem::read()->nextCmd8para2[0]; - *dat3=SharedMem::read()->nextCmd8para3[0]; - *dat4=SharedMem::read()->nextCmd8para4[0]; - - // move buffer down by one element - if (ciq>0) ciq--; - - for (nn=0; nnnextAsynchsendCmd8[nn+1]; - SharedMem::write()->nextAsynchsendCmd8[nn]=data; - data=SharedMem::read()->nextCmd8para1[nn+1]; - SharedMem::write()->nextCmd8para1[nn]=data; - data=SharedMem::read()->nextCmd8para2[nn+1]; - SharedMem::write()->nextCmd8para2[nn]=data; - data=SharedMem::read()->nextCmd8para3[nn+1]; - SharedMem::write()->nextCmd8para3[nn]=data; - data=SharedMem::read()->nextCmd8para4[nn+1]; - SharedMem::write()->nextCmd8para4[nn]=data; - } - SharedMem::write()->nrOfCmds8InQueue=ciq; - return nxtAsynchCmd; -} - - - -//static uint8_t sendAsynchDataBuf[160]; // no stack, only ONE buffer -//static uint8_t sendAsyDatLen; - -bool sendWRcmd_setSendBlock160(uint8_t leng, uint8_t *buf) -{ - if (leng>SENDASYDAT_BUFFSIZE) leng=SENDASYDAT_BUFFSIZE; - SharedMem::write()->sendAsyDatLen=leng; - tslib_strclr(SharedMem::write()->sendAsynchDataBuf, 0, SENDASYDAT_BUFFSIZE); - for (uint8_t nn=0; nnsendAsynchDataBuf[nn]=buf[nn]; - return true; // ok, will be sent -} - -uint8_t sendWRcmd_getSendBlock160(uint8_t *leng, uint8_t *buf) -{ - - uint8_t dl=SharedMem::read()->sendAsyDatLen; - *leng=dl; - for (uint8_t nn=0; nnsendAsynchDataBuf[nn]; - SharedMem::write()->sendAsyDatLen=0; - //tslib_strclr(SharedMem::write()->sendAsynchDataBuf, 0, SENDASYDAT_BUFFSIZE); - return *leng; -} - - -// ------------------------------------------------------------------------------------ -// MDB Sendind Data are store here for next transport to DC (Device Controller) -// Transport to Slave runs every 100ms, answer from mdb-slave (e.g. coin changer) comes rigth -// with next slave answer - -// start with: SENDDIRCMD_EXCHGMDB, - // send crude data from here to DC, DC to mdb slaves, mdb answer, return here within 50ms - - -//static uint8_t Sdata_mdbSendBuffer[MDBSEND_BUFFSIZE]; -//static uint8_t Sdata_mdbSendLen; - -uint8_t epi_store64ByteSendData(uint8_t length, uint8_t *buf) -{ - if (length>MDBSEND_BUFFSIZE) length=MDBSEND_BUFFSIZE; - - // HWapi writes data to be forwarded to DC and further to mdb-device - for (uint8_t nn=0; nnSdata_mdbSendBuffer[nn]=buf[nn]; - SharedMem::write()->Sdata_mdbSendLen=length; - return 0; -} - -uint8_t gpi_restore64ByteSendData(uint8_t *length, uint8_t *buf) -{ - // datif reads data to forward to dc - uint8_t dl=SharedMem::read()->Sdata_mdbSendLen; - - for (uint8_t nn=0; nnSdata_mdbSendBuffer[nn]; - *length=dl; - SharedMem::write()->Sdata_mdbSendLen=0; - return 0; -} - - - - -//------------------------------------------------------------------------------------ -//------------------------------------------------------------------------------------ -//---------------------------------------- Printer Text Fifo ------------------------- -//static uint8_t prnDataParameters[]; -//static uint8_t prnDataBufferUser; - -void epi_storeUserOfSendingTextBuffer(uint8_t user, uint8_t para1, uint8_t para2, uint8_t para3, uint8_t para4 ) -{ - // user=1: Text-Print is using this buffer - // 2: QR-code-Printer is using this buffer - SharedMem::write()->prnDataBufferUser=user; - SharedMem::write()->prnDataParameters[0]=para1; - SharedMem::write()->prnDataParameters[1]=para2; - SharedMem::write()->prnDataParameters[2]=para3; - SharedMem::write()->prnDataParameters[3]=para4; - -// qDebug() << "new user stored: " << user; - -} - -uint8_t gpi_getUserOfSendingTextBuffer(uint8_t *para1, uint8_t *para2, uint8_t *para3, uint8_t *para4) -{ - // user=1: Text-Print is using this buffer - // 2: QR-code-Printer is using this buffer - //qDebug() << "returning user "<< prnDataBufferUser; - - *para1=SharedMem::read()->prnDataParameters[0]; - *para2=SharedMem::read()->prnDataParameters[1]; - *para3=SharedMem::read()->prnDataParameters[2]; - *para4=SharedMem::read()->prnDataParameters[3]; - return SharedMem::read()->prnDataBufferUser; - -} - - - - - - - - // Sending Text Fifo -// ONE printer doc consists of 20 x 64 byte -// #define MAXNROF_PRNBYTES 64 -// #define MAXNROF_PRNBLOCKS 20 -//static char Sdata_PRN_TEXT[MAXNROF_PRNBLOCKS][MAXNROF_PRNBYTES]; -//static uint8_t pPrnDataBuff; // points to next PRINTER_BLOCK -//static uint8_t pPrnDataBuff; // points to next waiting printer text -// defined above, needed if more then one text is stored (before sent) -// every block will be sent after 100ms, if 8 blocks are stored within this 100ms -// then pointer goes up to 8. Important: FIFO!!!!!!!! - -void epi_resetPrinterStack(void) -{ - SharedMem::write()->pPrnDataBuff=0; -} - -uint8_t epi_storePrnText(char *buf, uint8_t leng) -{ - // store text from Gui in next higher free memory 0....9 - - uint16_t len; - uint8_t pp, nn; - - pp=SharedMem::read()->pPrnDataBuff; // next free memory block with 64byte each - if (pp>=MAXNROF_PRNBLOCKS) - return 1; // not possible, no free mem - - //len=tslib_strlen(buf); // kennt keine Binärzeichen!!!!!! - len=leng; - if (len>MAXNROF_PRNBYTES) - len=MAXNROF_PRNBYTES; - - tslib_strclr(SharedMem::write()->Sdata_PRN_TEXT[pp], 0, MAXNROF_PRNBYTES); - - for (nn=0; nnSdata_PRN_TEXT[pp][nn]=buf[nn]; // copy new text into buffer - - if (SharedMem::read()->pPrnDataBuffpPrnDataBuff++; // inc pointer if end not yet reached - return 0; // OK -} - - - -uint8_t gpi_restorePrnText(uint8_t *retbuf) -{ - // read printer text and send to slave, size of retbuf == 64 - - // always read from [0] because this is the oldest (Fifo) - // then move all text lines down by one and dec pointer - - uint8_t nn, mm, pp=SharedMem::read()->pPrnDataBuff; - char buf[MAXNROF_PRNBYTES]; - - if (pp==0) // next free memory block with 64byte each - return 1; // no text in buffer - - // example: pp=5: then buffers [0...4] are occupied - - for (nn=0; nnSdata_PRN_TEXT[0][nn]); // restore oldest text - - // now copy textline [1] to [0], then - // copy textline [2] to [1], then - // copy textline [3] to [2] .... upto [pp-1] to [pp-2] - // hint: copying from 9....0 would delete all strings!!!!!! - for (nn=0; nn<(pp-1); nn++) - { - for (mm=0; mmSdata_PRN_TEXT[nn+1][mm]; - for (mm=0; mmSdata_PRN_TEXT[nn][mm]=buf[mm]; - } - if (pp>0) pp--; - SharedMem::write()->pPrnDataBuff=pp; - - // example: pp=4: then buffers [0...3] are still occupied, pp=0: all buffers empty - - // now clear highest copyed line (which became free now) - tslib_strclr(SharedMem::write()->Sdata_PRN_TEXT[pp], 0, MAXNROF_PRNBYTES); - - // optionally: clear all remaining higher lines: - for (nn=(pp+1); nnSdata_PRN_TEXT[nn], 0, MAXNROF_PRNBYTES); - - return 0; -} - -uint8_t gpi_chk4remainingText(void) -{ - // retval: 0: no more textline left (to send) >0: nr of 64byte-blocks - return (SharedMem::read()->pPrnDataBuff); -} - - - - - - - - - - -// --------------------------------------------------------------------------------- -// 11.4.23 neu, Kommando direkt an "FastDevice"-protokoll senden, nicht mehr umsetzen -// --------------------------------------------------------------------------------- -/* -// header -static uint8_t nextFDwrCmd[FDCMD_STACKDEPTH]; -static uint8_t nextFDrdCmd[FDCMD_STACKDEPTH]; -static uint8_t nextFDblkNr[FDCMD_STACKDEPTH]; -static uint8_t nextFDshort[FDCMD_STACKDEPTH]; - -// short data -static uint8_t nextFDpara1[FDCMD_STACKDEPTH]; -static uint8_t nextFDpara2[FDCMD_STACKDEPTH]; -static uint8_t nextFDpara3[FDCMD_STACKDEPTH]; -static uint8_t nextFDpara4[FDCMD_STACKDEPTH]; -// long data: -static uint8_t longFDlength[FDCMD_STACKDEPTH]; -static uint8_t longFDpara[FDCMD_STACKDEPTH][64]; - -static uint8_t p_nextFDcmdsInQueue; -*/ - -/* convention: use simple (not rotating) FIFO Stack: -Example: nrOfCmdsInQueue=4 then - nextAsynchsendCmd0[0]=cmd1 // was stored as first - nextAsynchsendCmd0[1]=cmd2 - nextAsynchsendCmd0[2]=cmd3 - nextAsynchsendCmd0[3]=cmd4 // came in as last - - Send: [0] first, then move buffer 1 down: - nextAsynchsendCmd0[0]=cmd2 - nextAsynchsendCmd0[1]=cmd3 - nextAsynchsendCmd0[2]=cmd4 - nextAsynchsendCmd0[3]=0; - nrOfCmdsInQueue=3 now -*/ - - -void sendFDcmd_clrStack(void) -{ - uint8_t nn; - for (nn=0; nnnextFDwrCmd[nn]=0; - SharedMem::write()->nextFDrdCmd[nn]=0; - SharedMem::write()->nextFDblkNr[nn]=0; - SharedMem::write()->nextFDshort[nn]=0; - SharedMem::write()->nextFDpara1[nn]=0; - SharedMem::write()->nextFDpara2[nn]=0; - SharedMem::write()->nextFDpara3[nn]=0; - SharedMem::write()->nextFDpara4[nn]=0; - SharedMem::write()->longFDlength[nn]=0; - memset(&SharedMem::write()->longFDpara[nn][0],0,64); - } - - SharedMem::write()->p_nextFDcmdsInQueue=0; -} - -bool sendFDcmd_set(uint8_t nextWrCmd, uint8_t nextRdCmd, uint8_t blockNum, uint8_t dat1, uint8_t dat2, uint8_t dat3, uint8_t dat4) -{ - - // write Command to memory, wait for transport - uint8_t pFDcmd=SharedMem::read()->p_nextFDcmdsInQueue; - - if (pFDcmd >=FDCMD_STACKDEPTH) - { - qDebug() << "cannot save cmd because stack is full"; - return false; // not possible - } - SharedMem::write()->nextFDwrCmd[pFDcmd]=nextWrCmd; - SharedMem::write()->nextFDrdCmd[pFDcmd]=nextRdCmd; - SharedMem::write()->nextFDblkNr[pFDcmd]=blockNum; - SharedMem::write()->nextFDpara1[pFDcmd]=dat1; - SharedMem::write()->nextFDpara2[pFDcmd]=dat2; - SharedMem::write()->nextFDpara3[pFDcmd]=dat3; - SharedMem::write()->nextFDpara4[pFDcmd]=dat4; - //qDebug() << "data with 4 data byte saved, pp=" << pFDcmd; - //qDebug() << " dat1=" << nextCmd4para1[pFDcmd] << " dat2=" << nextCmd4para2[pFDcmd] - // << " dat3=" << nextCmd4para3[pFDcmd] << " dat4=" << nextCmd4para4[pFDcmd]; - SharedMem::write()->nextFDshort[pFDcmd]=1; // 1=short - pFDcmd++; - SharedMem::write()->p_nextFDcmdsInQueue=pFDcmd; - - return true; // ok, will be sent -} - - -bool longFDcmd_set(uint8_t nextWrCmd, uint8_t nextRdCmd, uint8_t blockNum, uint8_t length, uint8_t *data) -{ - // write Command to memory, wait for transport - // data buffer size always 64! data[64], padded with 0 - uint8_t nn; - uint8_t pFDcmd=SharedMem::read()->p_nextFDcmdsInQueue; - - if (pFDcmd>=FDCMD_STACKDEPTH) - { - qDebug() << "cannot save cmd because stack is full"; - return false; // not possible - } - SharedMem::write()->nextFDwrCmd[pFDcmd]=nextWrCmd; - SharedMem::write()->nextFDrdCmd[pFDcmd]=nextRdCmd; - SharedMem::write()->nextFDblkNr[pFDcmd]=blockNum; - - SharedMem::write()->longFDlength[pFDcmd]=length; - - for (nn=0; nn<64; nn++) - SharedMem::write()->longFDpara[pFDcmd][nn]=data[nn]; - - SharedMem::write()->nextFDshort[pFDcmd]=2; - pFDcmd++; - SharedMem::write()->p_nextFDcmdsInQueue=pFDcmd; - return true; // ok, will be sent -} - - -bool sendFDcmd_get(uint8_t *nextWrCmd, uint8_t *nextRdCmd, uint8_t *blockNum, uint8_t *dat1, uint8_t *dat2, uint8_t *dat3, uint8_t *dat4) -{ - uint8_t nn, mm, data; // ll - uint8_t pFDcmd=SharedMem::read()->p_nextFDcmdsInQueue; - - if (pFDcmd==0 || pFDcmd>FDCMD_STACKDEPTH) - return false; // not possible - - *nextWrCmd=SharedMem::read()->nextFDwrCmd[0]; - *nextRdCmd=SharedMem::read()->nextFDrdCmd[0]; - *blockNum=SharedMem::read()->nextFDblkNr[0]; - *dat1=SharedMem::read()->nextFDpara1[0]; - *dat2=SharedMem::read()->nextFDpara2[0]; - *dat3=SharedMem::read()->nextFDpara3[0]; - *dat4=SharedMem::read()->nextFDpara4[0]; - //qDebug() << "sendFDcmd_get [0]; pp=" << SharedMem::read()->p_nextFDcmdsInQueue; - //qDebug() << " data1: " << SharedMem::read()->nextCmd4para1[0] << " data2: " << SharedMem::read()->nextCmd4para2[0] << - // " data3: " << SharedMem::read()->nextCmd4para3[0] << " data4: " << SharedMem::read()->nextCmd4para4[0]; - - // move Puffer down by one element - //if (FDCMD_STACKDEPTH>0) - // ll=FDCMD_STACKDEPTH-1; - //else - // ll=0; - - if (pFDcmd>0) pFDcmd--; else pFDcmd=0; - - //for (nn=0; nnnextFDwrCmd[nn+1]; - SharedMem::write()->nextFDwrCmd[nn]=data; - data=SharedMem::read()->nextFDrdCmd[nn+1]; - SharedMem::write()->nextFDrdCmd[nn]=data; - data=SharedMem::read()->nextFDblkNr[nn+1]; - SharedMem::write()->nextFDblkNr[nn]=data; - data=SharedMem::read()->nextFDpara1[nn+1]; - SharedMem::write()->nextFDpara1[nn]=data; - data=SharedMem::read()->nextFDpara2[nn+1]; - SharedMem::write()->nextFDpara2[nn]=data; - data=SharedMem::read()->nextFDpara3[nn+1]; - SharedMem::write()->nextFDpara3[nn]=data; - data=SharedMem::read()->nextFDpara4[nn+1]; - SharedMem::write()->nextFDpara4[nn]=data; - - data=SharedMem::read()->nextFDshort[nn+1]; - SharedMem::write()->nextFDshort[nn] = data; - - data=SharedMem::read()->longFDlength[nn+1]; - SharedMem::write()->longFDlength[nn] = data; - - for (mm=0; mm<64; mm++) - { - SharedMem::write()->longFDpara[nn][mm] = SharedMem::read()->longFDpara[nn+1][mm]; - } - - } - - SharedMem::write()->p_nextFDcmdsInQueue=pFDcmd; - //qDebug() << "cmd4 after push down: pp=" << nrOfCmds4InQueue; - - // clear released buffer: - //for (nn=p_nextFDcmdsInQueue; nnnextFDwrCmd[pFDcmd]=0; - SharedMem::write()->nextFDrdCmd[pFDcmd]=0; - SharedMem::write()->nextFDblkNr[pFDcmd]=0; - - SharedMem::write()->nextFDpara1[pFDcmd]=0; - SharedMem::write()->nextFDpara2[pFDcmd]=0; - SharedMem::write()->nextFDpara3[pFDcmd]=0; - SharedMem::write()->nextFDpara4[pFDcmd]=0; - SharedMem::write()->nextFDshort[pFDcmd]=0; - SharedMem::write()->longFDlength[pFDcmd]=0; - for (mm=0; mm<64; mm++) - SharedMem::write()->longFDpara[pFDcmd][mm] = 0; - //} - -/* - qDebug() << "sendFDcmd_set, stack now: " << p_nextFDcmdsInQueue; - for (nn=0; nn<16; nn++) - { - qDebug() << "header: " << nextFDwrCmd[nn] << " / " << nextFDrdCmd[nn] << " / "<< nextFDblkNr[nn] << " / " << nextFDshort[nn]; - - qDebug() << " short data: " << nextFDpara1[nn] << " / "<< nextFDpara2[nn] << " / "<< nextFDpara3[nn]<< " / "<< nextFDpara4[nn]; - - qDebug() << " long data: " << longFDlength[nn] << " / "<< longFDpara[nn][0] << " / "<< longFDpara[nn][1] - << " / "<< longFDpara[nn][2] << " / "<< longFDpara[nn][3] << " / "<< longFDpara[nn][4]; - } -*/ - return true; // ok, will be sent -} - -uint8_t checkNextFDcmd(void) -{ - // return 0: no command waiting -// 1: short cmd -// 2: long cmd - //qDebug() << "chk nxt fd cmd: "<p_nextFDcmdsInQueue==0) - return 0; - if (SharedMem::read()->nextFDshort[0]==1) - return 1; - return 2; -} - -uint8_t check4FDshortCmd(void) -{ - // returns number of waiting command, max FDCMD_STACKDEPTH - return SharedMem::read()->p_nextFDcmdsInQueue; -} - - -uint8_t check4freeFDshortCmd(void) -{ - // returns number of free places in short-command stack - return FDCMD_STACKDEPTH - SharedMem::read()->p_nextFDcmdsInQueue; -} - -bool longFDcmd_get(uint8_t *nextWrCmd, uint8_t *nextRdCmd, uint8_t *blockNum, uint8_t *length, uint8_t *data) -{ - uint8_t nn, mm, uctmp; - uint8_t pFDcmd=SharedMem::read()->p_nextFDcmdsInQueue; - - if (pFDcmd==0 || pFDcmd>FDCMD_STACKDEPTH) - return false; // not possible - - *nextWrCmd=SharedMem::read()->nextFDwrCmd[0]; - *nextRdCmd=SharedMem::read()->nextFDrdCmd[0]; - *blockNum=SharedMem::read()->nextFDblkNr[0]; - *length = SharedMem::read()->longFDlength[0]; - for (mm=0; mm<64; mm++) - data[mm] = SharedMem::read()->longFDpara[0][mm]; - - if (pFDcmd>0) pFDcmd--; else pFDcmd=0; - - //for (nn=0; nnnextFDwrCmd[nn+1]; - SharedMem::write()->nextFDwrCmd[nn]=uctmp; - uctmp=SharedMem::read()->nextFDrdCmd[nn+1]; - SharedMem::write()->nextFDrdCmd[nn]=uctmp; - uctmp=SharedMem::read()->nextFDblkNr[nn+1]; - SharedMem::write()->nextFDblkNr[nn]=uctmp; - - uctmp=SharedMem::read()->nextFDpara1[nn+1]; - SharedMem::write()->nextFDpara1[nn]=uctmp; - uctmp=SharedMem::read()->nextFDpara2[nn+1]; - SharedMem::write()->nextFDpara2[nn]=uctmp; - uctmp=SharedMem::read()->nextFDpara3[nn+1]; - SharedMem::write()->nextFDpara3[nn]=uctmp; - uctmp=SharedMem::read()->nextFDpara4[nn+1]; - SharedMem::write()->nextFDpara4[nn]=uctmp; - - uctmp=SharedMem::read()->nextFDshort[nn+1]; - SharedMem::write()->nextFDshort[nn]=uctmp; - uctmp=SharedMem::read()->longFDlength[nn+1]; - SharedMem::write()->longFDlength[nn]=uctmp; - - for (mm=0; mm<64; mm++) - { - SharedMem::write()->longFDpara[nn][mm] = SharedMem::read()->longFDpara[nn+1][mm]; - } - - } - - SharedMem::write()->p_nextFDcmdsInQueue=pFDcmd; - // clear released buffer: - SharedMem::write()->nextFDwrCmd[pFDcmd]=0; - SharedMem::write()->nextFDrdCmd[pFDcmd]=0; - SharedMem::write()->nextFDblkNr[pFDcmd]=0; - - SharedMem::write()->nextFDpara1[pFDcmd]=0; - SharedMem::write()->nextFDpara2[pFDcmd]=0; - SharedMem::write()->nextFDpara3[pFDcmd]=0; - SharedMem::write()->nextFDpara4[pFDcmd]=0; - SharedMem::write()->nextFDshort[pFDcmd]=0; - SharedMem::write()->longFDlength[pFDcmd]=0; - for (mm=0; mm<64; mm++) - SharedMem::write()->longFDpara[pFDcmd][mm] = 0; - - return true; // ok, will be sent -} - - -