mirror of
https://github.com/esphome/esphome.git
synced 2026-05-27 20:53:46 +08:00
[esp8266] Use C++17 nested namespaces and constexpr (#12096)
This commit is contained in:
@@ -7,8 +7,6 @@
|
|||||||
extern const uint8_t ESPHOME_ESP8266_GPIO_INITIAL_MODE[16];
|
extern const uint8_t ESPHOME_ESP8266_GPIO_INITIAL_MODE[16];
|
||||||
extern const uint8_t ESPHOME_ESP8266_GPIO_INITIAL_LEVEL[16];
|
extern const uint8_t ESPHOME_ESP8266_GPIO_INITIAL_LEVEL[16];
|
||||||
|
|
||||||
namespace esphome {
|
namespace esphome::esp8266 {} // namespace esphome::esp8266
|
||||||
namespace esp8266 {} // namespace esp8266
|
|
||||||
} // namespace esphome
|
|
||||||
|
|
||||||
#endif // USE_ESP8266
|
#endif // USE_ESP8266
|
||||||
|
|||||||
@@ -3,8 +3,7 @@
|
|||||||
#include "gpio.h"
|
#include "gpio.h"
|
||||||
#include "esphome/core/log.h"
|
#include "esphome/core/log.h"
|
||||||
|
|
||||||
namespace esphome {
|
namespace esphome::esp8266 {
|
||||||
namespace esp8266 {
|
|
||||||
|
|
||||||
static const char *const TAG = "esp8266";
|
static const char *const TAG = "esp8266";
|
||||||
|
|
||||||
@@ -110,9 +109,11 @@ void ESP8266GPIOPin::digital_write(bool value) {
|
|||||||
}
|
}
|
||||||
void ESP8266GPIOPin::detach_interrupt() const { detachInterrupt(pin_); }
|
void ESP8266GPIOPin::detach_interrupt() const { detachInterrupt(pin_); }
|
||||||
|
|
||||||
} // namespace esp8266
|
} // namespace esphome::esp8266
|
||||||
|
|
||||||
using namespace esp8266;
|
namespace esphome {
|
||||||
|
|
||||||
|
using esp8266::ISRPinArg;
|
||||||
|
|
||||||
bool IRAM_ATTR ISRInternalGPIOPin::digital_read() {
|
bool IRAM_ATTR ISRInternalGPIOPin::digital_read() {
|
||||||
auto *arg = reinterpret_cast<ISRPinArg *>(this->arg_);
|
auto *arg = reinterpret_cast<ISRPinArg *>(this->arg_);
|
||||||
|
|||||||
@@ -5,8 +5,7 @@
|
|||||||
#include "esphome/core/hal.h"
|
#include "esphome/core/hal.h"
|
||||||
#include <Arduino.h>
|
#include <Arduino.h>
|
||||||
|
|
||||||
namespace esphome {
|
namespace esphome::esp8266 {
|
||||||
namespace esp8266 {
|
|
||||||
|
|
||||||
class ESP8266GPIOPin : public InternalGPIOPin {
|
class ESP8266GPIOPin : public InternalGPIOPin {
|
||||||
public:
|
public:
|
||||||
@@ -33,7 +32,6 @@ class ESP8266GPIOPin : public InternalGPIOPin {
|
|||||||
gpio::Flags flags_{};
|
gpio::Flags flags_{};
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace esp8266
|
} // namespace esphome::esp8266
|
||||||
} // namespace esphome
|
|
||||||
|
|
||||||
#endif // USE_ESP8266
|
#endif // USE_ESP8266
|
||||||
|
|||||||
@@ -15,24 +15,24 @@ extern "C" {
|
|||||||
#include <cstring>
|
#include <cstring>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
namespace esphome {
|
namespace esphome::esp8266 {
|
||||||
namespace esp8266 {
|
|
||||||
|
|
||||||
static const char *const TAG = "esp8266.preferences";
|
static const char *const TAG = "esp8266.preferences";
|
||||||
|
|
||||||
static bool s_prevent_write = false; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables)
|
|
||||||
static uint32_t *s_flash_storage = nullptr; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables)
|
static uint32_t *s_flash_storage = nullptr; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables)
|
||||||
|
static bool s_prevent_write = false; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables)
|
||||||
static bool s_flash_dirty = false; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables)
|
static bool s_flash_dirty = false; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables)
|
||||||
|
|
||||||
static const uint32_t ESP_RTC_USER_MEM_START = 0x60001200;
|
static constexpr uint32_t ESP_RTC_USER_MEM_START = 0x60001200;
|
||||||
|
static constexpr uint32_t ESP_RTC_USER_MEM_SIZE_WORDS = 128;
|
||||||
|
static constexpr uint32_t ESP_RTC_USER_MEM_SIZE_BYTES = ESP_RTC_USER_MEM_SIZE_WORDS * 4;
|
||||||
|
|
||||||
#define ESP_RTC_USER_MEM ((uint32_t *) ESP_RTC_USER_MEM_START)
|
#define ESP_RTC_USER_MEM ((uint32_t *) ESP_RTC_USER_MEM_START)
|
||||||
static const uint32_t ESP_RTC_USER_MEM_SIZE_WORDS = 128;
|
|
||||||
static const uint32_t ESP_RTC_USER_MEM_SIZE_BYTES = ESP_RTC_USER_MEM_SIZE_WORDS * 4;
|
|
||||||
|
|
||||||
#ifdef USE_ESP8266_PREFERENCES_FLASH
|
#ifdef USE_ESP8266_PREFERENCES_FLASH
|
||||||
static const uint32_t ESP8266_FLASH_STORAGE_SIZE = 128;
|
static constexpr uint32_t ESP8266_FLASH_STORAGE_SIZE = 128;
|
||||||
#else
|
#else
|
||||||
static const uint32_t ESP8266_FLASH_STORAGE_SIZE = 64;
|
static constexpr uint32_t ESP8266_FLASH_STORAGE_SIZE = 64;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static inline bool esp_rtc_user_mem_read(uint32_t index, uint32_t *dest) {
|
static inline bool esp_rtc_user_mem_read(uint32_t index, uint32_t *dest) {
|
||||||
@@ -284,10 +284,10 @@ void setup_preferences() {
|
|||||||
}
|
}
|
||||||
void preferences_prevent_write(bool prevent) { s_prevent_write = prevent; }
|
void preferences_prevent_write(bool prevent) { s_prevent_write = prevent; }
|
||||||
|
|
||||||
} // namespace esp8266
|
} // namespace esphome::esp8266
|
||||||
|
|
||||||
|
namespace esphome {
|
||||||
ESPPreferences *global_preferences; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables)
|
ESPPreferences *global_preferences; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables)
|
||||||
|
|
||||||
} // namespace esphome
|
} // namespace esphome
|
||||||
|
|
||||||
#endif // USE_ESP8266
|
#endif // USE_ESP8266
|
||||||
|
|||||||
@@ -2,13 +2,11 @@
|
|||||||
|
|
||||||
#ifdef USE_ESP8266
|
#ifdef USE_ESP8266
|
||||||
|
|
||||||
namespace esphome {
|
namespace esphome::esp8266 {
|
||||||
namespace esp8266 {
|
|
||||||
|
|
||||||
void setup_preferences();
|
void setup_preferences();
|
||||||
void preferences_prevent_write(bool prevent);
|
void preferences_prevent_write(bool prevent);
|
||||||
|
|
||||||
} // namespace esp8266
|
} // namespace esphome::esp8266
|
||||||
} // namespace esphome
|
|
||||||
|
|
||||||
#endif // USE_ESP8266
|
#endif // USE_ESP8266
|
||||||
|
|||||||
Reference in New Issue
Block a user