|
|
@ -73,6 +73,7 @@ class ReplayContext: |
|
|
|
for pub in pubs_with_events: |
|
|
|
for pub in pubs_with_events: |
|
|
|
self.events[pub] = messaging.fake_event_handle(pub, enable=True) |
|
|
|
self.events[pub] = messaging.fake_event_handle(pub, enable=True) |
|
|
|
else: |
|
|
|
else: |
|
|
|
|
|
|
|
print(self.proc_name, "main pub", self.main_pub, self.main_pub_drained) |
|
|
|
self.events = {self.main_pub: messaging.fake_event_handle(self.main_pub, enable=True)} |
|
|
|
self.events = {self.main_pub: messaging.fake_event_handle(self.main_pub, enable=True)} |
|
|
|
|
|
|
|
|
|
|
|
def close_context(self): |
|
|
|
def close_context(self): |
|
|
@ -128,11 +129,18 @@ class ProcessConfig: |
|
|
|
timeout: int = 30 |
|
|
|
timeout: int = 30 |
|
|
|
simulation: bool = True |
|
|
|
simulation: bool = True |
|
|
|
main_pub: str | None = None |
|
|
|
main_pub: str | None = None |
|
|
|
main_pub_drained: bool = True |
|
|
|
main_pub_drained: bool = False |
|
|
|
vision_pubs: list[str] = field(default_factory=list) |
|
|
|
vision_pubs: list[str] = field(default_factory=list) |
|
|
|
ignore_alive_pubs: list[str] = field(default_factory=list) |
|
|
|
ignore_alive_pubs: list[str] = field(default_factory=list) |
|
|
|
unlocked_pubs: list[str] = field(default_factory=list) |
|
|
|
unlocked_pubs: list[str] = field(default_factory=list) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def __post_init__(self): |
|
|
|
|
|
|
|
if self.main_pub is None: |
|
|
|
|
|
|
|
if hasattr(self.should_recv_callback, "trigger_msg_type"): |
|
|
|
|
|
|
|
self.main_pub = self.should_recv_callback.trigger_msg_type |
|
|
|
|
|
|
|
else: |
|
|
|
|
|
|
|
self.main_pub = self.pubs[0] if len(self.pubs) > 0 else None |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ProcessContainer: |
|
|
|
class ProcessContainer: |
|
|
|
def __init__(self, cfg: ProcessConfig): |
|
|
|
def __init__(self, cfg: ProcessConfig): |
|
|
@ -292,7 +300,9 @@ class ProcessContainer: |
|
|
|
trigger_empty_recv = any(m.which() == self.cfg.main_pub for m in self.msg_queue) |
|
|
|
trigger_empty_recv = any(m.which() == self.cfg.main_pub for m in self.msg_queue) |
|
|
|
|
|
|
|
|
|
|
|
# get output msgs from previous inputs |
|
|
|
# get output msgs from previous inputs |
|
|
|
|
|
|
|
input('about to get output msgs, press enter to continue...') |
|
|
|
output_msgs = self.get_output_msgs(msg.logMonoTime) |
|
|
|
output_msgs = self.get_output_msgs(msg.logMonoTime) |
|
|
|
|
|
|
|
input('got output msgs, press enter to continue...') |
|
|
|
|
|
|
|
|
|
|
|
for m in self.msg_queue: |
|
|
|
for m in self.msg_queue: |
|
|
|
self.pm.send(m.which(), m.as_builder()) |
|
|
|
self.pm.send(m.which(), m.as_builder()) |
|
|
@ -306,9 +316,11 @@ class ProcessContainer: |
|
|
|
camera_state.frameId, camera_state.timestampSof, camera_state.timestampEof) |
|
|
|
camera_state.frameId, camera_state.timestampSof, camera_state.timestampEof) |
|
|
|
self.msg_queue = [] |
|
|
|
self.msg_queue = [] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
input('about to unlock sockets, press enter to continue...') |
|
|
|
self.rc.unlock_sockets() |
|
|
|
self.rc.unlock_sockets() |
|
|
|
if trigger_empty_recv: |
|
|
|
if trigger_empty_recv: |
|
|
|
self.rc.unlock_sockets() |
|
|
|
self.rc.unlock_sockets() |
|
|
|
|
|
|
|
input('unlocked sockets, press enter to continue...') |
|
|
|
self.cnt += 1 |
|
|
|
self.cnt += 1 |
|
|
|
assert self.process.proc.is_alive() |
|
|
|
assert self.process.proc.is_alive() |
|
|
|
|
|
|
|
|
|
|
@ -472,6 +484,7 @@ CONFIGS = [ |
|
|
|
"driverMonitoringState", "onroadEvents", "driverAssistance"], |
|
|
|
"driverMonitoringState", "onroadEvents", "driverAssistance"], |
|
|
|
subs=["carControl", "controlsState"], |
|
|
|
subs=["carControl", "controlsState"], |
|
|
|
ignore=["logMonoTime", ], |
|
|
|
ignore=["logMonoTime", ], |
|
|
|
|
|
|
|
main_pub="selfdriveState", |
|
|
|
init_callback=get_car_params_callback, |
|
|
|
init_callback=get_car_params_callback, |
|
|
|
should_recv_callback=MessageBasedRcvCallback("selfdriveState"), |
|
|
|
should_recv_callback=MessageBasedRcvCallback("selfdriveState"), |
|
|
|
tolerance=NUMPY_TOLERANCE, |
|
|
|
tolerance=NUMPY_TOLERANCE, |
|
|
@ -486,6 +499,7 @@ CONFIGS = [ |
|
|
|
tolerance=NUMPY_TOLERANCE, |
|
|
|
tolerance=NUMPY_TOLERANCE, |
|
|
|
processing_time=0.004, |
|
|
|
processing_time=0.004, |
|
|
|
main_pub="can", |
|
|
|
main_pub="can", |
|
|
|
|
|
|
|
main_pub_drained=True, |
|
|
|
), |
|
|
|
), |
|
|
|
ProcessConfig( |
|
|
|
ProcessConfig( |
|
|
|
proc_name="radard", |
|
|
|
proc_name="radard", |
|
|
@ -536,6 +550,7 @@ CONFIGS = [ |
|
|
|
pubs=["livePose", "liveCalibration", "carState"], |
|
|
|
pubs=["livePose", "liveCalibration", "carState"], |
|
|
|
subs=["liveParameters"], |
|
|
|
subs=["liveParameters"], |
|
|
|
ignore=["logMonoTime"], |
|
|
|
ignore=["logMonoTime"], |
|
|
|
|
|
|
|
main_pub="livePose", |
|
|
|
init_callback=get_car_params_callback, |
|
|
|
init_callback=get_car_params_callback, |
|
|
|
should_recv_callback=FrequencyBasedRcvCallback("livePose"), |
|
|
|
should_recv_callback=FrequencyBasedRcvCallback("livePose"), |
|
|
|
tolerance=NUMPY_TOLERANCE, |
|
|
|
tolerance=NUMPY_TOLERANCE, |
|
|
@ -574,7 +589,6 @@ CONFIGS = [ |
|
|
|
tolerance=NUMPY_TOLERANCE, |
|
|
|
tolerance=NUMPY_TOLERANCE, |
|
|
|
processing_time=0.020, |
|
|
|
processing_time=0.020, |
|
|
|
main_pub=vipc_get_endpoint_name("camerad", meta_from_camera_state("roadCameraState").stream), |
|
|
|
main_pub=vipc_get_endpoint_name("camerad", meta_from_camera_state("roadCameraState").stream), |
|
|
|
main_pub_drained=False, |
|
|
|
|
|
|
|
vision_pubs=["roadCameraState", "wideRoadCameraState"], |
|
|
|
vision_pubs=["roadCameraState", "wideRoadCameraState"], |
|
|
|
ignore_alive_pubs=["wideRoadCameraState"], |
|
|
|
ignore_alive_pubs=["wideRoadCameraState"], |
|
|
|
init_callback=get_car_params_callback, |
|
|
|
init_callback=get_car_params_callback, |
|
|
@ -588,7 +602,6 @@ CONFIGS = [ |
|
|
|
tolerance=NUMPY_TOLERANCE, |
|
|
|
tolerance=NUMPY_TOLERANCE, |
|
|
|
processing_time=0.020, |
|
|
|
processing_time=0.020, |
|
|
|
main_pub=vipc_get_endpoint_name("camerad", meta_from_camera_state("driverCameraState").stream), |
|
|
|
main_pub=vipc_get_endpoint_name("camerad", meta_from_camera_state("driverCameraState").stream), |
|
|
|
main_pub_drained=False, |
|
|
|
|
|
|
|
vision_pubs=["driverCameraState"], |
|
|
|
vision_pubs=["driverCameraState"], |
|
|
|
ignore_alive_pubs=["driverCameraState"], |
|
|
|
ignore_alive_pubs=["driverCameraState"], |
|
|
|
), |
|
|
|
), |
|
|
|