Overview
The LrfUltisense C++ library is a software controller for Safran Laser Range Finders. The library depends on: Lrf interface library (provides interface and data structures to control laser range finders, source code included, Apache 2.0 license), Logger library (provides function to print log information in console and files, source code included, Apache 2.0 license), SerialPort library (provides functions to work with serial ports, source code included, Apache 2.0 license) and LrfUltisenseParser library (provides functions to encode control commands and decode responses for Safran Laser Range Finders). After initialization, the library starts the internal data exchange thread with the laser range finder device, sends control commands and analyzes the responses (decodes the measurement results). The library repository (folder) is provided as source code and doesn’t have third-party dependencies to be specially installed in OS. It uses C++17 standard and is compatible with Linux and Windows.
Documentation
Documentation: GO TO DOCUMENTATION
Simple interface
class LrfUltisense : public Lrf
{
public:
/// Get string of current library version.
static std::string getVersion();
/// Open lrf controller.
bool openLrf(std::string initString) override;
/// Init lrf controller by set of parameters.
bool initLrf(LrfParams& params) override;
/// Close connection.
void closeLrf() override;
/// Get lrf open status.
bool isLrfOpen() override;
/// Get lrf connection status.
bool isLrfConnected() override;
/// Set the lrf controller parameter.
bool setParam(LrfParam id, float value) override;
/// Get the lrf controller parameter value.
float getParam(LrfParam id) override;
/// Get all lrf controller parameters.
void getParams(LrfParams& params) override;
/// Execute lrf command.
bool executeCommand(LrfCommand id) override;
/// Decode and execute command.
bool decodeAndExecuteCommand(uint8_t* data, int size) override;
};