Example #1
0
 def message_callback(self, msg):
     """
     Callback for adding an incomming message to the queue
     """
     if not self._datamodel._paused:
         with QMutexLocker(self._mutex):
             self._datamodel._insert_message_queue.append(msg)
Example #2
0
 def queue_message(self, log_msg):
     """
     Callback for adding an incomming message to the queue.
     """
     if not self._widget._paused:
         msg = Console.convert_rosgraph_log_message(log_msg)
         with QMutexLocker(self._mutex):
             self._message_queue.append(msg)
Example #3
0
 def insert_messages(self):
     """
     Callback for flushing incoming Log messages from the queue to the model.
     """
     with QMutexLocker(self._mutex):
         msgs = self._message_queue
         self._message_queue = []
     if msgs:
         self._model.insert_rows(msgs)
Example #4
0
 def insert_messages(self):
     """
     Callback for flushing incoming Log messages from the queue to the datamodel
     """
     with QMutexLocker(self._mutex):
         msgs = self._datamodel._insert_message_queue
         self._datamodel._insert_message_queue = []
     self._datamodel.insert_rows(msgs)
     self._mainwindow.update_status()
Example #5
0
 def _monitor_close(self):
     if self._monitor_shown:
         with QMutexLocker(self._close_mutex):
             if self._plugin_settings:
                 self._monitor.save_settings(self._plugin_settings,
                                             self._instance_settings)
             self._monitor.shutdown()
             self._monitor.close()
             self._graveyard.append(self._monitor)
             self._monitor = None
Example #6
0
 def _show_cam_view(self):
     with QMutexLocker(self._show_mutex):
         try:
             if self._cam_view_shown:
                 self.context.remove_widget(self._cam_view)
                 self._cam_view_shown = not self._cam_view_shown
             else:
                 self.context.add_widget(self._cam_view)
                 self._cam_view_shown = not self._cam_view_shown
         except Exception:
             self._cam_view_shown = not self._cam_view_shown
             self._show_cam_view()
    def _insert_messages(self):
        with QMutexLocker(self._mutex):
            msgs = self._message_queue
            self._message_queue = []
        if msgs:
            self._datamodel.insert_rows(msgs)

        # The console may not yet be initialized or may have been closed
        # So fail silently
        try:
            self.update_rosout()
        except:
            pass
 def _show_navview(self):
     with QMutexLocker(self._show_mutex):
         if self._navview is None:
             self._navview = NavViewWidget()
         try:
             if self._navview_shown:
                 self.context.remove_widget(self._navview)
                 self._navview_shown = not self._navview_shown
             else:
                 self.context.add_widget(self._navview)
                 self._navview_shown = not self._navview_shown
         except Exception:
             self._navview_shown = not self._navview_shown
             self._show_navview()
Example #9
0
    def _message_callback(self, color, msg):
        # MAVLink_altitude_message
        # MAVLink_attitude_message
        # MAVLink_attitude_quaternion_message
        # MAVLink_attitude_target_message
        # MAVLink_battery_status_message
        # MAVLink_extended_sys_state_message
        # MAVLink_global_position_int_message
        # MAVLink_gps_raw_int_message
        # MAVLink_heartbeat_message
        # MAVLink_highres_imu_message
        # MAVLink_home_position_message
        # MAVLink_local_position_ned_message
        # MAVLink_nav_controller_output_message
        # MAVLink_sys_status_message
        # MAVLink_vfr_hud_message
        # MAVLink_vibration_message
        # MAVLink_wind_cov_message
        msg_type_name = type(msg).__name__
        if msg_type_name not in self._received_msg_types:
            # print(msg_type_name)
            self._received_msg_types.append(msg_type_name)

        if isinstance(msg, MAVLink_param_value_message):
            if msg.param_id == 'MAV_TYPE':
                src_system = msg.get_srcSystem()
                mav_type = self._float_to_int(msg.param_value)
                print('vehicle #%d is of type %s' % (src_system, mav_type))
                self._vehicle_types[src_system] = mav_type

        if isinstance(msg, MAVLink_global_position_int_message):
            src_system = msg.get_srcSystem()
            if src_system not in self._vehicle_types:
                self._vehicle_types[src_system] = None
                self._request_vehicle_type(color, src_system)
                return
            if self._vehicle_types[src_system]:
                update = (color, src_system, self._vehicle_types[src_system], {
                    'lat': 1.0 * msg.lat / 10000000,
                    'lon': 1.0 * msg.lon / 10000000,
                })
                with QMutexLocker(self._mutex):
                    self._update_queue.append(update)
Example #10
0
 def _show_monitor(self):
     with QMutexLocker(self._show_mutex):
         try:
             if self._monitor_shown:
                 self.context.remove_widget(self._monitor)
                 self._monitor_close()
                 self._monitor_shown = False
             else:
                 self._monitor = RobotMonitorWidget(self.context,
                                                    '/diagnostics_agg')
                 if self._plugin_settings:
                     self._monitor.restore_settings(self._plugin_settings,
                                                    self._instance_settings)
                 self.context.add_widget(self._monitor)
                 self._monitor_shown = True
         except Exception:
             if self._monitor_shown == False:
                 raise
             #TODO: when closeEvents is available fix this hack
             # (It ensures the button will toggle correctly)
             self._monitor_shown = False
             self._show_monitor()
Example #11
0
 def remove(self, group, key):
     locker = QMutexLocker(self._mutex)  # noqa: F841
     self._qsettings.beginGroup(group)
     self._qsettings.remove(key)
     self._qsettings.endGroup()
Example #12
0
 def set_value(self, group, key, value):
     locker = QMutexLocker(self._mutex)  # noqa: F841
     self._qsettings.beginGroup(group)
     self._qsettings.setValue(key, value)
     self._qsettings.endGroup()
 def _message_cb(self, log_msg):
     if not self._console._paused:
         msg = Console.convert_rosgraph_log_message(log_msg)
         with QMutexLocker(self._mutex):
             self._message_queue.append(msg)
Example #14
0
 def value(self, group, key, default_value=None):
     locker = QMutexLocker(self._mutex)  # @UnusedVariable
     self._qsettings.beginGroup(group)
     v = self._qsettings.value(key, default_value)
     self._qsettings.endGroup()
     return v
Example #15
0
 def set_value(self, group, key, value):
     locker = QMutexLocker(self._mutex)  # @UnusedVariable
     self._qsettings.beginGroup(group)
     self._qsettings.setValue(key, value)
     self._qsettings.endGroup()
Example #16
0
 def value(self, group, key, default_value=None):
     locker = QMutexLocker(self._mutex)  # noqa: F841
     self._qsettings.beginGroup(group)
     v = self._qsettings.value(key, default_value)
     self._qsettings.endGroup()
     return v
Example #17
0
 def contains(self, group, key):
     locker = QMutexLocker(self._mutex)  # @UnusedVariable
     self._qsettings.beginGroup(group)
     key_exists = self._qsettings.contains(key)
     self._qsettings.endGroup()
     return key_exists
Example #18
0
 def child_keys(self, group):
     locker = QMutexLocker(self._mutex)  # @UnusedVariable
     self._qsettings.beginGroup(group)
     keys = self._qsettings.childKeys()
     self._qsettings.endGroup()
     return keys
Example #19
0
 def child_keys(self, group):
     locker = QMutexLocker(self._mutex)  # noqa: F841
     self._qsettings.beginGroup(group)
     keys = self._qsettings.childKeys()
     self._qsettings.endGroup()
     return keys
Example #20
0
 def _update_model(self):
     with QMutexLocker(self._mutex):
         updates = self._update_queue
         self._update_queue = []
     for update in updates:
         self._widget.update_vehicle(*update)
Example #21
0
 def contains(self, group, key):
     locker = QMutexLocker(self._mutex)  # noqa: F841
     self._qsettings.beginGroup(group)
     key_exists = self._qsettings.contains(key)
     self._qsettings.endGroup()
     return key_exists
Example #22
0
 def _message_cb(self, msg):
     if not self._datamodel._paused:
         with QMutexLocker(self._mutex):
             self._datamodel._insert_message_queue.append(msg)
Example #23
0
 def remove(self, group, key):
     locker = QMutexLocker(self._mutex)  # @UnusedVariable
     self._qsettings.beginGroup(group)
     self._qsettings.remove(key)
     self._qsettings.endGroup()