欢迎来到学术参考网

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

发布时间:2016-04-20 16:04

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 QQ截图20160420160418.jpg

  2.1 人机界面功能开发

 

  (1) 创建工程

 

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

 

  (2) 各种功能的实现

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

  2.2 安装包制作

 

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

 

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

 

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

 

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

 

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

 

  3 模拟结果

 

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

 

  4 结 语

 

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

上一篇:机场障碍物评估和三维可视化软件的开发应用

下一篇:关于军用软件装备开发设计方法的研究