Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
cambio pagina grafica
#1
salve
andando avanti con lo studio del sistema miupanel mi trovo adesso ad affrontare il seguente problema, devo cambiare pagina visualizzata dove ho altri comandi.
nello specifico ho creato queste 2 pagine :
String semaforo =  ("$P:Dgn25w;/2{B5,FFF*10:Set;||T#FF0*24:Garage 1.0 -BIV-;}/1{^{-!CCC%60,y35L1M*45:0:7.11,7.10,7.9;/5{-0^%90,y15M1#000*50:00;}|{-%60,y35!CCCT#F00*12:BASCULANTE;/1{B1~1%80,70#000!008,FFF*25:ON;}/8{B2~2%80,70#000!088g7.12;}}}/1{^{-!CCC%60,y35L2M*45:0:7.11,7.10,7.9;/5{-0^%90,y15M2#000*50:00;}|{-%60,y35!CCCT#F00*12:CANCELLO ESTERNO;/1{B3~3%80,70#000!008,FFF*25:ON;}/8{B4~4%80,70#000!088g7.12;}}}");

String pagPreset = ("$P:Dgn4w;/30{T#FF0*24:Setting;}/20/{-%100,y10!CCCT#000*12:TEMPO OPN/CLD BASCULANTE:;|E1%20,FFF:100;}/1/{-%100,y10!CCCT#000*12:TEMPO OPN/CLD CANCELLO ESTERNO:;|E2%20,FFF:100;}/1/{-%100,y10!CCCT#000*12:TEMPO OFF LUCE 1:;||||||||||||||||E3%20,FFF:120;}/1/{-%100,y10!CCCT#000*12:TEMPO OFF LUCE 2:;||||||||||||||||E4%20,FFF:120;}/50{B6,#CCC!008*15:SAVE & EXIT;}");

la prima chiamata semaforo é la principale, su di essa ho aggiunto un pulsante "Set" che dopo 3 pressioni dovrebbe farmi visualizzare la pagina chiamata pagPreset, su essa posso modificare alcuni timer (x esempio) poi x uscire da questa e ritornare sulla "main" ho creato un tasto chiamato "SAVE & EXIT".
visualizzo i richoami su arduino :
dal setup lancio la main con il seguente comando :   Serial.println(semaforo);


dalla main dopo la pressione di 3 volte il tasto di set dovrei entrare in pagina setup :
      if (Msg.equals("#B5P")){        // visuo pagina preset
        cntPagPreset = cntPagPreset + 1;
        if (cntPagPreset > 3){
          cntPagPreset = 0;
          Serial.println(pagPreset);
          }
      }

... ma non succede nulla, ossia la nuova pagina non viene caricata; se invece funzionasse poi dalla pagina setup premendo il tasto EXIT dovrei ritornare alla pagina main con il seguente codice :
      if (Msg.equals("#B6P")){        // visuo pagina normale
          Serial.println(semaforo);
          }

Ora come mai, dove sbaglio per fare questi cambi pagina ?
grazie
Reply
#2
HEI LA GENTE
NESSUNO DA DIRMI COME FARE UN CAMBIO PAGINA ?
GRAZIE
Reply
#3
Ciao,
nella frazione di codice che hai postato non vedo errori, a parte il fatto che devi premere 4 volte prima di entrare in quella routine di cambio pagina.
Ti consigli di indagare se effettivamente entri in quella routine, magari collega un led (o fai commutare qualcosa sul pannello per vedere visivamente se entri nella routine alla pressione del tasto).
Se non risolvi, posta una porzione di codice più ampia, possibilmente tutto lo sketch.
NOTA: Per postare codice sul forum è obbligatorio incollarlo all'interno della finestra "code" che puoi richiamare nel menù di edit del tuo post.
Esempio:

Code:
incollo qui il codice


Nel frattempo, ho costruito il pannello "pagPreset" con un altro approccio (usando le MACRO). La macro è utile quando si devono costruire pannelli che hanno una struttura che si ripere. Ho definito una macro K1 con 3 parametri (testo, id_edit, testo_edit) e la richiamo con la J1


Dgn4w;/30{T#FF0*24:Setting;}/20K1:/10{-!CCC%99,y10<{%70T#000*12:?;}|>{^E?%20!FFF:?;}}$J1(TEMPO OPN/CLD BASCULANTE:,1,100)J1(TEMPO OPN/CLD CANCELLO ESTERNO:,2,100)J1(TEMPO OFF LUCE 1:,3,100)J1(TEMPO OFF LUCE 2:,4,100)
Reply
#4
se non hai risolto, la prima cosa che mi viene in mente è la posizione dove hai dichiarato e penso posto a 0 il contatore  "cntPagPreset" della pressione del tasto "set" , attenzione se lo hai messo all'interno del loop main non aumenterà mai rimarrà sempre a 0, ogni volta che lo premi va a 1 poi immediatamente torna a 0.
Ciao
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)