diff --git a/src/core/libs/osnma_msg_receiver.cc b/src/core/libs/osnma_msg_receiver.cc index 7035a9e08..4f984143f 100644 --- a/src/core/libs/osnma_msg_receiver.cc +++ b/src/core/libs/osnma_msg_receiver.cc @@ -1013,7 +1013,6 @@ void osnma_msg_receiver::process_mack_message() LOG(WARNING) << "Galileo OSNMA: MACK cannot be processed, " << "no Kroot nor TESLA key available."; return; // early return, cannot proceed further without one of the two verified. this equals to having Kroot but no TESLa key yet. - } // verify tesla key and add it to the container of verified keys if successful if (d_tesla_keys.find(d_osnma_data.d_nav_data.get_tow_sf0()) == d_tesla_keys.end()) // check if already available => no need to verify @@ -1925,9 +1924,9 @@ void osnma_msg_receiver::send_data_to_pvt(std::vector data) { if (!data.empty()) { - for (size_t i = 0; i < data.size(); i++) + for (auto & i : data) { - const auto tmp_obj = std::make_shared(data[i]); + const auto tmp_obj = std::make_shared(i); this->message_port_pub(pmt::mp("OSNMA_to_PVT"), pmt::make_any(tmp_obj)); } } diff --git a/src/core/system_parameters/gnss_crypto.cc b/src/core/system_parameters/gnss_crypto.cc index 4faa8a30a..a4f40a3e4 100644 --- a/src/core/system_parameters/gnss_crypto.cc +++ b/src/core/system_parameters/gnss_crypto.cc @@ -897,8 +897,9 @@ void Gnss_Crypto::set_public_key(const std::vector& publicKey) param_bld = OSSL_PARAM_BLD_new(); if (param_bld != nullptr && OSSL_PARAM_BLD_push_utf8_string(param_bld, "group", (publicKey.size() == 33) ? "prime256v1" : "secp521r1", 0) && - OSSL_PARAM_BLD_push_octet_string(param_bld, "pub", publicKey.data(), publicKey.size())) + OSSL_PARAM_BLD_push_octet_string(param_bld, "pub", publicKey.data(), publicKey.size())) { params = OSSL_PARAM_BLD_to_param(param_bld); + } ctx = EVP_PKEY_CTX_new_from_name(nullptr, "EC", nullptr); if (ctx == nullptr || params == nullptr || EVP_PKEY_fromdata_init(ctx) <= 0 || EVP_PKEY_fromdata(ctx, &pkey, EVP_PKEY_PUBLIC_KEY, params) <= 0) @@ -1192,7 +1193,7 @@ bool Gnss_Crypto::readPublicKeyFromCRT(const std::string& crtFilePath) // store the key type - needed for the Kroot in case no DSM-PKR available // TODO - only way I have found to find the curve type - auto ec_key = EVP_PKEY_get0_EC_KEY(pubkey); + const auto ec_key = EVP_PKEY_get0_EC_KEY(pubkey); const EC_GROUP *group = EC_KEY_get0_group(ec_key); int nid = EC_GROUP_get_curve_name(group); if (nid == NID_X9_62_prime256v1) { diff --git a/src/core/system_parameters/osnma_data.cc b/src/core/system_parameters/osnma_data.cc index d19a30cab..6d969a7f0 100644 --- a/src/core/system_parameters/osnma_data.cc +++ b/src/core/system_parameters/osnma_data.cc @@ -19,7 +19,7 @@ uint32_t Tag::id_counter = 0; uint32_t OSNMA_NavData::id_counter = 0; -bool OSNMA_NavData::add_nav_data(std::string nav_data) +bool OSNMA_NavData::add_nav_data(const std::string& nav_data) { if (nav_data.size() == 549) { diff --git a/src/core/system_parameters/osnma_data.h b/src/core/system_parameters/osnma_data.h index 46b54dcfe..052a23921 100644 --- a/src/core/system_parameters/osnma_data.h +++ b/src/core/system_parameters/osnma_data.h @@ -129,7 +129,7 @@ class OSNMA_NavData public: OSNMA_NavData(): nav_data_id(id_counter++){} bool have_this_bits(std::string nav_data); - bool add_nav_data(std::string nav_data); + bool add_nav_data(const std::string& nav_data); void update_last_received_timestamp(uint32_t TOW); const uint32_t nav_data_id; uint32_t verified_bits{0}; diff --git a/src/core/system_parameters/osnma_helper.h b/src/core/system_parameters/osnma_helper.h index ea4e81313..703a4fd0d 100644 --- a/src/core/system_parameters/osnma_helper.h +++ b/src/core/system_parameters/osnma_helper.h @@ -39,7 +39,6 @@ public: std::vector convert_from_hex_string(const std::string& hex_string) const; // TODO remove similar function in gnss_crypto std::tm GST_START_EPOCH = {0, 0, 0, 22, 8 - 1, 1999 - 1900, 0, 0, 0, 0, 0}; - }; #endif // GNSS_SDR_OSNMA_HELPER_H diff --git a/src/core/system_parameters/osnma_nav_data_manager.cc b/src/core/system_parameters/osnma_nav_data_manager.cc index 5b42e799d..13aa96084 100644 --- a/src/core/system_parameters/osnma_nav_data_manager.cc +++ b/src/core/system_parameters/osnma_nav_data_manager.cc @@ -29,7 +29,7 @@ * @param PRNd The satellite ID. * @param TOW The TOW of the received data. */ -void OSNMA_nav_data_Manager::add_navigation_data(std::string nav_bits, uint32_t PRNd, uint32_t TOW) +void OSNMA_nav_data_Manager::add_navigation_data(const std::string& nav_bits, uint32_t PRNd, uint32_t TOW) { if (not have_nav_data(nav_bits, PRNd, TOW)) { @@ -52,18 +52,18 @@ void OSNMA_nav_data_Manager::update_nav_data(const std::multimap& if (have_PRNd_nav_data(tag.second.PRN_d)) { std::map tow_map = _satellite_nav_data.find(tag.second.PRN_d)->second; - for (auto tow_it = tow_map.begin(); tow_it != tow_map.end(); ++tow_it) // note: starts with smallest (i.e. oldest) navigation dataset + for (auto & tow_it : tow_map) // note: starts with smallest (i.e. oldest) navigation dataset { std::string nav_data; if (tag.second.ADKD == 0 || tag.second.ADKD == 12){ - nav_data = tow_it->second.get_ephemeris_data(); + nav_data = tow_it.second.get_ephemeris_data(); } else if (tag.second.ADKD == 4){ - nav_data = tow_it->second.get_utc_data(); + nav_data = tow_it.second.get_utc_data(); } // find associated OSNMA_NavData if (tag.second.nav_data == nav_data){ - _satellite_nav_data[tag.second.PRN_d][tow_it->first].verified_bits += tag_size; + _satellite_nav_data[tag.second.PRN_d][tow_it.first].verified_bits += tag_size; } } } @@ -99,7 +99,7 @@ bool OSNMA_nav_data_Manager::have_nav_data(uint32_t PRNd, uint32_t TOW, uint8_t if (it != _satellite_nav_data.cend()) { const auto it2 = it->second.find(TOW); - if (it2 != it->second.cend() && it->second[TOW].get_ephemeris_data() != "") + if (it2 != it->second.cend() && !it->second[TOW].get_ephemeris_data().empty()) { return true; } @@ -111,7 +111,7 @@ bool OSNMA_nav_data_Manager::have_nav_data(uint32_t PRNd, uint32_t TOW, uint8_t if (it != _satellite_nav_data.cend()) { const auto it2 = it->second.find(TOW); - if (it2 != it->second.cend() && it->second[TOW].get_utc_data() != "") + if (it2 != it->second.cend() && !it->second[TOW].get_utc_data().empty()) { return true; } @@ -140,13 +140,13 @@ std::string OSNMA_nav_data_Manager::get_navigation_data(const Tag& tag) { if (tag.ADKD == 0 || tag.ADKD == 12) { - if (tow_it->second.get_ephemeris_data() != ""){ + if (!tow_it->second.get_ephemeris_data().empty()){ return tow_it->second.get_ephemeris_data(); } } else if(tag.ADKD == 4) { - if (tow_it->second.get_utc_data() != ""){ + if (!tow_it->second.get_utc_data().empty()){ return tow_it->second.get_utc_data(); } } @@ -161,7 +161,7 @@ std::string OSNMA_nav_data_Manager::get_navigation_data(const Tag& tag) * @param PRNd * @return */ -bool OSNMA_nav_data_Manager::have_nav_data(std::string nav_bits, uint32_t PRNd, uint32_t TOW) +bool OSNMA_nav_data_Manager::have_nav_data(const std::string& nav_bits, uint32_t PRNd, uint32_t TOW) { if (_satellite_nav_data.find(PRNd) != _satellite_nav_data.end()){ for (auto& data_timestamp : _satellite_nav_data[PRNd]) @@ -202,13 +202,13 @@ bool OSNMA_nav_data_Manager::have_nav_data(const Tag& t) const { if (t.ADKD == 0 || t.ADKD == 12) { - if (tow_it->second.get_ephemeris_data() != ""){ + if (!tow_it->second.get_ephemeris_data().empty()){ return true; } } else if (t.ADKD == 4) { - if (tow_it->second.get_utc_data() != ""){ + if (!tow_it->second.get_utc_data().empty()){ return true; } } @@ -220,19 +220,20 @@ void OSNMA_nav_data_Manager::print_status() { for (const auto& satellite : _satellite_nav_data){ LOG(INFO) << "Galileo OSNMA: NavData status :: SVID=" << satellite.first; - auto& tow_data = satellite.second; - for (const auto& nav_data : tow_data) - LOG(INFO) << "Galileo OSNMA: IOD_nav=0b" << std::uppercase - << std::bitset<10>(nav_data.second.IOD_nav) - << ", TOW_start=" - << nav_data.second.get_tow_sf0() - << ", TOW_last=" - << nav_data.second.last_received_TOW - << ", l_t=" - << nav_data.second.verified_bits - << ", PRNd=" - << nav_data.second.PRNd - << ", verified=" - << nav_data.second.verified; + const auto& tow_data = satellite.second; + for (const auto& nav_data : tow_data) { + LOG(INFO) << "Galileo OSNMA: IOD_nav=0b" << std::uppercase + << std::bitset<10>(nav_data.second.IOD_nav) + << ", TOW_start=" + << nav_data.second.get_tow_sf0() + << ", TOW_last=" + << nav_data.second.last_received_TOW + << ", l_t=" + << nav_data.second.verified_bits + << ", PRNd=" + << nav_data.second.PRNd + << ", verified=" + << nav_data.second.verified; + } } } diff --git a/src/core/system_parameters/osnma_nav_data_manager.h b/src/core/system_parameters/osnma_nav_data_manager.h index 2101bef3a..98b3d523f 100644 --- a/src/core/system_parameters/osnma_nav_data_manager.h +++ b/src/core/system_parameters/osnma_nav_data_manager.h @@ -32,10 +32,10 @@ class OSNMA_nav_data_Manager{ public: OSNMA_nav_data_Manager() = default; - bool have_nav_data(std::string nav_bits, uint32_t PRNd, uint32_t TOW); + bool have_nav_data(const std::string& nav_bits, uint32_t PRNd, uint32_t TOW); bool have_nav_data(uint32_t PRNd, uint32_t TOW, uint8_t ADKD); bool have_nav_data(const Tag& t) const; - void add_navigation_data(std::string nav_bits, uint32_t PRNd, uint32_t TOW); // gets the bits and adds them to the list + void add_navigation_data(const std::string& nav_bits, uint32_t PRNd, uint32_t TOW); // gets the bits and adds them to the list std::string get_navigation_data(const Tag& t); void update_nav_data(const std::multimap& tags_verified, const uint8_t tag_size);