分析core中main函数,最后就到了DTNSimUIstart,ui包中只有两个文件,所以,我们直接把ui包中的两个文件分析完再继续开core包。
抽象类DTNSimUI
数据域:
World world:包括所有仿真需要的元素
vector<Report> report:本次仿真加载的报告
boolean simDone:仿真正常结束
boolean simCancelled:仿真终止
Simscenario scen:本次仿真的策略
double lastupdate:上一次UI更新的时间
函数域:
start():包括两个函数
1、initModel():将setting中的设置的报告加入到report队列,根据setting文件设置warmuptime,提取world模型。
2、runSim():抽象函数,这里根据DTNSimTextUI中实现的runSim函数进行说明:
首先设置了起始结束时间,将lastUpdateRt设置为起始时间,进入循环,循环结束条件是仿真时间到,或外部终止仿真;循环中,world出发update函数,对仿真进行更新,DTNSimTextUI中变量也要进行更新(更新时间等变量);待循环结束,输出仿真报告。
本文分析了DTNSimUI中的主要数据结构与功能,包括World、Report队列、仿真策略等,并详细解释了start()函数的工作流程,如初始化模型、运行仿真及报告输出。

1293

被折叠的 条评论
为什么被折叠?



