STM_ATEM/User/app_config.h
zhoujie 29cc814384 feat(scripts): 新增光泵磁力仪数据支持与混流解析
- 新增混流解析函数 `parse_mixed_stream()`,支持标准包与光泵包交替出现的二进制文件
- 新增光泵磁力仪模拟器 `OpticMagSimulatorThread`,以可配置频率发送BCD帧
- 新增光泵磁场显示标签页,支持文件模式与实时模式下的磁场曲线绘制
- 新增 `flash_counter` 模块,用于NOFX模式下文件序号持久化

♻️ refactor(data_storage): 重构数据存储目录与文件命名策略

- 会话目录改为按GPS日期命名(YYYYMMDD),无GPS时使用NOFX目录
- 文件命名改为基于GPS时间(HHMMSS)或Flash计数器(C开头),消除序号文件依赖
- 移除 `config_manager` 依赖和 `PARAM.TXT` 序号文件读写逻辑
- 新增 `GPS_ParseGPRMC()` 解析函数,提取日期字段用于目录命名

🐛 fix(ltc2508_driver): 修复DMA启动失败时资源泄漏问题

- SPI2/SPI3 DMA启动失败时主动停止已启动的DMA,防止资源泄漏
- 将SPI1的dummy发送缓冲区改为static,确保DMA传输期间数据有效

🐛 fix(rs485_driver): 修复DMA发送缓冲区可能被覆盖的问题

- 引入静态发送缓冲区 `s_tx_buf`,隔离调用方数据与DMA传输,防止TIM2 ISR覆盖

♻️ refactor(ATEMParse): 重构数据结构定义与解析逻辑

- 移除硬编码的V1/V2 dtype,改为动态构建 `make_dtype()` 函数
- 新增数据格式选项(GPS经纬度/光泵),支持灵活配置
- 新增文件模式下的分页浏览功能(滑块/上一页/下一页)
- 优化实时模式下的光泵数据显示与表格列过滤
2026-06-14 23:06:25 +08:00

85 lines
3.3 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef APP_CONFIG_H
#define APP_CONFIG_H
// ============================================================
// 系统编译期配置总入口
// 所有可调参数集中在此文件,修改后重新编译生效。
// 若需恢复 SD 卡运行时加载,将 CFG_LOAD_FROM_FILE 置 1
// 其余编译期值将作为加载失败时的 fallback 默认值。
// ============================================================
// ------------------------------------------------------------
// 配置加载方式
// ------------------------------------------------------------
// 是否在启动时从 SD 卡 CONFIG.TXT 加载配置
// 1 = 运行时加载(文件内容覆盖以下编译期值)
// 0 = 仅使用以下编译期值,不读取文件(安全,可重复)
#define CFG_LOAD_FROM_FILE 0
// ------------------------------------------------------------
// 数据输出控制
// ------------------------------------------------------------
// RS485 串口输出开关
// 1 = 每帧 ADC 数据通过 USART1 以 2Mbps 发送
// 0 = 禁用串口输出,降低功耗和 CPU 占用
#define CFG_UART_OUTPUT_ENABLED 0
// SD 卡数据存储开关
// 1 = 每帧数据写入 SD 卡 DATA/SESSION_xxx/ 目录下的文件
// 0 = 禁用存储SD 卡仅用于 USB MSC 访问
#define CFG_STORAGE_ENABLED 1
// ------------------------------------------------------------
// 功能模块开关
// ------------------------------------------------------------
// 系统监控统计模块
// 1 = 启用统计采样次数、丢帧数、SD 写入量、串口发送量,
// 并定期输出到调试串口 / 写入 LOG.TXT
// 0 = 禁用:相关代码被条件编译剔除,节省 Flash 和运行时开销
#define CFG_ENABLE_SYSTEM_MONITOR 0
// 数据包中包含 GPS 经纬度和海拔字段
// 1 = 每帧包含 latitude(float) + longitude(float) + altitude(float),包体增大 12 字节
// 0 = 仅保留 GPS 时间戳gps_time包体更小适合不需要位置信息的场景
#define CFG_ENABLE_GPS_POSITION 0
// ------------------------------------------------------------
// 调试与监控定时参数
// ------------------------------------------------------------
// 调试信息通过 RS485 输出的时间间隔(毫秒)
// 控制 DebugOutput_PrintSystemStats() 的调用频率
// 建议范围50005秒~ 600001分钟
#define CFG_DEBUG_OUTPUT_INTERVAL_MS 30000
// 监控统计数据写入 SD 卡 LOG.TXT 的时间间隔(毫秒)
// 间隔越短日志越详细,但 SD 卡写入操作越频繁
// 建议范围1000010秒~ 3000005分钟
#define CFG_MONITOR_SAVE_INTERVAL_MS 30000
// ------------------------------------------------------------
// SD 卡存储参数
// ------------------------------------------------------------
// SD 卡写入双缓冲区单个缓冲区大小(字节)
// 更大的缓冲区可减少写入次数,提升吞吐量,但占用更多 RAM
// STM32F405 RAM 为 192KB建议不超过 6553664KB
// 典型值3276832KB / 6553664KB
#define CFG_STORAGE_BUFFER_SIZE 32768
// 单个数据文件的最大大小(字节),超过后自动创建新文件
// 较小的文件便于传输和分析,较大的文件减少文件切换开销
// 典型值100MB / 500MB / 1024MB
#define CFG_STORAGE_FILE_MAX_SIZE (100 * 1024 * 1024)
#endif // APP_CONFIG_H