onFunctionMappingChangedAPMReboot:showMessage(qsTr("Reboot required"),qsTr("Your stick mappings have changed, you must reboot the vehicle for correct operation."),StandardButton.Ok)
onThrottleReversedCalFailure:showMessage(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."),StandardButton.Ok)
}
onCompleted:{
if(controllerCompleted){
controllerAndViewReady=true
controller.start()
updateChannelCount()
}
}
QGCViewPanel{
id:panel
anchors.fill:parent
Component{
id:copyTrimsDialogComponent
QGCViewMessage{
message: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.")
functionaccept(){
hideDialog()
controller.copyTrims()
RadioComponentController{
id:controller
factPanel:radioPage.viewPanel
statusText:statusText
cancelButton:cancelButton
nextButton:nextButton
skipButton:skipButton
Component.onCompleted:{
controllerCompleted=true
if(qgcView.completedSignalled){
controllerAndViewReady=true
controller.start()
updateChannelCount()
}
}
onChannelCountChanged:updateChannelCount()
onFunctionMappingChangedAPMReboot:showMessage(qsTr("Reboot required"),qsTr("Your stick mappings have changed, you must reboot the vehicle for correct operation."),StandardButton.Ok)
onThrottleReversedCalFailure:showMessage(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."),StandardButton.Ok)
}
}
Component{
id:zeroTrimsDialogComponent
Component{
id:copyTrimsDialogComponent
QGCViewMessage{
message:qsTr("Before calibrating you should zero all your trims and subtrims. Click Ok to start Calibration.\n\n%1").arg(
(QGroundControl.multiVehicleManager.activeVehicle.px4Firmware?"":qsTr("Please ensure all motor power is disconnected AND all props are removed from the vehicle.")))
QGCViewMessage{
message: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.")
functionaccept(){
hideDialog()
controller.nextButtonClicked()
functionaccept(){
hideDialog()
controller.copyTrims()
}
}
}
}
Component{
id:channelCountDialogComponent
Component{
id:zeroTrimsDialogComponent
QGCViewMessage{
message:controller.channelCount==0?qsTr("Please turn on transmitter."):qsTr("%1 channels or more are needed to fly.").arg(controller.minChannelCount)
}
}
QGCViewMessage{
message:qsTr("Before calibrating you should zero all your trims and subtrims. Click Ok to start Calibration.\n\n%1").arg(
(QGroundControl.multiVehicleManager.activeVehicle.px4Firmware?"":qsTr("Please ensure all motor power is disconnected AND all props are removed from the vehicle.")))
propertyFact_camTriggerPol:controller.getParameterFact(-1,"TRIG_POLARITY",false)// Don't bitch about missing as these only exist if trigger mode is enabled
propertyFact_camTriggerPol:controller.getParameterFact(-1,"TRIG_POLARITY",false)// Don't bitch about missing as these only exist if trigger mode is enabled
returntr("The Radio Component is used to setup which channels on your RC Transmitter you will use for each vehicle control such as Roll, Pitch, Yaw and Throttle. "
"It also allows you to assign switches and dials to the various flight modes. "
"Prior to flight you must also calibrate the extents for all of your channels.");
returntr("Radio Setup is used to calibrate your transmitter. "
"It also assign channels for Roll, Pitch, Yaw and Throttle vehicle control as well as determining whether they are reversed.");
description:qsTr("Adjust throttle so hover is at mid-throttle. Slide to the left if hover is lower than throttle center. Slide to the right if hover is higher than throttle center.")
param:"MPC_THR_HOVER"
min:20
max:80
step:1
}
Component{
id:pageComponent
ListElement{
title:qsTr("Manual minimum throttle")
description:qsTr("Slide to the left to start the motors with less idle power. Slide to the right if descending in manual flight becomes unstable.")
param:"MPC_MANTHR_MIN"
min:0
max:15
step:1
}
FactSliderPanel{
width:availableWidth
qgcViewPanel:tuningPage.viewPanel
ListElement{
title:qsTr("Roll sensitivity")
description:qsTr("Slide to the left to make roll control faster and more accurate. Slide to the right if roll oscillates or is too twitchy.")
param:"MC_ROLL_TC"
min:0.15
max:0.25
step:0.01
}
sliderModel:ListModel{
ListElement{
title:qsTr("Hover Throttle")
description:qsTr("Adjust throttle so hover is at mid-throttle. Slide to the left if hover is lower than throttle center. Slide to the right if hover is higher than throttle center.")
param:"MPC_THR_HOVER"
min:20
max:80
step:1
}
ListElement{
title:qsTr("Pitch sensitivity")
description:qsTr("Slide to the left to make pitch control faster and more accurate. Slide to the right if pitch oscillates or is too twitchy.")
param:"MC_PITCH_TC"
min:0.15
max:0.25
step:0.01
}
ListElement{
title:qsTr("Manual minimum throttle")
description:qsTr("Slide to the left to start the motors with less idle power. Slide to the right if descending in manual flight becomes unstable.")
param:"MPC_MANTHR_MIN"
min:0
max:15
step:1
}
ListElement{
title:qsTr("Altitude control sensitivity")
description:qsTr("Slide to the left to make altitude control smoother and less twitchy. Slide to the right to make altitude control more accurate and more aggressive.")
param:"MPC_Z_FF"
min:0
max:1.0
step:0.1
}
ListElement{
title:qsTr("Roll sensitivity")
description:qsTr("Slide to the left to make roll control faster and more accurate. Slide to the right if roll oscillates or is too twitchy.")
param:"MC_ROLL_TC"
min:0.15
max:0.25
step:0.01
}
ListElement{
title:qsTr("Pitch sensitivity")
description:qsTr("Slide to the left to make pitch control faster and more accurate. Slide to the right if pitch oscillates or is too twitchy.")
param:"MC_PITCH_TC"
min:0.15
max:0.25
step:0.01
}
ListElement{
title:qsTr("Altitude control sensitivity")
description:qsTr("Slide to the left to make altitude control smoother and less twitchy. Slide to the right to make altitude control more accurate and more aggressive.")
param:"MPC_Z_FF"
min:0
max:1.0
step:0.1
}
ListElement{
title:qsTr("Position control sensitivity")
description:qsTr("Slide to the left to make flight in position control mode smoother and less twitchy. Slide to the right to make position control more accurate and more aggressive.")
param:"MPC_XY_FF"
min:0
max:1.0
step:0.1
ListElement{
title:qsTr("Position control sensitivity")
description:qsTr("Slide to the left to make flight in position control mode smoother and less twitchy. Slide to the right to make position control more accurate and more aggressive.")
description:"Slide to the left to make roll control faster and more accurate. Slide to the right if roll oscillates or is too twitchy."
param:"FW_R_TC"
min:0.2
max:0.8
step:0.01
}
SetupPage{
id:tuningPage
pageComponent:pageComponent
ListElement{
title:"Pitch sensitivity"
description:"Slide to the left to make pitch control faster and more accurate. Slide to the right if pitch oscillates or is too twitchy."
param:"FW_P_TC"
min:0.2
max:0.8
step:0.01
}
Component{
id:pageComponent
ListElement{
title:"Cruise throttle"
description:"This is the throttle setting required to achieve the desired cruise speed. Most planes need 50-60%."
param:"FW_THR_CRUISE"
min:20
max:80
step:1
}
FactSliderPanel{
width:availableWidth
qgcViewPanel:tuningPage.viewPanel
sliderModel:ListModel{
ListElement{
title:"Roll sensitivity"
description:"Slide to the left to make roll control faster and more accurate. Slide to the right if roll oscillates or is too twitchy."
param:"FW_R_TC"
min:0.2
max:0.8
step:0.01
}
ListElement{
title:"Pitch sensitivity"
description:"Slide to the left to make pitch control faster and more accurate. Slide to the right if pitch oscillates or is too twitchy."
param:"FW_P_TC"
min:0.2
max:0.8
step:0.01
}
ListElement{
title:"Cruise throttle"
description:"This is the throttle setting required to achieve the desired cruise speed. Most planes need 50-60%."
param:"FW_THR_CRUISE"
min:20
max:80
step:1
}
ListElement{
title:"Mission mode sensitivity"
description:"Slide to the left to make position control more accurate and more aggressive. Slide to the right to make flight in mission mode smoother and less twitchy."
param:"FW_L1_PERIOD"
min:12
max:50
step:0.5
ListElement{
title:"Mission mode sensitivity"
description:"Slide to the left to make position control more accurate and more aggressive. Slide to the right to make flight in mission mode smoother and less twitchy."
description:qsTr("Slide to the left to make roll control during hover faster and more accurate. Slide to the right if roll oscillates or is too twitchy.")
param:"MC_ROLL_TC"
min:0.15
max:0.25
step:0.01
}
SetupPage{
id:tuningPage
pageComponent:pageComponent
ListElement{
title:qsTr("Hover Pitch sensitivity")
description:qsTr("Slide to the left to make pitch control during hover faster and more accurate. Slide to the right if pitch oscillates or is too twitchy.")
param:"MC_PITCH_TC"
min:0.15
max:0.25
step:0.01
}
Component{
id:pageComponent
ListElement{
title:qsTr("Hover Altitude control sensitivity")
description:qsTr("Slide to the left to make altitude control during hover smoother and less twitchy. Slide to the right to make altitude control more accurate and more aggressive.")
param:"MPC_Z_FF"
min:0
max:1.0
step:0.1
}
FactSliderPanel{
width:availableWidth
qgcViewPanel:tuningPage.viewPanel
ListElement{
title:qsTr("Hover Position control sensitivity")
description:qsTr("Slide to the left to make flight during hover in position control mode smoother and less twitchy. Slide to the right to make position control more accurate and more aggressive.")
param:"MPC_XY_FF"
min:0
max:1.0
step:0.1
}
ListElement{
title:qsTr("Plane Roll sensitivity")
description:qsTr("Slide to the left to make roll control faster and more accurate. Slide to the right if roll oscillates or is too twitchy.")
param:"FW_R_TC"
min:0.2
max:0.8
step:0.01
}
sliderModel:ListModel{
ListElement{
title:qsTr("Plane Pitch sensitivity")
description:qsTr("Slide to the left to make pitch control faster and more accurate. Slide to the right if pitch oscillates or is too twitchy.")
param:"FW_P_TC"
min:0.2
max:0.8
step:0.01
}
ListElement{
title:qsTr("Hover Roll sensitivity")
description:qsTr("Slide to the left to make roll control during hover faster and more accurate. Slide to the right if roll oscillates or is too twitchy.")
param:"MC_ROLL_TC"
min:0.15
max:0.25
step:0.01
}
ListElement{
title:qsTr("Plane Cruise throttle")
description:qsTr("This is the throttle setting required to achieve the desired cruise speed. Most planes need 50-60%.")
param:"FW_THR_CRUISE"
min:20
max:80
step:1
}
ListElement{
title:qsTr("Hover Pitch sensitivity")
description:qsTr("Slide to the left to make pitch control during hover faster and more accurate. Slide to the right if pitch oscillates or is too twitchy.")
param:"MC_PITCH_TC"
min:0.15
max:0.25
step:0.01
}
ListElement{
title:qsTr("Hover Throttle")
description:qsTr("Adjust throttle so hover is at mid-throttle. Slide to the left if hover is lower than throttle center. Slide to the right if hover is higher than throttle center.")
param:"MPC_THR_HOVER"
min:20
max:80
step:1
}
ListElement{
title:qsTr("Hover Altitude control sensitivity")
description:qsTr("Slide to the left to make altitude control during hover smoother and less twitchy. Slide to the right to make altitude control more accurate and more aggressive.")
param:"MPC_Z_FF"
min:0
max:1.0
step:0.1
}
ListElement{
title:qsTr("Hoever manual minimum throttle")
description:qsTr("Slide to the left to start the motors with less idle power. Slide to the right if descending in manual flight becomes unstable.")
param:"MPC_MANTHR_MIN"
min:0
max:15
step:1
}
ListElement{
title:qsTr("Hover Position control sensitivity")
description:qsTr("Slide to the left to make flight during hover in position control mode smoother and less twitchy. Slide to the right to make position control more accurate and more aggressive.")
param:"MPC_XY_FF"
min:0
max:1.0
step:0.1
}
ListElement{
title:qsTr("Plane Roll sensitivity")
description:qsTr("Slide to the left to make roll control faster and more accurate. Slide to the right if roll oscillates or is too twitchy.")
param:"FW_R_TC"
min:0.2
max:0.8
step:0.01
}
ListElement{
title:qsTr("Plane Pitch sensitivity")
description:qsTr("Slide to the left to make pitch control faster and more accurate. Slide to the right if pitch oscillates or is too twitchy.")
param:"FW_P_TC"
min:0.2
max:0.8
step:0.01
}
ListElement{
title:qsTr("Plane Cruise throttle")
description:qsTr("This is the throttle setting required to achieve the desired cruise speed. Most planes need 50-60%.")
param:"FW_THR_CRUISE"
min:20
max:80
step:1
}
ListElement{
title:qsTr("Hover Throttle")
description:qsTr("Adjust throttle so hover is at mid-throttle. Slide to the left if hover is lower than throttle center. Slide to the right if hover is higher than throttle center.")
param:"MPC_THR_HOVER"
min:20
max:80
step:1
}
ListElement{
title:qsTr("Hoever manual minimum throttle")
description:qsTr("Slide to the left to start the motors with less idle power. Slide to the right if descending in manual flight becomes unstable.")
param:"MPC_MANTHR_MIN"
min:0
max:15
step:1
}
ListElement{
title:qsTr("Plane Mission mode sensitivity")
description:qsTr("Slide to the left to make position control more accurate and more aggressive. Slide to the right to make flight in mission mode smoother and less twitchy.")
param:"FW_L1_PERIOD"
min:12
max:50
step:0.5
ListElement{
title:qsTr("Plane Mission mode sensitivity")
description:qsTr("Slide to the left to make position control more accurate and more aggressive. Slide to the right to make flight in mission mode smoother and less twitchy.")
onOldFirmware:showMessage(qsTr("ESC Calibration"),qsTr("QGroundControl cannot perform ESC Calibration with this version of firmware. You will need to upgrade to a newer firmware."),StandardButton.Ok)
onNewerFirmware:showMessage(qsTr("ESC Calibration"),qsTr("QGroundControl cannot perform ESC Calibration with this version of firmware. You will need to upgrade QGroundControl."),StandardButton.Ok)
onBatteryConnected:showMessage(qsTr("ESC Calibration"),qsTr("Performing calibration. This will take a few seconds.."),0)
onCalibrationSuccess:showMessage(qsTr("ESC Calibration"),qsTr("Calibration complete. You can disconnect your battery now if you like."),StandardButton.Ok)
onConnectBattery:showMessage(qsTr("ESC Calibration"),highlightPrefix+qsTr("WARNING: Props must be removed from vehicle prior to performing ESC calibration.")+highlightSuffix+qsTr(" Connect the battery now and calibration will begin."),0)
onDisconnectBattery:showMessage(qsTr("ESC Calibration failed"),qsTr("You must disconnect the battery prior to performing ESC Calibration. Disconnect your battery and try again."),StandardButton.Ok)
onOldFirmware:showMessage(qsTr("ESC Calibration"),qsTr("QGroundControl cannot perform ESC Calibration with this version of firmware. You will need to upgrade to a newer firmware."),StandardButton.Ok)
onNewerFirmware:showMessage(qsTr("ESC Calibration"),qsTr("QGroundControl cannot perform ESC Calibration with this version of firmware. You will need to upgrade QGroundControl."),StandardButton.Ok)
onBatteryConnected:showMessage(qsTr("ESC Calibration"),qsTr("Performing calibration. This will take a few seconds.."),0)
onCalibrationSuccess:showMessage(qsTr("ESC Calibration"),qsTr("Calibration complete. You can disconnect your battery now if you like."),StandardButton.Ok)
onConnectBattery:showMessage(qsTr("ESC Calibration"),highlightPrefix+qsTr("WARNING: Props must be removed from vehicle prior to performing ESC calibration.")+highlightSuffix+qsTr(" Connect the battery now and calibration will begin."),0)
onDisconnectBattery:showMessage(qsTr("ESC Calibration failed"),qsTr("You must disconnect the battery prior to performing ESC Calibration. Disconnect your battery and try again."),StandardButton.Ok)
}
Component{
id:calcVoltageDividerDlgComponent
QGCViewDialog{
id:calcVoltageDividerDlg
QGCFlickable{
anchors.fill:parent
contentHeight:column.height
contentWidth:column.width
Column{
id:column
width:calcVoltageDividerDlg.width
spacing:ScreenTools.defaultFontPixelHeight
QGCViewDialog{
id:calcVoltageDividerDlg
QGCLabel{
width:parent.width
wrapMode:Text.WordWrap
text:"Measure battery voltage using an external voltmeter and enter the value below. Click Calculate to set the new voltage multiplier."
}
QGCFlickable{
anchors.fill:parent
contentHeight:column.height
contentWidth:column.width
Grid{
columns:2
spacing:ScreenTools.defaultFontPixelHeight/2
verticalItemAlignment:Grid.AlignVCenter
Column{
id:column
width:calcVoltageDividerDlg.width
spacing:ScreenTools.defaultFontPixelHeight
QGCLabel{
text:"Measured voltage:"
}
QGCTextField{id:measuredVoltage}
QGCLabel{
width:parent.width
wrapMode:Text.WordWrap
text:"Measure battery voltage using an external voltmeter and enter the value below. Click Calculate to set the new voltage multiplier."
text:"If the battery voltage reported by the vehicle is largely different than the voltage read externally using a voltmeter you can adjust the voltage multiplier value to correct this. "+
"Click the Calculate button for help with calculating a new value."
}
QGCLabel{
text:qsTr("Voltage divider")
}
QGCLabel{
id:ampPerVoltLabel
text:qsTr("Amps per volt")
}
FactTextField{
id:voltMultField
fact:battVoltageDivider
}
FactTextField{
id:ampPerVoltField
fact:battAmpsPerVolt
}
QGCButton{
id:voltMultCalculateButton
text:"Calculate"
onClicked:showDialog(calcVoltageDividerDlgComponent,qsTr("Calculate Voltage Divider"),qgcView.showDialogDefaultWidth,StandardButton.Close)
}
QGCButton{
id:ampPerVoltCalculateButton
text:"Calculate"
onClicked:showDialog(calcAmpsPerVoltDlgComponent,qsTr("Calculate Amps per Volt"),powerPage.showDialogDefaultWidth,StandardButton.Close)
}
Item{width:1;height:1;Layout.columnSpan:2}
Item{width:1;height:1;Layout.columnSpan:2}
QGCLabel{
id:voltMultHelp
Layout.columnSpan:batteryGrid.columns
Layout.fillWidth:true
font.pointSize:ScreenTools.smallFontPointSize
wrapMode:Text.WordWrap
text:"If the battery voltage reported by the vehicle is largely different than the voltage read externally using a voltmeter you can adjust the voltage multiplier value to correct this. "+
"Click the Calculate button for help with calculating a new value."
}
QGCLabel{
id:ampPerVoltHelp
Layout.columnSpan:batteryGrid.columns
Layout.fillWidth:true
font.pointSize:ScreenTools.smallFontPointSize
wrapMode:Text.WordWrap
text:"If the current draw reported by the vehicle is largely different than the current read externally using a current meter you can adjust the amps per volt value to correct this. "+
"Click the Calculate button for help with calculating a new value."
}
}// Grid
}// Rectangle - Battery settings
QGCLabel{
id:ampPerVoltLabel
text:qsTr("Amps per volt")
}
QGCLabel{
text:qsTr("ESC PWM Minimum and Maximum Calibration")
text:qsTr("WARNING: Propellers must be removed from vehicle prior to performing ESC calibration.")
}
QGCLabel{
id:ampPerVoltHelp
Layout.columnSpan:batteryGrid.columns
Layout.fillWidth:true
font.pointSize:ScreenTools.smallFontPointSize
wrapMode:Text.WordWrap
text:"If the current draw reported by the vehicle is largely different than the current read externally using a current meter you can adjust the amps per volt value to correct this. "+
"Click the Calculate button for help with calculating a new value."
}
}// Grid
}// Rectangle - Battery settings
QGCLabel{
text:qsTr("You must use USB connection for this operation.")
}
QGCLabel{
text:qsTr("ESC PWM Minimum and Maximum Calibration")