7import QGroundControl.FactControls
8import QGroundControl.Controls
9import QGroundControl.VehicleSetup
13 pageComponent: pageComponent
18 RemoteControlCalibration {
19 id: remoteControlCalibration
23 controller: RadioComponentController {
24 statusText: remoteControlCalibration.statusText
25 cancelButton: remoteControlCalibration.cancelButton
26 nextButton: remoteControlCalibration.nextButton
29 onThrottleReversedCalFailure: QGroundControl.showMessageDialog(radioPage, qsTr("Throttle channel reversed"), qsTr("Calibration failed. The throttle channel on your transmitter is reversed. You must correct this on your transmitter in order to complete calibration."))
32 Component.onCompleted: controller.start()
34 additionalSetupComponent: ColumnLayout {
35 spacing: ScreenTools.defaultFontPixelHeight / 2
39 Layout.fillWidth: true
42 model: QGroundControl.multiVehicleManager.activeVehicle.px4Firmware ?
43 (QGroundControl.multiVehicleManager.activeVehicle.multiRotor ?
44 [ "RC_MAP_AUX1", "RC_MAP_AUX2", "RC_MAP_PARAM1", "RC_MAP_PARAM2", "RC_MAP_PARAM3", "RC_MAP_PAY_SW"] :
45 [ "RC_MAP_FLAPS", "RC_MAP_AUX1", "RC_MAP_AUX2", "RC_MAP_PARAM1", "RC_MAP_PARAM2", "RC_MAP_PARAM3", "RC_MAP_PAY_SW"]) :
48 LabelledFactComboBox {
49 label: fact.shortDescription
50 fact: controller.getParameterFact(-1, modelData)
57 Layout.fillWidth: true
63 spacing: ScreenTools.defaultFontPixelWidth
67 text: qsTr("Spektrum Bind")
68 onClicked: spektrumBindDialogFactory.open()
72 text: qsTr("CRSF Bind")
73 onClicked: QGroundControl.showMessageDialog(radioPage, qsTr("CRSF Bind"),
74 qsTr("Click Ok to place your CRSF receiver in the bind mode."),
75 Dialog.Ok | Dialog.Cancel,
76 function() { controller.crsfBindMode() })
80 text: qsTr("Copy Trims")
81 onClicked: QGroundControl.showMessageDialog(radioPage, qsTr("Copy Trims"),
82 qsTr("Center your sticks and move throttle all the way down, then press Ok to copy trims. After pressing Ok, reset the trims on your radio back to zero."),
83 Dialog.Ok | Dialog.Cancel,
84 function() { controller.copyTrims() })
88 QGCPopupDialogFactory {
89 id: spektrumBindDialogFactory
91 dialogComponent: spektrumBindDialogComponent
95 id: spektrumBindDialogComponent
98 title: qsTr("Spektrum Bind")
99 buttons: Dialog.Ok | Dialog.Cancel
101 onAccepted: { controller.spektrumBindMode(radioGroup.checkedButton.bindMode) }
103 ButtonGroup { id: radioGroup }
106 spacing: ScreenTools.defaultFontPixelHeight / 2
109 wrapMode: Text.WordWrap
110 text: qsTr("Click Ok to place your Spektrum receiver in the bind mode.")
114 wrapMode: Text.WordWrap
115 text: qsTr("Select the specific receiver type below:")
119 text: qsTr("DSM2 Mode")
120 ButtonGroup.group: radioGroup
121 property int bindMode: RadioComponentController.DSM2
125 text: qsTr("DSMX (7 channels or less)")
126 ButtonGroup.group: radioGroup
127 property int bindMode: RadioComponentController.DSMX7
132 text: qsTr("DSMX (8 channels or more)")
133 ButtonGroup.group: radioGroup
134 property int bindMode: RadioComponentController.DSMX8