欢迎来到天天文库
浏览记录
ID:32633776
大小:61.18 KB
页数:8页
时间:2019-02-14
《半点观测辅助提醒程序的实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、半点观测辅助提醒程序的实现张涛中国民用航空中南地区空中交通管理局河南分局451162张占文中国民用航空飞行学院洛阳分院471001摘要半点观测是地面观测中经常进行的一项例行观测项目。半点观测辅助提醒程序提供了基于主导能见度判断和飞行计划保障的辅助声音提醒功能。木文从总体和界面设计以及代码实现等方面介绍了如何使用MFC开发半点观测辅助提醒程序。关键词半点观测辅助提醒MFC主导能见度飞行计划郑州机场不在指定的24小时发布半点机场例行天气报告的机场之列,当满足相关条件需要进行半点观测时,现有的发报软件并不能准确做到辅助提醒的功能。虽然采取了手动措施来避免“错、忘、漏”,但缺少一个简
2、单易用的自动化软件。木文介绍了如何使用MFC开发半点观测辅助提醒程序。1•半点观测民用航空气象地面观测分为例行观测、特殊观测和事故观测三种,其中例行观测是指按指定的时间、次数和项目对有关气象要素进行观测。通常每小时观测一次,也可每半小时观测一下[1]。机场气象台(站)应当于整点或者半点釆集数据后立即发布机场例行天气报告[2]。民航局空管局指定的机场气象台应当每日24小时连续发布时间间隔为0.5小时的机场例行天气报告。指定发布半点机场例行天气报告的机场为:北京、太原、天津、上海虹桥、上海浦东、杭州、广州、深圳、沈阳、大连、乌鲁木齐。郑州机场并不在指定发布半点机场例行天气报告的机
3、场之列。郑州机场气象台在当主导能见度低于1500米以及保障重要飞行时需发布半点机场例行天气报告。2.程序条件判断半点观测辅助提醒程序通过实时获取最近一份天气报告报文,解析出报文的有用项内容,判断其中主导能见度是否低于1500米。如果主导能见度低于1500米则在下个半点吋次进行辅助提醒;反之,则不进行提醒。程序使用数据文件方式管理飞行计划,实现飞行计划的增加、删除和修改。在飞行计划设置的提醒起止时间生效时进行辅助提醒;反之,则不进行提醒。3•总体及界面设计3.1总体设计半点观测辅助提醒程序总体设计的结构图如图1所示,程序设计中考虑了整点观测的提醒功能。整点报吋吋刻为整点前10分
4、钟使用声咅提醒观测员进行观测,持续吋间为30秒;在整点前30秒使用声音提醒观测员进行编发报,持续时间为30秒。半点报时时刻为半点前10分钟使用声音提醒观测员进行观测,持续吋间为30秒;在半点前30秒使用声咅提醒观测员进行编发报,持续时间为30秒。3.2界面设计半点观测辅助提醒程序如图2所示,主要分为三个部分:左上方的功能选择区、右上方的飞行计划编辑区和下方的报文显示区。功能选择区分为两个区域:提醒吋刻和选择条件。提醒时刻包含全时次整点报时、全吋次半点报吋和条件判断半点报吋三个条件选项。其中条件判断半点报时要结合选择的条件使用。选择条件包含飞行保障和能见度低于1500米两个条件
5、选项。飞行计划编辑区由三个按钮控件、一个列表控件和一个编辑窗口组成。飞行计划列表显示会根据飞行计划未生效、生效、失效三个状态自动选择不同的字体颜色。当飞行计划未生效吋,字体颜色为黑色;当飞行计划生效时,字体颜色为红色;当飞行计划失效吋,字体颜色为灰色。编辑窗口如图3所示,飞行计划基本信息可以在该窗口内完成编辑,半点提醒时刻可以根据需要进行设置。报文显示区使用动态文本框显示最近一份天气报告报文,并根据主导能见度自动选择不同的字体颜色。当主导能见度高于或等于1500米吋,报文字体颜色为黑色;当主导能见度低于1500米吋,报文字体颜色为红色。4.使用MFC编写程序4.1建立工程打开
6、MicrosoftVisualStudio2005,建立一个基于对话框的MFC应用程序。根据界面设计的内容对主对话框进行布局设计,在资源视图中添加一个对话框资源[3],并为这个子对话框指定类名。同样根据界面设计的内容对子对话框进行布局设计。4.2设置飞行计划编辑区(1)使用数据文件存储飞行计划,在区域设定中使用chs避免出现乱码。下面是WritePlan函数的相关代码:char*oldjocale=_strdup(setlocale(LC_CTYPE,NULL));setlocale(LC_CTYPE,"chs");〃设定<ctpye.h>中字符处理方式if(fi
7、le.Open(_T(".\Plan.dat,,)/CFile::modeCreate
8、CFile::modeWrite
9、CFile::typeText)==0)return;〃使用一个dat文件存储飞行计划,如果没有则新建一个。CListBox*pCtrll=(CUstBox*)GetDlgltem(IDC_LISTl);〃使用一个ListBox控件进行排序pCtrll->ResetContent();〃重置ListBoxCListCtrl*pCtrl2=(CUstCtrl*)GetDlglt
此文档下载收益归作者所有