from target_simulator.simulation.simulation_controller import SimulationController class DummyComm: def __init__(self, use_json=False, send_results=None): self.is_open = True self._use_json_protocol = use_json self._send_calls = [] self._send_results = send_results def send_commands(self, cmds): self._send_calls.append(cmds) if callable(self._send_results): return self._send_results(cmds) if isinstance(self._send_results, list): if len(self._send_results) >= len(self._send_calls): return self._send_results[len(self._send_calls) - 1] return self._send_results[-1] return True def send_scenario(self, scenario): return True def router(self): return None class DummyCommManager: def __init__(self, target_comm=None): self.target_communicator = target_comm class DummyHub: def __init__(self, active_sequence=None): self._seq = list(active_sequence) if active_sequence is not None else [] def has_active_real_targets(self): if self._seq: return self._seq.pop(0) return False def reset(self): pass class DummyScenario: def __init__(self): class T: _total_duration_s = 5.0 self.targets = [T()] def get_all_targets(self): return self.targets def reset_simulation(self): pass class DummyMainView: def __init__(self): self.is_simulation_running = type("V", (), {"get": lambda s: False})() self.update_time = type("V", (), {"get": lambda s: 1.0})() self.time_multiplier = 1.0 self.scenario = DummyScenario() self.ppi_widget = type("P", (), {"clear_trails": lambda s: None, "clear_previews": lambda s: None})() self.sim_slider_var = type("V", (), {"get": lambda s: 0.0, "set": lambda s, v: None})() self.simulation_engine = None self.current_archive = None def _update_simulation_progress_display(self): pass def _update_button_states(self): pass def _refresh_analysis_list(self): pass comm = DummyComm(use_json=False, send_results=[True]) cm = DummyCommManager(comm) hub = DummyHub(active_sequence=[False]) controller = SimulationController(cm, hub, config_manager=None, logger=None) mv = DummyMainView() print('Calling _reset_radar_state_no_ui...') try: ok = controller._reset_radar_state_no_ui(mv) print('Returned:', ok) except Exception as e: import traceback traceback.print_exc() print('Exception type:', type(e))