def sendevent(self, model: "WayPointMobility") -> None: """ Send an event message on behalf of a mobility model. This communicates the current and end (max) times to the GUI. :param model: mobility model to send event for :return: nothing """ event_type = EventTypes.NONE if model.state == model.STATE_STOPPED: event_type = EventTypes.STOP elif model.state == model.STATE_RUNNING: event_type = EventTypes.START elif model.state == model.STATE_PAUSED: event_type = EventTypes.PAUSE start_time = int(model.lasttime - model.timezero) end_time = int(model.endtime) data = f"start={start_time} end={end_time}" event_data = EventData( node=model.id, event_type=event_type, name=f"mobility:{model.name}", data=data, time=str(time.monotonic()), ) self.session.broadcast_event(event_data)
def sendevent(self, model): """ Send an event message on behalf of a mobility model. This communicates the current and end (max) times to the GUI. :param WayPointMobility model: mobility model to send event for :return: nothing """ event_type = EventTypes.NONE.value if model.state == model.STATE_STOPPED: event_type = EventTypes.STOP.value elif model.state == model.STATE_RUNNING: event_type = EventTypes.START.value elif model.state == model.STATE_PAUSED: event_type = EventTypes.PAUSE.value data = "start=%d" % int(model.lasttime - model.timezero) data += " end=%d" % int(model.endtime) event_data = EventData(node=model.id, event_type=event_type, name="mobility:%s" % model.name, data=data, time="%s" % time.time()) self.session.broadcast_event(event_data)
def test_session_events(self, grpc_server): # given client = CoreGrpcClient() session = grpc_server.coreemu.create_session() queue = Queue() def handle_event(event_data): assert event_data.HasField("session_event") queue.put(event_data) # then with client.context_connect(): client.events(session.id, handle_event) time.sleep(0.1) event = EventData(event_type=EventTypes.RUNTIME_STATE.value, time="%s" % time.time()) session.broadcast_event(event) # then queue.get(timeout=5)
def test_session_events(self, grpc_server: CoreGrpcServer): # given client = CoreGrpcClient() session = grpc_server.coreemu.create_session() queue = Queue() def handle_event(event: Event) -> None: assert event.session_id == session.id assert event.session_event is not None queue.put(event) # then with client.context_connect(): client.events(session.id, handle_event) time.sleep(0.1) event_data = EventData(event_type=EventTypes.RUNTIME_STATE, time=str(time.monotonic())) session.broadcast_event(event_data) # then queue.get(timeout=5)