Armazenado QUERY para envio posterior no Arduino wifi

Bom dia Srs, 

Estou com dificuldades em entender como poderia fazer para armazenar uma QUERY caso a conexao com o banco de dados seja interrompida.

Meu projeto consistem e salvar a cada 10 segundos um valor no banco, e caso a conexão caia, esta query deve ser armazenada na fila para envio quando a rede retornar.

Atualmente utilizo o código abaixo com a lib do ChuckBell.

#include <Ethernet.h> 
#include <MySQL_Connection.h>
#include <MySQL_Cursor.h>
byte mac_addr[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress server_addr(10,0,1,35); // IP of the MySQL *server* here
char user[] = "root"; // MySQL user login username
char password[] = "secret"; // MySQL user login password

int status_banco; // variavel que recebe status banco, 0 para nao disponivel e 1 para disponivel.
unsigned long millisTarefa1 = millis();

// Query de dados
char INSERT_SQL[] = "INSERT INTO test_arduino.hello_arduino (message) VALUES ('Hello, Arduino!')";
EthernetClient client;
MySQL_Connection conn((Client *)&client);

void setup()
{
Serial.begin(115200);
while (!Serial);
Ethernet.begin(mac_addr);
Serial.println("Connecting...");
func_conecta_banco();
}

void loop()
{
func_conecta_banco();

if((millis() - millisTarefa1) < 10000)
{

if (status_banco == 1)
{
func_salvar_dados(); // função que executa a query
}
if (status_banco == 0)
{
// nesse ponto cria a fila de query
}
}
}

void func_conecta_banco();
if (conn.connect(server_addr, 3306, user, password))
{
status_banco = 1;
delay(1000);
} else {
Serial.println("Connection failed.");
status_banco = 0;
}

void func_salvar_dados()
{
Serial.println("Salvando dados");
MySQL_Cursor *cur_mem = new MySQL_Cursor(&conn);
cur_mem->execute(INSERT_SQL);
delete cur_mem;
}



Exibições: 30

Responder esta

© 2021   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço