客户端
Data/Image/Command 客户端:发布/订阅通信(TCP/IPC),连接目标由中央配置。
概述
quatm/servers/clients.py 提供通信客户端:连接目标由中央配置决定(Data /
Image / Command Hub)。GenericClient 提供标准收发接口,适用于小数据(<10k);大
尺寸数据(图像)请用 ImageClient。
客户端类
| 类 | 连接 | 说明 |
|---|---|---|
GenericClient | 由配置决定 | 通用收发(含 numpy 数组),subscribe/unsubscribe |
DataClient | Data Hub | 普通数据的发布与订阅 |
ImageClient | Image Hub | 图像级大数据发送(send 直接收 numpy 数组) |
CommandClient | Command Hub | 向驱动发送控制命令(命令名拼入主题) |
NpEncoder | — | numpy 类型 JSON 序列化 |
关键方法(GenericClient)
| 方法 | 说明 |
|---|---|
send(datadict, arr=None) | 发布数据(可附带一个 numpy 数组) |
recv() | 接收一帧:(主题, 字典[, 数组]);超时返回 None |
subscribe / unsubscribe | 订阅 / 取消订阅通道 |
has_new_data | 非阻塞检查是否有新数据 |
close | 关闭 PUB/SUB socket(幂等) |
用法
from quatm.servers.clients import DataClient
dc = DataClient(name="pmt")
dc.send({"pmt": 1234}, arr=numpy_array)
topic, data = dc.recv()