Starting to parse alphanumeric data from storm tracking information

This commit is contained in:
Dan Paulat 2024-02-20 23:27:08 -06:00
parent 2cd76d7da4
commit 0415223571
4 changed files with 156 additions and 1 deletions

View file

@ -2,6 +2,12 @@
#include <scwx/wsr88d/rpg/graphic_product_message.hpp>
#include <optional>
#include <units/angle.h>
#include <units/length.h>
#include <units/velocity.h>
namespace scwx
{
namespace wsr88d
@ -12,6 +18,27 @@ namespace rpg
class StormTrackingInformationMessage : public GraphicProductMessage
{
public:
struct StiRecord
{
struct Position
{
std::optional<units::angle::degrees<float>> azimuth_ {};
std::optional<units::length::nautical_miles<float>> range_ {};
};
Position currentPosition_ {};
std::optional<units::angle::degrees<float>> direction_;
std::optional<units::velocity::knots<float>> speed_;
std::array<Position, 4> forecastPosition_ {};
std::optional<units::length::nautical_miles<float>> forecastError_ {};
std::optional<units::length::nautical_miles<float>> meanError_ {};
std::optional<std::int16_t> maxDbz_ {};
std::optional<units::length::feet<float>> maxDbzHeight_ {};
};
explicit StormTrackingInformationMessage();
~StormTrackingInformationMessage();

View file

@ -31,6 +31,8 @@ public:
size_t data_size() const override;
const std::vector<std::vector<std::string>>& page_list() const;
bool Parse(std::istream& is);
bool Parse(std::istream& is, bool skipHeader);