def _refill_tree(self, tree, create_tree=True): deep = 0 file_dsrc = self._root_path try: file_dsrc = os.path.basename(self._root_path) except Exception: pass self.setWindowTitle("Include Graph - %s" % file_dsrc) if not self._created_tree and create_tree: has_none_packages = False self.graphTreeView.model().clear() pkg, _ = package_name(os.path.dirname(self._root_path)) if pkg is None: has_none_packages = True itemstr = '%s [%s]' % (os.path.basename(self._root_path), pkg) inc_item = QStandardItem('%s' % itemstr) inc_item.setData(self.ITEM_TYPE_INC_FILE, self.ITEM_TYPE) inc_item.setData(self._root_path, self.DATA_FILE) inc_item.setData(-1, self.DATA_LINE) inc_item.setData(self._root_path, self.DATA_INC_FILE) inc_item.setData(deep, self.DATA_LEVEL) # add included arguments for root file launch_args = nm.nmd().launch.launch_args(self._root_path) if launch_args: arg_item = QStandardItem('arguments') arg_item.setData(self.ITEM_TYPE_INC_GROUP_ARG, self.ITEM_TYPE) for da_name, da_value in launch_args.items(): da_item = QStandardItem('<arg>%s: %s' % (da_name, da_value)) da_item.setData(self.ITEM_TYPE_INC_ARG, self.ITEM_TYPE) da_item.setData(self._root_path, self.DATA_FILE) da_item.setData(da_name, self.DATA_ARG_NAME) arg_item.appendRow(da_item) inc_item.appendRow(arg_item) self._append_items(inc_item, deep, tree) self.graphTreeView.model().appendRow(inc_item) # self.graphTreeView.expand(self.graphTreeView.model().indexFromItem(inc_item)) self._created_tree = True self.has_none_packages = has_none_packages items = self.graphTreeView.model().match(self.graphTreeView.model().index(0, 0), self.DATA_INC_FILE, self._current_path, 10, Qt.MatchRecursive) first = True self.graphTreeView.selectionModel().clear() for item in items: if first: self._current_deep = item.data(self.DATA_LEVEL) first = False self.graphTreeView.selectionModel().select(item, QItemSelectionModel.Select) self.graphTreeView.expandAll() # collapse argument nodes proxy = self.graphTreeView.model() for row in range(proxy.rowCount()): index = proxy.index(row, 0) item = proxy.itemFromIndex(index) self._collapse_args(item) self.finished_signal.emit()
def take_snapshot(self): # >>> Take the snapshot self.textedit.append('Taking snapshot ...') # Get the transform from `tool0` to `base_link` T = self.get_tf_transform(self.base_frame.text(), self.endeffector_frame.text()) bTe = np.zeros((4, 4)) q = [ T.transform.rotation.w, T.transform.rotation.x, T.transform.rotation.y, T.transform.rotation.z ] bTe = br.quaternion.to_transform(q) bTe[:3, 3] = np.array([ T.transform.translation.x, T.transform.translation.y, T.transform.translation.z ]) self.textedit.append('Lookup transform: from `{}` to `{}`.'.format( self.base_frame.text(), self.endeffector_frame.text())) self.node.get_logger().info(bcolors.OKGREEN + 'bTe:' + bcolors.ENDC + '\n{}'.format(bTe)) # Get the transform from `calib_board` to `camera_link` T = self.get_tf_transform(self.camera_frame.text(), self.object_frame.text()) cTo = np.zeros((4, 4)) q = [ T.transform.rotation.w, T.transform.rotation.x, T.transform.rotation.y, T.transform.rotation.z ] cTo = br.quaternion.to_transform(q) cTo[:3, 3] = np.array([ T.transform.translation.x, T.transform.translation.y, T.transform.translation.z ]) self.textedit.append('Lookup transform: from `{}` to `{}`.'.format( self.camera_frame.text(), self.object_frame.text())) self.node.get_logger().info(bcolors.OKGREEN + 'cTo:' + bcolors.ENDC + '\n{}'.format(cTo)) parent = QStandardItem('Snapshot {}'.format(len(self.Tsamples))) child_1 = QStandardItem('bTe:\n{}\n{}\n{}\n{}'.format( bTe[0, :], bTe[1, :], bTe[2, :], bTe[3, :])) child_2 = QStandardItem('cTo:\n{}\n{}\n{}\n{}'.format( cTo[0, :], cTo[1, :], cTo[2, :], cTo[3, :])) parent.appendRow(child_1) parent.appendRow(child_2) self.model.appendRow(parent) self.Tsamples.append((bTe, cTo)) self.le5.setText(str(len(self.Tsamples)))
class TestRqtRosGraph(unittest.TestCase): """ :author: Isaac Saito """ def setUp(self): unittest.TestCase.setUp(self) self._model = QStandardItemModel() node1 = QStandardItem('node1') self._node1_1 = QStandardItem('node1_1') self._node1_1_1 = QStandardItem('node1_1_1') node1_1_2 = QStandardItem('node1_1_2') node1_2 = QStandardItem('node1_2') node1.appendRow(self._node1_1) self._node1_1.appendRow(self._node1_1_1) self._node1_1.appendRow(node1_1_2) node1.appendRow(node1_2) self._model.appendRow(node1) #node_list = [node1, node1_1, self._node1_1_1, node1_1_2, node1_2] #self._model.appendRow(node_list) self._grn_node1_1_1 = '/node1/node1_1/node1_1_1' self._len_lower_grn_node1_1 = 2 def tearDown(self): unittest.TestCase.tearDown(self) del self._model def test_get_upper_grn(self): self.assertEqual(RqtRosGraph.get_upper_grn(self._node1_1_1.index(), ''), self._grn_node1_1_1) def test_get_lower_grn_dfs(self): self.assertEqual(len(RqtRosGraph.get_lower_grn_dfs( self._node1_1.index(), '')), self._len_lower_grn_node1_1) def test_get_full_grn(self): self.assertEqual(RqtRosGraph.get_full_grn(self._node1_1_1.index()), self._grn_node1_1_1)
class TestRqtRosGraph(unittest.TestCase): """ :author: Isaac Saito """ def setUp(self): unittest.TestCase.setUp(self) self._model = QStandardItemModel() node1 = QStandardItem('node1') self._node1_1 = QStandardItem('node1_1') self._node1_1_1 = QStandardItem('node1_1_1') node1_1_2 = QStandardItem('node1_1_2') node1_2 = QStandardItem('node1_2') node1.appendRow(self._node1_1) self._node1_1.appendRow(self._node1_1_1) self._node1_1.appendRow(node1_1_2) node1.appendRow(node1_2) self._model.appendRow(node1) # node_list = [node1, node1_1, self._node1_1_1, node1_1_2, node1_2] # self._model.appendRow(node_list) self._grn_node1_1_1 = '/node1/node1_1/node1_1_1' self._len_lower_grn_node1_1 = 2 def tearDown(self): unittest.TestCase.tearDown(self) del self._model def test_get_upper_grn(self): self.assertEqual( RqtRosGraph.get_upper_grn(self._node1_1_1.index(), ''), self._grn_node1_1_1) def test_get_lower_grn_dfs(self): self.assertEqual( len(RqtRosGraph.get_lower_grn_dfs(self._node1_1.index(), '')), self._len_lower_grn_node1_1) def test_get_full_grn(self): self.assertEqual(RqtRosGraph.get_full_grn(self._node1_1_1.index()), self._grn_node1_1_1)
def _on_ctrl_info(self, index): popup = self._popup_widget ctrl = self._controllers[index.row()] popup.ctrl_name.setText(ctrl.name) popup.ctrl_type.setText(ctrl.type) res_model = QStandardItemModel() model_root = QStandardItem('Claimed Resources') res_model.appendRow(model_root) for hw_res in ctrl.claimed_resources: hw_iface_item = QStandardItem(hw_res.hardware_interface) model_root.appendRow(hw_iface_item) for res in hw_res.resources: res_item = QStandardItem(res) hw_iface_item.appendRow(res_item) popup.resource_tree.setModel(res_model) popup.resource_tree.setItemDelegate(FontDelegate(popup.resource_tree)) popup.resource_tree.expandAll() popup.move(QCursor.pos()) popup.show()
def setUp(self): unittest.TestCase.setUp(self) self._model = QStandardItemModel() node1 = QStandardItem('node1') self._node1_1 = QStandardItem('node1_1') self._node1_1_1 = QStandardItem('node1_1_1') node1_1_2 = QStandardItem('node1_1_2') node1_2 = QStandardItem('node1_2') node1.appendRow(self._node1_1) self._node1_1.appendRow(self._node1_1_1) self._node1_1.appendRow(node1_1_2) node1.appendRow(node1_2) self._model.appendRow(node1) # node_list = [node1, node1_1, self._node1_1_1, node1_1_2, node1_2] # self._model.appendRow(node_list) self._grn_node1_1_1 = '/node1/node1_1/node1_1_1' self._len_lower_grn_node1_1 = 2
def _on_ctrl_info(self, index): popup = self._popup_widget ctrl = self._controllers[index.row()] popup.ctrl_name.setText(ctrl.name) popup.ctrl_type.setText(ctrl.type) res_model = QStandardItemModel() model_root = QStandardItem('Claimed Resources') res_model.appendRow(model_root) for hw_res in ctrl.claimed_resources: hw_iface_item = QStandardItem(hw_res.hardware_interface) model_root.appendRow(hw_iface_item) for res in hw_res.resources: res_item = QStandardItem(res) hw_iface_item.appendRow(res_item) popup.resource_tree.setModel(res_model) popup.resource_tree.setItemDelegate(FontDelegate(popup.resource_tree)) popup.resource_tree.expandAll() popup.move(QCursor.pos()) popup.show()
def _append_items(self, item, deep, items=[]): sub_items = [] inc_item = None for inc_file in items: if inc_file.rec_depth == deep: if inc_item is not None: if sub_items: self._append_items(inc_item, deep + 1, sub_items) sub_items = [] item.appendRow(inc_item) inc_item = None if inc_item is None: pkg, _ = package_name(os.path.dirname(inc_file.inc_path)) size_color = 'gray' if inc_file.size == 0 or inc_file.size > 1000000: size_color = 'orange' itemstr = '%s <span style="color:%s;"><em>%s</em></span> [%s]' % (os.path.basename(inc_file.inc_path), size_color, sizeof_fmt(inc_file.size), pkg) inc_item = QStandardItem('%d: %s' % (inc_file.line_number, itemstr)) inc_item.setData(self.ITEM_TYPE_INC_FILE, self.ITEM_TYPE) inc_item.setData(inc_file.path_or_str, self.DATA_FILE) inc_item.setData(inc_file.line_number, self.DATA_LINE) inc_item.setData(inc_file.inc_path, self.DATA_INC_FILE) inc_item.setData(inc_file.rec_depth + 1, self.DATA_LEVEL) inc_item.setData(inc_file.size, self.DATA_SIZE) inc_item.setData(inc_file.raw_inc_path, self.DATA_RAW) inc_item.setData(inc_file.args, self.DATA_ARGS) inc_item.setData(inc_file.unset_default_args, self.DATA_DEF_ARGS_NOT_SET) # add included arguments if inc_file.unset_default_args or inc_file.args: arg_item = QStandardItem('arguments') arg_item.setData(self.ITEM_TYPE_INC_GROUP_ARG, self.ITEM_TYPE) if inc_file.unset_default_args: self.has_warnings = True arg_item.setIcon(self._info_icon) for da_name, da_value in inc_file.unset_default_args.items(): da_item = QStandardItem('<arg_not_set>%s: %s' % (da_name, da_value)) da_item.setData(self.ITEM_TYPE_INC_ARG, self.ITEM_TYPE) da_item.setData(inc_file.path_or_str, self.DATA_FILE) da_item.setData(inc_file.inc_path, self.DATA_INC_FILE) da_item.setData(da_name, self.DATA_ARG_NAME) da_item.setToolTip("This argument is definded as default, but no set while include.") arg_item.appendRow(da_item) if inc_file.args: for da_name, da_value in inc_file.args.items(): da_item = QStandardItem('<arg>%s: %s' % (da_name, da_value)) da_item.setData(self.ITEM_TYPE_INC_ARG, self.ITEM_TYPE) da_item.setData(inc_file.path_or_str, self.DATA_FILE) da_item.setData(inc_file.inc_path, self.DATA_INC_FILE) da_item.setData(da_name, self.DATA_ARG_NAME) arg_item.appendRow(da_item) inc_item.appendRow(arg_item) elif inc_file.rec_depth > deep: sub_items.append(inc_file) if inc_item is not None: if sub_items: self._append_items(inc_item, deep + 1, sub_items) sub_items = [] item.appendRow(inc_item) inc_item = None
def setUp(self): unittest.TestCase.setUp(self) self._model = QStandardItemModel() node1 = QStandardItem('node1') self._node1_1 = QStandardItem('node1_1') self._node1_1_1 = QStandardItem('node1_1_1') node1_1_2 = QStandardItem('node1_1_2') node1_2 = QStandardItem('node1_2') node1.appendRow(self._node1_1) self._node1_1.appendRow(self._node1_1_1) self._node1_1.appendRow(node1_1_2) node1.appendRow(node1_2) self._model.appendRow(node1) #node_list = [node1, node1_1, self._node1_1_1, node1_1_2, node1_2] #self._model.appendRow(node_list) self._grn_node1_1_1 = '/node1/node1_1/node1_1_1' self._len_lower_grn_node1_1 = 2