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.9 Git: 690a4699f Wed Apr 15 19:29:53 2020 +0200 at miƩ abr 15 19:30:12 CEST 2020 |