quickview.py
Go to the documentation of this file.
2 import python_qt_binding
3 from .utils.constants import _MICROSTRAIN_ROS_VERISON
4 from .utils.widgets import MicrostrainWidget
5 from .filter_data import FilterDataWidget
6 from .gq7_led import GQ7LEDWidget
7 from .sensor_data import SensorDataWidget
8 from .gnss_data import GNSSDataWidget
9 from .rtk_status import RTKStatusWidget
10 
12  def __init__(self, node, node_name_changed_callback):
13  # Initialize the parent class
14  super(DeviceSelectorWidget, self).__init__(node, 'DeviceSelector')
15 
16  # Set the node name in the line edit
17  self.node_name_line_edit.setText(self._node_name)
18 
19  # Connect the submit button to the passed callback
20  self._node_name_changed_callback = node_name_changed_callback
21  self.node_name_submit_button.clicked.connect(self._callback_wrapper)
22 
23  def run(self):
24  # Update the device data
25  self._update_device_data()
26 
28  self.node_connected_label.setText(self._device_report_monitor.connected_string)
29  self.model_name_label.setText(self._device_report_monitor.model_name_string)
30  self.model_number_label.setText(self._device_report_monitor.model_number_string)
31  self.serial_number_label.setText(self._device_report_monitor.serial_number_string)
32  self.options_label.setText(self._device_report_monitor.options_string)
33  self.firmware_version_label.setText(self._device_report_monitor.firmware_version_string)
34 
35  def _callback_wrapper(self):
36  self._node_name_changed_callback(self.node_name_line_edit.text())
37 
38 
40 
41  def __init__(self, context):
42  # Initialize the parent class
43  super(Quickview, self).__init__(context)
44 
45  # Save a copy of the node if we need to
46  if _MICROSTRAIN_ROS_VERISON == 2:
47  node = context.node
48  else:
49  node = None
50 
51  # Set some metadata
52  self.setObjectName('Quickview')
53 
54  # Initialize our widgets
55  device_selector_widget = DeviceSelectorWidget(node, self.change_node_name)
56  filter_data_widget = FilterDataWidget(node)
57  gq7_led_widget = GQ7LEDWidget(node)
58  sensor_data_widget = SensorDataWidget(node)
59  gnss_data_widget = GNSSDataWidget(node)
60  rtk_status_widget = RTKStatusWidget(node)
61 
62  # Organize the widgets in a grid layout, otherwise the UI will not be formatted properly
63  layout = python_qt_binding.QtWidgets.QGridLayout()
64  left_column_layout = python_qt_binding.QtWidgets.QGridLayout()
65  right_column_layout = python_qt_binding.QtWidgets.QGridLayout()
66  layout.addLayout(left_column_layout, 0, 0)
67  layout.addLayout(right_column_layout, 0, 1)
68 
69  left_column_layout.addWidget(device_selector_widget, 0, 0) # Left side
70  left_column_layout.addWidget(filter_data_widget, 1, 0)
71  right_column_layout.addWidget(gq7_led_widget, 0, 0) # Right side
72  right_column_layout.addWidget(sensor_data_widget, 1, 0)
73  right_column_layout.addWidget(gnss_data_widget, 2, 0)
74  right_column_layout.addWidget(rtk_status_widget, 3, 0)
75 
76  # Save the widgets so we can update them, and shut them down
77  self._widgets = [
78  device_selector_widget,
79  filter_data_widget,
80  gq7_led_widget,
81  sensor_data_widget,
82  gnss_data_widget,
83  rtk_status_widget
84  ]
85 
86  # The ROS wrapper only allows us to add widgets, so add a wrapper widget to the layout and pass that back to ROS
87  wrapper_widget = python_qt_binding.QtWidgets.QWidget()
88  wrapper_widget.setLayout(layout)
89  wrapper_widget.setObjectName('Quickview')
90  wrapper_widget.setWindowTitle('Quickview')
91 
92  context.add_widget(wrapper_widget)
93 
94  def shutdown_plugin(self):
95  # Stop the update loops
96  for widget in self._widgets:
97  widget.shutdown_timer()
98 
99  # call the parent function
100  return super(Quickview, self).shutdown_plugin()
101 
102  def change_node_name(self, node_name):
103  # Reconfigure all the widgets
104  for widget in self._widgets:
105  widget.reconfigure(node_name)
def __init__(self, node, node_name_changed_callback)
Definition: quickview.py:12


microstrain_inertial_rqt
Author(s): Parker Hannifin Corp
autogenerated on Wed Mar 22 2023 02:35:20