汽车仿真软件v35概要设计文档格式.docx

上传人:b****3 文档编号:18436995 上传时间:2022-12-16 格式:DOCX 页数:14 大小:126.93KB
下载 相关 举报
汽车仿真软件v35概要设计文档格式.docx_第1页
第1页 / 共14页
汽车仿真软件v35概要设计文档格式.docx_第2页
第2页 / 共14页
汽车仿真软件v35概要设计文档格式.docx_第3页
第3页 / 共14页
汽车仿真软件v35概要设计文档格式.docx_第4页
第4页 / 共14页
汽车仿真软件v35概要设计文档格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

汽车仿真软件v35概要设计文档格式.docx

《汽车仿真软件v35概要设计文档格式.docx》由会员分享,可在线阅读,更多相关《汽车仿真软件v35概要设计文档格式.docx(14页珍藏版)》请在冰豆网上搜索。

汽车仿真软件v35概要设计文档格式.docx

上面2里的内容

组卷,出卷,自动评分

2.2.运行环境

硬件:

IntelP41.2G以上、32M显存以上显卡

软件:

Windows2000以上

2.3.基本设计概念

·

基于Windows系统,VisualC++2005,OpenGL1.2开发

快速的定制、添加各种教学页面

快速的定制、添加各种题目页面

多种车型发布控制;

素材库、题材库可自定义组织内容

2.4.结构

主模块:

页面的创建管理;

远程的控制

基础模块:

一些基础类;

资源管理系统

界面控件:

定制的界面控件

仪表:

测量仪表的实现

电路:

电路数据与逻辑

界面实现:

各种界面的实现及对页面编辑、添加的支持

三维模块:

三维对象的创建、数据的管理

拆装模块:

支持拆装题的编辑、添加

2.4.1.主框架

A.主框架主要负责实现页面的创建与管理以及程序运行模式的控制。

B.由代表应用程序的“ArApp”负责程序运行模式的控制。

普通模式下,不做任何处理;

教师授课模式下,启动定时器,记录当前数据并通过远程模块发送出去;

学生受控模式下,过滤鼠标键盘的操作,接收远程模块发送来的数据,保持与教师控制端一致。

C.由代表主框架窗口的“ArMainFrame”负责页面的创建与切换管理。

由页面工厂统一管理并提供各种页面的创建参数类;

“ArMainFrame”根据创建参数类创建出新页面,并负责新旧页面的切换;

页面池负责记录创建参数类及页面快照,用以实现返回上一个页面及页面状态的恢复;

页面创建管理

2.4.2.一般界面架构

A.不同种类的界面有不同的实现。

具体的设计在详细设计里体现。

B.基本思路都是:

多种视图元素通过控制器访问数据对象,数据的变化通过观察者接口更新相关视图元素。

C.几种基础的经常使用的页面提供编辑器,以供外部扩充。

简单页面

2.4.3.基础资源管理

A.”ArCarResManagerCL”封装对底层文件的访问,使得程序对普通文件、流文件、甚至压缩文件都能用一种方式访问。

这样在调试的时候,可以使用易于查看的文本文件,软件发布的时候可以根据需要,将某些文件进行打包甚至压缩。

这时不需要改动代码,只要配置抽象文档系统即可。

B.老的调用方式:

调用GetResPackM(constCString&

sPackPath)得到一个ArIResourceCL接口,然后将实现了ArIResPersistCL接口的客户类传给ArIResourceCL,底层的ArPackedResLibCL反调LoadFromStreamM(IStream*pStm)函数,将数据流交给客户类使用。

C.考虑新的调用方式:

直接从ArCarResManagerCL上获取数据流IStreamPtr使用。

详细接口函数声明

classCarBase_DllExpCrCarResManagerCL:

publicCrIResManagerCL

{

public:

//根据包路径获取数据包接口。

sPackPath是资源包路径,不限制必须是DLL名

ArIResourceCL*GetResPackM(constCString&

sPackPath);

//给目标对象加载数据。

sResName是安装目录内的路径,更灵活(无需关心属于哪个DLL数据包)

BOOLLoadResM(ArIResPersistCL*pResObj,constCString&

sResFile);

//(新做法)直接获取资源数据流。

sResName:

安装目录内的路径(无需关心属于哪个数据包)

//然后直接调用IStream:

:

Read()读取数据。

***注意:

不能用写入类的函数***

IStreamPtrGetResStreamM(constCString&

sResFile);

VoidSetCurDIrM(constCString&

sResName);

CStringGetCurDIrM();

}

外部文件组织

我们软件的首页会将所有的页面(结构/原理、题目、知识点)都列出来,用户点击后进入相应的窗口。

因此有页面类型与页面ID两个概念:

如:

电路页面,知识点页面,拆装页面都是页面类型。

点火系电路页面,起动系电路页面则是页面ID。

具体到数据组织的时候:

1.页面类型的数据放在“soft\frame\”下:

如“拆装窗口”类型相关的数据,如底图、按钮、列表框图等,统一放在“soft\frame\backoutPG”下:

如“电路窗口”类型相关的数据,如底图、按钮、列表框图等,统一放在“soft\frame\circuitPG”下:

2.具体页面(结构/原理、题目、知识点)的数据,放在相应“车型\系统\xxx”下

如“气缸盖拆装”这道题相关的数据,如拆装脚本、模型列表等则放在相应“santana\simu\engine\xxx”下。

至于多道题目共用的数据,如模型(模型理想情况是可以与零部件库Santana\media\part里共用),如不能就放在车型下(santana\simu\sbjModel)。

再如“氧传感器的检测”是一道电路题,此题目的初始化文件放在“Santana\simu\gaso\xxx”下,但电路数据、电路图是共用的,那就放在“Santana\simu\circuit”下

“xxx”一般是题号,也可几道题上再建一个文件夹。

3.电路数据库不再是唯一的:

从现在的情况看,有多个车型,并且电路的需求也不一样,所以电路数据库不是一个,软件里的电路数据类也不能是全局对象,而是要根据电路题目初始化不同的电路数据。

4.如何确定外部文件位置:

页面工厂根据页面ID(题目ID)创建页面的时候,首先确定使用的页面类,然后根据需要传入配置文件,配置文件里记录要用的其他数据文件,用相对位置或绝对位置(bin之下)都可以。

当用“资源管理程序”打开某个文件的时候,资源管理程序的“当前目录”就设置为此文件的目录;

也可以外部设置当前目录。

在此之后就可以用相对路径打开文件。

使用相对路径时候前面可以加“..\”,来指向共用的数据。

2.4.4.电路与仪表

A.先使用以前的做法和实现。

B.

C.

2.4.5.三维模块

A.公司产品的主要思路是虚拟仿真,三维功能是每一个软件都必不可少的。

个人觉得可以考虑做一个比较通用的、灵活的三维模块,在不同的软件里都可以拿来用,应该可以提高整个公司的开发效率。

B.考虑将三维模块分成3部分:

“场景组织”、“资源管理”、“三维渲染”

C.“场景管理”,描述了三维空间中有哪些内容,以及它们是如何组织在一起的;

D.“资源管理”,不管模型、纹理还是字体等一切对象,绘制它们都需要不同的资源。

“资源管理”负责加载、重用、卸载这些资源。

E.“三维渲染”,三维空间中的东西最后将被渲染到屏幕上,这涉及到渲染管线、指定的渲染系统、渲染状态等API对象等底层对象。

“三维渲染系统”提供对底层三维API的抽象,可以根据需要支持OpenGL或Direct3D。

实际的零件结构

A.横线上是抽象结构,横线下是具体例子。

B.部件相当于树列表上的节点,有名称,可以被单独选取、隐藏;

组合部件相当于父节点,可以展开,也可以收缩当作一个整体来选取、隐藏;

子部件相当于子节点。

C.子部件包含1~n个零件,可单独运动但不能被单独选取;

D.不同的零件可能使用同一个模型数据。

如汽缸盖紧固螺栓下有8个,每一个都能被单独的拆装,但它们都是由一个模型数据创建。

设计的数据结构

A.横线上的节点与实体由“场景管理”负责创建并管理;

B.节点表示一个包或容器的概念,可以包含其他的子节点或实体;

C.实体表示空间中的一个实实在在的物体,可以移动、旋转改变位置;

D.横线下的模型及相关数据由“资源管理”负责创建并管理;

E.一个模型对应一个数据文件,包含三角片、材质等用于绘制的数据,

实现

渲染、主结构

1.根据配置文件初始化渲染系统,可以选择Direct3D或OpenGL;

2.创建场景并在场景中架设摄像机;

通过资源管理器创建物体并放置在场景中;

3.创建窗口、视口并与摄像机关联,一个视口上显示一个摄像机能“看”到的物体;

4.控制器接收消息和命令,将其转换成对场景和摄像机的控制;

5.刷新时:

窗口要求场景绘制它能看见的部分;

场景将能见的物体交给渲染系统绘制;

初始序列图

资源管理

A.模型对象由ModelManager负责创建、管理及重用。

例如多个位置的螺栓用一个螺栓模型数据。

B.材质由MaterialManager负责创建、管理及重用。

例如不同的子网格使用同一种材质。

C.纹理贴图由TextureManager负责创建、管理及重用。

例如不同的零件使用同一种金属纹理贴图。

D.主要的想法是Model、Texture等对象只负责使用数据,而将从文件读取解析数据职责交给Manager负责,这样可以容易的支持多种数据格式,以及数据格式的装换。

E.结合前面的文档管理系统,xxxManager可以实现自动的从磁盘文件、数据包、压缩文档等读取数据。

2.4.6.拆装模块

2.4.7.题目与数据库

2.5.功能与程序的关系

2.6.人工处理任务

3.接口设计

4.运行设计

5.数据结构设计

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1