Compare commits

..

No commits in common. 'cc1fd0c45859febd6f31c50614ef4c47d2c298e1' and 'a555d3e86777fc21046475dc588c904119972306' have entirely different histories.

  1. 3
      git add .bat
  2. 8
      lfs
  3. 1
      lfs.pub
  4. 8
      save
  5. 1
      save.pub
  6. 3
      src/controle.h
  7. 19
      src/loop.h
  8. 87
      src/webserver.h

3
git add .bat

@ -1,3 +0,0 @@
git add .
git commit -m "atualização automática"
git push

8
lfs

@ -1,8 +0,0 @@
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
QyNTUxOQAAACCinn9ApFnszSBd5xycYiMvJqqYpVdij1LkDbqm78uscwAAAKixJDHbsSQx
2wAAAAtzc2gtZWQyNTUxOQAAACCinn9ApFnszSBd5xycYiMvJqqYpVdij1LkDbqm78uscw
AAAECN2aFWQIJvjjISE5o7UTfkHRHepcGBWnXoinz/Y9vinqKef0CkWezNIF3nHJxiIy8m
qpilV2KPUuQNuqbvy6xzAAAAHmx1aXNmZXJuYW5kb3NhdXRoaWVyQGdtYWlsLmNvbQECAw
QFBgc=
-----END OPENSSH PRIVATE KEY-----

1
lfs.pub

@ -1 +0,0 @@
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKKef0CkWezNIF3nHJxiIy8mqpilV2KPUuQNuqbvy6xz luisfernandosauthier@gmail.com

8
save

@ -1,8 +0,0 @@
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABBqjZJSwz
M69t1xw9gB1Du0AAAAGAAAAAEAAAAzAAAAC3NzaC1lZDI1NTE5AAAAIFTyuzd9Kb6V05BN
chlM+qkmZrrOlwzGHZ3WwYt3Cmn+AAAAsAsVrGsIjMpEgjIaM4QdVaEckYifvLman9Jyqw
rx/A29KVEMeEdTiExhXB2WKHfwInN5bopQzxn4bzEt0gJG7JZGfnkGUQ15/WaWIaNO0s9p
Sb9lEDT982zjvlEWUmjLl7XbD9EUz3XXvnG/lT5MIwsrwBvKNDHmg8LQjf77dZIPWFIcZi
MxTZYxkkef8dz3icxjAfL3rDpiYqVvFpftV0x/gJadQpk/qa6eLLOZcgah
-----END OPENSSH PRIVATE KEY-----

1
save.pub

@ -1 +0,0 @@
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFTyuzd9Kb6V05BNchlM+qkmZrrOlwzGHZ3WwYt3Cmn+ luisfernandosauthier@gmail.com

3
src/controle.h

@ -178,6 +178,7 @@ void abastecimento()
setFont(MEDIUM, 7, 117, 132, 255, 255, 255); setFont(MEDIUM, 7, 117, 132, 255, 255, 255);
myGLCD.print((char*)"Enviando dados...", CENTER, 302); myGLCD.print((char*)"Enviando dados...", CENTER, 302);
qntEnvPend++;
delayYield(2000); delayYield(2000);
@ -313,8 +314,6 @@ void abastecimento()
file.close(); file.close();
} }
enviosPendentes();
LOGLN(F("Enviando dados de abastecimento...")); LOGLN(F("Enviando dados de abastecimento..."));
if (MQTT_connected == true) if (MQTT_connected == true)

19
src/loop.h

@ -50,15 +50,15 @@ void loop()
if (indiceMenu == 0) { if (indiceMenu == 0) {
if (MQTT_connected == true) { if (MQTT_connected == true) {
unsigned long intervaloEnvio = (qntEnvPend > 0) ? 10000UL : (INTERVALO_ENVIO_ABASTECIMENTO * 60000UL); if ((millis() - envAbastecimentoMillis) > (INTERVALO_ENVIO_ABASTECIMENTO * 60000UL)) {
if ((millis() - envAbastecimentoMillis) > intervaloEnvio) {
enviarAbastecimento(); enviarAbastecimento();
envAbastecimentoMillis = millis(); envAbastecimentoMillis = millis();
} }
} }
//Envia a cada X minutos se MQTT está conectado ou 5 segundos após ligar
if ((primeiroEnvioPendente && (millis() - envPendentesMillis) > 10000) if ((primeiroEnvioPendente && (millis() - envPendentesMillis) > 10000)
|| ((millis() - envPendentesMillis) > (INTERVALO_ENVIOS_PENDENTES * 60000UL))) || ((millis() - envPendentesMillis) > (INTERVALO_ENVIOS_PENDENTES * 60000UL) && MQTT_connected == true))
{ {
primeiroEnvioPendente = false; primeiroEnvioPendente = false;
enviosPendentes(); enviosPendentes();
@ -111,14 +111,6 @@ void loop()
} }
} }
if (MQTT_connected == true) {
unsigned long intervaloEnvio = (qntEnvPend > 0) ? 10000UL : (INTERVALO_ENVIO_ABASTECIMENTO * 60000UL);
if ((millis() - envAbastecimentoMillis) > intervaloEnvio) {
enviarAbastecimento();
envAbastecimentoMillis = millis();
}
}
if ((millis() - previousMillis) > 5000) // Executa funções a cada 5 segundos if ((millis() - previousMillis) > 5000) // Executa funções a cada 5 segundos
{ {
now = rtc.GetDateTime(); now = rtc.GetDateTime();
@ -127,6 +119,9 @@ void loop()
#ifdef DEBUG #ifdef DEBUG
printDateTime(); printDateTime();
#endif
#ifdef DEBUG
printLOG(); printLOG();
#endif #endif
@ -288,4 +283,4 @@ void loop()
menuRedrawPending = false; menuRedrawPending = false;
menuPrincipal(true); menuPrincipal(true);
} }
} }

87
src/webserver.h

@ -432,8 +432,7 @@ void atualizaEnviosPendentes( String mensagem)
return; return;
} }
bool recebidoAck = Json[F("recebido")].as<bool>(); if(Json[F("recebido")] == false)
if(!recebidoAck)
{ {
LOGLN(F("Recebido = false")); LOGLN(F("Recebido = false"));
return; return;
@ -477,7 +476,13 @@ void atualizaEnviosPendentes( String mensagem)
resp += " foi removido"; resp += " foi removido";
resp += "\"}"; resp += "\"}";
enviosPendentes(); if (qntEnvPend > 0) {
qntEnvPend--;
//Menu Principal
if (indiceMenu == 0) {
menuRedrawPending = true;
}
}
if(MQTT_connected == true) if(MQTT_connected == true)
{ {
@ -550,9 +555,8 @@ void enviarAbastecimento()
{ {
LOGLN(F("Enviando dados de abastecimento pendente")); LOGLN(F("Enviando dados de abastecimento pendente"));
StaticJsonDocument<600> Json; StaticJsonDocument<MQTT_MAX_PACKET_SIZE> Json;
char in_message[MQTT_MAX_PACKET_SIZE]; char pub_message[MQTT_MAX_PACKET_SIZE];
char out_message[MQTT_MAX_PACKET_SIZE];
byte tentativas = 0; byte tentativas = 0;
@ -580,74 +584,26 @@ void enviarAbastecimento()
LOGLN(F("Nao foi possivel abrir a pasta ou ela não existe")); LOGLN(F("Nao foi possivel abrir a pasta ou ela não existe"));
return; return;
} }
//modificacapo
while(file.openNext(&root, O_RDONLY))
{
if (file.isHidden())
{
file.close();
continue;
}
char currentFile[64];
file.getName(currentFile, 64);
bool isDir = file.isDir();
file.close();
if (isDir)
{
continue;
}
if (strstr(currentFile, ".txt") == 0)
{
continue;
}
char pathFile[96]; if(file.openNext(&root, O_RDONLY))
snprintf(pathFile, sizeof(pathFile), "%s/%s", "envios", currentFile); {
file = SD.open(pathFile, O_RDONLY); DeserializationError deserializeError = deserializeJson(Json, file);
if (!file)
{
continue;
}
size_t n = file.read(in_message, sizeof(in_message) - 1);
file.close(); file.close();
in_message[n] = '\0';
LOG(F("Lendo pendente: "));
LOGLN(pathFile);
LOG(F("Tamanho payload: "));
LOGLN(n);
DeserializationError deserializeError = deserializeJson(Json, in_message);
if (deserializeError) if (deserializeError)
{ {
LOG(F("Falha ao desserializar, movendo para envios_corrompidos: ")); LOG(F("deserializeJson() failed: "));
LOGLN(pathFile); LOGLN(deserializeError.f_str());
return;
if(!SD.exists("envios_corrompidos"))
{
SD.mkdir("envios_corrompidos");
}
char newPath[128];
snprintf(newPath, sizeof(newPath), "%s/%s", "envios_corrompidos", currentFile);
SD.rename(pathFile, newPath);
continue;
} }
if(MQTT_connected == true) if(MQTT_connected == true)
{ {
LOG(F("Publicando em: ")); serializeJson(Json, pub_message);
LOGLN(TOPICO_PUB_ENVIO_ABASTECIMENTO); MQTT.publish(TOPICO_PUB_ENVIO_ABASTECIMENTO, pub_message, false);
serializeJson(Json, out_message);
MQTT.publish(TOPICO_PUB_ENVIO_ABASTECIMENTO, out_message, false);
#ifdef DEBUG #ifdef DEBUG
LOG(F("Publicando pendente: "));
LOGLN(pathFile);
serializeJsonPretty(Json, Serial); serializeJsonPretty(Json, Serial);
#endif #endif
@ -657,7 +613,10 @@ void enviarAbastecimento()
{ {
LOGLN(F("MQTT desconectado!")); LOGLN(F("MQTT desconectado!"));
} }
break; }
else
{
LOGLN(F("Aparentemente a pasta esta vazia"));
} }
} }
if(file.isOpen()) if(file.isOpen())
@ -1981,4 +1940,4 @@ void lerRotaSD()
{ {
root.close(); root.close();
} }
} }
Loading…
Cancel
Save