Вы можете узнать полученный размер данных из последовательного порта при помощи функции 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);
}