49 lines
1.5 KiB
Markdown
49 lines
1.5 KiB
Markdown
# FT546 WCS 中心调度与交通管制 Demo
|
||
|
||
这是一个独立的 Java 8 Maven Demo,用于模拟 FT546 WCS 的 LEGACY 中心调度和交通管制行为。
|
||
|
||
## 安全边界
|
||
|
||
- 仅使用内存车辆、任务、队列和地图。
|
||
- 不启动 Spring,不连接 SQL Server、PLC 或 WMS。
|
||
- 不发送真实设备命令。
|
||
- 不修改生产 `ruoyi-*` 模块。
|
||
- 不启用 SHADOW 或 ACTIVE 控制模式。
|
||
|
||
## 已覆盖行为
|
||
|
||
- 每个调度周期只执行一次业务任务准入。
|
||
- 在线、自动、空闲、允许下发且电量大于 30 的车辆才可参与分配。
|
||
- 同层、楼层差、Y 距离、X 距离、车辆编号的稳定选车规则。
|
||
- 其他车辆剩余路径和离线车辆当前位置锁定。
|
||
- 同通道阻挡、高优先级避让任务和避让去重。
|
||
- 模拟协议失败、下一周期重试。
|
||
- 队列 `0/1 → 1/3 → 1/4` 状态流转、完成归档和占用释放。
|
||
- 无路可达时返回 HOLD,而不是抛出空指针。
|
||
|
||
## 运行测试
|
||
|
||
```bash
|
||
mvn test
|
||
```
|
||
|
||
测试必须由 Maven Surefire 实际发现并执行;验收标准为测试数大于 0、Failures 为 0、Errors 为 0。
|
||
|
||
## 运行控制台模拟
|
||
|
||
```bash
|
||
mvn exec:java
|
||
```
|
||
|
||
输出事件包括:
|
||
|
||
- `CYCLE`:调度周期开始
|
||
- `ASSIGN`:任务选车和裁决理由
|
||
- `PATH`:规划成功的路径
|
||
- `AVOID`:创建避让队列
|
||
- `HOLD`:交通或协议原因导致等待
|
||
- `SEND`:模拟协议下发成功
|
||
- `MOVE`:模拟车辆推进
|
||
- `COMPLETE`:队列完成并归档
|
||
- `SUMMARY`:最终周期、活动队列、历史和协议尝试次数
|