APP下载

时统系统频标单元模拟软件开发

2016-05-14杨超钟李刘云飞赵瑞青

现代电子技术 2016年6期
关键词:教学软件

杨超 钟李 刘云飞 赵瑞青

摘 要: 在此介绍用于教学的时统频标单元模拟软件开发。软件采用VC++编程方法实现,频标单元人机界面的每一个功能都由相应的控件和相应的事件处理函数完成,使用事件响应函数的形式实现。运行结果表明,设备所有的人机界面和操作与实物一致,完成了时统频标单元的模拟,该软件有助于课堂授课和学生练习设备的操作。文中的软件开发方法可为其他教学模拟软件的开发提供参考。

关键词: 时间统一; 教学软件; 频率标准; VC++

中图分类号: TN98?34 文献标识码: A 文章编号: 1004?373X(2016)06?0037?04

Analog software development of frequency standard unit of timing system

YANG Chao1, ZHONG Li2, LIU Yunfei3, ZHAO Ruiqing4

(1. Department of Electronics and Information Engineering, NAAU, Yantai 264001, China; 2. Unit 91181 of PLA, Qingdao 266000, China;

3. Qingdao Branch, NAAU, Qingdao 266041, China; 4. Unit 91604 of PLA, Longkou 265700, China)

Abstract: Timing system, with the development of science and technology, plays a more and more important role in the area of science and engineering, and teaching of the timing system is brought to the forefront gradually. The analog software development of the timing system frequency standard unit for teaching is described in this paper. The software contributes to teaching in class and the students practice to get the equipment operation skill. The software is realized with VC++ 2008 programming method. Each function of the frequency standard unit man?machine interface of the timing system is realized by corresponding control and event handling function, which is implemented in the form of event response function. The systems running results prove that all the man?machine interface and operation are in accordant with the actual object, and can fulfill the analog of frequency standard unit of the timing system.. The software developing method can be taken as a reference for development of other teaching softwares.

Key words: timing system; teaching software; frequency standard; VC++新兴工程学科[2]。随着现代导航、通信、电力等科学技术的进步,时统技术得到迅猛发展[3?4],越来越多的工程和科学邻域需要并建立了时间统一系统[5?10],时统系统的教学逐渐受到重视,为了提高教学质量,相应的教学软件也应运而生。本文介绍时统系统的重要组成部分之一——频标单元的教学模拟软件开发。该软件主要对时统设备频标单元进行人机界面模拟。使用该软件,不仅在课堂上可以通过屏幕直观再现作为授课内容的设备的人机界面和操作使用方法,便于教师授课和学生学习,而且,可以作为模拟设备,便于学生练习操作使用设备,对没有实习设备场合下的设备教学,尤其有用。通过使用该软件,让相关技术人员能够在短时间内学会频标单元的操作使用,达到事半功倍的效果。该软件的编程方法可以帮助编写导航、通信、电力等不同时统系统中频标单元的教学软件,同时也为其他课程的教学软件编程提供参考。

1 时统设备频标单元人机界面方案设计

频标单元[11]面板主要由频标指示灯、输入/输出指示灯、时钟、电源开关和用于时间设置(简称置时)的按钮(调整按钮、置时按钮)6部分组成。

时统设备频标机单元的工作流程如图1所示。在电源开关按下(打开电源)之前,频标单元面板上的各个指示灯均处于熄灭状态,用于置时的时钟也没有时间显示。当电源开关按下(打开电源)后,各个正常工作的频标指示灯亮,其中选中工作的指示灯闪烁相应的输入/输出指示灯亮。置时的时钟时间由00时00分00秒开始计时。若置时按钮按下,开始置时,置时结束后,时钟在置时的基础上计时。任何状态下,按下电源开关(断开电源),所有的指示灯均处于熄灭状态,时钟也没有时间显示。

根据频标单元面板组成和工作流程,选用了Microsoft公司的Visual C++ 2008软件进行编程。Visual C++ 2008是Visual Studio 2008开发工具箱中的一个C++程序开发包。Visual Studio 2008是面向Windows Vista,Office 2007,Web 2.0的新一代开发工具,引入了250多个新特性,整合了对象、关系型数据、XML的访问方式,语言更加简洁。使用Visual Studio 2008可以高效开发Windows应用程序。设计器中可以实时反映变更,XAML中智能感知功能可以提高开发效率。同时Visual Studio 2008支持项目模板、调试器和部署程序。

频标单元人机界面各模块功能实现的程序流程图如图2所示。首先创建相应控件,生成面板,并初始化定义各全局变量。随后检测是否发生点击控件操作,如有点击操作,则产生相应的事件。然后再从头文件中寻找相应的事件响应函数,在函数中改变各控件的相应属性,实现课题要求的功能。

频标单元教学软件安装包设计思路如图3所示。由于频标机面板上有一组数码管,在进行面板模拟实现时需要用到一种特殊的字体,即“Quartz Regular.ttf”。如果在不包含这种字体的计算机上运行本系统时,数码管字体就无法显示,影响模拟面板的真实性。除此以外,本系统还是在以.NET Framework 3.5为基底架构的Visual C++ 2008环境下开发的。在Windows 7 操作系统中,.NET Framework 3.5是系统本身就包含的,然而在很多老一点的操作系统(如Windows XP)中并不包含此模型。因此在开发过程中,必须将此模型作为依赖项加入程序中。考虑到上述的两个情况,在完成面板的编程后,对整个系统的安装包进行了开发,将系统所需的字体、图标、依赖项、卸载程序(Uninstall.exe)以及各种快捷方式(包括桌面和开始菜单的快捷方式)等进行了打包处理。

2 时统设备频标单元模拟软件开发过程

2.1 人机界面功能开发

(1) 创建工程

运行Visual Studio 2008软件,创建一个基于CLR的Windows窗体应用程序工程。设置窗体的属性,添加Timer,PictureBox,Label等控件,并分别设置属性。

(2) 各种功能的实现

频标单元人机界面的每一个功能都由相应的控件和相应的事件处理函数完成。使用事件响应函数的形式实现,即发生一个事件,执行相应的一个函数。

时钟数字闪烁的实现。利用控件timer1专门实现时钟数字闪烁功能。通过在每个timer1_Tick()事件内一个整型变量record进行计数,timer1_Tick()事件每发生1次,执行1次“record++”,再通过判决条件“if(record%5==0)”有条件地控制相应空间的可见和不可见交替执行,实现闪烁的功能。实现“闪烁”的片段源程序如下:

时钟计时的实现。利用控件timer2专门实现时钟计时功能。通过在每个timer2_Tick()事件内执行时、分、秒共6位数字的自加和进位,并将相应的整型数字转换成相应的字符,赋给相应Label的Text,实现时钟计时的功能。实现“计时”的片段源程序如下:

长按调整键2 s以上数字快速增加的实现。利用控件timer3专门实现这一功能。当调整键按下时,timer3开始计时,即“this?>timer3?>start()”,则timer3_Tick()事件发生,内部的计数变量开始计数。当计数变量值大于20时,相应位时钟数字便以ms为单位开始增加。当调整键弹起时,timer3停止计时,即“this?>timer3?>stop()”,然后执行相应位的时钟数字加1。

频标指示灯闪烁的实现。利用控件timer4专门实现此功能。实现方法与时钟数字闪烁的实现方法相同。

置时功能的实现。置时功能主要由两个按钮实现,分别是“设置”键和“调整”键。为设置键定义一个事件响应函数,即MouseClick()函数,表示鼠标点击按钮。设置一个全局静态整型变量num,用来标识哪些数码管闪烁。MouseClick()函数发生1次,则num加1,并且timer1开始计时,即“this?>timer1?>start()”。timer1_Tick()函数内有一个switch语句,通过读取num的值,指定对应的数码管闪烁。当num值为6时,执行令num=0,且把小时钟的值赋给大时钟,停止timer1和timer2两个时钟。为调整按钮定义两个事件函数,即MouseDown()函数和MouseUp()函数,分别表示鼠标点击按下和弹起。在MouseDown()函数发生时,timer3开始计时,即“this?>timer3?>start()”,则timer3_Tick()事件发生,内部的计数变量开始计数。当计数变量值大于20时,相应位时钟数字便以ms为单位开始增加。当MouseUp()函数发生时,timer3停止计时,即“this?>timer3?>stop()”,然后执行相应位的时钟数字加1。在调整键的两个事件响应函数中也分别加了一个switch语句,通过读取num的值来控制哪几位数码管数字加减。本文分别在“设置”键和“调整”键的时间相应函数里设置了一个计时变量fclk,用于判定系统在60 s内如果未再进行操作,则停止timer1和timer2两个时钟,令num归零,使按键复位,并把小时钟的值赋给大时钟。

时钟显示的实现。数码管部分用了8个Label控件作为数字显示和一个PictureBox控件作为显示屏。

按钮和指示灯效果的实现。为了逼真地再现人机界面,对按钮和指示灯控件分别做了特殊处理。对仪器未启动、按钮被按下和按钮弹起这3种状态下的按钮图片分别用Photoshop进行了处理;在实现指示灯闪烁时,则是采用一个亮色和一个暗色重合的方式实现。

2.2 安装包制作

在完成频标单元各个功能软件编程实现的基础上,为软件制作了安装包。安装包的内容包括面板模拟程序和卸载项程序、字体和图标等资源、桌面快捷方式、“开始”菜单快捷方式、“开始”菜单卸载快捷方式和.NET Framework 3.5组件,具体实现过程如下:

(1) 建立工程并添加程序。首先建立一个“安装和部署”工程,在系统自动建立的“应用程序文件夹”、“用户桌面”和“用户的‘程序菜单”三个文件夹中分别添加面板模拟程序和图标文件,程序的快捷方式。

(2) 添加卸载程序。卸载程序添加到“应用程序文件夹”中,需要从“C:\WINDOWS\system32”路径下添加Windows自带的卸载程序文件“msiexec.exe”,并重命名为“uninstall.exe”。卸载程序快捷方式要添加在“用户的‘程序菜单”中。在为卸载程序添加快捷方式时,需要将卸载快捷方式的Arguments属性设置为所属项目属性下的ProductCode对应的值,并在前面加上“/x”,这样系统在进行卸载时才能准确地卸载用户想要卸载的软件。

(3) 随后为安装包添加系统依赖项,即.NET Framework 3.5等组件。在项目的属性页上点击系统必备,选择相应组件,再选择“从与我的应用程序相同的位置下载系统必备组件”,然后确定。

(4) 生成可执行文件。为解决方案配置Release属性,最后生成项目的解决方案。在项目文件夹中存在一个名为Release的文件夹,打开后便能看到*.exe文件、*.msi文件和相应的系统组件文件夹。将Release文件夹进行压缩,重命名,那么安装包便做成了。

3 模拟结果

软件生成的频标单元模拟面板图如图4所示,频标单元面板外观模拟与实物相同,点击图中按键,相应的响应界面也与实物一致。因而实现了频标单元人机界面模拟。

4 结 语

时统系统越来越多地在导航、通信、电力、科学试验中得到应用,时统系统教学软件随之出现。针对时统系统中的频标单元,用Visual C++ 2008制作了模拟教学软件,其中包括程序的打包处理。运行结果表明,频标单元模拟软件实现了与实物一致的人机界面。文中的编程方法可以应用到类似的频标单元模拟软件中,也为其他类型设备的人机界面模拟提供了参考。

参考文献

[1] 王党卫.时间统一系统研究[J].现代导航,2012,3(6):450?455.

[2] 童宝润.时间统一系统[M].北京:国防工业出版社,2003:6?11.

[3] 崔明,吴志勇.一种利用GPS驯服压控晶体振荡器的方法[C]//第九届全国信息获取与处理学术会议论文集.丹东:中国仪器仪表学会,2011.

[4] 张九宾,张丕状,杜坤坤.无线分布式测试系统时间统一技术的研究[J].核电子学与探测技术,2010,30(3):380?384.

[5] 胡春阳,焦群.电网时间统一系统可行性研究[J].电力系统通信,2011,32(1):1?5.

[6] 江涛,孙昕.GPS与IRIG?B在电网授时系统中的应用[J].继电器,2007,35(z1):333?335.

[7] 刘振儒.时间码在测试系统中的应用[J].测控技术,2011,30(z1):256?259.

[8] 刘博扬,梁玉秋.一种为计算机提供标准时间的方法[J].装备指挥技术学院学报,2002,13(5):59?62.

[9] 姚虹春,何迎利,焦群.电网时间统一系统网管的研究[J].电力系统通信,2011,32(1):50?53.

[10] 俞科云,吕云飞.潜艇时统应用与管理探析[J].舰船电子工程,2010,30(7):18?21.

[11] 童宝润.时间统一系统[M].北京:国防工业出版社,2003:228?231.

猜你喜欢

教学软件
传承·创新·引领:虚拟教学软件在高中生物学教学中的应用与推广
虚拟教学软件在高职院校汽车维修实践教学中的应用
基于HTML5的凸轮廓线图解法App教学软件研究
基于AR的国家开放大学计算机专业体验式教学软件的设计开发
网络教学中教学设计方法的研究与探讨
VR技术在三维角色动画教学软件中的应用研究
香港大学生普通话学习的环境、语言态度及教学软件的应用——焦点小组访谈研究
高职高专院校计算机职业教育实践教学创新研究
浅谈多媒体教学软件设计制作关键技术
二手车鉴定评估软件在教学中的应用