mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-10-31 16:50: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::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) | ||||||
|  |  | ||||||
|  | @ -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; | ||||||
|  |  | ||||||
|  | @ -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; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -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> | ||||||
|  |  | ||||||
|  | @ -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; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Dan Paulat
						Dan Paulat