Variabile su Nextion Display

Buongiorno,
oggi ho un nuovo problema con una variabile globale su un Nextion Display:
ho messo una variabile globale nella prima pagina del display che contiene la pagina aperta per ogni istante, e la modifico correttamente dal display.

Il problema sorge quando leggo la variabile (con NexVariable) dal ESP32 a cui è collegato il display, se mi trovo nella pagina della variabile tutto bene, appena cambio pagina il valore della variabile letta è sempre vuoto, anche se verificando dal display il valore è settato correttamente!

Cosa nota oppure è un mio errore?

Detto questo il mio scopo è quello di sapere quale sia la pagina aperta, quindi se ci sono modi alternativi che vanno meglio sono ben accetti i consigli!!

Grazie in anticipo,
Alan

Posta qui il codice, o almeno le parti coinvolte, altrimenti difficile che ti si possa aiutare

Ciao e grazie per la risposta,

//Dichiarazione
NexVariable varPageSelected = NexVariable(0, 30, "varPageSelect");

...
//utilizzo
void aggiornaHomePage(InfoHome& info){
  char buff[20] = "";
  varPageSelected.getText(buff, sizeof(buff));
  if(String(buff) == "home"){
    .... 
}

Ok, ma ribadisco che secondo me non è un problema di lettura ma di visibilità... tant'è che se sono in "home" (page 0, ovvero la pag che contiene la variabie nel disp.) leggo tranquillamente il valore.
Credo che anche se l'oggetto varPageSelected nel display sia globale, se il display non è in quella specifica pagina in cui è presente varPageSelected l'ESP non è in grado di leggere quella variabile!!

Alan

Vista così penso anche io. Non avendo quel display non posso esserne sicuro, ma ad intuito e vedendo il costruttore direi di si, credo proprio che la variabile sia legata alla pagina. Cercando un poco in giro ho trovato vari post che dicono che la ".getValue" non funziona se non sei nella pagina specifica ("...does not work if you are not specifically on that page you need to read it from").

Non so dirti altro, mi spiace, lascio la parola a chi ha già usato quel display.

EDIT: in ogni caso, se ti serve solo conoscere la pagina corrente non potresti usare una normale variabile globale (magari numerica, con l'indice della pagina) da aggiornare quando cambi pagina, e leggere semplicemente quella?

Esiste comunque il comando "sendme" che restituisce ilnumero di pagina attuale sul Nextion.

Ciao, Ale.

Ciao,
lo avevo visto anche io;
ma esiste un handler che riceve questo valore e lo interpreta eseguendo una callback?

Io ho risolto in brutto modo mettendo nella preinizializzazione della pagina il comando (printh 65 0X 00 00 FF FF FF, dove X è il numero della pagina) che esegue il pop della pagina e ho agganciato a quello l'aggiornamento della enum.

Detto questo 1 volta su 5 perde l'evento, oltre al fatto che quando va in sleep automaticamente non c'è modo di saperlo, quindi non mi piace come soluzione ma è la migliore che io abbia trovato.

Alan

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.