/SerialPort

:large_orange_diamond: C++ Library for Serial Communication with Arduino

Primary LanguageC++MIT LicenseMIT

SerialPort

C++ Library for Serial Communication with following criteria

  • Plain C++ Compatible
  • Windows Supported
  • Include and Run Type Library
  • supports softwareserial
  • supports serial event
  • fixed minor bugs

Documentation

Here is a blog post about the library

Initialization

#include "SerialPort.hpp"
#include <iostream>

const char *portName = "\\\\.\\COM20";

//Declare a global object
SerialPort *arduino;

int main(void)
{
  arduino = new SerialPort(portName);
  std::cout << "Is connected: " << arduino->isConnected() << std::endl;
}

Sending Data

#define DATA_LENGTH 255

#include "SerialPort.hpp"
#include <iostream>

const char *portName = "\\\\.\\COM20";

//Declare a global object
SerialPort *arduino;

//Here '\n' is a delimiter 
const char *sendString = "Hello World\n"; 

int main(void)
{
  arduino = new SerialPort(portName);
  if (arduino->isConnected()){
    bool hasWritten = arduino->writeSerialPort(sendString, DATA_LENGTH);
    if (hasWritten) std::cout << "Data Written Successfully" << std::endl;
    else std::cerr << "Data was not written" << std::endl;
  }
}

Receiving Data

#define DATA_LENGTH 255

#include "SerialPort.hpp"
#include <iostream>

const char *portName = "\\\\.\\COM20";

//Declare a global object
SerialPort *arduino;

char receivedString[DATA_LENGTH];

int main(void)
{
  arduino = new SerialPort(portName);
  if (arduino->isConnected()){
    int hasRead = arduino->readSerialPort(receivedString, DATA_LENGTH);
    if (hasRead) std::cout <<  receivedString << "\n";
    else std::cerr << "Error occured reading data" << "\n";
  }
}