Thread Rating:
  • 1 Vote(s) - 3 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Oggetto Edit
#1
Ciao a tutti,
ho creato una text box tramite l'oggetto Edit in cui ho la necessità di inserire dei valori numerici (degli orari).
Ho notato però che alla chiusura e all'apertura dell'APP nel telefono il testo inserito scompare.
Qualcuno mi sa dare qualche indicazione su come fare a lasciar memorizzato il testo?
Reply
#2
Ciao Dok,
sarebbe meglio usare l'oggetto MESSAGGE, ma se vuoi comunque usare il l'EDIT, un modo consiste nell' aggiornare l'intero pannello (reinviando tutta la stringa col comando $P) in cui definisci l'oggetto edit con il nuovo "testo iniziale".
Reply
#3
L'oggetto MESSAGE mi definisce un testo statico già preimpostato o derivante da una qualche variabile all'interno dei codice di programmazione, mentre io avrei necessità di tenere memorizzato del testo che scrivo direttamente tramite l'app.

Sarebbe stato molto semplice se anche per l'oggetto EDIT, così come per l'oggetto MESSAGGE fosse stato funzionante ad esempio il codice:

Serial.print("#E0"); Serial.println("prova");
Reply
#4
Ciao Dok,
si hai ragione, ma la soluzione immediata c'è, per esempio fare come ti ho scritto. Fammi sapere se ti serve un esempio di sketch che lo pubblico.
Reply
#5
Avevo provato così, però non funziona:

Code:
#define ESP_PROGRAM_PIN  12
#define ESP_ENABLE_PIN   13

String testo;
String Msg;

void setup() {

 Serial1.begin(57600);        // Initialise serial 1 (WiFi Module)
 
 pinMode(ESP_ENABLE_PIN, OUTPUT);
 pinMode(ESP_PROGRAM_PIN, OUTPUT);


 // Set ESP module in RUN mode on reset
 digitalWrite(ESP_PROGRAM_PIN, HIGH);  
 digitalWrite(ESP_ENABLE_PIN, HIGH);    

 delay(5000);                 // Let's the module start
 // Discharge old partial messages
 Serial1.println("");
 // Enable real-time response
 Serial1.println("$PING 200");

 Serial1.println("$P:E1%60,8fi:;");

}

void loop() {

int c;
while ((c = Serial1.read()) > '\n') Msg += (char) c;  // Read incoming chars, if any, until new line
if (c == '\n')  // is message complete?
 {
   Serial.println(Msg); // abilito log seriale

if (Msg.substring(0,4).equals("#E1:")) {testo = Msg.substring(4); } 

 if (Msg.substring(0,7).equals("$ONLINE")) {
   Serial1.print("$P:E1%60,8fi:");
   Serial1.print(testo);
   Serial1.println(";");
}

Msg = "";
}
}
Se vuoi aggiungermi un esempio ne sarei grato.
Reply
#6
Risolto, nella memorizzazione della variabile andava aggiunto Msg.substring(0,4) ad equals("#E1:")) ..... altrimenti non funzionava (ho modificato quindi anche il codice soprastante).

Noto tra l'altro con piacere che le connessioni dell'APP tramite cloud sincronizzano contemporaneamente tutti i dispositivi collegati dando quindi la possibilità a più cellulari di visualizzare simultaneamente i pannelli, credo sia una feature implementata recentemente.
Reply
#7
Si, io però lo semplificherei ulteriormente: ogni volta che Arduino riceve il nuovo testo aggiorno tutto il pannello:



Code:
// codice per la scheda TOP03 (facilmente modificabile per Arduino UNO)


#define ESP_PROGRAM_PIN  12
#define ESP_ENABLE_PIN   13

String testo;
String Msg;

void setup() {

 Serial1.begin(57600);        // Initialise serial 1 (WiFi Module)

 pinMode(ESP_ENABLE_PIN, OUTPUT);
 pinMode(ESP_PROGRAM_PIN, OUTPUT);


 // Set ESP module in RUN mode on reset
 digitalWrite(ESP_PROGRAM_PIN, HIGH);
 digitalWrite(ESP_ENABLE_PIN, HIGH);

 delay(5000);                         // Let's the module start
 Serial1.println("");                 // Discharge old partial messages
 Serial1.println("$PING 200");  // Enable real-time response

 Serial1.println("$P:E1%60,8fi:;"); // Send Panel
}

void loop()
{
 int c;
 while ((c = Serial1.read()) > '\n') Msg += (char) c;  // Read incoming chars, if any, until new line
 if (c == '\n')  // is message complete?
 {
   Serial.println(Msg); // abilito log seriale

   if (Msg.substring(0, 4).equals("#E1:"))
   {
     testo = Msg.substring(4);

     // Invio nuovamente pannello col nuovo testo
     Serial1.print("$P:E1%60,8fi:");
     Serial1.print(testo);
     Serial1.println(";");
   }

   Msg = "";
 }
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)