272         std::make_shared<std::mutex>();
   281         const std::string& iniSection) 
override;
 A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...
 
PARSERS getParser() const
 
PARSERS
Read about parser selection in the documentation for CGPSInterface. 
 
A class capable of reading GPS/GNSS/GNSS+IMU receiver data, from a serial port or from any input stre...
 
double m_custom_cmds_delay
 
std::shared_ptr< std::mutex > m_data_stream_cs
 
void JAVAD_sendMessage(const char *str, bool waitForAnswer=true)
Private auxiliary method. 
 
void setJAVAD_rtk_src_baud(unsigned int baud)
Only used when "m_JAVAD_rtk_src_port" is not empty. 
 
poses::CPose3D m_sensorPose
 
bool isGPS_connected()
Returns true if communications work, i.e. 
 
mrpt::obs::CObservationGPS m_just_parsed_messages
A private copy of the last received gps datum. 
 
const std::vector< std::string > & getSetupCommands() const
 
bool m_sensorLabelAppendMsgType
 
bool OnConnectionShutdown()
Like OnConnectionEstablished() for sending optional shutdown commands. 
 
bool unsetJAVAD_AIM_mode()
Unset Advanced Input Mode for the primary port and use it only as a command port. ...
 
CGPSInterface()
Default ctor. 
 
bool m_topcon_AIMConfigured
Indicates if the AIM has been properly set up. 
 
Contains classes for various device interfaces. 
 
bool(CGPSInterface::*)(size_t &out_minimum_rx_buf_to_decide) ptr_parser_t
 
void enableSetupCommandsAppendCRLF(const bool enable)
 
void parseBuffer()
Process data in "m_buffer" to extract GPS messages, and remove them from the buffer. 
 
bool sendCustomCommand(const void *data, const size_t datalen)
Send a custom data block to the GNSS device right now. 
 
std::string m_raw_dump_file_prefix
 
bool tryToOpenTheCOM()
Returns true if the COM port is already open, or try to open it in other case. 
 
unsigned int m_JAVAD_rtk_src_baud
Only used when "m_JAVAD_rtk_src_port" is not empty. 
 
std::string m_JAVAD_rtk_src_port
If not empty, will send a cmd "set,/par/pos/pd/port,...". 
 
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. 
 
bool isEnabledSetupCommandsAppendCRLF() const
 
std::string getRawDumpFilePrefix() const
 
mrpt::Clock::time_point TTimeStamp
A system independent time type, it holds the the number of 100-nanosecond intervals since January 1...
 
This class allows loading and storing values and vectors of different types from a configuration text...
 
void doProcess() override
This method will be invoked at a minimum rate of "process_rate" (Hz) 
 
bool implement_parser_NMEA(size_t &out_minimum_rx_buf_to_decide)
 
Versatile class for consistent logging and management of output messages. 
 
bool useExternalStream() const
 
void setSetupCommands(const std::vector< std::string > &cmds)
 
~CGPSInterface() override
Dtor. 
 
void setSetupCommandsDelay(const double delay_secs)
 
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. 
 
std::shared_ptr< std::mutex > m_data_stream_mine_cs
 
bool implement_parser_NOVATEL_OEM6(size_t &out_minimum_rx_buf_to_decide)
 
#define MRPT_ENUM_TYPE_END()
 
This CStream derived class allow using a file as a write-only, binary stream. 
 
bool OnConnectionEstablished()
Implements custom messages to be sent to the GPS unit just after connection and before normal use...
 
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 o...
 
std::vector< std::string > m_setup_cmds
 
bool m_custom_cmds_append_CRLF
 
bool m_data_stream_is_external
 
void loadConfig_sensorSpecific(const mrpt::config::CConfigFileBase &configSource, const std::string &iniSection) override
See the class documentation at the top for expected parameters. 
 
std::string getSerialPortName() const
Get the serial port to use (COM1, ttyUSB0, etc). 
 
#define DEFINE_GENERIC_SENSOR(class_name)
This declaration must be inserted in all CGenericSensor classes definition, within the class declarat...
 
mrpt::io::CFileOutputStream m_raw_output_file
 
void setJAVAD_rtk_src_port(const std::string &s)
If not empty, will send a cmd "set,/par/pos/pd/port,...". 
 
A class used to store a 3D pose (a 3D translation + a rotation in 3D). 
 
bool isGPS_signalAcquired()
Returns true if the last message from the GPS indicates that the signal from sats has been acquired...
 
bool setJAVAD_AIM_mode()
Set Advanced Input Mode for the primary port. 
 
bool legacy_topcon_setup_commands()
 
std::shared_ptr< mrpt::io::CStream > m_data_stream
Typically a CSerialPort created by this class, but may be set externally. 
 
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 ca...
 
double m_topcon_data_period
The period in seconds which the data should be provided by the GPS. 
 
mrpt::containers::circular_buffer< uint8_t > m_rx_buffer
Auxiliary buffer for readings. 
 
mrpt::system::TTimeStamp m_last_timestamp
 
std::vector< std::string > m_shutdown_cmds
 
This class stores messages from GNSS or GNSS+IMU devices, from consumer-grade inexpensive GPS receive...
 
#define MRPT_ENUM_TYPE_BEGIN(_ENUM_TYPE_WITH_NS)
 
std::string m_last_GGA
Used in getLastGGA() 
 
bool m_topcon_useAIMMode
Use this mode for receive RTK corrections from a external source through the primary port...
 
void flushParsedMessagesNow()
Queue out now the messages in m_just_parsed_messages, leaving it empty. 
 
MRPT_FILL_ENUM_MEMBER(CGPSInterface, NONE)
 
void setRawDumpFilePrefix(const std::string &filePrefix)
If set to non-empty, RAW GPS serial data will be also dumped to a separate file. 
 
void setSerialPortName(const std::string &COM_port)
Set the serial port to use (COM1, ttyUSB0, etc). 
 
void setParser(PARSERS parser)
Select the parser for incomming data, among the options enumerated in CGPSInterface. 
 
const std::vector< std::string > & getShutdownCommands() const
 
void bindStream(const std::shared_ptr< mrpt::io::CStream > &external_stream, const std::shared_ptr< std::mutex > &csOptionalExternalStream=std::shared_ptr< std::mutex >())
This enforces the use of a given user stream, instead of trying to open the serial port set in this c...
 
double getSetupCommandsDelay() const
 
void enableAppendMsgTypeToSensorLabel(bool enable)
 
static struct FontData data
 
void setShutdownCommands(const std::vector< std::string > &cmds)