more characteristics and descriptors

Signed-off-by: Peter Siegmund <mars3142@users.noreply.github.com>
This commit is contained in:
2025-08-27 21:09:20 +02:00
parent 1f0d36dc1a
commit e26dd83f5d
7 changed files with 195 additions and 164 deletions

View File

@@ -28,24 +28,27 @@ static bool IRAM_ATTR beacon_timer_callback(gptimer_handle_t timer, const gptime
return true;
}
static void led_refresh(uint32_t brightness)
{
LedMatrix_t led_matrix = get_led_matrix();
for (uint32_t i = 0; i < led_matrix.size; i++)
{
led_strip_set_pixel(led_matrix.led_strip, i, 0, brightness, 0);
}
led_strip_refresh(led_matrix.led_strip);
}
static void beacon_timer_event_task(void *arg)
{
while (true)
{
if (xSemaphoreTake(timer_semaphore, portMAX_DELAY))
{
LedMatrix_t led_matrix = get_led_matrix();
static bool level = false;
level = !level;
if (led_matrix.led_strip)
{
for (uint32_t i = 0; i < led_matrix.size; i++)
{
led_strip_set_pixel(led_matrix.led_strip, i, 0, (level) ? value : 0, 0);
}
led_strip_refresh(led_matrix.led_strip);
}
led_refresh(level ? value : 0);
ESP_LOGD(TAG, "Timer Event, LED now %s", level ? "ON" : "OFF");
}
}
@@ -58,7 +61,21 @@ esp_err_t beacon_start(void)
ESP_LOGE(TAG, "GPTimer not initialized");
return ESP_ERR_INVALID_STATE;
}
esp_err_t ret = gptimer_start(gptimer);
esp_err_t ret = gptimer_enable(gptimer);
if (ret != ESP_OK)
{
ESP_LOGE(TAG, "Failed to enable gptimer: %s", esp_err_to_name(ret));
return beacon_stop();
}
ret = gptimer_set_raw_count(gptimer, 0);
if (ret != ESP_OK)
{
ESP_LOGE(TAG, "Failed to set gptimer raw count: %s", esp_err_to_name(ret));
return beacon_stop();
}
ret = gptimer_start(gptimer);
if (ret != ESP_OK)
{
ESP_LOGE(TAG, "Failed to start gptimer: %s", esp_err_to_name(ret));
@@ -72,6 +89,7 @@ esp_err_t beacon_start(void)
esp_err_t beacon_stop(void)
{
led_refresh(0);
if (gptimer == NULL)
{
ESP_LOGE(TAG, "GPTimer not initialized");
@@ -86,6 +104,12 @@ esp_err_t beacon_stop(void)
{
ESP_LOGI(TAG, "GPTimer stopped.");
}
ret = gptimer_disable(gptimer);
if (ret != ESP_OK)
{
ESP_LOGE(TAG, "Failed to enable gptimer: %s", esp_err_to_name(ret));
}
return ret;
}
@@ -115,13 +139,6 @@ esp_err_t beacon_init(void)
goto cleanupTimer;
}
ret = gptimer_enable(gptimer);
if (ret != ESP_OK)
{
ESP_LOGE(TAG, "Failed to enable gptimer: %s", esp_err_to_name(ret));
goto cleanupTimer;
}
gptimer_alarm_config_t alarm_config = {
.alarm_count = 2000000,
.reload_count = 0,