Go Down

Topic: uso softSerial, differenza peek-read (Read 387 times) previous topic - next topic

aureliusss

Jan 25, 2013, 11:57 am Last Edit: Jan 25, 2013, 12:09 pm by aureliusss Reason: 1
come già scritto nel titolo mi saprete speigare la differenza fra le funzioni peek() e read()? ho letto i reference ma non riesco esattamente a capire la differenza.

Devo controllare un TDR via rs232, e lo devo fare tramite arduino.
il TDR riceve stringhe di comandi con terminatore CR e restituisce stringhe di risposta con terminatore CR.
in particolare al comando ":S_VP 0.503B\r" dovrebbe rispondere con ":$S_VPòJ"

questo il codice che ho scritto:
Code: [Select]
#include <SoftwareSerial.h>
SoftwareSerial tdr(6,7);
void setup(){
  Serial.begin(57600);
  tdr.begin(57600);
 
  tdr.print(":S_VP 0.503B\r");
}

void loop(){
 
  Serial.println(tdr.peek());
}

lesto

la read prende il primo carattere nel buffer, lo elimina dal buffer e te lo restituisce. Quindi alla prossima read leggerai il carattere successivo.
La peek invece non lo cancella, quindi con ogni peek leggi sempre il primo carattere del buffer.

peek() può essere utile in alcuni casi particolari, ma in generale conviene sempre usare read() per evitare di fare casini come loop infiniti sullo stesso carattere
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Go Up