コード例 #1
0
//-------------------------------------------------------------------------------------------
void TbFunFTPRead(void)
{
   //should make MAX checking
  static u16 nReadPrev = 0;
  if( (!sFTPState.flagAlrSent)  || (sFTPState.flagTimeout) )
   {
     if(!updateFlag)
	   {
	     if(sFTPState.flagLastPage)
		  {
		    //currState = stEndGPRS;  //was earlier - when there was not PUT-cmds
			currState = stOpenPutFTP;
			sFTPState.flagLastPage = 0;
			sFTPState.flagOutBoot = 1;
		  }
		 else  /* not last page*/
		  {
		   nRead = FTP_PACKET_SIZE - bytesFTPToReadForPacket;
		   if(sFTPState.flagFrontBlock)
		      nRead = FTP_SIZE_FRONT_BLOCK;
		   if(nRead != nReadPrev)  /* if we received less bytes we asked than we should scan added (to pageSize) number of bytes*/
		     {
				   //"AT+FTPGET=2,",
				   memset(ftpReadNumber,0,sizeof(ftpReadNumber));
				   iLen = getLenNum(nRead);
				   int2char((char * )ftpReadNumber,nRead,iLen,10);
				   memset(ftpReadBuf,0,sizeof(ftpReadBuf));
				   strcpy(ftpReadBuf,(char *)QUERIES[14]);
				   strncat(ftpReadBuf,ftpReadNumber,strlen(ftpReadNumber) );
				   strncat(ftpReadBuf,"\r\n",sizeof("\r\n") );
				   //sFTPState.flagScannedLess = 1;
			  }
			//else
			//   sFTPState.flagScannedLess = 0;

			 nReadPrev = nRead;
		     //at+ftpget=2,1024
			 if(sFTPState.flagPrepareToSend)
				{ 
				  sFTPState.flagPrepareToSend = 0;
				  if(!checkTimeoutFunFTP())
					 cmdSend((u8 *)ftpReadBuf);
				  timerFDTimeout = TIMEOUT_BEGIN_GPRS_CMD;
				  sFTPState.flagAlrSent = 1;
				  sFTPState.flagTimeToSend = 1;
				}
		  }
	   }
   }
}
コード例 #2
0
void CommunicationCoupling::initCommunication()
{
	qDebug()<<QThread::currentThread();
	m_pWorker = new Worker(this);
	connect(this, SIGNAL(cmdSend(quint8, quint32, quint32)), m_pWorker, SLOT(CmdSend(quint8, quint32, quint32)));
	connect(this, SIGNAL(mcuCmdSend(quint8, quint32, quint32)), m_pWorker, SLOT(CmdSend4Mcu(quint8, quint32, quint32)));
	connect(this, SIGNAL( cmdSendClarity(quint32, quint32, quint32) ), m_pWorker, SLOT( CmdSendClarity(quint32, quint32, quint32)) );
	connect(this, SIGNAL(ackClarity(quint8)), m_pWorker, SLOT(sendAckClarity(quint8)) );


	connect(m_pWorker, SIGNAL(process4Mcu( quint8, quint32, quint32, quint32)), this, SLOT(processCmd4Mcu(quint8, quint32, quint32, quint32)) );
	connect(m_pWorker, SIGNAL(process4Pc( quint8, quint32, quint32, quint32)), this, SLOT(processCmd4Pc(quint8, quint32, quint32, quint32)) );
	connect(m_pWorker, SIGNAL(process4PcClarity( quint8, quint32, quint32, quint32)), this, SLOT(processCmd4PcClarity(quint8, quint32, quint32, quint32)) );
	connect(m_pWorker, SIGNAL(communicationError(int)), this, SLOT(communicationError(int)) );
	setPcProtocol(DataBase::getInstance()->queryData("pcProtocol").toInt());
}
コード例 #3
0
// ------------------------------------------------------------------------------
void cmdPrepareSend(u8 * buf, u32 timerVal)
{
  if( (!sFTPState.flagAlrSent)  || (sFTPState.flagTimeout) )
     {
	    if(sFTPState.flagPrepareToSend)
		 { 
		  sFTPState.flagPrepareToSend = 0;
		  /*timeout handling*/
		  timerFDTimeout = timerVal; 
		  /*ready to send*/
		  sFTPState.flagTimeToSend = 1;
		  if(!checkTimeoutFunFTP())
	         cmdSend(buf);
		  /*aux actions*/
		  sFTPState.flagAlrSent = 1;
		 }
     }
}
コード例 #4
0
//-------------------------------------------------------------------------------------------
void TbFunFTPWrite(void)  //"AT+FTPPUT=2,8\r\n",
{
   u8 * ptrDataDst,* ptrDataSrc;
   u8 k;
   u16 len;
   if(!sFTPState.flagWriteRawData)
     {
       memset(ftpDataPut,0,sizeof(ftpDataPut));
       strcpy((char *)ftpDataPut,"Updated ");
	   ptrDataDst = &ftpDataPut[strlen((char *)ftpDataPut)];
	   ptrDataSrc = (u8 *)readRTCTime(&rtc);
	   k = 0;
	   len = strlen((const char *)readRTCTime(&rtc));
	   while(k < len)
	     {  
		   k++;
		   *ptrDataDst++ = *ptrDataSrc++;
		 }

	   memset(ftpReadNumber,0,sizeof(ftpReadNumber));
	   len = strlen((char *) ftpDataPut );
	   iLen = getLenNum(len);
	   int2char((char * )ftpReadNumber,len,iLen,10);
	   memset(ftpPutWriteBuf,0,sizeof(ftpPutWriteBuf));
	   strcpy(ftpPutWriteBuf,(char *)QUERIES[15]);
	   strncat(ftpPutWriteBuf,ftpReadNumber,strlen((char *)ftpReadNumber) );
	   strncat(ftpPutWriteBuf,"\r\n",sizeof("\r\n") );
	    
       cmdPrepareSend((u8 *)ftpPutWriteBuf, TIMEOUT_OPEN_PUT_CMD);

	 }
   else if(sFTPState.flagPrepareToSend)
     {
	    sFTPState.flagPrepareToSend = 0;
		cmdSend(ftpDataPut);
		sFTPState.flagTimeToSend = 1;
	 }
}
コード例 #5
0
static void TbFunCheckConn(void)  //AT
{
  if( (sFTPState.flagFTPStart) || (!sFTPState.flagAlrSent) || (sFTPState.flagTimeout))
   {
    if(sFTPState.flagPrepareToSend)
	 { 
	  sFTPState.flagPrepareToSend = 0;
      if(sFTPState.flagTimeout)
	   {
	    sFTPState.flagTimeToSend = 1; 
		numTryTimeoutResendAT++;
	    sFTPState.flagTimeout = 0;
	   }
	  else
		numTryTimeoutResendAT = 0;
      cmdSend((u8 *)QUERIES[0]);
	  sFTPState.flagAlrSent = 1;
	  sFTPState.flagFTPStart = 0;
	  timerFDTimeout = TIMEOUT_USUAL_CMD;
	  sFTPState.flagTimeToSend = 1;
     }
   }
}
コード例 #6
0
void CommunicationCoupling::sendCmd(quint8 cmd, quint32 arg, quint32 add)
{
	emit(cmdSend(cmd, arg, add));
}