status_snapshot.py
Go to the documentation of this file.
00001 # Software License Agreement (BSD License)
00002 #
00003 # Copyright (c) 2012, Willow Garage, Inc.
00004 # All rights reserved.
00005 #
00006 # Redistribution and use in source and binary forms, with or without
00007 # modification, are permitted provided that the following conditions
00008 # are met:
00009 #
00010 #  * Redistributions of source code must retain the above copyright
00011 #    notice, this list of conditions and the following disclaimer.
00012 #  * Redistributions in binary form must reproduce the above
00013 #    copyright notice, this list of conditions and the following
00014 #    disclaimer in the documentation and/or other materials provided
00015 #    with the distribution.
00016 #  * Neither the name of Willow Garage, Inc. nor the names of its
00017 #    contributors may be used to endorse or promote products derived
00018 #    from this software without specific prior written permission.
00019 #
00020 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
00021 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
00022 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
00023 # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
00024 # COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
00025 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
00026 # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
00027 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
00028 # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
00029 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
00030 # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00031 # POSSIBILITY OF SUCH DAMAGE.
00032 #
00033 # Author: Isaac Saito, Ze'ev Klapow, Austin Hendrix
00034 #
00035 # TODO(ahendrix):
00036 #   better formatting of key-value pairs in a table
00037 
00038 from python_qt_binding.QtWidgets import QTextEdit
00039 from python_qt_binding.QtCore import Signal
00040 
00041 from diagnostic_msgs.msg import DiagnosticStatus
00042 from rqt_robot_monitor.util_robot_monitor import level_to_text
00043 
00044 class StatusSnapshot(QTextEdit):
00045     """Display a single static status message. Helps facilitate copy/paste"""
00046     write_status = Signal(DiagnosticStatus)
00047 
00048     def __init__(self, status=None, parent=None):
00049         super(StatusSnapshot, self).__init__()
00050 
00051         self.write_status.connect(self._write_status)
00052         if status is not None:
00053             self.write_status.emit(status)
00054 
00055             self.resize(300, 400)
00056             self.show()
00057 
00058     def _write_status(self, status):
00059         self.clear()
00060         self._write("Full Name", status.name)
00061         self._write("Component", status.name.split('/')[-1])
00062         self._write("Hardware ID", status.hardware_id)
00063         self._write("Level", level_to_text(status.level))
00064         self._write("Message", status.message)
00065         self.insertPlainText('\n')
00066 
00067         for value in status.values:
00068             self._write(value.key, value.value)
00069 
00070     def _write(self, k, v):
00071         # TODO(ahendrix): write these as a table rather than as text
00072         self.setFontWeight(75)
00073         self.insertPlainText(str(k))
00074         # TODO(ahendrix): de-dupe trailing ':' here
00075         self.insertPlainText(': ')
00076 
00077         self.setFontWeight(50)
00078         self.insertPlainText(str(v))
00079         self.insertPlainText('\n')


rqt_robot_monitor
Author(s): Austin Hendrix, Isaac Saito, Ze'ev Klapow, Kevin Watts, Josh Faust
autogenerated on Tue Sep 26 2017 02:44:21