mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-10-31 09:10:04 +00:00 
			
		
		
		
	Level 3 interface updates
This commit is contained in:
		
							parent
							
								
									c7b5a659ab
								
							
						
					
					
						commit
						98531f6b56
					
				
					 6 changed files with 35 additions and 8 deletions
				
			
		|  | @ -36,6 +36,10 @@ public: | ||||||
|    float    range_scale_factor() const; |    float    range_scale_factor() const; | ||||||
|    uint16_t number_of_radials() const; |    uint16_t number_of_radials() const; | ||||||
| 
 | 
 | ||||||
|  |    float                       start_angle(uint16_t r) const; | ||||||
|  |    float                       delta_angle(uint16_t r) const; | ||||||
|  |    const std::vector<uint8_t>& level(uint16_t r) const; | ||||||
|  | 
 | ||||||
|    size_t data_size() const override; |    size_t data_size() const override; | ||||||
| 
 | 
 | ||||||
|    bool Parse(std::istream& is) override; |    bool Parse(std::istream& is) override; | ||||||
|  |  | ||||||
|  | @ -27,8 +27,8 @@ public: | ||||||
|    ProductDescriptionBlock& operator=(ProductDescriptionBlock&&) noexcept; |    ProductDescriptionBlock& operator=(ProductDescriptionBlock&&) noexcept; | ||||||
| 
 | 
 | ||||||
|    int16_t  block_divider() const; |    int16_t  block_divider() const; | ||||||
|    int32_t  latitude_of_radar() const; |    float    latitude_of_radar() const; | ||||||
|    int32_t  longitude_of_radar() const; |    float    longitude_of_radar() const; | ||||||
|    int16_t  height_of_radar() const; |    int16_t  height_of_radar() const; | ||||||
|    int16_t  product_code() const; |    int16_t  product_code() const; | ||||||
|    uint16_t operational_mode() const; |    uint16_t operational_mode() const; | ||||||
|  |  | ||||||
|  | @ -30,7 +30,7 @@ public: | ||||||
|    int16_t  block_divider() const; |    int16_t  block_divider() const; | ||||||
|    uint16_t number_of_layers() const; |    uint16_t number_of_layers() const; | ||||||
| 
 | 
 | ||||||
|    const std::vector<std::shared_ptr<Packet>>& packet_list(uint16_t i) const; |    std::vector<std::shared_ptr<Packet>> packet_list(uint16_t i) const; | ||||||
| 
 | 
 | ||||||
|    size_t data_size() const override; |    size_t data_size() const override; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -108,6 +108,22 @@ size_t DigitalRadialDataArrayPacket::data_size() const | ||||||
|    return p->dataSize_; |    return p->dataSize_; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | float DigitalRadialDataArrayPacket::start_angle(uint16_t r) const | ||||||
|  | { | ||||||
|  |    return p->radial_[r].startAngle_ * 0.1f; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | float DigitalRadialDataArrayPacket::delta_angle(uint16_t r) const | ||||||
|  | { | ||||||
|  |    return p->radial_[r].deltaAngle_ * 0.1f; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | const std::vector<uint8_t>& | ||||||
|  | DigitalRadialDataArrayPacket::level(uint16_t r) const | ||||||
|  | { | ||||||
|  |    return p->radial_[r].level_; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| bool DigitalRadialDataArrayPacket::Parse(std::istream& is) | bool DigitalRadialDataArrayPacket::Parse(std::istream& is) | ||||||
| { | { | ||||||
|    bool   blockValid = true; |    bool   blockValid = true; | ||||||
|  | @ -143,6 +159,13 @@ bool DigitalRadialDataArrayPacket::Parse(std::istream& is) | ||||||
|             << logPrefix_ << "Invalid packet code: " << p->packetCode_; |             << logPrefix_ << "Invalid packet code: " << p->packetCode_; | ||||||
|          blockValid = false; |          blockValid = false; | ||||||
|       } |       } | ||||||
|  |       if (p->indexOfFirstRangeBin_ < 0 || p->indexOfFirstRangeBin_ > 230) | ||||||
|  |       { | ||||||
|  |          BOOST_LOG_TRIVIAL(warning) | ||||||
|  |             << logPrefix_ | ||||||
|  |             << "Invalid index of first range bin: " << p->indexOfFirstRangeBin_; | ||||||
|  |          blockValid = false; | ||||||
|  |       } | ||||||
|       if (p->numberOfRangeBins_ < 0 || p->numberOfRangeBins_ > 1840) |       if (p->numberOfRangeBins_ < 0 || p->numberOfRangeBins_ > 1840) | ||||||
|       { |       { | ||||||
|          BOOST_LOG_TRIVIAL(warning) |          BOOST_LOG_TRIVIAL(warning) | ||||||
|  |  | ||||||
|  | @ -104,14 +104,14 @@ int16_t ProductDescriptionBlock::block_divider() const | ||||||
|    return p->blockDivider_; |    return p->blockDivider_; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| int32_t ProductDescriptionBlock::latitude_of_radar() const | float ProductDescriptionBlock::latitude_of_radar() const | ||||||
| { | { | ||||||
|    return p->latitudeOfRadar_; |    return p->latitudeOfRadar_ * 0.001f; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| int32_t ProductDescriptionBlock::longitude_of_radar() const | float ProductDescriptionBlock::longitude_of_radar() const | ||||||
| { | { | ||||||
|    return p->longitudeOfRadar_; |    return p->longitudeOfRadar_ * 0.001f; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| int16_t ProductDescriptionBlock::height_of_radar() const | int16_t ProductDescriptionBlock::height_of_radar() const | ||||||
|  |  | ||||||
|  | @ -58,7 +58,7 @@ uint16_t ProductSymbologyBlock::number_of_layers() const | ||||||
|    return p->numberOfLayers_; |    return p->numberOfLayers_; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| const std::vector<std::shared_ptr<Packet>>& | std::vector<std::shared_ptr<Packet>> | ||||||
| ProductSymbologyBlock::packet_list(uint16_t i) const | ProductSymbologyBlock::packet_list(uint16_t i) const | ||||||
| { | { | ||||||
|    return p->layerList_[i]; |    return p->layerList_[i]; | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Dan Paulat
						Dan Paulat