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!!
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!!
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?
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.