diff options
Diffstat (limited to 'main')
| -rw-r--r-- | main/app_main.c | 5 | ||||
| -rw-r--r-- | main/src/bell.c | 13 | ||||
| -rw-r--r-- | main/src/event_queue.c | 2 | ||||
| -rw-r--r-- | main/src/lock.c | 5 |
4 files changed, 12 insertions, 13 deletions
diff --git a/main/app_main.c b/main/app_main.c index 24138c9..ee0a6ad 100644 --- a/main/app_main.c +++ b/main/app_main.c @@ -23,9 +23,6 @@ static void intercom_thread_entry(void *p) { hap_init(HAP_TRANSPORT_WIFI); /* Initialize the HAP core */ - /* Initialise the mandatory parameters for Accessory which will be added as - * the mandatory services internally - */ hap_acc_cfg_t cfg = { .name = "Intercom", .manufacturer = "Luke Hoersten", @@ -38,7 +35,7 @@ static void intercom_thread_entry(void *p) .cid = HAP_CID_DOOR, }; - hap_acc_t *intercom_accessory = hap_acc_create(&cfg); /* Create accessory object */ + hap_acc_t *intercom_accessory = hap_acc_create(&cfg); /* Add a dummy Product Data */ uint8_t product_data[] = {'E', 'S', 'P', '3', '2', 'H', 'A', 'P'}; diff --git a/main/src/bell.c b/main/src/bell.c index 5952c1f..228179e 100644 --- a/main/src/bell.c +++ b/main/src/bell.c @@ -25,19 +25,26 @@ bool is_bell_ringing(int val) void IRAM_ATTR intercom_bell_isr(void *arg) { - if (!is_intercom_bell_blocked && is_bell_ringing(adc1_get_raw(CONFIG_HOMEKIT_INTERCOM_BELL_ADC1_CHANNEL))) + if (is_intercom_bell_blocked) + return; + + int val = adc1_get_raw(CONFIG_HOMEKIT_INTERCOM_BELL_ADC1_CHANNEL); + if (is_bell_ringing(val)) { + ESP_LOGI(TAG, "Intercom bell ring value in range [%d]", val); intercom_event_queue_bell_ring(); is_intercom_bell_blocked = true; } + else + { + ESP_LOGI(TAG, "Intercom bell ring value out of range [%d]", val); + } } void intercom_bell_ring() { ESP_LOGI(TAG, "Intercom bell ring event processed"); - hap_char_update_val(intercom_bell_current_state, &HAP_PROGRAMMABLE_SWITCH_EVENT_SINGLE_PRESS); - xTimerReset(intercom_bell_timer, 10); } diff --git a/main/src/event_queue.c b/main/src/event_queue.c index 9e73315..2f4a93d 100644 --- a/main/src/event_queue.c +++ b/main/src/event_queue.c @@ -66,7 +66,7 @@ void intercom_event_queue_run() bool intercom_event_queue_init() { - int queue_len = 4; + int queue_len = 8; int queue_item_size = sizeof(uint8_t); intercom_event_queue = xQueueCreate(queue_len, queue_item_size); return intercom_event_queue != NULL; diff --git a/main/src/lock.c b/main/src/lock.c index dea3c20..a088d03 100644 --- a/main/src/lock.c +++ b/main/src/lock.c @@ -26,17 +26,14 @@ static hap_char_t *intercom_lock_target_state; void intercom_lock_unsecure() { ESP_LOGI(TAG, "Intercom unlock event processed"); - gpio_set_level(CONFIG_HOMEKIT_INTERCOM_LOCK_GPIO_PIN, INTERCOM_LOCK_GPIO_UNLOCKED); hap_char_update_val(intercom_lock_current_state, &HAP_LOCK_CURRENT_STATE_UNSECURED); - xTimerReset(intercom_lock_timer, 10); } void intercom_lock_secure() { ESP_LOGI(TAG, "Intercom lock event processed"); - gpio_set_level(CONFIG_HOMEKIT_INTERCOM_LOCK_GPIO_PIN, INTERCOM_LOCK_GPIO_LOCKED); hap_char_update_val(intercom_lock_current_state, &HAP_LOCK_CURRENT_STATE_SECURED); } @@ -44,7 +41,6 @@ void intercom_lock_secure() void intercom_lock_timeout() { ESP_LOGI(TAG, "Intercom lock timeout event processed"); - intercom_event_queue_lock_secure(); hap_val_t target_lock_secured = {.u = HAP_LOCK_TARGET_STATE_SECURED}; hap_char_update_val(intercom_lock_target_state, &target_lock_secured); @@ -86,7 +82,6 @@ int intercom_lock_write_cb(hap_write_data_t write_data[], int count, void *serv_ void intercom_lock_timer_cb(TimerHandle_t timer) { ESP_LOGI(TAG, "Intercom lock timer fired - event queued"); - intercom_event_queue_lock_timeout(); } |
