终端显示软件毕业设计论文.docx_第1页
终端显示软件毕业设计论文.docx_第2页
终端显示软件毕业设计论文.docx_第3页
终端显示软件毕业设计论文.docx_第4页
终端显示软件毕业设计论文.docx_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计(论文)报告纸面向地面测试的终端显示软件设计与开发姓 名缪 彬学 号 2008011404专 业机械工程及自动化指导教师 张丹南京航空航天大学金城学院机电工程系二一二年六月摘要在卫星姿态与轨道分系统地面综合测试试验中,终端显示软件是保证地面测试顺利进行的必要环节。终端显示软件的主要任务是通过网络接收中心机系统传送来的数据,并将其转化为图像、图形、曲线、字符等方式的信息提供给使用者。该软件具有显示内容丰富,画面数量大,具备三维仿真显示能力,并且具有实时、可靠、交互性强、界面友好、操作简单等特点。论文的主要工作如下:(1)软件功能模块与总体结构的设计。研究卫星姿轨控分系统地面试验的流程及测试需求,设计测试软件系统的功能模块与总体结构。(2)软件通用性、灵活性与可扩展性研究。将终端显示软件划分为多个功能相对独立的模块,并分析各个模块的实际任务与扩展性需求。(3)标准数据包的接收与解码研究。针对标准数据包格式设计其接收与解码流程,以及解码配置文件的具体定义。(4)历史数据回放研究。设计数据回放的控制机制以及具体的控制指令、配置文件集和数据回放流程。(5)数据显示研究。根据数据显示的具体需求,研究不同显示形式的具体实现方法。关键词:地面测试,终端显示,数据可视化,数据回放,模块化目录第一章 绪 论1.1研究背景与课题的来源1.2研究意义及内容1.2.1研究意义1.2.2研究内容1.3国内外关于数据可视化的研究现状第二章 终端显示软件总体设计2.1 终端显示软件需求分析2.1.1 软件设计需求2.1.2 软件设计目标2.2软件总体设计 2.2.1设计原则2.2.2软件功能模块划分2.3涉及的关键技术第三章 关键技术研究3.1终端显示软件功能模块与总体结构的设计3.2配置文件集3.2.1.界面信息配置文件集3.2.2.数据处理配置文件集3.3标准数据包的接收与解码3.3.1解码协议配置文件集3.3.2接收与解码流程3.4历史数据回放3.4.1.数据回放需求3.4.2.数据回放结构与控制流程3.4.3.控制指令设计3.4.4.控制指令配置文件集3.5数据可视化3.5.1数据显示的实现流程3.5.2数据显示类的设计第四章 原型软件的开发与实现4.1开发工具及开发环境4.2终端显示软件功能的实现第五章 总结与展望5.1全文总结5.2工作展望毕业设计总结与致谢参考文献图表清单图2.1 软件模块实现层次图 3.1 tcp接收方式图 3.2 udp接收方式图 3.3数据保存界面图 3.4变量选取图 3.5数据的实时曲线显示图 3.6曲线显示中的鼠标键功能图 3.7曲线参数设置图 3.8修改曲线的各种属性图 3.9载入已保存的曲线属性配置文件图 3.10保存曲线为图片图3.11数据实时数值显示图3.12选择曲线显示的离线数据图3.13选择数值显示的离线数据图 3.14数据实时二元曲线显示图 3.15实时窗口保存图 3.16载入实时窗口图3.17系统层次划分图3.18 ini文件格式图3.19 数据处理配置文件结构图3.20 excel文件集与内存数据处理协议的对应转化关系图3.21 标准数据包的接收与解码流程图3.22 数据回放流程图3.23数据显示实现流程图3.24数据显示类的继承关系图4. 1 终端显示软件配置信息读取界面图4. 2 终端显示软件主界面图4. 3 tcp网络连接设置界面图4. 4 udp网络连接设置界面图4. 5 时间曲线显示界面图4. 6 曲线显示参数设置界面图4. 7 列表显示界面图4. 8 数据回放控制面板界面表 2.1 软件实现关键技术表3.1 数值类型表3.2 查询指令定义表3.3 查询指令类型表3.4 时间类型表3.5 操作指令定义表3.6 操作指令类型表3.7 控制指令配置文件“command.xls”的格式定义表4. 1 系统开发环境与开发工具第一章 绪论1.1 研究背景与课题来源自1957年10月4日,世界上第一颗人造卫星进入太空以来,随着空间技术的不断发展,航天技术已经广泛应用于国民经济、军事、科学研究和社会生活的众多部门,产生了重大而深远的影响。截至2003年底,世界各国和组织共成功发射了5635个航天器,其中90%是各类人造卫星,人造卫星是人类目前探索。开发和利用太空的最重要工具,研制和发射人造卫星是世界各国航天活动的主要内容。 卫星是由多个分系统组成的整体,由于对发生故障的卫星进行在轨修复十分困难,卫星在太空中发生任何故障都可能造成灾难性的影响,因此为了及时发现并消除卫星上存在的各种故障和隐患,在卫星发射前通过地面测试试验对卫星的各项性能指标进行检验十分重要。随着计算机和标准接口在卫星测试中的广泛使用,测试软件就成了测试系统必不可少的重要组成部分。卫星测试通常分为单元级测试、分系统测试和整星测试,在实际的卫星测试工作中往往需要根据具体不同的测试阶段、测试任务和目的开发相应的测试软件,这样做就会形成多种多样的功能类似又不能通用的测试软件,因此如能设计一种通用的或者容易扩展的测试软件将极大的降低开发成本,减少对测试操作人员培训的工作量,并且在测试工作的不同阶段都能得到一致性良好的测试数据。其中由于卫星姿态与轨道分系统地面综合测试时,涉及数十个单机以及数百个测试信号,测试操作人员通常根据这些测试参数的试验数值对控制系统进行实时监控与状态判断,数据的采集、解析的正确与否以及数据的可视化程度的好坏都直接影响到测试人员的判断。因此有必要开发一套数据可视化程度好,满足需求的终端显示软件。本文将以某型号卫星姿态与轨道控制分系统的地面试验为背景,在与某航天研究所的合作项目的支持下,进行面向地面测试的终端显示软件设计与开发的研究工作。1.2 研究意义及内容1.2.1 研究意义本课题针对某型号卫星姿轨控分系统研制过程中的实际需求,设计并实现一套卫星姿轨控分系统地面综合测试的软件,并应用于实际的卫星研制过程中,为卫星的实时仿真、半物理仿真以及整星试验提供技术支持,保障卫星设计项目的顺利进行。因此,开展卫星姿轨控分系统地面终端显示测试软件的研究与设计对于提高卫星测试效率,缩短研制周期,保证卫星可靠性与使用寿命具有非常重要的意义,在卫星的研制过程中具有重要的实用价值。终端显示测试软件最重要的作用就是实时监测卫星各系统运行正确与否.1.2.2 研究内容本文以某型号卫星姿态与轨道分系统地面试验为背景,在调研其实际的具体试验需求的基础上,设计终端显示测试软件的各个功能模块与总体结构,研究软件系统实现需要解决的多项关键技术,开发实现了卫星姿态与轨道分系统地面试验测试软件并将其应用于具体的卫星测试任务中。本文研究的主要内容有:(1)软件功能模块与总体结构的设计。研究卫星姿轨控分系统地面试验的流程及测试需求,设计测试软件系统的功能模块与总体结构。(2)软件通用性、灵活性与可扩展性研究。将终端显示软件划分为多个功能相对独立的模块,并分析各个模块的实际任务与扩展性需求,将每个模块统一划分为配置文件集和通用模块两个层次,分别设计各个模块配置文件集中配置文件的格式以及对配置信息进行存储与读取的具体方式。(3)标准数据包的接收与解码研究。针对标准数据包格式设计其接收与解码流程,以及解码配置文件的具体定义。(4)历史数据回放研究。设计数据回放的控制机制以及具体的控制指令、配置文件集和数据回放流程。(5)数据显示研究。根据数据显示的具体需求,研究不同显示形式的具体实现方法。1.3 国内外关于数据可视化的研究现状卫星姿态与轨道分系统地面试验时,涉及数十个单机以及数百个测试信号,测试操作人员通常根据这些测试参数的试验数值对控制系统进行实时监控与状态判断,目前测试数据的显示方式主要有:(1)数值数据将测试参数以列表的形式进行表现,直接显示测试参数的数值,这是测试数据最简单最直接的表现形式,特别适用于需要关注参数数值大小的场合,系统测试人员通常用参数列表对有相关性的几个参数进行数值对比。其缺点是不够直观,当列表中的参数众多时系统测试人员很难及时发现异常。(2)二进制源码以二进制代码的形式显示数据包中的测试参数,该方法通常被测试人员用于对测试中异常问题进行进一步的定位与详细分析。(3)曲线将测试参数的数值以曲线的形式进行表现,适合表现数值随时间以固定规律变化的信号参数或者具有相关性的几个参数,这种情况下测试人员能够直观的看到参数数值的实时波动与基本变化趋势。但由于曲线很难定量给出参数间的相互关系,通常将曲线作为数值数据显示方式的有益补充。(4)文字将测试参数的数值解释为具体的文字含义,该方式更适合表现具有某几个确定含义的测试参数,例如数值为1时表示太阳帆板展开,数值为2时表示捕获地球,数值为3时表示异常模式等。直接显示文字能够让测试操作人员快速直观的理解测试参数目前的状态,从而减轻工作负担,提高测试效率。(5)统计图形将测试数据以柱状图、饼图、散点图等统计图形进行表现,该方式适合测试操作人员对历史测试数据进行离线的统计分析。(6)图像与三维动画模拟借助各种高质量的图像显示和直观、方便的可视化设计为测试人员提供更加完善、简洁、人性化的数据表现形式。第二章 终端显示软件总体设计2.1 终端显示软件需求分析 2.1.1 软件设计需求在本课题的研究中,卫星姿态与轨道分系统地面试验终端显示软件应用于分系统研制的终端显示,与分系统的研制同步进行设计开发,具有相互依赖的特性。在系统研制的过程中采用终端显示测试软件对其进行实时监视,直观发现系统缺陷,然后改善系统设计,因此终端显示软件必需对各种测试参数进行实时的监测与分析,同时可以对数据库中的数据进行回放显示。这就对终端显示软件提出了更高的新的要求。由于在对卫星姿态与轨道分系统进行测试时,测试内容较为复杂,对终端显示软件的要求是比较高的,其特点为:(1)被测参数多,测试速度要求高;(2)要求终端显示软件操作简便,操作界面和结果显示直观醒目;(3)终端显示软件具有基于tcp/ip和udp协议的数据通信功能;(4)终端显示软件具有测试数据的查询和解析功能(5)终端显示软件能够以多种方式直观的显示测试数据;(6)终端显示软件具有各种参数的配置功能。(7)终端显示软件具有一定的通用性,能够同时应用于仿真实验室的测试和整星状态下的测试。2.1.2 软件设计目标针对卫星姿态与轨道分系统地面试验的实际需求,本文建立分系统地面试验的终端显示软件,并将其应用于实际的卫星姿态与轨道分系统的地面测试试验中。该终端显示软件的设计思想如下:(1) 较高的实用性。依据卫星姿态与轨道分系统地面试验的实际应用需求进行设计,进行深入详细的需求调研,在保证功能实现的基础上,增强用户体验,提高软件的可用性;(2) 结构的合理性与通用性。针对卫星姿态与轨道分系统边研制边测试验证的特点,采用模块化的设计思想,将终端显示软件划分为多个功能相对独立的模块,各模块间定义规范的接口,简化了软件维护难度的同时非常利于软件的升级与功能的改变与扩展;(3) 灵活适应性与可扩展性。采用配置文件的方式管理测试数据的解码协议,实现只需要适当的修改配置文件就能使终端显示软件适用于经过不断修改与完善后的系统测试中;(4) 高可靠性。终端显示软件必能能够在测试系统实时产生大量测试数据的情况下正常工作。(5) 测试数据可视化多样性。根据不同类型数据的可视化需求,终端显示软件提供多种数据显示方式,例如十进制数值、文字描述、二进制源码、十六进制源码、时间曲线和相平面曲线等。为了满足分系统研制与测试过程中实际需求,地面测试终端显示软件的设计与实现主要解决以下几个具体问题:(1) 将终端显示软件划分为合理的功能模块;(2) 研究测试数据包的解码问题,以配置文件的形式对解码协议进行灵活的管理,使得分系统研制过程中在不影响终端显示软件的情况下能够对解码协议进行灵活的修改;(3) 研究测试过程中数据的流向以及数据的接收、解码、存储与显示,可以实时监测测试参数,也可以从数据库获取历史数据进行回放。2.2 软件总体设计 2.2.1设计原则(1)模块化设计模式为了提高终端显示软件的通用性与可扩展性,本文将终端显示软件按照功能划分为几个模块,各个模块之间相互连接。当现有的软件功能不能满足改变后的测试需求时,可以开发具有新功能的模块替换原有的软件模块或者将新开发的模块串接在软件模块中。2)基于配置文件的灵活性设计为了使终端显示软件具有一定的可扩展性,本文将卫星姿态与轨道分系统地面试验终端显示软件中的模块的实现层次划分为如图2.1所示的配置文件集与通用模块两个层次,每个模块中需要灵活设置的部分保存在配置文件中,专用的程序代码采用动态链接库的形式实现并将其相关信息存储在配置文件中,其他部分用通用模块实现,通用模块启动时读取相关的配置信息,程序运行时通用模块根据读取的配置信息动态调用相应的动态链接库函数,当配置信息改变时通用模块将其保存至配置文件中。测试人员可以根据需要修改配置文件中的配置信息,从而使得测试软件更加的灵活。图2.1 软件模块实现层次2.2.2 软件功能模块划分卫星姿态与轨道分系统地面试验终端显示软件的主要目的是对各种测试参数进行实时的监测与分析,同时可以对数据库中的数据进行回放显示。终端显示软件接收数据库服务器软件发送的数据,然后根据内存解码协议配置文件的内容对数据帧中的各个物理量进行解码得到工程数据,并将工程数据以数值列表、时间曲线和相平面曲线等不同的形式进行显示。终端显示软件还可以向数据库管理软件发送多种回放指令,对历史数据的回放进行控制。因此本文将终端显示软件按照实现功能的不同划分为九个子模块,包括数据接收模块、数据解码模块、数据储存模块、数据实时二元曲线显示模块、数据实时数值显示模块、数据离线曲线显示模块、数据的离线数值显示模块、实时窗口保存与载入模块和数据回放控制模块。这样划分既符合模块化的软件开发方法,便于编程,又有利于软件后期的维护与功能扩展,满足分系统边设计边测试边完善的特定需求。2.3 涉及的关键技术根据2.1和2.2节中的软件需求和功能描述,实现本软件需要解决一系列的关键技术问题。表2.1中列出了软件实现需要解决的关键技术。表 2.1 软件实现关键技术关键技术技术描述基于配置文件集的软件灵活性设计涉及配置文件的文件类型定义、格式定义以及配置文件集的组成和配置信息调用等技术问题标准数据包的接收与解码涉及对标准数据包进行接收并解码的流程以及相关配置文件集的定义等技术问题数据可视化将接收到的测试数据以多种形式显示,包括十进制数值显示、二进制源码显示、十六进制源码显示和文字显示、时间曲线显示和相平面曲线显示。历史数据回放根据测试人员的要求回放数据库中指定的数据,涉及数据回放的流程设计、配置文件集以及回放指令的定义等技术问题第三章 关键技术研究3.1 终端显示软件功能模块与总体结构的设计为了清楚展现软件的功能,现详细介绍软件的个功能模块。3.1.1 数据接收模块可以分别设置以tcp或udp的连接方式接收动力学数据、遥测数据和采集数据,各自的数据源可以单独设置。模块软件界面说明如下:图 3.1 tcp接收方式 图 3.2 udp接收方式3.1.2 数据存储模块可以选择将接收到的数据保存或者不保存到access数据库。模块软件界面说明如下:图 3.3数据保存界面3.1.3 变量选取模块从配置文件中选择功能号,选择该功能号下的变量名,以不同的方式显示。模块软件界面说明如下:图 3.4变量选取3.1.4 数据的实时曲线显示模块实时接收到的数据以曲线的方式显示,横坐标为一个时间,纵坐标为一个变量值。曲线的颜色、线型、线宽、曲线图的标题等属性可配置并保存至配置文件。模块软件界面说明如下:图 3.5数据的实时曲线显示 图 3.6曲线显示中的鼠标键功能图 3.7曲线参数设置图 3.8修改曲线的各种属性图 3.9载入已保存的曲线属性配置文件图 3.10保存曲线为图片3.1.5 数据的实时数值显示模块将实时接收到的数据以数值(十进制、二进制、十六进制)或文字说明的形式显示。模块软件界面说明如下: 图3.11数据实时数值显示3.1.6 数据的离线曲线显示模块保存在数据库中的数据以曲线的形式进行回放。曲线的颜色、线型、线宽、曲线图的标题等属性可配置并保存至配置文件。曲线图可以以.bmp的图片格式保存下来。模块软件界面说明如下:图3.12选择曲线显示的离线数据其他按钮的功能界面同图3.53.10。3.1.7 数据的离线数值显示模块保存在数据库中的数据以数值(十进制、二进制、十六进制)或文字的形式显示。模块软件界面说明如下:图3.13选择数值显示的离线数据3.1.8 数据的实时二元曲线显示模块实时接收到的数据以曲线的方式显示,横坐标为一个变量的值,纵坐标为另一个变量的值。曲线的颜色、线型、线宽、曲线图的标题等属性可配置并保存至配置文件。模块软件界面说明如下:图 3.14数据实时二元曲线显示3.1.9 实时窗口保存与载入模块将当前软件运行时打开的所有实时曲线显示窗口、实时数值显示窗口以及实时二元曲线显示窗口保存到配置文件,可以指定保存的路径和名称。通过载入配置文件可以打开已保存的所有实时曲线显示窗口、实时数值显示窗口以及实时二元曲线显示窗口。模块软件界面说明如下:图 3.15实时窗口保存图 3.16载入实时窗口3.2 配置文件集为了提高软件的通用性、灵活性和快速扩展性,同时减少测试软件的前期开发时间与后期维护的工作量。本文将卫星姿态与轨道分系统地面试验测试软件的实现层次划分为如图3.17所示的配置文件集与软件通用模块两个层次,每个模块中需要灵活设置的部分保存在配置文件中,专用的程序代码采用动态链接库的形式实现并将其相关信息存储在配置文件中,其他部分用通用模块实现,通用模块启动时读取相关的配置信息,程序运行时通用模块根据读取的配置信息动态调用相应的动态链接库函数,当配置信息改变时通用模块将其保存至配置文件中或者由系统测试操作人员手工修改动态链接库函数。因此,当测试任务变更或者当测试软件应用于不同型号的卫星测试任务时,仅仅需要改变配置文件集中的配置信息或者提供相应的动态链接库函数,这样就实现了对软件进行维护到对配置文件集进行维护的转变,使得终端显示软件更具有通用性和可扩展性。图3.17系统层次划分常用的信息配置方式主要是通过将信息保存在数据库、系统注册表、ini初始化文件以及自定义格式的文件等载体中来实现。由于系统注册表涉及系统信息,操作函数复杂,一旦注册表被破坏容易导致系统崩溃。数据库适用于大量数据的存储与管理,如果将配置信息存储于数据库中,必须开发相应的数据库管理软件,无形中增加了开发成本。综上所述,本文采用ini文件和自定义格式的excel文件作为配置信息的载体构建配置文件集并将其划分为界面信息配置文件集、数据解析配置文件集两个部分。3.2.1界面信息配置文件集卫星姿态与轨道分系统地面试验终端显示软件涉及多个人工交互的功能模块,其中许多涉及操作界面的信息需要系统测试人员设定。不同的测试人员在操作相同的测试软件模块时会有不同的界面操作需求,而同一测试人员又具有相对固定的操作习惯和需求,因此本文将这些界面设置的信息全部保存在ini文件中供软件的通用模块自动调用,大部分测试人员通常只需要设置一次界面操作信息,测试软件会自动保存并调用这些配置信息,这样就大大的减少了测试人员的重复操作负荷。ini文件是windows系统中以“.ini”为后缀名的信息初始化文件,是一种重要的系统配置文件。利用ini文件可以实现系统配置、应用程序的参数保存与设置等多种功能,是一种常用的信息配置的实现方式。ini文件是具有标准格式的文本文件,其格式如图3.18所示,由节点名称(section)、关键字名称(key)和关键字内容(value)三部分组成,每个关键字代表一个配置量,将具有相近功能的配置量放在同一个节点下。一个ini文件中可以有多个节点名称,一个节点中也可以有多个关键字。ini文件由基本的asc字符组成,可以用文本编辑器直接进行编辑,不需要复杂的配置管理,适合保存格式简单、数据量小的配置信息。本文中利用ini文件保存测试软件的初始化参数、数据源参数、图表属性参数、操作界面设置参数等信息,并在需要时由软件通用模块导入这些配置信息,以减少用户的操作负荷。测试软件启动时,首先读取ini文件中的初始化数据并对相关的模块进行初始化,测试软件关闭或者当配置信息更新时,自动将最新的配置信息写入配置文件中。图3. 18 ini文件格式windows系统提供了一系列api函数对ini文件进行操作,同时c+builder6.0提供了一个类tinifile实现对ini文件的各项具体操作,该类对windows api函数进行了封装,使用更加简单方便。利用tinifile类的构造函数和其他对象操作函数可以将一个tinifile对象与ini文件相关联并进行以下类型的操作:(1) 对关键字的操作,包括读取关键字的内容、写关键字以及添加和删除关键字。(2) 对节点的操作,包括读取所有的节点名称,读取某节点中所有的关键字名称,添加和删除节点。本文中将软件设置参数以及用户操作习惯等信息保存在ini文件中。为了提高测试软件的稳定性与可靠性,本测试软件同时设计了tcp/ip和udp两种网络连接方式,测试人员可以根据具体的测试要求选择具体的连接方式。本文将连接方式以及连接参数保存在配置文件linktype.ini、tcpip.ini、udp.ini三个ini配置文件中。测试软件启动时将自动读取配置信息并根据其对测试软件中的通讯组件进行初始化。linktype.ini文件中记录了测试软件当前使用的网络连接方式并指明具体连接参数所在的ini配置文件,内容格式如下:linktype selectedtype=tcpip /该关键字表示当前使用的的网络连接方式,有tcpip和udp两个取值inifilename tcpip=tcpip.ini /该关键字的取值为存储tcp/ip连接参数的ini配置文件名称udp=udp.ini /该关键字的取值为存储udp连接参数的ini配置文件名称本文中采用c+ builder6.0中提供的tclientsocket组件和tnmudp组件来分别实现数据接收端与发送端的tcp/ip和udp方式的通信连接,并将其连接参数分别记录在tcpip.ini和udp.ini文件中,程序启动时根据读取的配置信息设置tclientsocket组件的属性。tcpip.ini内容格式如下:tcpip= 192.168.0.212/数据发送端计算机的ip地址,对应于tclientsocket组件对象的host属性port=32001/数据发送端计算机的端口号,对应于tclientsocket组件对象的port属性udp.ini文件中的内容格式如下:tcplocalport =32710/数据接收端计算机的端口号,对应于tnmudp组件对象的port属性remotehost =192.168.0.13/数据发送端计算机的ip地址,对应于tnmudp组件对象的port属性remoteport =110043/数据发送端计算机的端口号,对应于tnmudp组件对象的port属性3.2.2 数据处理配置文件集数据处理是卫星测试中的主要内容,主要关系到数据的解码以及数据的重新组织。卫星测试是一项庞大的工程,涉及众多的测试物理量,而且不同阶段的卫星测试有不同的测试任务和测试要求,当具体测试过程中采用不同的测试设备和计算机时,会设计有不同的数据解析协议。为了使卫星姿态与轨道分系统地面试验测试终端显示软件能够尽量应用于不同型号卫星的测试,并能够处理不同格式的测试数据,本文将数据处理协议保存在配置文件中。仅仅需要对配置文件进行更新与修改,而不需要对软件代码进行更改与维护,就可以将测试软件应用于不同的测试环境中时。如图3.19所示,本文中数据处理配置文件集由协议定义文件和协议的实现文件组成。其中协议的定义存储于excel文件中,数据协议的由动态链接库(dll文件)实现,excel文件中记录了处理每种协议的动态链接库的文件名。图3.19 数据处理配置文件结构数据处理配置文件集主要是为数据解码、数据接收等软件子模块提供数据处理配置信息。由于一旦完成对配置文件创建工作之后,很少会对其进行修改等操作,因此本文采用excel文件来存储数据解析协议的定义信息。数据在excel中以二维表格的形式存在,相当于关系型数据库中的一个数据表,因此本文将关系型数据库的相关概念引入到数据处理协议配置文件集中,规定每个excel配置文件都只有一个数据页(sheet),并将其看做是数据库的一个数据表,每个excel文件中的标题行设计为数据表的字段,文件名作为数据表的表名。这样所有的excel数据处理配置文件的集合构成了一个数据库。由于在测试数据的处理过程中,数据解码模块和数据发送模块需要不断的查询数据协议定义信息并根据其对数据进行实时的处理。而计算机对内存数据的读取速度要远远大于对硬盘数据的读取速度,因此本文在软件启动时将协议定义文件一次性全部读取到内存空间中,并将这个副本称之为内存数据处理协议。在软件的运行过程中将不会对硬盘上的excel配置文件进行任何的操作,所有的配置信息查询过程都仅仅针对内存数据处理协议。在内存中,每个excel文件用一个容器表示,容器中的每一个元素都是一个结构体实例,excel文件中每一行的信息对应于一个结构体实例,结构体的定义与excel文件中标题行的定义保持一致,每行信息的关键字段可以作为关联型容器的关键字。如果有多个类型相同的excel文件组成配置文件集,可以将存储每个配置文件信息的容器作为元素,存储在另一个容器中。图3.20为excel数据处理协议配置文件与内存数据处理协议的对应转化关系。图3.20 excel文件集与内存数据处理协议的对应转化关系利用c+ builder 6.0提供的tadoquery组件和tadoconnection组件可以像操作一个数据库一样操作excel文件。本文就是在各个软件启动时利用tadoconnection组件连接至各个excel配置文件后利用tadoquery组件读取excel文件中的所有配置信息,完成excel数据处理协议配置文件到与内存数据处理协议的转化。卫星姿态与轨道分系统地面试验终端显示软件中与每个子模块实现不同的功能,与之相对应的excel数据处理配置文件中的字段和结构体定义也有所不同。dll是动态链接库(dynamic link library) 的英文缩写,一个dll文件中包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。利用dll不仅可以使一个进程调用不属于其可执行代码的函数,还可以实现资源与数据的共享,使得多个应用程序可以同时访问内存中单个dll 副本的内容 55。利用动态链接库可以非常方便的在不影响该程序其他部分的情况下将更新应用于各个模块。卫星控制系统的设计过程实际上也是一个边设计边测试边完善的过程,因而要求终端显示软件具有一定的灵活性与适应性,在测试过程中能够针对最新的测试要求,应用最新协议对测试数据进行处理。若将所有的测试数据处理代码都集中在一个可执行文件中,显然非常不利于软件的维护与后期的功能扩展,为了提高软件的通用性与可扩展性,本文将不同协议规定的测试数据处理方法单独编写为一个dll文件。软件的通用模块在处理测试数据时首先查询内存数据处理协议,内存数据处理协议中记录了针对各个协议处理测试数据的dll文件,通用模块调用相应的dll文件中的处理函数对测试数据进行处理这样对终端显示软件的后期的维护与扩展转移为对定义协议的配置文件和相应的dll文件的维护与扩展。3.3 标准数据包的接受与解码标准数据包的接收与解码就是将接收到的标准格式的测量数据串分解为不同的数据帧,并对各个数据帧进行解码,将其包含的信息转化为具有实际物理意义的工程数据并在局域网上发布,再进一步由数据监测模块显示为卫星测试系统操作人员最易于理解的形式。3.3.1 解码协议配置文件集对测量数据的解码主要就是对数据域的解码。根据上节中的描述,本文将每个标准数据包的解码协议存储在一个excel文件中,并将该文件称之为解码协议配置文件。测试人员可以根据需要随时修改解码协议配置文件。解码协议配置文件的文件名为数据帧的帧编号。数据页的名称为“stddecode.xls”,该数据页中的标题行包括:物理量序号、分类名、起始字节,终止字节,起始位、终止位、数值类型、文字解析、a、b、c、量纲和最小值与最大值。以下为对标题行各列的详细说明:物理量序号:每一行以从小到大的顺序方式0,1,2,3。分类名:意义相近的物理量可以设为相同的分类名,例如将四元数q0,q1,q2,q3的分类名设置为“四元数”。物理量名称:物理量的名称。起始字节:表示各变量在数据段中的起始字节位置编号(第一个字节的位置编号为0)。终止字节:表示各变量在数据段中的终止字节位置编号(第一个字节的位置编号为0)。数值类型:表示各变量的数值类型及其显示方式,本文中将数值类型一共分为11种,如表3.所示:表3.1 数值类型数值类型类型描述u大端字节序的无符号数i大端字节序的有符号数bit由几个数据位表示的物理量,显示时必须按小端字节序将数据位表示的数值转化为实际代表的物理意义xbit由几个数据位表示的物理量,显示时必须按大端字节序将数据位表示的数值转化为实际代表的物理意义c由几个字节数据表示的物理量,显示时必须按大端字节序将其表示的数值转化为实际代表的物理意义b由几个字节数据表示的物理量,必须按大端字节序以二进制形式显示其数值h由几个字节数据表示的物理量,必须按大端字节序以十六进制形式显示其数值double将接收到数据按小端字节序解码为double类型的数值xdouble将接收到数据按大端字节序解码为double类型的数值float将接收到数据按小端字节序解码为float类型的数值xfloat将接收到数据按大端字节序解码为double类型的数值起始位:必填项。当数值类型为bit或xbit时,该项填变量在一个字节中的起始位的位置编号(07),否则填-1。终止位:必填项。当数值类型为bit或xbitt时,该项填变量在一个字节中的终止位的位置编号(07),否则填-1。文字解析:表示该物理量是否需要以文字说明的方式进行显示。当数值类型为bit或xbit或c时,需按照以下格式进行填写。每一项以“|”结束,每一项的“=”左边为十六进制数或以格式为“(十六进制小数/十六进制大数)”表示的开区间。例如“03=捕获地球|09=帆板展开|(b7/c1)=异常模式|”表示当该物理量的大小等于3时表示“捕获地球”;等于9时表示“帆板展开”;大于183并且小于193时表示“异常模式”。a、b、c三项为解码系数,显示终端每次接收到的数据x将按照(x+a)*b+c的格式进行转换,其中a,b,c为三个系数,具体数值与各个物理量的处理要求有关。量纲:物理量的单位名称,没有量纲的物理量填“无”。最小值:该物理量在正常范围内所允许的最小取值,如无最小值,该项填“无。最大值:该物理量在正常范围内所允许的最大取值,如无最大值,该项填“无。在对遥测帧进行解码处理的过程中,需要频繁的访问解码协议配置文件。这些数据保存在硬盘上,由于解码协议配置文件数据量大并且计算机对硬盘的访问速度远远低于对内存的访问速度,因此为了提高测量数据的解码效率,本文在测量数据的解码模块工作之前,将解码协议配置文件中的信息一次性读取到内存中的一个以结构体为元素的map类型的容器中,并将这个副本称之为内存解码协议配置文件。该结构体和容器的结构定义如下:typedefstructm_ stddecodeansistring groupname;/分类名ansistringvariable;/物理量名称ansistring machinetype;/单机类型intstartbyte;/起始字节int endbyte;/终止字节intstartbit;/起始位int endbit;/终止位ansistring wordshow;/文字解析double a;/ 系数adouble b;/ 系数bdouble c;/ 系数cansistring unit;/量纲boolminvalidity; /是否有最小值double min;/最小值boolmaxvalidity; /是否有最大值double max;/最大值 stddecode;因此本文将物理量名称作为关键字的值,与结构体变量实例stddecode组成一个键-值对作为一个map容器的元素,从而用一个map关联容器实例来存储一个datapre.xls中的配置信息。该map变量实例的定义如下:map map_ datapre1, map_ datapre2, , map_ datapren;多个map 类型变量可以作为一个map_allstddecode容器的元素,并且将一个帧编号和map_ datapren作为一个键值对, map_allstddecoded的定义如下:map ansistring, map map_allstddecode3.3.2 接收与解码流程本文采用tcp/ip方式接收测量数据,由于接收缓冲区中的数据不可能正好是一个遥测帧的长度,因此本文采用如下的流程接收遥测帧并对其进行解码:(1) 将解码协议配置文件读取到内存空间;(2) 缓冲区接收到数据,如果接收缓冲区中的数据长度大于等于数据头的长度,则读取数据头;如果小于数据头的长度,则等待;(3) 读取数据头,对数据头进行解码并且获取数据段的长度;(4) 如果接收缓冲区中的数据长度大于等于数据段的长度,则读取数据段;如果小于数据段的长度,则等待。(5) 根据数据头中的遥测帧编号,在相应的内存解码协议配置文件中遍历每个遥测量;取出遥测量在遥测帧中的数值类型、起始字节、终止字节、起始位、终止位等信息;将遥测变量解码为double类型的数值;(6) 重复步骤2步骤5,对下一帧数据进行解码。图3.21为对测量数据进行接收与解码的流程图。图3.21 标准数据包的接收与解码流程3.4 历史数据回放3.4.1 数据回放需求在卫星姿态与轨道分系统地面试验过程中,为了便于分析测试数据,测试工作人员除了要实时监测测试参数的状态与变化情况外,往往还需要查看之前卫星测试试验中产生的历史数据,具体要求包括:(1) 测试人员能够指定需要查看的测试参数;(2) 测试人员功能对数据回放进行开始、停止、暂停、继续等功能的控制;(3) 测试人员能够指定数据回放的速度与回放数据的频率。3.4.2. 数据回放结构与控制流程根据数据回放需求,本文采用c/s网络结构实现数据的回放与控制功能,数据终端显示模块作为客户端,不同客户端的用户可以根据各自的需求向服务器申请回放需要查看的历史数据。数据回放的控制流程下图所示。图3.22 数据回放流程(1) 数据监测模块首先通过日期直接查询数据库中的某段时间内的试验记录;数据库把查询结果(试验序号,试验时间等)返回数据监测模块;(2) 数据监测模块选择某个试验后,向数据库管理模块发送查询指令;数据库管理模块返回操作指令作为应答;(3) 如果查询指令类型为开始查询,则数据库管理模块按照查询指令内容查询数据库,并获得数据集;否则直接跳到步骤4。(4) 如果查询指令类型为开始查询,数据库管理模块利用数据发送子模块将数据集按照查询指令中的周期和步长发送给数据监测模块,否则根据查询指令类型对正在发送的回放数据进行暂停、继续、停止等控制操作。3.4.3. 控制指令设计 查询指令共26字节,指令的具体格式如下表所示。表3.2 查询指令定义名称指令类型功能号试验序号开始时间终止时间时间类型发送周期(ms)发送步长(条)长度11188144类型bytebyteintdoubledoublebyteintint查询指令类型为1字节,查询指令类型分为4种,即开始查询、暂停、继续、停止,具体数据协议下表所示。表3.3 查询指令类型指令编号备注0x01开始查询0x03暂停0x05继续0x07停止试验序号为8字节,对应数据库表中的testserial字段。时间类型为1字节,指查询提交的时间段是地面时间或星上时间,具体数据协议如下表所示。表3.4 时间类型类型编号类型名称0x00地面时间0x01星上时间操作指令的长度为2个字节,包含了指令类型和查询标识两部分内容,具体的数据协议如下表所示。表3.5 操作指令定义名称指令类型查询标识长度11类型bytebyte操作指令类型的数据长度为一个1个字节,本文定义了10种操作指令,具体的指令类型定义如下表所示。表3.6 操作指令类型指令编号备注0x01成功收到“开始查询”指令,并开始执行指令0x03成功收到“暂停”指令,并成功执行指令0x04错误!未能成功执行“暂停”指令。原因:回放线程已经挂起0x05成功收到“继续”指令,并成功执行指令0x06错误!未能成功执行“继续”指令。原因:回放线程正在运行0x07成功收到“停止”指令,并成功执行指令0x08错误!未能成功执行“停止”指令。原因:回放线程已经结束0x00发送完毕0xa1错误!未能成功执行“开始查询”指令。原因:“开始查询”指令未执行完0xff错误查询标识:1字节,查询标识指操作指令对应的查询帧编号,具体数据协议与查询指令相同。3.4.4. 控制指令配置文件集根据前节中的描述,为了提高历史数据回放模块的可扩展性,本文将控制指令保存在一个名为“command.xls”的excel配置文件中,系统测试人员或软件开发人员可根据实际需要在配置文件中添加新的控制指令。查询指令和控制指令都统一保存在名称为“cmd”的数据页中,该数据页中各列的标题如下表所示。表3.7 控制指令配置文件“command.xls”的格式定义标题行名称数据格式说明序号数值每一行以从小到大的顺序方式依次取值为0,1,2,3指令类型取值为数值0或1取值为0表示查询指令,取值为1表示控制指令指令编号文本类型以16进行形式表示的查询指令编号备注文本类型对指令的说明卫星姿态与轨道分系统地面试验终端显示软件在工作时,将控制指令配置文件中的配置信息读取到内存中的strcmd结构体类型的变量中。具体的结构体定义如下:typedefstructm_ strcmdint num;/序号int cmdtype;/指令类型ansistring cmdnum;/指令编号ansistring exp;/备注 strcmd;command.xls文件中的每一行信息存储在一个结构体中,所有的结构体变量作为元素存储在map类型的容器中,并且将指令编号作为元素的键值,该容器的定义如下:map map_ strcmd; 3.5. 数据可视化卫星姿态与轨道分系统地面试验过程中需要实时监视大量的测试参数,根据前文中的描述,不同类型的参数适用于不同的显示方式。根据实现方式的不同,本文将数据显示的方式分为列表显示和曲线显示两大部分。列表显示就是将接收到的测试参数的数值直接罗列在表格中予以显示,这是卫星测试中最重要的数据显示方式。根据实际需求的不同,具体的数值显示形式又分为:十进制数值、二进制源码、十六进源码和文字描述。曲线显示又分为实时二元曲线显示和离线曲线显示两大部分。实时二元曲线显示功能将实时接收到的数据以曲线的方式显示,横坐标为时间,纵坐标为测试量的数值。曲线的颜色、线型、线宽、曲线图的标题以及实时显示的周期等属性可配置并保存至配置文件。采用离线曲线显示时,保存在数据库中的数据会以曲线的形式进行回放。曲线的颜色、线型、线宽、曲线图的标题等属性可配置并保存至配置文件。 实时二元曲线显示和离线曲线显示具有一些共同的任务需求:(1) 曲线图必须具有实时放大、缩小、平移的功能;(2) 曲线图能够被存储、打印;(3) 曲线图的显示功能要求能够实现暂停、继续等功能;(4) 能够设置曲线图的参数,如曲线线型、颜色、线宽、曲线图标签,曲线图的标题以及显示范围等;(5) 曲线图的设置参数能够被保存并调用;(6) 多个曲线图能够同时显示、彼此相互独立

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论