Classes | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
qbrobotics_research_api::Communication Class Reference

Class that handles the communication with 7.X.X firmware devices. More...

#include <qbrobotics_research_api.h>

Inheritance diagram for qbrobotics_research_api::Communication:
Inheritance graph
[legend]

Classes

struct  ConnectedDeviceInfo
 Structure containing information about the type of device connected. More...
 

Public Member Functions

virtual uint8_t checksum (const std::vector< uint8_t > &data, uint32_t size)
 
virtual int closeSerialPort (const std::string &serial_port_name)
 Close the serial port if it belongs to the opened port set. More...
 
 Communication ()
 
 Communication (const serial::Serial::Timeout &timeout)
 
 Communication (uint32_t baud_rate)
 
 Communication (uint32_t baud_rate, const serial::Serial::Timeout &timeout)
 
virtual int createSerialPort (const std::string &serial_port_name)
 put in the class map serial_ports_ a newly created shared pointer Serial class that provides a portable serial port interface. More...
 
virtual int createSerialPort (const std::string &serial_port_name, const serial::Serial::Timeout &timeout)
 put in the class map serial_ports_ a newly created shared pointer Serial class that provides a portable serial port interface. More...
 
virtual int createSerialPort (const std::string &serial_port_name, uint32_t baud_rate)
 put in the class map serial_ports_ a newly created shared pointer Serial class that provides a portable serial port interface. More...
 
virtual int createSerialPort (const std::string &serial_port_name, uint32_t baud_rate, const serial::Serial::Timeout &timeout)
 put in the class map serial_ports_ a newly created shared pointer Serial class that provides a portable serial port interface. More...
 
virtual int deserializePackage (const std::vector< uint8_t > &package_in, uint8_t &device_id, uint8_t &command)
 
virtual int deserializePackage (const std::vector< uint8_t > &package_in, uint8_t &device_id, uint8_t &command, std::vector< int8_t > &data)
 
std::map< std::string, std::shared_ptr< serial::Serial > > getSerialPorts ()
 
virtual int listConnectedDevices ()
 
virtual int listConnectedDevices (const std::string &serial_port_name, std::vector< ConnectedDeviceInfo > &device_ids)
 List all the device id connected to the serial port. More...
 
virtual int listSerialPorts (std::vector< serial::PortInfo > &serial_ports_info)
 List all the serial ports with a qbrobotics device connected. More...
 
virtual int openSerialPort (const std::string &serial_port_name)
 Open the serial communication on the given serial port. More...
 
virtual int openSerialPort (const std::string &serial_port_name, serial::Serial::Timeout &timeout)
 Open the serial communication on the given serial port with the default baudate. More...
 
virtual int openSerialPort (const std::string &serial_port_name, uint32_t baud_rate)
 Open the serial communication on the given serial port with the default timeout. More...
 
virtual int openSerialPort (const std::string &serial_port_name, uint32_t baud_rate, serial::Serial::Timeout &timeout)
 Open the serial communication on the given serial port. More...
 
virtual int parsePackage (const std::string &serial_port_name, uint8_t device_id, uint8_t command)
 
virtual int parsePackage (const std::string &serial_port_name, uint8_t device_id, uint8_t command, std::vector< int8_t > &data_in)
 
virtual int readPackage (const std::string &serial_port_name, std::vector< uint8_t > &package_in)
 
virtual int readPackage (const std::string &serial_port_name, uint8_t &device_id, uint8_t &command)
 
virtual int readPackage (const std::string &serial_port_name, uint8_t &device_id, uint8_t &command, std::vector< int8_t > &data)
 
virtual int sendCommand (const std::string &serial_port_name, uint8_t device_id, uint8_t command)
 
virtual int sendCommand (const std::string &serial_port_name, uint8_t device_id, uint8_t command, const std::vector< int8_t > &data_out)
 
virtual int sendCommandAndParse (const std::string &serial_port_name, uint8_t device_id, uint8_t command)
 
virtual int sendCommandAndParse (const std::string &serial_port_name, uint8_t device_id, uint8_t command, const std::vector< int8_t > &data_out)
 
virtual int sendCommandAndParse (const std::string &serial_port_name, uint8_t device_id, uint8_t command, const std::vector< int8_t > &data_out, std::vector< int8_t > &data_in)
 
virtual int sendCommandAndParse (const std::string &serial_port_name, uint8_t device_id, uint8_t command, std::vector< int8_t > &data_in)
 
virtual int sendCommandAndParse (const std::string &serial_port_name, uint8_t device_id, uint8_t command, uint8_t max_repeats)
 
virtual int sendCommandAndParse (const std::string &serial_port_name, uint8_t device_id, uint8_t command, uint8_t max_repeats, const std::vector< int8_t > &data_out)
 
virtual int sendCommandAndParse (const std::string &serial_port_name, uint8_t device_id, uint8_t command, uint8_t max_repeats, const std::vector< int8_t > &data_out, std::vector< int8_t > &data_in)
 
virtual int sendCommandAndParse (const std::string &serial_port_name, uint8_t device_id, uint8_t command, uint8_t max_repeats, std::vector< int8_t > &data_in)
 
virtual int sendCommandBroadcast (const std::string &serial_port_name, uint8_t command)
 
virtual int sendCommandBroadcast (const std::string &serial_port_name, uint8_t command, const std::vector< int8_t > &data_out)
 
virtual int serializePackage (uint8_t device_id, uint8_t command, const std::vector< int8_t > &data, std::vector< uint8_t > &package_out)
 
virtual int serializePackage (uint8_t device_id, uint8_t command, std::vector< uint8_t > &package_out)
 
virtual int writePackage (const std::string &serial_port_name, const std::vector< uint8_t > &package_out)
 
virtual int writePackage (const std::string &serial_port_name, uint8_t device_id, uint8_t command)
 
virtual int writePackage (const std::string &serial_port_name, uint8_t device_id, uint8_t command, const std::vector< int8_t > &data)
 
virtual ~Communication ()=default
 

Static Public Member Functions

template<class T >
static void swapBytes (std::vector< T > &vector)
 
template<class T >
static void swapBytes (T &x)
 
template<class S , class T >
static std::vector< S > vectorCast (std::vector< T > vector)
 
template<class S , class T >
static std::vector< S > vectorCastAndSwap (std::vector< T > vector)
 
template<class S , class T >
static std::vector< S > vectorSwapAndCast (std::vector< T > vector)
 

Protected Member Functions

 Communication (const Communication &communication)
 
 Communication (const Communication &communication, const serial::Serial::Timeout &timeout)
 
bool isInSerialPorts (const std::string &serial_port_name)
 
bool isInSerialPortsInfo (const std::string &serial_port_name)
 
void SetUp () override
 
void TearDown () override
 

Protected Attributes

std::map< std::string, std::vector< ConnectedDeviceInfo > > connected_devices_
 
std::vector< std::unique_ptr< qbroboticsResearchAPI::Device > > devices_
 
std::vector< std::unique_ptr< qbroboticsResearchAPI::Device > > devices_not_init_
 
std::unique_ptr< qbroboticsResearchAPI::Device > fake_device_
 
std::shared_ptr< qbroboticsResearchAPI::Communication > handler_
 
std::vector< serial::PortInfoserial_ports_
 
std::map< std::string, std::shared_ptr< serial::Serial > > serial_ports_
 
uint32_t serial_ports_baud_rate_
 
std::map< std::string, std::set< uint8_t > > serial_ports_ids_
 
std::map< std::string, serial::PortInfoserial_ports_info_
 
serial::Serial::Timeout serial_ports_timeout_
 

Detailed Description

Class that handles the communication with 7.X.X firmware devices.

Definition at line 50 of file qbrobotics_research_api.h.

Constructor & Destructor Documentation

◆ Communication() [1/6]

Communication::Communication ( )

Definition at line 36 of file qbrobotics_research_api.cpp.

◆ Communication() [2/6]

Communication::Communication ( uint32_t  baud_rate)
explicit

Definition at line 39 of file qbrobotics_research_api.cpp.

◆ Communication() [3/6]

Communication::Communication ( const serial::Serial::Timeout timeout)
explicit

Definition at line 42 of file qbrobotics_research_api.cpp.

◆ Communication() [4/6]

Communication::Communication ( uint32_t  baud_rate,
const serial::Serial::Timeout timeout 
)
explicit

Definition at line 45 of file qbrobotics_research_api.cpp.

◆ ~Communication()

virtual qbrobotics_research_api::Communication::~Communication ( )
virtualdefault

◆ Communication() [5/6]

Communication::Communication ( const Communication communication)
explicitprotected

Definition at line 49 of file qbrobotics_research_api.cpp.

◆ Communication() [6/6]

Communication::Communication ( const Communication communication,
const serial::Serial::Timeout timeout 
)
explicitprotected

Definition at line 52 of file qbrobotics_research_api.cpp.

Member Function Documentation

◆ checksum()

uint8_t Communication::checksum ( const std::vector< uint8_t > &  data,
uint32_t  size 
)
virtual

Definition at line 453 of file qbrobotics_research_api.cpp.

◆ closeSerialPort()

int Communication::closeSerialPort ( const std::string &  serial_port_name)
virtual

Close the serial port if it belongs to the opened port set.

Parameters
serial_port_nameserial port to close
Returns
0 on success, -1 on error

Definition at line 149 of file qbrobotics_research_api.cpp.

◆ createSerialPort() [1/4]

int Communication::createSerialPort ( const std::string &  serial_port_name)
virtual

put in the class map serial_ports_ a newly created shared pointer Serial class that provides a portable serial port interface.

This method use default baud rate and timeout.

Parameters
serial_port_name

Definition at line 163 of file qbrobotics_research_api.cpp.

◆ createSerialPort() [2/4]

int Communication::createSerialPort ( const std::string &  serial_port_name,
const serial::Serial::Timeout timeout 
)
virtual

put in the class map serial_ports_ a newly created shared pointer Serial class that provides a portable serial port interface.

This method use default baud rate.

Parameters
serial_port_name
timeout

Definition at line 171 of file qbrobotics_research_api.cpp.

◆ createSerialPort() [3/4]

int Communication::createSerialPort ( const std::string &  serial_port_name,
uint32_t  baud_rate 
)
virtual

put in the class map serial_ports_ a newly created shared pointer Serial class that provides a portable serial port interface.

This method use default timeout.

Parameters
serial_port_name
baud_rate

Definition at line 167 of file qbrobotics_research_api.cpp.

◆ createSerialPort() [4/4]

int Communication::createSerialPort ( const std::string &  serial_port_name,
uint32_t  baud_rate,
const serial::Serial::Timeout timeout 
)
virtual

put in the class map serial_ports_ a newly created shared pointer Serial class that provides a portable serial port interface.

Parameters
serial_port_name
baud_rate
timeout

Definition at line 175 of file qbrobotics_research_api.cpp.

◆ deserializePackage() [1/2]

int Communication::deserializePackage ( const std::vector< uint8_t > &  package_in,
uint8_t &  device_id,
uint8_t &  command 
)
virtual

Definition at line 337 of file qbrobotics_research_api.cpp.

◆ deserializePackage() [2/2]

int Communication::deserializePackage ( const std::vector< uint8_t > &  package_in,
uint8_t &  device_id,
uint8_t &  command,
std::vector< int8_t > &  data 
)
virtual

Reimplemented in qbrobotics_research_api::CommunicationLegacy.

Definition at line 342 of file qbrobotics_research_api.cpp.

◆ getSerialPorts()

std::map<std::string, std::shared_ptr<serial::Serial> > qbrobotics_research_api::Communication::getSerialPorts ( )
inline

Definition at line 227 of file qbrobotics_research_api.h.

◆ isInSerialPorts()

bool Communication::isInSerialPorts ( const std::string &  serial_port_name)
protected

Definition at line 463 of file qbrobotics_research_api.cpp.

◆ isInSerialPortsInfo()

bool Communication::isInSerialPortsInfo ( const std::string &  serial_port_name)
protected

Definition at line 467 of file qbrobotics_research_api.cpp.

◆ listConnectedDevices() [1/2]

int Communication::listConnectedDevices ( )
virtual

Definition at line 95 of file qbrobotics_research_api.cpp.

◆ listConnectedDevices() [2/2]

int Communication::listConnectedDevices ( const std::string &  serial_port_name,
std::vector< ConnectedDeviceInfo > &  device_ids 
)
virtual

List all the device id connected to the serial port.

Parameters
serial_port_nameserial port name
[out]device_idsvector of ConnectedDeviceInfo
Returns
number of devices retrieved

Definition at line 108 of file qbrobotics_research_api.cpp.

◆ listSerialPorts()

int Communication::listSerialPorts ( std::vector< serial::PortInfo > &  serial_ports_info)
virtual

List all the serial ports with a qbrobotics device connected.

Parameters
serial_ports_infovector of serial::PortInfo
Returns
number of ports retrieved

Definition at line 59 of file qbrobotics_research_api.cpp.

◆ openSerialPort() [1/4]

int Communication::openSerialPort ( const std::string &  serial_port_name)
virtual

Open the serial communication on the given serial port.

Parameters
serial_port_namethe serial port name
Returns
0 on success, -1 on error

Definition at line 188 of file qbrobotics_research_api.cpp.

◆ openSerialPort() [2/4]

int Communication::openSerialPort ( const std::string &  serial_port_name,
serial::Serial::Timeout timeout 
)
virtual

Open the serial communication on the given serial port with the default baudate.

Parameters
serial_port_namethe serial port name
timeout
Returns
0 on success, -1 on error

Definition at line 196 of file qbrobotics_research_api.cpp.

◆ openSerialPort() [3/4]

int Communication::openSerialPort ( const std::string &  serial_port_name,
uint32_t  baud_rate 
)
virtual

Open the serial communication on the given serial port with the default timeout.

Parameters
serial_port_namethe serial port name
baud_rate
Returns
0 on success, -1 on error

Definition at line 192 of file qbrobotics_research_api.cpp.

◆ openSerialPort() [4/4]

int Communication::openSerialPort ( const std::string &  serial_port_name,
uint32_t  baud_rate,
serial::Serial::Timeout timeout 
)
virtual

Open the serial communication on the given serial port.

Parameters
serial_port_namethe serial port name
baud_rate
timeout
Returns
0 on success, -1 on error

Definition at line 200 of file qbrobotics_research_api.cpp.

◆ parsePackage() [1/2]

int Communication::parsePackage ( const std::string &  serial_port_name,
uint8_t  device_id,
uint8_t  command 
)
virtual

Definition at line 221 of file qbrobotics_research_api.cpp.

◆ parsePackage() [2/2]

int Communication::parsePackage ( const std::string &  serial_port_name,
uint8_t  device_id,
uint8_t  command,
std::vector< int8_t > &  data_in 
)
virtual

Reimplemented in qbrobotics_research_api::CommunicationLegacy.

Definition at line 226 of file qbrobotics_research_api.cpp.

◆ readPackage() [1/3]

int Communication::readPackage ( const std::string &  serial_port_name,
std::vector< uint8_t > &  package_in 
)
virtual

Reimplemented in qbrobotics_research_api::CommunicationLegacy.

Definition at line 388 of file qbrobotics_research_api.cpp.

◆ readPackage() [2/3]

int Communication::readPackage ( const std::string &  serial_port_name,
uint8_t &  device_id,
uint8_t &  command 
)
virtual

Definition at line 372 of file qbrobotics_research_api.cpp.

◆ readPackage() [3/3]

int Communication::readPackage ( const std::string &  serial_port_name,
uint8_t &  device_id,
uint8_t &  command,
std::vector< int8_t > &  data 
)
virtual

Reimplemented in qbrobotics_research_api::CommunicationLegacy.

Definition at line 380 of file qbrobotics_research_api.cpp.

◆ sendCommand() [1/2]

int Communication::sendCommand ( const std::string &  serial_port_name,
uint8_t  device_id,
uint8_t  command 
)
virtual

Definition at line 254 of file qbrobotics_research_api.cpp.

◆ sendCommand() [2/2]

int Communication::sendCommand ( const std::string &  serial_port_name,
uint8_t  device_id,
uint8_t  command,
const std::vector< int8_t > &  data_out 
)
virtual

Definition at line 259 of file qbrobotics_research_api.cpp.

◆ sendCommandAndParse() [1/8]

int Communication::sendCommandAndParse ( const std::string &  serial_port_name,
uint8_t  device_id,
uint8_t  command 
)
virtual

Definition at line 269 of file qbrobotics_research_api.cpp.

◆ sendCommandAndParse() [2/8]

int Communication::sendCommandAndParse ( const std::string &  serial_port_name,
uint8_t  device_id,
uint8_t  command,
const std::vector< int8_t > &  data_out 
)
virtual

Definition at line 287 of file qbrobotics_research_api.cpp.

◆ sendCommandAndParse() [3/8]

int Communication::sendCommandAndParse ( const std::string &  serial_port_name,
uint8_t  device_id,
uint8_t  command,
const std::vector< int8_t > &  data_out,
std::vector< int8_t > &  data_in 
)
virtual

Definition at line 296 of file qbrobotics_research_api.cpp.

◆ sendCommandAndParse() [4/8]

int Communication::sendCommandAndParse ( const std::string &  serial_port_name,
uint8_t  device_id,
uint8_t  command,
std::vector< int8_t > &  data_in 
)
virtual

Definition at line 278 of file qbrobotics_research_api.cpp.

◆ sendCommandAndParse() [5/8]

int Communication::sendCommandAndParse ( const std::string &  serial_port_name,
uint8_t  device_id,
uint8_t  command,
uint8_t  max_repeats 
)
virtual

Definition at line 273 of file qbrobotics_research_api.cpp.

◆ sendCommandAndParse() [6/8]

int Communication::sendCommandAndParse ( const std::string &  serial_port_name,
uint8_t  device_id,
uint8_t  command,
uint8_t  max_repeats,
const std::vector< int8_t > &  data_out 
)
virtual

Definition at line 291 of file qbrobotics_research_api.cpp.

◆ sendCommandAndParse() [7/8]

int Communication::sendCommandAndParse ( const std::string &  serial_port_name,
uint8_t  device_id,
uint8_t  command,
uint8_t  max_repeats,
const std::vector< int8_t > &  data_out,
std::vector< int8_t > &  data_in 
)
virtual

Reimplemented in qbrobotics_research_api::CommunicationLegacy.

Definition at line 300 of file qbrobotics_research_api.cpp.

◆ sendCommandAndParse() [8/8]

int Communication::sendCommandAndParse ( const std::string &  serial_port_name,
uint8_t  device_id,
uint8_t  command,
uint8_t  max_repeats,
std::vector< int8_t > &  data_in 
)
virtual

Definition at line 282 of file qbrobotics_research_api.cpp.

◆ sendCommandBroadcast() [1/2]

int Communication::sendCommandBroadcast ( const std::string &  serial_port_name,
uint8_t  command 
)
virtual

Definition at line 326 of file qbrobotics_research_api.cpp.

◆ sendCommandBroadcast() [2/2]

int Communication::sendCommandBroadcast ( const std::string &  serial_port_name,
uint8_t  command,
const std::vector< int8_t > &  data_out 
)
virtual

Definition at line 332 of file qbrobotics_research_api.cpp.

◆ serializePackage() [1/2]

int Communication::serializePackage ( uint8_t  device_id,
uint8_t  command,
const std::vector< int8_t > &  data,
std::vector< uint8_t > &  package_out 
)
virtual

Definition at line 418 of file qbrobotics_research_api.cpp.

◆ serializePackage() [2/2]

int Communication::serializePackage ( uint8_t  device_id,
uint8_t  command,
std::vector< uint8_t > &  package_out 
)
virtual

Definition at line 413 of file qbrobotics_research_api.cpp.

◆ SetUp()

void qbrobotics_research_api::Communication::SetUp ( )
inlineoverrideprotected

Definition at line 87 of file qbrobotics_research_api_communication.cpp.

◆ swapBytes() [1/2]

template<class T >
static void qbrobotics_research_api::Communication::swapBytes ( std::vector< T > &  vector)
inlinestatic

Definition at line 204 of file qbrobotics_research_api.h.

◆ swapBytes() [2/2]

template<class T >
static void qbrobotics_research_api::Communication::swapBytes ( T &  x)
inlinestatic

Definition at line 197 of file qbrobotics_research_api.h.

◆ TearDown()

void qbrobotics_research_api::Communication::TearDown ( )
inlineoverrideprotected

Definition at line 129 of file qbrobotics_research_api_communication.cpp.

◆ vectorCast()

template<class S , class T >
static std::vector<S> qbrobotics_research_api::Communication::vectorCast ( std::vector< T >  vector)
inlinestatic

Definition at line 210 of file qbrobotics_research_api.h.

◆ vectorCastAndSwap()

template<class S , class T >
static std::vector<S> qbrobotics_research_api::Communication::vectorCastAndSwap ( std::vector< T >  vector)
inlinestatic

Definition at line 216 of file qbrobotics_research_api.h.

◆ vectorSwapAndCast()

template<class S , class T >
static std::vector<S> qbrobotics_research_api::Communication::vectorSwapAndCast ( std::vector< T >  vector)
inlinestatic

Definition at line 222 of file qbrobotics_research_api.h.

◆ writePackage() [1/3]

int Communication::writePackage ( const std::string &  serial_port_name,
const std::vector< uint8_t > &  package_out 
)
virtual

Definition at line 442 of file qbrobotics_research_api.cpp.

◆ writePackage() [2/3]

int Communication::writePackage ( const std::string &  serial_port_name,
uint8_t  device_id,
uint8_t  command 
)
virtual

Definition at line 430 of file qbrobotics_research_api.cpp.

◆ writePackage() [3/3]

int Communication::writePackage ( const std::string &  serial_port_name,
uint8_t  device_id,
uint8_t  command,
const std::vector< int8_t > &  data 
)
virtual

Definition at line 436 of file qbrobotics_research_api.cpp.

Member Data Documentation

◆ connected_devices_

std::map<std::string, std::vector<ConnectedDeviceInfo> > qbrobotics_research_api::Communication::connected_devices_
protected

Definition at line 233 of file qbrobotics_research_api.h.

◆ devices_

std::vector<std::unique_ptr<qbroboticsResearchAPI::Device> > qbrobotics_research_api::Communication::devices_
protected

Definition at line 134 of file qbrobotics_research_api_communication.cpp.

◆ devices_not_init_

std::vector<std::unique_ptr<qbroboticsResearchAPI::Device> > qbrobotics_research_api::Communication::devices_not_init_
protected

Definition at line 135 of file qbrobotics_research_api_communication.cpp.

◆ fake_device_

std::unique_ptr<qbroboticsResearchAPI::Device> qbrobotics_research_api::Communication::fake_device_
protected

Definition at line 136 of file qbrobotics_research_api_communication.cpp.

◆ handler_

std::shared_ptr<qbroboticsResearchAPI::Communication> qbrobotics_research_api::Communication::handler_
protected

Definition at line 133 of file qbrobotics_research_api_communication.cpp.

◆ serial_ports_ [1/2]

std::vector<serial::PortInfo> qbrobotics_research_api::Communication::serial_ports_
protected

Definition at line 131 of file qbrobotics_research_api_communication.cpp.

◆ serial_ports_ [2/2]

std::map<std::string, std::shared_ptr<serial::Serial> > qbrobotics_research_api::Communication::serial_ports_
protected

Definition at line 235 of file qbrobotics_research_api.h.

◆ serial_ports_baud_rate_

uint32_t qbrobotics_research_api::Communication::serial_ports_baud_rate_
protected

Definition at line 237 of file qbrobotics_research_api.h.

◆ serial_ports_ids_

std::map<std::string, std::set<uint8_t> > qbrobotics_research_api::Communication::serial_ports_ids_
protected

Definition at line 132 of file qbrobotics_research_api_communication.cpp.

◆ serial_ports_info_

std::map<std::string, serial::PortInfo> qbrobotics_research_api::Communication::serial_ports_info_
protected

Definition at line 234 of file qbrobotics_research_api.h.

◆ serial_ports_timeout_

serial::Serial::Timeout qbrobotics_research_api::Communication::serial_ports_timeout_
protected

Definition at line 238 of file qbrobotics_research_api.h.


The documentation for this class was generated from the following files:


qb_device_driver
Author(s): qbroboticsĀ®
autogenerated on Thu Apr 27 2023 02:36:32