A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...
std::map< uint16_t, int32_t > m_sonarGains
The individual gains of the sonars, indexed by their I2C addresses [0,15].
void doProcess() override
This method will be invoked at a minimum rate of "process_rate" (Hz)
bool queryFirmwareVersion(std::string &out_firmwareVersion)
Query the firmware version on the device (can be used to test communications).
Declares a class derived from "CObservation" that encapsules a single range measurement, and associated parameters.
bool checkConnectionAndConnect()
Tries to connect to the USB device (if disconnected).
void loadConfig_sensorSpecific(const mrpt::config::CConfigFileBase &configSource, const std::string &iniSection) override
Loads specific configuration for the device from a given source of configuration parameters, for example, an ".ini" file, loading from the section "[iniSection]" (see config::CConfigFileBase and derived classes) See hwdrivers::CBoardSonars for the possible parameters.
std::string m_usbSerialNumber
A copy of the device serial number (to open the USB FTDI chip)
Contains classes for various device interfaces.
~CBoardSonars() override=default
Destructor.
std::vector< int32_t > m_firingOrder
The order in which sonars will be fired, indexed by their I2C addresses [0,15].
This class allows loading and storing values and vectors of different types from a configuration text...
float m_minTimeBetweenPings
The minimum time between sonar pings (in seconds).
This "software driver" implements the communication protocol for interfacing a Ultrasonic range finde...
uint8_t m_gain
A value between 0 and 16, for gains between 40 and 700 (not linear).
CBoardSonars()
Constructor.
GLsizei const GLchar ** string
#define DEFINE_GENERIC_SENSOR(class_name)
This declaration must be inserted in all CGenericSensor classes definition, within the class declarat...
A definition of a CStream actually representing a USB connection to a FTDI chip.
bool sendConfigCommands()
Sends the configuration (max range, gain,...) to the USB board.
std::map< uint16_t, mrpt::math::TPose3D > m_sonarPoses
The poses of the sonars: x[m] y[m] z[m] yaw[deg] pitch[deg] roll[deg] Up to 16 devices, but you can put any number of devices (from 1 to 16).
bool programI2CAddress(uint8_t currentAddress, uint8_t newAddress)
Requests a command of "change address" for a given SRF10 device.
float m_maxRange
The maximum range in meters, used for the internal device timer (value between 4cm and 11m)...
bool getObservation(mrpt::obs::CObservationRange &obs)
Request the latest range measurements.