mirror of
https://github.com/ciphervance/supercell-wx.git
synced 2025-10-30 21:00:05 +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;
|
||||
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;
|
||||
|
||||
bool Parse(std::istream& is) override;
|
||||
|
|
|
|||
|
|
@ -27,8 +27,8 @@ public:
|
|||
ProductDescriptionBlock& operator=(ProductDescriptionBlock&&) noexcept;
|
||||
|
||||
int16_t block_divider() const;
|
||||
int32_t latitude_of_radar() const;
|
||||
int32_t longitude_of_radar() const;
|
||||
float latitude_of_radar() const;
|
||||
float longitude_of_radar() const;
|
||||
int16_t height_of_radar() const;
|
||||
int16_t product_code() const;
|
||||
uint16_t operational_mode() const;
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ public:
|
|||
int16_t block_divider() 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;
|
||||
|
||||
|
|
|
|||
|
|
@ -108,6 +108,22 @@ size_t DigitalRadialDataArrayPacket::data_size() const
|
|||
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 blockValid = true;
|
||||
|
|
@ -143,6 +159,13 @@ bool DigitalRadialDataArrayPacket::Parse(std::istream& is)
|
|||
<< logPrefix_ << "Invalid packet code: " << p->packetCode_;
|
||||
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)
|
||||
{
|
||||
BOOST_LOG_TRIVIAL(warning)
|
||||
|
|
|
|||
|
|
@ -104,14 +104,14 @@ int16_t ProductDescriptionBlock::block_divider() const
|
|||
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
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ uint16_t ProductSymbologyBlock::number_of_layers() const
|
|||
return p->numberOfLayers_;
|
||||
}
|
||||
|
||||
const std::vector<std::shared_ptr<Packet>>&
|
||||
std::vector<std::shared_ptr<Packet>>
|
||||
ProductSymbologyBlock::packet_list(uint16_t i) const
|
||||
{
|
||||
return p->layerList_[i];
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue