基于SQLite的民机地面数据管理系统的设计与实现
2015-06-25段世梅
摘 要:针对民用飞机电子飞行包与地面数据管理系统数据匹配及一致性的问题,设计和实现了基于SQLite的民机地面数据管理系统,对基本的SQ语句作了二次封装,对开发的系统进行了测试和实验。实验证明,通过地面数据管理系统与电子飞行包的配套使用,可以大大减轻电子飞行包的工作量,并可以不通过格式转换实现数据的上传和下载,为相关系统的研制提供了很好的参考价值。
关键词:地面数据管理系统;SQLite;二次封装
引言
虽然Oracle、SQL Server及MySQL等关系数据库系统代表着当今数据库应用的主流,但它们并不能满足所有应用场合的需要,比如,对于嵌入式系统应用便失去了用武之地。在嵌入式系统中,由于硬件资源有限,不可能安装庞大的数据库服务器,并且嵌入式数据库的实现还须满足系统的可定制性要求,即系统选择的技术路线要面向具体的行业应用,因而,源码开放的嵌入式数据库SQLite的优势便显得较为明显,在开发民用飞机电子飞行包中采用了SQLite嵌入式数据库。然而,如果在电子飞行包中进行电子航图的编辑删减,一方面由于没有鼠标和键盘,操作起来不方便,另一方面由于电子飞行包硬件配置有限,处理速度很慢。因此需要在与电子飞行包中配套的地面数据管理系统中实现诸多功能,并且可以将处理好的数据等资源直接上传到电子飞行包中。在以往的工程项目中,地面数据管理系统采用Access数据库或SQLServer等数据库,但是会存在数据格式不一致问题,数据上传下载需要转换且花费一定的时间。因此,地面数据管理系统也采用了嵌入式数据库SQLite,一方面可以大大减少电子飞行包中的工作量,另一方面又可以不用数据格式转换且保证数据的一致性。
1 SQLite综述
SQLite是2000年面世的一种小型嵌入式数据库。它是一个小型的C语言链接库,该链接库本身就完全包含数据库引擎的功能,可以方便地运用于嵌入式系统中。SQLite提供了对SQL92的大多数支持,支持多表、索引、事务、视图和触发等一系列用户接口及驱动,简单易用,速度也相当快,同时还提供了丰富的数据库接口。SQLite具有很强的内聚性,整个系统还不到25000行ANSIC代码,而且其源代码完全开放,可以自由地应用于任何领域,甚至包括商业应用。
SQLite具有以下特性:
零配置——不需要安装和管理配置;储存在单一磁盘文件中的一个完整的数据库;数据库文件可以在不同字节顺序的机器间自由共享;存储量大,可支持数据库的大小为2TB;代码小巧,完整配置的少于250KB;在大多数常见操作上比流行的客户/服务器数据库引擎更快;简单易用的API;具有良好注释的源代码,95%经过测试;独立,没有外部依赖;代码完全开放,可以免费用于任何用途,包括商业目的。
2 系统总体结构
民用飞机电子飞行包可容纳机组携带的所有资料,能将航空图表、飞行手册及飞行日志等资料进行数字化处理,大大方便了机组人员的资料查询和数据处理。基本功能有:
(1)电子化的文件、手册、图表和资料,便于随时调用查阅;(2)电子航图,包括机场图、进近图、离场图及航路图等;(3)电子检查单,包括正常检查单、快速检查单;(4)电子化飞机性能分析;(5)电子化的飞行性能计算;(6)电子化的飞行日志。
在电子飞行包中进行电子航图的编辑删减,一方面由于没有鼠标和键盘,操作起来不方便,另一方面由于电子飞行包硬件配置有限,处理速度很慢。因此需要开发配套的地面数据管理软件。电子飞行包与地面数据管理系统的结构关系图如图1所示。
3 系统的设计
地面数据管理系统用来管理系统数据,进行数据传输。地面数据管理软件的结构图如下所示,分为用户登录、电子课件、检查单、电子航图、飞行手册、用户信息、数据管理和数据传输十个模块。地面数据管理系统软件功能划分如图2所示。
(1)打开软件,软件进行数据库和界面初始化,初始化完成后进入用户登录界面,根据用户级别输入正确的用户信息,进入系统主界面。(2)系统主界面与电子飞行包主界面类似,根据用户需要,选择不同的功能按钮进入各任务模块。(3)电子课件包括对所有的电子课件进行管理查看,电子课件的格式为有PDF、doc、Html等格式。选择不同的文件格式,在列表列出电子课件文件夹下该类型的所有文件。(4)检查单,包括快速检测单和常规检查单。(5)电子航图主要包括以下功能:多级子目录组织管理航图,设置航图所属机场,生效时间等数据;航图数据的基本编辑功能;航图资料库的版本管理;航图更新包的导出、导入;对航图图层的增加、删除;对机场数据库的管理。(6)电子手册,主要包括以下功能,按专业进行文档管理、维护以及文档查询功能。(7)用户管理,根据用户的级别和权限,可管理相应用户的信息,包括增加、删除、修改用户信息。(8)数据管理主要包括以下功能:建立基于安全管理的数据库;文档、航图、数据等信息的原始备份;文档、航图、数据等信息根据需要的恢复;文档、航图、数据等信息的剔除冗余信息的整合;文檔、航图、数据等信息的存档等;数据格式的转换。(9)飞机性能分析,主要包括以下功能,平飞需用的推力、最大、最小平飞速度分析;升限分析;下降性能分析;水平加减速性能分析;盘旋性能分析;爬升性能分析;航程、航时分析;起飞、着陆性能分析。(10)数据传输主要包括以下功能:文档、航图、数据等信息的单次或批量导出;文档、航图、数据等信息的单次或批量导入。
4 系统的实现
地面数据管理系统是在Windows XP操作系统下进行开发和调试,采用模块化结构和开放式体系,便于软件升级和扩充。地面数据管理系统在Visual Studio 2008中开发的。电子手册和地面数据管理系统运行PC机上,通过USB口实现数据通讯。
实现系统后,进行了测试和实验。实验证明,地面数据管理系统能够实现地面数据的管理,能够和电子手册正常通讯,能够保证数据库的一致性。好多在电子飞行包中不方便实现的功能,如电子航图的管理,飞机性能分析等,可以通过地面数据管理系统完成,然后方便的导入到电子手册中。地面数据管理系统主界面如图4所示,电子航图管理界面如图5所示,飞机性能分析画面如图6所示。
地面数据管理系统对用户信息、电子手册、电子航图、电子课件、检查单的管理函数进行二次封装,部分函数名称列表如下:
//添加用户
BOOL AddUser(USER_TEST puser);
//创建查询用户信息
BOOL CreateUserInfoDB(CString strfile);
BOOL SelectMyUsers(CListCtrl&list);
//删除用户
BOOL DeleteUser(USER_TEST puser);
BOOL DeleteMyUserById(int id);
//查询用户
BOOL SelectMyUsers();
BOOL SelectMyUserName();
//添加用户
BOOL AddMyUser(PUSER puser);
//更新用户
void UpdateById(int id,PUSER puser);
BOOL SelectUsersByUserName(CString strOldPWD,CString strNewPWD,CString strName);
//创建、查询电子手册
BOOL CreateElecReferDB(CString strfile);
BOOL GetElecReferInfo(int nType );
//创建、查询电子地图
BOOL CreateMapInfoDB(CString strfile);
BOOL GetMapInfo(int nType );
//删除图层
BOOL DeleteOneMap(int nMapSelect, CString sMap );
//添加图层
BOOL AddOneMap(int nMapSelect, CString sMap)。
通过对SQLite部分函数进行的二次封装,可为应用开发带来以下好处:
(1)系统模块化;(2)节省内存,易于维护,当需要功能升级时,只需升级底层dll,而不需要升级整个系统;(3)编译好的dll可以直接加载到系统中,不需再次编译,节省时间;(4)方便用户使用,减少冗余代码,有助于资源的共享。
5 结束语
文章针对民用飞机电子飞行包与地面数据管理系统数据匹配及一致性的问题,概述了SQLite,设计和实现了与民用飞机电子飞行包匹配的地面数据管理系统,对基本的SQ语句作了二次封装,为相关系统的研制提供了很好的参考价值。
参考文献
[1]岑冬梅.基于SQLite的空间数据库存储技术的研究与实现[D].武汉科技大学,2009.
[2]萬俊.智能手机中基于SQLite的媒体查询功能的研究与实现[D].南京理工大学,2006.
[3]乐建炜,向复生,戴树岭.虚拟座舱中多功能显示器的仿真[J].系统仿真学报,2005,17(12):3046-3049.
[4]GL Studio Users Manual[M].USA: Distributed Simulation Technology Inc, 2006.
[5]李军,姜国卫.某型飞机飞行模拟器的设计与实现[J].仿真器与仿真设备,2007:357-363.
作者简介:段世梅(1984-),女,硕士,软件工程师,主要从事飞行仿真技术研究。