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