mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-10-31 00:40:06 +00:00 
			
		
		
		
	Add Generic Radar Data as a common base class to message types 1 and 31
This commit is contained in:
		
							parent
							
								
									b8b0812ce6
								
							
						
					
					
						commit
						571d0b2ce9
					
				
					 8 changed files with 191 additions and 41 deletions
				
			
		|  | @ -501,7 +501,7 @@ public: | |||
| }; | ||||
| 
 | ||||
| DigitalRadarDataGeneric::DigitalRadarDataGeneric() : | ||||
|     Level2Message(), p(std::make_unique<Impl>()) | ||||
|     GenericRadarData(), p(std::make_unique<Impl>()) | ||||
| { | ||||
| } | ||||
| DigitalRadarDataGeneric::~DigitalRadarDataGeneric() = default; | ||||
|  | @ -586,6 +586,18 @@ std::uint16_t DigitalRadarDataGeneric::data_block_count() const | |||
|    return p->dataBlockCount_; | ||||
| } | ||||
| 
 | ||||
| std::uint16_t DigitalRadarDataGeneric::volume_coverage_pattern_number() const | ||||
| { | ||||
|    std::uint16_t vcpNumber = 0; | ||||
| 
 | ||||
|    if (p->volumeDataBlock_ != nullptr) | ||||
|    { | ||||
|       vcpNumber = p->volumeDataBlock_->volume_coverage_pattern_number(); | ||||
|    } | ||||
| 
 | ||||
|    return vcpNumber; | ||||
| } | ||||
| 
 | ||||
| std::shared_ptr<DigitalRadarDataGeneric::ElevationDataBlock> | ||||
| DigitalRadarDataGeneric::elevation_data_block() const | ||||
| { | ||||
|  | @ -604,7 +616,7 @@ DigitalRadarDataGeneric::volume_data_block() const | |||
|    return p->volumeDataBlock_; | ||||
| } | ||||
| 
 | ||||
| std::shared_ptr<DigitalRadarDataGeneric::MomentDataBlock> | ||||
| std::shared_ptr<GenericRadarData::MomentDataBlock> | ||||
| DigitalRadarDataGeneric::moment_data_block(DataBlockType type) const | ||||
| { | ||||
|    std::shared_ptr<MomentDataBlock> momentDataBlock = nullptr; | ||||
|  |  | |||
							
								
								
									
										61
									
								
								wxdata/source/scwx/wsr88d/rda/generic_radar_data.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								wxdata/source/scwx/wsr88d/rda/generic_radar_data.cpp
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,61 @@ | |||
| #include <scwx/wsr88d/rda/generic_radar_data.hpp> | ||||
| #include <scwx/util/logger.hpp> | ||||
| 
 | ||||
| namespace scwx | ||||
| { | ||||
| namespace wsr88d | ||||
| { | ||||
| namespace rda | ||||
| { | ||||
| 
 | ||||
| static const std::string logPrefix_ = "scwx::wsr88d::rda::generic_radar_data"; | ||||
| 
 | ||||
| static const std::unordered_map<std::string, DataBlockType> strToDataBlock_ { | ||||
|    {"VOL", DataBlockType::Volume}, | ||||
|    {"ELV", DataBlockType::Elevation}, | ||||
|    {"RAD", DataBlockType::Radial}, | ||||
|    {"REF", DataBlockType::MomentRef}, | ||||
|    {"VEL", DataBlockType::MomentVel}, | ||||
|    {"SW ", DataBlockType::MomentSw}, | ||||
|    {"ZDR", DataBlockType::MomentZdr}, | ||||
|    {"PHI", DataBlockType::MomentPhi}, | ||||
|    {"RHO", DataBlockType::MomentRho}, | ||||
|    {"CFP", DataBlockType::MomentCfp}}; | ||||
| 
 | ||||
| class GenericRadarData::MomentDataBlock::Impl | ||||
| { | ||||
| public: | ||||
|    explicit Impl() {} | ||||
| }; | ||||
| 
 | ||||
| GenericRadarData::MomentDataBlock::MomentDataBlock() : | ||||
|     p(std::make_unique<Impl>()) | ||||
| { | ||||
| } | ||||
| GenericRadarData::MomentDataBlock::~MomentDataBlock() = default; | ||||
| 
 | ||||
| GenericRadarData::MomentDataBlock::MomentDataBlock(MomentDataBlock&&) noexcept = | ||||
|    default; | ||||
| GenericRadarData::MomentDataBlock& GenericRadarData::MomentDataBlock::operator=( | ||||
|    MomentDataBlock&&) noexcept = default; | ||||
| 
 | ||||
| class GenericRadarData::Impl | ||||
| { | ||||
| public: | ||||
|    explicit Impl() {}; | ||||
|    ~Impl() = default; | ||||
| }; | ||||
| 
 | ||||
| GenericRadarData::GenericRadarData() : | ||||
|     Level2Message(), p(std::make_unique<Impl>()) | ||||
| { | ||||
| } | ||||
| GenericRadarData::~GenericRadarData() = default; | ||||
| 
 | ||||
| GenericRadarData::GenericRadarData(GenericRadarData&&) noexcept = default; | ||||
| GenericRadarData& | ||||
| GenericRadarData::operator=(GenericRadarData&&) noexcept = default; | ||||
| 
 | ||||
| } // namespace rda
 | ||||
| } // namespace wsr88d
 | ||||
| } // namespace scwx
 | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Dan Paulat
						Dan Paulat