def _update_thread_run(self): # update type_combo_box message_type_names = [] try: # this only works on fuerte and up packages = sorted([ pkg_tuple[0] for pkg_tuple in rosmsg.iterate_packages( self._rospack, rosmsg.MODE_MSG) ]) except: # this works up to electric packages = sorted(rosmsg.list_packages()) for package in packages: for base_type_str in rosmsg.list_msgs(package, rospack=self._rospack): message_class = roslib.message.get_message_class(base_type_str) if message_class is not None: message_type_names.append(base_type_str) # TODO: get all ROS packages and launch files here instead #self.type_combo_box.setItems.emit(sorted(message_type_names)) packages = sorted([ pkg_tuple[0] for pkg_tuple in RqtRoscommUtil.iterate_packages('launch') ]) self.package_combo_box.setItems.emit(packages)
def _refresh_packages(self, mode=message_helpers.MSG_MODE): packages = sorted([ pkg_tuple[0] for pkg_tuple in RqtRoscommUtil.iterate_packages(self._mode) ]) self._package_list = packages self._logger.debug('pkgs={}'.format(self._package_list)) self._package_combo.clear() self._package_combo.addItems(self._package_list) self._package_combo.setCurrentIndex(0)
def _update_pkgs_contain_launchfiles(self): ''' Inspired by rqt_msg.MessageWidget._update_pkgs_contain_launchfiles ''' packages = sorted([pkg_tuple[0] for pkg_tuple in RqtRoscommUtil.iterate_packages('launch')]) self._package_list = packages rospy.logdebug('pkgs={}'.format(self._package_list)) self._combobox_pkg.clear() self._combobox_pkg.addItems(self._package_list) self._combobox_pkg.setCurrentIndex(0)
def test_iterate_packages(self): """ Not a very good test because the right answer that is hardcoded varies depending on the system where this unittest runs. """ pkg_num_sum = 0 for pkg in RqtRoscommUtil.iterate_packages('launch'): pkg_num_sum += 1 print('pkg={}'.format(pkg)) print(pkg_num_sum) self.assertEqual(pkg_num_sum, self._totalnum_pkg_contains_launch)
def _update_pkgs_contain_launchfiles(self): """ Inspired by rqt_msg.MessageWidget._update_pkgs_contain_launchfiles """ self._package_update = True packages = sorted( [ pkg_tuple[0] for pkg_tuple in RqtRoscommUtil.iterate_packages('launch') ] ) self._package_list = packages rospy.logdebug('pkgs={}'.format(self._package_list)) previous_package = self._settings.value('package', '') self._combobox_pkg.clear() self._combobox_pkg.addItems(self._package_list) if previous_package in self._package_list: index = self._package_list.index(previous_package) else: index = 0 self._package_update = False self._combobox_pkg.setCurrentIndex(index)