diff --git a/software/ros_packages/ground_station/src/Framework/StatusSystems/StatusCore.py b/software/ros_packages/ground_station/src/Framework/StatusSystems/StatusCore.py index 38e65ac..cf63db4 100644 --- a/software/ros_packages/ground_station/src/Framework/StatusSystems/StatusCore.py +++ b/software/ros_packages/ground_station/src/Framework/StatusSystems/StatusCore.py @@ -17,8 +17,29 @@ MISC_TOPIC_NAME = "/rover_status/misc_status" class SensorCore(QtCore.QThread): + # ########## create signals for slots ########## jetson_cpu_update_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): super(SensorCore, self).__init__() @@ -29,9 +50,10 @@ class SensorCore(QtCore.QThread): self.shared_objects = shared_objects self.screen_main_window = self.shared_objects["screens"]["left_screen"] - self.cpu_read = self.screen_main_window.lineEdit # type: QtWidgets.QLabel - self.ram_read = self.screen_main_window.lineEdit_2 # 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 + # ########## set vars to gui elements self.rover_conn = self.screen_main_window.rover # 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 @@ -47,8 +69,10 @@ class SensorCore(QtCore.QThread): self.clock = self.screen_main_window.clock # type: QtWidgets.QLCDNumber self.cpu = self.screen_main_window.cpu # 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.bogie_status = rospy.Subscriber(BOGIE_TOPIC_NAME, BogieStatuses, self.__bogie_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 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: - 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: - 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: - 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: - 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: - 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: - 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: - 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): self.FrSky_msg.FrSky_controller_connection_status = data.FrSky_controller_connection_status 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: - self.frsky.setStyleSheet("background-color: darkgreen;") + self.frsky_stylesheet_change_ready__signal.emit("background-color: darkgreen;") def __bogie_callback(self, data): 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 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: - 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: - 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: - 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: - 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: - 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): self.jetson_msg.jetson_CPU = data.jetson_CPU @@ -128,35 +166,48 @@ class SensorCore(QtCore.QThread): if self.jetson_msg.jetson_CPU > 79: self.jetson_cpu_stylesheet_change_ready__signal.emit("background-color: orange;") - # self.cpu.setStyleSheet("background-color: orange;") elif self.jetson_msg.jetson_CPU > 89: - self.jetson_cpu_stylesheet_change_ready__signal.emit("background-color: red;") - # self.cpu.setStyleSheet("background-color: red;") + self.jetson_cpu_stylesheet_change_ready__signal.emit("background-color: darkred;") else: 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.ram.setText(str(self.jetson_msg.jetson_RAM)) - # if self.jetson_msg.jetson_RAM > 79: - # self.ram.setStyleSheet("background-color: orange;") - # elif self.jetson_msg.jetson_RAM > 89: - # self.ram.setStyleSheet("background-color: red;") - # else: - # self.ram.setStyleSheet("background-color: darkgreen;") - # - # self.jetson_msg.jetson_EMMC = data.jetson_EMMC - # self.jetson_msg.jetson_NVME_SSD = data.jetson_NVME_SSD - #rospy.loginfo(self.jetson_msg) + self.jetson_ram_update_ready__signal.emit(str(self.jetson_msg.jetson_RAM)) + + if self.jetson_msg.jetson_RAM > 79: + self.jetson_ram_stylesheet_change_ready__signal.emit("background-color: orange;") + elif self.jetson_msg.jetson_RAM > 89: + self.jetson_ram_stylesheet_change_ready__signal.emit("background-color: darkred;") + else: + self.jetson_ram_stylesheet_change_ready__signal.emit("background-color: darkgreen;") + + self.jetson_gpu_temp_update_ready__signal.emit(str(self.jetson_msg.jetson_GPU_temp)) + + 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): self.GPS_msg.UTC_GPS_time = data.UTC_GPS_time self.GPS_msg.GPS_connection_status = data.GPS_connection_status 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: - 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): self.misc_msg.arm_connection_status = data.arm_connection_status @@ -177,6 +228,21 @@ class SensorCore(QtCore.QThread): def connect_signals_and_slots(self): self.jetson_cpu_update_ready__signal.connect(self.cpu.setText) 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): start_signal.connect(self.start) diff --git a/software/ros_packages/ground_station/src/Resources/Ui/left_screen.ui b/software/ros_packages/ground_station/src/Resources/Ui/left_screen.ui index 2fa285b..5fda95e 100644 --- a/software/ros_packages/ground_station/src/Resources/Ui/left_screen.ui +++ b/software/ros_packages/ground_station/src/Resources/Ui/left_screen.ui @@ -80,27 +80,114 @@ 0 - + - background-color: darkgreen; + background-color: darkred; - placeholder + <html><head/><body><p align="center"><span style=" font-weight:600;">EMMC</span></p></body></html> - + - background-color: darkgreen; + background-color: darkred; - placeholder + <html><head/><body><p align="center"><span style=" font-size:9pt; font-weight:600;">GPU Temp C</span></p></body></html> - - + + + + + 0 + 0 + + + + + 0 + 0 + + + + + 9999999 + 9999999 + + + + + 10 + 75 + true + + + + false + + + background-color:darkred; + + + Right Bogie +Connected + + + Qt::AlignCenter + + + + + + + + + + + 0 + 0 + + + + + 0 + 0 + + + + + 9999999 + 9999999 + + + + + 10 + 75 + true + + + + false + + + background-color:darkred; + + + GPS +Fix + + + Qt::AlignCenter + + + + + 0 @@ -127,13 +214,138 @@ - background-color:darkgreen; + background-color:darkred; QFrame::NoFrame - Left Bogie + ZED Connected + + + Qt::AlignCenter + + + + + + + + 0 + 0 + + + + + 0 + 0 + + + + + 9999999 + 9999999 + + + + + 10 + 75 + true + + + + background-color:darkred; + + + QFrame::NoFrame + + + Rear Bogie +Connected + + + Qt::AlignCenter + + + + + + + + 0 + 0 + + + + + 0 + 0 + + + + + 9999999 + 9999999 + + + + + 10 + 75 + true + + + + background-color:darkred; + + + QFrame::NoFrame + + + Main Nav Camera +Connected + + + Qt::AlignCenter + + + + + + + + 0 + 0 + + + + + 0 + 0 + + + + + 9999999 + 9999999 + + + + + 10 + 75 + true + + + + false + + + background-color:darkred; + + + 3D Nav Mouse Connected @@ -175,52 +387,10 @@ Connected - background-color:darkgreen; + background-color:darkred; FrSky -Connected - - - Qt::AlignCenter - - - - - - - - 0 - 0 - - - - - 0 - 0 - - - - - 9999999 - 9999999 - - - - - 10 - 75 - true - - - - false - - - background-color:darkgreen; - - - Right Bogie Connected @@ -256,7 +426,7 @@ Connected - background-color:darkgreen; + background-color:darkred; QFrame::NoFrame @@ -270,8 +440,11 @@ Connected - - + + + + + 0 @@ -298,13 +471,13 @@ Connected - background-color:darkgreen; + background-color:darkred; QFrame::NoFrame - Rear Bogie + Rover Connected @@ -312,91 +485,7 @@ Connected - - - - - 0 - 0 - - - - - 0 - 0 - - - - - 9999999 - 9999999 - - - - - 10 - 75 - true - - - - false - - - background-color:darkgreen; - - - 3D Nav Mouse -Connected - - - Qt::AlignCenter - - - - - - - - 0 - 0 - - - - - 0 - 0 - - - - - 9999999 - 9999999 - - - - - 10 - 75 - true - - - - background-color:darkgreen; - - - QFrame::NoFrame - - - Main Nav Camera -Connected - - - Qt::AlignCenter - - - - + @@ -430,7 +519,7 @@ Connected - background-color:darkgreen; + background-color:darkred; Chassis Camera @@ -441,7 +530,27 @@ Connected - + + + + background-color: darkred; + + + <html><head/><body><p align="center"><span style=" font-weight:600;">RAM</span></p></body></html> + + + + + + + background-color: darkred; + + + <html><head/><body><p align="center"><span style=" font-weight:600;">CPU %</span></p></body></html> + + + + @@ -475,7 +584,7 @@ Connected - background-color:darkgreen; + background-color:darkred; Undercarriage Camera @@ -486,115 +595,8 @@ Connected - - - - - - - background-color: darkgreen; - - - <html><head/><body><p align="center"><span style=" font-weight:600;">RAM</span></p></body></html> - - - - - - - background-color: darkgreen; - - - <html><head/><body><p align="center"><span style=" font-weight:600;">CPU %</span></p></body></html> - - - - - - - - 0 - 0 - - - - - 0 - 0 - - - - - 9999999 - 9999999 - - - - - 10 - 75 - true - - - - background-color:darkgreen; - - - QFrame::NoFrame - - - Rover -Connected - - - Qt::AlignCenter - - - - - - - - 0 - 0 - - - - - 0 - 0 - - - - - 9999999 - 9999999 - - - - - 10 - 75 - true - - - - false - - - background-color:darkgreen; - - - GPS -Fix - - - Qt::AlignCenter - - - - - + + 0 @@ -627,16 +629,14 @@ Fix QFrame::NoFrame - ZED Connected + Left Bogie +Connected Qt::AlignCenter - - - @@ -663,80 +663,305 @@ Fix - 0 + 1 - - - ROSBAG Recording - - - - - - Camera Recording - - - - - - - Start - - - - - - - Control Recording - - - - - - - Navigation Recording - - - - - - - Statuses Recording - - - - - - - Start - - - - - - - Start - - - - - - - Start - - - - - - Science Data + Science Readouts + + + + + + + + 12 + 75 + true + + + + Soil Probe + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + + + Soil Temperature: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + N/A + + + + + + + Soil PH: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + N/A + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + Read Soil Probe + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + Qt::Vertical + + + + + + + + + + 12 + 75 + true + + + + Dust Sensor + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + + + Small Dust Present: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + Large Dust Present: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + False + + + + + + + False + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + Settings + + + + + Ubiquiti Radio Channel + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + Map Selection + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + OSU Campus + + + + + + + + + + 1 + + + 11 + + + + + + + Apply + + + + + + @@ -798,14 +1023,20 @@ Fix - + 0 - + + 6 + + 0 + + 0 + @@ -816,12 +1047,63 @@ Fix - Manual Waypoint Entry + Manual Waypoint Entry/Editing - + + + + 75 + true + + + + Decimal Format + + + + + + + + + QAbstractSpinBox::NoButtons + + + 9 + + + -90.000000000000000 + + + 90.000000000000000 + + + 0.000001000000000 + + + + + + + QAbstractSpinBox::NoButtons + + + 9 + + + -180.000000000000000 + + + 180.000000000000000 + + + 0.000001000000000 + + + @@ -829,9 +1111,6 @@ Fix - - - @@ -839,38 +1118,266 @@ Fix - - + + + + Qt::Horizontal + + + + 40 + 20 + + + - - - Qt::Vertical - - - - 20 - 40 - - - - - - + - 18 75 true - ENABLE AUTONOMY + Degrees/Minute/Second Format + + + + + + Lattitude + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + " + + + 3 + + + + + + + Longitude + + + + + + + " + + + 3 + + + + + + + ° + + + -90 + + + 90 + + + + + + + ' + + + 60 + + + + + + + ° + + + -180 + + + 90 + + + + + + + ' + + + 60 + + + + + + + + + + + + + N + + + + + S + + + + + + + + + + + + + + W + + + + + E + + + + + + + + + + Qt::Horizontal + + + + + + + + 12 + 75 + true + + + + Autonomy + + + + + + + 6 + + + + + + 12 + + + + Status: + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 12 + + + + Control: + + + + + + + + 12 + 75 + true + + + + ENABLE + + + + + + + + 12 + + + + background-color:darkred; + + + DISABLED + + + Qt::AlignCenter + + + + + @@ -951,7 +1458,7 @@ QTableView QTableCornerButton::section{ false - false + true false @@ -983,45 +1490,60 @@ QTableView QTableCornerButton::section{ - LAT + # - LON + Lat - DIST + Lon + + + + + Dist - 32.1665 + 1 - -112.1115 + 32.1665 + + -112.1115 + + + 2.4 KM - 33.1124 + 2 - -111.4334 + 33.1124 + + -111.4334 + + + 5.7 KM @@ -1163,6 +1685,9 @@ GPS + + 0 + @@ -1213,11 +1738,14 @@ QTableView QTableCornerButton::section{ QAbstractItemView::SelectRows + + false + false - false + true false @@ -1249,45 +1777,50 @@ QTableView QTableCornerButton::section{ - LAT + Name - LON + Lat - DIST + Lon - + + + Dist + + + 32.1665 - + -112.1115 - + 2.4 KM - + 33.1124 - + -111.4334 - + 5.7 KM diff --git a/software/ros_packages/ground_station/src/Resources/Ui/right_screen.ui b/software/ros_packages/ground_station/src/Resources/Ui/right_screen.ui index ed7d282..2660aec 100644 --- a/software/ros_packages/ground_station/src/Resources/Ui/right_screen.ui +++ b/software/ros_packages/ground_station/src/Resources/Ui/right_screen.ui @@ -858,225 +858,354 @@ 0 - - - - 22 - 75 - true - - - - Current Speed - - - Qt::AlignCenter - - - - - - - 0 - + - - - - 22 - + + + 0 - - 0.0 - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - + + + + + + + + + 15 + 75 + true + + + + Current Speed + + + Qt::AlignCenter + + + + + + + 0 + + + + + + 14 + + + + 0.0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 14 + + + + m/s + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + + 15 + 75 + true + + + + Speed Limit + + + Qt::AlignCenter + + + + + + + 100 + + + 50 + + + Qt::AlignCenter + + + true + + + Qt::Horizontal + + + false + + + QProgressBar::TopToBottom + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + + 15 + 75 + true + + + + Tank Drive Output + + + Qt::AlignCenter + + + + + + + QFormLayout::ExpandingFieldsGrow + + + 6 + + + + + + 75 + true + + + + Left + + + + + + + background-color:darkred; + + + 0 + + + 100 + + + 0 + + + true + + + + + + + + 75 + true + + + + Right + + + + + + + background-color:darkred; + + + 0 + + + 100 + + + 0 + + + true + + + + + + - - - - 22 - + + + Qt::Vertical - - m/s + + + 20 + 40 + - + + + + + + 0 + + + + + + 15 + 75 + true + + + + IMU Data + + + Qt::AlignCenter + + + + + + + 0 + + + + + 0 + + + + + -100 + + + 100 + + + + + + + + 75 + true + + + + Pitch + + + Qt::AlignCenter + + + + + + + + + 0 + + + + + -100 + + + 100 + + + false + + + true + + + + + + + + 75 + true + + + + Roll + + + Qt::AlignCenter + + + + + + + + - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - 22 - 75 - true - - - - Speed Limit - - - Qt::AlignCenter - - - - - - - 100 - - - 50 - - - Qt::AlignCenter - - - true - - - Qt::Horizontal - - - false - - - QProgressBar::TopToBottom - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - 22 - 75 - true - - - - Tank Drive Output - - - Qt::AlignCenter - - - - - - - 6 - - - - - - 75 - true - - - - Left - - - - - - - background-color:darkred; - - - 0 - - - 100 - - - 0 - - - true - - - - - - - - 75 - true - - - - Right - - - - - - - background-color:darkred; - - - 0 - - - 100 - - - 0 - - - true - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - -