support multiple frequencies of interest with the EMANE 0.9.1 Universal Phy
(Boeing r1850)
This commit is contained in:
parent
7905a26e4d
commit
e6ff3b4cce
3 changed files with 47 additions and 1 deletions
|
@ -15,7 +15,8 @@ from xml.dom.minidom import parseString, Document
|
|||
from core.constants import *
|
||||
from core.api import coreapi
|
||||
from core.misc.ipaddr import MacAddr
|
||||
from core.misc.xmlutils import addtextelementsfromtuples
|
||||
from core.misc.utils import maketuplefromstr
|
||||
from core.misc.xmlutils import addtextelementsfromtuples, addparamlisttoparent
|
||||
from core.conf import ConfigurableManager, Configurable
|
||||
from core.mobility import WirelessModel
|
||||
from core.emane.nodes import EmaneNode
|
||||
|
@ -940,6 +941,20 @@ class EmaneModel(WirelessModel):
|
|||
warntxt = "EMANE model %s does not support link " % self._name
|
||||
warntxt += "configuration, dropping Link Message"
|
||||
self.session.warn(warntxt)
|
||||
|
||||
@staticmethod
|
||||
def valuestrtoparamlist(dom, name, value):
|
||||
''' Helper to convert a parameter to a paramlist.
|
||||
Returns a an XML paramlist, or None if the value does not expand to
|
||||
multiple values.
|
||||
'''
|
||||
try:
|
||||
values = maketuplefromstr(value, str)
|
||||
except SyntaxError:
|
||||
return None
|
||||
if len(values) < 2:
|
||||
return None
|
||||
return addparamlisttoparent(dom, parent=None, name=name, values=values)
|
||||
|
||||
|
||||
class EmaneGlobalModel(EmaneModel):
|
||||
|
|
|
@ -126,10 +126,21 @@ class EmaneUniversalModel(EmaneModel):
|
|||
# insert old options with their default values
|
||||
for old in cls._confmatrix_ver074:
|
||||
phy.appendChild(e.xmlparam(phydoc, old[0], old[2]))
|
||||
|
||||
frequencies = None
|
||||
if e.version == e.EMANE091:
|
||||
name = "frequencyofinterest"
|
||||
value = mac.valueof(name, values)
|
||||
frequencies = cls.valuestrtoparamlist(phydoc, name, value)
|
||||
if frequencies:
|
||||
phynames = list(phynames)
|
||||
phynames.remove("frequencyofinterest")
|
||||
|
||||
# append all PHY options to phydoc
|
||||
map( lambda n: phy.appendChild(e.xmlparam(phydoc, n, \
|
||||
mac.valueof(n, values))), phynames)
|
||||
if frequencies:
|
||||
phy.appendChild(frequencies)
|
||||
return phydoc
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue