def load_from_file(): global current_name file_name, _ = QFileDialog.getOpenFileName( main_window, main_window.tr('Load program from file'), None, main_window.tr('Puppet Talk (*.pt)')) if file_name is None or file_name == '': return print 'load_from_file', file_name handle = open(file_name, 'rb') storage = SimpleFormat(handle) count = storage.deserialize_data() tabs = main_window.PoseList_tabWidget.count() for index in range(tabs): model = models[index] if index < count: model.action_sequence().deserialize(storage) model.reset() else: model.remove_all_actions() handle.close() current_name = os.path.splitext(os.path.basename(file_name))[0] update_sequence_duration()
def load_from_file(): global current_name file_name, _ = QFileDialog.getOpenFileName( main_window, main_window.tr("Load program from file"), None, main_window.tr("Puppet Talk (*.pt)") ) if file_name is None or file_name == "": return print "load_from_file", file_name handle = open(file_name, "rb") storage = SimpleFormat(handle) count = storage.deserialize_data() tabs = main_window.PoseList_tabWidget.count() for index in range(tabs): model = models[index] if index < count: model.action_sequence().deserialize(storage) model.reset() else: model.remove_all_actions() handle.close() current_name = os.path.splitext(os.path.basename(file_name))[0] update_sequence_duration()
def _handle_start_following(self): #make sure server is available before sending goal QApplication.setOverrideCursor(QCursor(Qt.WaitCursor)) if (not self._client.wait_for_server(rospy.Duration.from_sec(10))): QApplication.restoreOverrideCursor() msg_box = QMessageBox() msg_box.setText("Timeout while looking for path following control server.") msg_box.exec_() return QApplication.restoreOverrideCursor() #get path file to load filename = QFileDialog.getOpenFileName(self, self.tr('Load Path from File'), '.', self.tr('Path File {.txt} (*.txt)')) if filename[0] != '': try: handle = open(filename[0]) except IOError as e: qWarning(str(e)) return # load path from file path_reader=csv.reader(open(filename[0],'rb'),delimiter=';') # parse path file and convert to numbers temp = [row[0].split() for row in path_reader] lines= [[float(num) for num in row] for row in temp] # first line of file is radius radius = lines[0] # remove radius del(lines[0]) now = rospy.Time.now() goal = auxos_messages.msg.PlanThenFollowDubinsPathGoal() goal.path.header.stamp = now goal.path.header.frame_id = self.path_frame_id # TODO: fix this!!! for line in lines: pose_msg = PoseStamped() pose_msg.header.stamp = now pose_msg.header.frame_id = goal.path.header.frame_id pose_msg.pose.position.x = line[0] pose_msg.pose.position.y = line[1] quat = qfe(0, 0, psi2theta(line[2])) pose_msg.pose.orientation.x = quat[0] pose_msg.pose.orientation.y = quat[1] pose_msg.pose.orientation.z = quat[2] pose_msg.pose.orientation.w = quat[3] goal.path.poses.append(pose_msg) self._client.send_goal(goal, self._handle_path_complete, self._handle_active, self._handle_feedback) print("start following")
def getOpenFiles(parent, labeltext, path, filefilter = None, multiple = True): kwargs = {'options': QFileDialog.ReadOnly, 'caption': labeltext, 'dir': path, # why does pyside have different kwarg keys? 'filter': makeFilter(filefilter)} if multiple: res = QFileDialog.getOpenFileNames(parent, **kwargs) if isList(res) and isList(res[0]): res = res[0] elif not isList(res): res = list(res) return res else: return [QFileDialog.getOpenFileName(parent, **kwargs)]
def _load_dot(self, file_name=None): if file_name is None: file_name, _ = QFileDialog.getOpenFileName(self._widget, self.tr('Open graph from file'), None, self.tr('DOT graph (*.dot)')) if file_name is None or file_name == '': return try: fh = open(file_name, 'rb') dotcode = fh.read() fh.close() except IOError: return # disable controls customizing fetched ROS graph self._widget.graph_type_combo_box.setEnabled(False) self._widget.filter_line_edit.setEnabled(False) self._widget.quiet_check_box.setEnabled(False) self._update_graph_view(dotcode)
def _load_dot(self, file_name=None): if file_name is None: file_name, _ = QFileDialog.getOpenFileName( self._widget, self.tr('Open graph from file'), None, self.tr('DOT graph (*.dot)')) if file_name is None or file_name == '': return try: fh = open(file_name, 'rb') dotcode = fh.read() fh.close() except IOError: return # disable controls customizing fetched ROS graph self._widget.graph_type_combo_box.setEnabled(False) self._widget.filter_line_edit.setEnabled(False) self._widget.quiet_check_box.setEnabled(False) self._update_graph_view(dotcode)