Compare commits

...

2 Commits

  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

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

8
lfs

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

1
lfs.pub

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

8
save

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

1
save.pub

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

3
src/controle.h

@ -178,7 +178,6 @@ 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);
@ -314,6 +313,8 @@ 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) {
if ((millis() - envAbastecimentoMillis) > (INTERVALO_ENVIO_ABASTECIMENTO * 60000UL)) { unsigned long intervaloEnvio = (qntEnvPend > 0) ? 10000UL : (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) && MQTT_connected == true)) || ((millis() - envPendentesMillis) > (INTERVALO_ENVIOS_PENDENTES * 60000UL)))
{ {
primeiroEnvioPendente = false; primeiroEnvioPendente = false;
enviosPendentes(); enviosPendentes();
@ -111,6 +111,14 @@ 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();
@ -119,9 +127,6 @@ void loop()
#ifdef DEBUG #ifdef DEBUG
printDateTime(); printDateTime();
#endif
#ifdef DEBUG
printLOG(); printLOG();
#endif #endif
@ -283,4 +288,4 @@ void loop()
menuRedrawPending = false; menuRedrawPending = false;
menuPrincipal(true); menuPrincipal(true);
} }
} }

87
src/webserver.h

@ -432,7 +432,8 @@ void atualizaEnviosPendentes( String mensagem)
return; return;
} }
if(Json[F("recebido")] == false) bool recebidoAck = Json[F("recebido")].as<bool>();
if(!recebidoAck)
{ {
LOGLN(F("Recebido = false")); LOGLN(F("Recebido = false"));
return; return;
@ -476,13 +477,7 @@ void atualizaEnviosPendentes( String mensagem)
resp += " foi removido"; resp += " foi removido";
resp += "\"}"; resp += "\"}";
if (qntEnvPend > 0) { enviosPendentes();
qntEnvPend--;
//Menu Principal
if (indiceMenu == 0) {
menuRedrawPending = true;
}
}
if(MQTT_connected == true) if(MQTT_connected == true)
{ {
@ -555,8 +550,9 @@ void enviarAbastecimento()
{ {
LOGLN(F("Enviando dados de abastecimento pendente")); LOGLN(F("Enviando dados de abastecimento pendente"));
StaticJsonDocument<MQTT_MAX_PACKET_SIZE> Json; StaticJsonDocument<600> Json;
char pub_message[MQTT_MAX_PACKET_SIZE]; char in_message[MQTT_MAX_PACKET_SIZE];
char out_message[MQTT_MAX_PACKET_SIZE];
byte tentativas = 0; byte tentativas = 0;
@ -584,26 +580,74 @@ 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
if(file.openNext(&root, O_RDONLY)) while(file.openNext(&root, O_RDONLY))
{ {
DeserializationError deserializeError = deserializeJson(Json, file); if (file.isHidden())
{
file.close();
continue;
}
char currentFile[64];
file.getName(currentFile, 64);
bool isDir = file.isDir();
file.close(); file.close();
if (isDir)
{
continue;
}
if (strstr(currentFile, ".txt") == 0)
{
continue;
}
char pathFile[96];
snprintf(pathFile, sizeof(pathFile), "%s/%s", "envios", currentFile);
file = SD.open(pathFile, O_RDONLY);
if (!file)
{
continue;
}
size_t n = file.read(in_message, sizeof(in_message) - 1);
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("deserializeJson() failed: ")); LOG(F("Falha ao desserializar, movendo para envios_corrompidos: "));
LOGLN(deserializeError.f_str()); LOGLN(pathFile);
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)
{ {
serializeJson(Json, pub_message); LOG(F("Publicando em: "));
MQTT.publish(TOPICO_PUB_ENVIO_ABASTECIMENTO, pub_message, false); LOGLN(TOPICO_PUB_ENVIO_ABASTECIMENTO);
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
@ -613,10 +657,7 @@ 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())
@ -1940,4 +1981,4 @@ void lerRotaSD()
{ {
root.close(); root.close();
} }
} }

Loading…
Cancel
Save