`
hankgong
  • 浏览: 202533 次
  • 性别: 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学习文档.zip_opnet_网络仿真与OPNET简介

    此外,还可以结合其他工具,如MATLAB、Python等,实现数据导入导出和自动化脚本,提高工作效率。 通过这个“OPNET学习文档”压缩包,初学者将能够系统地学习OPNET的基本操作和网络仿真的核心概念,逐步成长为网络...

    opnet 学习心得

    虽然OPNET提供图形化建模,但高级用户通常会利用API进行自动化建模和脚本编写,以提高工作效率。掌握一些脚本语言,如Python或Perl,能让你在OPNET中实现更复杂的功能。 总之,学习OPNET是一个理论与实践相结合的...

    IEEE802.15.4_opnet_simulation_model_v3.0.zip_Windows编程_Windows_Unix_

    3. **脚本文件**:可能是用OPNET Modeler的内置语言或者Python等脚本语言编写的,用于控制仿真流程、生成报告等。 4. **用户指南**:详细的使用说明,包括如何导入模型、设置参数、运行仿真以及解析结果。 在使用这...

    无线传感器网络仿真

    - **OPNET**:由OPNET Technologies Inc.开发的一款高性能网络仿真工具,具有强大的网络建模能力,能够精确地预测网络性能。 - **SensorSim**:专为无线传感器网络设计的仿真平台,支持WSN的多种应用场景。 - **...

    智慧城市-2012年NEC智慧城市解决方案.zip

    智慧城市-2012年NEC智慧城市解决方案.zip

    IBMERP实施应收模块业务方案和用户操作手册手册超详.doc

    IBMERP实施应收模块业务方案和用户操作手册手册超详.doc

    spring-boot-1.4.4.RELEASE.jar中文文档.zip

    # 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    spring-boot-2.4.0.jar中文文档.zip

    # 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    JAVA保存计算过程的计算器课程设计报告样本.doc

    JAVA保存计算过程的计算器课程设计报告样本.doc

    scratch少儿编程逻辑思维游戏源码-像素任务.zip

    scratch少儿编程逻辑思维游戏源码-像素任务.zip

    spring-boot-1.4.6.RELEASE.jar中文-英文对照文档.zip

    # 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    spring-boot-2.6.9.jar中文-英文对照文档.zip

    # 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    spring-boot-1.5.14.RELEASE.jar中文文档.zip

    # 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    rocksdbjni-6.22.1.1.jar中文文档.zip

    # 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    scratch少儿编程逻辑思维游戏源码-死亡锯.zip

    scratch少儿编程逻辑思维游戏源码-死亡锯.zip

    FPGA单精度浮点数运算及PID控制的Verilog实现资料包

    内容概要:本文档介绍了一套完整的FPGA工程项目资料包,涵盖了单精度浮点数运算(加减乘除、开方)、浮点数与整数互转以及PID控制算法的Verilog实现。每个项目都包含了详细的工程代码、测试平台(testbench)和相关说明文件。此外,还提供了MATLAB文件用于验证PID算法的准确性,以及一个小工具用于浮点数和整数的转换。所有代码均为纯Verilog编写,不依赖于任何IP核,便于用户自定义修改和优化。 适合人群:对FPGA开发感兴趣的电子工程师、硬件开发者、科研人员及高校师生。 使用场景及目标:① 学习和掌握FPGA环境下单精度浮点数运算的基本原理及其具体实现方法;② 探索并理解PID控制算法在实际系统中的应用;③ 利用提供的MATLAB文件和小工具辅助教学或研究工作。 其他说明:资料包内的所有工程均可直接在Altera平台上进行仿真测试,帮助使用者快速入门并深入理解各个模块的功能特性。

    IBM企业内容管理解决方案.doc

    IBM企业内容管理解决方案.doc

    update9-20250501.5.208.slice.img.7z.003

    小雉系统分卷源码,修正系统安全问题

    rocksdbjni-6.25.3.jar中文文档.zip

    # 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    spring-boot-2.3.8.RELEASE.jar中文-英文对照文档.zip

    # 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

Global site tag (gtag.js) - Google Analytics