new buzzer component

This commit is contained in:
2025-07-22 00:09:58 +01:00
parent 84f106eee5
commit bd587a10c0
58 changed files with 3215 additions and 6961 deletions

View File

@@ -54,11 +54,21 @@ typedef struct {
static bool phase_updated[PHASE_COUNT] = {false, false, false};
static meter_zigbee_data_t meter_data = {0};
static SemaphoreHandle_t meter_mutex = NULL;
static TaskHandle_t meter_zigbee_task = NULL;
bool meter_zigbee_is_running(void) {
return meter_zigbee_task != NULL;
}
void send_stop_command(void) {
const char *cmd = "stop\n"; // Comando enviado para o outro lado interpretar e dormir
uart_write_bytes(UART_PORT, cmd, strlen(cmd));
uart_wait_tx_done(UART_PORT, pdMS_TO_TICKS(100)); // Aguarda envio terminar
}
static void meter_zigbee_post_event(void) {
meter_event_data_t evt = {
.source = "GRID",
@@ -212,7 +222,15 @@ esp_err_t meter_zigbee_start(void) {
return ESP_OK;
}
void meter_zigbee_stop(void) {
send_stop_command();
vTaskDelay(pdMS_TO_TICKS(100)); // Aguarda o outro lado processar
if (meter_zigbee_task) {
vTaskDelete(meter_zigbee_task);
meter_zigbee_task = NULL;
@@ -224,8 +242,4 @@ void meter_zigbee_stop(void) {
vSemaphoreDelete(meter_mutex);
meter_mutex = NULL;
}
}
bool meter_zigbee_is_running(void) {
return meter_zigbee_task != NULL;
}
}