use shared libs;

added event store which intercepts the message broker wrapper if exchange name is not logger
This commit is contained in:
Marco Zeisler
2021-05-27 19:38:49 +02:00
parent 4e1666ec5a
commit dc89332bd5
5 changed files with 61 additions and 31 deletions
+12 -4
View File
@@ -4,10 +4,13 @@ from random import randrange
from typing import List, Dict
from shared import daf
from shared.TrafficLightColor import TrafficLightColor
from shared.traffic_light_color import TrafficLightColor
from shared.message_broker_wrapper import MBWrapper
# necessary to unpickle daf object
from shared.target_velocity import TargetVelocity
from shared.traffic_light_state import TrafficLightState
sys.modules['daf'] = daf
@@ -61,10 +64,15 @@ class Orchestrator:
received_daf_object = pickle.loads(pickle_binary)
print(received_daf_object)
# TODO ask entity ident if tl in range?!
# TODO use the data from the traffic lights (self.tls)
# to transmit a new target velocity for this vehicle to achieve a green wave
response_channel = self._velocity_mbs[received_daf_object.vehicle_identification_number]
response_channel.send(str(randrange(0, 130)).encode())
target_vel = randrange(0, 130)
print('Target velocity: {}'.format(target_vel))
response_channel.send(pickle.dumps(
TargetVelocity(vin=received_daf_object.vehicle_identification_number, target_velocity=target_vel)))
def handle_tl_state_receive(self, msg):
"""
@@ -76,6 +84,6 @@ class Orchestrator:
}
Updates internal information about available TLs
"""
tl_state = pickle.loads(msg)
self.tls[tl_state['tlid']]['color'] = tl_state['color']
tl_state: TrafficLightState = pickle.loads(msg)
self.tls[tl_state.tlid]['color'] = tl_state.color
print(tl_state)