未放餐盘取餐报警阈值独立配置设计

状态

已确认,待实现。

背景与目标

现有 A02「未放餐盘取餐」报警复用了称重起跳值 skip_weight。起跳值负责过滤称重波动,报警阈值负责判定未放餐盘的减重风险;两者用途不同,现场调节一个值会影响另一个行为。

本次新增独立的报警阈值,使现场人员可在设置中选择或输入该值,并只由 A02 报警逻辑使用。

已确认的产品规则

项目规则
设置名称未放餐盘报警阈值
单位g
可配置范围1–50g,整数
默认值5g
配置方式预设值选择或手工输入
预设值5、10、20、30、50g
旧起跳值保持原有 skip_weight 配置及 0–5g 校验,不再作为 A02 阈值

设计决策

采用独立持久化配置,不扩展或迁移 skip_weight

NO_TRAY_PICK_ALARM_THRESHOLD
NO_TRAY_PICK_ALARM_THRESHOLD_DEFAULT_VALUE = 5
NO_TRAY_PICK_ALARM_THRESHOLD_MIN_VALUE = 1
NO_TRAY_PICK_ALARM_THRESHOLD_MAX_VALUE = 50

原因:A02 阈值和起跳值分别服务于安全判定与秤体波动过滤,独立配置可避免调试报警灵敏度时改变原有称重业务。

设置页设计

在设置页“起跳重量”附近新增“未放餐盘报警阈值”条目,内容区域显示当前值,例如 5g

  1. 可点击 5、10、20、30、50g 的预设值并保存;
  2. 也可输入 1–50 的整数值;
  3. 空值、非整数、小于 1 或大于 50 时不得保存,并提示“未放餐盘报警阈值只能设置为1-50g”;
  4. 保存成功后立即更新设置页显示和 MMKV 值;下次进入首页时读取最新值。

现有“起跳重量”输入与其 0–5g 校验保持不变。

报警判定与数据流

设置页保存独立阈值 ↓ MMKV: NO_TRAY_PICK_ALARM_THRESHOLD ↓ HomeActivity 初始化、onStart 读取并创建 NoTrayPickDetector ↓ 取餐前 + 无餐盘码 + 秤体稳定时记录或比较基准重量 ↓ 基准重量 - 当前重量 ≥ 独立报警阈值 ↓ 触发 A02「未放餐盘取餐」报警,并在详情中显示实际阈值

报警触发前提保持现有规则不变:A02 开关开启、当前没有其他活动报警、界面处于取餐前、尚未识别餐盘码、且收到稳定重量。检测器仍仅在一个检测周期内报警一次;识别到餐盘、离开取餐前状态或解除报警后重置基准。

容错与兼容

涉及范围

验收标准

  1. 新装或没有新配置的设备,A02 阈值为 5g;稳定重量从 100g 降至 95g 时触发报警。
  2. 将新阈值设为 20g 后,从 100g 降至 81g 不报警,降至 80g 时报警。
  3. 可从预设值选择 5、10、20、30、50g,也可保存 1–50g 的任意整数。
  4. 输入空值、0、51、负数、小数或非数字时不能保存。
  5. 修改新阈值后,原“起跳重量”的值和其既有称重过滤逻辑均不改变。
  6. 报警详情显示当前实际采用的独立阈值。

结论

新增默认 5g、范围 1–50g 的独立“未放餐盘报警阈值”配置;A02 报警只使用该配置,起跳值 skip_weight 继续保持原职责与现有行为。