This commit is contained in:
2018-03-17 14:50:33 -07:00
3 changed files with 71 additions and 7 deletions

View File

@@ -29,8 +29,8 @@ class RoverMapCoordinator(QtCore.QThread):
self.shared_objects = shared_objects self.shared_objects = shared_objects
self.left_screen = self.shared_objects["screens"]["left_screen"] self.left_screen = self.shared_objects["screens"]["left_screen"]
self.mapping_label = self.left_screen.mapping_label self.mapping_label = self.left_screen.mapping_label
self.navigation_label = self.left_screen.tableWidget self.navigation_label = self.left_screen.navigation_waypoints_table_widget
self.landmark_label = self.left_screen.tableWidget_2 self.landmark_label = self.left_screen.landmark_waypoints_table_widget
self.setings = QtCore.QSettings() self.setings = QtCore.QSettings()

View File

@@ -1,12 +1,74 @@
from PyQt5 import QtCore, QtWidgets, QtGui from PyQt5 import QtCore, QtWidgets, QtGui
import logging import logging
import rospy import rospy
class WaypointsCoordinator(QtCore.QThread): class WaypointsCoordinator(QtCore.QThread):
new_manual_waypoint_entry = QtCore.pyqtSignal(str, str, str, int)
update_waypoint_entry = QtCore.pyqtSignal(str, str, int)
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.landmark_label = self.left_screen.landmark_waypoints_table_widget
self.name_edit_label = (self.left_screen.
manual_waypoint_landmark_name_line_edit)
self.latitude_label = (self.left_screen.
manual_waypoint_decimal_lattitude_spin_box)
self.longitude_label = (self.left_screen.
manual_waypoint_decimal_longitude_spin_box)
self.settings = QtCore.QSettings()
self.logger = logging.getLogger("groundstation")
def run(self):
while self.run_thread_flag:
self.msleep(3)
def connect_signals_and_slots(self): def connect_signals_and_slots(self):
self. self.new_manual_waypoint_entry.connect(self.update_manual_entry)
# setting up signals to save for Navigation Table
# self.
self.navigation_label.cellClicked.connect(self._on_nav_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):
self.name_edit_label.readOnly(table % 2)
self.name_edit_label.setText(name)
self.latitude_label.setText(lat)
self.longitude_label.set(lng)
def _on_nav_clicked(self, row, col):
self.update_waypoint_entry.emit(
self.navigation_label.item(row, 0),
self.navigation_label.item(row, 1),
self.navigation_label.item(row, 2),
0
)
def _on_land_clicked(self, row, col):
self.update_waypoint_entry.emit(
self.landmark_label.item(row, 0),
self.landmark_label.item(row, 1),
self.landmark_label.item(row, 2),
1
)

View File

@@ -17,6 +17,7 @@ import Framework.VideoSystems.RoverVideoCoordinator as RoverVideoCoordinator
import Framework.MapSystems.RoverMapCoordinator as RoverMapCoordinator import Framework.MapSystems.RoverMapCoordinator as RoverMapCoordinator
import Framework.JoystickControlSystems.JoystickControlSender as JoystickControlSender import Framework.JoystickControlSystems.JoystickControlSender as JoystickControlSender
import Framework.NavigationSystems.SpeedAndHeadingIndication as SpeedAndHeading import Framework.NavigationSystems.SpeedAndHeadingIndication as SpeedAndHeading
import Framework.NavigationSystems.WaypointsCoordinator as WaypointsCoordinator
import Framework.ArmSystems.ArmIndication as ArmIndication import Framework.ArmSystems.ArmIndication as ArmIndication
import Framework.StatusSystems.StatusCore as StatusCore import Framework.StatusSystems.StatusCore as StatusCore
import Framework.SettingsSystems.UbiquitiRadioSettings as UbiquitiRadioSettings 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("Arm Indication", ArmIndication.ArmIndication(self.shared_objects))
self.__add_thread("Rover Status", StatusCore.SensorCore(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("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_and_slots_signal.emit()
self.__connect_signals_to_slots() self.__connect_signals_to_slots()