Update radar product and elevation selection when active map changes

This commit is contained in:
Dan Paulat 2021-11-28 10:44:34 -06:00
parent b78011a2d3
commit 337296ac3c
8 changed files with 159 additions and 31 deletions

View file

@ -9,7 +9,16 @@ namespace scwx
namespace common
{
const std::string LEVEL2_GROUP_ID = "L2";
enum class RadarProductGroup
{
Level2,
Level3,
Unknown
};
typedef util::Iterator<RadarProductGroup,
RadarProductGroup::Level2,
RadarProductGroup::Level3>
RadarProductGroupIterator;
enum class Level2Product
{
@ -27,10 +36,13 @@ typedef util::Iterator<Level2Product,
Level2Product::ClutterFilterPowerRemoved>
Level2ProductIterator;
const std::string& GetRadarProductGroupName(RadarProductGroup group);
const RadarProductGroup GetRadarProductGroup(const std::string& name);
const std::string& GetLevel2Name(Level2Product product);
const std::string& GetLevel2Description(Level2Product product);
const std::string& GetLevel2Palette(Level2Product product);
const Level2Product GetLevel2Product(const std::string& id);
const Level2Product GetLevel2Product(const std::string& name);
} // namespace common
} // namespace scwx

View file

@ -7,6 +7,11 @@ namespace scwx
namespace common
{
static const std::unordered_map<RadarProductGroup, std::string>
productGroupName_ {{RadarProductGroup::Level2, "L2"},
{RadarProductGroup::Level3, "L3"},
{RadarProductGroup::Unknown, "?"}};
static const std::unordered_map<Level2Product, std::string> level2Name_ {
{Level2Product::Reflectivity, "REF"},
{Level2Product::Velocity, "VEL"},
@ -37,6 +42,30 @@ static const std::unordered_map<Level2Product, std::string> level2Palette_ {
{Level2Product::ClutterFilterPowerRemoved, "???"},
{Level2Product::Unknown, "???"}};
const std::string& GetProductGroupName(RadarProductGroup group)
{
return productGroupName_.at(group);
}
const RadarProductGroup GetProductGroup(const std::string& name)
{
auto result = std::find_if(
productGroupName_.cbegin(),
productGroupName_.cend(),
[&](const std::pair<RadarProductGroup, std::string>& pair) -> bool {
return pair.second == name;
});
if (result != productGroupName_.cend())
{
return result->first;
}
else
{
return RadarProductGroup::Unknown;
}
}
const std::string& GetLevel2Name(Level2Product product)
{
return level2Name_.at(product);