Public Types | Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
xbot::PacketFinderBase Class Reference

Provides simple packet finder which may be consist of stx, etx, payload, ... More...

#include <packet_finder.hpp>

Inheritance diagram for xbot::PacketFinderBase:
Inheritance graph
[legend]

Public Types

typedef ecl::PushAndPop< unsigned char > BufferType
 
enum  packetFinderState {
  clearBuffer = 0, waitingForStx, waitingForPayloadSize, waitingForPayloadToEtx,
  waitingForEtx
}
 

Public Member Functions

virtual bool checkSum ()
 
void clear ()
 
void configure (const std::string &sigslots_namespace, const BufferType &putStx, const BufferType &putEtx, unsigned int sizeLengthField, unsigned int sizeMaxPayload, unsigned int sizeChecksumField, bool variableSizePayload)
 
void enableVerbose ()
 
void getBuffer (BufferType &bufferRef)
 
void getPayload (BufferType &bufferRef)
 
unsigned int numberOfDataToRead ()
 
 PacketFinderBase ()
 
virtual bool update (const unsigned char *incoming, unsigned int numberOfIncoming)
 
virtual ~PacketFinderBase ()
 

Public Attributes

enum packetFinderState state
 

Protected Member Functions

bool waitForEtx (const unsigned char incoming, bool &foundPacket)
 
bool waitForPayloadAndEtx (const unsigned char *incoming, unsigned int numberOfIncoming, bool &foundPacket)
 
bool waitForPayloadSize (const unsigned char *incoming, unsigned int numberOfIncoming)
 
bool WaitForStx (const unsigned char datum)
 

Protected Attributes

BufferType buffer
 
BufferType ETX
 
ecl::Signal< const std::string & > sig_error
 
ecl::Signal< const std::string & > sig_warn
 
unsigned int size_checksum_field
 
unsigned int size_etx
 
unsigned int size_length_field
 
unsigned int size_max_payload
 
unsigned int size_payload
 
unsigned int size_stx
 
BufferType STX
 
bool variable_size_payload
 
bool verbose
 

Detailed Description

Provides simple packet finder which may be consist of stx, etx, payload, ...

Note

Usage:

@code
Todo:
(1) getting buffer from this class
(2) simple construction of this class
(3) device abstraction
(4) extend-able packet structures
(5) like ros, auto-generation of code from scripts
(6) packetFinder to ros converter
(7) evaluate it (valgrind)

Definition at line 72 of file packet_finder.hpp.

Member Typedef Documentation

Definition at line 75 of file packet_finder.hpp.

Member Enumeration Documentation

Enumerator
clearBuffer 
waitingForStx 
waitingForPayloadSize 
waitingForPayloadToEtx 
waitingForEtx 

Definition at line 77 of file packet_finder.hpp.

Constructor & Destructor Documentation

xbot::PacketFinderBase::PacketFinderBase ( )

Default constructor. Use with configure().

Definition at line 28 of file packet_finder.cpp.

virtual xbot::PacketFinderBase::~PacketFinderBase ( )
inlinevirtual

Definition at line 107 of file packet_finder.hpp.

Member Function Documentation

bool xbot::PacketFinderBase::checkSum ( )
virtual

Reimplemented in xbot::PacketFinder.

Definition at line 74 of file packet_finder.cpp.

void xbot::PacketFinderBase::clear ( )

Definition at line 63 of file packet_finder.cpp.

void xbot::PacketFinderBase::configure ( const std::string &  sigslots_namespace,
const BufferType putStx,
const BufferType putEtx,
unsigned int  sizeLengthField,
unsigned int  sizeMaxPayload,
unsigned int  sizeChecksumField,
bool  variableSizePayload 
)

Definition at line 38 of file packet_finder.cpp.

void xbot::PacketFinderBase::enableVerbose ( )

Definition at line 69 of file packet_finder.cpp.

void xbot::PacketFinderBase::getBuffer ( BufferType bufferRef)

Definition at line 111 of file packet_finder.cpp.

void xbot::PacketFinderBase::getPayload ( BufferType bufferRef)

Definition at line 116 of file packet_finder.cpp.

unsigned int xbot::PacketFinderBase::numberOfDataToRead ( )

Definition at line 79 of file packet_finder.cpp.

bool xbot::PacketFinderBase::update ( const unsigned char *  incoming,
unsigned int  numberOfIncoming 
)
virtual

Checks for incoming packets.

Parameters
incoming
numberOfIncoming
Returns
bool : true if a valid incoming packet has been found.

Definition at line 140 of file packet_finder.cpp.

bool xbot::PacketFinderBase::waitForEtx ( const unsigned char  incoming,
bool &  foundPacket 
)
protected

Definition at line 287 of file packet_finder.cpp.

bool xbot::PacketFinderBase::waitForPayloadAndEtx ( const unsigned char *  incoming,
unsigned int  numberOfIncoming,
bool &  foundPacket 
)
protected

Definition at line 322 of file packet_finder.cpp.

bool xbot::PacketFinderBase::waitForPayloadSize ( const unsigned char *  incoming,
unsigned int  numberOfIncoming 
)
protected

Definition at line 234 of file packet_finder.cpp.

bool xbot::PacketFinderBase::WaitForStx ( const unsigned char  datum)
protected

Definition at line 213 of file packet_finder.cpp.

Member Data Documentation

BufferType xbot::PacketFinderBase::buffer
protected

Definition at line 98 of file packet_finder.hpp.

BufferType xbot::PacketFinderBase::ETX
protected

Definition at line 97 of file packet_finder.hpp.

ecl::Signal<const std::string&> xbot::PacketFinderBase::sig_error
protected

Definition at line 102 of file packet_finder.hpp.

ecl::Signal<const std::string&> xbot::PacketFinderBase::sig_warn
protected

Definition at line 102 of file packet_finder.hpp.

unsigned int xbot::PacketFinderBase::size_checksum_field
protected

Definition at line 94 of file packet_finder.hpp.

unsigned int xbot::PacketFinderBase::size_etx
protected

Definition at line 89 of file packet_finder.hpp.

unsigned int xbot::PacketFinderBase::size_length_field
protected

Definition at line 90 of file packet_finder.hpp.

unsigned int xbot::PacketFinderBase::size_max_payload
protected

Definition at line 92 of file packet_finder.hpp.

unsigned int xbot::PacketFinderBase::size_payload
protected

Definition at line 93 of file packet_finder.hpp.

unsigned int xbot::PacketFinderBase::size_stx
protected

Definition at line 88 of file packet_finder.hpp.

enum packetFinderState xbot::PacketFinderBase::state

Definition at line 85 of file packet_finder.hpp.

BufferType xbot::PacketFinderBase::STX
protected

Definition at line 96 of file packet_finder.hpp.

bool xbot::PacketFinderBase::variable_size_payload
protected

Definition at line 91 of file packet_finder.hpp.

bool xbot::PacketFinderBase::verbose
protected

Definition at line 100 of file packet_finder.hpp.


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


xbot_driver
Author(s): Roc, wangpeng@droid.ac.cn
autogenerated on Sat Oct 10 2020 03:27:38