Program Listing for File serial_query.h
↰ Return to documentation for file (include/create/serial_query.h
)
// Based on example from:
// https://github.com/labust/labust-ros-pkg/wiki/Create-a-Serial-Port-application
#ifndef CREATE_SERIAL_QUERY_H
#define CREATE_SERIAL_QUERY_H
#include <memory>
#include <boost/asio.hpp>
#include "create/data.h"
#include "create/types.h"
#include "create/util.h"
#include "create/serial.h"
namespace create {
class SerialQuery : public Serial {
private:
boost::asio::deadline_timer streamRecoveryTimer;
uint8_t packetID;
int8_t packetByte;
uint16_t packetData;
const uint8_t maxPacketID;
bool started;
void requestSensorData();
void restartSensorStream(const boost::system::error_code& err);
void flushInput();
protected:
bool startSensorStream();
void processByte(uint8_t byteRead);
public:
SerialQuery(std::shared_ptr<Data> data, bool install_signal_handler = true);
virtual ~SerialQuery() = default;
};
} // namespace create
#endif // CREATE_SERIAL_H