MAK仿真程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、设置模拟地址simulation address,这个需要首先设置。
Eg:DtSimulationAddress simAddress(1, 3001);
2、创建CGF,即用到VR-FORCE
Eg:DtCgf* cgf = new DtCgf(simAddress);
3、创建演戏链接exercise connection,分HLA与DIS两种情况
#if DtHLA
DtString execName = "VR-Link"; // HLA federation execution name
DtString federateName = "simplePlan"; // HLA federate name
double rprFomVersion = 1.0; // RPR FOM version number
DtExerciseConn* exerciseConn = new DtExerciseConn(execName, federateName, new DtRprFomMapper(rprFomVersion));
#else // DIS
int port = 3000; // UDP port number
int exerciseId = 1; // DIS exercise ID
DtExerciseConn* exerciseConn = new DtExerciseConn(port, exerciseId,
simAddress.siteId(), simAddress.applicationId());
#endif
4、CGF初始化
cgf->init(exerciseConn);
5、创建对象,分实体对象和非实体对象两种
(1)、如飞机之类的实体创建,需要首先对实体类型(DtEntityType)、起始位置(DtVector)、方向(DtReal)等进行定义,最后用对象创建(DtVrfObject)进行封装。
Eg:DtEntityType fixWingType(1, 2, 225, 1, 3, 1, 0);//改成飞机
DtVector initialPosition(900.0, 900.0, 500.0); // Database coordinates, meters
DtReal initialHeading = 0.0; // Heading in degrees
DtVrfObject* fixWing = cgf->createEntity(
fixWingType,
DtForceFriendly,
initialPosition,
initialHeading);
6、cgf->tick();任务计划之间添加。
开头的仿真地址、创建CGF、创建场景等
首先设置实体、区域、路线、点等(朝向heading东0°,逆时针转)
然后为各实体创建Plan
设置计划中需要的数据、任务等
创建状态来hold以上的数据、任务等
将状态添加到Plan中
将实体添加到Plan中(如果有其他计划时,在这下面的前面添加cgf->tick();)
运行
退出程序的命令设置,按“q”键退出
添加任务(只能一个事件)。
1、跟踪实体
2、到达某地
3、沿航迹飞行
添加计划(多个任务事件)
做循环。