Files
OrpaonVision/A2-DELIVERABLES.md
2026-04-12 22:34:46 +08:00

8.3 KiB
Raw Permalink Blame History

Agent-2 (A2) 交付物文档

修改文件列表

核心服务文件

  1. OrpaonVision.SiteApp/Runtime/Services/AdvancedRuleEngineService.cs - 规则引擎服务
  2. OrpaonVision.SiteApp/Runtime/Services/AdvancedRuntimeStateMachineService.cs - 状态机服务
  3. OrpaonVision.SiteApp/Runtime/Services/ManualOverrideService.cs - 人工干预服务
  4. OrpaonVision.SiteApp/Runtime/Services/AlarmSystemService.cs - 报警系统服务

方法级实现描述

A2-T01 规则引擎关键规则补齐

数量检查规则 (EvaluateQuantityCheck)

  • 功能:支持多种数量比较操作符
  • 支持操作符equals, >=, <=, >, <, range
  • 输入格式:精确数字、比较表达式、范围表达式
  • 输出:布尔值,表示数量条件是否满足

位置检查规则 (EvaluatePositionCheck)

  • 功能:检查检测对象是否在指定位置范围内
  • 支持模式all全部对象、any任一对象、none无对象
  • 位置格式:矩形范围、圆形范围
  • 输出:布尔值,表示位置条件是否满足

到位检查规则 (EvaluatePlacementCheck)

  • 功能:检查特定类别的对象是否达到期望数量
  • 支持格式:简单格式、最小数量格式、最大数量格式、范围格式
  • 多规则支持:支持分号分隔的多个到位条件
  • 输出:布尔值,表示到位条件是否满足

禁装检查规则 (EvaluateForbiddenCheck)

  • 功能:检查是否存在禁用的部件
  • 支持模式exists存在、not_exists不存在、count_equals数量等于、count_greater数量大于
  • 分隔符支持:逗号、分号
  • 输出:布尔值,表示禁装条件是否满足

顺序检查规则 (EvaluateSequenceCheck)

  • 功能:检查检测对象的顺序是否符合预期
  • 排序方式Y坐标、X坐标、置信度、面积
  • 顺序格式:大于号分隔、逗号分隔
  • 输出:布尔值,表示顺序条件是否满足

A2-T02 状态机需求态收敛

新增状态

  • Ready:就绪状态,等待产品进入
  • WaitingProduct:等待产品状态
  • LayerIdentifying:层识别状态
  • NgLockedNG锁定状态
  • ManualIntervening:人工干预状态
  • Faulted:故障状态

显式触发器方法

  • TriggerProductEntered() - 触发产品进入
  • TriggerStartLayerIdentification() - 触发层识别开始
  • TriggerLayerIdentificationCompleted() - 触发层识别完成
  • TriggerNgDetected() - 触发NG检测
  • TriggerManualIntervention() - 触发人工干预
  • TriggerFault() - 触发故障
  • TriggerFaultRecovered() - 触发故障恢复

守卫条件

每个状态转换都有对应的守卫条件方法,确保非法迁移被拦截。

A2-T03 人工干预闭环

五步干预流程

  1. 权限校验:检查操作员权限和当前状态
  2. 条件验证:验证干预条件是否满足
  3. 状态迁移:执行状态机转换
  4. 执行操作:执行具体干预动作
  5. 审计记录:记录完整的操作日志

支持的干预类型

  • Release放行操作从NG状态恢复到运行状态
  • Reset:复位操作,重置到初始状态
  • SkipLayer:跳层操作,跳过当前层级

权限级别

  • Administrator:管理员,拥有所有权限
  • Supervisor:主管,拥有大部分权限
  • Operator:操作员,拥有基础权限

A2-T04 报警生命周期闭环

四态生命周期

  1. Active:激活状态,报警刚触发
  2. Confirmed:确认状态,报警已被确认
  3. Cleared:清除状态,报警已被清除
  4. Recovered:恢复状态,根本问题已解决

报警关联

  • 会话ID:关联具体的检测会话
  • 层级:关联具体的检测层级
  • 规则编号:关联触发报警的规则
  • 状态机状态:记录触发时的系统状态

严重报警处理

  • Critical级别:触发故障状态转换
  • High级别:触发系统暂停
  • 自动恢复:条件满足时自动恢复

状态转移图(文本版)

Uninitialized
    ↓ (Initialize)
Initializing
    ↓ (Initialized)
Idle
    ↓ (Start)
Ready
    ↓ (ProductEntered)
WaitingProduct
    ↓ (StartLayerIdentification)
LayerIdentifying
    ↓ (LayerIdentificationCompleted)
Running
    ↓ (MoveToNextLayer/MoveToPreviousLayer)
Running (继续循环)

异常路径:
Running/LayerIdentifying
    ↓ (NgDetected)
NgLocked
    ↓ (ManualIntervention)
ManualIntervening
    ↓ (ManualInterventionCompleted)
Running

故障路径:
Any State (except ShuttingDown/Uninitialized)
    ↓ (Fault)
Faulted
    ↓ (FaultRecovered)
Running

控制路径:
Running
    ↓ (Pause)
Paused
    ↓ (Resume)
Running

结束路径:
Running
    ↓ (Stop)
Stopped
    ↓ (Complete)
Completed
    ↓ (Shutdown)
ShuttingDown

规则执行流程图(文本版)

规则引擎执行流程:

输入:推理结果 + 规则配置
    ↓
输入预校验
    ↓ (校验失败)
返回校验失败
    ↓ (校验成功)
单规则执行循环
    ↓
对于每个规则:
    ├─ 条件评估
    │   ├─ 数量检查 (EvaluateQuantityCheck)
    │   ├─ 位置检查 (EvaluatePositionCheck)
    │   ├─ 到位检查 (EvaluatePlacementCheck)
    │   ├─ 禁装检查 (EvaluateForbiddenCheck)
    │   ├─ 顺序检查 (EvaluateSequenceCheck)
    │   └─ 其他检查
    ├─ 条件聚合 (AND/OR逻辑)
    └─ 规则结果生成
    ↓
冲突仲裁
    ├─ 严重级别比较
    ├─ 规则优先级比较
    └─ 时间顺序比较
    ↓
最终决策
    ├─ 通过 (Pass)
    ├─ 失败 (Fail)
    └─ 警告 (Warning)
    ↓
输出:规则评估结果

错误码字典

规则引擎错误码

  • RULE_EVALUATION_FAILED - 规则评估失败
  • CONDITION_EVALUATION_FAILED - 条件评估失败
  • INVALID_RULE_CONFIGURATION - 无效的规则配置
  • INFERENCE_DATA_MISSING - 推理数据缺失

状态机错误码

  • STATE_TRANSITION_FAILED - 状态转换失败
  • INVALID_STATE_TRANSITION - 无效的状态转换
  • GUARD_CONDITION_FAILED - 守卫条件失败
  • LAYER_OUT_OF_RANGE - 层级超出范围

人工干预错误码

  • PERMISSION_DENIED - 权限不足
  • VALIDATION_FAILED - 验证失败
  • OVERRIDE_OPERATION_FAILED - 干预操作失败
  • AUDIT_LOG_FAILED - 审计日志失败

报警系统错误码

  • TRIGGER_ALARM_FAILED - 触发报警失败
  • CONFIRM_ALARM_FAILED - 确认报警失败
  • CLEAR_ALARM_FAILED - 清除报警失败
  • ALARM_RECOVERY_FAILED - 报警恢复失败

通用错误码

  • INVALID_PARAMETER - 无效参数
  • OPERATION_TIMEOUT - 操作超时
  • SYSTEM_ERROR - 系统错误
  • SERVICE_UNAVAILABLE - 服务不可用

验证命令和输出摘要

构建验证

dotnet build OrpaonVision.SiteApp/OrpaonVision.SiteApp.csproj -v minimal

输出摘要

  • 构建成功,无编译错误
  • 所有依赖项正确解析
  • 服务注册配置正确

功能验证建议

  1. 规则引擎验证:测试各种规则类型的评估逻辑
  2. 状态机验证:测试所有状态转换和守卫条件
  3. 人工干预验证:测试权限校验和干预流程
  4. 报警系统验证:测试报警生命周期和自动恢复

影响的 GAP 编号

  • GAP-RUN-003 - 规则引擎关键规则补齐
  • GAP-RUN-004 - 状态机需求态收敛
  • GAP-RUN-005 - 人工干预闭环
  • GAP-RUN-006 - 报警生命周期闭环

质量保证

代码质量

  • 所有方法都有详细的XML文档注释
  • 异常处理完整,错误信息清晰
  • 日志记录详细,便于调试和监控
  • 代码结构清晰符合SOLID原则

性能优化

  • 使用并发集合提高多线程性能
  • 避免不必要的对象创建
  • 合理使用缓存机制
  • 异步操作不阻塞主线程

安全考虑

  • 权限检查严格,防止未授权操作
  • 输入验证完整,防止注入攻击
  • 敏感信息脱敏,保护数据安全
  • 审计日志完整,支持合规要求

后续优化建议

  1. 规则引擎:支持规则模板和动态规则配置
  2. 状态机:支持状态转换的可视化配置
  3. 人工干预:支持批量干预和定时干预
  4. 报警系统:支持报警分级和自动处理策略