This commit is contained in:
Chris Pham
2018-03-15 11:29:56 -07:00
3 changed files with 1342 additions and 614 deletions

View File

@@ -17,8 +17,29 @@ MISC_TOPIC_NAME = "/rover_status/misc_status"
class SensorCore(QtCore.QThread): class SensorCore(QtCore.QThread):
# ########## create signals for slots ##########
jetson_cpu_update_ready__signal = QtCore.pyqtSignal(str) jetson_cpu_update_ready__signal = QtCore.pyqtSignal(str)
jetson_cpu_stylesheet_change_ready__signal = QtCore.pyqtSignal(str) jetson_cpu_stylesheet_change_ready__signal = QtCore.pyqtSignal(str)
jetson_emmc_update_ready__signal = QtCore.pyqtSignal(str)
jetson_emmc_stylesheet_change_ready__signal = QtCore.pyqtSignal(str)
jetson_gpu_temp_update_ready__signal = QtCore.pyqtSignal(str)
jetson_gpu_temp_stylesheet_change_ready__signal = QtCore.pyqtSignal(str)
jetson_ram_update_ready__signal = QtCore.pyqtSignal(str)
jetson_ram_stylesheet_change_ready__signal = QtCore.pyqtSignal(str)
bogie_connection_1_stylesheet_change_ready__signal = QtCore.pyqtSignal(str)
bogie_connection_2_stylesheet_change_ready__signal = QtCore.pyqtSignal(str)
bogie_connection_3_stylesheet_change_ready__signal = QtCore.pyqtSignal(str)
camera_zed_stylesheet_change_ready__signal = QtCore.pyqtSignal(str)
camera_under_stylesheet_change_ready__signal = QtCore.pyqtSignal(str)
camera_chassis_stylesheet_change_ready__signal = QtCore.pyqtSignal(str)
camera_main_stylesheet_change_ready__signal = QtCore.pyqtSignal(str)
gps_stylesheet_change_ready__signal = QtCore.pyqtSignal(str)
frsky_stylesheet_change_ready__signal = QtCore.pyqtSignal(str)
def __init__(self, shared_objects): def __init__(self, shared_objects):
super(SensorCore, self).__init__() super(SensorCore, self).__init__()
@@ -29,9 +50,10 @@ class SensorCore(QtCore.QThread):
self.shared_objects = shared_objects self.shared_objects = shared_objects
self.screen_main_window = self.shared_objects["screens"]["left_screen"] self.screen_main_window = self.shared_objects["screens"]["left_screen"]
self.cpu_read = self.screen_main_window.lineEdit # type: QtWidgets.QLabel # self.cpu_read = self.screen_main_window.lineEdit # type: QtWidgets.QLabel
self.ram_read = self.screen_main_window.lineEdit_2 # type: QtWidgets.QLabel # self.ram_read = self.screen_main_window.lineEdit_2 # type: QtWidgets.QLabel
# ########## set vars to gui elements
self.rover_conn = self.screen_main_window.rover # type: QtWidgets.QLabel self.rover_conn = self.screen_main_window.rover # type: QtWidgets.QLabel
self.frsky = self.screen_main_window.frsky # type: QtWidgets.QLabel self.frsky = self.screen_main_window.frsky # type: QtWidgets.QLabel
self.nav_mouse = self.screen_main_window.nav_mouse # type: QtWidgets.QLabel self.nav_mouse = self.screen_main_window.nav_mouse # type: QtWidgets.QLabel
@@ -47,8 +69,10 @@ class SensorCore(QtCore.QThread):
self.clock = self.screen_main_window.clock # type: QtWidgets.QLCDNumber self.clock = self.screen_main_window.clock # type: QtWidgets.QLCDNumber
self.cpu = self.screen_main_window.cpu # type: QtWidgets.QLabel self.cpu = self.screen_main_window.cpu # type: QtWidgets.QLabel
self.ram = self.screen_main_window.ram # type: QtWidgets.QLabel self.ram = self.screen_main_window.ram # type: QtWidgets.QLabel
self.gpu_temp = self.screen_main_window.gpu_temp # type: QtWidgets.QLabel
self.emmc = self.screen_main_window.emmc # type: QtWidgets.QLabel
# Subscription examples on pulling data from system_statuses_node.py # ########## subscriptions pulling data from system_statuses_node.py ##########
self.camera_status = rospy.Subscriber(CAMERA_TOPIC_NAME, CameraStatuses, self.__camera_callback) self.camera_status = rospy.Subscriber(CAMERA_TOPIC_NAME, CameraStatuses, self.__camera_callback)
self.bogie_status = rospy.Subscriber(BOGIE_TOPIC_NAME, BogieStatuses, self.__bogie_callback) self.bogie_status = rospy.Subscriber(BOGIE_TOPIC_NAME, BogieStatuses, self.__bogie_callback)
self.frsky_status = rospy.Subscriber(FRSKY_TOPIC_NAME, FrSkyStatus, self.__frsky_callback) self.frsky_status = rospy.Subscriber(FRSKY_TOPIC_NAME, FrSkyStatus, self.__frsky_callback)
@@ -72,32 +96,40 @@ class SensorCore(QtCore.QThread):
self.camera_msg.camera_main_navigation = data.camera_main_navigation self.camera_msg.camera_main_navigation = data.camera_main_navigation
if self.camera_msg.camera_zed is False: if self.camera_msg.camera_zed is False:
self.zed.setStyleSheet("background-color: red;") # self.zed.setStyleSheet("background-color: red;")
self.camera_zed_stylesheet_change_ready__signal.emit("background-color: darkred;")
else: else:
self.zed.setStyleSheet("background-color: darkgreen;") # self.zed.setStyleSheet("background-color: darkgreen;")
self.camera_zed_stylesheet_change_ready__signal.emit("background-color: darkgreen;")
if self.camera_msg.camera_undercarriage is False: if self.camera_msg.camera_undercarriage is False:
self.under_cam.setStyleSheet("background-color: red;") # self.under_cam.setStyleSheet("background-color: darkred;")
self.camera_under_stylesheet_change_ready__signal.emit("background-color: darkred;")
else: else:
self.under_cam.setStyleSheet("background-color: darkgreen;") # self.under_cam.setStyleSheet("background-color: darkgreen;")
self.camera_under_stylesheet_change_ready__signal.emit("background-color: darkgreen;")
if self.camera_msg.camera_chassis is False: if self.camera_msg.camera_chassis is False:
self.chassis_cam.setStyleSheet("background-color: red;") # self.chassis_cam.setStyleSheet("background-color: darkred;")
self.camera_chassis_stylesheet_change_ready__signal.emit("background-color: darkred;")
else: else:
self.chassis_cam.setStyleSheet("background-color: darkgreen;") # self.chassis_cam.setStyleSheet("background-color: darkgreen;")
self.camera_chassis_stylesheet_change_ready__signal.emit("background-color: darkgreen;")
if self.camera_msg.camera_main_navigation is False: if self.camera_msg.camera_main_navigation is False:
self.main_cam.setStyleSheet("background-color: red;") # self.main_cam.setStyleSheet("background-color: darkred;")
self.camera_main_stylesheet_change_ready__signal.emit("background-color: darkred;")
else: else:
self.main_cam.setStyleSheet("background-color: darkgreen;") # self.main_cam.setStyleSheet("background-color: darkgreen;")
self.camera_main_stylesheet_change_ready__signal.emit("background-color: darkgreen;")
def __frsky_callback(self, data): def __frsky_callback(self, data):
self.FrSky_msg.FrSky_controller_connection_status = data.FrSky_controller_connection_status self.FrSky_msg.FrSky_controller_connection_status = data.FrSky_controller_connection_status
if self.FrSky_msg.FrSky_controller_connection_status is False: if self.FrSky_msg.FrSky_controller_connection_status is False:
self.frsky.setStyleSheet("background-color: red;") self.frsky_stylesheet_change_ready__signal.emit("background-color: darkred;")
else: else:
self.frsky.setStyleSheet("background-color: darkgreen;") self.frsky_stylesheet_change_ready__signal.emit("background-color: darkgreen;")
def __bogie_callback(self, data): def __bogie_callback(self, data):
self.bogie_msg.bogie_connection_1 = data.bogie_connection_1 self.bogie_msg.bogie_connection_1 = data.bogie_connection_1
@@ -105,19 +137,25 @@ class SensorCore(QtCore.QThread):
self.bogie_msg.bogie_connection_3 = data.bogie_connection_3 self.bogie_msg.bogie_connection_3 = data.bogie_connection_3
if self.bogie_msg.bogie_connection_1 is False: if self.bogie_msg.bogie_connection_1 is False:
self.bogie_right.setStyleSheet("background-color: red;") # self.bogie_right.setStyleSheet("background-color: darkred;")
self.bogie_connection_1_stylesheet_change_ready__signal.emit("background-color: darkred;")
else: else:
self.bogie_right.setStyleSheet("background-color: darkgreen;") # self.bogie_right.setStyleSheet("background-color: darkgreen;")
self.bogie_connection_1_stylesheet_change_ready__signal.emit("background-color: darkgreen;")
if self.bogie_msg.bogie_connection_2 is False: if self.bogie_msg.bogie_connection_2 is False:
self.bogie_left.setStyleSheet("background-color: red;") # self.bogie_left.setStyleSheet("background-color: darkred;")
self.bogie_connection_2_stylesheet_change_ready__signal.emit("background-color: darkred;")
else: else:
self.bogie_left.setStyleSheet("background-color: darkgreen;") # self.bogie_left.setStyleSheet("background-color: darkgreen;")
self.bogie_connection_2_stylesheet_change_ready__signal.emit("background-color: darkgreen;")
if self.bogie_msg.bogie_connection_3 is False: if self.bogie_msg.bogie_connection_3 is False:
self.bogie_rear.setStyleSheet("background-color: red;") # self.bogie_rear.setStyleSheet("background-color: darkred;")
self.bogie_connection_3_stylesheet_change_ready__signal.emit("background-color: darkred;")
else: else:
self.bogie_rear.setStyleSheet("background-color: darkgreen;") # self.bogie_rear.setStyleSheet("background-color: darkgreen;")
self.bogie_connection_3_stylesheet_change_ready__signal.emit("background-color: darkgreen;")
def __jetson_callback(self, data): def __jetson_callback(self, data):
self.jetson_msg.jetson_CPU = data.jetson_CPU self.jetson_msg.jetson_CPU = data.jetson_CPU
@@ -128,35 +166,48 @@ class SensorCore(QtCore.QThread):
if self.jetson_msg.jetson_CPU > 79: if self.jetson_msg.jetson_CPU > 79:
self.jetson_cpu_stylesheet_change_ready__signal.emit("background-color: orange;") self.jetson_cpu_stylesheet_change_ready__signal.emit("background-color: orange;")
# self.cpu.setStyleSheet("background-color: orange;")
elif self.jetson_msg.jetson_CPU > 89: elif self.jetson_msg.jetson_CPU > 89:
self.jetson_cpu_stylesheet_change_ready__signal.emit("background-color: red;") self.jetson_cpu_stylesheet_change_ready__signal.emit("background-color: darkred;")
# self.cpu.setStyleSheet("background-color: red;")
else: else:
self.jetson_cpu_stylesheet_change_ready__signal.emit("background-color: darkgreen;") self.jetson_cpu_stylesheet_change_ready__signal.emit("background-color: darkgreen;")
# self.cpu.setStyleSheet("background-color: darkgreen;")
# self.jetson_msg.jetson_RAM = data.jetson_RAM self.jetson_ram_update_ready__signal.emit(str(self.jetson_msg.jetson_RAM))
# self.ram.setText(str(self.jetson_msg.jetson_RAM))
# if self.jetson_msg.jetson_RAM > 79: if self.jetson_msg.jetson_RAM > 79:
# self.ram.setStyleSheet("background-color: orange;") self.jetson_ram_stylesheet_change_ready__signal.emit("background-color: orange;")
# elif self.jetson_msg.jetson_RAM > 89: elif self.jetson_msg.jetson_RAM > 89:
# self.ram.setStyleSheet("background-color: red;") self.jetson_ram_stylesheet_change_ready__signal.emit("background-color: darkred;")
# else: else:
# self.ram.setStyleSheet("background-color: darkgreen;") self.jetson_ram_stylesheet_change_ready__signal.emit("background-color: darkgreen;")
#
# self.jetson_msg.jetson_EMMC = data.jetson_EMMC self.jetson_gpu_temp_update_ready__signal.emit(str(self.jetson_msg.jetson_GPU_temp))
# self.jetson_msg.jetson_NVME_SSD = data.jetson_NVME_SSD
#rospy.loginfo(self.jetson_msg) if self.jetson_msg.jetson_GPU_temp > 64:
self.jetson_gpu_temp_stylesheet_change_ready__signal.emit("background-color: orange;")
elif self.jetson_msg.jetson_GPU_temp > 79:
self.jetson_gpu_temp_stylesheet_change_ready__signal.emit("background-color: darkred;")
else:
self.jetson_gpu_temp_stylesheet_change_ready__signal.emit("background-color: darkgreen;")
self.jetson_emmc_update_ready__signal.emit(str(self.jetson_msg.jetson_EMMC))
if self.jetson_msg.jetson_EMMC > 79:
self.jetson_emmc_stylesheet_change_ready__signal.emit("background-color: orange;")
elif self.jetson_msg.jetson_EMMC > 89:
self.jetson_emmc_stylesheet_change_ready__signal.emit("background-color: darkred;")
else:
self.jetson_emmc_stylesheet_change_ready__signal.emit("background-color: darkgreen")
def __gps_callback(self, data): def __gps_callback(self, data):
self.GPS_msg.UTC_GPS_time = data.UTC_GPS_time self.GPS_msg.UTC_GPS_time = data.UTC_GPS_time
self.GPS_msg.GPS_connection_status = data.GPS_connection_status self.GPS_msg.GPS_connection_status = data.GPS_connection_status
if self.GPS_msg.GPS_connection_status is False: if self.GPS_msg.GPS_connection_status is False:
self.gps.setStyleSheet("background-color: red") # self.gps.setStyleSheet("background-color: darkred")
self.gps_stylesheet_change_ready__signal.emit("background-color: darkred;")
else: else:
self.gps.setStyleSheet("background-color: darkgreen;") # self.gps.setStyleSheet("background-color: darkgreen;")
self.gps_stylesheet_change_ready__signal.emit("background-color: darkgreen;")
def __misc_callback(self, data): def __misc_callback(self, data):
self.misc_msg.arm_connection_status = data.arm_connection_status self.misc_msg.arm_connection_status = data.arm_connection_status
@@ -177,6 +228,21 @@ class SensorCore(QtCore.QThread):
def connect_signals_and_slots(self): def connect_signals_and_slots(self):
self.jetson_cpu_update_ready__signal.connect(self.cpu.setText) self.jetson_cpu_update_ready__signal.connect(self.cpu.setText)
self.jetson_cpu_stylesheet_change_ready__signal.connect(self.cpu.setStyleSheet) self.jetson_cpu_stylesheet_change_ready__signal.connect(self.cpu.setStyleSheet)
self.jetson_ram_update_ready__signal.connect(self.ram.setText)
self.jetson_ram_stylesheet_change_ready__signal(self.ram.setStyleSheet)
self.jetson_emmc_update_ready__signal.connect(self.emmc.setText)
self.jetson_emmc_stylesheet_change_ready__signal.connect(self.emmc.setStyleSheet)
self.jetson_gpu_temp_update_ready__signal.connect(self.gpu_temp.setText)
self.jetson_gpu_temp_stylesheet_change_ready__signal(self.gpu_temp.setStyleSheet)
self.bogie_connection_1_stylesheet_change_ready__signal.connect(self.bogie_right.setStyleSheet)
self.bogie_connection_2_stylesheet_change_ready__signal.connect(self.bogie_left.setStyleSheet)
self.bogie_connection_3_stylesheet_change_ready__signal.connect(self.bogie_rear.setStyleSheet)
self.camera_zed_stylesheet_change_ready__signal.connect(self.zed.setStyleSheet)
self.camera_under_stylesheet_change_ready__signal.connect(self.under_cam.setStyleSheet)
self.camera_chassis_stylesheet_change_ready__signal.connect(self.chassis_cam.setStyleSheet)
self.camera_main_stylesheet_change_ready__signal.connect(self.main_cam.setStyleSheet)
self.gps_stylesheet_change_ready__signal.connect(self.gps.setStyleSheet)
self.frsky_stylesheet_change_ready__signal.connect(self.frsky.setStyleSheet)
def setup_signals(self, start_signal, signals_and_slots_signal, kill_signal): def setup_signals(self, start_signal, signals_and_slots_signal, kill_signal):
start_signal.connect(self.start) start_signal.connect(self.start)

View File

@@ -858,10 +858,21 @@
<number>0</number> <number>0</number>
</property> </property>
<item> <item>
<widget class="QLabel" name="label"> <layout class="QVBoxLayout" name="verticalLayout_9">
<item>
<layout class="QVBoxLayout" name="verticalLayout_10">
<property name="spacing">
<number>0</number>
</property>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<layout class="QVBoxLayout" name="verticalLayout_14">
<item>
<widget class="QLabel" name="label_5">
<property name="font"> <property name="font">
<font> <font>
<pointsize>22</pointsize> <pointsize>15</pointsize>
<weight>75</weight> <weight>75</weight>
<bold>true</bold> <bold>true</bold>
</font> </font>
@@ -875,7 +886,7 @@
</widget> </widget>
</item> </item>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_2"> <layout class="QHBoxLayout" name="horizontalLayout_8">
<property name="spacing"> <property name="spacing">
<number>0</number> <number>0</number>
</property> </property>
@@ -883,7 +894,7 @@
<widget class="QLabel" name="current_speed_label"> <widget class="QLabel" name="current_speed_label">
<property name="font"> <property name="font">
<font> <font>
<pointsize>22</pointsize> <pointsize>14</pointsize>
</font> </font>
</property> </property>
<property name="text"> <property name="text">
@@ -898,7 +909,7 @@
<widget class="QLabel" name="label_7"> <widget class="QLabel" name="label_7">
<property name="font"> <property name="font">
<font> <font>
<pointsize>22</pointsize> <pointsize>14</pointsize>
</font> </font>
</property> </property>
<property name="text"> <property name="text">
@@ -909,7 +920,7 @@
</layout> </layout>
</item> </item>
<item> <item>
<spacer name="verticalSpacer_3"> <spacer name="verticalSpacer_2">
<property name="orientation"> <property name="orientation">
<enum>Qt::Vertical</enum> <enum>Qt::Vertical</enum>
</property> </property>
@@ -921,11 +932,15 @@
</property> </property>
</spacer> </spacer>
</item> </item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_15">
<item> <item>
<widget class="QLabel" name="label_3"> <widget class="QLabel" name="label_3">
<property name="font"> <property name="font">
<font> <font>
<pointsize>22</pointsize> <pointsize>15</pointsize>
<weight>75</weight> <weight>75</weight>
<bold>true</bold> <bold>true</bold>
</font> </font>
@@ -964,7 +979,7 @@
</widget> </widget>
</item> </item>
<item> <item>
<spacer name="verticalSpacer_4"> <spacer name="verticalSpacer_3">
<property name="orientation"> <property name="orientation">
<enum>Qt::Vertical</enum> <enum>Qt::Vertical</enum>
</property> </property>
@@ -976,11 +991,15 @@
</property> </property>
</spacer> </spacer>
</item> </item>
</layout>
</item>
</layout>
</item>
<item> <item>
<widget class="QLabel" name="label_4"> <widget class="QLabel" name="label_6">
<property name="font"> <property name="font">
<font> <font>
<pointsize>22</pointsize> <pointsize>15</pointsize>
<weight>75</weight> <weight>75</weight>
<bold>true</bold> <bold>true</bold>
</font> </font>
@@ -995,11 +1014,14 @@
</item> </item>
<item> <item>
<layout class="QFormLayout" name="formLayout"> <layout class="QFormLayout" name="formLayout">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::ExpandingFieldsGrow</enum>
</property>
<property name="horizontalSpacing"> <property name="horizontalSpacing">
<number>6</number> <number>6</number>
</property> </property>
<item row="0" column="0"> <item row="0" column="0">
<widget class="QLabel" name="label_5"> <widget class="QLabel" name="label_13">
<property name="font"> <property name="font">
<font> <font>
<weight>75</weight> <weight>75</weight>
@@ -1031,7 +1053,7 @@
</widget> </widget>
</item> </item>
<item row="1" column="0"> <item row="1" column="0">
<widget class="QLabel" name="label_6"> <widget class="QLabel" name="label_14">
<property name="font"> <property name="font">
<font> <font>
<weight>75</weight> <weight>75</weight>
@@ -1064,8 +1086,10 @@
</item> </item>
</layout> </layout>
</item> </item>
</layout>
</item>
<item> <item>
<spacer name="verticalSpacer_2"> <spacer name="verticalSpacer_4">
<property name="orientation"> <property name="orientation">
<enum>Qt::Vertical</enum> <enum>Qt::Vertical</enum>
</property> </property>
@@ -1077,6 +1101,111 @@
</property> </property>
</spacer> </spacer>
</item> </item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_11">
<property name="spacing">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="label_4">
<property name="font">
<font>
<pointsize>15</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>IMU Data</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_6">
<property name="spacing">
<number>0</number>
</property>
<item>
<layout class="QVBoxLayout" name="verticalLayout_12">
<property name="spacing">
<number>0</number>
</property>
<item>
<widget class="QDial" name="dial_3">
<property name="minimum">
<number>-100</number>
</property>
<property name="maximum">
<number>100</number>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Pitch</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_13">
<property name="spacing">
<number>0</number>
</property>
<item>
<widget class="QDial" name="dial_4">
<property name="minimum">
<number>-100</number>
</property>
<property name="maximum">
<number>100</number>
</property>
<property name="invertedAppearance">
<bool>false</bool>
</property>
<property name="wrapping">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_15">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Roll</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</item>
</layout> </layout>
</widget> </widget>
</item> </item>