mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-10-31 11:30:06 +00:00 
			
		
		
		
	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:
		
							parent
							
								
									d209ce97ea
								
							
						
					
					
						commit
						2a9dc72721
					
				
					 5 changed files with 18 additions and 26 deletions
				
			
		|  | @ -241,7 +241,7 @@ public: | |||
| 
 | ||||
|    std::vector<map::MapWidget*> maps_; | ||||
| 
 | ||||
|    std::chrono::system_clock::time_point volumeTime_ {}; | ||||
|    std::chrono::system_clock::time_point selectedTime_ {}; | ||||
| 
 | ||||
| public slots: | ||||
|    void UpdateMapParameters(double latitude, | ||||
|  | @ -997,22 +997,15 @@ void MainWindowImpl::ConnectAnimationSignals() | |||
| 
 | ||||
|    connect(timelineManager_.get(), | ||||
|            &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) | ||||
|            { | ||||
|               volumeTime_ = dateTime; | ||||
|               selectedTime_ = dateTime; | ||||
| 
 | ||||
|               for (auto map : maps_) | ||||
|               { | ||||
|                  map->SelectTime(dateTime); | ||||
|                  QMetaObject::invokeMethod( | ||||
|                     map, static_cast<void (QWidget::*)()>(&QWidget::update)); | ||||
|               } | ||||
|            }); | ||||
| 
 | ||||
|  | @ -1400,7 +1393,8 @@ void MainWindowImpl::SelectRadarProduct(map::MapWidget*           mapWidget, | |||
|       UpdateRadarProductSettings(); | ||||
|    } | ||||
| 
 | ||||
|    mapWidget->SelectRadarProduct(group, productName, productCode, volumeTime_); | ||||
|    mapWidget->SelectRadarProduct( | ||||
|       group, productName, productCode, selectedTime_); | ||||
| } | ||||
| 
 | ||||
| void MainWindowImpl::SetActiveMap(map::MapWidget* mapWidget) | ||||
|  |  | |||
|  | @ -470,16 +470,8 @@ void TimelineManager::Impl::PlaySync() | |||
|    auto selectTimeEnd = std::chrono::steady_clock::now(); | ||||
|    auto elapsedTime   = selectTimeEnd - selectTimeStart; | ||||
| 
 | ||||
|    if (volumeTimeUpdated) | ||||
|    { | ||||
|       // Wait for radar sweeps to update
 | ||||
|       RadarSweepMonitorWait(radarSweepMonitorLock); | ||||
|    } | ||||
|    else | ||||
|    { | ||||
|       // Disable radar sweep monitor
 | ||||
|       RadarSweepMonitorDisable(); | ||||
|    } | ||||
|    // Wait for radar sweeps to update
 | ||||
|    RadarSweepMonitorWait(radarSweepMonitorLock); | ||||
| 
 | ||||
|    // Calculate the interval until the next update, prior to selecting
 | ||||
|    std::chrono::milliseconds interval; | ||||
|  |  | |||
|  | @ -497,7 +497,7 @@ void Level2ProductView::UpdateColorTableLut() | |||
| 
 | ||||
| void Level2ProductView::ComputeSweep() | ||||
| { | ||||
|    logger_->debug("ComputeSweep()"); | ||||
|    logger_->trace("ComputeSweep()"); | ||||
| 
 | ||||
|    boost::timer::cpu_timer timer; | ||||
| 
 | ||||
|  | @ -529,6 +529,8 @@ void Level2ProductView::ComputeSweep() | |||
|       return; | ||||
|    } | ||||
| 
 | ||||
|    logger_->debug("Computing Sweep"); | ||||
| 
 | ||||
|    std::size_t radials       = radarData->crbegin()->first + 1; | ||||
|    std::size_t vertexRadials = radials; | ||||
| 
 | ||||
|  |  | |||
|  | @ -117,7 +117,7 @@ std::tuple<const void*, size_t, size_t> Level3RadialView::GetMomentData() const | |||
| 
 | ||||
| void Level3RadialView::ComputeSweep() | ||||
| { | ||||
|    logger_->debug("ComputeSweep()"); | ||||
|    logger_->trace("ComputeSweep()"); | ||||
| 
 | ||||
|    boost::timer::cpu_timer timer; | ||||
| 
 | ||||
|  | @ -185,6 +185,8 @@ void Level3RadialView::ComputeSweep() | |||
|       return; | ||||
|    } | ||||
| 
 | ||||
|    logger_->debug("Computing Sweep"); | ||||
| 
 | ||||
|    // A message with radial data should either have a Digital Radial Data
 | ||||
|    // Array Packet, or a Radial Data Array Packet
 | ||||
|    std::shared_ptr<wsr88d::rpg::DigitalRadialDataArrayPacket> | ||||
|  |  | |||
|  | @ -101,7 +101,7 @@ std::tuple<const void*, size_t, size_t> Level3RasterView::GetMomentData() const | |||
| 
 | ||||
| void Level3RasterView::ComputeSweep() | ||||
| { | ||||
|    logger_->debug("ComputeSweep()"); | ||||
|    logger_->trace("ComputeSweep()"); | ||||
| 
 | ||||
|    boost::timer::cpu_timer timer; | ||||
| 
 | ||||
|  | @ -169,6 +169,8 @@ void Level3RasterView::ComputeSweep() | |||
|       return; | ||||
|    } | ||||
| 
 | ||||
|    logger_->debug("Computing Sweep"); | ||||
| 
 | ||||
|    // A message with raster data should have a Raster Data Packet
 | ||||
|    std::shared_ptr<wsr88d::rpg::RasterDataPacket> rasterData = nullptr; | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Dan Paulat
						Dan Paulat