From 4043b33110efcd068078d19d9a37242b00ce9710 Mon Sep 17 00:00:00 2001 From: Luke Hoersten Date: Wed, 2 Jun 2021 12:08:39 -0500 Subject: Cleaned up variable names. --- main/src/lock.c | 92 +++++++++++++++++++++------------------------------------ 1 file changed, 34 insertions(+), 58 deletions(-) (limited to 'main/src/lock.c') diff --git a/main/src/lock.c b/main/src/lock.c index cc1605b..94b346d 100644 --- a/main/src/lock.c +++ b/main/src/lock.c @@ -10,39 +10,26 @@ #include #include -#define INTERCOM_LOCK_GPIO_LOCKED 0 -#define INTERCOM_LOCK_GPIO_UNLOCKED 1 +#define LOCK_UNSECURED 0 +#define LOCK_SECURED 1 -#define HAP_LOCK_CURRENT_STATE_UNSECURED 0 -#define HAP_LOCK_CURRENT_STATE_SECURED 1 +static TimerHandle_t lock_auto_secure_timer; // lock the door when timer triggered +static hap_char_t *lock_current_state; +static hap_char_t *lock_target_state; -#define HAP_LOCK_TARGET_STATE_UNSECURED 0 -#define HAP_LOCK_TARGET_STATE_SECURED 1 - -static hap_val_t HAP_VAL_LOCK_CURRENT_STATE_UNSECURED = {.u = HAP_LOCK_CURRENT_STATE_UNSECURED}; -static hap_val_t HAP_VAL_LOCK_CURRENT_STATE_SECURED = {.u = HAP_LOCK_CURRENT_STATE_SECURED}; -static hap_val_t HAP_VAL_LOCK_TARGET_STATE_SECURED = {.u = HAP_LOCK_TARGET_STATE_SECURED}; - -static TimerHandle_t intercom_lock_timer; // lock the door when timer triggered -static hap_char_t *intercom_lock_current_state; -static hap_char_t *intercom_lock_target_state; - -void intercom_lock_unsecure() +void lock_update_current_state(uint8_t is_secured) { - ESP_LOGI(TAG, "lock updated [secured: false]"); - gpio_set_level(GPIO_NUM_21, INTERCOM_LOCK_GPIO_UNLOCKED); - hap_char_update_val(intercom_lock_current_state, &HAP_VAL_LOCK_CURRENT_STATE_UNSECURED); - xTimerReset(intercom_lock_timer, 10); -} + ESP_LOGI(TAG, "lock updated [%s]", is_secured ? "secured" : "unsecured"); + gpio_set_level(GPIO_NUM_21, is_secured); -void intercom_lock_secure() -{ - ESP_LOGI(TAG, "lock updated [secured: true]"); - gpio_set_level(GPIO_NUM_21, INTERCOM_LOCK_GPIO_LOCKED); - hap_char_update_val(intercom_lock_current_state, &HAP_VAL_LOCK_CURRENT_STATE_SECURED); + hap_val_t val = {.u = is_secured}; + hap_char_update_val(lock_current_state, &val); + + if (!is_secured) + xTimerReset(lock_auto_secure_timer, 10); } -int intercom_lock_write_cb(hap_write_data_t write_data[], int count, void *serv_priv, void *write_priv) +int lock_write_cb(hap_write_data_t write_data[], int count, void *serv_priv, void *write_priv) { int i, ret = HAP_SUCCESS; hap_write_data_t *write; @@ -51,19 +38,7 @@ int intercom_lock_write_cb(hap_write_data_t write_data[], int count, void *serv_ write = &write_data[i]; if (!strcmp(hap_char_get_type_uuid(write->hc), HAP_CHAR_UUID_LOCK_TARGET_STATE)) { - ESP_LOGI(TAG, "lock received write [val: %d]", write->val.u); - - switch (write->val.u) - { - case HAP_LOCK_TARGET_STATE_UNSECURED: - intercom_lock_unsecure(); - break; - case HAP_LOCK_TARGET_STATE_SECURED: - intercom_lock_secure(); - break; - } - - /* Update target state */ + lock_update_current_state(write->val.u); hap_char_update_val(write->hc, &(write->val)); *(write->status) = HAP_STATUS_SUCCESS; } @@ -75,37 +50,38 @@ int intercom_lock_write_cb(hap_write_data_t write_data[], int count, void *serv_ return ret; } -void intercom_lock_timer_cb(TimerHandle_t timer) +void lock_auto_secure_timer_cb(TimerHandle_t timer) { ESP_LOGI(TAG, "lock timer fired"); - intercom_lock_secure(); - hap_char_update_val(intercom_lock_target_state, &HAP_VAL_LOCK_TARGET_STATE_SECURED); + lock_update_current_state(LOCK_SECURED); + hap_val_t val = {.u = LOCK_SECURED}; + hap_char_update_val(lock_target_state, &val); } -void intercom_lock_gpio_init() +void lock_gpio_init() { gpio_config_t io_conf; - io_conf.intr_type = GPIO_INTR_DISABLE; /* Disable interrupt */ - io_conf.pin_bit_mask = GPIO_SEL_21; /* Bit mask of the pins */ - io_conf.mode = GPIO_MODE_OUTPUT; /* Set as input mode */ - io_conf.pull_up_en = GPIO_PULLUP_DISABLE; /* Disable internal pull-up */ - io_conf.pull_down_en = GPIO_PULLDOWN_ENABLE; /* Enable internal pull-down */ + io_conf.intr_type = GPIO_INTR_DISABLE; + io_conf.pin_bit_mask = GPIO_SEL_21; + io_conf.mode = GPIO_MODE_OUTPUT; + io_conf.pull_up_en = GPIO_PULLUP_DISABLE; + io_conf.pull_down_en = GPIO_PULLDOWN_ENABLE; gpio_config(&io_conf); } -hap_serv_t *intercom_lock_init() +hap_serv_t *lock_service_init() { - hap_serv_t *intercom_lock_service = hap_serv_lock_mechanism_create(HAP_VAL_LOCK_CURRENT_STATE_SECURED.u, HAP_LOCK_TARGET_STATE_SECURED); - hap_serv_add_char(intercom_lock_service, hap_char_name_create("Intercom Lock")); + hap_serv_t *lock_service = hap_serv_lock_mechanism_create(LOCK_SECURED, LOCK_SECURED); + hap_serv_add_char(lock_service, hap_char_name_create("Intercom Lock")); - intercom_lock_current_state = hap_serv_get_char_by_uuid(intercom_lock_service, HAP_CHAR_UUID_LOCK_CURRENT_STATE); - intercom_lock_target_state = hap_serv_get_char_by_uuid(intercom_lock_service, HAP_CHAR_UUID_LOCK_TARGET_STATE); + lock_current_state = hap_serv_get_char_by_uuid(lock_service, HAP_CHAR_UUID_LOCK_CURRENT_STATE); + lock_target_state = hap_serv_get_char_by_uuid(lock_service, HAP_CHAR_UUID_LOCK_TARGET_STATE); - hap_serv_set_write_cb(intercom_lock_service, intercom_lock_write_cb); /* Set the write callback for the service */ + hap_serv_set_write_cb(lock_service, lock_write_cb); - intercom_lock_timer = xTimerCreate("intercom_lock_timer", pdMS_TO_TICKS(CONFIG_HOMEKIT_INTERCOM_LOCK_TIMEOUT), pdFALSE, 0, intercom_lock_timer_cb); + lock_auto_secure_timer = xTimerCreate("lock_auto_secure_timer", pdMS_TO_TICKS(CONFIG_HOMEKIT_INTERCOM_LOCK_TIMEOUT), pdFALSE, 0, lock_auto_secure_timer_cb); - intercom_lock_gpio_init(); + lock_gpio_init(); - return intercom_lock_service; + return lock_service; } -- cgit v1.2.3