MRPT  1.9.9
mrpt::hwdrivers::CGPSInterface Class Referenceabstract

Detailed Description

A class capable of reading GPS/GNSS/GNSS+IMU receiver data, from a serial port or from any input stream, and parsing the ASCII/binary stream into indivual messages stored in mrpt::obs::CObservationGPS objects.

Typical input streams are serial ports or raw GPS log files. By default, the serial port selected by CGPSInterface::setSerialPortName() or as set in the configuration file will be open upon call to CGenericSensor::initialize(). Alternatively, an external stream can be bound with CGPSInterface::bindStream() before calling CGenericSensor::initialize(). This feature can be used to parse commands from a file, a TCP/IP stream, a memory block, etc.

The parsers in the enum type CGPSInterface::PARSERS are supported as parameter parser in the configuration file below or in method CGPSInterface::setParser():

  • NONE: Do not try to parse the messages into CObservation's. Only useful if combined with raw_dump_file_prefix
  • AUTO: Try to automatically identify the format of incomming data.
  • NMEA (NMEA 0183, ASCII messages): Default parser. Supported frames: GGA, RMC,... See full list of messages in children of mrpt::obs::gnss::gnss_message
  • NOVATEL_OEM6 (Novatel OEM6, binary frames): Supported frames: BESTPOS,... Note that receiving a correct IONUTC msg is required for a correct timestamping of subsequent frames. See full list of messages in children of mrpt::obs::gnss::gnss_message

See available parameters below, and an example config file for rawlog-grabber here

PARAMETERS IN THE ".INI"-LIKE CONFIGURATION STRINGS:
-------------------------------------------------------
[supplied_section_name]
# Serial port configuration:
COM_port_WIN = COM3
COM_port_LIN = ttyUSB0
baudRate = 4800 // The baudrate of the communications (typ. 4800 or
9600 bauds)
# (Default:true) Whether to append the GNNS message type to CObservation
`sensorLabel` field
sensor_label_append_msg_type = true
# Select a parser for GNSS data:
# Up-to-date list of supported parsers available in
https://reference.mrpt.org/devel/classmrpt_1_1hwdrivers_1_1_c_g_p_s_interface.html
parser = AUTO
# If uncommented and non-empty, raw binary/ascii data received from the
serial port will be also dumped
# into a file named after this prefix, plus date/time and extension `.gps`.
#raw_dump_file_prefix = RAWGPS
# 3D position (and orientation, for GNSS+IMUs) of the sensed point (antenna
phase center) relative to the vehicle/robot frame:
pose_x = 0 // (meters)
pose_y = 0
pose_z = 0
pose_yaw = 0 // (deg)
pose_pitch = 0
pose_roll = 0
# Optional: list of custom commands to be sent to the GNSS receiver to set
it up.
# An arbitrary number of commands can be defined, but their names must be
"setup_cmd%d" starting at "1".
# Commands will be sent by index order. Binary commands instead of ASCII
strings can be set programmatically, not from a config file.
# custom_cmds_delay = 0.1 // (Default=0.1) Delay in seconds between
consecutive set-up commands
# custom_cmds_append_CRLF = true // (Default:true) Append "\r\n" to each
command
# setup_cmd1 = XXXXX
# setup_cmd2 = XXXXX
# setup_cmd3 = XXXXX
# Optional: list of commands to be sent upon disconnection (e.g. object
destructor)
# shutdown_cmd1 = XXXX
# shutdown_cmd2 = XXXX

Note that the customInit field, supported in MRPT <1.4.0 will be still parsed and obeyed, but since it has been superseded by the new mechanism to establish set-up commands, it is no further documented here.

The next picture summarizes existing MRPT classes related to GPS / GNSS devices (CGPSInterface, CNTRIPEmitter, CGPS_NTRIP):

VERSIONS HISTORY:

  • 09/JUN/2006: First version (JLBC)
  • 04/JUN/2008: Added virtual methods for device-specific initialization commands.
  • 10/JUN/2008: Converted into CGenericSensor class (there are no inhirited classes anymore).
  • 07/DEC/2012: Added public static method to parse NMEA strings.
  • 17/JUN/2014: Added GGA feedback.
  • 01/FEB/2016: API changed for MTPT 1.4.0

    Note
    Verbose debug info will be dumped to cout if the environment variable "MRPT_HWDRIVERS_VERBOSE" is set to "1", or if you call CGenericSensor::enableVerbose(true)
    [API changed in MRPT 1.4.0] mrpt::hwdrivers::CGPSInterface API clean-up and made more generic so any stream can be used to parse GNSS messages, not only serial ports.
    See also
    CGPS_NTRIP, CNTRIPEmitter, mrpt::obs::CObservationGPS

Definition at line 142 of file CGPSInterface.h.

#include <mrpt/hwdrivers/CGPSInterface.h>

Inheritance diagram for mrpt::hwdrivers::CGPSInterface:

Public Types

enum  PARSERS { NONE = -2, AUTO = -1, NMEA = 0, NOVATEL_OEM6 }
 Read about parser selection in the documentation for CGPSInterface. More...
 
using ptr_parser_t = bool(CGPSInterface::*)(size_t &out_minimum_rx_buf_to_decide)
 
enum  TSensorState { ssInitializing = 0, ssWorking, ssError }
 The current state of the sensor. More...
 
using Ptr = std::shared_ptr< CGenericSensor >
 
using TListObservations = std::multimap< mrpt::system::TTimeStamp, mrpt::serialization::CSerializable::Ptr >
 
using TListObsPair = std::pair< mrpt::system::TTimeStamp, mrpt::serialization::CSerializable::Ptr >
 

Public Member Functions

 CGPSInterface ()
 Default ctor. More...
 
 ~CGPSInterface () override
 Dtor. More...
 
void doProcess () override
 This method will be invoked at a minimum rate of "process_rate" (Hz) More...
 
bool isGPS_connected ()
 Returns true if communications work, i.e. More...
 
bool isGPS_signalAcquired ()
 Returns true if the last message from the GPS indicates that the signal from sats has been acquired. More...
 
bool isAIMConfigured ()
 
std::string getLastGGA (bool reset=true)
 Gets the latest GGA command or an empty string if no newer GGA command was received since the last call to this method. More...
 
virtual const mrpt::hwdrivers::TSensorClassIdGetRuntimeClass () const =0
 
TSensorState getState () const
 The current state of the sensor. More...
 
double getProcessRate () const
 
std::string getSensorLabel () const
 
void setSensorLabel (const std::string &sensorLabel)
 
void enableVerbose (bool enabled=true)
 Enable or disable extra debug info dumped to std::cout during sensor operation. More...
 
bool isVerboseEnabled () const
 
void loadConfig (const mrpt::config::CConfigFileBase &configSource, const std::string &section)
 Loads the generic settings common to any sensor (See CGenericSensor), then call to "loadConfig_sensorSpecific". More...
 
virtual void initialize ()
 This method can or cannot be implemented in the derived class, depending on the need for it. More...
 
void getObservations (TListObservations &lstObjects)
 Returns a list of enqueued objects, emptying it (thread-safe). More...
 
virtual void setPathForExternalImages (const std::string &directory)
 Set the path where to save off-rawlog image files (will be ignored in those sensors where this is not applicable). More...
 
void setExternalImageFormat (const std::string &ext)
 Set the extension ("jpg","gif","png",...) that determines the format of images saved externally The default is "jpg". More...
 
void setExternalImageJPEGQuality (const unsigned int quality)
 The quality of JPEG compression, when external images is enabled and the format is "jpg". More...
 
unsigned int getExternalImageJPEGQuality () const
 
Set-up and configuration
void setSerialPortName (const std::string &COM_port)
 Set the serial port to use (COM1, ttyUSB0, etc). More...
 
std::string getSerialPortName () const
 Get the serial port to use (COM1, ttyUSB0, etc). More...
 
void setParser (PARSERS parser)
 Select the parser for incomming data, among the options enumerated in CGPSInterface. More...
 
PARSERS getParser () const
 
void bindStream (mrpt::io::CStream *external_stream, std::mutex *csOptionalExternalStream=nullptr)
 This enforces the use of a given user stream, instead of trying to open the serial port set in this class parameters. More...
 
bool useExternCOM () const
 
bool useExternalStream () const
 
void setSetupCommandsDelay (const double delay_secs)
 
double getSetupCommandsDelay () const
 
void setSetupCommands (const std::vector< std::string > &cmds)
 
const std::vector< std::string > & getSetupCommands () const
 
void setShutdownCommands (const std::vector< std::string > &cmds)
 
const std::vector< std::string > & getShutdownCommands () const
 
void enableSetupCommandsAppendCRLF (const bool enable)
 
bool isEnabledSetupCommandsAppendCRLF () const
 
void enableAppendMsgTypeToSensorLabel (bool enable)
 
void setRawDumpFilePrefix (const std::string &filePrefix)
 If set to non-empty, RAW GPS serial data will be also dumped to a separate file. More...
 
std::string getRawDumpFilePrefix () const
 
bool sendCustomCommand (const void *data, const size_t datalen)
 Send a custom data block to the GNSS device right now. More...
 
Parser implementations: each method must try to parse the first

bytes in the incoming buffer, and return false if the available data does not match the expected format, so we must skip 1 byte and try again.

bool implement_parser_NMEA (size_t &out_minimum_rx_buf_to_decide)
 
bool implement_parser_NOVATEL_OEM6 (size_t &out_minimum_rx_buf_to_decide)
 

Static Public Member Functions

static bool parse_NMEA (const std::string &cmd_line, mrpt::obs::CObservationGPS &out_obs, const bool verbose=false)
 Parses one line of NMEA data from a GPS receiver, and writes the recognized fields (if any) into an observation object. More...
 
static std::array< mrpt::system::TConsoleColor, NUMBER_OF_VERBOSITY_LEVELS > & logging_levels_to_colors ()
 Map from VerbosityLevels to their corresponding mrpt::system::TConsoleColor. More...
 
static std::array< std::string, NUMBER_OF_VERBOSITY_LEVELS > & logging_levels_to_names ()
 Map from VerbosityLevels to their corresponding names. More...
 
static void registerClass (const TSensorClassId *pNewClass)
 Register a class into the internal list of "CGenericSensor" descendents. More...
 
static CGenericSensorcreateSensor (const std::string &className)
 Creates a sensor by a name of the class. More...
 
static CGenericSensor::Ptr createSensorPtr (const std::string &className)
 Just like createSensor, but returning a smart pointer to the newly created sensor object. More...
 

Protected Member Functions

bool OnConnectionEstablished ()
 Implements custom messages to be sent to the GPS unit just after connection and before normal use. More...
 
bool OnConnectionShutdown ()
 Like OnConnectionEstablished() for sending optional shutdown commands. More...
 
bool legacy_topcon_setup_commands ()
 
void loadConfig_sensorSpecific (const mrpt::config::CConfigFileBase &configSource, const std::string &iniSection) override
 See the class documentation at the top for expected parameters. More...
 
void setJAVAD_rtk_src_port (const std::string &s)
 If not empty, will send a cmd "set,/par/pos/pd/port,...". More...
 
void setJAVAD_rtk_src_baud (unsigned int baud)
 Only used when "m_JAVAD_rtk_src_port" is not empty. More...
 
void setJAVAD_rtk_format (const std::string &s)
 Only used when "m_JAVAD_rtk_src_port" is not empty: format of RTK corrections: "cmr", "rtcm", "rtcm3", etc. More...
 
bool setJAVAD_AIM_mode ()
 Set Advanced Input Mode for the primary port. More...
 
bool unsetJAVAD_AIM_mode ()
 Unset Advanced Input Mode for the primary port and use it only as a command port. More...
 
void appendObservations (const std::vector< mrpt::serialization::CSerializable::Ptr > &obj)
 This method must be called by derived classes to enqueue a new observation in the list to be returned by getObservations. More...
 
void appendObservation (const mrpt::serialization::CSerializable::Ptr &obj)
 Like appendObservations() but for just one observation. More...
 

Protected Attributes

mrpt::io::CStreamm_data_stream {nullptr}
 Typically a CSerialPort created by this class, but may be set externally. More...
 
std::mutex * m_data_stream_cs {nullptr}
 
std::mutex m_data_stream_mine_cs
 
bool m_data_stream_is_external {false}
 
poses::CPose3D m_sensorPose
 
std::string m_customInit
 
VerbosityLevel m_min_verbosity_level {LVL_INFO}
 Provided messages with VerbosityLevel smaller than this value shall be ignored. More...
 
size_t m_grab_decimation_counter {0}
 Used when "m_grab_decimation" is enabled. More...
 
TSensorState m_state {ssInitializing}
 
bool m_verbose {false}
 
std::string m_path_for_external_images
 The path where to save off-rawlog images: empty means save images embedded in the rawlog. More...
 
std::string m_external_images_format
 The extension ("jpg","gif","png",...) that determines the format of images saved externally. More...
 
unsigned int m_external_images_jpeg_quality {95}
 For JPEG images, the quality (default=95%). More...
 
Common settings to any sensor, loaded in "loadConfig"
double m_process_rate {0}
 See CGenericSensor. More...
 
size_t m_max_queue_len {200}
 See CGenericSensor. More...
 
size_t m_grab_decimation {0}
 If set to N>=2, only 1 out of N observations will be saved to m_objList. More...
 
std::string m_sensorLabel
 See CGenericSensor. More...
 

Private Member Functions

bool tryToOpenTheCOM ()
 Returns true if the COM port is already open, or try to open it in other case. More...
 
void parseBuffer ()
 Process data in "m_buffer" to extract GPS messages, and remove them from the buffer. More...
 
void flushParsedMessagesNow ()
 Queue out now the messages in m_just_parsed_messages, leaving it empty. More...
 

Private Attributes

mrpt::containers::circular_buffer< uint8_t > m_rx_buffer
 Auxiliary buffer for readings. More...
 
PARSERS m_parser {CGPSInterface::AUTO}
 
std::string m_raw_dump_file_prefix
 
std::string m_COMname
 
int m_COMbauds {4800}
 
bool m_sensorLabelAppendMsgType {true}
 
bool m_GPS_comsWork {false}
 
mrpt::system::TTimeStamp m_last_timestamp
 
mrpt::io::CFileOutputStream m_raw_output_file
 
double m_custom_cmds_delay {0.1}
 
bool m_custom_cmds_append_CRLF {true}
 
std::vector< std::stringm_setup_cmds
 
std::vector< std::stringm_shutdown_cmds
 
mrpt::obs::CObservationGPS m_just_parsed_messages
 A private copy of the last received gps datum. More...
 
std::string m_last_GGA
 Used in getLastGGA() More...
 

Legacy support for TopCon RTK configuration

std::string m_JAVAD_rtk_src_port
 If not empty, will send a cmd "set,/par/pos/pd/port,...". More...
 
unsigned int m_JAVAD_rtk_src_baud {0}
 Only used when "m_JAVAD_rtk_src_port" is not empty. More...
 
std::string m_JAVAD_rtk_format
 Only used when "m_JAVAD_rtk_src_port" is not empty: format of RTK corrections: "cmr", "rtcm", "rtcm3", etc. More...
 
bool m_topcon_useAIMMode {false}
 Use this mode for receive RTK corrections from a external source through the primary port. More...
 
bool m_topcon_AIMConfigured {false}
 Indicates if the AIM has been properly set up. More...
 
double m_topcon_data_period {0.2}
 The period in seconds which the data should be provided by the GPS. More...
 
void JAVAD_sendMessage (const char *str, bool waitForAnswer=true)
 Private auxiliary method. More...
 

Logging methods

void logStr (const VerbosityLevel level, std::string_view msg_str) const
 Main method to add the specified message string to the logger. More...
 
void logFmt (const VerbosityLevel level, const char *fmt,...) const MRPT_printf_format_check(3
 Alternative logging method, which mimics the printf behavior. More...
 
void void logCond (const VerbosityLevel level, bool cond, const std::string &msg_str) const
 Log the given message only if the condition is satisfied. More...
 
void setLoggerName (const std::string &name)
 Set the name of the COutputLogger instance. More...
 
std::string getLoggerName () const
 Return the name of the COutputLogger instance. More...
 
void setMinLoggingLevel (const VerbosityLevel level)
 Set the minimum logging level for which the incoming logs are going to be taken into account. More...
 
void setVerbosityLevel (const VerbosityLevel level)
 alias of setMinLoggingLevel() More...
 
VerbosityLevel getMinLoggingLevel () const
 
bool isLoggingLevelVisible (VerbosityLevel level) const
 
void getLogAsString (std::string &log_contents) const
 Fill the provided string with the contents of the logger's history in std::string representation. More...
 
std::string getLogAsString () const
 Get the history of COutputLogger instance in a string representation. More...
 
void writeLogToFile (const std::string *fname_in=nullptr) const
 Write the contents of the COutputLogger instance to an external file. More...
 
void dumpLogToConsole () const
 Dump the current contents of the COutputLogger instance in the terminal window. More...
 
std::string getLoggerLastMsg () const
 Return the last Tmsg instance registered in the logger history. More...
 
void getLoggerLastMsg (std::string &msg_str) const
 Fill inputtted string with the contents of the last message in history. More...
 
void loggerReset ()
 Reset the contents of the logger instance. More...
 
void logRegisterCallback (output_logger_callback_t userFunc)
 
bool logDeregisterCallback (output_logger_callback_t userFunc)
 
bool logging_enable_console_output {true}
 [Default=true] Set it to false in case you don't want the logged messages to be dumped to the output automatically. More...
 
bool logging_enable_keep_record {false}
 [Default=false] Enables storing all messages into an internal list. More...
 

Member Typedef Documentation

◆ Ptr

◆ ptr_parser_t

using mrpt::hwdrivers::CGPSInterface::ptr_parser_t = bool (CGPSInterface::*)(size_t& out_minimum_rx_buf_to_decide)

Definition at line 249 of file CGPSInterface.h.

◆ TListObservations

◆ TListObsPair

Member Enumeration Documentation

◆ PARSERS

Read about parser selection in the documentation for CGPSInterface.

Enumerator
NONE 
AUTO 
NMEA 
NOVATEL_OEM6 

Definition at line 148 of file CGPSInterface.h.

◆ TSensorState

The current state of the sensor.

See also
CGenericSensor::getState
Enumerator
ssInitializing 
ssWorking 
ssError 

Definition at line 83 of file CGenericSensor.h.

Constructor & Destructor Documentation

◆ CGPSInterface()

CGPSInterface::CGPSInterface ( )

Default ctor.

Definition at line 51 of file CGPSInterface.cpp.

References mrpt::hwdrivers::CGenericSensor::m_sensorLabel.

◆ ~CGPSInterface()

CGPSInterface::~CGPSInterface ( )
override

Dtor.

Definition at line 147 of file CGPSInterface.cpp.

References m_data_stream, m_data_stream_is_external, and OnConnectionShutdown().

Here is the call graph for this function:

Member Function Documentation

◆ appendObservation()

void mrpt::hwdrivers::CGenericSensor::appendObservation ( const mrpt::serialization::CSerializable::Ptr obj)
inlineprotectedinherited

Like appendObservations() but for just one observation.

Definition at line 178 of file CGenericSensor.h.

References mrpt::hwdrivers::CGenericSensor::appendObservations().

Referenced by mrpt::hwdrivers::CIMUXSens_MT4::doProcess(), mrpt::hwdrivers::CIMUXSens::doProcess(), mrpt::hwdrivers::CGyroKVHDSP3000::doProcess(), mrpt::hwdrivers::CSkeletonTracker::doProcess(), mrpt::hwdrivers::CSwissRanger3DCamera::doProcess(), mrpt::hwdrivers::C2DRangeFinderAbstract::doProcess(), mrpt::hwdrivers::CCANBusReader::doProcess(), mrpt::hwdrivers::CVelodyneScanner::doProcess(), and flushParsedMessagesNow().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ appendObservations()

void CGenericSensor::appendObservations ( const std::vector< mrpt::serialization::CSerializable::Ptr > &  obj)
protectedinherited

This method must be called by derived classes to enqueue a new observation in the list to be returned by getObservations.

Passed objects must be created in dynamic memory and a smart pointer passed. Example of creation:

mrpt::obs::CObservationGPS::Ptr o = CObservationGPS::Ptr( new
CObservationGPS() );
o-> .... // Set data

If several observations are passed at once in the vector, they'll be considered as a block regarding the grabbing decimation factor.

Definition at line 48 of file CGenericSensor.cpp.

References CLASS_ID, mrpt::hwdrivers::CGenericSensor::m_csObjList, mrpt::hwdrivers::CGenericSensor::m_grab_decimation, mrpt::hwdrivers::CGenericSensor::m_grab_decimation_counter, mrpt::hwdrivers::CGenericSensor::m_objList, and THROW_EXCEPTION.

Referenced by mrpt::hwdrivers::CGenericSensor::appendObservation(), mrpt::hwdrivers::CNationalInstrumentsDAQ::doProcess(), and mrpt::hwdrivers::CKinect::doProcess().

Here is the caller graph for this function:

◆ bindStream()

void CGPSInterface::bindStream ( mrpt::io::CStream external_stream,
std::mutex *  csOptionalExternalStream = nullptr 
)

This enforces the use of a given user stream, instead of trying to open the serial port set in this class parameters.

Parameters
[in]csExternalStreamIf not NULL, read/write operations to the stream will be guarded by this critical section. The stream object is not deleted. It is the user responsibility to keep that object allocated during the entire life of this object.
Note
Call before CGenericSensor::initialize()

Definition at line 163 of file CGPSInterface.cpp.

References m_data_stream, m_data_stream_cs, m_data_stream_is_external, and m_data_stream_mine_cs.

Referenced by TEST().

Here is the caller graph for this function:

◆ createSensor()

CGenericSensor * CGenericSensor::createSensor ( const std::string className)
staticinherited

Creates a sensor by a name of the class.

Typically the user may want to create a smart pointer around the returned pointer, whis is made with:

Returns
A pointer to a new class, or nullptr if class name is unknown.

Definition at line 97 of file CGenericSensor.cpp.

References mrpt::hwdrivers::CGenericSensor::get_registered_sensor_classes().

Referenced by mrpt::hwdrivers::CGenericSensor::createSensorPtr().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ createSensorPtr()

static CGenericSensor::Ptr mrpt::hwdrivers::CGenericSensor::createSensorPtr ( const std::string className)
inlinestaticinherited

Just like createSensor, but returning a smart pointer to the newly created sensor object.

Definition at line 208 of file CGenericSensor.h.

References mrpt::hwdrivers::CGenericSensor::createSensor().

Referenced by mrpt::apps::RawlogGrabberApp::SensorThread().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ doProcess()

void CGPSInterface::doProcess ( )
overridevirtual

This method will be invoked at a minimum rate of "process_rate" (Hz)

Exceptions
Thismethod must throw an exception with a descriptive message if some critical error is found.

Implements mrpt::hwdrivers::CGenericSensor.

Definition at line 298 of file CGPSInterface.cpp.

References ASSERT_, mrpt::containers::circular_buffer< T >::available(), mrpt::system::TTimeParts::day, mrpt::system::fileNameStripInvalidChars(), mrpt::io::CFileOutputStream::fileOpenCorrectly(), flushParsedMessagesNow(), mrpt::format(), mrpt::obs::CObservationGPS::has_GGA_datum, mrpt::obs::CObservationGPS::has_RMC_datum, mrpt::system::TTimeParts::hour, INVALID_TIMESTAMP, m_customInit, m_data_stream, m_data_stream_cs, m_GPS_comsWork, m_just_parsed_messages, m_last_timestamp, m_raw_dump_file_prefix, m_raw_output_file, m_rx_buffer, mrpt::hwdrivers::CGenericSensor::m_state, m_topcon_data_period, mrpt::hwdrivers::CGenericSensor::m_verbose, mrpt::system::TTimeParts::minute, mrpt::system::TTimeParts::month, MRPT_LOG_ERROR, mrpt::system::now(), mrpt::io::CFileOutputStream::open(), parseBuffer(), mrpt::containers::circular_buffer< T >::push_many(), mrpt::io::CStream::Read(), mrpt::system::TTimeParts::second, mrpt::hwdrivers::CGenericSensor::ssError, THROW_EXCEPTION, mrpt::system::timeDifference(), mrpt::obs::CObservation::timestamp, mrpt::system::timestampToParts(), mrpt::system::timeToString(), tryToOpenTheCOM(), mrpt::io::CFileOutputStream::Write(), and mrpt::system::TTimeParts::year.

Referenced by TEST().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dumpLogToConsole()

void COutputLogger::dumpLogToConsole ( ) const
inherited

Dump the current contents of the COutputLogger instance in the terminal window.

See also
writeToFile

Definition at line 190 of file COutputLogger.cpp.

◆ enableAppendMsgTypeToSensorLabel()

void mrpt::hwdrivers::CGPSInterface::enableAppendMsgTypeToSensorLabel ( bool  enable)
inline

Definition at line 211 of file CGPSInterface.h.

References m_sensorLabelAppendMsgType.

◆ enableSetupCommandsAppendCRLF()

void CGPSInterface::enableSetupCommandsAppendCRLF ( const bool  enable)

Definition at line 201 of file CGPSInterface.cpp.

References m_custom_cmds_append_CRLF.

◆ enableVerbose()

void mrpt::hwdrivers::CGenericSensor::enableVerbose ( bool  enabled = true)
inlineinherited

Enable or disable extra debug info dumped to std::cout during sensor operation.

Default: disabled unless the environment variable "MRPT_HWDRIVERS_VERBOSE" is set to "1" during object creation.

Definition at line 104 of file CGenericSensor.h.

References mrpt::hwdrivers::CGenericSensor::m_verbose.

◆ flushParsedMessagesNow()

void CGPSInterface::flushParsedMessagesNow ( )
private

Queue out now the messages in m_just_parsed_messages, leaving it empty.

Definition at line 449 of file CGPSInterface.cpp.

References mrpt::hwdrivers::CGenericSensor::appendObservation(), mrpt::obs::CObservationGPS::clear(), m_GPS_comsWork, m_just_parsed_messages, m_last_timestamp, mrpt::hwdrivers::CGenericSensor::m_sensorLabel, m_sensorLabelAppendMsgType, m_sensorPose, mrpt::hwdrivers::CGenericSensor::m_state, mrpt::obs::CObservation::sensorLabel, mrpt::obs::CObservationGPS::sensorPose, mrpt::hwdrivers::CGenericSensor::ssWorking, mrpt::obs::CObservationGPS::swap(), and mrpt::obs::CObservation::timestamp.

Referenced by doProcess(), and parseBuffer().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getExternalImageJPEGQuality()

unsigned int mrpt::hwdrivers::CGenericSensor::getExternalImageJPEGQuality ( ) const
inlineinherited

◆ getLastGGA()

std::string CGPSInterface::getLastGGA ( bool  reset = true)

Gets the latest GGA command or an empty string if no newer GGA command was received since the last call to this method.

Parameters
[in]resetIf set to true, will empty the GGA cache so next calls will return an empty string if no new frame is received.

Definition at line 787 of file CGPSInterface.cpp.

References m_last_GGA.

◆ getLogAsString() [1/2]

void COutputLogger::getLogAsString ( std::string log_contents) const
inherited

Fill the provided string with the contents of the logger's history in std::string representation.

Definition at line 154 of file COutputLogger.cpp.

◆ getLogAsString() [2/2]

std::string COutputLogger::getLogAsString ( ) const
inherited

Get the history of COutputLogger instance in a string representation.

Definition at line 159 of file COutputLogger.cpp.

Referenced by mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::getDescriptiveReport().

Here is the caller graph for this function:

◆ getLoggerLastMsg() [1/2]

std::string COutputLogger::getLoggerLastMsg ( ) const
inherited

Return the last Tmsg instance registered in the logger history.

Definition at line 195 of file COutputLogger.cpp.

References mrpt::system::COutputLogger::TMsg::getAsString().

Here is the call graph for this function:

◆ getLoggerLastMsg() [2/2]

void COutputLogger::getLoggerLastMsg ( std::string msg_str) const
inherited

Fill inputtted string with the contents of the last message in history.

Definition at line 201 of file COutputLogger.cpp.

◆ getLoggerName()

std::string COutputLogger::getLoggerName ( ) const
inherited

Return the name of the COutputLogger instance.

See also
setLoggerName

Definition at line 143 of file COutputLogger.cpp.

◆ getMinLoggingLevel()

VerbosityLevel mrpt::system::COutputLogger::getMinLoggingLevel ( ) const
inlineinherited
See also
setMinLoggingLevel

Definition at line 201 of file system/COutputLogger.h.

References mrpt::system::COutputLogger::m_min_verbosity_level.

Referenced by mrpt::apps::RawlogGrabberApp::dump_verbose_info(), mrpt::maps::CRandomFieldGridMap2D::isEnabledVerbose(), mrpt::slam::CMetricMapBuilderRBPF::processActionObservation(), mrpt::apps::CGridMapAlignerApp::run(), and mrpt::apps::ICP_SLAM_App_Base::run().

Here is the caller graph for this function:

◆ getObservations()

void CGenericSensor::getObservations ( TListObservations lstObjects)
inherited

Returns a list of enqueued objects, emptying it (thread-safe).

The objects must be freed by the invoker.

Definition at line 85 of file CGenericSensor.cpp.

References mrpt::hwdrivers::CGenericSensor::m_csObjList, and mrpt::hwdrivers::CGenericSensor::m_objList.

Referenced by TEST().

Here is the caller graph for this function:

◆ getParser()

CGPSInterface::PARSERS CGPSInterface::getParser ( ) const

Definition at line 162 of file CGPSInterface.cpp.

References m_parser.

◆ getProcessRate()

double mrpt::hwdrivers::CGenericSensor::getProcessRate ( ) const
inlineinherited

Definition at line 92 of file CGenericSensor.h.

References mrpt::hwdrivers::CGenericSensor::m_process_rate.

◆ getRawDumpFilePrefix()

std::string mrpt::hwdrivers::CGPSInterface::getRawDumpFilePrefix ( ) const
inline

Definition at line 222 of file CGPSInterface.h.

References m_raw_dump_file_prefix.

◆ GetRuntimeClass()

virtual const mrpt::hwdrivers::TSensorClassId* mrpt::hwdrivers::CGenericSensor::GetRuntimeClass ( ) const
pure virtualinherited

◆ getSensorLabel()

std::string mrpt::hwdrivers::CGenericSensor::getSensorLabel ( ) const
inlineinherited

Definition at line 93 of file CGenericSensor.h.

References mrpt::hwdrivers::CGenericSensor::m_sensorLabel.

◆ getSerialPortName()

std::string CGPSInterface::getSerialPortName ( ) const

Get the serial port to use (COM1, ttyUSB0, etc).

Definition at line 237 of file CGPSInterface.cpp.

References m_COMname.

◆ getSetupCommands()

const std::vector< std::string > & CGPSInterface::getSetupCommands ( ) const

Definition at line 189 of file CGPSInterface.cpp.

References m_setup_cmds.

◆ getSetupCommandsDelay()

double CGPSInterface::getSetupCommandsDelay ( ) const

Definition at line 181 of file CGPSInterface.cpp.

References m_custom_cmds_delay.

◆ getShutdownCommands()

const std::vector< std::string > & CGPSInterface::getShutdownCommands ( ) const

Definition at line 197 of file CGPSInterface.cpp.

References m_shutdown_cmds.

◆ getState()

TSensorState mrpt::hwdrivers::CGenericSensor::getState ( ) const
inlineinherited

The current state of the sensor.

Definition at line 91 of file CGenericSensor.h.

References mrpt::hwdrivers::CGenericSensor::m_state.

◆ implement_parser_NMEA()

bool CGPSInterface::implement_parser_NMEA ( size_t &  out_minimum_rx_buf_to_decide)

Definition at line 24 of file CGPSInterface_parser_NMEA.cpp.

References MAX_NMEA_LINE_LENGTH, parse_NMEA(), and val.

Referenced by parseBuffer(), and TParsersRegistry::TParsersRegistry().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ implement_parser_NOVATEL_OEM6()

◆ initialize()

virtual void mrpt::hwdrivers::CGenericSensor::initialize ( )
inlinevirtualinherited

◆ isAIMConfigured()

bool mrpt::hwdrivers::CGPSInterface::isAIMConfigured ( )
inline

Definition at line 229 of file CGPSInterface.h.

References m_topcon_AIMConfigured.

◆ isEnabledSetupCommandsAppendCRLF()

bool CGPSInterface::isEnabledSetupCommandsAppendCRLF ( ) const

Definition at line 205 of file CGPSInterface.cpp.

References m_custom_cmds_append_CRLF.

◆ isGPS_connected()

bool CGPSInterface::isGPS_connected ( )

Returns true if communications work, i.e.

if some message has been received.

Definition at line 294 of file CGPSInterface.cpp.

References m_GPS_comsWork.

◆ isGPS_signalAcquired()

bool mrpt::hwdrivers::CGPSInterface::isGPS_signalAcquired ( )

Returns true if the last message from the GPS indicates that the signal from sats has been acquired.

◆ isLoggingLevelVisible()

bool mrpt::system::COutputLogger::isLoggingLevelVisible ( VerbosityLevel  level) const
inlineinherited

Definition at line 202 of file system/COutputLogger.h.

References mrpt::system::COutputLogger::m_min_verbosity_level.

Referenced by mrpt::slam::CMetricMapBuilderRBPF::processActionObservation(), and mrpt::system::COutputLoggerStreamWrapper::~COutputLoggerStreamWrapper().

Here is the caller graph for this function:

◆ isVerboseEnabled()

bool mrpt::hwdrivers::CGenericSensor::isVerboseEnabled ( ) const
inlineinherited

Definition at line 105 of file CGenericSensor.h.

References mrpt::hwdrivers::CGenericSensor::m_verbose.

◆ JAVAD_sendMessage()

void CGPSInterface::JAVAD_sendMessage ( const char *  str,
bool  waitForAnswer = true 
)
private

Private auxiliary method.

Raises exception on error.

Definition at line 540 of file CGPSInterface.cpp.

References mrpt::format(), m_data_stream, m_data_stream_cs, and mrpt::hwdrivers::CGenericSensor::m_verbose.

Referenced by legacy_topcon_setup_commands(), setJAVAD_AIM_mode(), and unsetJAVAD_AIM_mode().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ legacy_topcon_setup_commands()

bool CGPSInterface::legacy_topcon_setup_commands ( )
protected

Definition at line 794 of file CGPSInterface.cpp.

References mrpt::format(), JAVAD_sendMessage(), m_data_stream, m_data_stream_cs, m_JAVAD_rtk_format, m_JAVAD_rtk_src_baud, m_JAVAD_rtk_src_port, m_topcon_AIMConfigured, m_topcon_data_period, m_topcon_useAIMMode, mrpt::hwdrivers::CGenericSensor::m_verbose, setJAVAD_AIM_mode(), and mrpt::system::strCmp().

Referenced by OnConnectionEstablished().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ loadConfig()

void CGenericSensor::loadConfig ( const mrpt::config::CConfigFileBase cfg,
const std::string sect 
)
inherited

Loads the generic settings common to any sensor (See CGenericSensor), then call to "loadConfig_sensorSpecific".

Exceptions
Thismethod throws an exception with a descriptive message if some critical parameter is missing or has an invalid value.

Definition at line 126 of file CGenericSensor.cpp.

References mrpt::hwdrivers::CGenericSensor::loadConfig_sensorSpecific(), mrpt::hwdrivers::CGenericSensor::m_grab_decimation, mrpt::hwdrivers::CGenericSensor::m_grab_decimation_counter, mrpt::hwdrivers::CGenericSensor::m_max_queue_len, mrpt::hwdrivers::CGenericSensor::m_process_rate, mrpt::hwdrivers::CGenericSensor::m_sensorLabel, MRPT_END, MRPT_START, mrpt::config::CConfigFileBase::read_double(), mrpt::config::CConfigFileBase::read_int(), mrpt::config::CConfigFileBase::read_string(), and sect.

Here is the call graph for this function:

◆ loadConfig_sensorSpecific()

◆ logCond()

void COutputLogger::logCond ( const VerbosityLevel  level,
bool  cond,
const std::string msg_str 
) const
inherited

Log the given message only if the condition is satisfied.

See also
log, logFmt

Definition at line 131 of file COutputLogger.cpp.

◆ logDeregisterCallback()

bool COutputLogger::logDeregisterCallback ( output_logger_callback_t  userFunc)
inherited
Returns
true if an entry was found and deleted.

Definition at line 291 of file COutputLogger.cpp.

References getAddress(), and mrpt::system::COutputLogger::m_listCallbacks.

Here is the call graph for this function:

◆ logFmt()

void COutputLogger::logFmt ( const VerbosityLevel  level,
const char *  fmt,
  ... 
) const
inherited

◆ loggerReset()

void COutputLogger::loggerReset ( )
inherited

Reset the contents of the logger instance.

Called upon construction.

Definition at line 206 of file COutputLogger.cpp.

References mrpt::system::LVL_INFO.

◆ logging_levels_to_colors()

std::array< mrpt::system::TConsoleColor, NUMBER_OF_VERBOSITY_LEVELS > & COutputLogger::logging_levels_to_colors ( )
staticinherited

Map from VerbosityLevels to their corresponding mrpt::system::TConsoleColor.

Handy for coloring the input based on the verbosity of the message

Definition at line 47 of file COutputLogger.cpp.

References logging_levels_to_colors.

Referenced by mrpt::system::COutputLogger::TMsg::dumpToConsole().

Here is the caller graph for this function:

◆ logging_levels_to_names()

std::array< std::string, NUMBER_OF_VERBOSITY_LEVELS > & COutputLogger::logging_levels_to_names ( )
staticinherited

Map from VerbosityLevels to their corresponding names.

Handy for printing the current message VerbosityLevel along with the actual content

Definition at line 60 of file COutputLogger.cpp.

References logging_levels_to_names.

Referenced by mrpt::system::COutputLogger::TMsg::getAsString().

Here is the caller graph for this function:

◆ logRegisterCallback()

void COutputLogger::logRegisterCallback ( output_logger_callback_t  userFunc)
inherited

Definition at line 278 of file COutputLogger.cpp.

References mrpt::system::COutputLogger::m_listCallbacks.

◆ logStr()

void COutputLogger::logStr ( const VerbosityLevel  level,
std::string_view  msg_str 
) const
inherited

Main method to add the specified message string to the logger.

See also
logCond, logFmt

Definition at line 72 of file COutputLogger.cpp.

References mrpt::system::COutputLogger::TMsg::body, mrpt::system::COutputLogger::TMsg::dumpToConsole(), mrpt::system::COutputLogger::TMsg::level, mrpt::system::COutputLogger::TMsg::name, and mrpt::system::COutputLogger::TMsg::timestamp.

Referenced by mrpt::slam::PF_implementation< mrpt::math::TPose3D, CMonteCarloLocalization3D, mrpt::bayes::particle_storage_mode::VALUE >::PF_SLAM_implementation_pfAuxiliaryPFStandardAndOptimal(), mrpt::nav::CReactiveNavigationSystem::STEP1_InitPTGs(), mrpt::system::COutputLoggerStreamWrapper::~COutputLoggerStreamWrapper(), and mrpt::system::CTimeLoggerSaveAtDtor::~CTimeLoggerSaveAtDtor().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ OnConnectionEstablished()

bool CGPSInterface::OnConnectionEstablished ( )
protected

Implements custom messages to be sent to the GPS unit just after connection and before normal use.

Returns false or raise an exception if something goes wrong.

Definition at line 626 of file CGPSInterface.cpp.

References mrpt::system::os::_strcmpi(), mrpt::obs::CObservationGPS::clear(), legacy_topcon_setup_commands(), m_custom_cmds_append_CRLF, m_custom_cmds_delay, m_customInit, m_data_stream, m_data_stream_cs, m_just_parsed_messages, m_last_GGA, m_setup_cmds, mrpt::hwdrivers::CGenericSensor::m_verbose, and mrpt::io::CStream::Write().

Referenced by tryToOpenTheCOM().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ OnConnectionShutdown()

bool CGPSInterface::OnConnectionShutdown ( )
protected

Like OnConnectionEstablished() for sending optional shutdown commands.

Definition at line 592 of file CGPSInterface.cpp.

References m_custom_cmds_append_CRLF, m_custom_cmds_delay, m_data_stream, m_data_stream_cs, m_shutdown_cmds, mrpt::hwdrivers::CGenericSensor::m_verbose, and mrpt::io::CStream::Write().

Referenced by ~CGPSInterface().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_NMEA()

bool CGPSInterface::parse_NMEA ( const std::string cmd_line,
mrpt::obs::CObservationGPS out_obs,
const bool  verbose = false 
)
static

Parses one line of NMEA data from a GPS receiver, and writes the recognized fields (if any) into an observation object.

Recognized frame types are those listed for the NMEA parser in the documentation of CGPSInterface

Returns
true if some new data field has been correctly parsed and inserted into out_obs

Definition at line 96 of file CGPSInterface_parser_NMEA.cpp.

References mrpt::obs::gnss::Message_NMEA_GGA::content_t::altitude_meters, mrpt::obs::gnss::Message_NMEA_GGA::content_t::corrected_orthometric_altitude, mrpt::obs::gnss::Message_NMEA_RMC::content_t::date_day, mrpt::obs::gnss::Message_NMEA_ZDA::content_t::date_day, mrpt::obs::gnss::Message_NMEA_RMC::content_t::date_month, mrpt::obs::gnss::Message_NMEA_ZDA::content_t::date_month, mrpt::obs::gnss::Message_NMEA_RMC::content_t::date_year, mrpt::obs::gnss::Message_NMEA_ZDA::content_t::date_year, mrpt::obs::gnss::Message_NMEA_RMC::content_t::direction_degrees, mrpt::obs::gnss::Message_NMEA_GGA::fields, mrpt::obs::gnss::Message_NMEA_GLL::fields, mrpt::obs::gnss::Message_NMEA_RMC::fields, mrpt::obs::gnss::Message_NMEA_VTG::fields, mrpt::obs::gnss::Message_NMEA_ZDA::fields, mrpt::obs::gnss::Message_NMEA_GGA::content_t::fix_quality, mrpt::obs::gnss::Message_NMEA_GGA::content_t::geoidal_distance, mrpt::obs::gnss::UTC_time::getAsTimestamp(), mrpt::obs::gnss::Message_NMEA_RMC::getDateAsTimestamp(), mrpt::obs::gnss::Message_NMEA_ZDA::getDateAsTimestamp(), mrpt::obs::gnss::Message_NMEA_ZDA::getDateTimeAsTimestamp(), mrpt::obs::gnss::Message_NMEA_VTG::content_t::ground_speed_kmh, mrpt::obs::gnss::Message_NMEA_VTG::content_t::ground_speed_knots, mrpt::obs::CObservationGPS::has_satellite_timestamp, mrpt::obs::gnss::Message_NMEA_GGA::content_t::HDOP, mrpt::obs::gnss::UTC_time::hour, mrpt::obs::gnss::lat, mrpt::obs::gnss::Message_NMEA_GGA::content_t::latitude_degrees, mrpt::obs::gnss::Message_NMEA_GLL::content_t::latitude_degrees, mrpt::obs::gnss::Message_NMEA_RMC::content_t::latitude_degrees, mrpt::obs::gnss::Message_NMEA_GGA::content_t::longitude_degrees, mrpt::obs::gnss::Message_NMEA_GLL::content_t::longitude_degrees, mrpt::obs::gnss::Message_NMEA_RMC::content_t::longitude_degrees, mrpt::obs::gnss::Message_NMEA_RMC::content_t::magnetic_dir, mrpt::obs::gnss::Message_NMEA_VTG::content_t::magnetic_track, mrpt::obs::gnss::UTC_time::minute, mrpt::system::now(), mrpt::obs::CObservationGPS::originalReceivedTimestamp, mrpt::obs::gnss::Message_NMEA_GGA::content_t::orthometric_altitude, mrpt::obs::gnss::Message_NMEA_RMC::content_t::positioning_mode, mrpt::obs::gnss::Message_NMEA_GGA::content_t::satellitesUsed, mrpt::obs::gnss::UTC_time::sec, mrpt::obs::CObservationGPS::setMsg(), mrpt::obs::gnss::Message_NMEA_RMC::content_t::speed_knots, mrpt::obs::gnss::Message_NMEA_GGA::content_t::thereis_HDOP, mrpt::obs::CObservation::timestamp, mrpt::system::tokenize(), mrpt::system::trim(), mrpt::obs::gnss::Message_NMEA_VTG::content_t::true_track, mrpt::obs::gnss::Message_NMEA_GGA::content_t::UTCTime, mrpt::obs::gnss::Message_NMEA_GLL::content_t::UTCTime, mrpt::obs::gnss::Message_NMEA_RMC::content_t::UTCTime, mrpt::obs::gnss::Message_NMEA_ZDA::content_t::UTCTime, mrpt::obs::gnss::Message_NMEA_GLL::content_t::validity_char, and mrpt::obs::gnss::Message_NMEA_RMC::content_t::validity_char.

Referenced by mrpt::hwdrivers::CVelodyneScanner::getNextObservation(), implement_parser_NMEA(), and TEST().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ parseBuffer()

void CGPSInterface::parseBuffer ( )
private

Process data in "m_buffer" to extract GPS messages, and remove them from the buffer.

Definition at line 473 of file CGPSInterface.cpp.

References TParsersRegistry::all_parsers, AUTO, flushParsedMessagesNow(), TParsersRegistry::getInstance(), implement_parser_NMEA(), implement_parser_NOVATEL_OEM6(), mrpt::keep_max(), m_customInit, m_just_parsed_messages, m_parser, m_rx_buffer, mrpt::obs::CObservationGPS::messages, NMEA, NONE, NOVATEL_OEM6, mrpt::containers::circular_buffer< T >::pop(), and mrpt::containers::circular_buffer< T >::size().

Referenced by doProcess().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ registerClass()

void CGenericSensor::registerClass ( const TSensorClassId pNewClass)
staticinherited

Register a class into the internal list of "CGenericSensor" descendents.

Used internally in the macros DEFINE_GENERIC_SENSOR, etc...

Can be used as "CGenericSensor::registerClass( SENSOR_CLASS_ID(CMySensor) );" if building custom sensors outside mrpt libraries in user code.

Definition at line 115 of file CGenericSensor.cpp.

References mrpt::hwdrivers::TSensorClassId::className, and mrpt::hwdrivers::CGenericSensor::get_registered_sensor_classes().

Here is the call graph for this function:

◆ sendCustomCommand()

bool CGPSInterface::sendCustomCommand ( const void data,
const size_t  datalen 
)

Send a custom data block to the GNSS device right now.

Can be used to change its behavior online as needed.

Returns
false on communication error

Can be used to change its behavior online as needed.

Definition at line 908 of file CGPSInterface.cpp.

References m_data_stream, m_data_stream_cs, and mrpt::io::CStream::Write().

Here is the call graph for this function:

◆ setExternalImageFormat()

void mrpt::hwdrivers::CGenericSensor::setExternalImageFormat ( const std::string ext)
inlineinherited

Set the extension ("jpg","gif","png",...) that determines the format of images saved externally The default is "jpg".

See also
setPathForExternalImages, setExternalImageJPEGQuality

Definition at line 267 of file CGenericSensor.h.

References mrpt::hwdrivers::CGenericSensor::m_external_images_format.

◆ setExternalImageJPEGQuality()

void mrpt::hwdrivers::CGenericSensor::setExternalImageJPEGQuality ( const unsigned int  quality)
inlineinherited

The quality of JPEG compression, when external images is enabled and the format is "jpg".

See also
setExternalImageFormat

Definition at line 274 of file CGenericSensor.h.

References mrpt::hwdrivers::CGenericSensor::m_external_images_jpeg_quality.

◆ setJAVAD_AIM_mode()

bool CGPSInterface::setJAVAD_AIM_mode ( )
protected

Set Advanced Input Mode for the primary port.

This can be used to send RTK corrections to the device using the same port that it's used for the commands. The RTK correction stream must be re-packaged into a special frame with prefix ">>"

Definition at line 710 of file CGPSInterface.cpp.

References mrpt::system::os::_strcmpi(), ASSERT_, mrpt::format(), JAVAD_sendMessage(), m_customInit, m_JAVAD_rtk_format, m_JAVAD_rtk_src_port, MRPT_END, and MRPT_START.

Referenced by legacy_topcon_setup_commands().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setJAVAD_rtk_format()

void mrpt::hwdrivers::CGPSInterface::setJAVAD_rtk_format ( const std::string s)
inlineprotected

Only used when "m_JAVAD_rtk_src_port" is not empty: format of RTK corrections: "cmr", "rtcm", "rtcm3", etc.

Definition at line 300 of file CGPSInterface.h.

References m_JAVAD_rtk_format.

◆ setJAVAD_rtk_src_baud()

void mrpt::hwdrivers::CGPSInterface::setJAVAD_rtk_src_baud ( unsigned int  baud)
inlineprotected

Only used when "m_JAVAD_rtk_src_port" is not empty.

Definition at line 293 of file CGPSInterface.h.

References m_JAVAD_rtk_src_baud.

◆ setJAVAD_rtk_src_port()

void mrpt::hwdrivers::CGPSInterface::setJAVAD_rtk_src_port ( const std::string s)
inlineprotected

If not empty, will send a cmd "set,/par/pos/pd/port,...".

Example value: "/dev/ser/b"

Definition at line 287 of file CGPSInterface.h.

References m_JAVAD_rtk_src_port.

◆ setLoggerName()

void COutputLogger::setLoggerName ( const std::string name)
inherited

◆ setMinLoggingLevel()

void COutputLogger::setMinLoggingLevel ( const VerbosityLevel  level)
inherited

Set the minimum logging level for which the incoming logs are going to be taken into account.

String messages with specified VerbosityLevel smaller than the min, will not be outputted to the screen and neither will a record of them be stored in by the COutputLogger instance

Definition at line 144 of file COutputLogger.cpp.

Referenced by mrpt::maps::CRandomFieldGridMap2D::enableVerbose(), mrpt::math::CLevenbergMarquardtTempl< VECTORTYPE, USERPARAM >::execute(), generic_kf_slam_test(), mrpt::apps::RawlogGrabberApp::initialize(), mrpt::hwdrivers::CHokuyoURG::initialize(), mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::loadParams(), and mrpt::apps::CGridMapAlignerApp::run().

Here is the caller graph for this function:

◆ setParser()

void CGPSInterface::setParser ( CGPSInterface::PARSERS  parser)

Select the parser for incomming data, among the options enumerated in CGPSInterface.

Definition at line 158 of file CGPSInterface.cpp.

References m_parser.

◆ setPathForExternalImages()

virtual void mrpt::hwdrivers::CGenericSensor::setPathForExternalImages ( const std::string directory)
inlinevirtualinherited

Set the path where to save off-rawlog image files (will be ignored in those sensors where this is not applicable).

An empty string (the default value at construction) means to save images embedded in the rawlog, instead of on separate files.

Exceptions
std::exceptionIf the directory doesn't exists and cannot be created.

Reimplemented in mrpt::hwdrivers::CCameraSensor, mrpt::hwdrivers::CKinect, mrpt::hwdrivers::COpenNI2Sensor, mrpt::hwdrivers::COpenNI2_RGBD360, and mrpt::hwdrivers::CSwissRanger3DCamera.

Definition at line 256 of file CGenericSensor.h.

References MRPT_UNUSED_PARAM.

◆ setRawDumpFilePrefix()

void mrpt::hwdrivers::CGPSInterface::setRawDumpFilePrefix ( const std::string filePrefix)
inline

If set to non-empty, RAW GPS serial data will be also dumped to a separate file.

Definition at line 218 of file CGPSInterface.h.

References m_raw_dump_file_prefix.

◆ setSensorLabel()

void mrpt::hwdrivers::CGenericSensor::setSensorLabel ( const std::string sensorLabel)
inlineinherited

Definition at line 94 of file CGenericSensor.h.

References mrpt::hwdrivers::CGenericSensor::m_sensorLabel.

◆ setSerialPortName()

void CGPSInterface::setSerialPortName ( const std::string COM_port)

Set the serial port to use (COM1, ttyUSB0, etc).

Definition at line 213 of file CGPSInterface.cpp.

References m_COMname, m_data_stream, m_data_stream_cs, m_data_stream_is_external, and THROW_EXCEPTION.

◆ setSetupCommands()

void CGPSInterface::setSetupCommands ( const std::vector< std::string > &  cmds)

Definition at line 185 of file CGPSInterface.cpp.

References m_setup_cmds.

◆ setSetupCommandsDelay()

void CGPSInterface::setSetupCommandsDelay ( const double  delay_secs)

Definition at line 177 of file CGPSInterface.cpp.

References m_custom_cmds_delay.

◆ setShutdownCommands()

void CGPSInterface::setShutdownCommands ( const std::vector< std::string > &  cmds)

Definition at line 193 of file CGPSInterface.cpp.

References m_shutdown_cmds.

◆ setVerbosityLevel()

void COutputLogger::setVerbosityLevel ( const VerbosityLevel  level)
inherited

◆ tryToOpenTheCOM()

bool CGPSInterface::tryToOpenTheCOM ( )
private

Returns true if the COM port is already open, or try to open it in other case.

Returns
true if everything goes OK, or false if there are problems opening the port.

Definition at line 241 of file CGPSInterface.cpp.

References m_COMbauds, m_COMname, m_data_stream, m_data_stream_cs, m_data_stream_is_external, m_data_stream_mine_cs, mrpt::hwdrivers::CGenericSensor::m_verbose, and OnConnectionEstablished().

Referenced by doProcess().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ unsetJAVAD_AIM_mode()

bool CGPSInterface::unsetJAVAD_AIM_mode ( )
protected

Unset Advanced Input Mode for the primary port and use it only as a command port.

Definition at line 679 of file CGPSInterface.cpp.

References mrpt::system::os::_strcmpi(), JAVAD_sendMessage(), m_customInit, m_data_stream, m_data_stream_cs, MRPT_END, and MRPT_START.

Here is the call graph for this function:

◆ useExternalStream()

bool mrpt::hwdrivers::CGPSInterface::useExternalStream ( ) const
inline

Definition at line 198 of file CGPSInterface.h.

References m_data_stream_is_external.

◆ useExternCOM()

bool mrpt::hwdrivers::CGPSInterface::useExternCOM ( ) const
inline

Definition at line 197 of file CGPSInterface.h.

References m_data_stream_is_external.

◆ writeLogToFile()

void COutputLogger::writeLogToFile ( const std::string fname_in = nullptr) const
inherited

Write the contents of the COutputLogger instance to an external file.

Upon call to this method, COutputLogger dumps the contents of all the logged commands so far to the specified external file. By default the filename is set to ${LOGGERNAME}.log except if the fname parameter is provided

See also
dumpToConsole, getAsString

Definition at line 165 of file COutputLogger.cpp.

References ASSERTMSG_, and mrpt::format().

Here is the call graph for this function:

Member Data Documentation

◆ logging_enable_console_output

bool mrpt::system::COutputLogger::logging_enable_console_output {true}
inherited

[Default=true] Set it to false in case you don't want the logged messages to be dumped to the output automatically.

Definition at line 240 of file system/COutputLogger.h.

◆ logging_enable_keep_record

bool mrpt::system::COutputLogger::logging_enable_keep_record {false}
inherited

[Default=false] Enables storing all messages into an internal list.

See also
writeLogToFile, getLogAsString

Definition at line 243 of file system/COutputLogger.h.

◆ m_COMbauds

int mrpt::hwdrivers::CGPSInterface::m_COMbauds {4800}
private

Definition at line 318 of file CGPSInterface.h.

Referenced by loadConfig_sensorSpecific(), and tryToOpenTheCOM().

◆ m_COMname

std::string mrpt::hwdrivers::CGPSInterface::m_COMname
private

◆ m_custom_cmds_append_CRLF

bool mrpt::hwdrivers::CGPSInterface::m_custom_cmds_append_CRLF {true}
private

◆ m_custom_cmds_delay

double mrpt::hwdrivers::CGPSInterface::m_custom_cmds_delay {0.1}
private

◆ m_customInit

std::string mrpt::hwdrivers::CGPSInterface::m_customInit
protected

◆ m_data_stream

mrpt::io::CStream* mrpt::hwdrivers::CGPSInterface::m_data_stream {nullptr}
protected

◆ m_data_stream_cs

std::mutex* mrpt::hwdrivers::CGPSInterface::m_data_stream_cs {nullptr}
protected

◆ m_data_stream_is_external

bool mrpt::hwdrivers::CGPSInterface::m_data_stream_is_external {false}
protected

◆ m_data_stream_mine_cs

std::mutex mrpt::hwdrivers::CGPSInterface::m_data_stream_mine_cs
protected

Definition at line 274 of file CGPSInterface.h.

Referenced by bindStream(), and tryToOpenTheCOM().

◆ m_external_images_format

std::string mrpt::hwdrivers::CGenericSensor::m_external_images_format
protectedinherited

The extension ("jpg","gif","png",...) that determines the format of images saved externally.

See also
setPathForExternalImages

Definition at line 156 of file CGenericSensor.h.

Referenced by mrpt::hwdrivers::CSwissRanger3DCamera::getNextObservation(), mrpt::hwdrivers::CSwissRanger3DCamera::loadConfig_sensorSpecific(), and mrpt::hwdrivers::CGenericSensor::setExternalImageFormat().

◆ m_external_images_jpeg_quality

unsigned int mrpt::hwdrivers::CGenericSensor::m_external_images_jpeg_quality {95}
protectedinherited

◆ m_GPS_comsWork

bool mrpt::hwdrivers::CGPSInterface::m_GPS_comsWork {false}
private

Definition at line 320 of file CGPSInterface.h.

Referenced by doProcess(), flushParsedMessagesNow(), and isGPS_connected().

◆ m_grab_decimation

size_t mrpt::hwdrivers::CGenericSensor::m_grab_decimation {0}
protectedinherited

If set to N>=2, only 1 out of N observations will be saved to m_objList.

Definition at line 137 of file CGenericSensor.h.

Referenced by mrpt::hwdrivers::CGenericSensor::appendObservations(), and mrpt::hwdrivers::CGenericSensor::loadConfig().

◆ m_grab_decimation_counter

size_t mrpt::hwdrivers::CGenericSensor::m_grab_decimation_counter {0}
protectedinherited

Used when "m_grab_decimation" is enabled.

Definition at line 144 of file CGenericSensor.h.

Referenced by mrpt::hwdrivers::CGenericSensor::appendObservations(), and mrpt::hwdrivers::CGenericSensor::loadConfig().

◆ m_JAVAD_rtk_format

std::string mrpt::hwdrivers::CGPSInterface::m_JAVAD_rtk_format
private

Only used when "m_JAVAD_rtk_src_port" is not empty: format of RTK corrections: "cmr", "rtcm", "rtcm3", etc.

Definition at line 337 of file CGPSInterface.h.

Referenced by legacy_topcon_setup_commands(), loadConfig_sensorSpecific(), setJAVAD_AIM_mode(), and setJAVAD_rtk_format().

◆ m_JAVAD_rtk_src_baud

unsigned int mrpt::hwdrivers::CGPSInterface::m_JAVAD_rtk_src_baud {0}
private

Only used when "m_JAVAD_rtk_src_port" is not empty.

Definition at line 334 of file CGPSInterface.h.

Referenced by legacy_topcon_setup_commands(), loadConfig_sensorSpecific(), and setJAVAD_rtk_src_baud().

◆ m_JAVAD_rtk_src_port

std::string mrpt::hwdrivers::CGPSInterface::m_JAVAD_rtk_src_port
private

If not empty, will send a cmd "set,/par/pos/pd/port,...".

Example value: "/dev/ser/b"

Definition at line 332 of file CGPSInterface.h.

Referenced by legacy_topcon_setup_commands(), loadConfig_sensorSpecific(), setJAVAD_AIM_mode(), and setJAVAD_rtk_src_port().

◆ m_just_parsed_messages

mrpt::obs::CObservationGPS mrpt::hwdrivers::CGPSInterface::m_just_parsed_messages
private

A private copy of the last received gps datum.

Definition at line 364 of file CGPSInterface.h.

Referenced by doProcess(), flushParsedMessagesNow(), OnConnectionEstablished(), and parseBuffer().

◆ m_last_GGA

std::string mrpt::hwdrivers::CGPSInterface::m_last_GGA
private

Used in getLastGGA()

Definition at line 366 of file CGPSInterface.h.

Referenced by getLastGGA(), and OnConnectionEstablished().

◆ m_last_timestamp

mrpt::system::TTimeStamp mrpt::hwdrivers::CGPSInterface::m_last_timestamp
private

Definition at line 321 of file CGPSInterface.h.

Referenced by doProcess(), and flushParsedMessagesNow().

◆ m_max_queue_len

size_t mrpt::hwdrivers::CGenericSensor::m_max_queue_len {200}
protectedinherited

See CGenericSensor.

Definition at line 134 of file CGenericSensor.h.

Referenced by mrpt::hwdrivers::CGenericSensor::loadConfig().

◆ m_min_verbosity_level

VerbosityLevel mrpt::system::COutputLogger::m_min_verbosity_level {LVL_INFO}
protectedinherited

Provided messages with VerbosityLevel smaller than this value shall be ignored.

Definition at line 253 of file system/COutputLogger.h.

Referenced by mrpt::system::COutputLogger::getMinLoggingLevel(), and mrpt::system::COutputLogger::isLoggingLevelVisible().

◆ m_parser

PARSERS mrpt::hwdrivers::CGPSInterface::m_parser {CGPSInterface::AUTO}
private

Definition at line 315 of file CGPSInterface.h.

Referenced by getParser(), loadConfig_sensorSpecific(), parseBuffer(), and setParser().

◆ m_path_for_external_images

std::string mrpt::hwdrivers::CGenericSensor::m_path_for_external_images
protectedinherited

The path where to save off-rawlog images: empty means save images embedded in the rawlog.

Definition at line 153 of file CGenericSensor.h.

Referenced by mrpt::hwdrivers::CSwissRanger3DCamera::getNextObservation(), and mrpt::hwdrivers::CSwissRanger3DCamera::setPathForExternalImages().

◆ m_process_rate

double mrpt::hwdrivers::CGenericSensor::m_process_rate {0}
protectedinherited

◆ m_raw_dump_file_prefix

std::string mrpt::hwdrivers::CGPSInterface::m_raw_dump_file_prefix
private

◆ m_raw_output_file

mrpt::io::CFileOutputStream mrpt::hwdrivers::CGPSInterface::m_raw_output_file
private

Definition at line 322 of file CGPSInterface.h.

Referenced by doProcess().

◆ m_rx_buffer

mrpt::containers::circular_buffer<uint8_t> mrpt::hwdrivers::CGPSInterface::m_rx_buffer
private

Auxiliary buffer for readings.

Definition at line 314 of file CGPSInterface.h.

Referenced by doProcess(), and parseBuffer().

◆ m_sensorLabel

std::string mrpt::hwdrivers::CGenericSensor::m_sensorLabel
protectedinherited

See CGenericSensor.

Definition at line 139 of file CGenericSensor.h.

Referenced by mrpt::hwdrivers::CCANBusReader::CCANBusReader(), CGPSInterface(), mrpt::hwdrivers::CGyroKVHDSP3000::CGyroKVHDSP3000(), mrpt::hwdrivers::CHokuyoURG::CHokuyoURG(), mrpt::hwdrivers::CIMUXSens::CIMUXSens(), mrpt::hwdrivers::CIMUXSens_MT4::CIMUXSens_MT4(), mrpt::hwdrivers::CKinect::CKinect(), mrpt::hwdrivers::CNationalInstrumentsDAQ::CNationalInstrumentsDAQ(), mrpt::hwdrivers::CRoboPeakLidar::CRoboPeakLidar(), mrpt::hwdrivers::CSickLaserSerial::CSickLaserSerial(), mrpt::hwdrivers::CSickLaserUSB::CSickLaserUSB(), mrpt::hwdrivers::CSkeletonTracker::CSkeletonTracker(), mrpt::hwdrivers::CSwissRanger3DCamera::CSwissRanger3DCamera(), mrpt::hwdrivers::CVelodyneScanner::CVelodyneScanner(), mrpt::hwdrivers::CIMUXSens_MT4::doProcess(), mrpt::hwdrivers::CIMUXSens::doProcess(), mrpt::hwdrivers::CGyroKVHDSP3000::doProcess(), mrpt::hwdrivers::CSkeletonTracker::doProcess(), mrpt::hwdrivers::CRoboPeakLidar::doProcessSimple(), mrpt::hwdrivers::CSickLaserUSB::doProcessSimple(), mrpt::hwdrivers::CCANBusReader::doProcessSimple(), mrpt::hwdrivers::CSickLaserSerial::doProcessSimple(), mrpt::hwdrivers::CHokuyoURG::doProcessSimple(), flushParsedMessagesNow(), mrpt::hwdrivers::CSwissRanger3DCamera::getNextObservation(), mrpt::hwdrivers::CKinect::getNextObservation(), mrpt::hwdrivers::CVelodyneScanner::getNextObservation(), mrpt::hwdrivers::CGenericSensor::getSensorLabel(), mrpt::hwdrivers::CNationalInstrumentsDAQ::grabbing_thread(), mrpt::hwdrivers::CGenericSensor::loadConfig(), mrpt::hwdrivers::CSkeletonTracker::processPreview(), mrpt::hwdrivers::C2DRangeFinderAbstract::processPreview(), mrpt::hwdrivers::CSkeletonTracker::processPreviewNone(), and mrpt::hwdrivers::CGenericSensor::setSensorLabel().

◆ m_sensorLabelAppendMsgType

bool mrpt::hwdrivers::CGPSInterface::m_sensorLabelAppendMsgType {true}
private

◆ m_sensorPose

poses::CPose3D mrpt::hwdrivers::CGPSInterface::m_sensorPose
protected

Definition at line 277 of file CGPSInterface.h.

Referenced by flushParsedMessagesNow(), and loadConfig_sensorSpecific().

◆ m_setup_cmds

std::vector<std::string> mrpt::hwdrivers::CGPSInterface::m_setup_cmds
private

◆ m_shutdown_cmds

std::vector<std::string> mrpt::hwdrivers::CGPSInterface::m_shutdown_cmds
private

◆ m_state

◆ m_topcon_AIMConfigured

bool mrpt::hwdrivers::CGPSInterface::m_topcon_AIMConfigured {false}
private

Indicates if the AIM has been properly set up.

Definition at line 343 of file CGPSInterface.h.

Referenced by isAIMConfigured(), and legacy_topcon_setup_commands().

◆ m_topcon_data_period

double mrpt::hwdrivers::CGPSInterface::m_topcon_data_period {0.2}
private

The period in seconds which the data should be provided by the GPS.

Definition at line 345 of file CGPSInterface.h.

Referenced by doProcess(), legacy_topcon_setup_commands(), and loadConfig_sensorSpecific().

◆ m_topcon_useAIMMode

bool mrpt::hwdrivers::CGPSInterface::m_topcon_useAIMMode {false}
private

Use this mode for receive RTK corrections from a external source through the primary port.

Definition at line 341 of file CGPSInterface.h.

Referenced by legacy_topcon_setup_commands(), and loadConfig_sensorSpecific().

◆ m_verbose




Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: fdd0b82cd Wed Oct 16 15:54:23 2019 +0200 at miƩ oct 16 16:00:10 CEST 2019