9 #ifndef CSickLaserSerial_H 10 #define CSickLaserSerial_H 88 std::vector<float>& ranges,
unsigned char& LMS_status,
189 bool& outThereIsObservation,
191 bool& hardwareError);
void setMillimeterMode(bool mm_mode=true)
Enables/Disables the millimeter mode, with a greater accuracy but a shorter range (default=false) (ca...
bool LMS_startContinuousMode()
int m_scans_FOV
100 or 180 deg
bool LMS_sendMeasuringMode_cm_mm()
Returns false on error.
unsigned __int16 uint16_t
void setSerialPort(const std::string &port)
Changes the serial port to connect to (call prior to 'doProcess'), for example "COM1" or "ttyS0"...
A communications serial port built as an implementation of a utils::CStream.
std::string getSerialPort() const
bool turnOff()
Disables the scanning mode (in this class this has no effect).
bool LMS_statusQuery()
Send a status query and wait for the answer.
Contains classes for various device interfaces.
int m_com_baudRate
Baudrate: 9600, 38400, 500000.
bool LMS_setupSerialComms()
Assures laser is connected and operating at 38400, in its case returns true.
void setScanFOV(int fov_degrees)
Set the scanning field of view - possible values are 100 or 180 (default) (call prior to 'doProcess')...
uint8_t m_received_frame_buffer[2000]
bool LMS_setupBaudrate(int baud)
Send a command to change the LMS comms baudrate, return true if ACK is OK.
void initialize()
Set-up communication with the laser.
CSickLaserSerial()
Constructor.
std::string m_com_port
If set to non-empty, the serial port will be attempted to be opened automatically when this class is ...
This class allows loading and storing values and vectors of different types from a configuration text...
bool m_skip_laser_config
If true, doesn't send the initialization commands to the laser and go straight to capturing...
bool waitContinuousSampleFrame(std::vector< float > &ranges, unsigned char &LMS_status, bool &is_mm_mode)
unsigned int m_nTries_current
bool tryToOpenComms(std::string *err_msg=nullptr)
Tries to open the com port and setup all the LMS protocol.
bool LMS_waitIncomingFrame(uint16_t timeout)
Returns false if timeout.
void setScanResolution(int res_1_100th_degree)
Set the scanning resolution, in units of 1/100 degree - Possible values are 25, 50 and 100...
mrpt::math::TPose3D m_sensorPose
The sensor 6D pose:
GLsizei const GLchar ** string
void loadConfig_sensorSpecific(const mrpt::config::CConfigFileBase &configSource, const std::string &iniSection)
See the class documentation at the top for expected parameters.
virtual ~CSickLaserSerial()
Destructor.
#define DEFINE_GENERIC_SENSOR(class_name)
This declaration must be inserted in all CGenericSensor classes definition, within the class declarat...
int m_scans_res
1/100th of deg: 100, 50 or 25
This is the base, abstract class for "software drivers" interfaces to 2D scanners (laser range finder...
void setBaudRate(int baud)
Changes the serial port baud rate (call prior to 'doProcess'); valid values are 9600,38400 and 500000.
bool SendCommandToSICK(const uint8_t *cmd, const uint16_t cmd_len)
Send header+command-data+crc and waits for ACK.
A "CObservation"-derived class that represents a 2D range scan measurement (typically from a laser sc...
This "software driver" implements the communication protocol for interfacing a SICK LMS 2XX laser sca...
Lightweight 3D pose (three spatial coordinates, plus three angular coordinates).
unsigned int m_nTries_connect
Default = 1.
bool turnOn()
Enables the scanning mode (in this class this has no effect).
void doProcessSimple(bool &outThereIsObservation, mrpt::obs::CObservation2DRangeScan &outObservation, bool &hardwareError)
Specific laser scanner "software drivers" must process here new data from the I/O stream...
mrpt::comms::CSerialPort * m_mySerialPort
Will be !=nullptr only if I created it, so I must destroy it at the end.
int getScanResolution() const
bool LMS_waitACK(uint16_t timeout_ms)
Returns false if timeout.
unsigned int getCurrentConnectTry() const
If performing several tries in ::initialize(), this is the current try loop number.
bool LMS_endContinuousMode()