reverted to using class variables for emane models due to inheritence from config class

This commit is contained in:
Blake J. Harnden 2018-03-29 14:38:32 -07:00
parent 19ccd6a63b
commit beb5be2ee9
6 changed files with 28 additions and 32 deletions

View file

@ -2,11 +2,11 @@
EMANE Bypass model for CORE EMANE Bypass model for CORE
""" """
from core.emane.emanemodel import EmaneModel from core.emane import emanemodel
from core.enumerations import ConfigDataTypes from core.enumerations import ConfigDataTypes
class EmaneBypassModel(EmaneModel): class EmaneBypassModel(emanemodel.EmaneModel):
name = "emane_bypass" name = "emane_bypass"
library = "bypassmaclayer" library = "bypassmaclayer"
@ -16,7 +16,5 @@ class EmaneBypassModel(EmaneModel):
"There are no parameters for the bypass model."), "There are no parameters for the bypass model."),
] ]
_config_phy = [] _config_phy = []
config_matrix = _config_mac + _config_phy
@property config_groups = "Bypass Parameters:1-1"
def config_groups(self):
return "Bypass Parameters:1-1"

View file

@ -3,7 +3,7 @@ commeffect.py: EMANE CommEffect model for CORE
""" """
from core import logger from core import logger
from core.emane.emanemodel import EmaneModel from core.emane import emanemodel
from core.enumerations import ConfigDataTypes from core.enumerations import ConfigDataTypes
try: try:
@ -24,7 +24,7 @@ def convert_none(x):
return int(x) return int(x)
class EmaneCommEffectModel(EmaneModel): class EmaneCommEffectModel(emanemodel.EmaneModel):
name = "emane_commeffect" name = "emane_commeffect"
config_matrix = [ config_matrix = [
@ -35,9 +35,7 @@ class EmaneCommEffectModel(EmaneModel):
("defaultconnectivitymode", ConfigDataTypes.BOOL.value, "1", "On,Off", "defaultconnectivity"), ("defaultconnectivitymode", ConfigDataTypes.BOOL.value, "1", "On,Off", "defaultconnectivity"),
] ]
@property config_groups = "CommEffect SHIM Parameters:1-%d" % len(config_matrix)
def config_groups(self):
return "CommEffect SHIM Parameters:1-%d" % len(self.config_matrix)
def build_xml_files(self, emane_manager, interface): def build_xml_files(self, emane_manager, interface):
""" """

View file

@ -9,9 +9,10 @@ from core.mobility import WirelessModel
from core.xml import xmlutils from core.xml import xmlutils
def classproperty(_): def create_config_groups(config_mac, config_matrix):
def __get__(self, _, inst): mac_len = len(config_mac)
return self.fget.__get__(None, inst)() config_len = len(config_matrix)
return "MAC Parameters:1-%d|PHY Parameters:%d-%d" % (mac_len, mac_len + 1, config_len)
def value_to_params(doc, name, value): def value_to_params(doc, name, value):
@ -129,22 +130,12 @@ class EmaneModel(WirelessModel):
_config_phy = EmaneUniversalModel.config_matrix _config_phy = EmaneUniversalModel.config_matrix
library = None library = None
config_ignore = set() config_ignore = set()
config_matrix = _config_mac + _config_phy
config_groups = create_config_groups(_config_mac, config_matrix)
def __init__(self, session, object_id=None): def __init__(self, session, object_id=None):
WirelessModel.__init__(self, session, object_id) WirelessModel.__init__(self, session, object_id)
@classproperty
@classmethod
def config_matrix(cls):
return cls._config_mac + cls._config_phy
@classproperty
@classmethod
def config_groups(cls):
mac_len = len(cls._config_mac)
config_len = len(cls.config_matrix)
return "MAC Parameters:1-%d|PHY Parameters:%d-%d" % (mac_len, mac_len + 1, config_len)
def build_xml_files(self, emane_manager, interface): def build_xml_files(self, emane_manager, interface):
""" """
Builds xml files for emane. Includes a nem.xml file that points to both mac.xml and phy.xml definitions. Builds xml files for emane. Includes a nem.xml file that points to both mac.xml and phy.xml definitions.

View file

@ -2,11 +2,11 @@
ieee80211abg.py: EMANE IEEE 802.11abg model for CORE ieee80211abg.py: EMANE IEEE 802.11abg model for CORE
""" """
from core.emane.emanemodel import EmaneModel from core.emane import emanemodel
from core.enumerations import ConfigDataTypes from core.enumerations import ConfigDataTypes
class EmaneIeee80211abgModel(EmaneModel): class EmaneIeee80211abgModel(emanemodel.EmaneModel):
# model name # model name
name = "emane_ieee80211abg" name = "emane_ieee80211abg"
library = "ieee80211abgmaclayer" library = "ieee80211abgmaclayer"
@ -45,6 +45,9 @@ class EmaneIeee80211abgModel(EmaneModel):
("wmmenable", ConfigDataTypes.BOOL.value, "0", "On,Off", "WiFi Multimedia (WMM)"), ("wmmenable", ConfigDataTypes.BOOL.value, "0", "On,Off", "WiFi Multimedia (WMM)"),
] ]
config_matrix = _config_mac + emanemodel.EmaneModel._config_phy
config_groups = emanemodel.create_config_groups(_config_mac, config_matrix)
def create_mac_doc(self, emane_manager, values): def create_mac_doc(self, emane_manager, values):
names = self.getnames() names = self.getnames()
mac_names = names[:len(self._config_mac)] mac_names = names[:len(self._config_mac)]

View file

@ -2,11 +2,11 @@
rfpipe.py: EMANE RF-PIPE model for CORE rfpipe.py: EMANE RF-PIPE model for CORE
""" """
from core.emane.emanemodel import EmaneModel from core.emane import emanemodel
from core.enumerations import ConfigDataTypes from core.enumerations import ConfigDataTypes
class EmaneRfPipeModel(EmaneModel): class EmaneRfPipeModel(emanemodel.EmaneModel):
# model name # model name
name = "emane_rfpipe" name = "emane_rfpipe"
library = "rfpipemaclayer" library = "rfpipemaclayer"
@ -27,3 +27,6 @@ class EmaneRfPipeModel(EmaneModel):
("radiometricreportinterval", ConfigDataTypes.FLOAT.value, "1.0", "", ("radiometricreportinterval", ConfigDataTypes.FLOAT.value, "1.0", "",
"R2RI radio metric report interval (sec)"), "R2RI radio metric report interval (sec)"),
] ]
config_matrix = _config_mac + emanemodel.EmaneModel._config_phy
config_groups = emanemodel.create_config_groups(_config_mac, config_matrix)

View file

@ -6,12 +6,12 @@ import os
from core import constants from core import constants
from core import logger from core import logger
from core.emane.emanemodel import EmaneModel from core.emane import emanemodel
from core.enumerations import ConfigDataTypes from core.enumerations import ConfigDataTypes
from core.misc import utils from core.misc import utils
class EmaneTdmaModel(EmaneModel): class EmaneTdmaModel(emanemodel.EmaneModel):
# model name # model name
name = "emane_tdma" name = "emane_tdma"
library = "tdmaeventschedulerradiomodel" library = "tdmaeventschedulerradiomodel"
@ -46,6 +46,9 @@ class EmaneTdmaModel(EmaneModel):
"enable strict dequeueing to specified queues only"), "enable strict dequeueing to specified queues only"),
] ]
config_matrix = _config_mac + emanemodel.EmaneModel._config_phy
config_groups = emanemodel.create_config_groups(_config_mac, config_matrix)
def post_startup(self, emane_manager): def post_startup(self, emane_manager):
""" """
Logic to execute after the emane manager is finished with startup. Logic to execute after the emane manager is finished with startup.