           }
         } else {
           if(!this->checkChkSum()) {
-debugPrintf("rf2.4:%d\n",cmd);  
             if (this->sendNack())
               break;
             else

          }
        }
        //callback
debugPrintf("rf2.5:%d\n",cmd);  
        if(this->dataHandler != NULL && this->repeatedBlock == false)
          if(!this->dataHandler(this->blockNoExt, this->buffer, 128)) {
            return false;
          }
        //ack
debugPrintf("rf2.6:%d\n",cmd);  
        this->dataWrite(XModem::ACK);
        if(this->repeatedBlock == false)
        {
          this->blockNo++;
          this->blockNoExt++;
        }
debugPrintf("rf2.9:%d\n",cmd);  
        break;
      case XModem::EOT:
debugPrintf("rf3:%d\n",cmd);  
        this->dataWrite(XModem::ACK);
        return true;
      case XModem::CAN:
debugPrintf("rf4:%d\n",cmd);  
        //wait second CAN
        if(this->dataRead(XModem::receiveDelay) ==XModem::CAN) 
        {

        this->dataWrite(XModem::CAN);
        return false;
      default:
        //something wrong
        this->dataWrite(XModem::CAN);
        this->dataWrite(XModem::CAN);
