Esempio n. 1
0
int YMODEMCLASS::WaitFinalACK (void)
{
	int rVal ;
	rVal = WaitACK() ;
	if (rVal==FT_FILEEND)
	  {
		rVal = EndOrContinueSendBinaryFile() ;
	  }
	return(rVal);
}
Esempio n. 2
0
//**内部函数.输出数据字节  入口:B=数据
static void writebyte(UINT8 wdata)
{
	UINT8 i;
    for(i=0;i<8;i++)
    {
        if(wdata&0x80) 
        gpio_set(SDA_PORT,1);
         else
         gpio_set(SDA_PORT,0);
          wdata<<=1;
          gpio_set(SCL_PORT,1);
          Delay();
          gpio_set(SCL_PORT,0);
    }
    WaitACK();
}
Esempio n. 3
0
int YMODEMCLASS::ProcessBufferData (void)
{
	int rVal = FT_SUCCESS ;
	switch (fltr_state)
  	{
		case YMODEM_INIT:
			rVal = WaitFirstChar () ;
			break;
		case WAIT_ACK:
			rVal = WaitACK() ;
			break;
		case WAIT_FINAL_ACK :
			rVal = WaitFinalACK () ;
			break;
		case SEND_INIT:
			SendInitChar () ;
			break;
		case WAIT_SOH:
			rVal = WaitSOH () ;
			break;
		case WAIT_SEQ:
			rVal = WaitSEQChar() ;
			break;
		case WAIT_DATA:
			ReceiveDataBlock() ;
			break;
		case WAIT_CHECK:
			rVal = CheckDataBlock () ;
			break;
  	}
	if (rVal !=FT_SUCCESS)
	  {
    KillTimerEvent (oiFT, setPollTimer) ;
		KillTimerEvent (oiFT, setDataTimer) ;
		ActiveIdleEvent (oiFT) ;
		if (rVal==FT_FILEEND)
			AEvtPostSignalAtMark (oiFT, 0) ;
		else
			AEvtPostSignalAtMark (oiFT, 6) ;
	  }

	return(rVal);
}