Exemplo n.º 1
0
 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_()
Exemplo n.º 3
0
    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()