Commit Graph
3 Commits
Author SHA1 Message Date
dzc 9ece6cc294 fix(windows): 驱动安装假成功——InstallShield 壳提前退出骗过 -Wait,改 pnputil 实时校验
用户实测:一键安装日志显示 12 秒"装完"但打印机仍离线。根因:HiTi 的
Setup64.exe 是自解压壳(InstallShield 类),Start-Process -Wait 等的是壳进程,
内层安装向导未真正完成即返回;且旧的注册表标记机制把这次假安装记成了"已装"。

修复:
- 安装流程尾部增加 pnputil /enum-drivers 校验(匹配 cs2xxhcd/htitahcd/hiti),
  未发现驱动即报"校验未通过"(引导重试或手动运行 Setup64),不再盲写标记
- queryInstalled 改为 pnputil 实时校验驱动商店(唯一真源,废弃注册表标记——
  假安装误写后向导会错误地不再显示安装按钮)
- 成功日志改为提示"拔插 USB 重新枚举设备后再检测"
2026-09-21 16:46:31 +08:00
dzc 170e9ddc5e feat(windows): 向导内置 HiTi Windows 驱动一键安装(对齐 mac 的"装 App 即用"体验)
用户实测定论:CS-2xx 的 USB 是自定义设备(驱动包内含 CS2xxhcd.inf 内核驱动),
PavoApi 直打依赖驱动建立的 USB 通道——无驱动时枚举到设备但状态返回离线,
"免驱动"假设不成立。产品要求两平台一致:驱动随 App 内置、向导一键安装。

- assets/drivers/CS2xx_Windows_Driver.zip:HiTi 官网 CS-2xx Windows 驱动
  (2.6.25.48)整目录 zip(含 CS2xx/Setup64.exe),33MB,不入 git
- DriverInstall Windows 分支:Expand-Archive 解压到临时目录 → 递归定位
  Setup64.exe(兜底 setup/autorun)→ PowerShell Start-Process -Verb RunAs -Wait
  提权安装(UAC 一次)→ 写安装标记(HKCU\Software\zax\desktop-plugin,
  系统驱动安装状态无统一可查标志)→ finally 清理临时目录
- 向导第 2 步统一双平台状态机:驱动未装(异步查标记/目录)→"一键安装驱动
  (内置安装包)";轮询 3 秒自动刷新安装/连接状态
- bundledInstallerPath 双平台资产路径推导(mac .dmg / win .zip);
  .gitignore 增 *.zip;assets/drivers/README 更新双平台放置约定
2026-09-21 16:38:11 +08:00
dzc d475cac6ab feat: 向导内置 HiTi Mac 驱动一键安装(补齐计划 §3.2"驱动 dmg 放包内"设计)
- setup/driver_install.dart:检测已装(/Library/Printers/HiTi)+ 内置 dmg 定位
  (从 resolvedExecutable 反推 flutter_assets/assets/drivers/,缺失降级官网链接)
  + 静默安装(hdiutil 挂载→定位 pkg→osascript 提权 installer→finally detach;
  挂载点名带随机序号必须从 attach 输出解析)
- 向导第 2 步重做状态机:驱动未装 → "一键安装驱动(内置安装包)"按钮
  (安装中提示输管理员密码,失败显示原因);驱动已装但无队列 → 连接/添加队列
  引导;无内置 dmg 的构建回退官网链接
- assets/drivers/ 收驱动 dmg(.gitignore 不入库,打包脚本检查缺失并警告,
  当前从 card-printer-agent/dist 拷入 2.4.2 版,25MB)
- 实测:挂载/pkg 定位/detach 免密链路全通过;打包 47MB dmg 内含驱动,
  冒烟启动正常(服务已占主端口 38200);一键安装的提权弹窗待用户实测
2026-09-21 14:04:55 +08:00