daemon: fixed mobility manager updates to support emane/wlan
This commit is contained in:
parent
d30778b238
commit
46f896925c
2 changed files with 11 additions and 11 deletions
|
@ -130,8 +130,8 @@ class EmaneModel(WirelessModel):
|
||||||
:return: nothing
|
:return: nothing
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
wlan = self.session.get_node(self.id, EmaneNet)
|
emane_net = self.session.get_node(self.id, EmaneNet)
|
||||||
wlan.setnempositions(moved_ifaces)
|
emane_net.setnempositions(moved_ifaces)
|
||||||
except CoreError:
|
except CoreError:
|
||||||
logging.exception("error during update")
|
logging.exception("error during update")
|
||||||
|
|
||||||
|
|
|
@ -100,7 +100,7 @@ class MobilityManager(ModelManager):
|
||||||
def handleevent(self, event_data: EventData) -> None:
|
def handleevent(self, event_data: EventData) -> None:
|
||||||
"""
|
"""
|
||||||
Handle an Event Message used to start, stop, or pause
|
Handle an Event Message used to start, stop, or pause
|
||||||
mobility scripts for a given WlanNode.
|
mobility scripts for a given mobility network.
|
||||||
|
|
||||||
:param event_data: event data to handle
|
:param event_data: event data to handle
|
||||||
:return: nothing
|
:return: nothing
|
||||||
|
@ -172,12 +172,12 @@ class MobilityManager(ModelManager):
|
||||||
)
|
)
|
||||||
self.session.broadcast_event(event_data)
|
self.session.broadcast_event(event_data)
|
||||||
|
|
||||||
def updatewlans(
|
def update_nets(
|
||||||
self, moved: List[CoreNode], moved_ifaces: List[CoreInterface]
|
self, moved: List[CoreNode], moved_ifaces: List[CoreInterface]
|
||||||
) -> None:
|
) -> None:
|
||||||
"""
|
"""
|
||||||
A mobility script has caused nodes in the 'moved' list to move.
|
A mobility script has caused nodes in the 'moved' list to move.
|
||||||
Update every WlanNode. This saves range calculations if the model
|
Update every mobility network. This saves range calculations if the model
|
||||||
were to recalculate for each individual node movement.
|
were to recalculate for each individual node movement.
|
||||||
|
|
||||||
:param moved: moved nodes
|
:param moved: moved nodes
|
||||||
|
@ -186,11 +186,11 @@ class MobilityManager(ModelManager):
|
||||||
"""
|
"""
|
||||||
for node_id in self.nodes():
|
for node_id in self.nodes():
|
||||||
try:
|
try:
|
||||||
node = self.session.get_node(node_id, WlanNode)
|
node = get_mobility_node(self.session, node_id)
|
||||||
|
if node.model:
|
||||||
|
node.model.update(moved, moved_ifaces)
|
||||||
except CoreError:
|
except CoreError:
|
||||||
continue
|
logging.exception("error updating mobility node")
|
||||||
if node.model:
|
|
||||||
node.model.update(moved, moved_ifaces)
|
|
||||||
|
|
||||||
|
|
||||||
class WirelessModel(ConfigurableOptions):
|
class WirelessModel(ConfigurableOptions):
|
||||||
|
@ -648,7 +648,7 @@ class WayPointMobility(WirelessModel):
|
||||||
moved_ifaces.append(iface)
|
moved_ifaces.append(iface)
|
||||||
|
|
||||||
# calculate all ranges after moving nodes; this saves calculations
|
# calculate all ranges after moving nodes; this saves calculations
|
||||||
self.session.mobility.updatewlans(moved, moved_ifaces)
|
self.session.mobility.update_nets(moved, moved_ifaces)
|
||||||
|
|
||||||
# TODO: check session state
|
# TODO: check session state
|
||||||
self.session.event_loop.add_event(0.001 * self.refresh_ms, self.runround)
|
self.session.event_loop.add_event(0.001 * self.refresh_ms, self.runround)
|
||||||
|
@ -729,7 +729,7 @@ class WayPointMobility(WirelessModel):
|
||||||
self.setnodeposition(node, x, y, z)
|
self.setnodeposition(node, x, y, z)
|
||||||
moved.append(node)
|
moved.append(node)
|
||||||
moved_ifaces.append(iface)
|
moved_ifaces.append(iface)
|
||||||
self.session.mobility.updatewlans(moved, moved_ifaces)
|
self.session.mobility.update_nets(moved, moved_ifaces)
|
||||||
|
|
||||||
def addwaypoint(
|
def addwaypoint(
|
||||||
self,
|
self,
|
||||||
|
|
Loading…
Add table
Reference in a new issue