1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2024-12-15 20:50:33 +00:00

Add an IP address parser to enable specifying multiple clients in the Monitor block configuration

This commit is contained in:
Álvaro Cebrián Juan 2018-08-22 15:42:38 +02:00
parent 8184e0eb81
commit 4b620c5931
2 changed files with 18 additions and 4 deletions

View File

@ -1157,11 +1157,10 @@ void GNSSFlowgraph::init()
*/ */
enable_monitor_ = configuration_->property("Monitor.enable_monitor", false); enable_monitor_ = configuration_->property("Monitor.enable_monitor", false);
std::vector<std::string> udp_addr_vec;
std::string address_string = configuration_->property("Monitor.client_addresses", std::string("127.0.0.1")); std::string address_string = configuration_->property("Monitor.client_addresses", std::string("127.0.0.1"));
//todo: split the string in substrings using the separator and fill the address vector. std::vector<std::string> udp_addr_vec = split_string(address_string, '_');
udp_addr_vec.push_back(address_string); std::sort(udp_addr_vec.begin(), udp_addr_vec.end());
udp_addr_vec.erase(std::unique(udp_addr_vec.begin(), udp_addr_vec.end()), udp_addr_vec.end());
if (enable_monitor_) if (enable_monitor_)
{ {
@ -1599,3 +1598,17 @@ Gnss_Signal GNSSFlowgraph::search_next_signal(std::string searched_signal, bool
} }
return result; return result;
} }
std::vector<std::string> GNSSFlowgraph::split_string(const std::string &s, char delim)
{
std::vector<std::string> v;
std::stringstream ss(s);
std::string item;
while (std::getline(ss, item, delim))
{
*(std::back_inserter(v)++) = item;
}
return v;
}

View File

@ -186,6 +186,7 @@ private:
bool enable_monitor_; bool enable_monitor_;
gr::basic_block_sptr GnssSynchroMonitor_; gr::basic_block_sptr GnssSynchroMonitor_;
std::vector<std::string> split_string(const std::string &s, char delim);
}; };
#endif /*GNSS_SDR_GNSS_FLOWGRAPH_H_*/ #endif /*GNSS_SDR_GNSS_FLOWGRAPH_H_*/