分析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中变量也要进行更新(更新时间等变量);待循环结束,输出仿真报告。