From cb1712d5d9e72d1ef8baab54868019576d00028c Mon Sep 17 00:00:00 2001 From: schneider <schneider@blinkenlichts.net> Date: Fri, 24 Jan 2020 22:30:47 +0100 Subject: [PATCH] fix(leds): Consolidate led locking --- epicardium/modules/leds.c | 8 ++------ epicardium/modules/personal_state.c | 17 ++--------------- 2 files changed, 4 insertions(+), 21 deletions(-) diff --git a/epicardium/modules/leds.c b/epicardium/modules/leds.c index dd2c20ca..ffe5969e 100644 --- a/epicardium/modules/leds.c +++ b/epicardium/modules/leds.c @@ -99,9 +99,7 @@ void epic_leds_dim_top(uint8_t value) { leds_set_dim_top(value); if (personal_state_enabled() == 0) { - hwlock_acquire(HWLOCK_I2C); - leds_update(); - hwlock_release(HWLOCK_I2C); + do_update(); } } @@ -109,9 +107,7 @@ void epic_leds_dim_bottom(uint8_t value) { leds_set_dim_bottom(value); if (personal_state_enabled() == 0) { - hwlock_acquire(HWLOCK_I2C); - leds_update(); - hwlock_release(HWLOCK_I2C); + do_update(); } } diff --git a/epicardium/modules/personal_state.c b/epicardium/modules/personal_state.c index e9390bf8..285cb872 100644 --- a/epicardium/modules/personal_state.c +++ b/epicardium/modules/personal_state.c @@ -31,13 +31,8 @@ int epic_personal_state_set(uint8_t state, bool persistent) personal_state_persistent = persistent; if (was_enabled && !_personal_state_enabled) { - hwlock_acquire(HWLOCK_LED); - leds_prep(PERSONAL_STATE_LED, 0, 0, 0); - leds_update_power(); - leds_update(); - - hwlock_release(HWLOCK_LED); + epic_leds_update(); } return 0; @@ -58,8 +53,6 @@ void vLedTask(void *pvParameters) const int led_animation_rate = 1000 / 25; /* 25Hz -> 40ms*/ while (1) { if (_personal_state_enabled) { - hwlock_acquire(HWLOCK_LED); - led_animation_ticks++; if (personal_state == STATE_NO_CONTACT) { leds_prep(PERSONAL_STATE_LED, 255, 0, 0); @@ -126,13 +119,7 @@ void vLedTask(void *pvParameters) led_animation_rate)))); } - hwlock_acquire(HWLOCK_I2C); - - leds_update_power(); - leds_update(); - - hwlock_release(HWLOCK_I2C); - hwlock_release(HWLOCK_LED); + epic_leds_update(); } vTaskDelay(led_animation_rate / portTICK_PERIOD_MS); -- GitLab