status_snapshot.py
Go to the documentation of this file.
1 # Software License Agreement (BSD License)
2 #
3 # Copyright (c) 2012, Willow Garage, Inc.
4 # All rights reserved.
5 #
6 # Redistribution and use in source and binary forms, with or without
7 # modification, are permitted provided that the following conditions
8 # are met:
9 #
10 # * Redistributions of source code must retain the above copyright
11 # notice, this list of conditions and the following disclaimer.
12 # * Redistributions in binary form must reproduce the above
13 # copyright notice, this list of conditions and the following
14 # disclaimer in the documentation and/or other materials provided
15 # with the distribution.
16 # * Neither the name of Willow Garage, Inc. nor the names of its
17 # contributors may be used to endorse or promote products derived
18 # from this software without specific prior written permission.
19 #
20 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
23 # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
24 # COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
25 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
26 # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
27 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
28 # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
30 # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31 # POSSIBILITY OF SUCH DAMAGE.
32 #
33 # Author: Isaac Saito, Ze'ev Klapow, Austin Hendrix
34 #
35 # TODO(ahendrix):
36 # better formatting of key-value pairs in a table
37 
38 from python_qt_binding.QtWidgets import QTextEdit
39 from python_qt_binding.QtCore import Signal
40 
41 from diagnostic_msgs.msg import DiagnosticStatus
42 from rqt_robot_monitor.util_robot_monitor import level_to_text
43 
44 class StatusSnapshot(QTextEdit):
45  """Display a single static status message. Helps facilitate copy/paste"""
46  write_status = Signal(DiagnosticStatus)
47 
48  def __init__(self, status=None, parent=None):
49  super(StatusSnapshot, self).__init__()
50 
51  self.write_status.connect(self._write_status)
52  if status is not None:
53  self.write_status.emit(status)
54 
55  self.resize(300, 400)
56  self.show()
57 
58  def _write_status(self, status):
59  self.clear()
60  self._write("Full Name", status.name)
61  self._write("Component", status.name.split('/')[-1])
62  self._write("Hardware ID", status.hardware_id)
63  self._write("Level", level_to_text(status.level))
64  self._write("Message", status.message)
65  self.insertPlainText('\n')
66 
67  for value in status.values:
68  self._write(value.key, value.value)
69 
70  def _write(self, k, v):
71  # TODO(ahendrix): write these as a table rather than as text
72  self.setFontWeight(75)
73  self.insertPlainText(str(k))
74  # TODO(ahendrix): de-dupe trailing ':' here
75  self.insertPlainText(': ')
76 
77  self.setFontWeight(50)
78  self.insertPlainText(str(v))
79  self.insertPlainText('\n')
def __init__(self, status=None, parent=None)


rqt_robot_monitor
Author(s): Austin Hendrix, Isaac Saito, Ze'ev Klapow, Kevin Watts, Josh Faust
autogenerated on Thu Jun 4 2020 03:46:53