available() 함수를 이용하여 시리얼 포트로 수신된 데이터 크기를 읽을 수 있습니다.
port.available()
이 함수는 호출 시점에 시리얼포트에서 읽을 수 있는 데이터의 크기(바이트 수)를 정수형태로 반환합니다.
peek() 함수를 이용하여 시리얼 포트로 수신된 데이터 중 첫 번째 바이트를 확인할 수 있습니다.
port.peek()
이 함수는 버퍼의 데이터를 읽지는 않고 확인만 합니다. 따라서 이 함수를 호출해도 해당 데이터는 버퍼에 그대로 남아있습니다.
read() 함수를 이용하여 시리얼 포트로 수신된 데이터 중 첫 번째 바이트를 읽을 수 있습니다.
port.read()
#include <PhpocExpansion.h>
#include <Phpoc.h>
#define BUFFER_SIZE 100 // read and write buffer size, reduce it if memory of Arduino is not enough
byte spcId = 1;
ExpansionSerial port(spcId);
byte rwbuf[BUFFER_SIZE]; // read and write buffer
void setup() {
Serial.begin(9600);
while(!Serial)
;
Phpoc.begin(PF_LOG_SPI | PF_LOG_NET);
Expansion.begin();
port.begin("115200N81T");
}
void loop() {
int txfree = port.availableForWrite();
// gets the size of received data
int rxlen = port.available();
if(rxlen > 0) {
// reads the next byte of incoming serial data
int value = port.read();
Serial.print("read : ");
Serial.println(value);
}
delay(1);
}