diff options
| author | Luke Hoersten <[email protected]> | 2021-03-12 15:38:35 -0600 |
|---|---|---|
| committer | Luke Hoersten <[email protected]> | 2021-03-12 15:38:35 -0600 |
| commit | 1592ae8caa11c304c6800978fd801f52b45e8714 (patch) | |
| tree | 3d604ab97ddfd02f95a8c76c5ad66b12413fbc87 | |
| parent | 6848c47dd9046e6ed927167adb9185205755c4de (diff) | |
Misc updates.
| -rw-r--r-- | esp-homekit-intercom.code-workspace | 9 | ||||
| -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 |
5 files changed, 19 insertions, 15 deletions
diff --git a/esp-homekit-intercom.code-workspace b/esp-homekit-intercom.code-workspace index cad81f2..27d7c81 100644 --- a/esp-homekit-intercom.code-workspace +++ b/esp-homekit-intercom.code-workspace @@ -8,8 +8,13 @@ "files.associations": { "stdio.h": "c", "hap.h": "c", - "freertos.h": "c" + "freertos.h": "c", + "hap_apple_servs.h": "c", + "app_hap_setup_payload.h": "c", + "lock.h": "c", + "task.h": "c" }, - "git.ignoreLimitWarning": true + "git.ignoreLimitWarning": true, + "idf.port": "/dev/cu.usbserial-01D11E9B" } }
\ No newline at end of file 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(); } |
