Ciao a tutti
Risolvendo un piccolo difetto nell'orologio NTP a matrici di LED che ho realizzato tempo fa, ho anche provato a sostituire le variabili contenenti SSID e pwd con due matrici dello stesso tipo e un for.
Non capisco perché così non si connette più alla rete WiFi... Forse il problema è con strcmp?...
Le parti tra /* e */ sono quelle della versione funzionante, escluse per provare con le matrici e il for.
Mi potete aiutare?
Grazie
Gianluca
const char* ssid[] = {"ReteMiaTP", "Retemia A5", "Guest"};
const char* pwd[] = {"pippo", "pippo", "" };
/*
char *ssid1 = "ReteMiaTP"; char *pwd1 = "pippo";
char *ssid2 = "Retemia A5"; char *pwd2 = "pippo";
char *ssid3 = "Guest"; char *pwd3 = "";
char *ssid4 = " "; char *pwd4 = " ";
char *ssid5 = " "; char *pwd5 = " ";
char *ssid6 = " "; char *pwd6 = " ";
char *ssid7 = " "; char *pwd7 = " ";
char *ssid8 = " "; char *pwd8 = " ";
char *ssid9 = " "; char *pwd9 = " ";
*/
void WiFiScan()
{
byte n_ssid=0;
byte n=WiFi.scanNetworks();
if(prima_conn_ok) scrive_orario();
memset(id,'\0',sizeof(id));
for (byte i=0; i<n; ++i) // WiFi.SSID(i) è un oggetto String, che deve essere convertito per poter essere confrontato con un char*.
{
strcpy(id, WiFi.SSID(i).c_str()); // WiFi.SSID(i) è un oggetto String, che deve essere convertito per poter essere conrontato con un char*.
for (byte z=0; z<sizeof(ssid)/sizeof(char); z++) // Non funziona nemmeno provando con solo z<4!
{
if(!strcmp(id, ssid[z])) {WiFi.begin(ssid[z], pwd[z]); n_ssid=z+1; break;}
}
/* if (!strcmp(id,ssid1)) {WiFi.begin(ssid1,pwd1); n_ssid=1; break;}
else if (!strcmp(id,ssid2)) {WiFi.begin(ssid2,pwd2); n_ssid=2; break;}
else if (!strcmp(id,ssid3)) {WiFi.begin(ssid3,pwd3); n_ssid=3; break;}
else if (!strcmp(id,ssid4)) {WiFi.begin(ssid4,pwd4); n_ssid=4; break;}
else if (!strcmp(id,ssid5)) {WiFi.begin(ssid5,pwd5); n_ssid=5; break;}
else if (!strcmp(id,ssid6)) {WiFi.begin(ssid6,pwd6); n_ssid=6; break;}
else if (!strcmp(id,ssid7)) {WiFi.begin(ssid7,pwd7); n_ssid=7; break;}
else if (!strcmp(id,ssid8)) {WiFi.begin(ssid8,pwd8); n_ssid=8; break;}
else if (!strcmp(id,ssid9)) {WiFi.begin(ssid9,pwd9); n_ssid=9; break;}
*/
... ... ...
}