# define number of antenna elements for hexagonal scenarios - InH will be 1x1 numTxAntennas = 1 # number of antennas (S) at the base station numRxAntennas = 1 # number of antennas (U) at the mobile station # set both to 1 unless you want to average instantaneous SINR values over # multiple PRBs and multiple TTIs (rounds) numPRBs = 1 msSpeed = 3 # 3 km/h msHeight = 1.5 # meters scenarioConfig = imtaphy.ScenarioSupport.Scenario(params.scenario, numberOfCircles, msHeight) # simulator setup stuff WNS = openwns.Simulator(simulationModel = openwns.node.NodeSimulationModel()) openwns.setSimulator(WNS) WNS.rng.seed = params.seed # this fixes the seed for the C++ simulator WNS.maxSimTime = simTime WNS.masterLogger.backtrace.enabled = False WNS.masterLogger.enabled = True WNS.outputStrategy = openwns.simulator.OutputStrategy.DELETE WNS.statusWriteInterval = 1 # in seconds WNS.probesWriteInterval = 300 # in seconds #scenario = scenarioConfig.getBoundingBox() if wrapAround and not (params.scenario == 'InH'): wrapAroundShiftVectors = imtaphy.LinkManagement.computeShiftVectors(scenarioConfig.getInterSiteDistance(), numberOfCircles) else: wrapAroundShiftVectors = []
mm1 = openwns.queuingsystem.SimpleMM1Step3(meanJobInterArrivalTime = 0.100, meanJobProcessingTime = 0.099) # create simulator configuration sim = openwns.Simulator(simulationModel = mm1, maxSimTime = 100.0) sim.eventSchedulerMonitor = None # If an output directory is already present it will be deleted # if you change this to MOVE a present output directory will # be ranamed sim.outputStrategy = openwns.simulator.OutputStrategy.DELETE # set the configuration for this simulation openwns.setSimulator(sim) # The name of the measurement source we want to configure sourceName = 'SojournTime' # Get the root of the SojournTime Probe Bus node = openwns.evaluation.createSourceNode(sim, sourceName) # We create a Probe Bus that looks like this: # MeasurmentSource=>SettlingTimeGuard=>Moments=>PDF # The SettlingTimeGuard does not let measurements pass before the simulation time given # as a parameter is passed. It is used to assure probing starts when stationary phase # is reached node.getLeafs().appendChildren(openwns.evaluation.generators.SettlingTimeGuard(5.0)) # The Moments probe bus does some basic statistical evaluation node.getLeafs().appendChildren(openwns.evaluation.generators.Moments()) # The PDF Probe Bus collects the probability density function
wimaxvideotelephony = applications.clientSessions.WiMAXVideoTelephony(codecType = applications.codec.GSM(), comfortNoiseChoice = True, framesPerSecond = 25.0, scaleOfIFrame = 5.15, shapeOfIFrame = 863.0, shiftOfIFrameSize = 3949.0, meanOfBFrameSize = 147.0, sigmaOfBFrameSize = 74.0, meanOfPFrameSize = 259.0, sigmaOfPFrameSize = 134.0, parentLogger = logger) tlBinding = applications.component.TLBinding(node.tl.domainName, ipaddress, 1033, openwns.qos.undefinedQosClass, 1033, logger) node.load.addTraffic(tlBinding, wimaxvideotelephony) simulation.simulationModel.nodes.append(node) # installing probes sesTypes = ['CBR', 'Email', 'FTP', 'VoIP', 'Video', 'VideoTelephony', 'VideoTrace', 'WWW', 'WiMAXVideo', 'WiMAXVideoTelephony'] applications.evaluation.default.installEvaluation(simulation, serverIdList + clientIdList, sesTypes, settlingTime) openwns.evaluation.default.installEvaluation(simulation) openwns.setSimulator(simulation)