Support level 3 radial counts other than 360/720

Fixes #49
This commit is contained in:
Dan Paulat 2023-06-02 00:18:24 -05:00
parent 869dee8288
commit 9c442574ae
3 changed files with 138 additions and 31 deletions

View file

@ -8,7 +8,8 @@ namespace common
enum class RadialSize
{
_0_5Degree,
_1Degree
_1Degree,
NonStandard
};
} // namespace common

View file

@ -20,19 +20,20 @@ public:
explicit GenericRadialDataPacket();
~GenericRadialDataPacket();
GenericRadialDataPacket(const GenericRadialDataPacket&) = delete;
GenericRadialDataPacket(const GenericRadialDataPacket&) = delete;
GenericRadialDataPacket& operator=(const GenericRadialDataPacket&) = delete;
GenericRadialDataPacket(GenericRadialDataPacket&&) noexcept;
GenericRadialDataPacket& operator=(GenericRadialDataPacket&&) noexcept;
virtual std::uint16_t index_of_first_range_bin() const = 0;
virtual std::int16_t i_center_of_sweep() const = 0;
virtual std::int16_t j_center_of_sweep() const = 0;
virtual std::uint16_t number_of_radials() const = 0;
virtual std::uint16_t number_of_range_bins() const = 0;
virtual float start_angle(std::uint16_t r) const = 0;
virtual float delta_angle(std::uint16_t r) const = 0;
virtual int16_t i_center_of_sweep() const = 0;
virtual int16_t j_center_of_sweep() const = 0;
virtual uint16_t number_of_radials() const = 0;
virtual uint16_t number_of_range_bins() const = 0;
virtual float start_angle(uint16_t r) const = 0;
virtual const std::vector<uint8_t>& level(uint16_t r) const = 0;
virtual const std::vector<std::uint8_t>& level(std::uint16_t r) const = 0;
private:
std::unique_ptr<GenericRadialDataPacketImpl> p;