1 #ifndef IODRIVERS_BASE_BUS_HH
2 #define IODRIVERS_BASE_BUS_HH
4 #include <iodrivers_base/Driver.hpp>
7 #include <boost/thread/recursive_mutex.hpp>
9 namespace iodrivers_base {
32 virtual int readPacket(uint8_t* buffer,
int buffer_size,
int packet_timeout,
int first_byte_timeout=-1);
36 virtual int extractPacket(uint8_t
const* buffer,
size_t buffer_size)
const = 0;
40 bool writePacket(uint8_t
const* buffer,
int bufsize,
int timeout);
63 virtual void packedReady(uint8_t
const* buffer,
size_t size)=0;
68 virtual int readPacket(uint8_t* buffer,
int buffer_size,
int packet_timeout,
int first_byte_timeout=-1);
79 Bus(
int max_packet_size,
bool extract_last =
false);
80 int readPacket(uint8_t* buffer,
int buffer_size,
int packet_timeout,
int first_byte_timeout=-1,
Parser *
parser=0);
83 int extractPacket(uint8_t
const* buffer,
size_t buffer_size)
const;
84 bool writePacket(uint8_t
const* buffer,
int buffer_size,
int timeout);
boost::recursive_mutex mutex
Definition: Bus.hpp:88
Parser * caller
Definition: Bus.hpp:87
Definition: Driver.hpp:69
virtual int readPacket(uint8_t *buffer, int buffer_size, int packet_timeout, int first_byte_timeout=-1)
Definition: Bus.cpp:13
Parser(Bus *bus)
Definition: Bus.cpp:8
void removeParser(Parser *parser)
Definition: Bus.cpp:52
~BusHandler()
Definition: Bus.cpp:29
int extractPacket(uint8_t const *buffer, size_t buffer_size) const
Definition: Bus.cpp:75
virtual int extractPacket(uint8_t const *buffer, size_t buffer_size) const =0
void addParser(Parser *parser)
Definition: Bus.cpp:47
virtual void packedReady(uint8_t const *buffer, size_t size)=0
Bus * bus
Definition: Bus.hpp:42
bool writePacket(uint8_t const *buffer, int buffer_size, int timeout)
Definition: Bus.cpp:57
BusHandler(Bus *bus, bool auto_register=true)
Definition: Bus.cpp:21
virtual ~Parser()
Definition: Bus.hpp:24
bool writePacket(uint8_t const *buffer, int bufsize, int timeout)
Definition: Bus.cpp:17
virtual int readPacket(uint8_t *buffer, int buffer_size, int packet_timeout, int first_byte_timeout=-1)
Definition: Bus.cpp:33
int readPacket(uint8_t *buffer, int buffer_size, int packet_timeout, int first_byte_timeout=-1, Parser *parser=0)
Definition: Bus.cpp:62
Bus(int max_packet_size, bool extract_last=false)
Definition: Bus.cpp:38
std::list< Parser * > parser
Definition: Bus.hpp:86