9 #ifndef CCANBusReader_H
10 #define CCANBusReader_H
69 std::vector<uint8_t>& out_data, std::vector<char>& out_raw_frame);
157 bool& outThereIsObservation,
159 bool& hardwareError);
#define DEFINE_GENERIC_SENSOR(class_name)
This declaration must be inserted in all CGenericSensor classes definition, within the class declarat...
A communications serial port built as an implementation of a utils::CStream.
This class allows loading and storing values and vectors of different types from a configuration text...
This "software driver" implements the communication protocol for interfacing a SICK LMS 2XX laser sca...
unsigned int getCANReaderSpeed()
bool waitIncomingFrame(uint16_t timeout)
bool getCANReaderTimeStamping()
bool CANBusCloseChannel()
Closes the CAN Channel.
mrpt::comms::CSerialPort * m_mySerialPort
Will be !=nullptr only if I created it, so I must destroy it at the end.
bool waitForVersion(uint16_t timeout, bool printOutVersion=false)
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,...
std::string getSerialPort() const
CCANBusReader()
Constructor
bool sendCANBusReaderSpeed()
Sends the specified speed to the CAN Converter.
uint8_t m_received_frame_buffer[2000]
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".
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)
virtual ~CCANBusReader()
Destructor
bool CANBusOpenChannel()
Opens the CAN Channel.
void setCANReaderSpeed(const unsigned int speed)
Sets the CAN reader speed when connecting to the CAN Bus.
void initialize()
Set-up communication with the laser.
bool waitACK(uint16_t timeout_ms)
void setCANReaderTimeStamping(bool setTimestamp=false)
Enables/Disables the addition of a timestamp according to the arrival time to the converter (default=...
void doProcess()
This method will be invoked at a minimum rate of "process_rate" (Hz)
void setBaudRate(int baud)
Changes the serial port baud rate (call prior to 'doProcess'); valid values are 9600,...
bool queryVersion(bool printOutVersion=false)
bool m_canreader_timestamp
std::string m_com_port
If set to non-empty, the serial port will be attempted to be opened automatically when this class is ...
bool tryToOpenComms(std::string *err_msg=nullptr)
Tries to open the com port and setup all the LMS protocol.
unsigned int m_nTries_connect
Default = 1.
void loadConfig_sensorSpecific(const mrpt::config::CConfigFileBase &configSource, const std::string &iniSection)
See the class documentation at the top for expected parameters.
unsigned int m_nTries_current
unsigned int getCurrentConnectTry() const
If performing several tries in ::initialize(), this is the current try loop number.
bool sendCommandToCANReader(const uint8_t *cmd, const uint16_t cmd_len, bool wait=true)
bool m_CANBusChannel_isOpen
A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...
This class stores a message from a CAN BUS with the protocol J1939.
Versatile class for consistent logging and management of output messages.
GLsizei const GLchar ** string
Contains classes for various device interfaces.
unsigned __int16 uint16_t