Pages: [1]   Go Down
Author Topic: uso softSerial, differenza peek-read  (Read 273 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 1
Posts: 160
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
#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());
}
« Last Edit: January 25, 2013, 06:09:40 am by aureliusss » Logged

0
Offline Offline
Shannon Member
****
Karma: 117
Posts: 10106
:(){:|:&};: TOX id: fcb8e918bef08581e23f6ddf9d4dba77697c25b217bf372736ed959a95fde36df5b8c5b90fbb
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Pages: [1]   Go Up
Jump to: