mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-10-31 12:00:04 +00:00 
			
		
		
		
	Rename DigitalRadarData to DigitalRadarDataGeneric to align with message type 31 name
This commit is contained in:
		
							parent
							
								
									6f73c19be8
								
							
						
					
					
						commit
						bfd7963d4c
					
				
					 6 changed files with 79 additions and 73 deletions
				
			
		|  | @ -1,7 +1,7 @@ | ||||||
| #pragma once | #pragma once | ||||||
| 
 | 
 | ||||||
| #include <scwx/wsr88d/nexrad_file.hpp> | #include <scwx/wsr88d/nexrad_file.hpp> | ||||||
| #include <scwx/wsr88d/rda/digital_radar_data.hpp> | #include <scwx/wsr88d/rda/digital_radar_data_generic.hpp> | ||||||
| #include <scwx/wsr88d/rda/volume_coverage_pattern_data.hpp> | #include <scwx/wsr88d/rda/volume_coverage_pattern_data.hpp> | ||||||
| 
 | 
 | ||||||
| #include <chrono> | #include <chrono> | ||||||
|  |  | ||||||
|  | @ -34,10 +34,11 @@ class MomentDataBlockImpl; | ||||||
| class RadialDataBlockImpl; | class RadialDataBlockImpl; | ||||||
| class VolumeDataBlockImpl; | class VolumeDataBlockImpl; | ||||||
| 
 | 
 | ||||||
| class DigitalRadarData; | class DigitalRadarDataGeneric; | ||||||
| class DigitalRadarDataImpl; | class DigitalRadarDataGenericImpl; | ||||||
| 
 | 
 | ||||||
| typedef std::map<uint16_t, std::shared_ptr<DigitalRadarData>> ElevationScan; | typedef std::map<uint16_t, std::shared_ptr<DigitalRadarDataGeneric>> | ||||||
|  |    ElevationScan; | ||||||
| 
 | 
 | ||||||
| class DataBlock | class DataBlock | ||||||
| { | { | ||||||
|  | @ -170,17 +171,17 @@ private: | ||||||
|    bool Parse(std::istream& is); |    bool Parse(std::istream& is); | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| class DigitalRadarData : public Level2Message | class DigitalRadarDataGeneric : public Level2Message | ||||||
| { | { | ||||||
| public: | public: | ||||||
|    explicit DigitalRadarData(); |    explicit DigitalRadarDataGeneric(); | ||||||
|    ~DigitalRadarData(); |    ~DigitalRadarDataGeneric(); | ||||||
| 
 | 
 | ||||||
|    DigitalRadarData(const DigitalRadarData&) = delete; |    DigitalRadarDataGeneric(const DigitalRadarDataGeneric&)            = delete; | ||||||
|    DigitalRadarData& operator=(const DigitalRadarData&) = delete; |    DigitalRadarDataGeneric& operator=(const DigitalRadarDataGeneric&) = delete; | ||||||
| 
 | 
 | ||||||
|    DigitalRadarData(DigitalRadarData&&) noexcept; |    DigitalRadarDataGeneric(DigitalRadarDataGeneric&&) noexcept; | ||||||
|    DigitalRadarData& operator=(DigitalRadarData&&) noexcept; |    DigitalRadarDataGeneric& operator=(DigitalRadarDataGeneric&&) noexcept; | ||||||
| 
 | 
 | ||||||
|    std::string radar_identifier() const; |    std::string radar_identifier() const; | ||||||
|    uint32_t    collection_time() const; |    uint32_t    collection_time() const; | ||||||
|  | @ -205,11 +206,11 @@ public: | ||||||
| 
 | 
 | ||||||
|    bool Parse(std::istream& is); |    bool Parse(std::istream& is); | ||||||
| 
 | 
 | ||||||
|    static std::shared_ptr<DigitalRadarData> Create(Level2MessageHeader&& header, |    static std::shared_ptr<DigitalRadarDataGeneric> | ||||||
|                                                    std::istream&         is); |    Create(Level2MessageHeader&& header, std::istream& is); | ||||||
| 
 | 
 | ||||||
| private: | private: | ||||||
|    std::unique_ptr<DigitalRadarDataImpl> p; |    std::unique_ptr<DigitalRadarDataGenericImpl> p; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| } // namespace rda
 | } // namespace rda
 | ||||||
|  | @ -58,7 +58,8 @@ public: | ||||||
|    void        IndexFile(); |    void        IndexFile(); | ||||||
|    void        ParseLDMRecords(); |    void        ParseLDMRecords(); | ||||||
|    void        ParseLDMRecord(std::istream& is); |    void        ParseLDMRecord(std::istream& is); | ||||||
|    void        ProcessRadarData(std::shared_ptr<rda::DigitalRadarData> message); |    void        ProcessRadarData( | ||||||
|  |              const std::shared_ptr<rda::DigitalRadarDataGeneric>& message); | ||||||
| 
 | 
 | ||||||
|    std::string   tapeFilename_; |    std::string   tapeFilename_; | ||||||
|    std::string   extensionNumber_; |    std::string   extensionNumber_; | ||||||
|  | @ -108,7 +109,7 @@ std::chrono::system_clock::time_point Ar2vFile::end_time() const | ||||||
| 
 | 
 | ||||||
|    if (p->radarData_.size() > 0) |    if (p->radarData_.size() > 0) | ||||||
|    { |    { | ||||||
|       std::shared_ptr<rda::DigitalRadarData> lastRadial = |       std::shared_ptr<rda::DigitalRadarDataGeneric> lastRadial = | ||||||
|          p->radarData_.crbegin()->second->crbegin()->second; |          p->radarData_.crbegin()->second->crbegin()->second; | ||||||
| 
 | 
 | ||||||
|       endTime = util::TimePoint(lastRadial->modified_julian_date(), |       endTime = util::TimePoint(lastRadial->modified_julian_date(), | ||||||
|  | @ -389,7 +390,7 @@ void Ar2vFileImpl::HandleMessage(std::shared_ptr<rda::Level2Message>& message) | ||||||
| 
 | 
 | ||||||
|    case static_cast<uint8_t>(rda::MessageId::DigitalRadarData): |    case static_cast<uint8_t>(rda::MessageId::DigitalRadarData): | ||||||
|       ProcessRadarData( |       ProcessRadarData( | ||||||
|          std::static_pointer_cast<rda::DigitalRadarData>(message)); |          std::static_pointer_cast<rda::DigitalRadarDataGeneric>(message)); | ||||||
|       break; |       break; | ||||||
| 
 | 
 | ||||||
|    default: |    default: | ||||||
|  | @ -398,7 +399,7 @@ void Ar2vFileImpl::HandleMessage(std::shared_ptr<rda::Level2Message>& message) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void Ar2vFileImpl::ProcessRadarData( | void Ar2vFileImpl::ProcessRadarData( | ||||||
|    std::shared_ptr<rda::DigitalRadarData> message) |    const std::shared_ptr<rda::DigitalRadarDataGeneric>& message) | ||||||
| { | { | ||||||
|    uint16_t azimuthIndex   = message->azimuth_number() - 1; |    uint16_t azimuthIndex   = message->azimuth_number() - 1; | ||||||
|    uint16_t elevationIndex = message->elevation_number() - 1; |    uint16_t elevationIndex = message->elevation_number() - 1; | ||||||
|  | @ -421,14 +422,14 @@ void Ar2vFileImpl::IndexFile() | ||||||
|       return; |       return; | ||||||
|    } |    } | ||||||
| 
 | 
 | ||||||
|    for (auto elevationCut : radarData_) |    for (auto& elevationCut : radarData_) | ||||||
|    { |    { | ||||||
|       uint16_t elevationAngle = |       uint16_t elevationAngle = | ||||||
|          vcpData_->elevation_angle_raw(elevationCut.first); |          vcpData_->elevation_angle_raw(elevationCut.first); | ||||||
|       rda::WaveformType waveformType = |       rda::WaveformType waveformType = | ||||||
|          vcpData_->waveform_type(elevationCut.first); |          vcpData_->waveform_type(elevationCut.first); | ||||||
| 
 | 
 | ||||||
|       std::shared_ptr<rda::DigitalRadarData> radial0 = |       std::shared_ptr<rda::DigitalRadarDataGeneric>& radial0 = | ||||||
|          (*elevationCut.second)[0]; |          (*elevationCut.second)[0]; | ||||||
| 
 | 
 | ||||||
|       if (radial0 == nullptr) |       if (radial0 == nullptr) | ||||||
|  |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| #include <scwx/wsr88d/rda/digital_radar_data.hpp> | #include <scwx/wsr88d/rda/digital_radar_data_generic.hpp> | ||||||
| #include <scwx/util/logger.hpp> | #include <scwx/util/logger.hpp> | ||||||
| 
 | 
 | ||||||
| namespace scwx | namespace scwx | ||||||
|  | @ -8,7 +8,8 @@ namespace wsr88d | ||||||
| namespace rda | namespace rda | ||||||
| { | { | ||||||
| 
 | 
 | ||||||
| static const std::string logPrefix_ = "scwx::wsr88d::rda::digital_radar_data"; | static const std::string logPrefix_ = | ||||||
|  |    "scwx::wsr88d::rda::digital_radar_data_generic"; | ||||||
| static const auto logger_ = util::Logger::Create(logPrefix_); | static const auto logger_ = util::Logger::Create(logPrefix_); | ||||||
| 
 | 
 | ||||||
| static const std::unordered_map<std::string, DataBlockType> strToDataBlock_ { | static const std::unordered_map<std::string, DataBlockType> strToDataBlock_ { | ||||||
|  | @ -493,10 +494,10 @@ bool RadialDataBlock::Parse(std::istream& is) | ||||||
|    return dataBlockValid; |    return dataBlockValid; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| class DigitalRadarDataImpl | class DigitalRadarDataGenericImpl | ||||||
| { | { | ||||||
| public: | public: | ||||||
|    explicit DigitalRadarDataImpl() : |    explicit DigitalRadarDataGenericImpl() : | ||||||
|        radarIdentifier_ {}, |        radarIdentifier_ {}, | ||||||
|        collectionTime_ {0}, |        collectionTime_ {0}, | ||||||
|        modifiedJulianDate_ {0}, |        modifiedJulianDate_ {0}, | ||||||
|  | @ -517,7 +518,7 @@ public: | ||||||
|        elevationDataBlock_ {nullptr}, |        elevationDataBlock_ {nullptr}, | ||||||
|        radialDataBlock_ {nullptr}, |        radialDataBlock_ {nullptr}, | ||||||
|        momentDataBlock_ {} {}; |        momentDataBlock_ {} {}; | ||||||
|    ~DigitalRadarDataImpl() = default; |    ~DigitalRadarDataGenericImpl() = default; | ||||||
| 
 | 
 | ||||||
|    std::string              radarIdentifier_; |    std::string              radarIdentifier_; | ||||||
|    uint32_t                 collectionTime_; |    uint32_t                 collectionTime_; | ||||||
|  | @ -543,109 +544,112 @@ public: | ||||||
|       momentDataBlock_; |       momentDataBlock_; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| DigitalRadarData::DigitalRadarData() : | DigitalRadarDataGeneric::DigitalRadarDataGeneric() : | ||||||
|     Level2Message(), p(std::make_unique<DigitalRadarDataImpl>()) |     Level2Message(), p(std::make_unique<DigitalRadarDataGenericImpl>()) | ||||||
| { | { | ||||||
| } | } | ||||||
| DigitalRadarData::~DigitalRadarData() = default; | DigitalRadarDataGeneric::~DigitalRadarDataGeneric() = default; | ||||||
| 
 | 
 | ||||||
| DigitalRadarData::DigitalRadarData(DigitalRadarData&&) noexcept = default; | DigitalRadarDataGeneric::DigitalRadarDataGeneric( | ||||||
| DigitalRadarData& |    DigitalRadarDataGeneric&&) noexcept = default; | ||||||
| DigitalRadarData::operator=(DigitalRadarData&&) noexcept = default; | DigitalRadarDataGeneric& DigitalRadarDataGeneric::operator=( | ||||||
|  |    DigitalRadarDataGeneric&&) noexcept = default; | ||||||
| 
 | 
 | ||||||
| std::string DigitalRadarData::radar_identifier() const | std::string DigitalRadarDataGeneric::radar_identifier() const | ||||||
| { | { | ||||||
|    return p->radarIdentifier_; |    return p->radarIdentifier_; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| uint32_t DigitalRadarData::collection_time() const | uint32_t DigitalRadarDataGeneric::collection_time() const | ||||||
| { | { | ||||||
|    return p->collectionTime_; |    return p->collectionTime_; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| uint16_t DigitalRadarData::modified_julian_date() const | uint16_t DigitalRadarDataGeneric::modified_julian_date() const | ||||||
| { | { | ||||||
|    return p->modifiedJulianDate_; |    return p->modifiedJulianDate_; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| uint16_t DigitalRadarData::azimuth_number() const | uint16_t DigitalRadarDataGeneric::azimuth_number() const | ||||||
| { | { | ||||||
|    return p->azimuthNumber_; |    return p->azimuthNumber_; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| float DigitalRadarData::azimuth_angle() const | float DigitalRadarDataGeneric::azimuth_angle() const | ||||||
| { | { | ||||||
|    return p->azimuthAngle_; |    return p->azimuthAngle_; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| uint8_t DigitalRadarData::compression_indicator() const | uint8_t DigitalRadarDataGeneric::compression_indicator() const | ||||||
| { | { | ||||||
|    return p->compressionIndicator_; |    return p->compressionIndicator_; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| uint16_t DigitalRadarData::radial_length() const | uint16_t DigitalRadarDataGeneric::radial_length() const | ||||||
| { | { | ||||||
|    return p->radialLength_; |    return p->radialLength_; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| uint8_t DigitalRadarData::azimuth_resolution_spacing() const | uint8_t DigitalRadarDataGeneric::azimuth_resolution_spacing() const | ||||||
| { | { | ||||||
|    return p->azimuthResolutionSpacing_; |    return p->azimuthResolutionSpacing_; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| uint8_t DigitalRadarData::radial_status() const | uint8_t DigitalRadarDataGeneric::radial_status() const | ||||||
| { | { | ||||||
|    return p->radialStatus_; |    return p->radialStatus_; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| uint8_t DigitalRadarData::elevation_number() const | uint8_t DigitalRadarDataGeneric::elevation_number() const | ||||||
| { | { | ||||||
|    return p->elevationNumber_; |    return p->elevationNumber_; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| uint8_t DigitalRadarData::cut_sector_number() const | uint8_t DigitalRadarDataGeneric::cut_sector_number() const | ||||||
| { | { | ||||||
|    return p->cutSectorNumber_; |    return p->cutSectorNumber_; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| float DigitalRadarData::elevation_angle() const | float DigitalRadarDataGeneric::elevation_angle() const | ||||||
| { | { | ||||||
|    return p->elevationAngle_; |    return p->elevationAngle_; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| uint8_t DigitalRadarData::radial_spot_blanking_status() const | uint8_t DigitalRadarDataGeneric::radial_spot_blanking_status() const | ||||||
| { | { | ||||||
|    return p->radialSpotBlankingStatus_; |    return p->radialSpotBlankingStatus_; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| uint8_t DigitalRadarData::azimuth_indexing_mode() const | uint8_t DigitalRadarDataGeneric::azimuth_indexing_mode() const | ||||||
| { | { | ||||||
|    return p->azimuthIndexingMode_; |    return p->azimuthIndexingMode_; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| uint16_t DigitalRadarData::data_block_count() const | uint16_t DigitalRadarDataGeneric::data_block_count() const | ||||||
| { | { | ||||||
|    return p->dataBlockCount_; |    return p->dataBlockCount_; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| std::shared_ptr<ElevationDataBlock> | std::shared_ptr<ElevationDataBlock> | ||||||
| DigitalRadarData::elevation_data_block() const | DigitalRadarDataGeneric::elevation_data_block() const | ||||||
| { | { | ||||||
|    return p->elevationDataBlock_; |    return p->elevationDataBlock_; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| std::shared_ptr<RadialDataBlock> DigitalRadarData::radial_data_block() const | std::shared_ptr<RadialDataBlock> | ||||||
|  | DigitalRadarDataGeneric::radial_data_block() const | ||||||
| { | { | ||||||
|    return p->radialDataBlock_; |    return p->radialDataBlock_; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| std::shared_ptr<VolumeDataBlock> DigitalRadarData::volume_data_block() const | std::shared_ptr<VolumeDataBlock> | ||||||
|  | DigitalRadarDataGeneric::volume_data_block() const | ||||||
| { | { | ||||||
|    return p->volumeDataBlock_; |    return p->volumeDataBlock_; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| std::shared_ptr<MomentDataBlock> | std::shared_ptr<MomentDataBlock> | ||||||
| DigitalRadarData::moment_data_block(DataBlockType type) const | DigitalRadarDataGeneric::moment_data_block(DataBlockType type) const | ||||||
| { | { | ||||||
|    std::shared_ptr<MomentDataBlock> momentDataBlock = nullptr; |    std::shared_ptr<MomentDataBlock> momentDataBlock = nullptr; | ||||||
| 
 | 
 | ||||||
|  | @ -658,7 +662,7 @@ DigitalRadarData::moment_data_block(DataBlockType type) const | ||||||
|    return momentDataBlock; |    return momentDataBlock; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| bool DigitalRadarData::Parse(std::istream& is) | bool DigitalRadarDataGeneric::Parse(std::istream& is) | ||||||
| { | { | ||||||
|    logger_->trace("Parsing Digital Radar Data (Message Type 31)"); |    logger_->trace("Parsing Digital Radar Data (Message Type 31)"); | ||||||
| 
 | 
 | ||||||
|  | @ -784,11 +788,11 @@ bool DigitalRadarData::Parse(std::istream& is) | ||||||
|    return messageValid; |    return messageValid; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| std::shared_ptr<DigitalRadarData> | std::shared_ptr<DigitalRadarDataGeneric> | ||||||
| DigitalRadarData::Create(Level2MessageHeader&& header, std::istream& is) | DigitalRadarDataGeneric::Create(Level2MessageHeader&& header, std::istream& is) | ||||||
| { | { | ||||||
|    std::shared_ptr<DigitalRadarData> message = |    std::shared_ptr<DigitalRadarDataGeneric> message = | ||||||
|       std::make_shared<DigitalRadarData>(); |       std::make_shared<DigitalRadarDataGeneric>(); | ||||||
|    message->set_header(std::move(header)); |    message->set_header(std::move(header)); | ||||||
| 
 | 
 | ||||||
|    if (!message->Parse(is)) |    if (!message->Parse(is)) | ||||||
|  | @ -4,7 +4,7 @@ | ||||||
| #include <scwx/util/vectorbuf.hpp> | #include <scwx/util/vectorbuf.hpp> | ||||||
| #include <scwx/wsr88d/rda/clutter_filter_bypass_map.hpp> | #include <scwx/wsr88d/rda/clutter_filter_bypass_map.hpp> | ||||||
| #include <scwx/wsr88d/rda/clutter_filter_map.hpp> | #include <scwx/wsr88d/rda/clutter_filter_map.hpp> | ||||||
| #include <scwx/wsr88d/rda/digital_radar_data.hpp> | #include <scwx/wsr88d/rda/digital_radar_data_generic.hpp> | ||||||
| #include <scwx/wsr88d/rda/performance_maintenance_data.hpp> | #include <scwx/wsr88d/rda/performance_maintenance_data.hpp> | ||||||
| #include <scwx/wsr88d/rda/rda_adaptation_data.hpp> | #include <scwx/wsr88d/rda/rda_adaptation_data.hpp> | ||||||
| #include <scwx/wsr88d/rda/rda_status_data.hpp> | #include <scwx/wsr88d/rda/rda_status_data.hpp> | ||||||
|  | @ -28,14 +28,14 @@ typedef std::function<std::shared_ptr<Level2Message>(Level2MessageHeader&&, | ||||||
|                                                      std::istream&)> |                                                      std::istream&)> | ||||||
|    CreateLevel2MessageFunction; |    CreateLevel2MessageFunction; | ||||||
| 
 | 
 | ||||||
| static const std::unordered_map<unsigned int, CreateLevel2MessageFunction> create_ { | static const std::unordered_map<unsigned int, CreateLevel2MessageFunction> | ||||||
|    {2, RdaStatusData::Create}, |    create_ {{2, RdaStatusData::Create}, | ||||||
|             {3, PerformanceMaintenanceData::Create}, |             {3, PerformanceMaintenanceData::Create}, | ||||||
|             {5, VolumeCoveragePatternData::Create}, |             {5, VolumeCoveragePatternData::Create}, | ||||||
|             {13, ClutterFilterBypassMap::Create}, |             {13, ClutterFilterBypassMap::Create}, | ||||||
|             {15, ClutterFilterMap::Create}, |             {15, ClutterFilterMap::Create}, | ||||||
|             {18, RdaAdaptationData::Create}, |             {18, RdaAdaptationData::Create}, | ||||||
|    {31, DigitalRadarData::Create}}; |             {31, DigitalRadarDataGeneric::Create}}; | ||||||
| 
 | 
 | ||||||
| struct Level2MessageFactory::Context | struct Level2MessageFactory::Context | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -102,7 +102,7 @@ set(SRC_WSR88D source/scwx/wsr88d/ar2v_file.cpp | ||||||
|                source/scwx/wsr88d/wsr88d_types.cpp) |                source/scwx/wsr88d/wsr88d_types.cpp) | ||||||
| set(HDR_WSR88D_RDA include/scwx/wsr88d/rda/clutter_filter_bypass_map.hpp | set(HDR_WSR88D_RDA include/scwx/wsr88d/rda/clutter_filter_bypass_map.hpp | ||||||
|                    include/scwx/wsr88d/rda/clutter_filter_map.hpp |                    include/scwx/wsr88d/rda/clutter_filter_map.hpp | ||||||
|                    include/scwx/wsr88d/rda/digital_radar_data.hpp |                    include/scwx/wsr88d/rda/digital_radar_data_generic.hpp | ||||||
|                    include/scwx/wsr88d/rda/level2_message.hpp |                    include/scwx/wsr88d/rda/level2_message.hpp | ||||||
|                    include/scwx/wsr88d/rda/level2_message_factory.hpp |                    include/scwx/wsr88d/rda/level2_message_factory.hpp | ||||||
|                    include/scwx/wsr88d/rda/level2_message_header.hpp |                    include/scwx/wsr88d/rda/level2_message_header.hpp | ||||||
|  | @ -113,7 +113,7 @@ set(HDR_WSR88D_RDA include/scwx/wsr88d/rda/clutter_filter_bypass_map.hpp | ||||||
|                    include/scwx/wsr88d/rda/volume_coverage_pattern_data.hpp) |                    include/scwx/wsr88d/rda/volume_coverage_pattern_data.hpp) | ||||||
| set(SRC_WSR88D_RDA source/scwx/wsr88d/rda/clutter_filter_bypass_map.cpp | set(SRC_WSR88D_RDA source/scwx/wsr88d/rda/clutter_filter_bypass_map.cpp | ||||||
|                    source/scwx/wsr88d/rda/clutter_filter_map.cpp |                    source/scwx/wsr88d/rda/clutter_filter_map.cpp | ||||||
|                    source/scwx/wsr88d/rda/digital_radar_data.cpp |                    source/scwx/wsr88d/rda/digital_radar_data_generic.cpp | ||||||
|                    source/scwx/wsr88d/rda/level2_message.cpp |                    source/scwx/wsr88d/rda/level2_message.cpp | ||||||
|                    source/scwx/wsr88d/rda/level2_message_factory.cpp |                    source/scwx/wsr88d/rda/level2_message_factory.cpp | ||||||
|                    source/scwx/wsr88d/rda/level2_message_header.cpp |                    source/scwx/wsr88d/rda/level2_message_header.cpp | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Dan Paulat
						Dan Paulat