11 #ifndef SICK_ACFR_SERIALHANDLER_H 12 #define SICK_ACFR_SERIALHANDLER_H 14 #include <gbxsickacfr/messages.h> 15 #include <gbxserialacfr/serial.h> 16 #include <gbxsickacfr/gbxiceutilacfr/thread.h> 17 #include <gbxsickacfr/gbxiceutilacfr/buffer.h> 18 #include <gbxsickacfr/gbxserialdeviceacfr/serialdevicehandler.h> 19 #include <gbxsickacfr/gbxserialdeviceacfr/stickinbuffercallback.h> 26 gbxserialdeviceacfr::RxMsgPtr parseBuffer(
const std::vector<char> &buffer,
29 LmsRxMsgPtr lmsRxMsg = parseBufferForRxMsgs( (
const uChar*)&(buffer[0]),
41 TimedLmsRxMsg(
int s,
int us,
const LmsRxMsgPtr &r )
42 : timeStampSec(s), timeStampUsec(us), msg(r) {}
64 SerialHandler(
const std::string &dev,
69 void send(
const std::vector<uChar> &telegram )
70 { serialDeviceHandler_->send( (
const char*)&(telegram[0]), telegram.size() ); }
72 void setBaudRate(
int baudRate )
73 { serialDeviceHandler_->setBaudRate( baudRate ); }
77 int getNextRxMsg( TimedLmsRxMsg &timedRxMsg,
int maxWaitMs )
80 int ret = bufferCallback_.rxMsgBuffer().getAndPopWithTimeout( genericTimedRxMsg, maxWaitMs );
83 timedRxMsg.timeStampSec = genericTimedRxMsg.timeStampSec;
84 timedRxMsg.timeStampUsec = genericTimedRxMsg.timeStampUsec;
87 timedRxMsg.msg = LmsRxMsgPtr::dynamicCast( genericTimedRxMsg.msg );
94 RxMsgParser rxMsgParser_;
95 gbxserialdeviceacfr::StickInBufferCallback bufferCallback_;
Definition: serialdevicehandler.h:43
Encapsulates a serial port.
Definition: serial.h:43
Local and remote tracing.
Definition: tracer.h:111
Handles the serial port.
Definition: serialdevicehandler.h:88
Received message plus a timeStamp: a simple container to keep the two together.
Definition: stickinbuffercallback.h:10
Local interface to component status.
Definition: status.h:253
IceUtil::Handle< gbxiceutilacfr::Thread > ThreadPtr
A smart pointer to the thread class.
Definition: thread.h:106