def invalid_command(self, informative): msg = QtGui.QMessageBox() msg.setIcon(QtGui.QMessageBox.Warning) msg.setText("Invalid command") msg.setInformativeText(informative) msg.setWindowTitle("Command error") #msg.setDetailedText("The details are as follows:") msg.setStandardButtons(QtGui.QMessageBox.Ok) #msg.buttonClicked.connect(msgbtn) retval = msg.exec_()
def on_pushButton_analyz_multiple_clicked(self): # read robot list robot_list = [ x.replace(' ', '').encode("ascii") for x in self._lineEdit_robots.text().strip(',').split(',') ] # read robot sensor topic list self.robot_sensor_topic_list = [ x.replace(' ', '').encode("ascii") for x in self._lineEdit_robot_sensor_topics.text().strip(',').split(',') ] if len(robot_list) > 1: # analyze analysis_multirobot_logger.log( 4, 'self.output_published_topics["include_props"]:{0}'.format( self.output_published_topics['include_props'])) analysis_multirobot_logger.log( 4, 'self.output_prop_topic_filtered_list:{0}'.format( self.output_prop_topic_filtered_list)) analysis_multirobot_logger.log( 4, 'self.final_filtered_list:{0}'.format( self.final_filtered_list)) analysis_multirobot_logger.log( 4, 'self.robot_sensor_topic_list:{0}'.format( self.robot_sensor_topic_list)) analysis_multirobot_logger.log(4, 'robot_list:{0}'.format(robot_list)) props_to_left_behind_robots, topic_to_left_behind_robots = \ check_resource_usage.check_left_behind_robot_per_prop(self.output_published_topics['include_props'], \ robot_list, self.output_prop_topic_filtered_list+self.final_filtered_list+self.robot_sensor_topic_list) analysis_multirobot_logger.log( 8, 'topic_to_left_behind_robots:{0}'.format( topic_to_left_behind_robots)) analysis_multirobot_logger.log( 8, 'props_to_left_behind_robots:{0}'.format( props_to_left_behind_robots)) # populate tables self.populate_topic_to_left_behind_robots( topic_to_left_behind_robots, robot_list) self.populate_prop_to_left_behind_robots( props_to_left_behind_robots, robot_list) else: msg = QtGui.QMessageBox() msg.setIcon(QtGui.QMessageBox.Warning) msg.setText("Please list at least two robots here.") msg.setWindowTitle("Warning!") msg.exec_()
def _update_state(self, msg): self.totalBar.setValue(100 * msg.total_voltage / msg.max_total_voltage) self.totalBar.setFormat(str(msg.total_voltage) + ' V') if not self.inited: cellContainer = QtGui.QWidget() cellLayout = QtGui.QFormLayout() cellContainer.setLayout(cellLayout) i = 0 self.cellBars = list() for cell in msg.cells: voltBar = QtGui.QProgressBar() voltBar.setGeometry(0, 0, 150, 25) voltBar.setValue(75) voltBar.setFormat('Cell ' + str(cell.cell_id)) cellLayout.addRow(cell.frame_id, voltBar) self.cellBars.append(voltBar) i += 1 self.vbox.addWidget(cellContainer) self.alert = QtGui.QMessageBox(QtGui.QMessageBox.Information, 'Battery Voltage', 'The current battery voltage is: ' + str(msg.total_voltage) + ' V', flags=Qt.Dialog | Qt.MSWindowsFixedSizeDialogHint | Qt.WindowStaysOnTopHint) self.alert.show() self.inited = True i = 0 for cell in msg.cells: self.cellBars[i].setValue(100 * cell.voltage / msg.max_cell_voltage) self.cellBars[i].setFormat(str(cell.voltage) + ' V') i += 1 if msg.total_voltage < msg.critical_total_voltage: if (rospy.get_rostime() - self.last_voltage_critical ) > rospy.Duration(VOLTAGE_CRITICAL_INTERVAL): self.alert = QtGui.QMessageBox( QtGui.QMessageBox.Warning, 'Battery Voltage Critical!!!', 'The current battery voltage is: ' + str(msg.total_voltage) + ' V. You should shutdown now!!!', flags=Qt.Dialog | Qt.MSWindowsFixedSizeDialogHint | Qt.WindowStaysOnTopHint) self.alert.show() self.last_voltage_critical = rospy.get_rostime() elif msg.total_voltage < msg.warn_total_voltage: if (rospy.get_rostime() - self.last_voltage_warning ) > rospy.Duration(VOLTAGE_WARNING_INTERVAL): self.alert = QtGui.QMessageBox( QtGui.QMessageBox.Warning, 'Battery Voltage Low', 'The current battery voltage is: ' + str(msg.total_voltage) + ' V. You should plug in soon', flags=Qt.Dialog | Qt.MSWindowsFixedSizeDialogHint | Qt.WindowStaysOnTopHint) self.alert.show() self.last_voltage_warning = rospy.get_rostime()