QAUP_Management/.kiro/specs/traffic-light-integration/requirements.md

71 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 需求文档
## 介绍
本功能为QAUP机场管理系统实现红绿灯信号接入。系统需要监听来自外部硬件的红绿灯状态信号解析原始信号数据转换为内部消息格式并通过WebSocket向前端客户端广播状态更新。红绿灯信号提供实时路口状态信息对机场交通管理和碰撞避免至关重要。
## 需求
### 需求 1
**用户故事:** 作为交通控制操作员,我希望系统能够自动接收来自外部硬件的红绿灯信号,以便我能够实时监控路口状态而无需手动干预。
#### 验收标准
1. 当系统启动时系统应在8082端口建立TCP服务器监听器
2. 当红绿灯硬件发送状态信号时系统应接收并捕获原始JSON数据
3. 当TCP服务器接收到格式错误的数据时系统应记录错误并继续监听
4. 当TCP连接遇到网络错误时系统应自动处理连接断开并等待重新连接
5. 当系统关闭时TCP服务器应优雅地关闭所有连接
### 需求 2
**用户故事:** 作为系统管理员,我希望红绿灯信号解析器能够将原始硬件信号转换为标准化的内部格式,以便数据能够被其他系统组件一致地处理。
#### 验收标准
1. 当系统接收到原始红绿灯JSON数据时系统应正确解析DI信号格式
2. 当解析DI-11到DI-13信号时系统应将它们映射到南北方向状态红/黄/绿)
3. 当解析DI-14到DI-16信号时系统应将它们映射到东西方向状态红/黄/绿)
4. 当多个方向信号同时激活时,系统应确定正确的信号状态优先级
5. 当原始数据包含无效DI值时系统应使用默认安全状态两个方向都为红灯
6. 当由于JSON格式错误导致解析失败时系统应记录错误并跳过该消息
### 需求 3
**用户故事:** 作为前端开发人员我希望红绿灯状态更新通过WebSocket以标准UniversalMessage格式广播以便UI能够与其他系统消息一致地显示实时路口状态。
#### 验收标准
1. 当红绿灯状态改变时系统应创建包含路口详细信息的TrafficLightStatusPayload
2. 当发布红绿灯更新时,系统应使用"intersection_traffic_light_status"消息类型
3. 当通过WebSocket广播时系统应包含微秒级时间戳
4. 当未配置路口位置时系统应使用默认坐标0.0, 0.0
5. 当WebSocket客户端连接时它们应立即接收红绿灯状态更新
6. 当没有WebSocket客户端连接时系统应继续处理信号而不出错
### 需求 4
**用户故事:** 作为系统操作员,我希望红绿灯集成是可配置和可监控的,以便我能够调整设置和排除故障而无需更改代码。
#### 验收标准
1. 当系统启动时,系统应从应用程序属性中读取红绿灯配置
2. 当配置中禁用红绿灯集成时UDP监听器不应启动
3. 当系统处理红绿灯信号时,系统应定期记录处理统计信息
4. 当信号处理错误发生时,系统应增加错误计数器并记录详细信息
5. 当未配置路口ID时系统应使用默认路口标识符
6. 当TCP端口配置不同时系统应使用配置的端口而不是8082
### 需求 5
**用户故事:** 作为质量保证工程师,我希望红绿灯集成能够优雅地处理边缘情况和错误条件,以便系统在生产环境中保持稳定和可靠。
#### 验收标准
1. 当TCP端口已被占用时系统应记录错误并尝试替代端口
2. 当红绿灯信号接收频率超过1秒间隔时系统应处理所有信号而不丢失数据
3. 当重复接收相同信号状态时,系统仍应广播更新以保持客户端同步
4. 当系统内存不足时,红绿灯处理应以最小内存占用继续运行
5. 当网络接口不可用时,系统应定期重试连接
6. 当提供无效路口坐标时,系统应验证并使用安全默认值