daemon: updates to provide new logic for emane event services, creating one per unique control channel, added mapping for nems to associated service for generated events

This commit is contained in:
Blake Harnden 2021-05-24 21:41:05 -07:00
parent ef0fa8c1a7
commit bcd9cc7ac2
5 changed files with 146 additions and 142 deletions

View file

@ -122,15 +122,9 @@ class EmaneCommEffectModel(emanemodel.EmaneModel):
Generate CommEffect events when a Link Message is received having
link parameters.
"""
service = self.session.emane.service
if service is None:
logger.warning("%s: EMANE event service unavailable", self.name)
return
if iface is None or iface2 is None:
logger.warning("%s: missing NEM information", self.name)
return
# TODO: batch these into multiple events per transmission
# TODO: may want to split out seconds portion of delay and jitter
event = CommEffectEvent()
@ -146,4 +140,4 @@ class EmaneCommEffectModel(emanemodel.EmaneModel):
unicast=int(convert_none(options.bandwidth)),
broadcast=int(convert_none(options.bandwidth)),
)
service.publish(nem2, event)
self.session.emane.publish_event(nem2, event)

View file

@ -59,8 +59,9 @@ class EmaneTdmaModel(emanemodel.EmaneModel):
logger.warning("ignoring invalid tdma schedule: %s", schedule)
return
# initiate tdma schedule
event_device = self.session.emane.event_device
logger.info(
"setting up tdma schedule: schedule(%s) device(%s)", schedule, event_device
)
utils.cmd(f"emaneevent-tdmaschedule -i {event_device} {schedule}")
for service in self.session.emane.services.values():
device = service.device
logger.info(
"setting up tdma schedule: schedule(%s) device(%s)", schedule, device
)
utils.cmd(f"emaneevent-tdmaschedule -i {device} {schedule}")