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;
|
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