Forums

Full Version: Panel non visualizzato
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Invio questi due panel su un iPhone.
Devo visualizzare il primo panel che rimane in attesa del tasto "START" e poi deve visualizzare il secondo panel, ma non visualizzo niente.
Non capisco dove sta l'errore, ho bisogno di un aiuto.
Saluti
Code:
/*********************************************************
*   Erogatore v 2.0
*   12 dicembre 2018
*   Arduino UNO e uPanel
*   Stepper motor 28BYJ-48
*   EzioGi
**********************************************************/

void setup() {
 Serial.begin(57600);
 delay(3000);
 Serial.println("");
 SendInitScreen();  
 }

void SendInitScreen()        
 {
  Serial.print("D!28E;//{^*30%80,100!28B,144{ht2,000,1{*9T:Erogatore;_*9T:di crocchette;}}");
  Serial.println("/3{*5T:versione 2.0;}_{*4T:EzioGi;}}//20*15B0:START;");
  }
 
void SendPanel()
 {
 Serial.print("D!06F;/{-r30!228,114*15{T:Automatico;|L13G:0:;_T:Riserva;|L22R:0;}|{^*10L35:0;&L45:0;_T:Erogazioni;}}");
 Serial.println("/*11WAG:0;/20A1-*20-5r20!00F,DDD>:0:10:100:!F00;/20{-r30!228,114*15{T:Allarme 1;|L32Y:0;_T:Allarme 2;|L42B:0;T:Allarme 3;|L53G:0;_T:Allarme 4;|L62R:0;}");
 }
 
void loop() {


}
Ho corretto il codice aggiungendo "\n$P" e adesso mi visualizza il primo pannello ma se premo start non passa a visualizzare il secondo pannello.
Da monitor abilitato vedo che mi arriva indietro il comando "#B0P" ma non succede niente.
Ho copiato un pezzo dello sketch  che mi serviva dallo sketch "Volmetro".
Ciò nonostante non funziona, non viene interpretato dall'istruzione if (Msg.substring(0,4).equals("#B0P")) SendPanel();  // Display Panel
Anche se premo il tasto manuale non funziona.
Non capisco il perchè.
Il codice è:
Code:
String Msg;
long int n = 0;  // Contatore
unsigned int Rsv = 20;    // Riserva
unsigned int Max = 100;  // Massimo

void setup() {
 
 Serial.begin(57600);
 delay(3000);
 SendSplashScreen();
 
}

void SendSplashScreen()        
 {
  Serial.print("\n$P:D!06F;//{^*30%80,100!22B,14F{ht2,000,1{*9T:Erogatore;_*9T:di crocchette;}}");
  Serial.println("/3{*5T:versione 3.0;}_{*4T:EzioGi;}}/20*15B0:START;");
}
 
void SendPanel()
 {
 Serial.print("\n$P:D!06F;/{-r30!228,114*15{T:Automatico;|L13G:1:;_T:Riserva;|L22R:0;}|{^*10L35:0;&L45:0;_T:Erogazioni;}}");
 Serial.print("/*11W0G:0;/20A1-*20-5r20!00F,DDD>:0:100:100:!00F;{T#FFF*15fa:% livello crocchette;}");
 Serial.println("//20{-r30!228,114*15{T:Allarme 1;|L52Y:0;_T:Allarme 2;|L62B:0;T:Allarme 3;|L73G:0;_T:Allarme 4;|L82R:0;}");
 }
 
void loop() {
 
int c;
 while ((c = Serial.read()) > '\n') Msg += (char) c;  // Read incoming chars, if any, until new line
 if (c == '\n')                                       // is message complete?
 {
   if (Msg.substring(0,4).equals("#B0P")) SendPanel();  // Display Panel
   if (Msg.substring(0,4).equals("#W01")) Manuale();    // una erogazione manuale
  }

Msg = "";  
}

//******************** Funzioni ***************************

void Manuale()
 {
   Serial.println("#L130");  // Spegne il led L1
   Serial.println("#W01");   // Accende il Switch
   Erogaz();  // Eroga una porzione
   IncrCont();   // Incrementa Contatore Erogazioni
   DecrBarraAna(); // Decrementa livello barra A1
   delay(3000);    // ritardo fittizio, poi verrà tolto
   Serial.println("#L131");  // Accende il led L1
   Serial.println("#W01");   // Spegne il Switch
 // Torna in automatico tramite interrup generato dal RTC
 }