1
0
mirror of https://github.com/esphome/esphome.git synced 2025-11-19 16:25:50 +00:00

Compare commits

..

1 Commits

Author SHA1 Message Date
J. Nick Koston
b5ebe91150 [api] Optimize APINoiseContext memory usage by removing shared_ptr overhead 2025-11-18 15:24:50 -06:00
124 changed files with 469 additions and 293 deletions

View File

@@ -90,8 +90,8 @@ static const int CAMERA_STOP_STREAM = 5000;
APIConnection::APIConnection(std::unique_ptr<socket::Socket> sock, APIServer *parent)
: parent_(parent), initial_state_iterator_(this), list_entities_iterator_(this) {
#if defined(USE_API_PLAINTEXT) && defined(USE_API_NOISE)
auto noise_ctx = parent->get_noise_ctx();
if (noise_ctx->has_psk()) {
auto &noise_ctx = parent->get_noise_ctx();
if (noise_ctx.has_psk()) {
this->helper_ =
std::unique_ptr<APIFrameHelper>{new APINoiseFrameHelper(std::move(sock), noise_ctx, &this->client_info_)};
} else {

View File

@@ -527,7 +527,7 @@ APIError APINoiseFrameHelper::init_handshake_() {
if (aerr != APIError::OK)
return aerr;
const auto &psk = ctx_->get_psk();
const auto &psk = this->ctx_.get_psk();
err = noise_handshakestate_set_pre_shared_key(handshake_, psk.data(), psk.size());
aerr = handle_noise_error_(err, LOG_STR("noise_handshakestate_set_pre_shared_key"),
APIError::HANDSHAKESTATE_SETUP_FAILED);

View File

@@ -9,9 +9,8 @@ namespace esphome::api {
class APINoiseFrameHelper final : public APIFrameHelper {
public:
APINoiseFrameHelper(std::unique_ptr<socket::Socket> socket, std::shared_ptr<APINoiseContext> ctx,
const ClientInfo *client_info)
: APIFrameHelper(std::move(socket), client_info), ctx_(std::move(ctx)) {
APINoiseFrameHelper(std::unique_ptr<socket::Socket> socket, APINoiseContext &ctx, const ClientInfo *client_info)
: APIFrameHelper(std::move(socket), client_info), ctx_(ctx) {
// Noise header structure:
// Pos 0: indicator (0x01)
// Pos 1-2: encrypted payload size (16-bit big-endian)
@@ -41,8 +40,8 @@ class APINoiseFrameHelper final : public APIFrameHelper {
NoiseCipherState *send_cipher_{nullptr};
NoiseCipherState *recv_cipher_{nullptr};
// Shared pointer (8 bytes on 32-bit = 4 bytes control block pointer + 4 bytes object pointer)
std::shared_ptr<APINoiseContext> ctx_;
// Reference to noise context (4 bytes on 32-bit)
APINoiseContext &ctx_;
// Vector (12 bytes on 32-bit)
std::vector<uint8_t> prologue_;

View File

@@ -227,8 +227,8 @@ void APIServer::dump_config() {
" Max connections: %u",
network::get_use_address(), this->port_, this->listen_backlog_, this->max_connections_);
#ifdef USE_API_NOISE
ESP_LOGCONFIG(TAG, " Noise encryption: %s", YESNO(this->noise_ctx_->has_psk()));
if (!this->noise_ctx_->has_psk()) {
ESP_LOGCONFIG(TAG, " Noise encryption: %s", YESNO(this->noise_ctx_.has_psk()));
if (!this->noise_ctx_.has_psk()) {
ESP_LOGCONFIG(TAG, " Supports encryption: YES");
}
#else
@@ -493,7 +493,7 @@ bool APIServer::save_noise_psk(psk_t psk, bool make_active) {
ESP_LOGW(TAG, "Key set in YAML");
return false;
#else
auto &old_psk = this->noise_ctx_->get_psk();
auto &old_psk = this->noise_ctx_.get_psk();
if (std::equal(old_psk.begin(), old_psk.end(), psk.begin())) {
ESP_LOGW(TAG, "New PSK matches old");
return true;

View File

@@ -54,8 +54,8 @@ class APIServer : public Component, public Controller {
#ifdef USE_API_NOISE
bool save_noise_psk(psk_t psk, bool make_active = true);
bool clear_noise_psk(bool make_active = true);
void set_noise_psk(psk_t psk) { noise_ctx_->set_psk(psk); }
std::shared_ptr<APINoiseContext> get_noise_ctx() { return noise_ctx_; }
void set_noise_psk(psk_t psk) { this->noise_ctx_.set_psk(psk); }
APINoiseContext &get_noise_ctx() { return this->noise_ctx_; }
#endif // USE_API_NOISE
void handle_disconnect(APIConnection *conn);
@@ -228,7 +228,7 @@ class APIServer : public Component, public Controller {
// 7 bytes used, 1 byte padding
#ifdef USE_API_NOISE
std::shared_ptr<APINoiseContext> noise_ctx_ = std::make_shared<APINoiseContext>();
APINoiseContext noise_ctx_;
ESPPreferenceObject noise_pref_;
#endif // USE_API_NOISE
};

View File

@@ -13,16 +13,14 @@ static const char *const TAG = "captive_portal";
void CaptivePortal::handle_config(AsyncWebServerRequest *request) {
AsyncResponseStream *stream = request->beginResponseStream(ESPHOME_F("application/json"));
stream->addHeader(ESPHOME_F("cache-control"), ESPHOME_F("public, max-age=0, must-revalidate"));
char mac_s[18];
const char *mac_str = get_mac_address_pretty_into_buffer(mac_s);
#ifdef USE_ESP8266
stream->print(ESPHOME_F("{\"mac\":\""));
stream->print(mac_str);
stream->print(get_mac_address_pretty().c_str());
stream->print(ESPHOME_F("\",\"name\":\""));
stream->print(App.get_name().c_str());
stream->print(ESPHOME_F("\",\"aps\":[{}"));
#else
stream->printf(R"({"mac":"%s","name":"%s","aps":[{})", mac_str, App.get_name().c_str());
stream->printf(R"({"mac":"%s","name":"%s","aps":[{})", get_mac_address_pretty().c_str(), App.get_name().c_str());
#endif
for (auto &scan : wifi::global_wifi_component->get_scan_result()) {

View File

@@ -4,7 +4,8 @@
#include "esphome/core/component.h"
#include "ld2410.h"
namespace esphome::ld2410 {
namespace esphome {
namespace ld2410 {
template<typename... Ts> class BluetoothPasswordSetAction : public Action<Ts...> {
public:
@@ -17,4 +18,5 @@ template<typename... Ts> class BluetoothPasswordSetAction : public Action<Ts...>
LD2410Component *ld2410_comp_;
};
} // namespace esphome::ld2410
} // namespace ld2410
} // namespace esphome

View File

@@ -1,7 +1,9 @@
#include "factory_reset_button.h"
namespace esphome::ld2410 {
namespace esphome {
namespace ld2410 {
void FactoryResetButton::press_action() { this->parent_->factory_reset(); }
} // namespace esphome::ld2410
} // namespace ld2410
} // namespace esphome

View File

@@ -3,7 +3,8 @@
#include "esphome/components/button/button.h"
#include "../ld2410.h"
namespace esphome::ld2410 {
namespace esphome {
namespace ld2410 {
class FactoryResetButton : public button::Button, public Parented<LD2410Component> {
public:
@@ -13,4 +14,5 @@ class FactoryResetButton : public button::Button, public Parented<LD2410Componen
void press_action() override;
};
} // namespace esphome::ld2410
} // namespace ld2410
} // namespace esphome

View File

@@ -1,7 +1,9 @@
#include "query_button.h"
namespace esphome::ld2410 {
namespace esphome {
namespace ld2410 {
void QueryButton::press_action() { this->parent_->read_all_info(); }
} // namespace esphome::ld2410
} // namespace ld2410
} // namespace esphome

View File

@@ -3,7 +3,8 @@
#include "esphome/components/button/button.h"
#include "../ld2410.h"
namespace esphome::ld2410 {
namespace esphome {
namespace ld2410 {
class QueryButton : public button::Button, public Parented<LD2410Component> {
public:
@@ -13,4 +14,5 @@ class QueryButton : public button::Button, public Parented<LD2410Component> {
void press_action() override;
};
} // namespace esphome::ld2410
} // namespace ld2410
} // namespace esphome

View File

@@ -1,7 +1,9 @@
#include "restart_button.h"
namespace esphome::ld2410 {
namespace esphome {
namespace ld2410 {
void RestartButton::press_action() { this->parent_->restart_and_read_all_info(); }
} // namespace esphome::ld2410
} // namespace ld2410
} // namespace esphome

View File

@@ -3,7 +3,8 @@
#include "esphome/components/button/button.h"
#include "../ld2410.h"
namespace esphome::ld2410 {
namespace esphome {
namespace ld2410 {
class RestartButton : public button::Button, public Parented<LD2410Component> {
public:
@@ -13,4 +14,5 @@ class RestartButton : public button::Button, public Parented<LD2410Component> {
void press_action() override;
};
} // namespace esphome::ld2410
} // namespace ld2410
} // namespace esphome

View File

@@ -9,7 +9,8 @@
#include "esphome/core/application.h"
namespace esphome::ld2410 {
namespace esphome {
namespace ld2410 {
static const char *const TAG = "ld2410";
@@ -781,4 +782,5 @@ void LD2410Component::set_gate_still_sensor(uint8_t gate, sensor::Sensor *s) {
}
#endif
} // namespace esphome::ld2410
} // namespace ld2410
} // namespace esphome

View File

@@ -29,7 +29,8 @@
#include <array>
namespace esphome::ld2410 {
namespace esphome {
namespace ld2410 {
using namespace ld24xx;
@@ -132,4 +133,5 @@ class LD2410Component : public Component, public uart::UARTDevice {
#endif
};
} // namespace esphome::ld2410
} // namespace ld2410
} // namespace esphome

View File

@@ -1,6 +1,7 @@
#include "gate_threshold_number.h"
namespace esphome::ld2410 {
namespace esphome {
namespace ld2410 {
GateThresholdNumber::GateThresholdNumber(uint8_t gate) : gate_(gate) {}
@@ -9,4 +10,5 @@ void GateThresholdNumber::control(float value) {
this->parent_->set_gate_threshold(this->gate_);
}
} // namespace esphome::ld2410
} // namespace ld2410
} // namespace esphome

View File

@@ -3,7 +3,8 @@
#include "esphome/components/number/number.h"
#include "../ld2410.h"
namespace esphome::ld2410 {
namespace esphome {
namespace ld2410 {
class GateThresholdNumber : public number::Number, public Parented<LD2410Component> {
public:
@@ -14,4 +15,5 @@ class GateThresholdNumber : public number::Number, public Parented<LD2410Compone
void control(float value) override;
};
} // namespace esphome::ld2410
} // namespace ld2410
} // namespace esphome

View File

@@ -1,10 +1,12 @@
#include "light_threshold_number.h"
namespace esphome::ld2410 {
namespace esphome {
namespace ld2410 {
void LightThresholdNumber::control(float value) {
this->publish_state(value);
this->parent_->set_light_out_control();
}
} // namespace esphome::ld2410
} // namespace ld2410
} // namespace esphome

View File

@@ -3,7 +3,8 @@
#include "esphome/components/number/number.h"
#include "../ld2410.h"
namespace esphome::ld2410 {
namespace esphome {
namespace ld2410 {
class LightThresholdNumber : public number::Number, public Parented<LD2410Component> {
public:
@@ -13,4 +14,5 @@ class LightThresholdNumber : public number::Number, public Parented<LD2410Compon
void control(float value) override;
};
} // namespace esphome::ld2410
} // namespace ld2410
} // namespace esphome

View File

@@ -1,10 +1,12 @@
#include "max_distance_timeout_number.h"
namespace esphome::ld2410 {
namespace esphome {
namespace ld2410 {
void MaxDistanceTimeoutNumber::control(float value) {
this->publish_state(value);
this->parent_->set_max_distances_timeout();
}
} // namespace esphome::ld2410
} // namespace ld2410
} // namespace esphome

View File

@@ -3,7 +3,8 @@
#include "esphome/components/number/number.h"
#include "../ld2410.h"
namespace esphome::ld2410 {
namespace esphome {
namespace ld2410 {
class MaxDistanceTimeoutNumber : public number::Number, public Parented<LD2410Component> {
public:
@@ -13,4 +14,5 @@ class MaxDistanceTimeoutNumber : public number::Number, public Parented<LD2410Co
void control(float value) override;
};
} // namespace esphome::ld2410
} // namespace ld2410
} // namespace esphome

View File

@@ -1,10 +1,12 @@
#include "baud_rate_select.h"
namespace esphome::ld2410 {
namespace esphome {
namespace ld2410 {
void BaudRateSelect::control(size_t index) {
this->publish_state(index);
this->parent_->set_baud_rate(this->option_at(index));
}
} // namespace esphome::ld2410
} // namespace ld2410
} // namespace esphome

View File

@@ -3,7 +3,8 @@
#include "esphome/components/select/select.h"
#include "../ld2410.h"
namespace esphome::ld2410 {
namespace esphome {
namespace ld2410 {
class BaudRateSelect : public select::Select, public Parented<LD2410Component> {
public:
@@ -13,4 +14,5 @@ class BaudRateSelect : public select::Select, public Parented<LD2410Component> {
void control(size_t index) override;
};
} // namespace esphome::ld2410
} // namespace ld2410
} // namespace esphome

View File

@@ -1,10 +1,12 @@
#include "distance_resolution_select.h"
namespace esphome::ld2410 {
namespace esphome {
namespace ld2410 {
void DistanceResolutionSelect::control(size_t index) {
this->publish_state(index);
this->parent_->set_distance_resolution(this->option_at(index));
}
} // namespace esphome::ld2410
} // namespace ld2410
} // namespace esphome

View File

@@ -3,7 +3,8 @@
#include "esphome/components/select/select.h"
#include "../ld2410.h"
namespace esphome::ld2410 {
namespace esphome {
namespace ld2410 {
class DistanceResolutionSelect : public select::Select, public Parented<LD2410Component> {
public:
@@ -13,4 +14,5 @@ class DistanceResolutionSelect : public select::Select, public Parented<LD2410Co
void control(size_t index) override;
};
} // namespace esphome::ld2410
} // namespace ld2410
} // namespace esphome

View File

@@ -1,10 +1,12 @@
#include "light_out_control_select.h"
namespace esphome::ld2410 {
namespace esphome {
namespace ld2410 {
void LightOutControlSelect::control(size_t index) {
this->publish_state(index);
this->parent_->set_light_out_control();
}
} // namespace esphome::ld2410
} // namespace ld2410
} // namespace esphome

View File

@@ -3,7 +3,8 @@
#include "esphome/components/select/select.h"
#include "../ld2410.h"
namespace esphome::ld2410 {
namespace esphome {
namespace ld2410 {
class LightOutControlSelect : public select::Select, public Parented<LD2410Component> {
public:
@@ -13,4 +14,5 @@ class LightOutControlSelect : public select::Select, public Parented<LD2410Compo
void control(size_t index) override;
};
} // namespace esphome::ld2410
} // namespace ld2410
} // namespace esphome

View File

@@ -1,10 +1,12 @@
#include "bluetooth_switch.h"
namespace esphome::ld2410 {
namespace esphome {
namespace ld2410 {
void BluetoothSwitch::write_state(bool state) {
this->publish_state(state);
this->parent_->set_bluetooth(state);
}
} // namespace esphome::ld2410
} // namespace ld2410
} // namespace esphome

View File

@@ -3,7 +3,8 @@
#include "esphome/components/switch/switch.h"
#include "../ld2410.h"
namespace esphome::ld2410 {
namespace esphome {
namespace ld2410 {
class BluetoothSwitch : public switch_::Switch, public Parented<LD2410Component> {
public:
@@ -13,4 +14,5 @@ class BluetoothSwitch : public switch_::Switch, public Parented<LD2410Component>
void write_state(bool state) override;
};
} // namespace esphome::ld2410
} // namespace ld2410
} // namespace esphome

View File

@@ -1,10 +1,12 @@
#include "engineering_mode_switch.h"
namespace esphome::ld2410 {
namespace esphome {
namespace ld2410 {
void EngineeringModeSwitch::write_state(bool state) {
this->publish_state(state);
this->parent_->set_engineering_mode(state);
}
} // namespace esphome::ld2410
} // namespace ld2410
} // namespace esphome

View File

@@ -3,7 +3,8 @@
#include "esphome/components/switch/switch.h"
#include "../ld2410.h"
namespace esphome::ld2410 {
namespace esphome {
namespace ld2410 {
class EngineeringModeSwitch : public switch_::Switch, public Parented<LD2410Component> {
public:
@@ -13,4 +14,5 @@ class EngineeringModeSwitch : public switch_::Switch, public Parented<LD2410Comp
void write_state(bool state) override;
};
} // namespace esphome::ld2410
} // namespace ld2410
} // namespace esphome

View File

@@ -1,7 +1,9 @@
#include "factory_reset_button.h"
namespace esphome::ld2412 {
namespace esphome {
namespace ld2412 {
void FactoryResetButton::press_action() { this->parent_->factory_reset(); }
} // namespace esphome::ld2412
} // namespace ld2412
} // namespace esphome

View File

@@ -3,7 +3,8 @@
#include "esphome/components/button/button.h"
#include "../ld2412.h"
namespace esphome::ld2412 {
namespace esphome {
namespace ld2412 {
class FactoryResetButton : public button::Button, public Parented<LD2412Component> {
public:
@@ -13,4 +14,5 @@ class FactoryResetButton : public button::Button, public Parented<LD2412Componen
void press_action() override;
};
} // namespace esphome::ld2412
} // namespace ld2412
} // namespace esphome

View File

@@ -1,7 +1,9 @@
#include "query_button.h"
namespace esphome::ld2412 {
namespace esphome {
namespace ld2412 {
void QueryButton::press_action() { this->parent_->read_all_info(); }
} // namespace esphome::ld2412
} // namespace ld2412
} // namespace esphome

View File

@@ -3,7 +3,8 @@
#include "esphome/components/button/button.h"
#include "../ld2412.h"
namespace esphome::ld2412 {
namespace esphome {
namespace ld2412 {
class QueryButton : public button::Button, public Parented<LD2412Component> {
public:
@@ -13,4 +14,5 @@ class QueryButton : public button::Button, public Parented<LD2412Component> {
void press_action() override;
};
} // namespace esphome::ld2412
} // namespace ld2412
} // namespace esphome

View File

@@ -1,7 +1,9 @@
#include "restart_button.h"
namespace esphome::ld2412 {
namespace esphome {
namespace ld2412 {
void RestartButton::press_action() { this->parent_->restart_and_read_all_info(); }
} // namespace esphome::ld2412
} // namespace ld2412
} // namespace esphome

View File

@@ -3,7 +3,8 @@
#include "esphome/components/button/button.h"
#include "../ld2412.h"
namespace esphome::ld2412 {
namespace esphome {
namespace ld2412 {
class RestartButton : public button::Button, public Parented<LD2412Component> {
public:
@@ -13,4 +14,5 @@ class RestartButton : public button::Button, public Parented<LD2412Component> {
void press_action() override;
};
} // namespace esphome::ld2412
} // namespace ld2412
} // namespace esphome

View File

@@ -2,8 +2,10 @@
#include "restart_button.h"
namespace esphome::ld2412 {
namespace esphome {
namespace ld2412 {
void StartDynamicBackgroundCorrectionButton::press_action() { this->parent_->start_dynamic_background_correction(); }
} // namespace esphome::ld2412
} // namespace ld2412
} // namespace esphome

View File

@@ -3,7 +3,8 @@
#include "esphome/components/button/button.h"
#include "../ld2412.h"
namespace esphome::ld2412 {
namespace esphome {
namespace ld2412 {
class StartDynamicBackgroundCorrectionButton : public button::Button, public Parented<LD2412Component> {
public:
@@ -13,4 +14,5 @@ class StartDynamicBackgroundCorrectionButton : public button::Button, public Par
void press_action() override;
};
} // namespace esphome::ld2412
} // namespace ld2412
} // namespace esphome

View File

@@ -10,7 +10,8 @@
#include "esphome/core/application.h"
#include "esphome/core/helpers.h"
namespace esphome::ld2412 {
namespace esphome {
namespace ld2412 {
static const char *const TAG = "ld2412";
@@ -854,4 +855,5 @@ void LD2412Component::set_gate_still_sensor(uint8_t gate, sensor::Sensor *s) {
}
#endif
} // namespace esphome::ld2412
} // namespace ld2412
} // namespace esphome

View File

@@ -29,7 +29,8 @@
#include <array>
namespace esphome::ld2412 {
namespace esphome {
namespace ld2412 {
using namespace ld24xx;
@@ -136,4 +137,5 @@ class LD2412Component : public Component, public uart::UARTDevice {
#endif
};
} // namespace esphome::ld2412
} // namespace ld2412
} // namespace esphome

View File

@@ -1,6 +1,7 @@
#include "gate_threshold_number.h"
namespace esphome::ld2412 {
namespace esphome {
namespace ld2412 {
GateThresholdNumber::GateThresholdNumber(uint8_t gate) : gate_(gate) {}
@@ -9,4 +10,5 @@ void GateThresholdNumber::control(float value) {
this->parent_->set_gate_threshold();
}
} // namespace esphome::ld2412
} // namespace ld2412
} // namespace esphome

View File

@@ -3,7 +3,8 @@
#include "esphome/components/number/number.h"
#include "../ld2412.h"
namespace esphome::ld2412 {
namespace esphome {
namespace ld2412 {
class GateThresholdNumber : public number::Number, public Parented<LD2412Component> {
public:
@@ -14,4 +15,5 @@ class GateThresholdNumber : public number::Number, public Parented<LD2412Compone
void control(float value) override;
};
} // namespace esphome::ld2412
} // namespace ld2412
} // namespace esphome

View File

@@ -1,10 +1,12 @@
#include "light_threshold_number.h"
namespace esphome::ld2412 {
namespace esphome {
namespace ld2412 {
void LightThresholdNumber::control(float value) {
this->publish_state(value);
this->parent_->set_light_out_control();
}
} // namespace esphome::ld2412
} // namespace ld2412
} // namespace esphome

View File

@@ -3,7 +3,8 @@
#include "esphome/components/number/number.h"
#include "../ld2412.h"
namespace esphome::ld2412 {
namespace esphome {
namespace ld2412 {
class LightThresholdNumber : public number::Number, public Parented<LD2412Component> {
public:
@@ -13,4 +14,5 @@ class LightThresholdNumber : public number::Number, public Parented<LD2412Compon
void control(float value) override;
};
} // namespace esphome::ld2412
} // namespace ld2412
} // namespace esphome

View File

@@ -1,10 +1,12 @@
#include "max_distance_timeout_number.h"
namespace esphome::ld2412 {
namespace esphome {
namespace ld2412 {
void MaxDistanceTimeoutNumber::control(float value) {
this->publish_state(value);
this->parent_->set_basic_config();
}
} // namespace esphome::ld2412
} // namespace ld2412
} // namespace esphome

View File

@@ -3,7 +3,8 @@
#include "esphome/components/number/number.h"
#include "../ld2412.h"
namespace esphome::ld2412 {
namespace esphome {
namespace ld2412 {
class MaxDistanceTimeoutNumber : public number::Number, public Parented<LD2412Component> {
public:
@@ -13,4 +14,5 @@ class MaxDistanceTimeoutNumber : public number::Number, public Parented<LD2412Co
void control(float value) override;
};
} // namespace esphome::ld2412
} // namespace ld2412
} // namespace esphome

View File

@@ -1,10 +1,12 @@
#include "baud_rate_select.h"
namespace esphome::ld2412 {
namespace esphome {
namespace ld2412 {
void BaudRateSelect::control(size_t index) {
this->publish_state(index);
this->parent_->set_baud_rate(this->option_at(index));
}
} // namespace esphome::ld2412
} // namespace ld2412
} // namespace esphome

View File

@@ -3,7 +3,8 @@
#include "esphome/components/select/select.h"
#include "../ld2412.h"
namespace esphome::ld2412 {
namespace esphome {
namespace ld2412 {
class BaudRateSelect : public select::Select, public Parented<LD2412Component> {
public:
@@ -13,4 +14,5 @@ class BaudRateSelect : public select::Select, public Parented<LD2412Component> {
void control(size_t index) override;
};
} // namespace esphome::ld2412
} // namespace ld2412
} // namespace esphome

View File

@@ -1,10 +1,12 @@
#include "distance_resolution_select.h"
namespace esphome::ld2412 {
namespace esphome {
namespace ld2412 {
void DistanceResolutionSelect::control(size_t index) {
this->publish_state(index);
this->parent_->set_distance_resolution(this->option_at(index));
}
} // namespace esphome::ld2412
} // namespace ld2412
} // namespace esphome

View File

@@ -3,7 +3,8 @@
#include "esphome/components/select/select.h"
#include "../ld2412.h"
namespace esphome::ld2412 {
namespace esphome {
namespace ld2412 {
class DistanceResolutionSelect : public select::Select, public Parented<LD2412Component> {
public:
@@ -13,4 +14,5 @@ class DistanceResolutionSelect : public select::Select, public Parented<LD2412Co
void control(size_t index) override;
};
} // namespace esphome::ld2412
} // namespace ld2412
} // namespace esphome

View File

@@ -1,10 +1,12 @@
#include "light_out_control_select.h"
namespace esphome::ld2412 {
namespace esphome {
namespace ld2412 {
void LightOutControlSelect::control(size_t index) {
this->publish_state(index);
this->parent_->set_light_out_control();
}
} // namespace esphome::ld2412
} // namespace ld2412
} // namespace esphome

View File

@@ -3,7 +3,8 @@
#include "esphome/components/select/select.h"
#include "../ld2412.h"
namespace esphome::ld2412 {
namespace esphome {
namespace ld2412 {
class LightOutControlSelect : public select::Select, public Parented<LD2412Component> {
public:
@@ -13,4 +14,5 @@ class LightOutControlSelect : public select::Select, public Parented<LD2412Compo
void control(size_t index) override;
};
} // namespace esphome::ld2412
} // namespace ld2412
} // namespace esphome

View File

@@ -1,10 +1,12 @@
#include "bluetooth_switch.h"
namespace esphome::ld2412 {
namespace esphome {
namespace ld2412 {
void BluetoothSwitch::write_state(bool state) {
this->publish_state(state);
this->parent_->set_bluetooth(state);
}
} // namespace esphome::ld2412
} // namespace ld2412
} // namespace esphome

View File

@@ -3,7 +3,8 @@
#include "esphome/components/switch/switch.h"
#include "../ld2412.h"
namespace esphome::ld2412 {
namespace esphome {
namespace ld2412 {
class BluetoothSwitch : public switch_::Switch, public Parented<LD2412Component> {
public:
@@ -13,4 +14,5 @@ class BluetoothSwitch : public switch_::Switch, public Parented<LD2412Component>
void write_state(bool state) override;
};
} // namespace esphome::ld2412
} // namespace ld2412
} // namespace esphome

View File

@@ -1,10 +1,12 @@
#include "engineering_mode_switch.h"
namespace esphome::ld2412 {
namespace esphome {
namespace ld2412 {
void EngineeringModeSwitch::write_state(bool state) {
this->publish_state(state);
this->parent_->set_engineering_mode(state);
}
} // namespace esphome::ld2412
} // namespace ld2412
} // namespace esphome

View File

@@ -3,7 +3,8 @@
#include "esphome/components/switch/switch.h"
#include "../ld2412.h"
namespace esphome::ld2412 {
namespace esphome {
namespace ld2412 {
class EngineeringModeSwitch : public switch_::Switch, public Parented<LD2412Component> {
public:
@@ -13,4 +14,5 @@ class EngineeringModeSwitch : public switch_::Switch, public Parented<LD2412Comp
void write_state(bool state) override;
};
} // namespace esphome::ld2412
} // namespace ld2412
} // namespace esphome

View File

@@ -2,7 +2,8 @@
#include "esphome/core/helpers.h"
#include "esphome/core/log.h"
namespace esphome::ld2420 {
namespace esphome {
namespace ld2420 {
static const char *const TAG = "ld2420.binary_sensor";
@@ -11,4 +12,5 @@ void LD2420BinarySensor::dump_config() {
LOG_BINARY_SENSOR(" ", "Presence", this->presence_bsensor_);
}
} // namespace esphome::ld2420
} // namespace ld2420
} // namespace esphome

View File

@@ -3,7 +3,8 @@
#include "../ld2420.h"
#include "esphome/components/binary_sensor/binary_sensor.h"
namespace esphome::ld2420 {
namespace esphome {
namespace ld2420 {
class LD2420BinarySensor : public LD2420Listener, public Component, binary_sensor::BinarySensor {
public:
@@ -20,4 +21,5 @@ class LD2420BinarySensor : public LD2420Listener, public Component, binary_senso
binary_sensor::BinarySensor *presence_bsensor_{nullptr};
};
} // namespace esphome::ld2420
} // namespace ld2420
} // namespace esphome

View File

@@ -4,11 +4,13 @@
static const char *const TAG = "ld2420.button";
namespace esphome::ld2420 {
namespace esphome {
namespace ld2420 {
void LD2420ApplyConfigButton::press_action() { this->parent_->apply_config_action(); }
void LD2420RevertConfigButton::press_action() { this->parent_->revert_config_action(); }
void LD2420RestartModuleButton::press_action() { this->parent_->restart_module_action(); }
void LD2420FactoryResetButton::press_action() { this->parent_->factory_reset_action(); }
} // namespace esphome::ld2420
} // namespace ld2420
} // namespace esphome

View File

@@ -3,7 +3,8 @@
#include "esphome/components/button/button.h"
#include "../ld2420.h"
namespace esphome::ld2420 {
namespace esphome {
namespace ld2420 {
class LD2420ApplyConfigButton : public button::Button, public Parented<LD2420Component> {
public:
@@ -37,4 +38,5 @@ class LD2420FactoryResetButton : public button::Button, public Parented<LD2420Co
void press_action() override;
};
} // namespace esphome::ld2420
} // namespace ld2420
} // namespace esphome

View File

@@ -58,7 +58,8 @@ Gate 0 high thresh = 10 00 uint16_t 0x0010, Threshold value = 60 EA 00 00 uint32
Gate 0 low thresh = 20 00 uint16_t 0x0020, Threshold value = 60 EA 00 00 uint32_t 0x0000EA60
*/
namespace esphome::ld2420 {
namespace esphome {
namespace ld2420 {
static const char *const TAG = "ld2420";
@@ -879,4 +880,5 @@ void LD2420Component::refresh_gate_config_numbers() {
#endif
} // namespace esphome::ld2420
} // namespace ld2420
} // namespace esphome

View File

@@ -17,7 +17,8 @@
#include "esphome/components/button/button.h"
#endif
namespace esphome::ld2420 {
namespace esphome {
namespace ld2420 {
static const uint8_t CALIBRATE_SAMPLES = 64;
static const uint8_t MAX_LINE_LENGTH = 46; // Max characters for serial buffer
@@ -192,4 +193,5 @@ class LD2420Component : public Component, public uart::UARTDevice {
std::vector<LD2420Listener *> listeners_{};
};
} // namespace esphome::ld2420
} // namespace ld2420
} // namespace esphome

View File

@@ -4,7 +4,8 @@
static const char *const TAG = "ld2420.number";
namespace esphome::ld2420 {
namespace esphome {
namespace ld2420 {
void LD2420TimeoutNumber::control(float timeout) {
this->publish_state(timeout);
@@ -68,4 +69,5 @@ void LD2420StillThresholdNumbers::control(float still_threshold) {
}
}
} // namespace esphome::ld2420
} // namespace ld2420
} // namespace esphome

View File

@@ -3,7 +3,8 @@
#include "esphome/components/number/number.h"
#include "../ld2420.h"
namespace esphome::ld2420 {
namespace esphome {
namespace ld2420 {
class LD2420TimeoutNumber : public number::Number, public Parented<LD2420Component> {
public:
@@ -73,4 +74,5 @@ class LD2420MoveThresholdNumbers : public number::Number, public Parented<LD2420
void control(float move_threshold) override;
};
} // namespace esphome::ld2420
} // namespace ld2420
} // namespace esphome

View File

@@ -2,7 +2,8 @@
#include "esphome/core/helpers.h"
#include "esphome/core/log.h"
namespace esphome::ld2420 {
namespace esphome {
namespace ld2420 {
static const char *const TAG = "ld2420.select";
@@ -11,4 +12,5 @@ void LD2420Select::control(size_t index) {
this->parent_->set_operating_mode(this->option_at(index));
}
} // namespace esphome::ld2420
} // namespace ld2420
} // namespace esphome

View File

@@ -3,7 +3,8 @@
#include "../ld2420.h"
#include "esphome/components/select/select.h"
namespace esphome::ld2420 {
namespace esphome {
namespace ld2420 {
class LD2420Select : public Component, public select::Select, public Parented<LD2420Component> {
public:
@@ -13,4 +14,5 @@ class LD2420Select : public Component, public select::Select, public Parented<LD
void control(size_t index) override;
};
} // namespace esphome::ld2420
} // namespace ld2420
} // namespace esphome

View File

@@ -2,7 +2,8 @@
#include "esphome/core/helpers.h"
#include "esphome/core/log.h"
namespace esphome::ld2420 {
namespace esphome {
namespace ld2420 {
static const char *const TAG = "ld2420.sensor";
@@ -11,4 +12,5 @@ void LD2420Sensor::dump_config() {
LOG_SENSOR(" ", "Distance", this->distance_sensor_);
}
} // namespace esphome::ld2420
} // namespace ld2420
} // namespace esphome

View File

@@ -3,7 +3,8 @@
#include "../ld2420.h"
#include "esphome/components/sensor/sensor.h"
namespace esphome::ld2420 {
namespace esphome {
namespace ld2420 {
class LD2420Sensor : public LD2420Listener, public Component, sensor::Sensor {
public:
@@ -29,4 +30,5 @@ class LD2420Sensor : public LD2420Listener, public Component, sensor::Sensor {
std::vector<sensor::Sensor *> energy_sensors_ = std::vector<sensor::Sensor *>(TOTAL_GATES);
};
} // namespace esphome::ld2420
} // namespace ld2420
} // namespace esphome

View File

@@ -2,7 +2,8 @@
#include "esphome/core/helpers.h"
#include "esphome/core/log.h"
namespace esphome::ld2420 {
namespace esphome {
namespace ld2420 {
static const char *const TAG = "ld2420.text_sensor";
@@ -11,4 +12,5 @@ void LD2420TextSensor::dump_config() {
LOG_TEXT_SENSOR(" ", "Firmware", this->fw_version_text_sensor_);
}
} // namespace esphome::ld2420
} // namespace ld2420
} // namespace esphome

View File

@@ -3,7 +3,8 @@
#include "../ld2420.h"
#include "esphome/components/text_sensor/text_sensor.h"
namespace esphome::ld2420 {
namespace esphome {
namespace ld2420 {
class LD2420TextSensor : public LD2420Listener, public Component, text_sensor::TextSensor {
public:
@@ -19,4 +20,5 @@ class LD2420TextSensor : public LD2420Listener, public Component, text_sensor::T
text_sensor::TextSensor *fw_version_text_sensor_{nullptr};
};
} // namespace esphome::ld2420
} // namespace ld2420
} // namespace esphome

View File

@@ -1,7 +1,9 @@
#include "factory_reset_button.h"
namespace esphome::ld2450 {
namespace esphome {
namespace ld2450 {
void FactoryResetButton::press_action() { this->parent_->factory_reset(); }
} // namespace esphome::ld2450
} // namespace ld2450
} // namespace esphome

View File

@@ -3,7 +3,8 @@
#include "esphome/components/button/button.h"
#include "../ld2450.h"
namespace esphome::ld2450 {
namespace esphome {
namespace ld2450 {
class FactoryResetButton : public button::Button, public Parented<LD2450Component> {
public:
@@ -13,4 +14,5 @@ class FactoryResetButton : public button::Button, public Parented<LD2450Componen
void press_action() override;
};
} // namespace esphome::ld2450
} // namespace ld2450
} // namespace esphome

View File

@@ -1,7 +1,9 @@
#include "restart_button.h"
namespace esphome::ld2450 {
namespace esphome {
namespace ld2450 {
void RestartButton::press_action() { this->parent_->restart_and_read_all_info(); }
} // namespace esphome::ld2450
} // namespace ld2450
} // namespace esphome

View File

@@ -3,7 +3,8 @@
#include "esphome/components/button/button.h"
#include "../ld2450.h"
namespace esphome::ld2450 {
namespace esphome {
namespace ld2450 {
class RestartButton : public button::Button, public Parented<LD2450Component> {
public:
@@ -13,4 +14,5 @@ class RestartButton : public button::Button, public Parented<LD2450Component> {
void press_action() override;
};
} // namespace esphome::ld2450
} // namespace ld2450
} // namespace esphome

View File

@@ -13,7 +13,8 @@
#include <cmath>
#include <numbers>
namespace esphome::ld2450 {
namespace esphome {
namespace ld2450 {
static const char *const TAG = "ld2450";
@@ -938,4 +939,5 @@ float LD2450Component::restore_from_flash_() {
}
#endif
} // namespace esphome::ld2450
} // namespace ld2450
} // namespace esphome

View File

@@ -31,7 +31,8 @@
#include <array>
namespace esphome::ld2450 {
namespace esphome {
namespace ld2450 {
using namespace ld24xx;
@@ -192,4 +193,5 @@ class LD2450Component : public Component, public uart::UARTDevice {
#endif
};
} // namespace esphome::ld2450
} // namespace ld2450
} // namespace esphome

View File

@@ -1,10 +1,12 @@
#include "presence_timeout_number.h"
namespace esphome::ld2450 {
namespace esphome {
namespace ld2450 {
void PresenceTimeoutNumber::control(float value) {
this->publish_state(value);
this->parent_->set_presence_timeout();
}
} // namespace esphome::ld2450
} // namespace ld2450
} // namespace esphome

View File

@@ -3,7 +3,8 @@
#include "esphome/components/number/number.h"
#include "../ld2450.h"
namespace esphome::ld2450 {
namespace esphome {
namespace ld2450 {
class PresenceTimeoutNumber : public number::Number, public Parented<LD2450Component> {
public:
@@ -13,4 +14,5 @@ class PresenceTimeoutNumber : public number::Number, public Parented<LD2450Compo
void control(float value) override;
};
} // namespace esphome::ld2450
} // namespace ld2450
} // namespace esphome

View File

@@ -1,6 +1,7 @@
#include "zone_coordinate_number.h"
namespace esphome::ld2450 {
namespace esphome {
namespace ld2450 {
ZoneCoordinateNumber::ZoneCoordinateNumber(uint8_t zone) : zone_(zone) {}
@@ -9,4 +10,5 @@ void ZoneCoordinateNumber::control(float value) {
this->parent_->set_zone_coordinate(this->zone_);
}
} // namespace esphome::ld2450
} // namespace ld2450
} // namespace esphome

View File

@@ -3,7 +3,8 @@
#include "esphome/components/number/number.h"
#include "../ld2450.h"
namespace esphome::ld2450 {
namespace esphome {
namespace ld2450 {
class ZoneCoordinateNumber : public number::Number, public Parented<LD2450Component> {
public:
@@ -14,4 +15,5 @@ class ZoneCoordinateNumber : public number::Number, public Parented<LD2450Compon
void control(float value) override;
};
} // namespace esphome::ld2450
} // namespace ld2450
} // namespace esphome

View File

@@ -1,10 +1,12 @@
#include "baud_rate_select.h"
namespace esphome::ld2450 {
namespace esphome {
namespace ld2450 {
void BaudRateSelect::control(size_t index) {
this->publish_state(index);
this->parent_->set_baud_rate(this->option_at(index));
}
} // namespace esphome::ld2450
} // namespace ld2450
} // namespace esphome

View File

@@ -3,7 +3,8 @@
#include "esphome/components/select/select.h"
#include "../ld2450.h"
namespace esphome::ld2450 {
namespace esphome {
namespace ld2450 {
class BaudRateSelect : public select::Select, public Parented<LD2450Component> {
public:
@@ -13,4 +14,5 @@ class BaudRateSelect : public select::Select, public Parented<LD2450Component> {
void control(size_t index) override;
};
} // namespace esphome::ld2450
} // namespace ld2450
} // namespace esphome

View File

@@ -1,10 +1,12 @@
#include "zone_type_select.h"
namespace esphome::ld2450 {
namespace esphome {
namespace ld2450 {
void ZoneTypeSelect::control(size_t index) {
this->publish_state(index);
this->parent_->set_zone_type(this->option_at(index));
}
} // namespace esphome::ld2450
} // namespace ld2450
} // namespace esphome

View File

@@ -3,7 +3,8 @@
#include "esphome/components/select/select.h"
#include "../ld2450.h"
namespace esphome::ld2450 {
namespace esphome {
namespace ld2450 {
class ZoneTypeSelect : public select::Select, public Parented<LD2450Component> {
public:
@@ -13,4 +14,5 @@ class ZoneTypeSelect : public select::Select, public Parented<LD2450Component> {
void control(size_t index) override;
};
} // namespace esphome::ld2450
} // namespace ld2450
} // namespace esphome

View File

@@ -1,10 +1,12 @@
#include "bluetooth_switch.h"
namespace esphome::ld2450 {
namespace esphome {
namespace ld2450 {
void BluetoothSwitch::write_state(bool state) {
this->publish_state(state);
this->parent_->set_bluetooth(state);
}
} // namespace esphome::ld2450
} // namespace ld2450
} // namespace esphome

View File

@@ -3,7 +3,8 @@
#include "esphome/components/switch/switch.h"
#include "../ld2450.h"
namespace esphome::ld2450 {
namespace esphome {
namespace ld2450 {
class BluetoothSwitch : public switch_::Switch, public Parented<LD2450Component> {
public:
@@ -13,4 +14,5 @@ class BluetoothSwitch : public switch_::Switch, public Parented<LD2450Component>
void write_state(bool state) override;
};
} // namespace esphome::ld2450
} // namespace ld2450
} // namespace esphome

View File

@@ -1,10 +1,12 @@
#include "multi_target_switch.h"
namespace esphome::ld2450 {
namespace esphome {
namespace ld2450 {
void MultiTargetSwitch::write_state(bool state) {
this->publish_state(state);
this->parent_->set_multi_target(state);
}
} // namespace esphome::ld2450
} // namespace ld2450
} // namespace esphome

View File

@@ -3,7 +3,8 @@
#include "esphome/components/switch/switch.h"
#include "../ld2450.h"
namespace esphome::ld2450 {
namespace esphome {
namespace ld2450 {
class MultiTargetSwitch : public switch_::Switch, public Parented<LD2450Component> {
public:
@@ -13,4 +14,5 @@ class MultiTargetSwitch : public switch_::Switch, public Parented<LD2450Componen
void write_state(bool state) override;
};
} // namespace esphome::ld2450
} // namespace ld2450
} // namespace esphome

View File

@@ -37,7 +37,8 @@
#define highbyte(val) (uint8_t)((val) >> 8)
#define lowbyte(val) (uint8_t)((val) &0xff)
namespace esphome::ld24xx {
namespace esphome {
namespace ld24xx {
static const char *const UNKNOWN_MAC = "unknown";
static const char *const VERSION_FMT = "%u.%02X.%02X%02X%02X%02X";
@@ -82,4 +83,5 @@ template<typename T> class SensorWithDedup {
Deduplicator<T> publish_dedup;
};
#endif
} // namespace esphome::ld24xx
} // namespace ld24xx
} // namespace esphome

View File

@@ -1,7 +1,8 @@
#include "addressable_light.h"
#include "esphome/core/log.h"
namespace esphome::light {
namespace esphome {
namespace light {
static const char *const TAG = "light.addressable";
@@ -111,4 +112,5 @@ optional<LightColorValues> AddressableLightTransformer::apply() {
return {};
}
} // namespace esphome::light
} // namespace light
} // namespace esphome

View File

@@ -14,7 +14,8 @@
#include "esphome/components/power_supply/power_supply.h"
#endif
namespace esphome::light {
namespace esphome {
namespace light {
/// Convert the color information from a `LightColorValues` object to a `Color` object (does not apply brightness).
Color color_from_light_color_values(LightColorValues val);
@@ -115,4 +116,5 @@ class AddressableLightTransformer : public LightTransformer {
Color target_color_{};
};
} // namespace esphome::light
} // namespace light
} // namespace esphome

View File

@@ -7,7 +7,8 @@
#include "esphome/components/light/light_state.h"
#include "esphome/components/light/addressable_light.h"
namespace esphome::light {
namespace esphome {
namespace light {
inline static int16_t sin16_c(uint16_t theta) {
static const uint16_t BASE[] = {0, 6393, 12539, 18204, 23170, 27245, 30273, 32137};
@@ -370,4 +371,5 @@ class AddressableFlickerEffect : public AddressableLightEffect {
uint8_t intensity_{13};
};
} // namespace esphome::light
} // namespace light
} // namespace esphome

View File

@@ -3,7 +3,8 @@
#include "esphome/core/component.h"
#include "addressable_light.h"
namespace esphome::light {
namespace esphome {
namespace light {
class AddressableLightWrapper : public light::AddressableLight {
public:
@@ -122,4 +123,5 @@ class AddressableLightWrapper : public light::AddressableLight {
ColorMode color_mode_{ColorMode::UNKNOWN};
};
} // namespace esphome::light
} // namespace light
} // namespace esphome

View File

@@ -1,7 +1,8 @@
#include "automation.h"
#include "esphome/core/log.h"
namespace esphome::light {
namespace esphome {
namespace light {
static const char *const TAG = "light.automation";
@@ -10,4 +11,5 @@ void addressableset_warn_about_scale(const char *field) {
field);
}
} // namespace esphome::light
} // namespace light
} // namespace esphome

View File

@@ -4,7 +4,8 @@
#include "light_state.h"
#include "addressable_light.h"
namespace esphome::light {
namespace esphome {
namespace light {
enum class LimitMode { CLAMP, DO_NOTHING };
@@ -215,4 +216,5 @@ template<typename... Ts> class AddressableSet : public Action<Ts...> {
}
};
} // namespace esphome::light
} // namespace light
} // namespace esphome

View File

@@ -6,7 +6,8 @@
#include "esphome/core/helpers.h"
#include "light_effect.h"
namespace esphome::light {
namespace esphome {
namespace light {
inline static float random_cubic_float() {
const float r = random_float() * 2.0f - 1.0f;
@@ -234,4 +235,5 @@ class FlickerLightEffect : public LightEffect {
float alpha_{};
};
} // namespace esphome::light
} // namespace light
} // namespace esphome

View File

@@ -3,7 +3,8 @@
#include <cstdint>
#include "esphome/core/finite_set_mask.h"
namespace esphome::light {
namespace esphome {
namespace light {
/// Color capabilities are the various outputs that a light has and that can be independently controlled by the user.
enum class ColorCapability : uint8_t {
@@ -209,4 +210,5 @@ inline bool has_capability(const ColorModeMask &mask, ColorCapability capability
return (mask.get_mask() & CAPABILITY_BITMASKS[capability_to_index(capability)]) != 0;
}
} // namespace esphome::light
} // namespace light
} // namespace esphome

View File

@@ -2,7 +2,8 @@
#include "light_color_values.h"
#include "esphome/core/log.h"
namespace esphome::light {
namespace esphome {
namespace light {
void ESPColorCorrection::calculate_gamma_table(float gamma) {
for (uint16_t i = 0; i < 256; i++) {
@@ -22,4 +23,5 @@ void ESPColorCorrection::calculate_gamma_table(float gamma) {
}
}
} // namespace esphome::light
} // namespace light
} // namespace esphome

View File

@@ -2,7 +2,8 @@
#include "esphome/core/color.h"
namespace esphome::light {
namespace esphome {
namespace light {
class ESPColorCorrection {
public:
@@ -72,4 +73,5 @@ class ESPColorCorrection {
uint8_t local_brightness_{255};
};
} // namespace esphome::light
} // namespace light
} // namespace esphome

Some files were not shown because too many files have changed in this diff Show More