A client for NTRIP (HTTP) sources of differential GPS corrections from internet servers, or Global navigation satellite system (GNSS) internet radio.
Usage:
It is not neccesary to call "close", the connection is ended at destruction.
Definition at line 37 of file CNTRIPClient.h.
#include <mrpt/hwdrivers/CNTRIPClient.h>
Classes | |
| struct | NTRIPArgs | 
| The arguments for connecting to a NTRIP stream, used in CNTRIPClient::open.  More... | |
| struct | TMountPoint | 
| A descriptor of one stream in an NTRIP Caster - See CNTRIPClient::retrieveListOfMountpoints.  More... | |
Public Types | |
| typedef std::list< TMountPoint > | TListMountPoints | 
| Used in CNTRIPClient::retrieveListOfMountpoints.  More... | |
Public Member Functions | |
| CNTRIPClient () | |
| Default constructor.  More... | |
| virtual | ~CNTRIPClient () | 
| Default destructor.  More... | |
| bool | open (const NTRIPArgs ¶ms, std::string &out_errmsg) | 
| Tries to open a given NTRIP stream and, if successful, launches a thread for continuously reading from it.  More... | |
| void | close () | 
| Closes the connection.  More... | |
| void | sendBackToServer (const std::string &data) | 
| Enqueues a string to be sent back to the NTRIP server (e.g.  More... | |
Static Public Member Functions | |
| static bool | retrieveListOfMountpoints (TListMountPoints &out_list, std::string &out_errmsg, const std::string &server, int port=2101, const std::string &auth_user=std::string(), const std::string &auth_pass=std::string()) | 
| Connect to a given NTRIP caster and get the list of all available mountpoints and their parameters.  More... | |
Public Attributes | |
| mrpt::synch::MT_buffer | stream_data | 
| The buffer with all the bytes so-far read from the NTRIP server stream.  More... | |
Protected Types | |
| enum | TConnResult { connOk = 0, connError, connUnauthorized } | 
Protected Member Functions | |
| void | private_ntrip_thread () | 
| The working thread.  More... | |
Protected Attributes | |
| mrpt::system::TThreadHandle | m_thread | 
| mrpt::synch::CSemaphore | m_sem_sock_closed | 
| mrpt::synch::CSemaphore | m_sem_first_connect_done | 
| bool | m_thread_exit | 
| bool | m_thread_do_process | 
| Will be "true" between "open" and "close".  More... | |
| bool | m_waiting_answer_connection | 
| TConnResult | m_answer_connection | 
| NTRIPArgs | m_args | 
| All the parameters for the NTRIP connection.  More... | |
| mrpt::synch::MT_buffer | m_upload_data | 
| Buffer for data to be sent back to the server.  More... | |
| typedef std::list<TMountPoint> mrpt::hwdrivers::CNTRIPClient::TListMountPoints | 
Used in CNTRIPClient::retrieveListOfMountpoints.
Definition at line 76 of file CNTRIPClient.h.
      
  | 
  protected | 
| Enumerator | |
|---|---|
| connOk | |
| connError | |
| connUnauthorized | |
Definition at line 110 of file CNTRIPClient.h.
| CNTRIPClient::CNTRIPClient | ( | ) | 
Default constructor.
Definition at line 33 of file CNTRIPClient.cpp.
References mrpt::system::createThreadFromObjectMethod(), m_thread, and private_ntrip_thread().
      
  | 
  virtual | 
Default destructor.
Definition at line 49 of file CNTRIPClient.cpp.
References mrpt::system::TThreadHandle::clear(), close(), mrpt::system::TThreadHandle::isClear(), mrpt::system::joinThread(), m_thread, and m_thread_exit.
| void CNTRIPClient::close | ( | ) | 
Closes the connection.
Definition at line 64 of file CNTRIPClient.cpp.
References mrpt::synch::MT_buffer::clear(), m_sem_sock_closed, m_thread_do_process, m_upload_data, and mrpt::synch::CSemaphore::waitForSignal().
Referenced by open(), ~CNTRIPClient(), and mrpt::hwdrivers::CNTRIPEmitter::~CNTRIPEmitter().
| bool CNTRIPClient::open | ( | const NTRIPArgs & | params, | 
| std::string & | out_errmsg | ||
| ) | 
Tries to open a given NTRIP stream and, if successful, launches a thread for continuously reading from it.
Definition at line 75 of file CNTRIPClient.cpp.
References close(), connError, connOk, connUnauthorized, mrpt::format(), m_answer_connection, m_args, m_sem_first_connect_done, m_thread_do_process, m_waiting_answer_connection, mrpt::hwdrivers::CNTRIPClient::NTRIPArgs::mountpoint, and mrpt::synch::CSemaphore::waitForSignal().
Referenced by mrpt::hwdrivers::CNTRIPEmitter::initialize().
      
  | 
  protected | 
The working thread.
Definition at line 126 of file CNTRIPClient.cpp.
References mrpt::synch::MT_buffer::appendData(), mrpt::synch::MT_buffer::clear(), mrpt::utils::CClientTCPSocket::close(), mrpt::utils::CClientTCPSocket::connect(), connError, connOk, connUnauthorized, mrpt::system::encodeBase64(), mrpt::format(), mrpt::utils::CClientTCPSocket::isConnected(), m_answer_connection, m_args, m_sem_first_connect_done, m_sem_sock_closed, m_thread_do_process, m_thread_exit, m_upload_data, m_waiting_answer_connection, mrpt::system::os::memcpy(), mrpt::hwdrivers::CNTRIPClient::NTRIPArgs::mountpoint, mrpt::hwdrivers::CNTRIPClient::NTRIPArgs::password, mrpt::hwdrivers::CNTRIPClient::NTRIPArgs::port, mrpt::synch::MT_buffer::readAndClear(), mrpt::utils::CClientTCPSocket::readAsync(), mrpt::synch::CSemaphore::release(), mrpt::utils::CClientTCPSocket::sendString(), mrpt::hwdrivers::CNTRIPClient::NTRIPArgs::server, mrpt::synch::MT_buffer::size(), mrpt::system::sleep(), stream_data, mrpt::hwdrivers::CNTRIPClient::NTRIPArgs::user, and mrpt::utils::CClientTCPSocket::writeAsync().
Referenced by CNTRIPClient().
      
  | 
  static | 
Connect to a given NTRIP caster and get the list of all available mountpoints and their parameters.
Note that the authentication parameters "auth_user" and "auth_pass" will be left empty in most situations, since LISTING the Caster normally doesn't require special rights.
Example:
Definition at line 319 of file CNTRIPClient.cpp.
References mrpt::hwdrivers::CNTRIPClient::TMountPoint::carrier, mrpt::hwdrivers::CNTRIPClient::TMountPoint::country_code, DEG2RAD, mrpt::utils::net::erOk, mrpt::hwdrivers::CNTRIPClient::TMountPoint::extra_info, mrpt::hwdrivers::CNTRIPClient::TMountPoint::format, mrpt::hwdrivers::CNTRIPClient::TMountPoint::format_details, mrpt::utils::net::http_get(), mrpt::hwdrivers::CNTRIPClient::TMountPoint::id, mrpt::hwdrivers::CNTRIPClient::TMountPoint::latitude, mrpt::hwdrivers::CNTRIPClient::TMountPoint::longitude, mrpt::hwdrivers::CNTRIPClient::TMountPoint::mountpoint_name, mrpt::hwdrivers::CNTRIPClient::TMountPoint::nav_system, mrpt::hwdrivers::CNTRIPClient::TMountPoint::needs_nmea, mrpt::hwdrivers::CNTRIPClient::TMountPoint::net_ref_stations, mrpt::hwdrivers::CNTRIPClient::TMountPoint::network, RAD2DEG, mrpt::utils::CStringList::size(), mrpt::system::tokenize(), and mrpt::math::wrapToPi().
| void CNTRIPClient::sendBackToServer | ( | const std::string & | data | ) | 
Enqueues a string to be sent back to the NTRIP server (e.g.
GGA frames)
Definition at line 391 of file CNTRIPClient.cpp.
References mrpt::synch::MT_buffer::appendData(), m_upload_data, and mrpt::system::os::memcpy().
      
  | 
  mutableprotected | 
Definition at line 116 of file CNTRIPClient.h.
Referenced by open(), and private_ntrip_thread().
      
  | 
  mutableprotected | 
All the parameters for the NTRIP connection.
Definition at line 117 of file CNTRIPClient.h.
Referenced by open(), and private_ntrip_thread().
      
  | 
  protected | 
Definition at line 104 of file CNTRIPClient.h.
Referenced by open(), and private_ntrip_thread().
      
  | 
  protected | 
Definition at line 103 of file CNTRIPClient.h.
Referenced by close(), and private_ntrip_thread().
      
  | 
  protected | 
Definition at line 102 of file CNTRIPClient.h.
Referenced by CNTRIPClient(), and ~CNTRIPClient().
      
  | 
  mutableprotected | 
Will be "true" between "open" and "close".
Definition at line 107 of file CNTRIPClient.h.
Referenced by close(), open(), and private_ntrip_thread().
      
  | 
  mutableprotected | 
Definition at line 106 of file CNTRIPClient.h.
Referenced by private_ntrip_thread(), and ~CNTRIPClient().
      
  | 
  protected | 
Buffer for data to be sent back to the server.
Definition at line 119 of file CNTRIPClient.h.
Referenced by close(), private_ntrip_thread(), and sendBackToServer().
      
  | 
  mutableprotected | 
Definition at line 108 of file CNTRIPClient.h.
Referenced by open(), and private_ntrip_thread().
| mrpt::synch::MT_buffer mrpt::hwdrivers::CNTRIPClient::stream_data | 
The buffer with all the bytes so-far read from the NTRIP server stream.
Call its "readAndClear" method in a timely fashion to get the stream contents.
Definition at line 141 of file CNTRIPClient.h.
Referenced by mrpt::hwdrivers::CNTRIPEmitter::doProcess(), and private_ntrip_thread().
| Page generated by Doxygen 1.8.14 for MRPT 1.5.7 Git: 5902e14cc Wed Apr 24 15:04:01 2019 +0200 at lun oct 28 01:39:17 CET 2019 |