src.nth.io/

summaryrefslogtreecommitdiff
path: root/main/src
diff options
context:
space:
mode:
Diffstat (limited to 'main/src')
-rw-r--r--main/src/bell.c13
-rw-r--r--main/src/event_queue.c2
-rw-r--r--main/src/lock.c5
3 files changed, 11 insertions, 9 deletions
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();
}