Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
driver_svh::SVHReceiveThread Class Reference

Class for receiving messages from the serial device. More...

#include <SVHReceiveThread.h>

Public Member Functions

unsigned int receivedPacketCount ()
 return the count of received packets More...
 
void resetReceivedPackageCount ()
 resetReceivedPackageCount Resets the received package count to zero. This can be usefull to set all communication variables to the initial state More...
 
void run ()
 run method of the thread, executes the main program in an infinite loop More...
 
void stop ()
 stop the run() method More...
 
 SVHReceiveThread (const std::chrono::microseconds &idle_sleep, std::shared_ptr< Serial > device, ReceivedPacketCallback const &received_callback)
 SVHReceiveThread Constructs a new Receivethread. More...
 
 ~SVHReceiveThread ()
 Default DTOR. More...
 

Private Types

enum  tState {
  RS_HEADE_R1, RS_HEADE_R2, RS_INDEX, RS_ADDRESS,
  RS_LENGT_H1, RS_LENGT_H2, RS_DATA, RS_CHECKSU_M1,
  RS_CHECKSU_M2
}
 enum for receive packet state machine states More...
 

Private Member Functions

bool receiveData ()
 state machine processing received data More...
 

Private Attributes

driver_svh::ArrayBuilder m_ab
 pointer to array builder object for packet receive More...
 
uint8_t m_checksum1
 Checksum of packet. More...
 
uint8_t m_checksum2
 
std::atomic< bool > m_continue {true}
 Flag to end the run() method from external callers. More...
 
std::vector< uint8_t > m_data
 length of received serial data More...
 
std::chrono::microseconds m_idle_sleep
 sleep time during run() if idle More...
 
uint16_t m_length
 length of received serial data More...
 
std::atomic< unsigned int > m_packets_received
 packets counter More...
 
ReceivedPacketCallback m_received_callback
 function callback for received packages More...
 
tState m_received_state
 current state of the state machine More...
 
std::shared_ptr< Serialm_serial_device
 pointer to serial device object More...
 
unsigned int m_skipped_bytes
 counter for skipped bytes in case no packet is detected More...
 

Detailed Description

Class for receiving messages from the serial device.

Instantiate this class in client code and call its run() method in a separate thread. Data is passed to the caller via the provided callback.

Definition at line 67 of file SVHReceiveThread.h.

Member Enumeration Documentation

◆ tState

enum for receive packet state machine states

Enumerator
RS_HEADE_R1 
RS_HEADE_R2 
RS_INDEX 
RS_ADDRESS 
RS_LENGT_H1 
RS_LENGT_H2 
RS_DATA 
RS_CHECKSU_M1 
RS_CHECKSU_M2 

Definition at line 109 of file SVHReceiveThread.h.

Constructor & Destructor Documentation

◆ SVHReceiveThread()

driver_svh::SVHReceiveThread::SVHReceiveThread ( const std::chrono::microseconds &  idle_sleep,
std::shared_ptr< Serial device,
ReceivedPacketCallback const &  received_callback 
)

SVHReceiveThread Constructs a new Receivethread.

Parameters
idle_sleepsleep time during run() if no data is available
devicehandle of the serial device
received_callbackfunction to call uppon finished packet

Definition at line 47 of file SVHReceiveThread.cpp.

◆ ~SVHReceiveThread()

driver_svh::SVHReceiveThread::~SVHReceiveThread ( )
inline

Default DTOR.

Definition at line 81 of file SVHReceiveThread.h.

Member Function Documentation

◆ receiveData()

bool driver_svh::SVHReceiveThread::receiveData ( )
private

state machine processing received data

Definition at line 102 of file SVHReceiveThread.cpp.

◆ receivedPacketCount()

unsigned int driver_svh::SVHReceiveThread::receivedPacketCount ( )
inline

return the count of received packets

Definition at line 90 of file SVHReceiveThread.h.

◆ resetReceivedPackageCount()

void driver_svh::SVHReceiveThread::resetReceivedPackageCount ( )
inline

resetReceivedPackageCount Resets the received package count to zero. This can be usefull to set all communication variables to the initial state

Definition at line 96 of file SVHReceiveThread.h.

◆ run()

void driver_svh::SVHReceiveThread::run ( )

run method of the thread, executes the main program in an infinite loop

Definition at line 62 of file SVHReceiveThread.cpp.

◆ stop()

void driver_svh::SVHReceiveThread::stop ( )
inline

stop the run() method

Definition at line 87 of file SVHReceiveThread.h.

Member Data Documentation

◆ m_ab

driver_svh::ArrayBuilder driver_svh::SVHReceiveThread::m_ab
private

pointer to array builder object for packet receive

Definition at line 136 of file SVHReceiveThread.h.

◆ m_checksum1

uint8_t driver_svh::SVHReceiveThread::m_checksum1
private

Checksum of packet.

Definition at line 129 of file SVHReceiveThread.h.

◆ m_checksum2

uint8_t driver_svh::SVHReceiveThread::m_checksum2
private

Definition at line 130 of file SVHReceiveThread.h.

◆ m_continue

std::atomic<bool> driver_svh::SVHReceiveThread::m_continue {true}
private

Flag to end the run() method from external callers.

Definition at line 100 of file SVHReceiveThread.h.

◆ m_data

std::vector<uint8_t> driver_svh::SVHReceiveThread::m_data
private

length of received serial data

Definition at line 133 of file SVHReceiveThread.h.

◆ m_idle_sleep

std::chrono::microseconds driver_svh::SVHReceiveThread::m_idle_sleep
private

sleep time during run() if idle

Definition at line 103 of file SVHReceiveThread.h.

◆ m_length

uint16_t driver_svh::SVHReceiveThread::m_length
private

length of received serial data

Definition at line 126 of file SVHReceiveThread.h.

◆ m_packets_received

std::atomic<unsigned int> driver_svh::SVHReceiveThread::m_packets_received
private

packets counter

Definition at line 139 of file SVHReceiveThread.h.

◆ m_received_callback

ReceivedPacketCallback driver_svh::SVHReceiveThread::m_received_callback
private

function callback for received packages

Definition at line 148 of file SVHReceiveThread.h.

◆ m_received_state

tState driver_svh::SVHReceiveThread::m_received_state
private

current state of the state machine

Definition at line 123 of file SVHReceiveThread.h.

◆ m_serial_device

std::shared_ptr<Serial> driver_svh::SVHReceiveThread::m_serial_device
private

pointer to serial device object

Definition at line 106 of file SVHReceiveThread.h.

◆ m_skipped_bytes

unsigned int driver_svh::SVHReceiveThread::m_skipped_bytes
private

counter for skipped bytes in case no packet is detected

Definition at line 142 of file SVHReceiveThread.h.


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


schunk_svh_library
Author(s): Georg Heppner, Lars Pfotzer, Felix Exner, Johannes Mangler, Stefan Scherzinger, Pascal Becker
autogenerated on Fri Apr 14 2023 02:53:52