Sending Data


Getting the Free Space in Send Buffer

You can get the free space in send buffer by using availableForWrite() function.

port.availableForWrite()

This function returns the size of free space (byte in integer) in send buffer.

Flushing the Send Buffer

You can flush the send buffer by using flush() function.

port.flush()

Sending Data

You can send data by using write() function.

port.write(byte)
port.write(wbuf, wlen)

Example

#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();
    int rxlen = port.available(); 

    if(rxlen > 0) {
        if(rxlen <= txfree) {
            int rwlen; // read and write length

            if(rxlen <= BUFFER_SIZE) 
                rwlen = rxlen;
            else
                rwlen = BUFFER_SIZE;

            // receive data
            rwlen = port.readBytes(rwbuf, rwlen);

            // send data
            port.write(rwbuf, rwlen);

            // print data to serial monitor of Arduino IDE
            Serial.write(rwbuf, rwlen);
        }
    }

    delay(1);
}