`
hankgong
  • 浏览: 199616 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

python自动生成OPNET场景

阅读更多

OPNET做仿真是比较牛的,但是opnet似乎没有特别好的方法来读场景,特别是无线仿真中如果节点坐标是别人给定好的,这个时候我觉得比较方便的方法是自己用python写个script来生成xml文件,然后在opnet中的topology来import这个xml文件。下面是我写的函数,很简单原始,也没用xml的工具库,就把xml当文本文件来处理了。

 

'''
Created on Dec 22, 2010

@author: hankgong
'''
def writeHeader(): 
    outstr= \
'''<?xml version="1.0"?>
<!DOCTYPE network SYSTEM "network.dtd">
<network locale="C" version="1.7" reference_time="13:28:25.000 Dec 18 2010" attribute_processing="explicit">
    <subnet name="Campus Network">
'''
    return outstr

def writeFeeter():
    outstr= \
'''        <attr name="priority" value="0"/>
        <attr name="user id" value="0"/>
        <attr name="x position" value="0.0"/>
        <attr name="y position" value="0.0"/>
        <attr name="icon name" value="subnet"/>
        <attr name="outline color" value="blue"/>
        <attr name="doc file" value="nt_fixed_subnet"/>
        <attr name="creation source" value="Object Palette"/>
        <attr name="creation timestamp" value="13:21:18 Dec 18 2010"/>
        <attr name="creation data" value=""/>
        <characteristic name="units" value="Kilometers"/>
    </subnet>
 </network>
'''
    return outstr

def writeRXGroup(x, y, commrange):
    outstr=\
'''        <node name="RXGroup" model="MWSReceiverGroup" ignore_questions="true" min_match_score="strict matching">
            <attr name="x position" value="'''+str(x)+'''"/>
            <attr name="y position" value="'''+str(y)+'''"/>
            <attr name="threshold" value="0.0"/>
            <attr name="icon name" value="util_rxgroup"/>
            <attr name="doc file" value="nt_fixed_node"/>
            <attr name="tooltip" value="Receiver Group Configuration"/>
            <attr name="creation source" value="Object copy"/>
            <attr name="creation timestamp" value="13:24:05 Dec 18 2010"/>
            <attr name="creation data" value=""/>
            <attr name="label color" value="black"/>
            <attr name="drgm.Use Connection File" value="enabled"/>
            <attr name="Distance Threshold (meters)" value="'''+str(commrange)+'''" symbolic="true"/>
        </node>
'''
    return outstr

def writeSeverNode(x, y):
    outstr=\
'''        <node name="Scheduler Sever" model="CentralSever" ignore_questions="true" min_match_score="strict matching">
            <attr name="x position" value="'''+str(x)+'''"/>
            <attr name="y position" value="'''+str(y)+'''"/>
            <attr name="icon name" value="server"/>
            <attr name="doc file" value=""/>
            <attr name="tooltip" value=""/>
            <attr name="creation source" value="Object Palette"/>
            <attr name="creation timestamp" value="13:45:17 Dec 18 2010"/>
            <attr name="creation data" value=""/>
        </node>
'''
    return outstr

def writeMNNode(x, y, node_ip, flow_dst_ip, startTime, stopTime, pktSize, intervalStr='constant (0.015)'):
    outstr=\
'''        <node name="node_'''+str(node_ip)+'''" model="MWSCentralMN" ignore_questions="true" min_match_score="strict matching">
            <attr name="x position" value="'''+str(x)+'''"/>
            <attr name="y position" value="'''+str(y)+'''"/>
            <attr name="threshold" value="0.0"/>
            <attr name="icon name" value="armoured_jeep.chassis"/>
            <attr name="doc file" value=""/>
            <attr name="tooltip" value=""/>
            <attr name="creation source" value="Object Palette"/>
            <attr name="creation timestamp" value="13:42:43 Dec 18 2010"/>
            <attr name="creation data" value=""/>
            <attr name="label color" value="black"/>
            <attr name="flow_dst_ip" value="'''+str(flow_dst_ip)+'''"/>
            <attr name="node_ip" value="'''+str(node_ip)+'''"/>
            <attr name="traffic_gen.Packet Interarrival Time" value="'''+intervalStr+'''"/>
            <attr name="traffic_gen.Packet Size" value="constant ('''+str(pktSize)+''')"/>
            <attr name="traffic_gen.Start Time" value="'''+str(startTime)+'''"/>
            <attr name="traffic_gen.Stop Time" value="'''+str(stopTime)+'''"/>
        </node>
'''
    return outstr

#print writeHeader()
#print writeRXGroup(0,0,1000)
#print writeSeverNode(1,1)
#print writeMNNode(5.02, 6.03, 3, 0, 10.1, 20)
#print writeFeeter()
 
1
0
分享到:
评论

相关推荐

    学习opnet必备资料

    5. **报告生成**:OPNET能够自动生成详细的仿真报告,包括性能图表、比较分析等,便于分享和决策。 学习路径与必备资料: 对于初学者,掌握OPNET需要理解网络基础、协议原理以及软件操作。"OPNET必备资料"包含了从...

    opnet的典型应用

    OPNET是一款强大的网络建模与仿真工具,广泛应用于多种网络设计和分析场景。它通过详细的模型库和灵活的配置选项,使用户能够深入理解和优化网络性能。以下将详细阐述OPNET的典型应用和适用的网络种类。 首先,...

    opnet仿真软件使用

    - **源代码调试**:方便调试自动生成的C/C++代码。 **3. 软件安装与使用** - **启动软件**:OPNET Modeler启动后,用户会看到项目和场景的概念。 - **项目与场景**:项目是一系列场景的集合,场景代表网络的特定...

    OPNET14.5安装教程

    - 双击`bin`目录下的`OPNET.Modeler.11.5.License.MakerFFS.exe`,生成License。这个过程可能需要一段时间。 - 再次打开“License Management”,此时应该可以看到60个License了。 **5. 完成安装并测试** - 在...

    TDMA.rar_TDMA OPNET_opnet仿真tdma_opnet无线_tdma_无线opnet

    这些标签表明文件专注于使用OPNET进行TDMA仿真,特别是应用于无线通信场景。 在压缩包的子文件中,“www.pudn.com.txt”可能是一个文本文件,可能是下载链接或介绍信息,来源于pudn.com,这是一个提供各种资源下载...

    opnet入门资料opnet课件

    5. **丰富的分析工具**:提供了多种图表、报告生成工具,方便用户直观地分析仿真结果。 6. **教学资源丰富**:针对初学者,OPNET提供了大量的教学资源和支持文档。 #### 三、OPNET入门学习路径 1. **基础知识准备*...

    OPNET 14.5仿真实例

    总的来说,OPNET 14.5仿真实例提供了一个学习网络仿真的综合平台,通过三层建模方法,用户可以全面地理解网络中数据的生成、传输和处理过程。这不仅有助于提升理论知识,也有助于培养实际问题解决能力,对于从事网络...

    opnet中进行TDMA仿真_opnet_opnet仿真_物联网仿真实例_

    在本文中,我们将深入探讨如何在OPNET平台上进行时分多址(TDMA)的仿真,同时结合物联网(IoT)应用的实例。OPNET是一款强大的网络仿真软件,广泛用于研究和设计各种通信网络,包括无线网络、物联网系统以及传统的...

    MANET.rar_OPNET MANET_manet的实例_opnet_opnet manet例子_opnet仿真实例

    用户可以通过它创建自定义的网络模型,模拟各种场景,分析网络性能指标,如吞吐量、时延、丢包率等。 2. **MANET仿真实例** 在这个压缩包中,"MANET.project"是OPNET项目文件,包含了MANET的配置和设定。项目文件...

    OPNETModeler.rar_OPNET 程序_opnet_opnet modeler_opnet 实验

    OPNET Modeler是一款强大的网络仿真和性能分析工具,主要用于...这个压缩包文件"OPNET Modeler"很可能包含了相关的实验指导、模型示例或者预设的仿真场景,对于学习和研究OPNET Modeler的用户来说是一份宝贵的资源。

    详细OPNET安装学习资料

    OPNET是一款强大的网络性能分析和建模工具,广泛应用于计算机网络设计、优化和仿真。这份“详细OPNET安装学习资料”包含了一系列与OPNET相关的学习材料,旨在帮助初学者和经验丰富的用户更好地理解和掌握该软件。 ...

    Opnet 14.5 注册机

    可生成Opnet14.5的注册文件,Opnet安装完成后运行该文件即可

    opnet

    经典OPNET实例,是学习opnet的很好入门方式

    opnet论坛资源精华

    7. **脚本编程**:了解如何利用OPNET的API和脚本语言(如Perl、Python)进行自动化和高级定制。 8. **最佳实践**:获取社区推荐的配置模板、优化技巧和经验总结,提高工作效率。 9. **社区互动**:了解如何参与...

    OPNET 无线宽带建模

    4. **报告生成器**:自动生成详细的分析报告,方便用户理解和分享结果。 **应用案例** OPNET无线建模的应用广泛,包括但不限于以下场景: - **网络规划**:在部署新的无线网络前,预测其性能并优化配置。 - **...

    OPNET用户指南(英文)

    3. **分析工具**:OPNET提供了丰富的分析工具,如统计报告、图表生成等,帮助用户更好地理解仿真结果。 #### 三、OPNET的特点 1. **高精度**:OPNET采用了精确的算法和数据模型,能够准确地反映网络行为。 2. **...

Global site tag (gtag.js) - Google Analytics