APP下载

一种指令可编程的音频切换器智能控制系统

2016-03-17邓帮建

郭 奕,邓帮建

(1. 西华大学电气与电子信息学院,四川 成都 610039;2. 成都纬视科技有限公司,四川 成都 610054)



一种指令可编程的音频切换器智能控制系统

郭奕1,邓帮建2

(1. 西华大学电气与电子信息学院,四川 成都 610039;2. 成都纬视科技有限公司,四川 成都 610054)

摘要:针对音频切换器的控制软件缺乏通用性的问题,基于.Net 4.0和WPF,开发一套音频切换器智能控制系统。该系统采用指令可编程的思想,将业务逻辑、数据处理及用户交互界面完全分离开,并将不同品牌音频切换器的控制指令和配置信息预先存储于XML文件中,当接入某切换器后,在程序运行时动态载入。该系统直接通过修改配置信息中的可编程指令集来实现对不同品牌切换器的自动控制,不需要对整个软件进行重新编译,从而提高了系统的通用性。

关键词:音频自动切换器;指令可编程;音频工作站;串口通信协议

音频切换器是专门为音频信号的转发切换而设计的高性能智能矩阵开关设备,广泛用于语音工程、电化教学、指挥控制中心、多媒体会议室等场合,以完成音频信号的切换。

针对不同行业的需求,音频切换器不仅有支持非平衡音频信号的RCA接口,也有专业的平衡音频XLR接口。音频切换器可把多路音频输入信号传至输出端口,在多路输入信号的情况下,可以切换任何一路输入信号到输出端口。

1研究背景和现状

通常音频(AUDIO)切换器,可以完成1~16路输入,1~16路输出的任何切换,具有红外遥控功能和RS232终端通信控制功能,可预加RS485总线接口,使用户可以方便地完成演示过程中的信号切换。切换器广泛应用于广播电台的节目转播以及播出监控中[1-8]。通常电台的切换器连接方案如图1所示,通过切换器,广播电台工作人员能够很方便地控制输出信号在各个输入信号源之间切换。

图1 广播电台切换器常用连接方案

切换器产品基本都支持RS232串行通信,都能接受来自于普通计算机的串行控制信号,因此,可以通过软件方式很方便、定时、自动地对切换器按照预先的设置进行控制[9]。假定图1中信号源1的输入信号是中央台,而电台每天晚上7点都会转播中央台的新闻,有了切换器控制软件后,就能够预先编排好每天的切换任务,到点自动将输入信号切换到相应的通道,不需要人为地操作切换器硬件。

由于市面上切换器产品种类繁多,不同厂商的切换器通常都具有不同的控制指令,这对切换器控制软件的适用范围提出了很苛刻的要求。目前常见的做法是,针对不同厂商的切换器硬件编写不同的控制代码,通过预编译的方式,根据需求生成相应的可执行程序,以此来适应不同类型的厂商的产品,这使得同样一套软件只能控制一种类型的切换器。如果需要控制另外的硬件,通常都需要重新编译软件,这对于软件的维护和更新都是不利的。

本文利用.Net技术和WPF(Windows Presentation Foundation)技术设计了一套切换器智能控制系统,该系统最大的特点就是采用指令可编程的思想,将切换器硬件的控制指令通过可扩展标记语言(XML)的方式记录下来,在运行时候动态载入。因为没有将指令固化在软件代码里,所以面对不同的切换器硬件时,只需要修改XML里的控制指令即可,免去了重新编译软件以及有多套软件代码需要维护的烦恼。

2系统技术方案

2.1 基本实现思路

WPF是微软推出的基于Windows Vista的用户界面框架[10-12],属于.NET Framework 3.0的一部分。它提供了统一的编程模型、语言和框架,真正做到了界面设计人员与开发人员的工作分离。同时,它提供了全新的多媒体交互用户图形界面。

XML是一种用于标记电子文件使其具有结构性的标记语言。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。它非常适合万维网传输。它提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据[13]。

由于切换器硬件设备的串口控制指令都是一些简单的字符串信息,如重庆现代的型号为HS5455的切换器的控制指令中控制命令和设备返回状态的格式都为命令(或状态)字符的ASCII码+回车符的ASCII码,因此以一定的格式将其记录到XML文件中,再加上一定的解析和映射处理,能够满足实时配置和动态加载的要求。

本文实现的系统采用Microsoft Visual Studio 2012开发,基于.Net 4.0完成,采用了WPF的开发模式,可以将业务逻辑、数据处理及用户交互界面完全分离开,采用XML记录控制指令,程序运行时动态加载,以此来提高系统的普适性,降低运维成本。

2.2 系统详细技术方案

本文设计的切换器智能控制系统主要实现对切换器的自动切换的智能控制。用户只要将每天所要对切换器做的一些操作编排成一张操作单,然后就可实现切换器的自动切换。用户可以在计划任务编辑里设置星期几,什么时候调用什么的操作单,也可以实现自动调单及切换。

该切换器智能控制系统的主要工作流程如图2所示,其中系统设置功能是本文的指令可编程思想实现的关键点。

根据系统需要实现的功能,以及用户交互界面和数据处理逻辑尽量分开的原则,将系统的软件划分为4个主要的模块:用户交互模块、用户数据处理模块、系统数据处理模块以及程序辅助模块,每个模块的主要功能通过图3描述。

1)用户交互模块。它主要完成软件操作过程中与用户的交互,由软件主界面和一些弹出的子界面组成。其中软件主界面包括工具栏、切换条目显示区域、手动切换控制区域、状态栏、日期和时间显示区域等内容。工具栏是切换列表的增加、删除、修改、编辑、保存、系统设置、计划制定、列表锁定等主要交互功能的入口。切换条目显示区域主要显示某一天的切换计划的具体内容。手动切换控制区域主要用于模拟切换器硬件面板,可以通过软件按钮实现对切换器各个通道的手动切换控制。弹出子界面主要包括播出切换计划管理界面和系统设置界面,其中系统设置界面和本文的创新点密切相关,可以通过它进行通道信息设置和硬件控制指令配置。

图2 系统主要工作流程

图3 系统主要功能模块

2)用户数据处理模块。它主要用于存储和处理交互过程中产生的用户数据,比如播出表的具体内容列表、播出计划列表等。这些数据通常以二进制文件形式保存。

3)系统数据处理模块。它主要用于存储和处理交互过程中产生的系统数据,比如通道信息数据和硬件控制指令数据。这些数据通常以XML文件形式保存。

4)程序辅助模块。它主要用于辅助完成一些程序的逻辑处理,通常把各个模块的一些公用功能汇集于此,比如文件的序列化管理、文本字符串分析、时间信息分析等。

3系统实现结果

根据上述设计,本文利用VS2012实现了整个系统。下面将以重庆现代的HS5455切换器为例,详细说明系统的实现过程及结果展示。

音频切换器智能控制系统程序(下称:程序)会首先检测是否有加密狗,如果没有加密狗则不允许进入程序,如果有加密狗,则无须输入用户名及密码可直接进入主界面,程序处于锁定状态,则要输入解锁密码进行解锁。退出程序时会有提示选择是否退出,但程序处于自动操作状态时,不允许退出,这样设计的目的是防止误操作而退出。程序主界面中包含了工具栏、列表显示以及手动控制等内容。其中工具栏里的“设置”按钮,是进行硬件指令配置的入口。通过工具栏里的“设置”按钮,可以进入设置界面,如图4所示。

图4 设置界面

设置界面分为操作设置和控制指令设置2部分。其中操作设置主要包括添加操作、删除操作和修改操作名称3个设置项。添加操作的目的是添加一个新操作,参数(控制端口、设备、命令)可从下拉列表选择。删除操作则是要删除所选操作。修改操作名称主要用于修改选择操作的名称,便于更好地理解某个切换动作的目的,如“切换到CCTV1”。控制指令设置主要完成控制端口、切换器硬件以及控制指令名称三者的映射,如图4所示:切换器HS5455的COM1口对应的命令名称是“选中通道1”。此处的配置结果将保存在一个XML文件中,此XML文件的相关部分的格式如图5所示。

图5 系统设置存储格式

图4中的配置信息以图5的格式保存到XML文件中。其中一个〈Operate〉〈/Operate〉对就描述了一个COM口的设置。其中:Name字段表示该通道的名称;PortName表示当前对应端口的名称;DeviceName表示当前切换器硬件的名称,通常一个切换器硬件有多个端口;CommandName字段表示对应的操作名称。

需要说明的是,此配置文件中的CommandName字段仅作为描述用,对应到硬件控制的具体指令,还需要一个XML格式的配置文件进行描述,以便将控制名称转换为具体的控制指令,其格式如图6所示。

图6 切换器指令存储格式

图6中DeviceList节点用于描述可支持的硬件设备列表,节点内的信息将对各个硬件进行详细描述。Device节点描述了某个切换器设备的基本信息,包括设备名称、波特率、数据位数等。Send子节点描述了通过串口进行控制时发送的命令内容,其内容实际规定了图5中的CommandName和实际发送的命令CommandString之间的映射关系,如图7所示。如要执行操作“选中通道1”,则实际需要程序向相应的COM口发送的指令为“49,13”。同样,Receive子节点规定了通过串口接收到的数据的意义,其内容规定了接收到的CommandString代表的实际意义,如图8所示。例如从相应COM口接收到的信息为“79,75,13”,则表示“命令接收正确”。

图7 Send指令段格式

图8 Receive指令段格式

图6中列举的设备配置信息只有HS5455一款切换器,如果需要用到其他型号的切换器,只需要在DeviceList节的配置中按照制定的格式加入或者修改调整相应的指令和映射关系即可。图6中DeviceList段中的Device小结可以有很多个,分别对应于不同型号的切换器硬件。如此一来,在设备发生更改的时候,只需要在该配置文件中增加一个Device配置节,在该配置节中描述切换器硬件的名称、波特率等信息,以及发送和接收指令的格式即可。本系统只须对配置文件做相应调整,而不需要对整个软件进行重新编译。

4结论

本文设计了一种指令可编程的智能切换器控制系统,该系统能够在不重新编译代码的情况下,更好地适应各种不同型号类型的切换器。本文的研究成果已申请我国计算机软件著作权,登记号为2014SR080932。

参考文献

[1]吴建忠. 视音频切换器信号的技术保障措施[J]. 科技视界, 2012 (34):158.

[2]张占顺. 调频广播音频监测报警系统[J]. 科技信息, 2012 (33):909.

[3]李军. 浅谈广播转播信号源的维护[J]. 科技创新导报, 2010 (5):88.

[4]杨海涛. 县市级电台的总控建设[J]. 广播与电视技术, 2013,40(3):94.

[5]黄陈耿. 音频工作站全自动播出在县级广播电台的实现[J]. 西部广播电视, 2005 (12):27.

[6]魏三强,朱军. 一种公共广播与背景音乐系统的优化方案设计[J]. 西华大学学报(自然科学版),2012,31(6):81.

[7]李勇,郑萍. 电话远程测控系统的设计[J]. 西华大学学报(自然科学版),2005,24(4):70.

[8]林海东,余强. 基于H264的网络视频监控系统设计与实现[J]. 西华大学学报(自然科学版),2014,33(2):22.

[9]徐文革. 视音频切换器集中控制系统的设计与实现[J]. 中国有线电视, 2009 (9) :954.

[10]王鹏, 崔静. 新一代界面技术WPF的架构及应用[J]. 成都纺织高等专科学校学报, 2011,28(1):18.

[11]邹海,余籦超.基于WPF技术的甘特图控件的研究与设计[J].计算机应用与软件, 2014(5) :50.

[12]祝晓红, 刘炜, 李俊丽. 用WPF进行复杂数据集成的方法研究[C]]//第二十七届中国控制会议论文集.昆明:北京航空航天大学出版社,2008:3091-3094.

[13]刘芳, 肖铁军. XML应用的基石:XML解析技术[J]. 计算机工程与设计, 2005(10) :2823.

(编校:饶莉)

A Directive Programmable Audio Switcher Intelligent Control System

GUO Yi1, DENG Bangjian2

(1.SchoolofElectricalEngineeringandElectronicInformation,XihuaUniversity,Chengdu610039China;

2.ChengduWellViewTechnologyCo.Ltd.,Chengdu610054China)

Abstract:For the lack of generality of control system for different audio switcher, an audio switcher intelligent control system is developed on .Net Framework 4.0 and WPF. Based on the thought of directive programmable, the business logic and the data processing and user interface were completely separated. All of the control commands and configuration information were pre-stored in the XML file. They were loaded dynamically when the system is running. To realize the automatic control of different brands of switcher, the programmable instruction set is modified in the configuration information directly, and it isn’t necessary to recompile the entire control software. Therefore, the versatility of this system was improved.

Keywords:automatic audio switcher; directive programmable; audio workstation; serial communication protocol

doi:10.3969/j.issn.1673-159X.2016.01.020

中图分类号:TN931;TN948.48

文献标志码:A

文章编号:1673-159X(2016)01-0094-05

基金项目:国家自然科学基金项目(61305104);春晖计划项目(z2014054);四川省科技支撑计划项目(2013GZX0152);西华大学重点基金项目(z1320927)。

收稿日期:2014-10-22

第一作者:郭奕(1982—),男,讲师,博士,主要研究方向为数字图像、音视频处理与广播电视相关技术、模式识别。

·计算机软件理论、技术与应用·