Select product times based on current time, rather than volume time

Ensures scans not included in the volume times (e.g., multiple level 2 scans per file) are selected
This commit is contained in:
Dan Paulat 2024-10-27 08:45:15 -05:00
parent d209ce97ea
commit 2a9dc72721
5 changed files with 18 additions and 26 deletions

View file

@ -241,7 +241,7 @@ public:
std::vector<map::MapWidget*> maps_; std::vector<map::MapWidget*> maps_;
std::chrono::system_clock::time_point volumeTime_ {}; std::chrono::system_clock::time_point selectedTime_ {};
public slots: public slots:
void UpdateMapParameters(double latitude, void UpdateMapParameters(double latitude,
@ -997,22 +997,15 @@ void MainWindowImpl::ConnectAnimationSignals()
connect(timelineManager_.get(), connect(timelineManager_.get(),
&manager::TimelineManager::SelectedTimeUpdated, &manager::TimelineManager::SelectedTimeUpdated,
[this]()
{
for (auto map : maps_)
{
QMetaObject::invokeMethod(
map, static_cast<void (QWidget::*)()>(&QWidget::update));
}
});
connect(timelineManager_.get(),
&manager::TimelineManager::VolumeTimeUpdated,
[this](std::chrono::system_clock::time_point dateTime) [this](std::chrono::system_clock::time_point dateTime)
{ {
volumeTime_ = dateTime; selectedTime_ = dateTime;
for (auto map : maps_) for (auto map : maps_)
{ {
map->SelectTime(dateTime); map->SelectTime(dateTime);
QMetaObject::invokeMethod(
map, static_cast<void (QWidget::*)()>(&QWidget::update));
} }
}); });
@ -1400,7 +1393,8 @@ void MainWindowImpl::SelectRadarProduct(map::MapWidget* mapWidget,
UpdateRadarProductSettings(); UpdateRadarProductSettings();
} }
mapWidget->SelectRadarProduct(group, productName, productCode, volumeTime_); mapWidget->SelectRadarProduct(
group, productName, productCode, selectedTime_);
} }
void MainWindowImpl::SetActiveMap(map::MapWidget* mapWidget) void MainWindowImpl::SetActiveMap(map::MapWidget* mapWidget)

View file

@ -470,16 +470,8 @@ void TimelineManager::Impl::PlaySync()
auto selectTimeEnd = std::chrono::steady_clock::now(); auto selectTimeEnd = std::chrono::steady_clock::now();
auto elapsedTime = selectTimeEnd - selectTimeStart; auto elapsedTime = selectTimeEnd - selectTimeStart;
if (volumeTimeUpdated)
{
// Wait for radar sweeps to update // Wait for radar sweeps to update
RadarSweepMonitorWait(radarSweepMonitorLock); RadarSweepMonitorWait(radarSweepMonitorLock);
}
else
{
// Disable radar sweep monitor
RadarSweepMonitorDisable();
}
// Calculate the interval until the next update, prior to selecting // Calculate the interval until the next update, prior to selecting
std::chrono::milliseconds interval; std::chrono::milliseconds interval;

View file

@ -497,7 +497,7 @@ void Level2ProductView::UpdateColorTableLut()
void Level2ProductView::ComputeSweep() void Level2ProductView::ComputeSweep()
{ {
logger_->debug("ComputeSweep()"); logger_->trace("ComputeSweep()");
boost::timer::cpu_timer timer; boost::timer::cpu_timer timer;
@ -529,6 +529,8 @@ void Level2ProductView::ComputeSweep()
return; return;
} }
logger_->debug("Computing Sweep");
std::size_t radials = radarData->crbegin()->first + 1; std::size_t radials = radarData->crbegin()->first + 1;
std::size_t vertexRadials = radials; std::size_t vertexRadials = radials;

View file

@ -117,7 +117,7 @@ std::tuple<const void*, size_t, size_t> Level3RadialView::GetMomentData() const
void Level3RadialView::ComputeSweep() void Level3RadialView::ComputeSweep()
{ {
logger_->debug("ComputeSweep()"); logger_->trace("ComputeSweep()");
boost::timer::cpu_timer timer; boost::timer::cpu_timer timer;
@ -185,6 +185,8 @@ void Level3RadialView::ComputeSweep()
return; return;
} }
logger_->debug("Computing Sweep");
// A message with radial data should either have a Digital Radial Data // A message with radial data should either have a Digital Radial Data
// Array Packet, or a Radial Data Array Packet // Array Packet, or a Radial Data Array Packet
std::shared_ptr<wsr88d::rpg::DigitalRadialDataArrayPacket> std::shared_ptr<wsr88d::rpg::DigitalRadialDataArrayPacket>

View file

@ -101,7 +101,7 @@ std::tuple<const void*, size_t, size_t> Level3RasterView::GetMomentData() const
void Level3RasterView::ComputeSweep() void Level3RasterView::ComputeSweep()
{ {
logger_->debug("ComputeSweep()"); logger_->trace("ComputeSweep()");
boost::timer::cpu_timer timer; boost::timer::cpu_timer timer;
@ -169,6 +169,8 @@ void Level3RasterView::ComputeSweep()
return; return;
} }
logger_->debug("Computing Sweep");
// A message with raster data should have a Raster Data Packet // A message with raster data should have a Raster Data Packet
std::shared_ptr<wsr88d::rpg::RasterDataPacket> rasterData = nullptr; std::shared_ptr<wsr88d::rpg::RasterDataPacket> rasterData = nullptr;