def _on_controller_state(self, msg):
        self._controller_state = deepcopy(ControllerStateInfo(msg))

        self._assert_one_active_controller()

        if self._current_controller and self._current_controller not in self._param_config_clients:
            self._param_config_clients[self._current_controller] = ControllerParamConfigClient(self._current_controller)
            self._param_config_clients[self._current_controller].start()
    def _on_controller_state(self, msg):
        """
        Callback function. The controller state is updated here, as well as the current active controller detected.
        """
        self._controller_state = deepcopy(ControllerStateInfo(msg))

        self._assert_one_active_controller()

        if self._current_controller and self._current_controller not in self._param_config_clients:
            self._param_config_clients[self._current_controller] = ControllerParamConfigClient(self._current_controller, self._ns)
            self._param_config_clients[self._current_controller].start()