From af1b42e7b0c017470bf54216e49368945b198be6 Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Tue, 23 Jan 2024 23:26:06 -0600 Subject: [PATCH] Ignore empty messages for clutter filter bypass map and VCP data --- .../wsr88d/rda/clutter_filter_bypass_map.cpp | 23 +++++++++++-------- .../rda/volume_coverage_pattern_data.cpp | 22 ++++++++++++------ 2 files changed, 28 insertions(+), 17 deletions(-) diff --git a/wxdata/source/scwx/wsr88d/rda/clutter_filter_bypass_map.cpp b/wxdata/source/scwx/wsr88d/rda/clutter_filter_bypass_map.cpp index c0e8a7f9..5f95d3a5 100644 --- a/wxdata/source/scwx/wsr88d/rda/clutter_filter_bypass_map.cpp +++ b/wxdata/source/scwx/wsr88d/rda/clutter_filter_bypass_map.cpp @@ -78,19 +78,22 @@ bool ClutterFilterBypassMap::Parse(std::istream& is) if (p->mapGenerationDate_ < 1) { - logger_->warn("Invalid date: {}", p->mapGenerationDate_); + logger_->trace("Ignoring empty message"); messageValid = false; } - if (p->mapGenerationTime_ > 1440) + else { - logger_->warn("Invalid time: {}", p->mapGenerationTime_); - messageValid = false; - } - if (numElevationSegments < 1 || numElevationSegments > 5) - { - logger_->warn("Invalid number of elevation segments: {}", - numElevationSegments); - messageValid = false; + if (p->mapGenerationTime_ > 1440) + { + logger_->warn("Invalid time: {}", p->mapGenerationTime_); + messageValid = false; + } + if (numElevationSegments < 1 || numElevationSegments > 5) + { + logger_->warn("Invalid number of elevation segments: {}", + numElevationSegments); + messageValid = false; + } } if (!messageValid) diff --git a/wxdata/source/scwx/wsr88d/rda/volume_coverage_pattern_data.cpp b/wxdata/source/scwx/wsr88d/rda/volume_coverage_pattern_data.cpp index 72943869..d2f3dec2 100644 --- a/wxdata/source/scwx/wsr88d/rda/volume_coverage_pattern_data.cpp +++ b/wxdata/source/scwx/wsr88d/rda/volume_coverage_pattern_data.cpp @@ -102,7 +102,7 @@ VolumeCoveragePatternData::VolumeCoveragePatternData() : VolumeCoveragePatternData::~VolumeCoveragePatternData() = default; VolumeCoveragePatternData::VolumeCoveragePatternData( - VolumeCoveragePatternData&&) noexcept = default; + VolumeCoveragePatternData&&) noexcept = default; VolumeCoveragePatternData& VolumeCoveragePatternData::operator=( VolumeCoveragePatternData&&) noexcept = default; @@ -419,16 +419,24 @@ bool VolumeCoveragePatternData::Parse(std::istream& is) p->vcpSequencing_ = ntohs(p->vcpSequencing_); p->vcpSupplementalData_ = ntohs(p->vcpSupplementalData_); - if (messageSize < 34 || messageSize > 747) + if (messageSize == 0) { - logger_->warn("Invalid message size: {}", messageSize); + logger_->trace("Ignoring empty message"); messageValid = false; } - if (numberOfElevationCuts < 1 || numberOfElevationCuts > 32) + else { - logger_->warn("Invalid number of elevation cuts: {}", - numberOfElevationCuts); - messageValid = false; + if (messageSize < 34 || messageSize > 747) + { + logger_->warn("Invalid message size: {}", messageSize); + messageValid = false; + } + if (numberOfElevationCuts < 1 || numberOfElevationCuts > 32) + { + logger_->warn("Invalid number of elevation cuts: {}", + numberOfElevationCuts); + messageValid = false; + } } if (!messageValid)