Skip to content

Releases: Xyf0606/Neumann-Trend-Test

NTT v3.0.0 release

02 Jun 15:58
97f6b3c

Choose a tag to compare

[3.0.0] - 2025-06-02

🚀 重大版本更新 | Breaking Changes

这是一个具有重大变更的版本更新,彻底重构了数据输入体验,引入了现代化的类 Excel 数据输入界面。

✨ 核心功能:现代化数据输入界面

🎯 Excel 风格的双栏数据输入系统

  • 革命性 UI 设计:实现类似 Excel 的双栏并排数据输入界面
    • 左栏:时间点输入区域,支持实时编辑和验证
    • 右栏:数据值输入区域,支持实时编辑和验证
    • 自动行号显示,清晰的数据组织结构
    • 智能单元格状态指示(有效/无效/空值)

⌨️ 现代化键盘导航系统

  • 直观的操作体验
    • ↑↓ 键:上下移动浏览数据行
    • ←→ 键:左右切换时间栏和数据栏
    • Enter 键:进入编辑模式,编辑完成后自动跳转下一行
    • Ctrl+S:保存所有数据并继续测试流程
    • Esc:随时退出而不保存数据
    • 支持传统方向键和 Vim 风格键位(可配置)

🖥️ 智能终端适应技术

  • 动态界面调整
    • 实时检测终端窗口大小,动态计算最佳显示行数
    • 小终端(<20 行可用空间):显示 15 行数据
    • 中等终端(20-40 行):显示 25 行数据
    • 大终端(41-60 行):显示 40 行数据
    • 超出显示范围时自动启用滚动浏览功能

📊 增强的数据处理能力

  • 智能数据管理
    • 支持大量数据点的流畅输入和编辑
    • 实时数据验证,即时反馈无效输入
    • 自动扩展数据行,按需增加输入空间
    • 数据预览和编辑状态可视化
    • 支持导入初始数据进行编辑和扩展

🔧 技术架构重大改进

📁 新增核心组件

  • DataEditor 类
    • include/cli/data_editor.h:完整的数据编辑界面 API
    • src/cli/data_editor.cpp:现代化数据编辑引擎实现
    • 基于 FTXUI 框架,提供流畅的终端 UI 体验
    • 模块化设计,可配置和可扩展的架构

🔧 文件浏览器重大升级

  • FileBrowser 动态适应优化
    • 智能显示行数计算:从硬编码固定值改为动态终端适应
    • 修复配置限制问题:解决了动态计算被配置值错误限制的 bug
    • 默认配置优化:最大显示项目数从 15 调整为 25,更好利用终端空间
    • 终端适应算法
      • 小终端:15 行显示
      • 中等终端:25 行显示
      • 大终端:40 行显示
    • 配置系统改进:BrowserConfig 默认值优化,支持 0 值自动计算模式

⚙️ 配置系统增强

  • EditorConfig 配置结构
    • showRowNumbers:行号显示控制
    • enableVimKeys:Vim 键位支持开关
    • maxDisplayItems:最大显示行数配置(0=自动计算)
    • timeLabeldataLabel:可自定义的栏位标题
    • 完整的默认配置和运行时修改支持

🖥️ 终端技术优化

  • 动态终端适应
    • 基于 FTXUI Terminal API 的实时尺寸检测
    • 智能 UI 布局计算,固定元素和可变元素分离
    • 异常处理和降级机制,确保各种终端环境的兼容性
    • 滚动偏移自动调整,保持最佳可视性

🔄 集成与兼容性

🔗 无缝集成现有工作流

  • Terminal UI 集成
    • 新增promptForDataModern()方法替代传统分别输入
    • 保持现有测试流程不变,仅升级输入体验
    • 自动配置传承,使用全局语言和显示设置
    • 向下兼容,不影响其他功能模块

📦 构建系统更新

  • CMake 配置调整
    • src/cli/CMakeLists.txt更新,添加新的数据输入组件
    • 依赖关系优化,确保 FTXUI 组件正确链接
    • 跨平台构建验证,Windows/Linux/macOS 全平台支持

⚠️ 重大变更 (Breaking Changes)

🎯 数据输入方式变更

  • 输入界面重构
    • 手动数据输入现在使用现代化双栏界面,不再是传统的命令行逐个输入
    • 操作流程改变:启动界面 → 双栏输入 → Ctrl+S 保存 → 继续测试
    • 用户需要适应新的键盘操作方式,但体验更加直观和高效

🔧 默认配置调整

  • 文件浏览器优化
    • 默认最大显示项目数从 15 调整为 25,更好利用终端空间
    • 动态计算算法改进,适应更多终端环境
    • 配置文件格式保持兼容,自动升级到新默认值
    • 修复关键 bug:解决了动态计算功能被错误配置值限制的问题
    • 智能适应算法:实现了真正的终端尺寸自适应显示

📝 翻译键更新

  • 国际化键值变更
    • 新增多个 UI 专用翻译键,旧版本翻译文件需要更新
    • 移除所有硬编码文本,确保完整的多语言支持
    • 翻译文件向下兼容,缺失键值自动降级到英文

🎯 用户体验革命

⚡ 效率提升

  • 数据输入效率
    • 双栏并排输入,避免频繁切换和重复操作
    • 自动焦点跳转,Enter 键完成编辑并移动到下一行
    • 大数据集滚动浏览,不再受限于固定显示行数
    • 实时验证反馈,减少输入错误和重复修正

🎨 视觉体验

  • 现代化界面设计
    • 清晰的数据结构展示,类似专业数据处理软件
    • 直观的状态指示,实时了解操作状态和数据有效性
    • 和谐的配色方案,减少视觉疲劳
    • 响应式布局适应,在各种终端尺寸下都有最佳体验

🔧 操作便利性

  • 人性化交互设计
    • 符合直觉的键盘操作,降低学习成本
    • 容错性强的输入处理,支持随时取消和修改
    • 完整的操作指南,界面内置帮助信息
    • 无需记忆复杂命令,图形化操作引导

📚 文档与支持

📖 使用指南更新

  • 新用户引导
    • 数据输入界面完整操作说明
    • 键盘快捷键参考表
    • 常见使用场景和最佳实践
    • 故障排除和性能优化建议

🛠️ 开发者资源

  • 技术文档
    • DataEditor API 完整文档
    • 配置选项详细说明
    • 自定义扩展和集成指南
    • 国际化翻译贡献指南

🔮 未来发展方向

🎯 短期计划

  • 功能增强
    • 数据导入/导出集成到现代化界面
    • 更多键盘快捷键和操作选项
    • 数据验证规则自定义
    • 模板和预设数据支持

🚀 长期愿景

  • 平台扩展
    • Web 界面类似功能实现
    • 移动终端适配优化
    • 云端数据同步支持
    • 第三方工具集成接口

NTT v2.9.0 release

31 May 12:33
564e9ec

Choose a tag to compare

[2.9.0] - 2025-05-31

🔧 Excel 文件支持完善

  • 实现真正的 .xlsx 文件读取功能
    • 基于 ZIP 解压的 Excel 文件解析引擎,无需第三方库
    • 支持复杂的 Excel 文件结构和多工作表文件
    • 智能工作表检测和选择功能
    • 共享字符串表完整支持,正确处理 Excel 中的文本内容
    • 自动列类型识别,智能检测时间列和数据列
    • 高效的内存管理,支持大型 Excel 文件处理

✨ 用户体验优化

  • Excel 导入流程完全重构
    • 移除硬编码的"不支持 Excel"错误提示
    • 增强的文件格式检测,自动识别 .xlsx、.xls、.csv 格式
    • 智能数据验证,确保导入数据的完整性和正确性
    • 友好的错误提示和明确的解决建议
    • 数据预览功能,导入前可查看文件内容概览

🛠️ 技术架构提升

  • 现代化的 Excel 处理引擎
    • 使用标准 C++17 实现,无需额外依赖
    • 跨平台兼容性,支持 Windows、Linux、macOS
    • 临时文件自动清理机制,避免磁盘空间占用
    • 完善的异常处理和错误恢复机制
    • 支持降级处理,Excel 解析失败时提供 CSV 转换建议

📝 翻译资源扩展

  • 新增 Excel 处理相关翻译键
    • excel.processing_xlsx:正在处理 Excel 文件提示
    • excel.xls_not_supported:旧版 Excel 格式不支持提示
    • excel.parse_failed:Excel 文件解析失败提示
    • excel.fallback_suggestion:降级处理建议
    • 完整的中英文对照翻译,保持国际化一致性

🐛 问题修复

  • 🐛 修复 Excel 文件导入时显示硬编码错误提示的问题
  • 🐛 修复 .xlsx 文件无法正确识别和处理的问题
  • 🐛 修复 Excel 导入功能名不副实的问题
  • 🐛 修复 文件格式检测不准确的问题

⚠️ 重要变更

  • Excel 支持:现在真正支持 .xlsx 文件格式,不再只是框架
  • 文件格式:.xls 格式仍不支持,建议转换为 .xlsx 或 .csv
  • 用户体验:Excel 导入现在是完整的功能而不是占位符

🔧 技术改进

  • 解析性能:优化 Excel 文件解析速度,支持大文件处理
  • 内存效率:改进内存使用,避免大文件导致的内存溢出
  • 错误处理:增强错误处理机制,提供更好的用户反馈
  • 代码质量:重构 ExcelReader 类,提高代码可维护性

NTT v2.7.1 release

30 May 09:20
69dcdc4

Choose a tag to compare

[2.7.1] - 2025-05-30

🌐 国际化系统完善

  • 彻底消除硬编码文本 - 修复 Web 服务器启动模块的国际化问题
    • 替换 web_main.cpp 中所有硬编码启动信息为翻译系统调用
    • 信号处理、错误信息、帮助文档全部使用翻译键
    • cli_main.cpp 保持一致的国际化实现方案
    • 支持运行时语言切换和动态翻译更新

✨ 模板系统优化

  • 完善 getTextf 模板函数 - 优化格式化文本处理机制
    • 修复模板函数链接错误,添加缺失的模板实例化
    • 支持 std::string 非引用版本的模板参数
    • 充分利用现有的格式化文本系统,避免代码重复
    • 提供类型安全的多参数格式化支持

🐛 问题修复

  • 🐛 修复 Web 服务器启动时显示硬编码中文文本的问题
  • 🐛 修复 信号处理函数无法正确显示翻译文本的问题
  • 🐛 修复 帮助信息无法根据语言设置显示对应文本的问题
  • 🐛 修复 getTextf 模板函数的链接错误

⚠️ 重要变更

  • 启动信息国际化:Web 服务器启动信息现在完全支持中英文切换
  • 模板实例化扩展:添加了 std::string 值类型的模板实例化
  • 翻译键命名规范:所有 Web 服务器相关翻译键采用 web.app.* 前缀

NTT v2.3.0 release

29 May 12:21

Choose a tag to compare

NTT v2.3.0 release Pre-release
Pre-release

[2.3.0] - 2025-05-29

🔧 重要修复

  • 静态编译优化 - 彻底解决 Windows 运行库依赖问题
    • 完全静态链接 MinGW 运行时库
    • 消除libwinpthread-1.dlllibgcc_s_seh-1.dlllibstdc++-6.dll依赖
    • 可执行文件现在只依赖 Windows 系统库,可在任何 Windows 机器上运行
    • 更新 CMake 配置,添加-static -pthread -Wl,-Bstatic链接选项

🌐 国际化改进

  • 消除硬编码文本 - 修复 Web 界面翻译键显示问题
    • 替换所有硬编码中英文文本为翻译系统调用
    • 修复result.test_resultsaction.save_dataset等翻译键映射错误
    • 添加 75+个新翻译键,涵盖所有前端功能模块
    • 优化翻译 API 性能,支持实时语言切换

🚀 用户体验优化

  • 自动启动流程 - CLI 应用现在自动启动 Web 服务器
    • 程序启动时自动启动 Web 服务器并打开浏览器
    • 提供 Web 界面/CLI 界面选择,默认推荐 Web 界面
    • 优化用户引导流程,降低使用门槛
    • 改进错误处理,提供清晰的失败反馈

NTT v2.2.1 release

29 May 08:28
4fbfbb9

Choose a tag to compare

[2.2.1] - 2025-05-29

🔧 智能配置管理

  • 新增 用户私有配置文件系统,配置与系统默认分离
  • 新增 智能配置加载:用户私有 > 系统默认 > 内置默认
  • 新增 权限友好设计,无权限时自动降级到只读模式
  • 新增 用户系统文件目录 (data/usr/) 自动管理

🌍 国际化完善

  • 🐛 修复 标准值模块硬编码中文文本,完全支持多语言
  • 🐛 修复 程序启动时翻译键显示英文的问题
  • 新增 25 个新翻译键,覆盖错误、成功、警告消息

🐛 Bug 修复

  • 🐛 修复 置信度显示精度问题(现在正确显示 0.990 而不是 0.9)
  • 🐛 修复 自定义置信度导入过程中的硬编码文本显示

⚠️ 重要变更

  • 配置文件:现在优先使用 data/usr/config_private.json
  • 目录结构:新增 data/usr/ 用户配置目录
  • 启动顺序:翻译系统在配置系统之前初始化

🔄 向后兼容

  • ✅ 保持所有现有功能和配置格式兼容
  • ✅ 自动从旧版本迁移配置和标准值文件
  • ✅ 无缝升级体验,无需手动操作

其他变更

  • ⚠️ 不再提供编译包,用户请使用git拉取主分支代码自行构建

NTT v2.2.0 release

28 May 09:33
25cc365

Choose a tag to compare

[2.2.0] - 2025-05-28

🌐 统一启动方式

Web 服务器集成

  • 新增 CLI 应用中集成 Web 服务器启动功能
  • 新增 在主菜单中添加"启动 Web 服务器"选项
  • 新增 Web 服务器配置界面,支持端口和 Web 资源目录设置
  • 新增 Web 服务器状态管理,支持启动、停止和状态查询
  • 新增 智能端口配置,支持自定义端口并保存到配置文件

启动脚本简化

  • 新增 统一启动脚本 start.bat (Windows) 和 start.sh (Linux/macOS)
  • 移除 独立的 Web 启动脚本,简化项目结构
  • 改进 启动脚本提供中英文双语说明
  • 优化 错误处理和用户提示信息

用户体验改进

  • 新增 Web 服务器后台运行模式,用户可继续使用 CLI 功能
  • 新增 Web 服务器访问 URL 显示,方便用户打开浏览器
  • 新增 Web 服务器使用说明和操作指导
  • 新增 智能冲突检测,避免重复启动服务器

🎯 自定义置信度交互优化

选项式交互界面

  • 改进 自定义置信度设置改为选项式交互,提升用户体验
  • 新增 选项 1:手动输入自定义置信度值和标准值文件
  • 新增 选项 2:从示例文件目录加载预设置信度配置
  • 新增 示例文件自动扫描和列表显示功能

示例文件管理

  • 新增 自动扫描 data/sample/ConfidenceLevel/ 目录中的示例文件
  • 新增 支持 JSON 和 CSV 格式的示例文件选择
  • 新增 示例文件置信度自动检测和显示
  • 新增 示例文件加载的智能错误处理

🧮 核心算法优化

智能趋势判断逻辑

  • 重大改进 诺依曼趋势测试的整体趋势判断算法
  • 新增 药物稳定性测试专用的智能趋势检测逻辑
  • 实现 末端连续趋势点检测:如果末端连续有 2 个或更多趋势点,判断为存在显著趋势
  • 新增 少量测试点的特殊处理:对于 ≤3 个测试点,如果超过一半显示趋势也判断为有趋势
  • 移除 简单的"只要有一个测试点判断存在趋势,整体就视为存在趋势"的旧逻辑
  • 优化 趋势判断更适合药物稳定性研究的实际需求

结果显示一致性修复

  • 修复 汇总结果和测试结论使用不同判断逻辑的问题
  • 统一 所有结果显示组件使用相同的overallTrend判断标准
  • 移除 平均 PG 值与 1.0 比较的旧逻辑,改为使用智能趋势判断结果
  • 确保 CLI 界面、Web 界面、批量处理报告的结果显示一致性

🎨 用户界面改进

菜单显示优化

  • 修复 主菜单编号对齐问题,数字位数不同导致的文本内容不对齐
  • 新增 菜单项编号固定宽度格式化,使用std::setw(2)确保对齐
  • 支持 最多 99 个菜单项的对齐显示
  • 改进 菜单视觉美观度和可读性

状态栏双语支持

  • 修复 右上角置信度显示硬编码英文"Confidence"的问题
  • 新增 status.confidence翻译键,支持中英文双语显示
  • 实现 置信度显示的完整国际化支持
  • 统一 状态栏所有元素的双语适配

🔧 技术架构改进

Web 服务器集成架构

  • 新增 TerminalUI 类中的 Web 服务器成员变量和管理方法
  • 新增 startWebServer() 方法实现完整的 Web 服务器生命周期管理
  • 新增 Web 服务器配置持久化,端口设置自动保存
  • 新增 析构函数确保 Web 服务器正确停止

翻译系统扩展

  • 新增 Web 服务器相关的完整中英文翻译键
  • 新增 自定义置信度交互相关的翻译键
  • 新增 错误处理和用户提示的翻译支持

📚 文档更新

用户文档

  • 更新 README.md,反映新的统一启动方式
  • 更新 版本号从 v2.1.0 升级到 v2.2.0
  • 更新 发布包结构说明,移除独立 Web 应用
  • 更新 使用指南,详细说明 Web 服务器集成功能

项目结构

  • 简化 启动脚本,只保留统一的 start.bat 和 start.sh
  • 优化 项目根目录结构,减少文件数量
  • 改进 发布包组织,更加简洁明了

🐛 问题修复

交互体验修复

  • 🐛 修复 自定义置信度设置的用户体验问题
  • 🐛 修复 示例文件路径处理的兼容性问题
  • 🐛 修复 Web 服务器重复启动的检测逻辑

核心算法修复

  • 🐛 修复 趋势判断逻辑不一致导致的用户困惑问题
  • 🐛 修复 汇总结果显示与测试结论不匹配的问题
  • 🐛 修复 平均 PG 值判断逻辑与实际趋势检测结果不符的问题

显示问题修复

  • 🐛 修复 主菜单编号对齐问题
  • 🐛 修复 置信度显示语言硬编码问题
  • 🐛 修复 翻译文件中置信度显示格式不一致问题

⚠️ 重要变更

  1. 趋势判断算法:采用新的智能趋势判断逻辑,更适合药物稳定性测试
  2. 启动方式变更:现在只需要运行一个启动脚本,Web 功能集成在 CLI 中
  3. Web 服务器管理:Web 服务器现在作为 CLI 的一个功能模块,而非独立应用
  4. 自定义置信度交互:改为更友好的选项式交互方式
  5. 项目结构简化:移除了独立的 Web 启动脚本

🔄 向后兼容性

  • 保持 所有现有配置文件格式兼容
  • 保持 数据文件和标准值文件格式兼容
  • 保持 CLI 功能完全兼容
  • 保持 Web 界面功能完全兼容

[2.1.0] - 2025-05-26

🎨 用户界面增强

置信度配置系统优化

  • 新增 可视化置信度设置菜单,支持预设值选择(90%, 95%, 99%)
  • 新增 自定义置信度输入功能,支持 0.0-1.0 范围内任意值
  • 新增 置信度配置持久化保存,重启后保持用户设置
  • 改进 置信度选择界面,动态显示支持的置信度水平
  • 新增 默认值标识,清晰显示推荐的 95%置信度

状态栏显示系统

  • 新增 右上角状态栏,实时显示当前置信度水平
  • 新增 应用标题和状态信息的美观布局
  • 新增 彩色状态栏,使用青色和绿色突出显示重要信息
  • 改进 终端宽度自适应,确保状态栏在不同终端下正确显示

测试流程优化

  • 改进 新建测试流程,自动使用配置的置信度而非每次询问
  • 新增 置信度使用提示,告知用户当前使用的置信度水平
  • 新增 设置修改引导,提示用户可在设置菜单中更改置信度
  • 优化 测试结果显示,更清晰地展示使用的置信度参数

结果显示美化

  • 改进 测试结果汇总框的边框设计,使用完整的闭合边框
  • 优化 边框宽度计算,确保内容正确对齐
  • 新增 彩色边框支持,根据测试结果使用不同颜色
  • 改进 内容填充计算,解决边框对齐问题

🔧 配置系统改进

配置文件路径管理

  • 新增 setConfigFilePath() 方法,支持动态设置配置文件路径;导出的svg文件默认保存在data/svg目录下
  • 修复 配置保存路径不一致问题,确保加载和保存使用相同路径
  • 改进 启动逻辑,正确设置配置文件路径后再进行保存操作
  • 新增 配置目录自动创建,确保配置文件能够正确保存

语言设置持久化

  • 修复 语言设置无法持久保存的问题
  • 改进 语言切换流程,立即保存设置并提供用户反馈
  • 新增 配置保存状态提示,告知用户设置是否成功保存
  • 优化 语言菜单返回逻辑,设置完成后自动返回主菜单

🏗️ 架构优化

应用启动流程改进

  • 改进 CLI 应用启动逻辑,正确处理 release 文件结构
  • 修复 配置文件加载顺序,确保路径设置在配置保存之前完成
  • 新增 配置目录检查和创建逻辑
  • 优化 错误处理,提供更友好的启动失败提示

代码质量提升

  • 改进 边框计算逻辑,使用更精确的宽度计算方法
  • 优化 颜色输出代码,统一使用 TerminalUtils 进行彩色输出
  • 重构 状态栏显示代码,提高代码可维护性
  • 完善 注释和文档,提高代码可读性

🐛 问题修复

显示问题修复

  • 🐛 修复 测试结果汇总框边框对齐问题
  • 🐛 修复 状态栏在不同终端宽度下的显示问题
  • 🐛 修复 彩色输出在某些终端下的兼容性问题
  • 🐛 修复 边框宽度计算错误导致的显示异常

配置问题修复

  • 🐛 修复 置信度设置无法保存的问题
  • 🐛 修复 语言设置重启后丢失的问题
  • 🐛 修复 配置文件路径不一致导致的保存失败
  • 🐛 修复 配置目录不存在时的创建失败问题

📚 文档更新

用户文档

  • 更新 README.md,添加 v2.1.0 新功能说明
  • 新增 置信度配置使用指南
  • 新增 状态栏功能说明
  • 更新 版本号和发布包信息

开发文档

  • 完善 代码注释,特别是新增功能的注释
  • 更新 变更日志,详细记录所有改进和修复
  • 新增 配置系统架构说明

⚠️ 重要变更

  1. 配置文件路径:现在正确支持 release 文件结构下的配置保存
  2. 置信度设置:新的可视化设置界面,支持更灵活的配置
  3. 状态栏显示:新增的状态栏提供实时的应用状态信息
  4. 测试流程:简化的测试流程,减少用户重复输入

🔄 向后兼容性

  • 保持 所有现有配置文件格式兼容
  • 保持 命令行参数和 API 兼容性
  • 支持 旧版本配置文件自动升级
  • 保持 数据文件格式完全兼容

其他

  • 移除 .vscode/文件索引

NTT v2.0.0 版本发布

24 May 09:03
d3bf381

Choose a tag to compare

[2.0.0] - 2025-05-24

🚀 重大更新 - 完整三阶段改进

这是一个重大版本更新,包含了完整的三阶段系统改进,显著提升了用户体验、功能性和可靠性。

🌐 第一阶段:基础设施建设

双语国际化支持系统

  • 新增 完整的中文/英文双语界面支持
  • 新增 运行时语言切换功能
  • 新增 外部翻译文件支持 (config/translations.json)
  • 新增 内置默认翻译作为后备
  • 新增 便利宏 _()_f() 简化多语言开发
  • 实现文件: include/core/i18n.h, src/core/i18n.cpp

统一配置管理系统

  • 新增 JSON 格式配置文件 (config/config.json)
  • 新增 自动创建默认配置
  • 新增 运行时配置修改和持久化保存
  • 新增 单例模式确保全局配置一致性
  • 支持配置项: 语言设置、路径配置、置信度、UI 选项、数据处理限制
  • 实现文件: include/core/config.h, src/core/config.cpp

增强错误处理系统

  • 新增 分类错误代码系统(文件、数据、计算、网络、配置、系统)
  • 新增 多语言错误消息和用户友好的解决建议
  • 新增 自定义异常类 NeumannException
  • 新增 统一错误日志记录和显示
  • 实现文件: include/core/error_handler.h, src/core/error_handler.cpp

🎨 第二阶段:用户体验提升

彩色终端输出系统

  • 新增 完整的 ANSI 颜色支持(16 色 + 亮色变体)
  • 新增 文本样式支持(加粗、斜体、下划线等)
  • 新增 自动平台检测和兼容性处理
  • 新增 Windows 10+ ANSI 转义序列支持
  • 新增 便利的消息类型函数(成功、警告、错误、信息)
  • 实现文件: include/cli/terminal_utils.h, src/cli/terminal_utils.cpp

进度指示器和加载动画

  • 新增 可配置的进度条显示
  • 新增 旋转加载指示器(Spinner)
  • 新增 实时进度更新和光标控制
  • 新增 清屏和终端操作功能

增强的表格格式化

  • 新增 自动列宽调整和多种对齐方式
  • 新增 彩色表格分隔线
  • 新增 内容截断和省略处理
  • 新增 中文字符宽度正确计算

Excel 文件支持基础架构

  • 新增 文件类型自动检测(.csv, .xlsx, .xls)
  • 新增 增强的 CSV 解析(支持引号字段)
  • 新增 自动列类型检测(数值/文本)
  • 新增 智能时间列和数据列识别
  • 新增 数据预览和验证功能
  • 实现文件: include/core/excel_reader.h, src/core/excel_reader.cpp

CLI 界面全面美化

  • 改进 集成彩色输出到所有界面元素
  • 改进 美化的欢迎界面和菜单系统
  • 改进 彩色的测试结果表格(趋势结果颜色编码)
  • 改进 进度指示器集成
  • 改进 统一的消息样式和错误显示

🔧 第三阶段:标准值修正和验证

标准值表数据修正

  • 🐛 修复 标准值表中 P(95%)和 P(99%)数据不匹配问题
  • 🐛 修复 JSON 文件中数据排序问题,确保按样本数升序排列
  • 更新 置信度选择界面,动态显示支持的置信度
  • 验证 大数据集处理能力(4-60 个数据点)
  • 新增 大数据集测试文件:
    • large_dataset_45_points.csv (45 个数据点)
    • extra_large_dataset_55_points.csv (55 个数据点)

批量处理系统

  • 新增 目录扫描和批量文件处理
  • 新增 实时进度显示和错误处理
  • 新增 批量结果汇总和统计分析
  • 新增 CSV 和 HTML 格式的批量报告导出
  • 实现文件: include/core/batch_processor.h, src/core/batch_processor.cpp

数据可视化系统

  • 新增 ASCII 艺术图表(CLI 内实时显示)
  • 新增 SVG 格式高质量矢量图表导出
  • 新增 趋势图、PG 值分布图、阈值比较图
  • 实现文件: include/core/data_visualization.h, src/core/data_visualization.cpp

高级统计功能

  • 新增 多数据集统计分析
  • 新增 趋势检测统计汇总
  • 新增 PG 值分布分析
  • 新增 数据集比较功能

🛠️ 技术架构改进

模块化设计

  • 重构 核心算法、CLI 界面、Web 服务完全分离
  • 实现 单例模式确保全局状态一致性
  • 应用 RAII 模式实现自动资源管理

性能优化

  • 优化 静态链接,无运行时依赖
  • 优化 O(n²)时间复杂度的 PG 值计算算法
  • 优化 数据流式处理,支持大型数据集

跨平台兼容性

  • Windows: 原生 ANSI 颜色支持,UTF-8 编码
  • Linux/macOS: 完整 POSIX 兼容,终端颜色自适应
  • Web 标准: HTML5 + JavaScript,现代浏览器支持

📁 文件发布系统改进

发布包生成

  • 改进 create-release.bat 脚本,支持特殊字符文件名
  • 新增 自动复制标准值参考文件(MD 和 PDF 格式)
  • 改进 用户说明文档生成
  • 新增 完整的目录结构说明

启动脚本更新

  • 更新 start-cli-app.batstart-web-app.bat
  • 新增 参数传递支持
  • 改进 错误处理和用户提示

📊 数据处理能力扩展

扩展的数据点支持

  • 扩展 样本数量支持从 4-20 扩展到 4-60
  • 验证 大数据集处理稳定性
  • 新增 置信度支持:95%, 99%, 99.9%(移除 0.90 和 0.975)

数据格式支持

  • 完善 CSV 文件解析,支持复杂格式
  • 准备 Excel 文件支持框架
  • 新增 数据验证和清理功能

🌐 多语言支持完善

翻译内容扩展

  • 新增 558 项完整的中英文翻译条目
  • 覆盖 所有 UI 元素、错误消息、帮助信息
  • 新增 Excel 文件、批量处理、数据可视化相关翻译
  • 新增 教程系统和统计分析翻译

国际化框架

  • 支持 运行时语言切换
  • 支持 外部翻译文件加载
  • 支持 格式化字符串翻译

⚙️ 配置系统完善

配置项扩展

{
  "language": "zh", // 界面语言
  "defaultConfidenceLevel": 0.95, // 默认置信度
  "dataDirectory": "data", // 数据目录
  "webRootDirectory": "web", // Web资源目录
  "defaultWebPort": 8080, // Web端口
  "showWelcomeMessage": true, // 显示欢迎消息
  "enableColorOutput": true, // 彩色输出
  "maxDataPoints": 1000, // 最大数据点数
  "autoSaveResults": true // 自动保存结果
}

🧪 测试和验证

示例数据扩展

  • 新增 large_dataset_45_points.csv - 45 个数据点的药物含量趋势
  • 新增 extra_large_dataset_55_points.csv - 55 个数据点的活性成分衰减
  • 保留 原有示例数据集
  • 新增 大数据集处理说明文档

功能验证

  • 验证 标准值表数据正确性
  • 验证 大数据集处理稳定性
  • 验证 跨平台兼容性
  • 验证 彩色输出在不同终端的表现

📚 文档更新

用户文档

  • 全面更新 README.md,包含完整功能介绍
  • 新增 快速开始指南和详细使用说明
  • 新增 故障排除和性能建议章节
  • 新增 技术特性和架构说明

开发文档

  • 新增 贡献指南和开发环境设置
  • 更新 构建说明和依赖要求
  • 完善 API 文档和代码注释

🔄 向后兼容性

  • 保持 原有数据格式兼容性
  • 保持 命令行参数兼容性
  • 支持 配置文件自动迁移
  • 保持 Web API 兼容性

⚠️ 重大变更

  1. 置信度支持变更:移除 0.90 和 0.975 置信度,标准化为 0.95, 0.99, 0.999
  2. 样本数量扩展:从 4-20 扩展到 4-60 个数据点
  3. 配置文件格式:新增多个配置项,旧配置文件会自动升级
  4. 文件结构调整:标准值文件和翻译文件位置调整

其他改进

  1. 移除create-release.bat:该发布脚本现在更名为install.bat,存放在NTT-x86_64-windows-v2.0.0-build.zip中,供 Windows 用户自行构建release
  2. 添加.clang-format:统一代码风格
  3. 修改config/文件可见性:移除普通用户在程序中修改默认配置的权限,用户配置单独储存

NTT v1.2.0 版本发布

21 May 13:04
75a7131

Choose a tag to compare

变更日志 (Changelog)

[1.2.0] - 2025-05-21

构建系统升级

  • 集成 CMakePresets.json,提供标准化构建配置
    • 添加 6 个预设配置:msvc-release、msvc-debug、mingw-release、mingw-debug、linux-release、linux-debug
    • 支持不同编译器和平台的无缝切换
    • 自动配置 vcpkg 和编译器路径
  • 优化依赖项检测逻辑,避免自动下载阻塞构建流程
  • 为 MSVC 和 MinGW 工具链提供专用构建预设
  • 移除冗余的构建脚本,简化构建命令
  • 改进输出目录结构
    • 二进制文件现统一输出至项目根目录的 bin 文件夹
    • 库文件统一输出至项目根目录的 lib 文件夹
    • 简化程序访问路径,便于直接调用
    • 更新启动脚本,自动查找新路径下的可执行文件

应用程序启动改进

  • 添加标准化启动脚本
    • 新增 start-cli-app.bat/sh 用于启动命令行应用
    • 更新 start-web-app.bat 适配新的输出目录
    • 自动检测不同构建环境下的可执行文件位置
    • 支持命令行参数传递
  • 添加预编译版本发布功能
    • 新增 create-release.bat/sh 脚本自动创建发布包
    • 支持一键打包应用程序及所需资源
    • 生成适用于最终用户的简化说明文档

开发工具增强

  • 大幅改进 clangd 配置,修复源码解析问题
    • 使用.clangd 配置文件替代旧的 setup-clangd.bat 脚本
    • 添加智能包含路径检测,支持不同构建目录结构
    • 配置多个库路径备选项,提高解析成功率
    • 添加编译器特定路径支持
  • 优化 .clangd 配置文件,提供更准确的包含路径
  • 完善 VSCode 集成配置,增强编辑体验
  • 添加编译器特定的路径支持,解决跨编译器使用问题

项目结构优化

  • 清理冗余构建脚本和辅助文件
    • 移除了 10 个冗余脚本文件,包括:build-preset、cleanup-scripts、run-web-utf8 等
    • 合并功能到标准化的 build.bat/build.sh 脚本中
    • 删除了 mingw-toolchain.cmake,通过 CMakePresets 替代
  • 更新 .gitignore 规则
  • 优化项目文档结构
  • 简化构建和设置流程

[1.1.0] - 2025-05-20

构建系统改进

  • 添加平台自动检测功能,根据平台选择合适的工具链
  • 改进 Windows 平台 MinGW 工具链支持
  • 添加自定义 MinGW 工具链配置文件
  • 为 clangd 语言服务器添加支持
  • 更新构建脚本,支持不同编译器选择

开发体验

  • 添加 VSCode 配置文件,优化开发体验
  • 自动生成 compile_commands.json 文件
  • 配置 clangd 语言服务器与 MinGW 集成
  • 文档更新,增加高级构建配置说明

[1.0.0] - 2025-5-11

项目重构

  • 完全重构项目结构,采用模块化设计
  • 创建了核心模块、CLI 模块和 Web 模块
  • 使用 CMake 构建系统管理项目
  • 添加了测试框架和单元测试

新功能

  • 支持多种置信水平 (0.90, 0.95, 0.975, 0.99)
  • 样本大小支持从 4 到 20
  • 添加数据管理功能,支持保存和加载数据集
  • 增强 CSV 导入功能
  • 添加交互式终端界面 (使用 FTXUI 库)
  • 添加 Web 界面 (使用 Crow 框架)
  • JSON 文件存储所有标准 W(P)值

文档

  • 创建详细的 README 文件
  • 添加构建说明和使用说明
  • 添加示例数据文件

开发工具

  • 添加 Windows 和 Linux/Mac 构建脚本
  • 配置单元测试和 CTest 集成
  • 自动下载依赖库