Ciao a tutti!
Mi sta succedendo una cosa "strana" con il mio Arduino Ethernet. Quando provo a comunicare una stringa l'aduino prima manda al PC il primo carattere di quella stringa ( quindi sblocca la read del programma server ) e poi manda la stringa tutta intera. E' normale?
Vi posto il codice presente su arduino:
Ethernet.begin(_mac, _ip);
// Se la connessione riesce
if(_client.connect()) {
_connesso = true;
digitalWrite(_LEDA5OUT, HIGH);
// Invio messaggio di connessione al server
// ADD:"ID-Sensore";
String message = "ADD:" + String(_id, DEC) +";" ;
_client.println(message);
return 1;
}
else {
delay(5000);
return 0;
}
Ed il codice per la ricezione del messaggio sul server:
// Ascolto fino a che non arriva il terminatore di riga " ; "
do {
bytesRead = stream.Read(bytes, 0, 4096);
// Stringa in arrivo: ADD:"id_sensore"
data += ASCIIEncoding.ASCII.GetString(bytes, 0, bytesRead);
// Elimino spazi in arrivo
data = data.Trim();
MessageBox.Show("DATI: " + data);
MessageBox.Show("ultimo carattere: " + data[data.Length - 1].ToString());
}
while(data[data.Length-1].ToString() != ";");
In pratica prima mi arriva il carattere "A" e, successivamente mi arriva la stringa tutta intera.
Come mai?
Un saluto