mirror of
https://github.com/ciphervance/supercell-wx.git
synced 2025-10-30 22:20:04 +00:00
Fix reload of expired (garbage collected) live data
This commit is contained in:
parent
92bb5154a4
commit
f1a5d4a744
5 changed files with 70 additions and 19 deletions
|
|
@ -383,9 +383,18 @@ void Level2ProductView::ComputeSweep()
|
|||
radar_product_manager();
|
||||
|
||||
std::shared_ptr<wsr88d::rda::ElevationScan> radarData;
|
||||
std::tie(radarData, p->elevationCut_, p->elevationCuts_) =
|
||||
std::chrono::system_clock::time_point requestedTime {selected_time()};
|
||||
std::chrono::system_clock::time_point foundTime;
|
||||
std::tie(radarData, p->elevationCut_, p->elevationCuts_, foundTime) =
|
||||
radarProductManager->GetLevel2Data(
|
||||
p->dataBlockType_, p->selectedElevation_, selected_time());
|
||||
p->dataBlockType_, p->selectedElevation_, requestedTime);
|
||||
|
||||
// If a different time was found than what was requested, update it
|
||||
if (requestedTime != foundTime)
|
||||
{
|
||||
SelectTime(foundTime);
|
||||
}
|
||||
|
||||
if (radarData == nullptr || radarData == p->elevationScan_)
|
||||
{
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -97,9 +97,18 @@ void Level3RadialView::ComputeSweep()
|
|||
radar_product_manager();
|
||||
|
||||
// Retrieve message from Radar Product Manager
|
||||
std::shared_ptr<wsr88d::rpg::Level3Message> message =
|
||||
radarProductManager->GetLevel3Data(GetRadarProductName(),
|
||||
selected_time());
|
||||
std::shared_ptr<wsr88d::rpg::Level3Message> message;
|
||||
std::chrono::system_clock::time_point requestedTime {selected_time()};
|
||||
std::chrono::system_clock::time_point foundTime;
|
||||
std::tie(message, foundTime) =
|
||||
radarProductManager->GetLevel3Data(GetRadarProductName(), requestedTime);
|
||||
|
||||
// If a different time was found than what was requested, update it
|
||||
if (requestedTime != foundTime)
|
||||
{
|
||||
SelectTime(foundTime);
|
||||
}
|
||||
|
||||
if (message == nullptr)
|
||||
{
|
||||
logger_->debug("Level 3 data not found");
|
||||
|
|
|
|||
|
|
@ -97,9 +97,18 @@ void Level3RasterView::ComputeSweep()
|
|||
radar_product_manager();
|
||||
|
||||
// Retrieve message from Radar Product Manager
|
||||
std::shared_ptr<wsr88d::rpg::Level3Message> message =
|
||||
radarProductManager->GetLevel3Data(GetRadarProductName(),
|
||||
selected_time());
|
||||
std::shared_ptr<wsr88d::rpg::Level3Message> message;
|
||||
std::chrono::system_clock::time_point requestedTime {selected_time()};
|
||||
std::chrono::system_clock::time_point foundTime;
|
||||
std::tie(message, foundTime) =
|
||||
radarProductManager->GetLevel3Data(GetRadarProductName(), requestedTime);
|
||||
|
||||
// If a different time was found than what was requested, update it
|
||||
if (requestedTime != foundTime)
|
||||
{
|
||||
SelectTime(foundTime);
|
||||
}
|
||||
|
||||
if (message == nullptr)
|
||||
{
|
||||
logger_->debug("Level 3 data not found");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue