diff --git a/src/core/radio/max_power_table.hpp b/src/core/radio/max_power_table.hpp index 2204859e9..7b38d9c21 100644 --- a/src/core/radio/max_power_table.hpp +++ b/src/core/radio/max_power_table.hpp @@ -37,7 +37,7 @@ namespace ot { class MaxPowerTable { public: - static const int8_t kPowerDefault = 30; ///< Default power 1 watt (30 dBm). + static constexpr int8_t kPowerDefault = 30; ///< Default power 1 watt (30 dBm). MaxPowerTable(void) { memset(mPowerTable, kPowerDefault, sizeof(mPowerTable)); } diff --git a/src/core/radio/radio.hpp b/src/core/radio/radio.hpp index f6a69e145..3deea9bd4 100644 --- a/src/core/radio/radio.hpp +++ b/src/core/radio/radio.hpp @@ -44,27 +44,21 @@ namespace ot { -enum -{ - kUsPerTenSymbols = OT_US_PER_TEN_SYMBOLS, ///< The microseconds per 10 symbols. +static constexpr uint32_t kUsPerTenSymbols = OT_US_PER_TEN_SYMBOLS; ///< The microseconds per 10 symbols. #if OPENTHREAD_CONFIG_MAC_CSL_RECEIVER_ENABLE - /** - * Minimum CSL period supported in units of 10 symbols. - * - */ - kMinCslPeriod = OPENTHREAD_CONFIG_MAC_CSL_MIN_PERIOD * 1000 / kUsPerTenSymbols, - kMaxCslTimeout = OPENTHREAD_CONFIG_MAC_CSL_MAX_TIMEOUT +/** + * Minimum CSL period supported in units of 10 symbols. + * + */ +static constexpr uint64_t kMinCslPeriod = OPENTHREAD_CONFIG_MAC_CSL_MIN_PERIOD * 1000 / kUsPerTenSymbols; +static constexpr uint64_t kMaxCslTimeout = OPENTHREAD_CONFIG_MAC_CSL_MAX_TIMEOUT; #endif -}; #if OPENTHREAD_CONFIG_MAC_CSL_RECEIVER_ENABLE -enum : uint8_t -{ - kCslWorstCrystalPpm = 255, ///< Worst possible crystal accuracy, in units of ± ppm. - kCslWorstUncertainty = 255, ///< Worst possible scheduling uncertainty, in units of 10 us. - kUsPerUncertUnit = 10, ///< Number of microseconds by uncertainty unit. -}; +static constexpr uint8_t kCslWorstCrystalPpm = 255; ///< Worst possible crystal accuracy, in units of ± ppm. +static constexpr uint8_t kCslWorstUncertainty = 255; ///< Worst possible scheduling uncertainty, in units of 10 us. +static constexpr uint8_t kUsPerUncertUnit = 10; ///< Number of microseconds by uncertainty unit. #endif /** @@ -86,38 +80,32 @@ class Radio : public InstanceLocator, private NonCopyable friend class Instance; public: - /** - * This enumeration defines the IEEE 802.15.4 channel related parameters. It also - * supports proprietary channel parameters defined by platform. - */ - enum - { #if (OPENTHREAD_CONFIG_RADIO_2P4GHZ_OQPSK_SUPPORT && OPENTHREAD_CONFIG_RADIO_915MHZ_OQPSK_SUPPORT) - kNumChannelPages = 2, - kSupportedChannels = OT_RADIO_915MHZ_OQPSK_CHANNEL_MASK | OT_RADIO_2P4GHZ_OQPSK_CHANNEL_MASK, - kChannelMin = OT_RADIO_915MHZ_OQPSK_CHANNEL_MIN, - kChannelMax = OT_RADIO_2P4GHZ_OQPSK_CHANNEL_MAX, - kSupportedChannelPages = OT_RADIO_CHANNEL_PAGE_0_MASK | OT_RADIO_CHANNEL_PAGE_2_MASK, + static constexpr uint16_t kNumChannelPages = 2; + static constexpr uint32_t kSupportedChannels = + OT_RADIO_915MHZ_OQPSK_CHANNEL_MASK | OT_RADIO_2P4GHZ_OQPSK_CHANNEL_MASK; + static constexpr uint8_t kChannelMin = OT_RADIO_915MHZ_OQPSK_CHANNEL_MIN; + static constexpr uint8_t kChannelMax = OT_RADIO_2P4GHZ_OQPSK_CHANNEL_MAX; + static constexpr uint32_t kSupportedChannelPages = OT_RADIO_CHANNEL_PAGE_0_MASK | OT_RADIO_CHANNEL_PAGE_2_MASK; #elif OPENTHREAD_CONFIG_RADIO_915MHZ_OQPSK_SUPPORT - kNumChannelPages = 1, - kSupportedChannels = OT_RADIO_915MHZ_OQPSK_CHANNEL_MASK, - kChannelMin = OT_RADIO_915MHZ_OQPSK_CHANNEL_MIN, - kChannelMax = OT_RADIO_915MHZ_OQPSK_CHANNEL_MAX, - kSupportedChannelPages = OT_RADIO_CHANNEL_PAGE_2_MASK, + static constexpr uint16_t kNumChannelPages = 1; + static constexpr uint32_t kSupportedChannels = OT_RADIO_915MHZ_OQPSK_CHANNEL_MASK; + static constexpr uint8_t kChannelMin = OT_RADIO_915MHZ_OQPSK_CHANNEL_MIN; + static constexpr uint8_t kChannelMax = OT_RADIO_915MHZ_OQPSK_CHANNEL_MAX; + static constexpr uint32_t kSupportedChannelPages = OT_RADIO_CHANNEL_PAGE_2_MASK; #elif OPENTHREAD_CONFIG_RADIO_2P4GHZ_OQPSK_SUPPORT - kNumChannelPages = 1, - kSupportedChannels = OT_RADIO_2P4GHZ_OQPSK_CHANNEL_MASK, - kChannelMin = OT_RADIO_2P4GHZ_OQPSK_CHANNEL_MIN, - kChannelMax = OT_RADIO_2P4GHZ_OQPSK_CHANNEL_MAX, - kSupportedChannelPages = OT_RADIO_CHANNEL_PAGE_0_MASK, + static constexpr uint16_t kNumChannelPages = 1; + static constexpr uint32_t kSupportedChannels = OT_RADIO_2P4GHZ_OQPSK_CHANNEL_MASK; + static constexpr uint8_t kChannelMin = OT_RADIO_2P4GHZ_OQPSK_CHANNEL_MIN; + static constexpr uint8_t kChannelMax = OT_RADIO_2P4GHZ_OQPSK_CHANNEL_MAX; + static constexpr uint32_t kSupportedChannelPages = OT_RADIO_CHANNEL_PAGE_0_MASK; #elif OPENTHREAD_CONFIG_PLATFORM_RADIO_PROPRIETARY_SUPPORT - kNumChannelPages = 1, - kSupportedChannels = OPENTHREAD_CONFIG_PLATFORM_RADIO_PROPRIETARY_CHANNEL_MASK, - kChannelMin = OPENTHREAD_CONFIG_PLATFORM_RADIO_PROPRIETARY_CHANNEL_MIN, - kChannelMax = OPENTHREAD_CONFIG_PLATFORM_RADIO_PROPRIETARY_CHANNEL_MAX, - kSupportedChannelPages = (1U << OPENTHREAD_CONFIG_PLATFORM_RADIO_PROPRIETARY_CHANNEL_PAGE), + static constexpr uint16_t kNumChannelPages = 1; + static constexpr uint32_t kSupportedChannels = OPENTHREAD_CONFIG_PLATFORM_RADIO_PROPRIETARY_CHANNEL_MASK; + static constexpr uint8_t kChannelMin = OPENTHREAD_CONFIG_PLATFORM_RADIO_PROPRIETARY_CHANNEL_MIN; + static constexpr uint8_t kChannelMax = OPENTHREAD_CONFIG_PLATFORM_RADIO_PROPRIETARY_CHANNEL_MAX; + static constexpr uint32_t kSupportedChannelPages = (1 << OPENTHREAD_CONFIG_PLATFORM_RADIO_PROPRIETARY_CHANNEL_PAGE); #endif - }; static_assert((OPENTHREAD_CONFIG_RADIO_2P4GHZ_OQPSK_SUPPORT || OPENTHREAD_CONFIG_RADIO_915MHZ_OQPSK_SUPPORT || OPENTHREAD_CONFIG_PLATFORM_RADIO_PROPRIETARY_SUPPORT), diff --git a/src/core/radio/trel_interface.hpp b/src/core/radio/trel_interface.hpp index ea9fcf19d..1d84f7f10 100644 --- a/src/core/radio/trel_interface.hpp +++ b/src/core/radio/trel_interface.hpp @@ -108,10 +108,7 @@ public: void HandleReceived(uint8_t *aBuffer, uint16_t aLength); private: - enum - { - kUdpPort = 19788, // UDP port (same as MLE port). - }; + static constexpr uint16_t kUdpPort = 19788; // UDP port (same as MLE port). void CreateMulticastIp6Address(Ip6::Address &aIp6Address); diff --git a/src/core/radio/trel_link.hpp b/src/core/radio/trel_link.hpp index 15d183f68..617ece7d9 100644 --- a/src/core/radio/trel_link.hpp +++ b/src/core/radio/trel_link.hpp @@ -73,11 +73,8 @@ class Link : public InstanceLocator friend class Interface; public: - enum - { - kMtuSize = 1280 - 48 - sizeof(Header), ///< MTU size for TREL frame. - kFcsSize = 0, ///< FCS size for TREL frame. - }; + static constexpr uint16_t kMtuSize = 1280 - 48 - sizeof(Header); ///< MTU size for TREL frame. + static constexpr uint8_t kFcsSize = 0; ///< FCS size for TREL frame. /** * This constructor initializes the `Link` object. @@ -150,13 +147,10 @@ public: void Send(void); private: - enum - { - kMaxHeaderSize = sizeof(Header), - k154AckFrameSize = 3 + kFcsSize, - kRxRssi = -20, // The RSSI value used for received frames on TREL radio link. - kAckWaitWindow = 750, // (in msec) - }; + static constexpr uint16_t kMaxHeaderSize = sizeof(Header); + static constexpr uint16_t k154AckFrameSize = 3 + kFcsSize; + static constexpr int8_t kRxRssi = -20; // The RSSI value used for received frames on TREL radio link. + static constexpr uint32_t kAckWaitWindow = 750; // (in msec) enum State : uint8_t { diff --git a/src/core/radio/trel_packet.hpp b/src/core/radio/trel_packet.hpp index 34ec3f4ce..31c7ab927 100644 --- a/src/core/radio/trel_packet.hpp +++ b/src/core/radio/trel_packet.hpp @@ -58,7 +58,7 @@ public: * This enumeration defines packet types. * */ - enum Type + enum Type : uint8_t { kTypeBroadcast = 0, ///< A TREL broadcast packet. kTypeUnicast = 1, ///< A TREL unicast packet. @@ -69,16 +69,13 @@ public: * This enumeration represents Ack Mode field in TREL header. * */ - enum AckMode + enum AckMode : uint8_t { kNoAck, ///< No TREL Ack is requested. kAckRequested, ///< A TREL Ack is requested. }; - enum - { - kInfoStringSize = 128, ///< Max chars needed for the info string representation (@sa ToInfoString()). - }; + static constexpr uint16_t kInfoStringSize = 128; ///< Max chars for the info string (@sa ToInfoString()). /** * This type defines the fixed-length `String` object returned from `ToString()` method. @@ -237,13 +234,10 @@ public: InfoString ToString(void) const; private: - enum - { - kTypeMask = (3 << 0), // Bits 0-1 specify packet `Type` - kAckModeFlag = (1 << 2), // Bit 2 indicate "ack mode" (TREL ack requested or not). - kVersionMask = (7 << 5), // Bits 5-7 specify the version. - kVersion = (0 << 5), // Current TREL header version. - }; + static constexpr uint8_t kTypeMask = (3 << 0); // Bits 0-1 specify packet `Type` + static constexpr uint8_t kAckModeFlag = (1 << 2); // Bit 2 indicate "ack mode" (TREL ack requested or not). + static constexpr uint8_t kVersionMask = (7 << 5); // Bits 5-7 specify the version. + static constexpr uint8_t kVersion = (0 << 5); // Current TREL header version. // All header fields are big-endian.