mirror of
https://github.com/esphome/esphome.git
synced 2026-05-30 07:16:11 +08:00
[lock] Extract set_state_ helper to reduce code duplication (#13359)
This commit is contained in:
@@ -28,16 +28,14 @@ const LogString *lock_state_to_string(LockState state) {
|
|||||||
Lock::Lock() : state(LOCK_STATE_NONE) {}
|
Lock::Lock() : state(LOCK_STATE_NONE) {}
|
||||||
LockCall Lock::make_call() { return LockCall(this); }
|
LockCall Lock::make_call() { return LockCall(this); }
|
||||||
|
|
||||||
void Lock::lock() {
|
void Lock::set_state_(LockState state) {
|
||||||
auto call = this->make_call();
|
auto call = this->make_call();
|
||||||
call.set_state(LOCK_STATE_LOCKED);
|
call.set_state(state);
|
||||||
this->control(call);
|
|
||||||
}
|
|
||||||
void Lock::unlock() {
|
|
||||||
auto call = this->make_call();
|
|
||||||
call.set_state(LOCK_STATE_UNLOCKED);
|
|
||||||
this->control(call);
|
this->control(call);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Lock::lock() { this->set_state_(LOCK_STATE_LOCKED); }
|
||||||
|
void Lock::unlock() { this->set_state_(LOCK_STATE_UNLOCKED); }
|
||||||
void Lock::open() {
|
void Lock::open() {
|
||||||
if (traits.get_supports_open()) {
|
if (traits.get_supports_open()) {
|
||||||
ESP_LOGD(TAG, "'%s' Opening.", this->get_name().c_str());
|
ESP_LOGD(TAG, "'%s' Opening.", this->get_name().c_str());
|
||||||
|
|||||||
@@ -156,6 +156,9 @@ class Lock : public EntityBase {
|
|||||||
protected:
|
protected:
|
||||||
friend LockCall;
|
friend LockCall;
|
||||||
|
|
||||||
|
/// Helper for lock/unlock convenience methods
|
||||||
|
void set_state_(LockState state);
|
||||||
|
|
||||||
/** Perform the open latch action with hardware. This method is optional to implement
|
/** Perform the open latch action with hardware. This method is optional to implement
|
||||||
* when creating a new lock.
|
* when creating a new lock.
|
||||||
*
|
*
|
||||||
|
|||||||
Reference in New Issue
Block a user