OMNeT++如何将NED文件中连接的静态延迟修改为omnetpp.ini可配置参数
OMNeT++ NED链路延迟可配置化实现方法
完全可以实现该需求,按照以下两步操作即可:
步骤1:修改NED文件,给网络增加可配置延迟参数
你需要在PingPong8网络定义中新增参数块,声明延迟参数并设置默认值,再将连接中的静态延迟替换为该参数即可,修改后的完整NED代码如下:
simple Ping8 { parameters: @display("i=device/pc"); gates: input in; output out; } simple Pong8 { parameters: @display("i=device/pc"); //double d = default(0.5); gates: input in; output out; } network PingPong8 { parameters: @display("bgb=540,253"); // 新增可配置链路延迟参数,默认值保留原有50ms,类型用simtime_t适配OMNeT++时间体系 simtime_t linkDelay = default(50ms); submodules: ping: Ping8 { parameters: @display("i=,cyan;p=32,145"); } pong: Pong8 { parameters: @display("i=,gold;p=499,145"); } connections: // 替换原有静态值为参数 ping.out --> { delay = linkDelay; } --> pong.in; ping.in <-- { delay = linkDelay; } <-- pong.out; }
如果需要双向链路设置不同延迟,可分别声明两个参数:
// parameters块中声明 simtime_t pingToPongDelay = default(50ms); simtime_t pongToPingDelay = default(50ms); // 连接中分别引用 ping.out --> { delay = pingToPongDelay; } --> pong.in; ping.in <-- { delay = pongToPingDelay; } <-- pong.out;
步骤2:在omnetpp.ini中自定义延迟值
直接按参数路径赋值即可,示例如下:
# 双向延迟统一配置为100ms *.linkDelay = 100ms # 如果是双向不同延迟的配置方式,用以下写法 # *.pingToPongDelay = 20ms # *.pongToPingDelay = 80ms
内容的提问来源于stack exchange,提问作者rorod8
相关产品推荐
相关产品推荐

