绑定、波形与 3D#
绑定模型#
所有可视化控件通过绑定引用数据面板中的通道。
绑定方向 |
可选通道 |
行为 |
|---|---|---|
接收 |
RX + GX |
控件只读显示通道当前值,随设备上报或公式结果刷新。 |
发送 |
TX + GX |
用户操作控件后写回通道,再由 TX 帧或协议发送给设备。 |
位绑定 |
通道 bit 0 至 bit 7 |
LED 可按位点亮,开关可按位写入或按位显示。 |
右键绑定菜单#
多数控件在控件区域右键会弹出绑定菜单。菜单中通常有两组通道选择:接收 和 发送。两者互斥,选择接收后控件由 RX/GX 驱动,选择发送后控件操作会写回 TX/GX。
控件 |
右键菜单 |
常见用法 |
|---|---|---|
Gauge |
接收/发送绑定、弧度样式、浮点/整型斜坡。 |
绑定 |
Ruler |
接收/发送绑定、水平/垂直方向、斜坡选项。 |
做位置、距离或角度的一维调节。 |
Battery |
接收/发送绑定、水平/垂直方向、斜坡选项。 |
绑定电量百分比,低于阈值自动进入告警配色。 |
Temp |
接收/发送绑定、方向、标记线和斜坡选项。 |
显示温度,并用 marker 标注告警线。 |
Volume |
接收/发送绑定、水平/垂直方向、反向点亮和斜坡。 |
显示强度、电平、负载比例。 |
LED |
RX/GX 通道选择、bit 位选择、亮灭颜色。 |
显示故障位、运行位、使能位。 |
ToggleSwitch |
TX/RX 模式切换、通道、bit 位、方向。 |
TX 模式写使能位,RX 模式只读显示状态位。 |
DigitDisplay |
文本/七段风格、小数位、接收通道。 |
只读显示关键数值,不承担发送。 |
ValueInput |
TX/GX 通道选择。 |
输入目标值,点击发送后写入绑定通道。 |
LabelImage |
文本/图像模式、文本样式、图片路径。 |
面板标注、Logo、静态示意图,不参与通道绑定。 |
可视化控件#
圆形仪表
适合转速、速度、角度、压力等连续量,可设置量程和告警区。
标尺
适合水平/垂直刻度型数据,例如位置、距离或角度。
电池
适合电量、电压百分比和低电量状态展示。
温度计
适合温度、热状态和参考标记线显示。
音量条
适合分段状态、强度或比例值展示。
LED
适合状态位、告警位和使能位显示。
拨动开关
可作为 TX 写 bit,也可作为 RX 读 bit 状态展示。
数码管 / 数值输入
适合关键数值显示、参数输入和控制量下发。
标签 / 图片
适合静态标识、设备分区和说明性图标。






Plot 波形#
Plot 可开多个窗口,每个窗口显示多通道曲线。曲线名称、颜色和数据源在数据面板的 Plot Channels 中配置,采样触发通常发生在协议帧解析完成后。
常用交互:
侧栏眼睛图标:显示或隐藏曲线。
颜色色块:修改曲线颜色。
鼠标拖动:平移视图。
滚轮:调整 X 轴可见点数
tail。测量线 / 十字光标:读取坐标、差值和趋势。
Plot 源码能力包括 Manual、RealtimeSlide 与 AutoFitData 三类 X 轴模式,支持测量标记、选择区域、CSV 导入/导出,以及按通道独立显示/隐藏。数据缓冲采用环形写入,旧样本会在容量达到上限后自然覆盖。
3D 视图#
3D 视图可加载场景与模型,并通过通道绑定驱动姿态或节点参数。退出前与 3D 相关的状态可随档案系统保存。
源码中 3D 视图基于 DirectX 11 渲染目标,并使用 Assimp 加载模型或场景;视图状态包含相机 yaw/pitch/distance/target、灯光、材质参数、模型路径和顶点统计。通道绑定最终会写入节点或全局参数,适合姿态可视化、机构状态演示和设备数字孪生预览。
建议先确认三件事:
模型与场景资源可以正确加载。
数据面板中 RX / GX 通道值会随设备数据刷新。
3D 参数滑块或节点绑定选择了正确通道。
3D 脚本编写#
当前 3D 视图的“脚本”本质是 JSON 场景配置。它描述要加载的 OBJ 模型、每个节点的动作类型、旋转中心、使能轴和父子层级。模型建议在 Blender、SolidWorks 等工具中按关节或运动部件拆成独立 object/group,并保持清晰命名,例如 Base、Shoulder、Elbow、Wrist。
建模原则
一个会独立运动的部件,对应 OBJ 中一个独立节点;JSON 中的节点名必须与 OBJ 节点名一致。机械臂类模型尤其要把每个关节、连杆、末端执行器拆开。
基础结构如下:
{
"models": [
{
"file": "robot_arm.obj",
"nodes": {
"Base": {
"action": "rotation",
"rotation_coordinates": [0, 0, 0],
"rotation_axis_enable": [0, 1, 0]
},
"Shoulder": {
"action": "rotation",
"rotation_coordinates": [0, 0.15, 0],
"rotation_axis_enable": [1, 0, 0],
"parent": "Base"
},
"EndEffector": {
"action": "transform",
"parent": "Shoulder"
}
}
}
]
}
字段说明:
字段 |
是否必填 |
说明 |
|---|---|---|
|
是 |
OBJ 文件路径,可用相对 JSON 的路径或绝对路径。 |
|
是 |
键是 OBJ 节点名,值是该节点动作配置。 |
|
是 |
|
|
rotation 必填 |
旋转中心,也就是机械关节的物理枢轴点。 |
|
rotation 必填 |
|
|
否 |
指定父节点,构建正向运动学层级,例如 |
动作类型差异:
|
占用绑定槽位 |
用途 |
|---|---|---|
|
1 |
单个角度值驱动节点旋转,适合舵机、关节、云台轴。 |
|
6 |
平移 XYZ + 旋转 XYZ,适合末端、平台或整体姿态。 |
旋转角度单位是度。源码按 Y -> X -> Z 的顺序组合四元数,并围绕 rotation_coordinates 指定的枢轴点旋转。也就是说,如果关节转起来位置不对,优先检查枢轴坐标,而不是先改绑定通道。
3D 绑定流程#
在数据面板配置 RX 通道,例如
RX_00为 Base 角度,RX_01为 Shoulder 角度。打开 3D 视图并加载 JSON 场景配置。
展开姿态控制面板中的节点树,找到
Base、Shoulder等动作节点。在对应滑块上右键,选择
接收并绑定RX_00、RX_01。连接设备并开启协议后,设备上报角度,RX 通道刷新,3D 节点跟随运动。
如果需要反向控制设备,把滑块右键绑定到 发送 的 TX/GX 通道。此时拖动滑块会写回通道,再由 TX Frames 的 Auto 或手动发送下发。
3D 调试清单#
现象 |
优先检查 |
处理方式 |
|---|---|---|
模型没有部件树 |
OBJ 是否拆分 object/group。 |
回建模软件重新拆分并保留节点名称。 |
节点不运动 |
JSON 节点名是否和 OBJ 一致,绑定通道是否有值。 |
在数据面板确认 RX/GX 值刷新,再检查右键绑定。 |
旋转中心错误 |
|
使用模型坐标系中的关节枢轴点,而不是随意填原点。 |
方向不对 |
|
调整 X/Y/Z 使能轴,必要时在公式里对角度取负。 |
绑定数量不够 |
3D 绑定槽位上限约 32。 |
优先绑定真正需要实时驱动的节点,transform 节点会占 6 个槽位。 |
做一个实时面板#
开启协议并配置 RX Frame。
添加 RX Channels,确认通道值刷新。
在数据面板添加 Plot Channels 或 GX 公式。
打开仪表、LED、数码管、开关或 Plot 窗口。
右键控件区域选择接收或发送绑定。
保存档案,复用当前布局与绑定关系。