- 新增配置管理器模块,支持从SD卡加载运行时配置 - 将数据输出模式从编译时宏改为运行时配置,提高灵活性 - 新增配置文件 `CONFIG.TXT`,支持串口输出和存储功能的动态开关 - 集成配置管理器到主程序,在系统启动时自动加载配置 - 更新数据存储模块,使用配置管理器管理会话序号 🐛 fix(usart): 修复USART3中断配置并优化波特率 - 添加USART3中断处理函数声明和实现 - 将USART3波特率从921600提升至2000000以提高通信速率 - 调整USART1中断优先级从2改为11,优化中断响应 - 在USART3 MSP初始化和反初始化中添加中断配置 📝 docs(user): 新增功能说明文档 - 新增《配置管理功能说明》文档,详细说明运行时配置的使用方法 - 新增《串口发送监控功能说明》文档,说明新增的串口统计功能 - 文档包含配置项说明、文件格式、使用示例和注意事项 ✨ feat(monitor): 增强系统监控功能 - 在系统监控统计中添加串口发送监控字段(发送次数、字节数、错误数) - 新增串口发送统计报告函数,集成到RS485驱动中 - 优化监控状态保存格式,采用精简格式减少文件写入阻塞时间 - 监控数据现在包含串口统计信息,便于性能分析和故障排查 ♻️ refactor(main): 重构主程序配置处理逻辑 - 移除编译时宏 `DATA_OUTPUT_MODE_UART` 和 `DATA_OUTPUT_MODE_STORAGE` - 使用 `Config_IsUartOutputEnabled()` 和 `Config_IsStorageEnabled()` 函数替代 - 优化数据存储启动逻辑,仅在存储功能启用时开始记录 - 添加配置加载成功/失败的调试输出信息
51 lines
1.8 KiB
C
51 lines
1.8 KiB
C
#ifndef SYSTEM_MONITOR_H
|
|
#define SYSTEM_MONITOR_H
|
|
|
|
#include "main.h"
|
|
#include <stdint.h>
|
|
|
|
// 监控状态文件配置
|
|
#define MONITOR_STATUS_FILE "0:/LOG.TXT" // 监控状态存储文件
|
|
|
|
// 简化的系统监控统计信息
|
|
typedef struct {
|
|
uint32_t total_samples; // 总采样样点数
|
|
uint32_t data_overflow_count; // 数据来不及处理的次数
|
|
|
|
// SD卡存储监控信息
|
|
uint32_t sd_write_count; // SD卡写入次数
|
|
uint32_t sd_write_error_count; // SD卡写入错误次数
|
|
uint32_t sd_buffer_full_count; // 缓冲区满次数
|
|
uint32_t sd_total_bytes_written; // SD卡总写入字节数
|
|
uint32_t sd_file_count; // 创建的文件数量
|
|
uint32_t sd_data_dropped_count; // 未存储的数据数量(缓冲区满时丢弃)
|
|
|
|
// 串口发送监控信息
|
|
uint32_t uart_tx_count; // 串口发送次数
|
|
uint32_t uart_tx_bytes; // 串口发送总字节数
|
|
uint32_t uart_tx_error_count; // 串口发送错误次数
|
|
} SystemMonitorStats_t;
|
|
|
|
// 函数声明
|
|
void SystemMonitor_Init(void);
|
|
void SystemMonitor_IncrementSampleCount(void);
|
|
void SystemMonitor_ReportDataOverflow(void);
|
|
void SystemMonitor_GetStats(SystemMonitorStats_t *stats);
|
|
|
|
// SD卡存储监控函数
|
|
void SystemMonitor_ReportSDWrite(uint32_t bytes_written);
|
|
void SystemMonitor_ReportSDWriteError(void);
|
|
void SystemMonitor_ReportSDBufferFull(void);
|
|
void SystemMonitor_ReportSDFileCreated(void);
|
|
void SystemMonitor_ReportDataDropped(void);
|
|
|
|
// 串口发送监控函数
|
|
void SystemMonitor_ReportUARTTx(uint32_t bytes_sent);
|
|
void SystemMonitor_ReportUARTTxError(void);
|
|
|
|
// 监控状态持久化函数
|
|
HAL_StatusTypeDef SystemMonitor_SaveStatus(void);
|
|
HAL_StatusTypeDef SystemMonitor_LoadStatus(void);
|
|
|
|
#endif // SYSTEM_MONITOR_H
|