mirror of
https://github.com/esphome/esphome.git
synced 2026-09-28 23:40:25 +00:00
[uart_mux] Use the apply helpers for select_local, select_bridge and is_local (#19671)
This commit is contained in:
@@ -20,9 +20,6 @@ ROUTE_LOCAL = "local"
|
||||
|
||||
uart_mux_ns = cg.esphome_ns.namespace("uart_mux")
|
||||
UARTMux = uart_mux_ns.class_("UARTMux", uart.UARTComponent, cg.Component)
|
||||
SelectLocalAction = uart_mux_ns.class_("SelectLocalAction", automation.Action)
|
||||
SelectBridgeAction = uart_mux_ns.class_("SelectBridgeAction", automation.Action)
|
||||
IsLocalCondition = uart_mux_ns.class_("IsLocalCondition", automation.Condition)
|
||||
|
||||
CONFIG_SCHEMA = cv.All(
|
||||
cv.Schema(
|
||||
@@ -70,15 +67,16 @@ UART_MUX_ACTION_SCHEMA = automation.maybe_simple_id(
|
||||
)
|
||||
|
||||
|
||||
automation.register_simple_action(
|
||||
"uart_mux.select_local", SelectLocalAction, UART_MUX_ACTION_SCHEMA, synchronous=True
|
||||
)
|
||||
automation.register_simple_action(
|
||||
"uart_mux.select_bridge",
|
||||
SelectBridgeAction,
|
||||
automation.register_apply_action(
|
||||
"uart_mux.select_local",
|
||||
UART_MUX_ACTION_SCHEMA,
|
||||
synchronous=True,
|
||||
automation.ApplyCall("select_local()"),
|
||||
)
|
||||
automation.register_simple_condition(
|
||||
"uart_mux.is_local", IsLocalCondition, UART_MUX_ACTION_SCHEMA
|
||||
automation.register_apply_action(
|
||||
"uart_mux.select_bridge",
|
||||
UART_MUX_ACTION_SCHEMA,
|
||||
automation.ApplyCall("select_bridge()"),
|
||||
)
|
||||
automation.register_apply_condition(
|
||||
"uart_mux.is_local", UART_MUX_ACTION_SCHEMA, "is_local()"
|
||||
)
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
#include "esphome/components/uart/uart_component.h"
|
||||
#include "esphome/components/uart/uart_component_esp_idf.h"
|
||||
#include "esphome/components/cdc_acm_uart/bridge/cdc_acm_uart_bridge.h"
|
||||
#include "esphome/core/automation.h"
|
||||
#include "esphome/core/component.h"
|
||||
|
||||
namespace esphome::uart_mux {
|
||||
@@ -77,32 +76,5 @@ class UARTMux final : public uart::UARTComponent, public Component {
|
||||
bool load_settings_warned_{false};
|
||||
};
|
||||
|
||||
template<typename... Ts> class SelectLocalAction final : public Action<Ts...> {
|
||||
public:
|
||||
explicit SelectLocalAction(UARTMux *parent) : parent_(parent) {}
|
||||
void play(const Ts &...) override { this->parent_->select_local(); }
|
||||
|
||||
protected:
|
||||
UARTMux *parent_;
|
||||
};
|
||||
|
||||
template<typename... Ts> class SelectBridgeAction final : public Action<Ts...> {
|
||||
public:
|
||||
explicit SelectBridgeAction(UARTMux *parent) : parent_(parent) {}
|
||||
void play(const Ts &...) override { this->parent_->select_bridge(); }
|
||||
|
||||
protected:
|
||||
UARTMux *parent_;
|
||||
};
|
||||
|
||||
template<typename... Ts> class IsLocalCondition final : public Condition<Ts...> {
|
||||
public:
|
||||
explicit IsLocalCondition(UARTMux *parent) : parent_(parent) {}
|
||||
bool check(const Ts &...) override { return this->parent_->is_local(); }
|
||||
|
||||
protected:
|
||||
UARTMux *parent_;
|
||||
};
|
||||
|
||||
} // namespace esphome::uart_mux
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user