Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
EDIT
#1
Ho un pannello con una lista di EDIT (ce ne sono 13) e sto usando gli ID da E1 a ED (come da specifica).
Gli EDIT da E1 a E9 mi funzionano bene mentre quelli da EA a ED sembra che non funzionino.
Se modifico, ad esempio, E9 scrivendo 10 ricevo un messaggio #E9:10; se faccio la stessa cosa su uno degli EDIT da EA a ED dovrei ricevere #EA:10 per esempio. Invece sembra che ricevo #E1:0 sempre.
Invertendo, per esempio, E9 con EA il problema si presenta sempre (ovviamente non sul nuovo E9 ma sul nuovo EA).
Qualche idea di che cosa può succedere?
Reply
#2
Ciao Geo63,
nel frattempo che ricontrolliamo la possibilità di usare più di 10 oggetti Edit, ti faccio notare che se gli oggetti li usi su più schermate (cioè su pannelli diversi), puoi "reciclare" gli ID degli oggetti, l'importante è che per ogni pannello siano univioci.
Quindi puoi usare nel "pannello1" l'oggetto edit con ID=1 e nel "pannello2" un altro oggetto edit sempre con ID=1
In questo caso, basta che nel tuo codice definisci una variabile (es. "panel_number") che tiene il riferimento di quale pannello si sta visualizzando sullo smartphone, cosi se ricevi un messaggio del tipo "#E1:xxx", lo gestirai in base a quale schermata stai visualizzando in quel momento.
Reply
#3
(02-17-2016, 12:33 PM)Technomaker Wrote: Ciao Geo63,
nel frattempo che ricontrolliamo la possibilità di usare più di 10 oggetti Edit, ti faccio notare che se gli oggetti li usi su più schermate (cioè su pannelli diversi), puoi "reciclare" gli ID degli oggetti, l'importante è che per ogni pannello siano univioci.
Quindi puoi usare nel "pannello1"  l'oggetto edit con ID=1 e nel "pannello2" un altro oggetto edit sempre con ID=1
In questo caso, basta che nel tuo codice definisci una variabile (es. "panel_number") che tiene il riferimento di quale pannello si sta visualizzando sullo smartphone, cosi se ricevi un messaggio del tipo "#E1:xxx", lo gestirai in base a quale schermata stai visualizzando in quel momento.

In questo caso però li sto utilizzando sullo stesso pannello.
Pensandoci potrebbe essere il caso che risponde con #E10:xxxx invece di #EA:xxxx?
Se così fosse si spiegherebbe tutto in quanto io faccio il test con substring(0,3), quindi fino a E9 mi da "#E9" e poi estraggo l'informazione con substring(4).toInt() che fino a E9 mi da xxxx. Se al posto di EA rispondesse con E10 avrei "#E1" con substring(0,3) e ":xxxx" con substring(4) e 0 con il successivo .toInt() perché c'è un errore di trasformazione dovuto ai ":".
In effetti mi viene proprio gestito #E1:0.
Reply
#4
Hai scritto "sembra che ricevo #E1:0 sempre" quindi non ne sei sicuro?
Hai provato ad abilitare il monitor della linea seriale della µPanel APP, in questo modo vedi esattamente che messaggio viene inviato
Reply
#5
(02-18-2016, 10:01 AM)per_max Wrote: Hai scritto "sembra che ricevo #E1:0 sempre" quindi non ne sei sicuro?
Hai provato ad abilitare il monitor della linea seriale della µPanel  APP, in questo modo vedi esattamente che messaggio viene inviato

La gestione del messaggio è la seguente:
   if (eventMsg.substring(0,3).equals("#E1"))  {event = evGame;};
   ....
   if (eventMsg.substring(0,3).equals("#E9"))  {event = evDisplayPeriod;};
   if (eventMsg.substring(0,3).equals("#EA"))  {event = evDisplayClock;};
   ....
   if (eventMsg.substring(0,2).equals("#E"))   {eventInfo = eventMsg.substring(4).toInt();};

Se scrivo su E1, E2, ..., E9 tutto ok, se scrivo su EA, ... mi viene gestito sempre E1, quindi, dopo elaborazione con substring e toInt, è come se il messaggio originale si trasformasse in #E1:0 sempre e una possibilità è quella che il messaggio originale sia #E10:xxxx in quanto la prima riga riconoscerebbe #E1 e l'ultima (toInt di :xxxx) riconoscerebbe 0 in quanto i : darebbero errore. In generale è come se ricevessi #E1n:xxxx che da sempre, dopo elaborazione, #E1:0.
In effetti la prova con il monitor della seriale della µPanel  APP non l'ho fatto (non ci avevo pensato, lo faccio stasera e vi faccio sapere) avevo invece utilizzato il monitor della seriale del IDE di Arduino in modalità debug dello sketch (non viene utilizzato ill modulo Wi Fi ma la USB) nel quale inviavo io stesso il messaggio #EA:21 che veniva gestito correttamente.
Reply
#6
Ciao,
abbiamo controllato e in effetti per l'oggetto EDIT definito con ID da A-J, l'app restituisce l'ID 10-19.
Nella prossima release dell'app pensiamo di sistemarlo, in modo da essere coerente anche con la definizione degli altri oggetti. Per adesso (versione APP 1.0.27), se definite l'EDIT con ID= A-J dovete aspettarvi un messaggio #E10..- #E19... .
Reply
#7
(02-18-2016, 01:01 PM)Technomaker Wrote: Ciao,
abbiamo controllato e in effetti per l'oggetto EDIT definito con ID da A-J, l'app restituisce l'ID 10-19.
Nella prossima release dell'app pensiamo di sistemarlo, in modo da essere coerente anche con la definizione degli altri oggetti. Per adesso (versione APP 1.0.27), se definite l'EDIT con ID= A-J dovete aspettarvi un messaggio #E10..- #E19... .

Ok grazie,
Modifico la routine per gestire sia A..J che 10..19.
Reply
#8
un normale oggetto edit potrebbe essere
E1-5r30!FFF:000;
dove di default visualizzo un valore zero, la mia domanda è:

è possibile associare il testo ad una variabile del microcontrollore, ossia
se io ho nel micro un valore 50 (o un testo non gestibile con slider o 
tasti up-down) che la casella edit mi visualizzi il valore 
attuale, ed io vado a variare un parametro che conosco e di conseguenza
dopo la variazione aggiornarlo con il valore del micro in modo da avere
la certezza che tutti i passaggi siano avvenuti ?
 

grazie
Reply
#9
L'unica soluzione che mi viene in mente per avere il feedback dal microprocessore è far
cambiare per un secondo il colore del campo testo
E1-5r30~1!FFF:V Batt;
#C2: s~1:#F00;
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)