Esempio n. 1
0
bool ESP8266::sATCIPSENDSingle(const uint8_t *buffer, uint32_t len)
{
    rx_empty();
    printAT("CIPSEND=");
    m_puart->println(len);
    if (recvFind(">", 5000)) {
        rx_empty();
        for (uint32_t i = 0; i < len; i++) {
            m_puart->write(buffer[i]);
        }
        return recvFind("SEND OK", 10000);
    }
    return false;
}
Esempio n. 2
0
bool ESP8266::sATCIPSENDSingleFromFlash(const uint8_t *buffer, uint32_t len)
{
    rx_empty();
    m_puart->print(F("AT+CIPSEND="));
    m_puart->println(len);
    if (recvFind(">", 5000)) {
        rx_empty();
        for (uint32_t i = 0; i < len; i++) {
            m_puart->write((char) pgm_read_byte(&buffer[i]));
        }
        return recvFind("SEND OK", 10000);
    }
    return false;
}
Esempio n. 3
0
bool ESP8266::sATCIPSENDSingle(String &str)
{
    rx_empty();
    m_puart->print("AT+CIPSEND=");
    m_puart->println(str.length());
    if (recvFind(">", 5000)) {
        rx_empty();
        for (uint32_t i = 0; i < str.length(); i++) {
            m_puart->write(str.charAt(i));
        }
        return recvFind("SEND OK", 10000);
    }
    return false;
}
Esempio n. 4
0
bool ESP8266::sATCIPSENDMultiple(uint8_t mux_id, const uint8_t *buffer, uint32_t len)
{
    rx_empty();
    m_puart->print(F("AT+CIPSEND="));
    m_puart->print(mux_id);
    m_puart->print(F(","));
    m_puart->println(len);
    if (recvFind(">", 5000)) {
        rx_empty();
        for (uint32_t i = 0; i < len; i++) {
            m_puart->write(buffer[i]);
        }
        return recvFind("SEND OK", 10000);
    }
    return false;
}
Esempio n. 5
0
bool ESP8266::eCWSTARTSMART(uint8_t type)
{
    rx_empty();
    m_puart->print(F("AT+CWSTARTSMART="));
    m_puart->println(type);
    return recvFind("OK");
}
Esempio n. 6
0
bool ESP::sATCIPSTO(uint32_t timeout)
{
	flush();
	this->serial->print(F("AT+CIPSTO="));
	this->serial->println(timeout);
	return recvFind(F("OK"), COMMAND_TIMEOUT);
}
Esempio n. 7
0
bool ESP8266::sATCIPSTO(uint32_t timeout)
{
    rx_empty();
    printAT("CIPSTO=");
    m_puart->println(timeout);
    return recvFind("OK");
}
Esempio n. 8
0
bool ESP8266::eATGSLP(uint32_t time)
{
    rx_empty();
    m_puart->print(F("AT+GSLP="));
    m_puart->println(time);
    return recvFind("OK");
}
Esempio n. 9
0
bool ESP8266::eATCIPSTAIP(String ip,String gateway,String netmask,uint8_t pattern)
{

    rx_empty();
    if (!pattern) {
        return false;
    }
    switch(pattern){
         case 1 :
            m_puart->print(F("AT+CIPSTA_DEF="));

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

    }
    m_puart->print(F("\""));
    m_puart->print(ip);
    m_puart->print(F("\",\""));
    m_puart->print(gateway);
    m_puart->print(F("\",\""));
    m_puart->print(netmask);
    m_puart->println(F("\""));
    return recvFind("OK");

}
Esempio n. 10
0
bool ESP::eATCWQAP(void)
{
	String data;
	flush();
	this->serial->println(F("AT+CWQAP"));
	return recvFind(F("OK"),COMMAND_TIMEOUT);
}
Esempio n. 11
0
bool ESP8266::eATCIPSTAMAC(String mac,uint8_t pattern)
{

    rx_empty();
    if (!pattern) {
        return false;
    }
    switch(pattern){
         case 1 :
            m_puart->print(F("AT+CIPSTAMAC_DEF="));

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

    }
    m_puart->print(F("\""));
    m_puart->print(mac);
    m_puart->println(F("\""));
    return recvFind("OK");

}
Esempio n. 12
0
bool ESP8266::eATSETUART(uint32_t baudrate,uint8_t pattern)
{
    rx_empty();
    if(pattern>3||pattern<1){
        return false;
        }
    switch(pattern){
        case 1:
            m_puart->print(F("AT+UART="));
            break;
        case 2:
            m_puart->print(F("AT+UART_CUR="));
            break;
        case 3:
             m_puart->print(F("AT+UART_DEF="));
             break;    
    }
    m_puart->print(baudrate);
    m_puart->print(F(","));
    m_puart->print(8);
    m_puart->print(F(","));
    m_puart->print(1);
    m_puart->print(F(","));
    m_puart->print(0);
    m_puart->print(F(","));
    m_puart->println(0);
    if(recvFind("OK",5000)){
    return true;
    }
    else{
    return false;
    }
 
}
Esempio n. 13
0
bool ESP8266::eATCWQAP(void)
{
    String data;
    rx_empty();
    m_puart->println(F("AT+CWQAP"));
    return recvFind("OK");
}
Esempio n. 14
0
bool ESP8266::eATE(uint8_t mode)
{
    rx_empty();
    m_puart->print(F("ATE"));
    m_puart->println(mode);
    return recvFind("OK");
}
Esempio n. 15
0
bool ESP8266::eATCWQAP(void)
{
    String data;
    rx_empty();
    sendAT("CWQAP");
    return recvFind("OK");
}
Esempio n. 16
0
///for releaseTCP (sync)
bool ESP8266::eATCIPCLOSESingle(void)
{
	//state = STATE_releaseTCP;

	rx_empty();
	m_puart->println("AT+CIPCLOSE");
	return recvFind("OK", 5000);
}
Esempio n. 17
0
///for send (sync)
bool ESP8266::sATCIPSENDSingle(const uint8_t *buffer, uint32_t len)
{
	///state = STATE_send;

	rx_empty();
	m_puart->print("AT+CIPSEND=");
	m_puart->println(len);
	if (recvFind(KEYWORD_CURSOR, 5000, KEYWORD_SEND_ERROR)) {
		rx_empty();
		for (uint32_t i = 0; i < len; i++) {
			m_puart->write(buffer[i]);
		}
		return recvFind(KEYWORD_SEND_OK, 10000, KEYWORD_SEND_ERROR);
	}

	return false;
}
Esempio n. 18
0
bool ESP::sATCIPSENDMultiple(uint8_t mux_id, const uint8_t *buffer, uint32_t len)
{
	flush();
	this->serial->print(F("AT+CIPSEND="));
	this->serial->print(mux_id);
	//this->serial->print('0');
	this->serial->print(F(","));
	this->serial->println(len);
	if (recvFind(F(">"), FIND_TIMEOUT)) {
		flush();
		for (uint32_t i = 0; i < len; i++) {
			this->serial->write(buffer[i]);
		}
		return recvFind(F("SEND OK"), FIND_OK_TIMEOUT);
	}
	return false;
}
Esempio n. 19
0
bool ESP8266::eATPING(String ip)
{
    rx_empty();
    m_puart->print(F("AT+PING="));
    m_puart->print(F("\""));
    m_puart->print(ip);
    m_puart->println(F("\""));
    return recvFind("OK",2000);
}
Esempio n. 20
0
///for leaveAP (sync)
bool ESP8266::eATCWQAP(void)
{
	//state = STATE_leaveAP;

	String data;
	rx_empty();
	m_puart->println("AT+CWQAP");

	return recvFind("OK");
}
Esempio n. 21
0
bool ESP8266::sATCIPSENDMultiple(uint8_t mux_id, const uint8_t *buffer, uint32_t len)
{
    rx_empty();
    printAT("CIPSEND=");
    m_puart->print(mux_id);
    m_puart->print(",");
    m_puart->println(len);
    if (recvFind(">", 5000)) {
        rx_empty();
        for (uint32_t i = 0; i < len; i++) {
			#if LOG_OUTPUT_DEBUG
        		Serial.write(buffer[i]);
        	#endif
            m_puart->write(buffer[i]);
        }
        return recvFind("SEND OK", 10000);
    }
    return false;
}
Esempio n. 22
0
bool ESP8266::eATCWAUTOCONN(uint8_t en)
{

    rx_empty();
    if(en>1||en<0){
        return false;
    }
    m_puart->print(F("AT+CWAUTOCONN="));
    m_puart->println(en);
    return recvFind("OK");

}
Esempio n. 23
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. 24
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);
	}
}
Esempio n. 25
0
/**
 * \brief envia pacote de dados
 * \param mux_id  >  0   envia o AT+HTTPDATA e os dados
 * \param mux_id ==  0  somente dados
 * \param mux_id == -1  aguarda retorno de dados
 * \return 0=erro, 1=OK
 */
boolean sATCIPSENDMultiple(int mux_id, uint8_t tipo_buffer, uint8_t *buffer, boolean flag_flush)
{
	int len;
	
	if (mux_id==-1) {
			return gprs.sendCommand(0);
	}

	//debugvar(freeMemory());
	if (tipo_buffer == POINTER_CHAR_RAM)
	len=strlen((char*)buffer);
	else
	len=strlen_P((char*)buffer);

	if (!len) return true;
	
	///	rx_empty();
	//if (bitRead(ccStatus,CC_DEBUG))	debugvar(freeMemory());
	#if DEBUG >= 1 || HAS_BLUETOOTH >= 1
	debugvar(len);
		uint8_t *b=buffer;
		for (uint16_t i = 0; i < len; i++) {
			if (tipo_buffer==POINTER_CHAR_PROGMEM) {
				SSdebug.write(pgm_read_byte(b++));
				} else {
				SSdebug.write(*b++);
			}
		} // for
	SSdebug.write('\n');

	#endif
	
	#ifdef GSM_CSTT
	//	esp8266Flush();
	SSwifi.print("AT+CIPSEND=");
	#if USE_MUX == 1
	SSwifi.print(mux_id);
	SSwifi.print(",");
	#endif
	SSwifi.print(len);
	SSwifi.print("\r\n");
	SSwifi.flush();
	if (recvFind(">",6000)) {
		PGM_PRINT("+");
		//esp8266Flush();
		#if 0
		if (tipo_buffer==POINTER_CHAR_PROGMEM) {
			#if 0
			char *u;
			if (len < SERIAL_TX_BUFFER_SIZE-1 && (u=(char*)malloc(SERIAL_TX_BUFFER_SIZE))) {
				strcpy_P(u,(char*)buffer);
				SSwifi.print(u);
				SSwifi.flush();
				free(u);
			} else
			#endif
			for (uint16_t i = 0; i < len; i++) {
				// SSdebug.write(pgm_read_byte(buffer));
				SSwifi.write(pgm_read_byte(buffer++));
			}
			}else {
			SSwifi.print((char*)buffer);
		}
		#else
		for (uint16_t i = 0; i < len; i++) {
			if (tipo_buffer==POINTER_CHAR_PROGMEM) {
				//			SSdebug.write(pgm_read_byte(buffer));
				SSwifi.write(pgm_read_byte(buffer++));
				}else {
				//				SSdebug.write(*buffer);
				SSwifi.write(*buffer++);
			}
		}
		#endif
		//		ret=recvFind("SEND OK", 5000);
		PGM_PRINT("* ");
		SSwifi.write(0x1a);
		recvString(str_ret, "SEND OK", "busy","link is", 10000,flag_flush);
		#if DEBUG > 0
		//if (bitRead(ccStatus,CC_DEBUG))
		debugln(str_ret);
		#endif
		if (!strncmp(str_ret,"SEND OK",7)) {
			//			PGM_PRINTLN("SOK");
			//delay(100);
			//SSwifi.flush();
			//eATCIPSTATUS();

			return true;
		}
		if (!strncmp(str_ret,"link",4)) {
			sATCIPCLOSEMulitple(mux_id);
		}
	}
	return false;
	#else
	if (mux_id>0) {
		sprintf_P(gprs.buffer,PSTR("AT+HTTPDATA=%d,5000"),mux_id);
		gprs.sendCommand(gprs.buffer,5000,"DOWNLOAD");
	}
	for (uint16_t i = 0; i < len; i++) {
		if (tipo_buffer==POINTER_CHAR_PROGMEM) {
			SSwifi.write(pgm_read_byte(buffer++));
		} else {
			SSwifi.write(*buffer++);
		}
	}
	delay(150);
	return 1; 
	#endif
}
Esempio n. 26
0
bool ESP8266::eATCIPCLOSESingle(void)
{
    rx_empty();
    sendAT("CIPCLOSE");
    return recvFind("OK", 5000);
}
Esempio n. 27
0
bool ESP8266::eATCIPCLOSESingle(void)
{
    rx_empty();
    m_puart->println(F("AT+CIPCLOSE"));
    return recvFind("OK", 5000);
}
Esempio n. 28
0
bool ESP8266::eATRESTORE(void)
{
    rx_empty();
    m_puart->println(F("AT+RESTORE"));
    return recvFind("OK");
}
Esempio n. 29
0
bool ESP8266::eAT(void)
{
    rx_empty();
    m_puart->println("AT");
    return recvFind("OK");
}
Esempio n. 30
0
bool ESP8266::eATRST(void) 
{
    rx_empty();
    sendAT("RST");
    return recvFind("OK");
}