- 新增数据存储缓冲区可用性检查,防止缓冲区满时数据丢失 - 新增会话文件夹管理功能,每次上电自动创建新的数据存储文件夹 - 新增监控状态定期保存功能,将系统统计信息写入MONITOR.TXT文件 - 新增数据丢弃统计,记录因缓冲区满而未存储的数据包数量 - 优化数据输出模式配置,支持串口输出和存储到卡的独立控制 - 优化USB连接处理逻辑,增加系统稳定性检查 🐛 fix(interrupt): 调整中断优先级配置 - 提高USART1中断优先级(从6调整为2),确保串口通信及时响应 - 调整DMA2_Stream5中断优先级(从0调整为5),优化数据传输调度 - 修复RS485驱动中的忙标志逻辑,改为阻塞式传输以提高可靠性 ♻️ refactor(config): 优化系统配置和存储设置 - 重构宏定义配置,统一系统监控开关,分离数据输出模式控制 - 将SD卡最大扇区大小从512调整为4096,优化大文件存储性能 - 增加堆栈大小配置(从0x800调整为0x1000),提高系统稳定性 - 优化USB存储读写超时设置,使用最大超时值确保操作完成 📝 docs(comments): 更新代码注释和文档 - 更新数据存储模块的注释,说明新的会话文件夹管理机制 - 在main.c中添加数据输出模式选择的详细说明注释 - 更新系统监控统计输出格式,包含新增的数据丢弃统计项
42 lines
1.4 KiB
C
42 lines
1.4 KiB
C
#ifndef SYSTEM_MONITOR_H
|
|
#define SYSTEM_MONITOR_H
|
|
|
|
#include "main.h"
|
|
#include <stdint.h>
|
|
|
|
// 监控状态文件配置
|
|
#define MONITOR_STATUS_FILE "0:/MONITOR.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; // 未存储的数据数量(缓冲区满时丢弃)
|
|
} 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);
|
|
|
|
// 监控状态持久化函数
|
|
HAL_StatusTypeDef SystemMonitor_SaveStatus(void);
|
|
HAL_StatusTypeDef SystemMonitor_LoadStatus(void);
|
|
|
|
#endif // SYSTEM_MONITOR_H
|