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)
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)
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)
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()
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
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()
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)
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()
def remove(self, group, key): locker = QMutexLocker(self._mutex) # noqa: F841 self._qsettings.beginGroup(group) self._qsettings.remove(key) self._qsettings.endGroup()
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)
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
def set_value(self, group, key, value): locker = QMutexLocker(self._mutex) # @UnusedVariable self._qsettings.beginGroup(group) self._qsettings.setValue(key, value) self._qsettings.endGroup()
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
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
def child_keys(self, group): locker = QMutexLocker(self._mutex) # @UnusedVariable self._qsettings.beginGroup(group) keys = self._qsettings.childKeys() self._qsettings.endGroup() return keys
def child_keys(self, group): locker = QMutexLocker(self._mutex) # noqa: F841 self._qsettings.beginGroup(group) keys = self._qsettings.childKeys() self._qsettings.endGroup() return keys
def _update_model(self): with QMutexLocker(self._mutex): updates = self._update_queue self._update_queue = [] for update in updates: self._widget.update_vehicle(*update)
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
def _message_cb(self, msg): if not self._datamodel._paused: with QMutexLocker(self._mutex): self._datamodel._insert_message_queue.append(msg)
def remove(self, group, key): locker = QMutexLocker(self._mutex) # @UnusedVariable self._qsettings.beginGroup(group) self._qsettings.remove(key) self._qsettings.endGroup()