搜索新闻

一组代码“统领”一座教学楼!幕后揭秘!

揭秘如何用一个控制系统将楼内所有房间系统整合在一起,实现一体化灵活便捷的控制
来源:投影时代 更新日期:2021-12-16 作者:佚名

    年初,我们曾通过公众号与大家分享了北卡罗来纳大学威尔明顿分校 (简称: UNCW) 全新医学综合教学楼 (又称: Veterans Hall) 的案例。当中重点介绍了校方如何利用 Extron NAV 系统实现整座楼内视音频信号的分配。今天,我们将继续探究这一案例,为您揭秘如何用一个控制系统将楼内所有房间系统整合在一起,实现一体化灵活便捷的控制。

    项目挑战

    UNCW 的管理层要求为 Veterans Hall 部署清一色的灵活式教学空间,以支持自主学习和混合式远程教学。面对如此挑战,学校的技术团队深知仅凭传统模式下的大型矩阵切换机柜及单一的控制系统很难满足此类需求。他们也更加清楚地知道,后续仍有一系列新技术及教学法要面向教师普及和推广。这些都需要专职技术人员提供个性化的指导,以确保获得良好的初体验。为此,他们采用 Extron NAV 系统构建了一套可覆盖整座大楼的 AVoIP 解决方案。六层楼内的 205 个节点统一由 Navigator 来管理。

    解决方案

    UNCW 使用 ControlScript (Extron 基于 Python 的脚本语言) 来进行系统编程,以满足其对大楼内灵活且一体化的系统控制需求。ControlScript 的最大优势是其能够直接利用 Button 对象的名称。在代码中既可利用 ID,也可使用名称,通过字典和帮助函数创建具有不用意义的变量名。这些变量名可在楼内多个控制系统当中被灵活地重复使用。其次,ControlScript 能够让控制处理器之间建立网络通信,教室和中心控制室的中控就形成了一种客户端-服务器 (client-server) 这样的主从关系。教室状态及当前有效输入信息可定期被发送至控制室,控制室亦可回传控制指令以调整教室的各种系统功能。

    ControlScript 事件装饰符 (@event decorator) 也是该项目编程最关键的部分,通过它可创建新的数据对象。和按键被按下的事件类似,数据对象中变量的变化也会触发相应的程序。这样,client-server 部分的代码可按需更新变量,事件代码可直接更改系统功能,而无需再将所有可选数据加载至网络通信模块的 ReceiveDatahandler 程序段。

    在这些编程技术的支持下,Veterans Hall 的控制室最多只需配备三名技术员即可。且通常情况下,一人完全能够轻松监控 9 间日常使用频率最高的教室。这些教室配备有摄像头、波束形成麦克风、多台显示器及 AV 桥接器。一些自主学习空间甚至还包括多台小组显示器及 BYOD 无线设备。因有技术人员的实时监控,教师们可集中精力在课堂教学上,无需担心系统的运行状况。

    UNCW 对复杂系统的需求并不仅仅局限于这 9 间混合式教室。其还有 2 间高端会议室,1 间高级教学实验室 (大量学生电脑接入室内 AV 系统),1 间康复实验室 (采用 8 x 4 的满配矩阵),以及 1 间解剖实验室 (5 个解剖台的数字影像全部被路由至两套小型拼接墙)。但不管如何复杂多变的空间设置,用于控制主用户界面及整个系统核心 NAV 的基础代码始终是一致的。正所谓“以不变应万变”。

    对于控制室、解剖实验室和康复实验室,ControlScript 还可为终端用户创建有意义而直观的状态反馈,如通过按键的动态文字,或四种不同的按键状态及背光色等方式来反馈当前操作状态。

    能如此便捷地重复调用代码很大一部分归功于 ControlScript 项目文件中包含多个不同功能的 Python 文件。入口程序文件 main.py 本身非常简短,其通过导入 “devices.py” 和 “variables.py” 与各类设备建立连接,从 “InstructorTLP.py” 文件中定义界面对象,并调用功能函数。通常情况下,main.py 仅显示为 26 行代码。即使系统最复杂的教室 (包含 12 个自主学习区,且所有设备由控制室集中控制),其代码也显示不超过 90 行。而事实上在不计算 Extron 设备模块代码的情况下,此类程序实际运行的代码也仅仅 1000 行。

    通过这种按文件区分代码的方式,系统编程人员可轻松查看各类代码窗口,确保代码在整体“思想”上的一致性。需注意的是,变量并非如想象中那样,可在任何地方进行声明。它只能在 variables.py 文件中声明,并由 InstructorTLP 通过 variables.VARNAME 这样的格式引用。device 程序亦是如此,采用 devices.Navigator 或 devices.SonyProj 这样的引用方式。在创建不同的系统时,程序员可在 device 或 variable 文件中轻松找到有关 IP 地址、密码、NAV 输入/输出编号有关的变量,并进行微调。

    成果反馈

    没有 Extron ControlScript 提供的灵活的编程环境,Veterans Hall 的视音频系统便无法满足 UNCW 提出的灵活多变的控制需求。

    Richard Blaylock, CTS-IAV

    系统工程师,综合教学技术部

    UNCW

    动态变量、面向对象编程设计、GUI 和代码的智能化互连,以及对事件处理程序和 TCP/IP client-server 功能的访问等,所有这些编程要素共同促成了 Veterans Hall 一体化的系统控制,并使得整个系统在过去一年,如此高风险的大环境下依然运行良好。UNCW 已决定将 Extron ControlScript 的应用扩展至校内更多项目,其中包括升级现有的远程教学控制室、改装三向可分离式舞厅、主篮球馆的音频控制系统、电影后期制作计算机实验室乃至全新的 4K 数字影院等。

广告联系:010-82755684 | 010-82755685 手机版:m.pjtime.com官方微博:weibo.com/pjtime官方微信:pjtime
Copyright (C) 2007 by PjTime.com,投影时代网 版权所有 关于投影时代 | 联系我们 | 欢迎来稿 | 网站地图
返回首页 网友评论 返回顶部 建议反馈
快速评论
验证码: 看不清?点一下
发表评论