周期驱动CDSi代码案例分析:
for I = 1 to simulation.experimentsdo //仿真实验从1开始
createNetwork //创建网络
createprototype Node //创建协议 节点
forI = 1 to #protocol do //协议号从1开始
create protocol instance //创建协议案例
forj = 1 to network.size do //网络大小从1开始
cloneprototype Node into Network //网络是由节点组成
createcontrols(initializers,dynamics,observers) //监控(初始化,动态性,观测者)
executeinitializers //执行初始化
fork = 1 to simulation.cycles do //仿真周期从1开始
forj = 1 to network.size do //网络大小从1开始
for p= 1 to #protocols //网络大小从1开始
execute Network.get(j).getProtocol(p).nextCycle( ) //在下一周期网络中第j个节点使用第p个协议
executecontrols //执行控制
if (one control returned true) then //如果控制返回true
break
事件驱动EDSimulator代码案例分析:
for I = 1 to simulation.experimentsdo //仿真实验从1开始
initialize MinHeap events //初始化最小堆事件
createNetwork //创建网络
createprotocol Node // 创建协议 节点
for I = 1 to #protocol do //协议号从1开始
create protocol instance //创建协议案例
forj = 1 to network.size do //网络大小从1开始
clone prototype Node into Network //克隆协议节点加入到网络
createcontrol (initializers,dynamics,observers) //监控(初始化,动态性,观测者)
executeinitializers //执行初始化
time =0 //时间为0
while (time< simulation.endtime) do //当仿真时间没有到截至时间
(node,pid,e)= events.getMin( ) ; //获得MinHeap中的protocolID的节点
Node.getProtocol(pid).processEvent(node,pid,event) //获得事件中的protocolID节点
If(event is a control that returned true) then //如果控制事件返回true
break