mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-05-19 02:22:21 +08:00
[supervision] Fix edit flight plan in GCS.
This commit is contained in:
committed by
Freek van Tienen
parent
a40e0fa4e1
commit
f2ed1adfec
@@ -1,4 +1,5 @@
|
||||
<program command="sw/ground_segment/cockpit/gcs" name="Flight Plan Editor">
|
||||
<arg flag="-edit" />
|
||||
<program command="sw/tools/gcs_launch.py" name="Flight Plan Editor">
|
||||
<arg flag="--" />
|
||||
<arg flag="-f" />
|
||||
</program>
|
||||
|
||||
|
||||
@@ -5,10 +5,11 @@ import utils
|
||||
from generated.ui_configuration_panel import Ui_ConfigurationPanel
|
||||
from program_widget import ProgramWidget, TabProgramsState
|
||||
from conf import *
|
||||
from programs_conf import parse_tools
|
||||
from programs_conf import Tool
|
||||
import subprocess
|
||||
|
||||
|
||||
|
||||
class ConfigurationPanel(QWidget, Ui_ConfigurationPanel):
|
||||
|
||||
clear_error = QtCore.pyqtSignal()
|
||||
@@ -67,13 +68,12 @@ class ConfigurationPanel(QWidget, Ui_ConfigurationPanel):
|
||||
self.currentAC.radio = self.conf_widget.radio.path
|
||||
self.currentAC.telemetry = self.conf_widget.telemetry.path
|
||||
self.ac_edited.emit(self.currentAC)
|
||||
|
||||
def handle_tools_changed(self, tools: Dict[str, Tool]):
|
||||
if "Flight Plan Editor" in tools:
|
||||
self.flight_plan_editor = tools["Flight Plan Editor"]
|
||||
|
||||
def edit_flightplan_gcs(self, path):
|
||||
if self.flight_plan_editor is None:
|
||||
tools = parse_tools()
|
||||
if "Flight Plan Editor" in tools:
|
||||
self.flight_plan_editor = tools["Flight Plan Editor"]
|
||||
|
||||
if self.flight_plan_editor is not None:
|
||||
cmd = [os.path.join(utils.PAPARAZZI_SRC, self.flight_plan_editor.command)]
|
||||
for arg in self.flight_plan_editor.args:
|
||||
|
||||
@@ -61,6 +61,8 @@ class PprzCenter(QMainWindow, Ui_SupervisionWindow):
|
||||
self.operation_panel.session.program_spawned.connect(self.header.disable_sets)
|
||||
self.operation_panel.session.programs_all_stopped.connect(self.header.enable_sets)
|
||||
|
||||
self.operation_panel.session.tools_changed.connect(self.configuration_panel.handle_tools_changed)
|
||||
|
||||
self.configuration_panel.splitter.splitterMoved.connect(self.update_left_pane_width)
|
||||
settings = utils.get_settings()
|
||||
window_size = settings.value("ui/window_size", QtCore.QSize(1000, 600), QtCore.QSize)
|
||||
|
||||
@@ -22,6 +22,7 @@ class SessionWidget(QWidget, Ui_Session):
|
||||
programs_all_stopped = QtCore.pyqtSignal()
|
||||
program_spawned = QtCore.pyqtSignal()
|
||||
program_state_changed = QtCore.pyqtSignal(TabProgramsState)
|
||||
tools_changed = QtCore.pyqtSignal(dict) # Dict[str, Tool]
|
||||
|
||||
def __init__(self, parent=None):
|
||||
QWidget.__init__(self, parent=parent)
|
||||
@@ -63,6 +64,7 @@ class SessionWidget(QWidget, Ui_Session):
|
||||
current_cp = self.control_panel_combo.currentText()
|
||||
self.sessions = parse_sessions(current_cp)
|
||||
self.tools = parse_tools(current_cp)
|
||||
self.tools_changed.emit(self.tools)
|
||||
self.init_tools_menu()
|
||||
sessions_names = [session.name for session in self.sessions]
|
||||
self.sessions_combo.clear()
|
||||
|
||||
Reference in New Issue
Block a user