Pages: [1]   Go Down
Author Topic: uso softSerial, differenza peek-read  (Read 361 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: 132
Posts: 10498
:(){:|:&};:
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

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Pages: [1]   Go Up
Jump to: