56 lines
2.5 KiB
Python
56 lines
2.5 KiB
Python
|
|
|
|
from core.emane import emanemanifest
|
|
from core.emane import emanemodel
|
|
|
|
## Custom EMANE Model
|
|
class ExampleModel(emanemodel.EmaneModel):
|
|
### MAC Definition
|
|
|
|
# Defines the emane model name that will show up in the GUI.
|
|
name = "emane_example"
|
|
|
|
# Defines that mac library that the model will reference.
|
|
mac_library = "rfpipemaclayer"
|
|
# Defines the mac manifest file that will be parsed to obtain configuration options, that will be displayed
|
|
# within the GUI.
|
|
mac_xml = "/usr/share/emane/manifest/rfpipemaclayer.xml"
|
|
# Allows you to override options that are maintained within the manifest file above.
|
|
mac_defaults = {
|
|
"pcrcurveuri": "/usr/share/emane/xml/models/mac/rfpipe/rfpipepcr.xml",
|
|
}
|
|
# Parses the manifest file and converts configurations into core supported formats.
|
|
mac_config = emanemanifest.parse(mac_xml, mac_defaults)
|
|
|
|
### PHY Definition
|
|
# **NOTE: phy configuration will default to the universal model as seen below and the below section does not
|
|
# have to be included.**
|
|
|
|
# Defines that phy library that the model will reference, used if you need to provide a custom phy.
|
|
phy_library = None
|
|
# Defines the phy manifest file that will be parsed to obtain configuration options, that will be displayed
|
|
# within the GUI.
|
|
phy_xml = "/usr/share/emane/manifest/emanephy.xml"
|
|
# Allows you to override options that are maintained within the manifest file above or for the default universal
|
|
# model.
|
|
phy_defaults = {
|
|
"subid": "1",
|
|
"propagationmodel": "2ray",
|
|
"noisemode": "none"
|
|
}
|
|
# Parses the manifest file and converts configurations into core supported formats.
|
|
phy_config = emanemanifest.parse(phy_xml, phy_defaults)
|
|
|
|
### Custom override options
|
|
# **NOTE: these options default to what's seen below and do not have to be included.**
|
|
|
|
# Allows you to ignore options within phy/mac, used typically if you needed to add a custom option for display
|
|
# within the gui.
|
|
config_ignore = set()
|
|
# Allows you to override how options are displayed with the GUI, using the GUI format of
|
|
# "name:1-2|othername:3-4". This will be parsed into tabs, split by "|" and account for items based on the indexed
|
|
# numbers after ":" for including values in each tab.
|
|
config_groups_override = None
|
|
# Allows you to override the default config matrix list. This value by default is the mac_config + phy_config, in
|
|
# that order.
|
|
config_matrix_override = None
|