new buzzer component
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user