Esempio n. 1
0
/**
 * \brief GSM fecha conexão http
 * \param 
 * \return 0=erro, 1=ok
 */
boolean sATCIPCLOSEMulitple(uint8_t mux_id)
{
#ifdef GSM_CSTT
	
	char *data=reqHTTP;
	//eATCIPSTATUS();
	PGM_PRINTLN("CLO");
	//debugln(mux_id);
	esp8266Flush();
	#if USE_MUX == 1
	SSwifi.print("AT+CIPCLOSE=");
	SSwifi.print(mux_id);
	SSwifi.print("\r\n");
	#else
	SSwifi.print("AT+CIPCLOSE\r\n");
	#endif
	//bitSet(ccStatus,CC_DEBUG);
	#if ESP8266_VERSION_14 == 1
	recvString(data,"OK","xx","CLOSE", 10000,true);
	#else
	recvString(data,"OK","ERR","UNL", 10000,true);
	#endif
	debugln(data);
	if (data[0]=='O' || data[0]=='U') {
		return true;
	}
	return false;
#else
	return true;
#endif
}
Esempio n. 2
0
void cmd_move(void) {
  recvString();
  sendStart(ERR_WAIT);
  fs_openany();
  sendStart(ERR_OK_WRITE);
  recvStart();
  recvString();
  sendStart(ERR_WAIT);
  if(!lastError) fs_move0();
  if(!lastError) lastError = ERR_OK_CMD;
}
Esempio n. 3
0
bool ESP8266::sATCWDHCP(uint8_t mode, uint8_t en, uint8_t pattern)
{
    String data;
    if (!pattern) {
        return false;
    }
    rx_empty();
    switch(pattern){
         case 1 :
            m_puart->print(F("AT+CWDHCP_DEF="));

            break;
        case 2:
            m_puart->print(F("AT+CWDHCP_CUR="));
            break;
        default:
            m_puart->print(F("AT+CWDHCP="));

    }
    m_puart->print(mode);
    m_puart->print(F(","));
    m_puart->println(en);    
    data = recvString("OK", "ERROR", 2000);

    if (data.indexOf("OK") != -1) {
        return true;
    }
    return false;
}
Esempio n. 4
0
bool ESP8266::sATCWSAP(String ssid, String pwd, uint8_t chl, uint8_t ecn,uint8_t pattern)
{
    String data;
    if (!pattern) {
        return false;
    }
    rx_empty();
    switch(pattern){
         case 1 :
            m_puart->print(F("AT+CWSAP_DEF=\""));

            break;
        case 2:
            m_puart->print(F("AT+CWSAP_CUR=\""));
            break;
        default:
            m_puart->print(F("AT+CWSAP=\""));

    }
    m_puart->print(ssid);
    m_puart->print(F("\",\""));
    m_puart->print(pwd);
    m_puart->print(F("\","));
    m_puart->print(chl);
    m_puart->print(F(","));
    m_puart->println(ecn);
    
    data = recvString("OK", "ERROR", 5000);
    if (data.indexOf("OK") != -1) {
        return true;
    }
    return false;
}
Esempio n. 5
0
bool ESP8266::qATCWJAP(String &ssid,uint8_t pattern) 
{

    bool ret;
    if (!pattern) {
        return false;
    }
    rx_empty();
    switch(pattern)
    {
        case 1 :
            m_puart->println(F("AT+CWJAP_DEF?"));
            break;
        case 2:
            m_puart->println(F("AT+CWJAP_CUR?"));
            break;
        default:
            m_puart->println(F("AT+CWJAP?"));
    }
    ssid = recvString("OK", "No AP");
    if (ssid.indexOf("OK") != -1 || ssid.indexOf("No AP") != -1) {
        return true;
    }
    return false;
 
}
Esempio n. 6
0
bool ESP8266::sATCWMODE(uint8_t mode,uint8_t pattern)
{
    if(!pattern){
        return false;
        }
    String data;
    rx_empty();
    switch(pattern)
    {
        case 1 :
            m_puart->print(F("AT+CWMODE_DEF="));
            break;
        case 2:
            m_puart->print(F("AT+CWMODE_CUR="));
            break;
        default:
            m_puart->print(F("AT+CWMODE="));
    }
    m_puart->println(mode);
    data = recvString("OK", "no change");

    if (data.indexOf("OK") != -1 || data.indexOf("no change") != -1) {
        return true;
    }
    return false;
}
Esempio n. 7
0
bool ESP8266::recvFindAndFilter(String target, String begin, String end, String &data, uint32_t timeout)
{
    String data_tmp;
    data_tmp = recvString(target, timeout);
    if (data_tmp.indexOf(target) != -1) {
        int32_t index1 = data_tmp.indexOf(begin);
        int32_t index2 = data_tmp.indexOf(end);
        if (index1 != -1 && index2 != -1) {
            index1 += begin.length();
            data = data_tmp.substring(index1, index2);
            return true;
        } else if (index2 != -1) {
            data = data_tmp.substring(0, index2);
            return true;
        }
        index1 = data.indexOf("\r\n\r\nOK");
        if (index1 != -1) {
            data = data_tmp.substring(0, index1);
        }
        index1 = data.indexOf("\r\nOK");
        if (index1 != -1) {
            data = data_tmp.substring(0, index1);
        }
    }

    data = data_tmp;
    return false;
}
Esempio n. 8
0
bool ESP8266::sATCIPSTARTMultiple(uint8_t mux_id, String type, String addr, uint32_t port)
{
    String data;
    rx_empty();
    printAT("CIPSTART=");
    m_puart->print(mux_id);
    m_puart->print(",\"");
    m_puart->print(type);
    m_puart->print("\",\"");

    if(strlen(addr.c_str()) != 0 ){
        m_puart->print(addr);
        m_puart->print("\",");
        m_puart->println(port);
    }else{
        m_puart->print("0\",0,");
        m_puart->print(port, DEC); // local port
        m_puart->print(",");
        m_puart->println(2, DEC); // mode
    }
    
    data = recvString("OK", "ERROR", "ALREADY CONNECT", 10000);
    if (data.indexOf("OK") != -1 || data.indexOf("ALREADY CONNECT") != -1) {
        return true;
    }
    return false;
}
Esempio n. 9
0
void cmd_open(void) {
  uint8_t mode;
 
  /* Принимаем режим */
  mode = wrecv();    

  // Принимаем имя файла
  recvString();

  // Режим передачи и подтверждение
  sendStart(ERR_WAIT);

  // Открываем/создаем файл/папку
  if(mode == O_SWAP) {
    fs_swap();
  } else
  if(mode == O_DELETE) {
    fs_delete();
  } else
  if(mode == O_OPEN) {
    fs_open();
  } else 
  if(mode < 3) {
    fs_open0(mode);
  } else {
    lastError = ERR_INVALID_COMMAND;
  }

  // Ок
  if(!lastError) lastError = ERR_OK_CMD;
}
Esempio n. 10
0
void ClientThread::run(){
    qDebug() << "Thread id=" << QThread::currentThreadId();
    u_long flag = 0;
    ioctlsocket(mSocket, FIONBIO, &flag);
    // отправл¤ем клиенту приветствие
    sendString(FTPProtocol::getInstance()->getResponse(220,"FtpServer. Hello"));

    while(true)
    {
        QString s = recvString();
        if (s == NULL)
            break;
        s = s.trimmed();
        if (!s.isEmpty())
        {
            qDebug() << "<<" << s;
            QByteArray array (s.toStdString().c_str());
            analizeCommand(array);
        }
        if (mTerminated){
            break;
        }
    }
    // закрываем сокет
    closesocket(mSocket);
    qDebug() << "Close client";
    emit oncloseconnection(mClientAddr);
}
Esempio n. 11
0
boolean recvFind(char *target, uint32_t timeout)
{
	char achou[8];
	

	recvString(achou, target, "busy","link",  timeout, false);
	return !strcmp(target,achou);
}
Esempio n. 12
0
bool ESP8266::recvFind(String target, uint32_t timeout)
{
    String data_tmp;
    data_tmp = recvString(target, timeout);
    if (data_tmp.indexOf(target) != -1) {
        return true;
    }
    return false;
}
Esempio n. 13
0
void cmd_exec(void) {     
  // Прием имени файла
  recvString();

  // Режим передачи и подтверждение
  sendStart(ERR_WAIT);
  if(lastError) return; // Переполнение строки
  
  cmd_boot_exec();    
}
Esempio n. 14
0
bool ESP::sATCIPCLOSEMulitple(uint8_t mux_id)
{
	String data;
	flush();
	this->serial->print(F("AT+CIPCLOSE="));
	this->serial->println(mux_id);

	data = recvString(F("OK"), F("link is not"), 5000);
	if (data.indexOf(F("OK")) != -1 || data.indexOf(F("link is not")) != -1) {
		return true;
	}
	return false;
}
Esempio n. 15
0
bool ESP::sATCIPMUX(uint8_t mode)
{
	String data;
	flush();
	this->serial->print(F("AT+CIPMUX="));
	this->serial->println(mode);

	data = recvString(F("OK"), F("Link is builded"), COMMAND_TIMEOUT);
	if (data.indexOf("OK") != -1) {
		return true;
	}
	return false;
}
Esempio n. 16
0
bool ESP::sATCWMODE(uint8_t mode)
{
	String data;
	flush();
	this->serial->print(F("AT+CWMODE="));
	this->serial->println(mode);

	data = recvString(F("OK"), F("no change"), COMMAND_TIMEOUT);
	if (data.indexOf("OK") != -1 || data.indexOf("no change") != -1) {
		return true;
	}
	return false;
}
Esempio n. 17
0
bool ESP8266::sATCIPCLOSEMulitple(uint8_t mux_id)
{
    String data;
    rx_empty();
    printAT("CIPCLOSE=");
    m_puart->println(mux_id);
    
    data = recvString("OK", "link is not", 5000);
    if (data.indexOf("OK") != -1 || data.indexOf("link is not") != -1) {
        return true;
    }
    return false;
}
Esempio n. 18
0
bool ESP8266::sATCIPMUX(uint8_t mode)
{
    String data;
    rx_empty();
    printAT("CIPMUX=");
    m_puart->println(mode);
    
    data = recvString("OK", "Link is builded");
    if (data.indexOf("OK") != -1) {
        return true;
    }
    return false;
}
Esempio n. 19
0
bool ESP8266::sATCWMODE(uint8_t mode)
{
    String data;
    rx_empty();
    printAT("CWMODE=");
    m_puart->println(mode);
    
    data = recvString("OK", "no change");
    if (data.indexOf("OK") != -1 || data.indexOf("no change") != -1) {
        return true;
    }
    return false;
}
Esempio n. 20
0
bool ESP8266::connected()
{
	String data;
	rx_empty();
	sendAT("CWJAP?");

	data = recvString("OK", "FAIL", 1000);

	if (data.indexOf("+CWJAP:") != -1) {
		return true;
	}

	return false;
}
Esempio n. 21
0
bool ESP8266::sATCWJAP(String ssid, String pwd)
{
    String data;
    rx_empty();
    m_puart->print("AT+CWJAP=\"");
    m_puart->print(ssid);
    m_puart->print("\",\"");
    m_puart->print(pwd);
    m_puart->println("\"");
    
    data = recvString("OK", "FAIL", 10000);
    if (data.indexOf("OK") != -1) {
        return true;
    }
    return false;
}
Esempio n. 22
0
bool ESP8266::sATCIPMODE(uint8_t mode)
{
    String data;
    if(mode>1||mode<0){
        return false;
        }
    rx_empty();
    m_puart->print(F("AT+CIPMODE="));
    m_puart->println(mode);
    
    data = recvString("OK", "Link is builded",2000);
    if (data.indexOf("OK") != -1 ) {
        return true;
    }
    return false;
}
Esempio n. 23
0
bool ESP::sATCWJAP(String ssid, String pwd)
{
	String data;
	flush();
	this->serial->print(F("AT+CWJAP=\""));
	this->serial->print(ssid);
	this->serial->print("\",\"");
	this->serial->print(pwd);
	this->serial->println("\"");

	data = recvString(F("OK"), F("FAIL"), 10000);
	if (data.indexOf("OK") != -1) {
		return true;
	}
	return false;
}
Esempio n. 24
0
bool ESP8266::eATSAVETRANSLINK(uint8_t mode,String ip,uint32_t port)
{

    String data;
    rx_empty();
    m_puart->print(F("AT+SAVETRANSLINK="));
    m_puart->print(mode);
    m_puart->print(F(",\""));
    m_puart->print(ip);
    m_puart->print(F("\","));
    m_puart->println(port);
    data = recvString("OK", "ERROR",2000);
    if (data.indexOf("OK") != -1 ) {
        return true;
    }
    return false;
}
Esempio n. 25
0
bool ESP8266::sATCIPSTARTSingle(String type, String addr, uint32_t port)
{
    String data;
    rx_empty();
    printAT("CIPSTART=\"");
    m_puart->print(type);
    m_puart->print("\",\"");
    m_puart->print(addr);
    m_puart->print("\",");
    m_puart->println(port);
    
    data = recvString("OK", "ERROR", "ALREADY CONNECT", 10000);
    if (data.indexOf("OK") != -1 || data.indexOf("ALREADY CONNECT") != -1) {
        return true;
    }
    return false;
}
Esempio n. 26
0
void cmd_find(void) {
  WORD n;
  FILINFO2 info;              
  
  // Принимаем путь
  recvString();

  // Принимаем макс кол-во элементов
  recvBin((uint8_t*)&n, 2);

  // Режим передачи и подтверждение
  sendStart(ERR_WAIT);
  if(lastError) return;

  // Открываем папку
  if(buf[0] != ':') {
    if(fs_opendir()) return;
  }

  for(; n; --n) {
    /* Читаем очереной описатель */
    if(fs_readdir()) return;

    /* Конец */
    if(FS_DIRENTRY[0] == 0) {
      lastError = ERR_OK_CMD;
      return;
    }

    /* Сжимаем ответ для компьютера */
    memcpy(info.fname, FS_DIRENTRY+DIR_Name, 12);
    memcpy(&info.fsize, FS_DIRENTRY+DIR_FileSize, 4);
    memcpy(&info.ftimedate, FS_DIRENTRY+DIR_WrtTime, 4);
    //memcpy(memcpy(memcpy(info.fname, FS_DIRENTRY+DIR_Name, 12, FS_DIRENTRY+DIR_FileSize, 4), FS_DIRENTRY+DIR_WrtTime, 4);

    /* Отправляем */
    send(ERR_OK_ENTRY);
    sendBin((uint8_t*)&info, sizeof(info));
    send(ERR_WAIT);
  }

  /* Ограничение по размеру */  
  lastError = ERR_MAX_FILES; /*! Надо опеределать, что бы не было ложных ошибок */
}
Esempio n. 27
0
bool ESP8266::sATCIPSTARTMultiple(uint8_t mux_id, String type, String addr, uint32_t port)
{
    String data;
    rx_empty();
    m_puart->print(F("AT+CIPSTART="));
    m_puart->print(mux_id);
    m_puart->print(F(",\""));
    m_puart->print(type);
    m_puart->print(F("\",\""));
    m_puart->print(addr);
    m_puart->print(F("\","));
    m_puart->println(port);
    
    data = recvString("OK", "ERROR", "ALREADY CONNECT", 10000);
    if (data.indexOf("OK") != -1 || data.indexOf("ALREADY CONNECT") != -1) {
        return true;
    }
    return false;
}
Esempio n. 28
0
bool ESP8266::sATCIPSERVER(uint8_t mode, uint32_t port)
{
    String data;
    if (mode) {
        rx_empty();
        printAT("CIPSERVER=1,");
        m_puart->println(port);
        
        data = recvString("OK", "no change");
        if (data.indexOf("OK") != -1 || data.indexOf("no change") != -1) {
            return true;
        }
        return false;
    } else {
        rx_empty();
        sendAT("CIPSERVER=0");
        return recvFind("\r\r\n");
    }
}
Esempio n. 29
0
bool ESP8266::sATCWSAP(String ssid, String pwd, uint8_t chl, uint8_t ecn)
{
    String data;
    rx_empty();
    printAT("CWSAP=\"");
    m_puart->print(ssid);
    m_puart->print("\",\"");
    m_puart->print(pwd);
    m_puart->print("\",");
    m_puart->print(chl);
    m_puart->print(",");
    m_puart->println(ecn);
    
    data = recvString("OK", "ERROR", 5000);
    if (data.indexOf("OK") != -1) {
        return true;
    }
    return false;
}
Esempio n. 30
0
bool ESP::sATCIPSERVER(uint8_t mode, uint32_t port)
{
	String data;
	if (mode) {
		flush();
		this->serial->print(F("AT+CIPSERVER=1,"));
		this->serial->println(port);

		data = recvString(F("OK"), F("no change"), COMMAND_TIMEOUT);
		if (data.indexOf("OK") != -1 || data.indexOf("no change") != -1) {
			return true;
		}
		return false;
	}
	else {
		flush();
		this->serial->println(F("AT+CIPSERVER=0"));
		return recvFind(F("\r\r\n"), COMMAND_TIMEOUT);
	}
}