Improve watchdog monitoring and CLI
This commit is contained in:
@@ -7,10 +7,16 @@
|
||||
#pragma once
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#include "freertos/FreeRTOS.h"
|
||||
#include "esp_err.h"
|
||||
|
||||
typedef struct {
|
||||
uint32_t missed_heartbeats;
|
||||
uint32_t restart_count;
|
||||
} uart_mux_channel_stats_t;
|
||||
|
||||
// Ініціалізує апаратний мультиплексор UART: GPIO, UART драйвер та watchdog.
|
||||
esp_err_t uart_mux_init(void);
|
||||
// Повертає true, якщо драйвер готовий приймати виклики.
|
||||
@@ -21,3 +27,9 @@ size_t uart_mux_channel_count(void);
|
||||
esp_err_t uart_mux_write(size_t channel, const uint8_t *data, size_t length, TickType_t timeout);
|
||||
// Зчитує дані з каналу, повертаючи кількість байтів через out_length.
|
||||
esp_err_t uart_mux_read(size_t channel, uint8_t *buffer, size_t buffer_size, size_t *out_length, TickType_t timeout);
|
||||
// Повідомляє драйверу про дані, зчитані поза watchdog-ом (для оновлення станів).
|
||||
void uart_mux_process_rx(size_t channel, const uint8_t *data, size_t length);
|
||||
// Повідомляє про пропущений heartbeat (використовується основним циклом).
|
||||
void uart_mux_report_miss(size_t channel);
|
||||
// Повертає статистику по каналу (кількість пропущених відповідей та рестартів).
|
||||
void uart_mux_get_channel_stats(size_t channel, uart_mux_channel_stats_t *out_stats);
|
||||
|
||||
Reference in New Issue
Block a user