目标
使用Extron的设备模块控制设备。
知识点
Python模块的导入和使用。
详细步骤
- 上两章的内容,我们用的都是自己写的控制指令,这些控制代码一般都能在说明书或者设备官网找到。但其实Extron官网收录了大部分受控设备的控制指令,且这些模块经过统一的测试和标准编码,编程更直观,故障诊断更加高效。熟练使用Extron设备模块能极大地提高我们的工作效率。
- 假设我们现在要控制 Barco 的投影机,型号是G100-W22。
- 先到官网下载设备模块的python文件和pdf类型的驱动说明。
- python文件是封装好的一个类。
- 驱动说明指导用户如何使用这个类。
- 将下载好的 python 文件复制到 src\modules\device文件夹下。
- 在 main.py 中导入该文件并重命名。
- 根据指导文件实例化对象。
- 由于该设备是基于TCP连接的,所以要添加重连机制。
- 调用相对应的方法。
from modules.device import barc_vp_G100_W16_W19_W22_v1_0_0_0 as barco_vp
projector = barco_vp.EthernetClass('192.168.10.214', 3023, Model='G100-W22')
projector.Connect(5)
def connect_proj():
result = projector.Connect(5)
if 'Connected' not in result:
Wait(10, connect_proj)
@event(projector, ['Connected', 'Disconnected'])
def proj_connection(interface, state):
if state == 'Connected':
print('projector is connected')
else:
print('projector is disconnected, reconnecting...')
connect_proj()
# Button instantiation
btn_projector_power = Button(panel, "btn_projector_power")
# Control
@event(btn_projector_power, 'Pressed')
def proj_control(button, state):
if button.State == 0:
projector.Set('Power', 'On')
else:
projector.Set('Power', 'Off')
button.SetState(button.State ^ 1)
总结
本中简单介绍了Extron的设备控制模块的使用方法,除了调用封装好的函数对设备进行控制外,模块还支持查询和订阅设备的运行状态,这部分内容会在后面的章节中继续讲解。如有疑问欢迎和我交流讨论!