From f1e616c4e5e556e83fb49821875e62792fb4e5f7 Mon Sep 17 00:00:00 2001 From: cesaaargm Date: Sat, 22 Jun 2024 14:04:08 +0200 Subject: [PATCH] =?UTF-8?q?[TAS-226]=20[FEAT]=20Remove=20tags=20skipped=20?= =?UTF-8?q?=E2=89=A5=2010=20times?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/core/libs/osnma_msg_receiver.cc | 25 ++++++++++++++++++++++--- src/core/system_parameters/osnma_data.h | 5 +++-- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/src/core/libs/osnma_msg_receiver.cc b/src/core/libs/osnma_msg_receiver.cc index 302609798..02c3d48e4 100644 --- a/src/core/libs/osnma_msg_receiver.cc +++ b/src/core/libs/osnma_msg_receiver.cc @@ -109,8 +109,6 @@ void osnma_msg_receiver::msg_handler_osnma(const pmt::pmt_t& msg) std::cout << output_message.str() << std::endl; process_osnma_message(nma_msg); - - std::cout << "Galileo OSNMA: d_tags_awaiting_verify :: size: " << d_tags_awaiting_verify.size() << std::endl; } else if (msg_type_hash_code == typeid(std::shared_ptr>).hash_code()) { @@ -915,6 +913,7 @@ void osnma_msg_receiver::process_mack_message() d_tags_awaiting_verify.insert(std::pair(mack->TOW, t)); LOG(WARNING) << "Galileo OSNMA: MACSEQ verification :: SUCCESS for Mack at TOW=" << mack->TOW << ", PRN" << mack->PRNa; } + std::cout << "Galileo OSNMA: d_tags_awaiting_verify :: size: " << d_tags_awaiting_verify.size() << std::endl; mack = d_macks_awaiting_MACSEQ_verification.erase(mack); } else @@ -980,7 +979,8 @@ void osnma_msg_receiver::process_mack_message() } } else { - LOG(WARNING) << "Galileo OSNMA: Tag verification :: SKIPPED for Tag Id= " + it.second.skipped ++; + LOG(WARNING) << "Galileo OSNMA: Tag verification :: SKIPPED (x"<< it.second.skipped <<")for Tag Id= " << it.second.tag_id << ", value=0x" << std::setfill('0') << std::setw(10) << std::hex << std::uppercase << it.second.received_tag << std::dec @@ -1286,6 +1286,25 @@ void osnma_msg_receiver::remove_verified_tags() << std::endl; it = d_tags_awaiting_verify.erase(it); } + else if (it->second.skipped >= 10) + { + LOG(INFO) << "Galileo OSNMA: Tag verification :: DELETE tag Id=" + << it->second.tag_id + << ", value=0x" << std::setfill('0') << std::setw(10) << std::hex << std::uppercase + << it->second.received_tag << std::dec + << ", TOW=" + << it->second.TOW + << ", ADKD=" + << static_cast(it->second.ADKD) + << ", PRNa=" + << static_cast(it->second.PRNa) + << ", PRNd=" + << static_cast(it->second.PRN_d) + << ", status= " + << it->second.status + << std::endl; + it = d_tags_awaiting_verify.erase(it); + } else ++it; } diff --git a/src/core/system_parameters/osnma_data.h b/src/core/system_parameters/osnma_data.h index cf9bcb7d9..b27f6dfb3 100644 --- a/src/core/system_parameters/osnma_data.h +++ b/src/core/system_parameters/osnma_data.h @@ -182,8 +182,8 @@ public: computed_tag(0), PRN_d(MTI.tag_info.PRN_d), ADKD(MTI.tag_info.ADKD), - cop(MTI.tag_info.cop) - + cop(MTI.tag_info.cop), + skipped(0) { } @@ -201,6 +201,7 @@ public: uint8_t PRN_d; uint8_t ADKD; uint8_t cop; + uint32_t skipped; }; /** \} */ /** \} */