# zudp — UDP 数据接收器 ## 概述 zudp 是 EIS 系统中的 **UDP 协议数据接收器**。它通过 UDP 接收原始二进制数据包,缓存到共享内存,并通过 ICE 代理转发给下游服务。与 zsub 不同,zudp **不解析数据内容**,仅做透明转发。 ## 进程架构 ``` UDP 数据源 │ │ UDP 数据包 ▼ ┌──────────────────────────────────────┐ │ zudp │ │ │ │ UdpConnection 接收线程 │ │ │ │ │ ├→ 从 config/udpconfig.json 读取│ │ │ 服务器 IP/端口配置 │ │ ├→ 接收 UDP 数据报 │ │ └→ 推入 gb_qtcache_udp 队列 │ │ │ │ HandleMessage 处理线程 │ │ │ │ │ ├→ 从 gb_qtcache_udp 取消息 │ │ ├→ 构造 Ice::ByteSeq │ │ ├→ CMemFix 共享内存缓存│ │ ├→ ICE Proxy() 转发 │ │ │ └→ 目标由 udpconfig.json 配置 │ │ └→ eventNo=1004: │ │ 额外转发到 zprx │ │ │ └──────────────────────────────────────┘ ``` ## 与 zsub 的区别 | 方面 | zsub | zudp | |------|------|------| | 传输协议 | TCP (流式) | UDP (数据报) | | 数据源 | FDA 服务器 (订阅) | 任意 UDP 源 | | 数据处理 | 解析信号名/值,映射到遥测项 | 不解析,透明转发 | | 配置方式 | INI 属性文件 | JSON 配置文件 | | 适用场景 | 标准 FDA 数据采集 | 低延迟/广播式数据中继 | ## 配置 从 `$CRGS/config/udpconfig.json` 读取,按服务名索引: ```json { "zudp": { "ip": "192.168.1.x", "port": 1234, "proxy": "baosight/zcache" } } ``` ## ICE 接口 | 方法 | 说明 | |------|------| | `SendDataShort` | 空操作 | | `SendDataLong` | 空操作 | | `TimeNotify` | 空操作 | zudp 是纯客户端 — 接收 UDP 数据后通过 ICE 代理转发。 ## 现场适用场景 zudp 适用于需要低延迟、无需建立 TCP 连接的数据接收场景,通常用于**对实时性要求极高的 DSC 控制信号或广播式数据源**。 ## 源文件 ``` src/zudp/ ├── zudp.cpp # PACE 组件入口 ├── zudpICEI.cpp # ICE servant + UDP 连接 + 消息处理器创建 └── HandleMessage.cpp # 数据转发逻辑 ```