#include #include static const char* RF24_CHANNEL_NAMES[] = { "LOW", "MID", "HIGH" }; String RF24ChannelHelpers::nameFromValue(const RF24Channel& value) { const size_t ix = static_cast(value); if (ix >= size(RF24_CHANNEL_NAMES)) { Serial.println(F("ERROR: unknown RF24 channel label - this is a bug!")); return nameFromValue(defaultValue()); } return RF24_CHANNEL_NAMES[ix]; } RF24Channel RF24ChannelHelpers::valueFromName(const String& name) { for (size_t i = 0; i < size(RF24_CHANNEL_NAMES); ++i) { if (name == RF24_CHANNEL_NAMES[i]) { return static_cast(i); } } Serial.printf_P(PSTR("WARN: tried to fetch unknown RF24 channel: %s, using default.\n"), name.c_str()); return defaultValue(); } RF24Channel RF24ChannelHelpers::defaultValue() { return RF24Channel::RF24_HIGH; } std::vector RF24ChannelHelpers::allValues() { std::vector vec; for (size_t i = 0; i < size(RF24_CHANNEL_NAMES); ++i) { vec.push_back(valueFromName(RF24_CHANNEL_NAMES[i])); } return vec; }