[Linux-Biella] aiuto su variabili arduino?

Jumping Jack jumpingjack a jumpingjack.org
Ven 7 Apr 2017 15:55:56 CEST


On 07/04/2017 15:34, Leonardo Buffa wrote:
>
>
> On 06/04/2017 12:00, Leonardo Buffa wrote:
>
> allora questa e' la situazione:
>
>
> int switchState = 0;
>
>
> void loop() {
>   // listen for incoming clients
>   EthernetClient client = server.available();
>   if (client) {
>     Serial.println("new client");
>     while (client.connected()) {
>       if (client.available()) {
>         char c = client.read();
>         Serial.write(c);
>         switchState = int(c);
>       }
>     }
>     // give the web browser time to receive the data
>     delay(1);
>     // close the connection:
>     client.stop();
>     Serial.println("client disconnected");
>     Serial.print(switchState);
>   }
> }
>
> qualunque cosa io gli mandi con: echo $qualcosa |nc 192.168.1.10 80
>
> switchState assume sempre valore 10...

non so perché ti dia 10 sembra un linefeed oppure sarà il byte 
precedente a quello putanto da c.

> se invece tolgo la riga "switchState = ..." esso rimane a zero
>
> invece il solito if ( c = "1" ); { switcState = 1 } eccetera funziona 
> :(((
suppongo c=="1"
inoltre  "1" non è #1 ma #49#0 quindi controlla se c è uguale a 49 che è 
corretto

> pero' mannaggia la miseria non riesco a scrivere correttamente il 
> codice per farlo direttamente... tanto dovrano arrivare tre valori a "c"
> 0 1 e 2 e saranno inviati da software...
> e mettere tre if mi rode parecchio quando con una riga potrei 
> aggiustare la variabile!
>
switchstate=(int) c-'0' (o qualcosa del genere devi vedere con i cast 
come fare)


Maggiori informazioni sulla lista Linux