您的位置:首页 > 编程语言

core包中的类及代码分析

2015-11-13 16:09 453 查看
core包:
Contains core classes and interfaces of the simulator. Almost all of these classes are needed for every run of the simulator. DTNSim is the main class of the program. It starts up a proper user interface which in turn starts the simulation. @see ui.DTNSimUI
包含模拟的核心类和接口。运行模拟几乎需要所有这些类。 DTNSim是程序的主类。它启动合适的用户接口,依次开始模拟。
相关看ui.DTNSimUI

core.DTNSim

功能:Simulator's main class仿真的主类,仿真的起点。
1. 根据命令行的参数,决定仿真的模式和次数。(批处理模式或GUI模式)
2. 在批处理模式下:用 core.Settings.setRunIndex设置配置参数,重置所有注册类后,用
new DTNSimTextUI().start()创建新的对象,开始仿真。
3.在GUI模式下,调用 core.Settings.setRunIndex设置配置参数,用
new DTNSimGUI().start()创建仿真对象,开始仿真
outline:



意义

属性
BATCH_MODE_FLAG= "-b" -- (如果运行时有-b,则进入批处理模式,使用Text UI)

RANGE_DELIMETER = ":" -- (批处理模式指引值范围的定界符)

RESET_METHOD_NAME = "reset" -- (所有可重调的类必须有的静态方法名称)

private static List<Class<?>> resetList = new ArrayList<Class<?>>() --
在批处理运行时需要被重置的类名称列表

主方法:
public static void main(String[] args){ --
以给定参数启动用户接口
1.如果第一个参数是-b,进入批处理模式且文本ui开启。批处理模式必须紧跟着运行次数。

2.对于GUI模式,在配置文件前的数是运行所使用的运行指标。

args --
命令行参数
当args.length > 0
如果args[0].equals(BATCH_MODE_FLAG),即命令行参数-b,则batchMode = true,进入批处理模式。若有第二个参数,则调用
nrofRuns = parseNrofRuns(args[1])
,设置仿真次数。 不满足
args[0].equals(BATCH_MODE_FLAG) 时,进入GUI模式。

initSettings(confFiles, firstConfIndex); -- 调用initSettings()
,初始化设置

1. batchMode批处理模式
设置开始时间为系统当前时间(毫秒)。
设置循环,输出


调用core.Settings.setRunIndex设置配置参数
调用resetForNextRun(),重置所有注册的类
new DTNSimTextUI().start(); --
创建仿真对象
输出

,其中duration = (System.currentTimeMillis() - startTime)/1000.0

2.GUI模式
调用core.Settings.setRunIndex设置配置参数
new DTNSimGUI().start(); --
创建仿真对象
}

一般方法:
1. private static void initSettings(String[] confFiles, int firstIndex) --
初始化设置,
confFiles -- 读取附加设置的文件名路径

firstIndex --
第一个配置文件的索引
调用 core.Settings.init(String propFile),初始化所有设置对象
设置循环,每次调用core.Settings.addSettings(String propFile),对当前设置读取配置文件,添加key-value对
catch错误

注册类用于重置。每次批处理运行完,就对类的声明重置。有静态空间的类应使用这种方式重置为初始值。给定的类必须对重置方式有静态实现。

2. public static void registerForReset(String className)
3. private static void resetForNextRun() -- 重置所有注册的类

4.private static int[] parseNrofRuns(String arg) --
由命令行分析仿真次数,以及可选的仿真参数
5.private static void print(String txt) -- 打印text给标准输出

监听接口
core.ApplicationListener:主机间的信息
messages between hosts
core.ConnectionListener: 主机间的连接
core.MessageListener :
主机间的信息 messages between hosts

core.MovementListenser:节点移动
node movement
core.UpdateListener :每一次更新

core. ModuleCommunicationListener :监听模块通信总线

设置接口
core.Settings :存储在设置文件中的仿真设置接口

建立模拟对象
core.SimScenario :用于接收和存储运行仿真设置的仿真场景(A simulation scenario used for getting and storing the settings of a simulation run.

core.Coord :建立二维的坐标系
core.SimClock :检查仿真时间的时钟
core.World :包含所有节点,并负责更新他们的位置和连接

core.DTNHost :一个DTN主机
core.NetworkInterface: 一个DTN主机的网络接口

core.Application :应用的抽象类
core.Connection :DTN节点间连接的抽象类
core.Message :由节点产生的信息或节点间传输的信息

core.VBRConnection :两个DTN节点间的连接,传输速率每轮更新
core.CBRConnection :两DTN节点间恒定的比特率连接
core.DTN2Manager :管理外部汇聚层连接

模块间的通信
core.ModuleCommunicationBus :模块间的通信总线,作为运行平台

报错
core.SimError :仿真中的错误
core.SettingsError :设置相关的错误

调试
core.Debug :有时间戳的调试信息

其他
core.Tuple :
一个通用的(关键字-值)元组
core.ParetoRNG :一个
帕累托分布的 随机数产生器
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: