10#define CCANBusReader_H
62 uint8_t &out_pdu_format,
63 uint8_t &out_pdu_spec,
64 uint8_t &out_src_address,
65 uint8_t &out_data_length,
67 std::vector<uint8_t> &out_data,
68 std::vector<char> &out_raw_frame);
84 uint8_t m_received_frame_buffer[2000];
99 const std::string &iniSection );
141 bool &outThereIsObservation,
143 bool &hardwareError );
#define DEFINE_GENERIC_SENSOR(class_name)
This declaration must be inserted in all CGenericSensor classes definition, within the class declarat...
This "software driver" implements the communication protocol for interfacing a SICK LMS 2XX laser sca...
unsigned int getCANReaderSpeed()
bool CANBusOpenChannel()
Opens the CAN Channel.
CSerialPort * m_mySerialPort
Will be !=NULL only if I created it, so I must destroy it at the end.
bool getCANReaderTimeStamping()
void doProcessSimple(bool &outThereIsObservation, mrpt::obs::CObservationCANBusJ1939 &outObservation, bool &hardwareError)
Specific laser scanner "software drivers" must process here new data from the I/O stream,...
bool waitIncomingFrame(uint16_t timeout)
std::string getSerialPort() const
void initialize()
Set-up communication with the laser.
bool waitACK(uint16_t timeout_ms)
void loadConfig_sensorSpecific(const mrpt::utils::CConfigFileBase &configSource, const std::string &iniSection)
See the class documentation at the top for expected parameters.
bool waitContinuousSampleFrame(uint8_t &out_prio, uint8_t &out_pdu_format, uint8_t &out_pdu_spec, uint8_t &out_src_address, uint8_t &out_data_length, uint16_t &out_pgn, std::vector< uint8_t > &out_data, std::vector< char > &out_raw_frame)
int m_com_baudRate
Baudrate: 9600, 38400, 500000.
void setSerialPort(const std::string &port)
Changes the serial port to connect to (call prior to 'doProcess'), for example "COM1" or "ttyS0".
void setCANReaderSpeed(const unsigned int speed)
Sets the CAN reader speed when connecting to the CAN Bus.
bool sendCommandToCANReader(const uint8_t *cmd, const uint16_t cmd_len, bool wait=true)
CCANBusReader()
Constructor
void setCANReaderTimeStamping(bool setTimestamp=false)
Enables/Disables the addition of a timestamp according to the arrival time to the converter (default=...
void setBaudRate(int baud)
Changes the serial port baud rate (call prior to 'doProcess'); valid values are 9600,...
bool CANBusCloseChannel()
Closes the CAN Channel.
bool m_canreader_timestamp
bool sendCANBusReaderSpeed()
Sends the specified speed to the CAN Converter.
std::string m_com_port
If set to non-empty, the serial port will be attempted to be opened automatically when this class is ...
unsigned int m_nTries_connect
Default = 1.
bool waitForVersion(uint16_t timeout, bool printOutVersion=false)
bool queryVersion(bool printOutVersion=false)
bool tryToOpenComms(std::string *err_msg=NULL)
Tries to open the com port and setup all the LMS protocol. Returns true if OK or already open.
unsigned int m_nTries_current
unsigned int getCurrentConnectTry() const
If performing several tries in ::initialize(), this is the current try loop number.
virtual ~CCANBusReader()
Destructor
void doProcess()
This method will be invoked at a minimum rate of "process_rate" (Hz)
bool m_CANBusChannel_isOpen
A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...
A communications serial port built as an implementation of a utils::CStream.
This class stores a message from a CAN BUS with the protocol J1939.
This class allows loading and storing values and vectors of different types from a configuration text...
This base class provides a common printf-like method to send debug information to std::cout,...
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.