10 #ifndef CGPSInterface_H 11 #define CGPSInterface_H 129 bool isGPS_connected();
130 bool isGPS_signalAcquired();
134 void setSerialPortName(
const std::string &COM_port);
135 std::string getSerialPortName()
const;
137 void setParser(PARSERS parser);
138 PARSERS getParser()
const;
152 void setSetupCommandsDelay(
const double delay_secs);
153 double getSetupCommandsDelay()
const;
155 void setSetupCommands(
const std::vector<std::string> &cmds);
156 const std::vector<std::string> & getSetupCommands()
const;
158 void setShutdownCommands(
const std::vector<std::string> &cmds);
159 const std::vector<std::string> & getShutdownCommands()
const;
161 void enableSetupCommandsAppendCRLF(
const bool enable);
162 bool isEnabledSetupCommandsAppendCRLF()
const;
168 bool sendCustomCommand(
const void* data,
const size_t datalen);
182 std::string getLastGGA(
bool reset=
true);
184 typedef bool (
CGPSInterface::*ptr_parser_t)(
size_t &out_minimum_rx_buf_to_decide);
189 bool implement_parser_NMEA(
size_t &out_minimum_rx_buf_to_decide);
190 bool implement_parser_NOVATEL_OEM6(
size_t &out_minimum_rx_buf_to_decide);
196 bool OnConnectionEstablished();
197 bool OnConnectionShutdown();
199 bool legacy_topcon_setup_commands();
209 void loadConfig_sensorSpecific(
211 const std::string &iniSection );
225 bool setJAVAD_AIM_mode();
228 bool unsetJAVAD_AIM_mode();
254 void JAVAD_sendMessage(
const char*str,
bool waitForAnswer =
true);
259 bool tryToOpenTheCOM();
263 void flushParsedMessagesNow();
A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...
uint64_t TTimeStamp
A system independent time type, it holds the the number of 100-nanosecond intervals since January 1,...
This class provides simple critical sections functionality.
mrpt::utils::CStream * m_data_stream
Typically a CSerialPort created by this class, but may be set externally.
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
void setJAVAD_rtk_src_baud(unsigned int baud)
Only used when "m_JAVAD_rtk_src_port" is not empty.
poses::CPose3D m_sensorPose
static void fill(bimap< enum_t, std::string > &m_map)
mrpt::obs::CObservationGPS m_just_parsed_messages
A private copy of the last received gps datum.
bool m_sensorLabelAppendMsgType
bool m_topcon_AIMConfigured
Indicates if the AIM has been properly set up.
Only specializations of this class are defined for each enum type of interest.
std::string m_raw_dump_file_prefix
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,...". Example value: "/dev/ser/b".
void setJAVAD_rtk_format(const std::string &s)
Only used when "m_JAVAD_rtk_src_port" is not empty: format of RTK corrections: "cmr",...
This class allows loading and storing values and vectors of different types from a configuration text...
This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...
This CStream derived class allow using a file as a write-only, binary stream.
bool useExternalStream() const
A bidirectional version of std::map, declared as bimap<KEY,VALUE> and which actually contains two std...
std::string m_JAVAD_rtk_format
Only used when "m_JAVAD_rtk_src_port" is not empty: format of RTK corrections: "cmr",...
mrpt::utils::circular_buffer< uint8_t > m_rx_buffer
Auxiliary buffer for readings.
std::vector< std::string > m_setup_cmds
bool m_custom_cmds_append_CRLF
bool m_data_stream_is_external
#define DEFINE_GENERIC_SENSOR(class_name)
This declaration must be inserted in all CGenericSensor classes definition, within the class declarat...
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
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).
mrpt::utils::CFileOutputStream m_raw_output_file
double m_topcon_data_period
The period in seconds which the data should be provided by the GPS.
void insert(const KEY &k, const VALUE &v)
Insert a new pair KEY<->VALUE in the bi-map.
mrpt::system::TTimeStamp m_last_timestamp
mrpt::synch::CCriticalSection * m_data_stream_cs
std::vector< std::string > m_shutdown_cmds
This class stores messages from GNSS or GNSS+IMU devices, from consumer-grade inexpensive GPS receive...
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.
hwdrivers::CGPSInterface::PARSERS enum_t
This base class provides a common printf-like method to send debug information to std::cout,...
bool useExternCOM() const
void enableAppendMsgTypeToSensorLabel(bool enable)