Получение данных


Получение размера полученных данных

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

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);
}