Kobuki 1.0.0
C++ API for the Kobuki research robot
Loading...
Searching...
No Matches
kobuki::PacketFinderBase Class Reference

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

#include <packet_finder.hpp>

Inheritance diagram for kobuki::PacketFinderBase:

Public Types

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

Public Member Functions

 PacketFinderBase ()
 
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 clear ()
 
void enableVerbose ()
 
virtual bool update (const unsigned char *incoming, unsigned int numberOfIncoming)
 
virtual bool checkSum ()
 
unsigned int numberOfDataToRead ()
 
void getBuffer (BufferType &bufferRef)
 
void getPayload (BufferType &bufferRef)
 

Public Attributes

enum packetFinderState state
 

Protected Member Functions

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

Protected Attributes

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

Detailed Description

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

Note

Usage:

@code

Constructor & Destructor Documentation

◆ PacketFinderBase()

kobuki::PacketFinderBase::PacketFinderBase ( )

Default constructor. Use with configure().

Member Function Documentation

◆ update()

bool kobuki::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.

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