Files
petwash/洗护流程优化说明.md
GukSang.Jin 9c66b6cd82
2026-03-03 16:55:02 +08:00

5.2 KiB
Raw Blame History

洗护流程优化说明

优化内容

1. 流程重构

将紫外线杀菌从洗护流程中独立出来,实现完整的生产级流程:

洗护流程9步 → 自动开门 → 宠物取走 → 关门 → 清理和杀菌 → 返回待机

2. 洗护流程步骤9步

  1. 第一次冲水
  2. 沐浴露喷洒
  3. 第二次冲水
  4. 香波喷洒
  5. 第三次冲水
  6. 护理液喷洒
  7. 第四次冲水
  8. 热风吹毛
  9. 冷热风混合

3. 自动开门流程

  • 洗护流程完成后,设备门自动打开
  • 显示提示:"请取走宠物"
  • 等待宠物取走

4. 清理和杀菌流程

门关闭后自动执行:

  • 第一阶段冲水2分钟清理笼子内多余狗毛同时开启紫外线灯
  • 第二阶段:继续紫外线杀菌(根据系统参数设置的时间)

5. 清理弹窗特性

  • 自动显示,不可手动关闭
  • 旋转动画效果
  • 实时进度条显示
  • 进度百分比显示
  • 动态消息提示
  • 安全提示:"请勿打开设备门"
  • 清理完成后自动关闭

技术实现

ViewModel 新增属性

[ObservableProperty]
private bool _isCleaningDialogOpen;  // 清理弹窗开关

[ObservableProperty]
private string _cleaningMessage = "正在清理笼子...";  // 清理消息

[ObservableProperty]
private int _cleaningProgress;  // 清理进度

核心方法

1. SimulateWashingProcessAsync()

  • 执行9步洗护流程
  • 完成后自动开门
  • 调用 WaitForDoorCloseAsync()

2. WaitForDoorCloseAsync()

  • 等待门关闭模拟10秒生产环境应监听门传感器
  • 门关闭后调用 StartCleaningAndSterilizationAsync()

3. StartCleaningAndSterilizationAsync()

  • 显示清理弹窗
  • 第一阶段冲水2分钟 + 紫外线灯开启
  • 第二阶段:继续紫外线杀菌
  • 实时更新进度和消息
  • 完成后自动关闭弹窗
  • 返回待机界面

UI 设计

清理弹窗样式

  • 圆角设计30px
  • 阴影效果
  • 绿色主题(#4CAF50
  • 半透明黑色背景遮罩(#CC000000

动画效果

  • 旋转圆环动画2秒一圈无限循环
  • 进度条平滑过渡

布局结构

┌─────────────────────────┐
│   设备清理中            │  ← 标题栏(绿色)
├─────────────────────────┤
│   [旋转动画图标]        │
│                         │
│   正在冲水清理笼子...   │  ← 动态消息
│                         │
│   ████████░░░░░░░░░░    │  ← 进度条
│         65%             │  ← 进度百分比
│                         │
│   请勿打开设备门        │  ← 安全提示(红色)
└─────────────────────────┘

生产环境注意事项

1. 门传感器集成

当前使用10秒延时模拟生产环境需要

// 在 WaitForDoorCloseAsync() 中
// 替换为实际的门传感器监听
while (IsDoorOpen)
{
    await Task.Delay(100);
}

2. 时间参数

  • 冲水时间固定2分钟
  • 紫外线杀菌时间从系统参数读取UvSterilizationTime
  • 动画延时100ms加速模拟生产环境改为1000ms

3. 安全机制

  • 清理期间弹窗不可手动关闭
  • 显示"请勿打开设备门"警告
  • 清理完成后自动关闭弹窗

测试验证

测试步骤

  1. 启动应用,选择套餐开始洗护
  2. 观察9步洗护流程正常执行
  3. 洗护完成后,门自动打开,显示"请取走宠物"
  4. 等待10秒模拟门关闭
  5. 清理弹窗自动显示
  6. 观察动画效果和进度更新
  7. 清理完成后弹窗自动关闭
  8. 返回待机界面

验证要点

  • 洗护流程只有9步无紫外线杀菌
  • 门自动开关正常
  • 清理弹窗自动显示和关闭
  • 动画效果流畅
  • 进度显示准确
  • 无法手动关闭清理弹窗
  • 整个流程自动化完成

文件修改清单

修改的文件

  1. PetWashControl/ViewModels/MainViewModel.cs

    • 新增清理弹窗相关属性
    • 重构 SimulateWashingProcessAsync()
    • 新增 WaitForDoorCloseAsync()
    • 新增 StartCleaningAndSterilizationAsync()
    • 移除 InitializeWashSteps() 中的紫外线杀菌步骤
  2. PetWashControl/Views/MainWindow.xaml

    • 新增清理弹窗UI
    • 旋转动画效果
    • 进度条和百分比显示

优化效果

用户体验提升

  • 流程更清晰,符合实际使用场景
  • 自动化程度更高,减少人工干预
  • 视觉反馈更直观,用户知道设备在做什么
  • 安全提示更明确,避免误操作

生产环境适配

  • 流程符合实际硬件操作逻辑
  • 预留门传感器接口
  • 时间参数可配置
  • 安全机制完善

后续优化建议

  1. 门传感器集成:接入实际硬件门传感器信号
  2. 日志记录:记录每个流程节点的时间戳
  3. 异常处理:清理流程中断时的恢复机制
  4. 远程监控通过MQTT上报清理状态
  5. 统计分析:记录清理次数和时长数据

优化完成时间2026-02-27
版本v2.0
状态 生产环境可用