diff --git a/software/ros_packages/ground_station/src/Framework/NavigationSystems/WaypointsCoordinator.py b/software/ros_packages/ground_station/src/Framework/NavigationSystems/WaypointsCoordinator.py index e074ed0..4b5a425 100644 --- a/software/ros_packages/ground_station/src/Framework/NavigationSystems/WaypointsCoordinator.py +++ b/software/ros_packages/ground_station/src/Framework/NavigationSystems/WaypointsCoordinator.py @@ -9,11 +9,13 @@ class WaypointsCoordinator(QtCore.QThread): def __init__(self, shared_objects): super(WaypointsCoordinator, self).init() + self.run_thread_flag = True self.shared_objects = shared_objects self.left_screen = self.shared_objects["screens"]["left_screen"] - self.navigation_label = self.left_screen.navigation_waypoints_table_widget + self.navigation_label = (self.left_screen. + navigation_waypoints_table_widget) self.landmark_label = self.left_screen.landmark_waypoints_table_widget self.name_edit_label = (self.left_screen. @@ -27,6 +29,10 @@ class WaypointsCoordinator(QtCore.QThread): self.logger = logging.getLogger("groundstation") + def run(self): + while self.run_thread_flag: + self.msleep(3) + def connect_signals_and_slots(self): self.new_manual_waypoint_entry.connect(self.update_manual_entry) @@ -34,11 +40,20 @@ class WaypointsCoordinator(QtCore.QThread): # self. self.navigation_label.cellClicked.connect(self._on_nav_clicked) - self.landmark_label.cellClicked.connect(self.__on_land_clicked) + self.landmark_label.cellClicked.connect(self._on_land_clicked) + + def setup_signals(self, start_signal, + signals_and_slots_signal, kill_signal): + start_signal.connect(self.start) + signals_and_slots_signal.connect(self.connect_signals_and_slots) + kill_signal.connect(self.on_kill_threads_requested_slot) + + def on_kill_threads_requested__slot(self): + self.run_thread_flag = False def update_manual_entry(self, name, lat, lng, table): - if table == 1: - self.name_edit_label.setText(name) + self.name_edit_label.readOnly(table % 2) + self.name_edit_label.setText(name) self.latitude_label.setText(lat) self.longitude_label.set(lng) diff --git a/software/ros_packages/ground_station/src/ground_station.py b/software/ros_packages/ground_station/src/ground_station.py index b14d8ee..4acf527 100644 --- a/software/ros_packages/ground_station/src/ground_station.py +++ b/software/ros_packages/ground_station/src/ground_station.py @@ -17,6 +17,7 @@ import Framework.VideoSystems.RoverVideoCoordinator as RoverVideoCoordinator import Framework.MapSystems.RoverMapCoordinator as RoverMapCoordinator import Framework.JoystickControlSystems.JoystickControlSender as JoystickControlSender import Framework.NavigationSystems.SpeedAndHeadingIndication as SpeedAndHeading +import Framework.NavigationSystems.WaypointsCoordinator as WaypointsCoordinator import Framework.ArmSystems.ArmIndication as ArmIndication import Framework.StatusSystems.StatusCore as StatusCore import Framework.SettingsSystems.UbiquitiRadioSettings as UbiquitiRadioSettings @@ -107,6 +108,7 @@ class GroundStation(QtCore.QObject): self.__add_thread("Arm Indication", ArmIndication.ArmIndication(self.shared_objects)) self.__add_thread("Rover Status", StatusCore.SensorCore(self.shared_objects)) self.__add_thread("Ubiquiti Radio Settings", UbiquitiRadioSettings.UbiquitiRadioSettings(self.shared_objects)) + self.__add_thread("Waypoints Coordinator", WaypointsCoordinator.WaypointsCoordinator(self.shared_objects)) self.connect_signals_and_slots_signal.emit() self.__connect_signals_to_slots()