简介
在会议室集成项目中,除了亿联官方设备,往往还需要控制第三方设备(如投影仪、电视、灯光、空调等)。Room Designer 提供了强大的自定义驱动功能,你可以为任何支持 TCP、UDP、HTTP、RS232、RS422、RS485 等协议的设备编写驱动,使其能够通过亿联CT200&CT300统一控制。
本章将指导完成驱动的创建、配置、导入导出及使用。
驱动库入口与分类
点击 Designer 左上角中控 > 驱动库管理进入驱动库管理界面。
驱动库分为三类:
分类
说明
特点
亿联驱动库
亿联官方设备驱动,包含 AVoIP 设备、蓝牙设备(博联、RS/RSP)、雷蒙(OEM)设备等。
不可修改、不可删除。链路设计页面左侧亿联中显示的即为此类。
第三方驱动库
预置的一些常见第三方设备驱动(如 Sony、LG 等品牌电视、投影仪)。
不可修改、不可删除,可直接使用,可导入到自定义驱动库后修改。
自定义驱动库
用户自行创建或导入的驱动。
可编辑、复制、导出、删除。连接第三方设备主要使用此模块。
创建自定义驱动
点击自定义驱动库区域的新建按钮,打开驱动配置向导。配置分为四个步骤。
在开始配置前,需获取被控设备的API 手册。
配置基础信息
字段
说明
取值范围
驱动型号
设备的唯一标识,不能与官方驱动重名。
字符串,最大 64 字符。
驱动类别
设备类型(投影仪、电视、空调等)。
下拉选择
厂商品牌
设备品牌。
不可与官方驱动重名,不要使用“亿联”作为品牌。
下拉选择,可自定义新增。
版本
驱动版本号。
字符串,最大 64 字符。
配置通信协议
选择设备支持的通信协议(可多选,后续在链路设计时选择具体协议)。
协议
典型场景
TCP
网络控制的设备(投影仪、电视)
UDP
简单网络控制(无需连接状态)
HTTP
通过 REST API 控制的设备
RS232
串口控制(传统投影仪、矩阵)
RS422/RS485
长距离、多设备总线
选择不同的协议需要填写对应的默认参数,参数介绍见下表,该参数填写后会在链路设计中组件的属性栏展示。
TCP/UDP
参数
说明
取值范围
IP 地址
设备的网络 IP 地址。
IPv4 格式
端口号
设备监听的 TCP/UDP 端口。
1 ~ 65535
用户名
登录认证用户名。
字符串,最大 64 字符。
密码
登录认证密码。
字符串,最大 64 字符。
RS232&RS422&RS485
参数
说明
取值范围
波特率
串行通信的波特率。
1200
2400
4800
9600
14400
19200
28800
38400
57600
76800
115200
数据位
每个通信字节中的有效数据位数。
8
7
6
5
校验位
用于检测数据传输过程中发生的错误。
无:不进行校验,数据传输速度较快,但无法检测错误。适用于数据准确性要求不高或传输环境干扰极小的场景。
奇校验:通过调整校验位,使传输数据位与校验位中的“1”数量为奇数。可检测数据传输中的单个位错误。
偶校验:使传输数据位与校验位中的“1”数量为偶数,同样可用于检测单个数据错误。
停止位
用于标识一帧通信字节传输结束的结束位。
1
2
双工模式
半双工或全双工模式,影响数据传输的方向性。
仅RS485需配置。
半双工模式:设备在发送和接收数据之间交替切换。
全双工模式:设备可以同时发送和接收数据。
用户名
设备鉴权所需的用户名。
字符串,最大 64 字符。
密码
设备鉴权所需的密码。
字符串,最大 64 字符。
HTTP
参数
说明
取值范围/格式
IP 地址
设备的 IP 地址。
IPv4 格式
端口号
设备的端口。
1 ~ 65535
是否使用HTTPS
是否启用 HTTPS 加密。
是
否
添加自定义配置字段
添加的自定义参数,如 API Token、请求头等。可在指令中通过 ${参数名} 的形式引用。 例如,定义参数 Authorization 后,在指令中使用 ${Authorization},即可在运行时读取外部传入的全局常量值。
字符串
配置状态
状态配置用于定义设备的状态属性,如电源状态、静音状态、音量、输入源等,主要用于界面反馈、自动化判断和平台状态同步。状态分为物理状态和逻辑状态:
物理状态:设备真实硬件属性(音量、开关、静音等),需要配置读写指令。
逻辑状态:系统内部临时变量(如DSP通道标识),无需硬件指令,默认可读可写。
支持可读、可写两种能力定义:
可读表示该状态支持从设备侧获取真实值,用于状态查询、轮询和同步。
可写表示该状态支持通过控制指令进行修改。
通过可读、可写能力的区分,可以更清晰地描述状态的查询与控制关系,保证状态展示与设备实际情况保持一致。
何时需要配置状态:
希望 UI 组件(按钮、图标)的样式能根据设备真实状态自动变化(视觉反馈)。
希望面板上显示设备的当前值(如温度、音量数值)。
需要根据设备状态执行自动化规则(如“如果投影仪已开机,则降下幕布”)。
在左侧选择相应的通讯协议,点击新建分组可自定义分组。
点击状态旁的可将已有的状态复制到其他分组中。
创建分组后,点击新建新建一个状态。
填写状态基本信息:
参数
说明
状态名称
配置状态的名称,是指令的唯一标识,供界面使用。
数据类型
字符串:用于存储文本信息。
布尔值:用于存储布尔值。
数值:用于存储数值信息。
数据输入类型
枚举:将参数值限制为预定义的固定选项,用户只能从列表内的值中进行选择。
自由输入:用户可自行输入参数值。
枚举值
为枚举类型参数定义可选值;点击添加以添加并定义显示名称与实际值的映射。支持自定义增加或删除操作。
当数据输入类型设置为枚举时必填。
字符长度上限
限制自由输入时字符串的最大长度。最多支持 9999 字符。
数值类型
Int: 整数,适用于不需要小数精度的场景。
Float:浮点数,支持小数精度。
当数据类型设置为数值型时必填。
数值精度
定义数值的最小递增步长。
当数据类型设置为数值型且数值类型为Float时必填。
数值范围
限制自由输入的数值范围。整数取值范围为 -999,999 到 999,999,浮点数取值范围为 -999,999.9 到 999,999.9。
当数据类型设置为数值型且数据输入类型为自由输入时必填。
状态类型
物理状态:设备真实硬件属性(音量、开关、静音等),需要配置读写指令。
逻辑状态:系统内部临时变量(如通道编号、临时开关),无需硬件指令,默认可读可写。
读写权限
可读:
每个状态必须至少配置一个可读功能,用于从设备查询当前值。
点击配置查询指令,参阅下方配置可读功能。
可写:
如果状态可以被控制屏控制(如静音开关),则需配置可写功能。
点击配置控制指令,参阅下方配置可写功能。
可写功能通常需要传入参数。
配置可读功能
在状态列表中,点击可读权限旁边的为该状态设置查询指令,可以选择新建功能或使用已有状态功能,以下以新增功能流程为例。
同一查询功能可能关联多个状态。若当前状态需要使用已配置的查询功能,你可以选择已有状态功能,以免重复配置查询指令。
在功能名称区域输入该状态功能的名称。
配置是否支持轮询功能:
确认:若需要系统在后台定时、自动地循环发送此指令以实时刷新设备状态,选择此项。选择后,需要配置轮询时间间隔,设置轮询的时间。
取消:若只需在特定触发事件或人工刷新时发送一次指令,选择此项。
添加指令并配置出参提取:
若设备协议为TCP/UDP/RS232/RS422/RS485,具体操作参阅配置功能章节中TCP/UDP/RS232/RS422/RS485的第5~8步。
若设备协议为HTTP,具体操作参阅配置功能章节中HTTP的第5~8步。
配置状态提取,该操作用于解析设备返回的响应报文,从中提取关键数据并将其绑定到系统定义的变量上,设置原始读取到的字段和最终对外返回的参数之间的对应规则。
点击顶部的状态提取,选择已有的状态映射或新建一个,以下以新增流程为例。
点击关联状态下拉菜单,选择要绑定的状态。
点击返回解析函数下拉菜单,根据设备协议的回码特征选择解析模式:
应答匹配函数: 使用正则表达式从返回文本中提取目标值。
按位取值函数: 根据指定的起始位和结束位提取数值。
JSON路径:当设备返回标准的 JSON 结构数据时,选择 JSON路径。选择后,下方会弹出 JSON路径 必填输入框,在输入框中填写标准的 JSONPath 表达式,用以定位并截取特定字段。示例:若接口返回数据为 {"data": {"token": "xyz123"}},则输入 $.data.token 来精准提取 token 值。
勾选状态值映射,配置映射规则。系统会根据该状态关联的数据类型,在下方显示对应的映射配置区。
点击确定保存功能。
配置可写功能
在状态列表中,点击可写权限旁边的为该状态设置控制指令,可以选择新建功能或使用已有状态功能,以下以新增功能流程介绍。
同一查询功能可能关联多个状态。若当前状态需要使用已配置的查询功能,你可以选择已有状态功能,以免重复配置查询指令。
在功能名称区域输入该状态控制功能的名称。
勾选 状态参数。该操作用于配置状态显示值与设备底层控制代码的映射关系,在控制指令中实现变量引用(如 ${状态参数}),实现用通用指令适配不同状态的切换。系统会根据该状态关联的数据类型,在下方显示对应的映射配置区。
字符型-枚举:系统自动列出已定义的枚举标签,在输入框中填写设备协议对应的实际底层代码。
数值型-枚举:系统自动列出具体的数值标签,在输入框中填写实际控制代码。
添加指令并配置出参提取:
若设备协议为TCP/UDP/RS232/RS422/RS485,具体操作参阅配置功能章节中TCP/UDP/RS232/RS422/RS485的第5~8步。
若设备协议为HTTP,具体操作参阅配置功能章节中HTTP的第5~8步。
点击确定保存功能。
配置功能
功能配置用于定义设备可执行的功能指令,包括控制类指令以及不直接作为状态管理对象的操作能力。
TCP/UDP/RS232/RS422/RS485
若设备协议为TCP/UDP/RS232/RS422/RS485,可根据以下流程配置功能。
在左侧选择相应的通讯协议,点击新建分组可自定义分组。
创建分组后,点击新建新建一个功能。
在功能名称区域输入该自定义功能的名称。
配置输入参数(可选):点击左侧底部的新建入参可添加动态变量,常用于需要传参的指令(例如调节音量时需要传入具体的数值)。具体参数介绍,参阅配置状态中的表格信息。
添加指令:点击中间底部的新建指令,在指令名称输入框中,为该单步指令命名。
一个功能可能有多条指令组合完成,通常取决于被控设备的要求,配置时请仔细查阅被控设备的API手册。
若一项功能需要由多条指令组合完成,可多次新建指令,系统将按照序号从上到下依次执行。
配置指令详细语法:
选择数据格式:根据设备协议,勾选 字符串 (ASCII) 或 十六进制 (HEX)。RS类型协议选择十六进制,其余协议通常选择字符串。
输入发送的指令内容:在大型文本输入框中,填写对应的底层控制报文。若第 4 步中配置了入参,在此处使用 ${} 语句在相应位置引入该参数变量。
设置结束符:点击结束符下拉菜单,选择与被控设备协议一致的指令结束标记。通常API文档中会标注是否需要结束符。
CR: 回车
LF: 换行
CRLF: 回车+换行
无: 无附加符号
设置延迟时间(可选):在指令延迟时间 (ms) 输入框中输入数字,配置指令发送前的等待时间,最大限制为2000毫秒。
配置出参提取,该操作用于解析设备在收到控制指令后返回的响应报文:
点击右侧顶部的出参提取 > 新建自定义出参。
设置出参基本属性:
出参名称:输入用于存储返回数据的变量名称。
数据类型:点击下拉菜单,选择对应的数据类型(字符型/布尔型/数值型)。
选择返回解析函数:点击返回解析函数下拉菜单,根据被控设备的响应报文规则选择合适的解析方式:
无:不对返回数据做特定函数解析,直接读取原始值。
应答匹配函数: 使用正则表达式从返回文本中提取目标值。
按位取值函数: 根据指定的起始位和结束位提取数值。
点击确定保存指令。
HTTP
若设备协议为HTTP协议,可根据以下流程配置功能。
在左侧选择相应的通讯协议,点击新建分组可自定义分组。
创建分组后,点击新建新建一个功能。
在功能名称区域输入该自定义功能的名称。
配置输入参数(可选):点击左侧底部的新建入参可添加动态变量,常用于需要传参的指令(例如调节音量时需要传入具体的数值)。具体参数介绍,参阅配置状态中的表格信息。
添加指令:点击中间底部的新建指令,在指令名称输入框中,为该单步指令命名。
一个功能可能有多条指令组合完成,通常取决于被控设备的要求,配置时请仔细查阅被控设备的API手册。
若一项功能需要由多条指令组合完成,可多次新建指令,系统将按照序号从上到下依次执行。
配置指令详细语法:
选择请求方法:点击方法下拉菜单,根据被控设备的 API 手册选择对应的 HTTP 请求方式。
GET:用于获取设备资源或状态信息。
POST:用于向设备提交数据、创建新资源或执行控制动作。
PUT:用于更新设备的现有资源或完整配置。
DELETE:用于删除设备上的特定资源或配置。
输入接口地址:在地址输入框中,填写被控设备的网络请求 URL,只用填写IP后的地址后缀。例如http://10.50.69.27/open/api/v1/auth/clientToken,只需填入/open/api/v1/auth/clientToken,此处IP为配置通信协议步骤中配置的设备IP,系统会自动拼接地址。
配置请求头:在请求头文本框中,输入该请求所需的 Content-Type、认证信息(Authorization)等关键参数。若请求头中需要引入动态参数,可点击右上角的插入系统变量,在弹窗中选择并插入时间戳或随机 ID。
配置请求体:在请求体文本框中,输入需要发送的具体控制报文数据。若请求体中需要引入动态参数,可点击右上角的插入系统变量,在弹窗中选择并插入时间戳或随机 ID。
配置出参提取,该操作用于解析设备在收到控制指令后返回的响应报文:
点击右侧顶部的出参提取 > 新建自定义出参。
设置出参基本属性:
出参名称:输入用于存储返回数据的变量名称。
数据类型:点击下拉菜单,选择对应的数据类型(字符型/布尔型/数值型)。
选择返回解析函数:点击返回解析函数下拉菜单,根据被控设备的响应报文规则选择合适的解析方式:
无:不对返回数据做特定函数解析,直接读取原始值。
JSON路径: 当设备返回标准的 JSON 结构数据时,选择 JSON路径。选择后,下方会弹出 JSON路径 必填输入框,在输入框中填写标准的 JSONPath 表达式,用以定位并截取特定字段。示例:若接口返回数据为 {"data": {"token": "xyz123"}},则输入 $.data.token 来精准提取 token 值。
点击确定保存指令。
导入导出自定义驱动
自定义驱动可以在项目之间传递,避免重复配置。
由V10的Room Designer创建的驱动不能导入至V20的 Room Designer中。
导出驱动:
在自定义驱动库区域,勾选一个或多个驱动。
点击右上角的导出 > 驱动文件,保存为 .yddx 文件。
导入驱动:
在自定义驱动库区域点击右上角的导入。
本地文件:选择本地的 .yddx 文件。
官方驱动:选择第三方驱动库中的官方驱动导入。
导入后,驱动将出现在自定义驱动库中。
编辑、复制与删除驱动
在自定义驱动库列表中,每个驱动右侧提供操作按钮:
操作
说明
修改已有的驱动配置。
基于当前驱动创建副本,用于快速衍生相似设备。
移除自定义驱动。
删除后,已使用该驱动的设计将失效。
使用自定义驱动
在链路设计中使用
进入链路设计,点击左侧组件区的第三方标签。
在下拉菜单中选择 自定义设备,显示所有已创建的自定义驱动。
将设备组件拖拽到视图区。
进行连线,正确连线后,界面中可看到该设备的操作指令:
对于 TCP/UDP/HTTP 协议:将设备的 LAN 端口连接到 CT200 和 CT300 的 LAN 端口。
对于 RS232:将设备的 RS232 端口连接到 CT300 的 RS232 端口。
对于 RS422/RS485:将设备的 RS422/RS485 端口连接到 CT300 的 RS422/RS485 端口。
对于 GPIO:将设备的 GPIO In/Out 连接到 CT300 的对应 GPIO 口。
亿联官方设备使用的 UCP 协议(如大部分亿联音频设备)不需要连线。
蓝牙设备(如博联)只能连接 CT100,且不需要连线。
雷蒙设备虽然属于官方驱动库,但实际上是第三方设备,需要连线,根据协议选择 LAN 或 RS232。
选中设备组件,可在右侧属性区配置协议的参数。
在界面设计中使用
在界面设计中使用之前,需要先在链路设计中进行连线。
进入界面设计,在底部动作指令区的设备驱动列表中,展开第三方驱动分类,显示已添加的自定义设备及其可用的状态和控制指令。
根据配置需求,将状态或控制指令拖拽到相应区域:
只读状态:仅可用于条件判断和视觉反馈配置。
读写状态:可作为控制指令配置。
如需配置条件逻辑,可使用以下任一方式:
在脚本编辑面板中添加 IF 组件,再将状态拖拽到条件区域。
通过右键菜单添加 IF 语句。
进入系统 > 逻辑函数中拖动指令添加。