Go to the documentation of this file.
10 #ifndef CGPSInterface_H
11 #define CGPSInterface_H
184 typedef bool (
CGPSInterface::*ptr_parser_t)(
size_t &out_minimum_rx_buf_to_decide);
211 const std::string &iniSection );
std::vector< std::string > m_setup_cmds
virtual ~CGPSInterface()
Dtor.
bool m_data_stream_is_external
This base class provides a common printf-like method to send debug information to std::cout,...
PARSERS getParser() const
void loadConfig_sensorSpecific(const mrpt::utils::CConfigFileBase &configSource, const std::string &iniSection)
See the class documentation at the top for expected parameters.
A class capable of reading GPS/GNSS/GNSS+IMU receiver data, from a serial port or from any input stre...
void setJAVAD_rtk_src_port(const std::string &s)
If not empty, will send a cmd "set,/par/pos/pd/port,...".
bool m_topcon_AIMConfigured
Indicates if the AIM has been properly set up.
bool m_custom_cmds_append_CRLF
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...
hwdrivers::CGPSInterface::PARSERS enum_t
void setJAVAD_rtk_src_baud(unsigned int baud)
Only used when "m_JAVAD_rtk_src_port" is not empty.
unsigned int m_JAVAD_rtk_src_baud
Only used when "m_JAVAD_rtk_src_port" is not empty.
mrpt::utils::CFileOutputStream m_raw_output_file
bool isGPS_connected()
Returns true if communications work, i.e. if some message has been received.
A bidirectional version of std::map, declared as bimap<KEY,VALUE> and which actually contains two std...
const std::vector< std::string > & getSetupCommands() const
bool OnConnectionShutdown()
Like OnConnectionEstablished() for sending optional shutdown commands.
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
CGPSInterface()
Default ctor.
#define DEFINE_GENERIC_SENSOR(class_name)
This declaration must be inserted in all CGenericSensor classes definition, within the class declarat...
double m_topcon_data_period
The period in seconds which the data should be provided by the GPS.
void flushParsedMessagesNow()
Queue out now the messages in m_just_parsed_messages, leaving it empty.
bool tryToOpenTheCOM()
Returns true if the COM port is already open, or try to open it in other case.
void bindStream(mrpt::utils::CStream *external_stream, mrpt::synch::CCriticalSection *csOptionalExternalStream=NULL)
This enforces the use of a given user stream, instead of trying to open the serial port set in this c...
mrpt::synch::CCriticalSection * m_data_stream_cs
void setShutdownCommands(const std::vector< std::string > &cmds)
uint64_t TTimeStamp
A system independent time type, it holds the the number of 100-nanosecond intervals since January 1,...
bool unsetJAVAD_AIM_mode()
Unset Advanced Input Mode for the primary port and use it only as a command port.
std::string m_last_GGA
Used in getLastGGA()
void enableSetupCommandsAppendCRLF(const bool enable)
const std::vector< std::string > & getShutdownCommands() const
std::vector< std::string > m_shutdown_cmds
void parseBuffer()
Process data in "m_buffer" to extract GPS messages, and remove them from the buffer.
std::string m_raw_dump_file_prefix
void doProcess()
This method will be invoked at a minimum rate of "process_rate" (Hz)
bool m_topcon_useAIMMode
Use this mode for receive RTK corrections from a external source through the primary port.
mrpt::utils::CStream * m_data_stream
Typically a CSerialPort created by this class, but may be set externally.
void insert(const KEY &k, const VALUE &v)
Insert a new pair KEY<->VALUE in the bi-map.
bool useExternalStream() const
This class provides simple critical sections functionality.
This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...
This class allows loading and storing values and vectors of different types from a configuration text...
bool legacy_topcon_setup_commands()
double m_custom_cmds_delay
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
void JAVAD_sendMessage(const char *str, bool waitForAnswer=true)
Private auxiliary method. Raises exception on error.
std::string getSerialPortName() const
Get the serial port to use (COM1, ttyUSB0, etc).
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...
poses::CPose3D m_sensorPose
mrpt::obs::CObservationGPS m_just_parsed_messages
A private copy of the last received gps datum.
A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...
bool isGPS_signalAcquired()
Returns true if the last message from the GPS indicates that the signal from sats has been acquired.
static void fill(bimap< enum_t, std::string > &m_map)
bool m_sensorLabelAppendMsgType
This class stores messages from GNSS or GNSS+IMU devices, from consumer-grade inexpensive GPS receive...
bool isEnabledSetupCommandsAppendCRLF() const
void setParser(PARSERS parser)
Select the parser for incomming data, among the options enumerated in CGPSInterface.
double getSetupCommandsDelay() const
std::string m_JAVAD_rtk_src_port
If not empty, will send a cmd "set,/par/pos/pd/port,...". Example value: "/dev/ser/b".
bool setJAVAD_AIM_mode()
Set Advanced Input Mode for the primary 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",...
PARSERS
Read about parser selection in the documentation for CGPSInterface.
mrpt::system::TTimeStamp m_last_timestamp
std::string m_JAVAD_rtk_format
Only used when "m_JAVAD_rtk_src_port" is not empty: format of RTK corrections: "cmr",...
void setSerialPortName(const std::string &COM_port)
Set the serial port to use (COM1, ttyUSB0, etc).
bool implement_parser_NOVATEL_OEM6(size_t &out_minimum_rx_buf_to_decide)
bool OnConnectionEstablished()
Implements custom messages to be sent to the GPS unit just after connection and before normal use.
void setSetupCommands(const std::vector< std::string > &cmds)
void enableAppendMsgTypeToSensorLabel(bool enable)
bool sendCustomCommand(const void *data, const size_t datalen)
Send a custom data block to the GNSS device right now.
bool implement_parser_NMEA(size_t &out_minimum_rx_buf_to_decide)
mrpt::utils::circular_buffer< uint8_t > m_rx_buffer
Auxiliary buffer for readings.
Only specializations of this class are defined for each enum type of interest.
void setSetupCommandsDelay(const double delay_secs)
bool useExternCOM() const
This CStream derived class allow using a file as a write-only, binary stream.
Page generated by Doxygen 1.8.20 for MRPT 1.4.0 SVN: at Thu Aug 27 02:40:23 UTC 2020 | | |