16 Commits

Author SHA1 Message Date
Developer
57badf213a feat(auth): 添加启动认证功能
- 在本地化文件中添加认证相关的多语言支持
- 实现密码验证逻辑和锁定机制
- 创建登录页面UI组件
- 集成路由保护,未认证用户自动重定向到登录页
- 支持密码错误次数限制和倒计时锁定功能
2026-06-12 15:30:25 +08:00
Developer
3d849bd468 feat(i18n): 完成全量 UI 文本国际化,替换所有硬编码中文为 AppLocalizations 调用
- core/localization: 新增约 60 个翻译键(含参数化方法),中英双语覆盖
- shared/widgets: CommonDialog 默认参数国际化
- features/home: 完成页操作步骤指引、状态栏串口连接状态、程序列表状态标签
- features/programs: 表头状态列、表单验证提示、导入/模板操作反馈、删除确认(参数化)
- features/program_detail: 步骤列表/表单标题、删除确认、速度档位显示(参数化)
- features/device: run_state_provider 错误消息改为错误码
- features/settings: 升级页、密码面板、语言面板、U盘导入面板、串口配置面板全部替换

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-12 15:09:47 +08:00
Developer
8c2e26ec87 feat(home): 更新完成页面UI并优化串口连接状态管理
- 更新设备屏幕尺寸配置从1920*1080调整为1024x600
- 添加完成页面的AppBar导航和返回功能
- 重构CompletePage布局,使用SafeArea和ConstrainedBox适配不同屏幕
- 添加国际化支持的完成按钮文本
- 优化完成页面视觉元素,包括图标大小和间距调整
- 实现串口连接状态的响应式管理,解决UI状态同步问题
- 优化串口运行器的状态更新逻辑,实现乐观更新机制
- 调整完成页面按钮布局,提供完成和重新运行选项
2026-06-05 10:03:41 +08:00
Developer
87c4b669a0 refactor(home): 优化运行状态监控界面布局和参数显示
- 将程序名文本包装在Flexible组件中并添加省略号处理
- 为步骤信息添加Flexible组件以改善布局
- 使用ScrollableVIew包装内容以支持滚动
- 重构步骤参数显示为三列布局
- 移除硬编码的温度和磁力时间参数
- 更新速度、持续时间和样品体积的单位显示
- 从状态栏移除设备名称显示
- 从设置菜单移除USB导入功能选项
2026-06-04 17:47:12 +08:00
Developer
736c36a98e refactor(home): 优化主页布局和运行控制面板
- 将主页左右布局改为弹性布局,左侧程序列表占2/5宽度,右侧控制区域占3/5宽度
- 移除程序列表组件的固定宽度设置,使其能够自适应布局
- 在运行控制面板中添加主轴最小尺寸限制以优化空间使用
- 移除暂停/继续按钮中的占位按钮,简化按钮逻辑
- 修改开始/继续按钮为暂停/继续按钮,支持运行中状态切换
- 更新按钮图标和文字根据当前运行状态动态显示
- 移除运行状态指示器,精简界面元素
2026-06-04 17:22:38 +08:00
Developer
37d2af70b7 feat(device): 启动自动连接 USB 串口 + 隐藏设置页配置项 + 标题栏连接状态
- 新增 AutoSerialConnect 服务:启动后自动连接第一个 USB 串口设备,
  固定 115200/8/N/1,连接失败时每 3s 重试,断开后重新进入重试循环
- main.dart 通过 ProviderContainer 在 runApp 之前触发 autoSerialConnectProvider
- 移除设置页「串口配置」菜单项及对应面板分支
- StatusBar 在「设备运行状态」前增加串口连接状态指示(已连接/连接中/未连接)
2026-06-04 16:57:45 +08:00
Developer
3ab2232845 refactor(device): 替换消息ID生成器为UUID实现
- 移除自定义时间戳+随机数ID生成逻辑
- 集成uuid包依赖并配置版本
- 使用Uuid.v4()替换原有next()方法实现
- 更新MessageIdGenerator类文档注释
- 在JSON协议层添加设备日志警告输出
- 修改pubspec.yaml添加uuid依赖声明
2026-06-04 16:45:06 +08:00
Developer
55bdaa9211 feat(programs): Excel 导入改为全量覆盖模式
已存在 code 的程序不再跳过,而是:
- 用 Excel 中的字段更新 program(保留 id)
- 删除该 program 的全部旧步骤
- 按 Excel 中的步骤重新写入

返回值变量名 importedCount -> processedCount 更准确。
Toast 文案同步:成功处理 / Excel 无有效数据。
2026-06-04 15:51:03 +08:00
Developer
cbe1e6b470 feat(programs): Android 端通过 MediaStore 写入公共 Downloads
Android 10+ 受 scoped storage 限制,getDownloadsDirectory() 返回的是
app-specific 目录 (/storage/emulated/0/Android/data/.../files/Download/),
而非用户可见的 /storage/emulated/0/Download/。

新增 MainActivity 端 MethodChannel com.xiarui.kuaishai2/downloads:
- API 29+:MediaStore.Downloads 写入公共 Downloads,无需权限
- API <=28:直接写 /storage/emulated/0/Download/(需 WRITE_EXTERNAL_STORAGE)

Dart 端 ExcelTemplateService 改用 MethodChannel,Android 平台返回
Download/<filename> 显示路径;其它平台保留 getDownloadsDirectory 行为。
返回值由 File 改为 String,调用方已同步更新。
2026-06-04 15:45:23 +08:00
Developer
16fbb7d54b refactor(programs): 模板保存目录改为下载目录
- getDownloadsDirectory() 优先,失败时回退到应用文档目录
- 更新 dartdoc 说明
2026-06-04 15:35:52 +08:00
Developer
d91791edaf feat(programs): Excel 模板下载 + .xlsx 解析导入
- 新增 excel 4.0.6 / path_provider 2.1.5 依赖
- ExcelTemplateService:生成 Programs + Steps 双表模板(保存到应用文档目录)
- ExcelImportService:解析 .xlsx 并写入数据库,跳过已存在 code、按 program_code 关联步骤
- programs_page 顶部新增「下载模板」按钮,导入按钮改用 Excel 解析
- 移除被取代的 program_import_service.dart
- AppLocalizations 新增 downloadTemplate 键
- 验证:flutter analyze 无新增 issue;flutter build apk --debug 通过
2026-06-04 15:27:34 +08:00
Developer
d53c41c300 feat(device): 添加USB设备通信支持和程序参数优化
- 在AndroidManifest.xml中添加USB Host权限和设备过滤器配置
- 新增设备控制国际化词条包括速度档位、吹气时间等
- 重构数据库结构将速度相关字段统一为档位数值存储
- 添加通用KV存储方法用于settings表数据读写
- 优化首页导航实现tab间跳转和状态保持功能
- 更新程序详情页面布局和参数表单界面
- 移除模拟运行器相关测试代码
- 添加USB串口通信依赖包usb_serial
2026-06-04 15:13:36 +08:00
Developer
67e2c7c76c refactor(settings): 语言/密码/U盘导入改用右侧内嵌面板
- 新增 LanguagePanel / PasswordPanel / UsbImportPanel 三个 widget
- settings_page 移除 AlertDialog 弹窗逻辑
- 5 个菜单项统一走 _buildContent() switch 切换右侧内容
- 验证:flutter analyze 无新增 issue
2026-06-04 15:10:03 +08:00
Developer
e311d09d31 feat(device): TX/RX 日志附加完整 JSON 字符串 2026-06-04 13:44:06 +08:00
Developer
819889684f feat(device): 实现下位机 JSON 协议(data model 对齐)
按 docs/下位机交互数据模型.md 重构串口协议层:

协议层
- 新增 DeviceMessage 模型,对应 message_id/type/ack/need_ack/data
- 新增 JsonProtocolService,4 字节大端长度前缀 + UTF-8 JSON 帧
- 删除原二进制协议(serial_protocol.dart)

服务层
- 新增 DeviceMessageService,集中收发并按 type 分发
- 重写 SerialRunner 为 JsonSerialRunner,使用 create_task/control 消息

数据模型
- DeviceState 增加 doorStatus/lightStatus/taskStatus/lastInfoAt
- 新增 DeviceInfoNotifier 订阅 device_info 上行
- 灯光按钮接通 light_control 消息

测试
- 新增 device_protocol_test.dart(14 用例)
- 修复 models_test.dart 残留的 Step mixSpeed/blowSpeed 错误
2026-06-04 13:00:21 +08:00
Developer
5d28bf631b chore(project): 初始化项目基础配置文件
- 添加 CodeGraph、Android 和通用 gitignore 配置
- 创建项目元数据文件跟踪 Flutter 项目属性
- 添加 Codex AI 指导文档 AGENTS.md 说明项目架构
- 配置代码分析选项 analysis_options.yaml
- 设置 Android 应用清单权限和 Kiosk 模式配置
- 实现中英文国际化支持 AppLocalizations
- 配置 GoRouter 应用路由导航
- 创建明亮工业控制风格的主题配置 AppTheme
2026-06-04 11:19:44 +08:00