Tenho um projeto extenso com a função abaixo, está funcionando, porém quero saber se existe algum erro de conceito ou necessidade de alocação prévia de memoria.
Minha duvida é motivada pelo fato que após adicionei esse trecho, o comportamento geral ficou instável com Guru Meditation Error.
typedef struct {
unsigned int checksum;
IPAddress MyIPAddr;
} APP_CONFIG;
APP_CONFIG AppConfig;
String interpreta(int opcao, bool rw, String info){
char vax[33];
memset(vax, '\0', 33);
switch(opcao){
case 10:
if(rw){
if(status_online) return "0101";
else return "0100";
} else
{
if(info.toInt())estado_geral=true;
else estado_geral=false;
}
break;
case 12:
if(rw){
sprintf(vax, "?1012%d.%d.%d.%d", AppConfig.MyIPAddr[0], AppConfig.MyIPAddr[1], AppConfig.MyIPAddr[2], AppConfig.MyIPAddr[3] );
return vax; //retorna o IP
}else AppConfig.MyIPAddr.fromString(info);//atualiza IP
break;
//repete para demais verificações de CASES;
default:
}
return "nada"; //retorna algo
}// fim funcao interpreta
Tags:
Bom dia,
Qual microcontrolador ? Possui algum módulo acoplado?
Qual IDE usada?
ESP32 de 2 cores, IDE Arduino
Placa possui acoplado LCD 2X20, um leitor de código de barras via serial, conexão TCP/IP RJ45 e esses recursos estão operando
ESP32 com conexão TCP/IP RJ45.
Qual seria esse modulo? Não conheço.
No seu programa consta comunicação IP.
é uma placa com circuitos extras , é um projeto comercial.
Estou desconfiado que algo estoura o heap. Pois bluetooth BLE parou de funcionar
" Guru Meditation Error " é um erro grave.
O programa estava tentando fazer algo imposível.
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-gui...
Em qual opção trava ?
Case 10 ou case 12?
Tente isolar o programa por partes.
Bom dia,
de onde vem o tipo IPAddress (linha 3 do código) ?
"O comando typedef é usado para criar “sinônimo” ou um “alias” para tipos de dados existentes. Então na prática podemos dizer que estamos renomeando um tipo de dados. A renomeação de tipos facilita a organização e o entendimento do código."
Bom dia,
Achei isso :
https://forum.arduino.cc/t/using-memset/267145
https://www.programmingelectronics.com/sprintf-arduino/
Recomendo que faça as alterações necessárias.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por