Commit e600db61 authored by Michael Carpenter's avatar Michael Carpenter

More changes to the config system, addition of more calibration preferences

Variable calibration procedure text based on the autopilot, stored in files/%autopilot%/general/calibration/description.txt.
Added a new QGCTextLabel type for QGW files, which can display MAV text or hardcoded text.
Added tabular configuration screens based on folder structure inside the files/autopilot/airframe folders
parent a6eea35a
......@@ -11,51 +11,82 @@ QGC_TOOL_WIDGET_ITEMS\1\QGC_COMMAND_BUTTON_PARAM4=0
QGC_TOOL_WIDGET_ITEMS\1\QGC_COMMAND_BUTTON_PARAM5=0
QGC_TOOL_WIDGET_ITEMS\1\QGC_COMMAND_BUTTON_PARAM6=0
QGC_TOOL_WIDGET_ITEMS\1\QGC_COMMAND_BUTTON_PARAM7=0
QGC_TOOL_WIDGET_ITEMS\2\TYPE=COMMANDBUTTON
QGC_TOOL_WIDGET_ITEMS\2\QGC_COMMAND_BUTTON_DESCRIPTION=Magnetometer calibration
QGC_TOOL_WIDGET_ITEMS\2\QGC_COMMAND_BUTTON_BUTTONTEXT=MAG
QGC_TOOL_WIDGET_ITEMS\2\QGC_COMMAND_BUTTON_COMMANDID=241
QGC_TOOL_WIDGET_ITEMS\2\QGC_COMMAND_BUTTON_PARAMS_VISIBLE=false
QGC_TOOL_WIDGET_ITEMS\2\QGC_COMMAND_BUTTON_PARAM1=0
QGC_TOOL_WIDGET_ITEMS\2\QGC_COMMAND_BUTTON_PARAM2=1
QGC_TOOL_WIDGET_ITEMS\2\QGC_COMMAND_BUTTON_PARAM3=0
QGC_TOOL_WIDGET_ITEMS\2\QGC_COMMAND_BUTTON_PARAM4=0
QGC_TOOL_WIDGET_ITEMS\2\QGC_COMMAND_BUTTON_PARAM5=0
QGC_TOOL_WIDGET_ITEMS\2\QGC_COMMAND_BUTTON_PARAM6=0
QGC_TOOL_WIDGET_ITEMS\2\QGC_COMMAND_BUTTON_PARAM7=0
QGC_TOOL_WIDGET_ITEMS\2\TYPE=TEXT
QGC_TOOL_WIDGET_ITEMS\2\QGC_TEXT_SOURCE=NONE
QGC_TOOL_WIDGET_ITEMS\2\QGC_TEXT_ID=MAG_LABEL
QGC_TOOL_WIDGET_ITEMS\2\QGC_TEXT_TEXT=
QGC_TOOL_WIDGET_ITEMS\3\TYPE=COMMANDBUTTON
QGC_TOOL_WIDGET_ITEMS\3\QGC_COMMAND_BUTTON_DESCRIPTION=Accelerometer calibration
QGC_TOOL_WIDGET_ITEMS\3\QGC_COMMAND_BUTTON_BUTTONTEXT=ACCEL
QGC_TOOL_WIDGET_ITEMS\3\QGC_COMMAND_BUTTON_DESCRIPTION=Magnetometer calibration
QGC_TOOL_WIDGET_ITEMS\3\QGC_COMMAND_BUTTON_BUTTONTEXT=MAG
QGC_TOOL_WIDGET_ITEMS\3\QGC_COMMAND_BUTTON_COMMANDID=241
QGC_TOOL_WIDGET_ITEMS\3\QGC_COMMAND_BUTTON_LABEL=MAG_TEXT
QGC_TOOL_WIDGET_ITEMS\3\QGC_COMMAND_BUTTON_PARAMS_VISIBLE=false
QGC_TOOL_WIDGET_ITEMS\3\QGC_COMMAND_BUTTON_PARAM1=0
QGC_TOOL_WIDGET_ITEMS\3\QGC_COMMAND_BUTTON_PARAM2=0
QGC_TOOL_WIDGET_ITEMS\3\QGC_COMMAND_BUTTON_PARAM2=1
QGC_TOOL_WIDGET_ITEMS\3\QGC_COMMAND_BUTTON_PARAM3=0
QGC_TOOL_WIDGET_ITEMS\3\QGC_COMMAND_BUTTON_PARAM4=0
QGC_TOOL_WIDGET_ITEMS\3\QGC_COMMAND_BUTTON_PARAM5=1
QGC_TOOL_WIDGET_ITEMS\3\QGC_COMMAND_BUTTON_PARAM5=0
QGC_TOOL_WIDGET_ITEMS\3\QGC_COMMAND_BUTTON_PARAM6=0
QGC_TOOL_WIDGET_ITEMS\3\QGC_COMMAND_BUTTON_PARAM7=0
QGC_TOOL_WIDGET_ITEMS\4\TYPE=COMMANDBUTTON
QGC_TOOL_WIDGET_ITEMS\4\QGC_COMMAND_BUTTON_DESCRIPTION=Gyroscope calibration
QGC_TOOL_WIDGET_ITEMS\4\QGC_COMMAND_BUTTON_BUTTONTEXT=GYRO
QGC_TOOL_WIDGET_ITEMS\4\QGC_COMMAND_BUTTON_COMMANDID=241
QGC_TOOL_WIDGET_ITEMS\4\QGC_COMMAND_BUTTON_PARAMS_VISIBLE=false
QGC_TOOL_WIDGET_ITEMS\4\QGC_COMMAND_BUTTON_PARAM1=1
QGC_TOOL_WIDGET_ITEMS\4\QGC_COMMAND_BUTTON_PARAM2=0
QGC_TOOL_WIDGET_ITEMS\4\QGC_COMMAND_BUTTON_PARAM3=0
QGC_TOOL_WIDGET_ITEMS\4\QGC_COMMAND_BUTTON_PARAM4=0
QGC_TOOL_WIDGET_ITEMS\4\QGC_COMMAND_BUTTON_PARAM5=0
QGC_TOOL_WIDGET_ITEMS\4\QGC_COMMAND_BUTTON_PARAM6=0
QGC_TOOL_WIDGET_ITEMS\4\QGC_COMMAND_BUTTON_PARAM7=0
QGC_TOOL_WIDGET_ITEMS\5\QGC_COMMAND_BUTTON_DESCRIPTION=RC Trim calibration
QGC_TOOL_WIDGET_ITEMS\5\QGC_COMMAND_BUTTON_BUTTONTEXT=TRIM
QGC_TOOL_WIDGET_ITEMS\5\QGC_COMMAND_BUTTON_COMMANDID=241
QGC_TOOL_WIDGET_ITEMS\5\QGC_COMMAND_BUTTON_PARAMS_VISIBLE=false
QGC_TOOL_WIDGET_ITEMS\5\QGC_COMMAND_BUTTON_PARAM1=1
QGC_TOOL_WIDGET_ITEMS\5\QGC_COMMAND_BUTTON_PARAM2=0
QGC_TOOL_WIDGET_ITEMS\5\QGC_COMMAND_BUTTON_PARAM3=0
QGC_TOOL_WIDGET_ITEMS\5\QGC_COMMAND_BUTTON_PARAM4=1
QGC_TOOL_WIDGET_ITEMS\5\QGC_COMMAND_BUTTON_PARAM5=0
QGC_TOOL_WIDGET_ITEMS\5\QGC_COMMAND_BUTTON_PARAM6=0
QGC_TOOL_WIDGET_ITEMS\5\QGC_COMMAND_BUTTON_PARAM7=0
QGC_TOOL_WIDGET_ITEMS\size=5
QGC_TOOL_WIDGET_ITEMS\4\TYPE=TEXT
QGC_TOOL_WIDGET_ITEMS\4\QGC_TEXT_SOURCE=MAV
QGC_TOOL_WIDGET_ITEMS\4\QGC_TEXT_ID=MAG_TEXT
QGC_TOOL_WIDGET_ITEMS\4\QGC_TEXT_TEXT=
QGC_TOOL_WIDGET_ITEMS\5\TYPE=TEXT
QGC_TOOL_WIDGET_ITEMS\5\QGC_TEXT_SOURCE=NONE
QGC_TOOL_WIDGET_ITEMS\5\QGC_TEXT_ID=ACCEL_LABEL
QGC_TOOL_WIDGET_ITEMS\5\QGC_TEXT_TEXT=
QGC_TOOL_WIDGET_ITEMS\6\TYPE=COMMANDBUTTON
QGC_TOOL_WIDGET_ITEMS\6\QGC_COMMAND_BUTTON_DESCRIPTION=Accelerometer calibration
QGC_TOOL_WIDGET_ITEMS\6\QGC_COMMAND_BUTTON_BUTTONTEXT=ACCEL
QGC_TOOL_WIDGET_ITEMS\6\QGC_COMMAND_BUTTON_COMMANDID=241
QGC_TOOL_WIDGET_ITEMS\6\QGC_COMMAND_BUTTON_LABEL=ACCEL_TEXT
QGC_TOOL_WIDGET_ITEMS\6\QGC_COMMAND_BUTTON_PARAMS_VISIBLE=false
QGC_TOOL_WIDGET_ITEMS\6\QGC_COMMAND_BUTTON_PARAM1=0
QGC_TOOL_WIDGET_ITEMS\6\QGC_COMMAND_BUTTON_PARAM2=0
QGC_TOOL_WIDGET_ITEMS\6\QGC_COMMAND_BUTTON_PARAM3=0
QGC_TOOL_WIDGET_ITEMS\6\QGC_COMMAND_BUTTON_PARAM4=0
QGC_TOOL_WIDGET_ITEMS\6\QGC_COMMAND_BUTTON_PARAM5=1
QGC_TOOL_WIDGET_ITEMS\6\QGC_COMMAND_BUTTON_PARAM6=0
QGC_TOOL_WIDGET_ITEMS\6\QGC_COMMAND_BUTTON_PARAM7=0
QGC_TOOL_WIDGET_ITEMS\7\TYPE=TEXT
QGC_TOOL_WIDGET_ITEMS\7\QGC_TEXT_SOURCE=MAV
QGC_TOOL_WIDGET_ITEMS\7\QGC_TEXT_ID=ACCEL_TEXT
QGC_TOOL_WIDGET_ITEMS\7\QGC_TEXT_TEXT=
QGC_TOOL_WIDGET_ITEMS\8\TYPE=TEXT
QGC_TOOL_WIDGET_ITEMS\8\QGC_TEXT_SOURCE=NONE
QGC_TOOL_WIDGET_ITEMS\8\QGC_TEXT_ID=GYRO_LABEL
QGC_TOOL_WIDGET_ITEMS\8\QGC_TEXT_TEXT=
QGC_TOOL_WIDGET_ITEMS\9\TYPE=COMMANDBUTTON
QGC_TOOL_WIDGET_ITEMS\9\QGC_COMMAND_BUTTON_DESCRIPTION=Gyroscope calibration
QGC_TOOL_WIDGET_ITEMS\9\QGC_COMMAND_BUTTON_BUTTONTEXT=GYRO
QGC_TOOL_WIDGET_ITEMS\9\QGC_COMMAND_BUTTON_COMMANDID=241
QGC_TOOL_WIDGET_ITEMS\9\QGC_COMMAND_BUTTON_LABEL=GYRO_TEXT
QGC_TOOL_WIDGET_ITEMS\9\QGC_COMMAND_BUTTON_PARAMS_VISIBLE=false
QGC_TOOL_WIDGET_ITEMS\9\QGC_COMMAND_BUTTON_PARAM1=1
QGC_TOOL_WIDGET_ITEMS\9\QGC_COMMAND_BUTTON_PARAM2=0
QGC_TOOL_WIDGET_ITEMS\9\QGC_COMMAND_BUTTON_PARAM3=0
QGC_TOOL_WIDGET_ITEMS\9\QGC_COMMAND_BUTTON_PARAM4=0
QGC_TOOL_WIDGET_ITEMS\9\QGC_COMMAND_BUTTON_PARAM5=0
QGC_TOOL_WIDGET_ITEMS\9\QGC_COMMAND_BUTTON_PARAM6=0
QGC_TOOL_WIDGET_ITEMS\9\QGC_COMMAND_BUTTON_PARAM7=0
QGC_TOOL_WIDGET_ITEMS\10\TYPE=TEXT
QGC_TOOL_WIDGET_ITEMS\10\QGC_TEXT_SOURCE=MAV
QGC_TOOL_WIDGET_ITEMS\10\QGC_TEXT_ID=GYRO_TEXT
QGC_TOOL_WIDGET_ITEMS\10\QGC_TEXT_TEXT=
QGC_TOOL_WIDGET_ITEMS\11\QGC_COMMAND_BUTTON_DESCRIPTION=RC Trim calibration
QGC_TOOL_WIDGET_ITEMS\11\QGC_COMMAND_BUTTON_BUTTONTEXT=TRIM
QGC_TOOL_WIDGET_ITEMS\11\QGC_COMMAND_BUTTON_COMMANDID=241
QGC_TOOL_WIDGET_ITEMS\11\QGC_COMMAND_BUTTON_PARAMS_VISIBLE=false
QGC_TOOL_WIDGET_ITEMS\11\QGC_COMMAND_BUTTON_PARAM1=1
QGC_TOOL_WIDGET_ITEMS\11\QGC_COMMAND_BUTTON_PARAM2=0
QGC_TOOL_WIDGET_ITEMS\11\QGC_COMMAND_BUTTON_PARAM3=0
QGC_TOOL_WIDGET_ITEMS\11\QGC_COMMAND_BUTTON_PARAM4=1
QGC_TOOL_WIDGET_ITEMS\11\QGC_COMMAND_BUTTON_PARAM5=0
QGC_TOOL_WIDGET_ITEMS\11\QGC_COMMAND_BUTTON_PARAM6=0
QGC_TOOL_WIDGET_ITEMS\11\QGC_COMMAND_BUTTON_PARAM7=0
QGC_TOOL_WIDGET_ITEMS\size=11
<html>
<body>
<h1>Sensor Calibration</h1>
The APM sensors can be calibrated with the buttons on the right. Gyroscope (GYRO) and Magnometer (MAG) calibrations have to be performed with a static, unmoved system. The Accelerometer (ACCEL) calibrations involve rotating the vehicle around. Please ensure all props are removed and motor power is off.
<h2>Magnetometer Calibration</h2>
Ensure the vehicle is clear of any metal, magnetic, or ferrus materials, and sitting on a flat surface. Click the MAG button and wait for the calibration to complete.
<h2>Accelerometer Calibration</h2>
Ensure the vehicle is on a absolutely level surface and click ACCEL. Follow the instructions that will show up below the button. This calibration procedure will require moving the vehicle at 90 degree angles (upright, left, right, front, back, and upside down), then clicking the button to save that position.
<h2>Gyroscope Calibration</h2>
Place the vehicle on an absolutely flat surface, and click the GYRO button. wait for the system to calibrate.
</body>
</html>
\ No newline at end of file
......@@ -42,7 +42,7 @@ QGC_TOOL_WIDGET_ITEMS\2\QGC_PARAM_COMBOBOX_ITEM_11_TEXT=A11
QGC_TOOL_WIDGET_ITEMS\2\QGC_PARAM_COMBOBOX_ITEM_11_VAL=11
QGC_TOOL_WIDGET_ITEMS\2\QGC_PARAM_COMBOBOX_ITEM_12_TEXT=A12
QGC_TOOL_WIDGET_ITEMS\2\QGC_PARAM_COMBOBOX_ITEM_12_VAL=12
QGC_TOOL_WIDGET_ITEMS\2\QGC_PARAM_COMBOBOX_ITEM_13_TEXT=A3
QGC_TOOL_WIDGET_ITEMS\2\QGC_PARAM_COMBOBOX_ITEM_13_TEXT=A13
QGC_TOOL_WIDGET_ITEMS\2\QGC_PARAM_COMBOBOX_ITEM_13_VAL=13
QGC_TOOL_WIDGET_ITEMS\3\TYPE=COMBO
......
[Failsafe%20Configuration]
QGC_TOOL_WIDGET_ITEMS\1\TYPE=COMBO
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_DESCRIPTION=Failsafe Action
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_PARAMID=FS_ACTION
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_COMPONENTID=1
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_COUNT=3
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_ITEM_0_TEXT=Disabled
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_ITEM_0_VAL=0
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_ITEM_1_TEXT=RTL
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_ITEM_1_VAL=1
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_ITEM_2_TEXT=Hold
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_ITEM_2_VAL=2
QGC_TOOL_WIDGET_ITEMS\2\TYPE=COMBO
QGC_TOOL_WIDGET_ITEMS\2\QGC_PARAM_COMBOBOX_DESCRIPTION=GCS failsafe enable
QGC_TOOL_WIDGET_ITEMS\2\QGC_PARAM_COMBOBOX_PARAMID=FS_GCS_ENABLE
QGC_TOOL_WIDGET_ITEMS\2\QGC_PARAM_COMBOBOX_COMPONENTID=1
QGC_TOOL_WIDGET_ITEMS\2\QGC_PARAM_COMBOBOX_COUNT=2
QGC_TOOL_WIDGET_ITEMS\2\QGC_PARAM_COMBOBOX_ITEM_0_TEXT=Disabled
QGC_TOOL_WIDGET_ITEMS\2\QGC_PARAM_COMBOBOX_ITEM_0_VAL=0
QGC_TOOL_WIDGET_ITEMS\2\QGC_PARAM_COMBOBOX_ITEM_1_TEXT=Enabled
QGC_TOOL_WIDGET_ITEMS\2\QGC_PARAM_COMBOBOX_ITEM_1_VAL=1
QGC_TOOL_WIDGET_ITEMS\3\TYPE=SLIDER
QGC_TOOL_WIDGET_ITEMS\3\QGC_PARAM_SLIDER_DESCRIPTION=Failsafe timeout (In Seconds)
QGC_TOOL_WIDGET_ITEMS\3\QGC_PARAM_SLIDER_PARAMID=FS_TIMEOUT
QGC_TOOL_WIDGET_ITEMS\3\QGC_PARAM_SLIDER_COMPONENTID=1
QGC_TOOL_WIDGET_ITEMS\3\QGC_PARAM_SLIDER_MIN=0
QGC_TOOL_WIDGET_ITEMS\3\QGC_PARAM_SLIDER_MAX=100
QGC_TOOL_WIDGET_ITEMS\4\TYPE=COMBO
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_DESCRIPTION=Throttle Failsafe Enable
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_PARAMID=FS_THR_ENABLE
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_COMPONENTID=1
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_COUNT=2
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_ITEM_0_TEXT=Disabled
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_ITEM_0_VAL=0
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_ITEM_1_TEXT=Enabled
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_ITEM_1_VAL=1
QGC_TOOL_WIDGET_ITEMS\5\TYPE=SLIDER
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_SLIDER_DESCRIPTION=Throttle Failsafe Value (PWM)
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_SLIDER_PARAMID=FS_THR_VALUE
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_SLIDER_COMPONENTID=1
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_SLIDER_MIN=0
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_SLIDER_MAX=1000
QGC_TOOL_WIDGET_ITEMS\size=5
[Extra%20Sensors]
[General]
QGC_TOOL_WIDGET_ITEMS\1\TYPE=COMBO
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_DESCRIPTION=Compass Enable
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_PARAMID=MAG_ENABLE
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_DESCRIPTION=Channel 7 Option
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_PARAMID=CH7_OPTION
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_COMPONENTID=1
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_COUNT=2
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_ITEM_0_TEXT=Disabled
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_ITEM_0_TEXT=Nothing
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_ITEM_0_VAL=0
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_ITEM_1_TEXT=Enabled
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_ITEM_1_TEXT=Learn Waypoint
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_ITEM_1_VAL=1
QGC_TOOL_WIDGET_ITEMS\2\TYPE=COMBO
QGC_TOOL_WIDGET_ITEMS\2\QGC_PARAM_COMBOBOX_DESCRIPTION=Auto Declination
QGC_TOOL_WIDGET_ITEMS\2\QGC_PARAM_COMBOBOX_PARAMID=COMPASS_AUTODEC
QGC_TOOL_WIDGET_ITEMS\2\QGC_PARAM_COMBOBOX_COMPONENTID=1
QGC_TOOL_WIDGET_ITEMS\2\QGC_PARAM_COMBOBOX_COUNT=2
QGC_TOOL_WIDGET_ITEMS\2\QGC_PARAM_COMBOBOX_ITEM_0_TEXT=Disabled
QGC_TOOL_WIDGET_ITEMS\2\QGC_PARAM_COMBOBOX_ITEM_0_VAL=0
QGC_TOOL_WIDGET_ITEMS\2\QGC_PARAM_COMBOBOX_ITEM_1_TEXT=Enabled
QGC_TOOL_WIDGET_ITEMS\2\QGC_PARAM_COMBOBOX_ITEM_1_VAL=1
QGC_TOOL_WIDGET_ITEMS\4\TYPE=COMBO
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_DESCRIPTION=Channel 7 Option
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_PARAMID=CH7_OPTION
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_COMPONENTID=1
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_COUNT=2
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_ITEM_0_TEXT=Nothing
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_ITEM_0_VAL=0
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_ITEM_1_TEXT=Learn Waypoint
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_ITEM_1_VAL=1
QGC_TOOL_WIDGET_ITEMS\2\TYPE=SLIDER
QGC_TOOL_WIDGET_ITEMS\2\QGC_PARAM_SLIDER_DESCRIPTION=Target cruise speed in auto modes
QGC_TOOL_WIDGET_ITEMS\2\QGC_PARAM_SLIDER_PARAMID=CRUISE_SPEED
QGC_TOOL_WIDGET_ITEMS\2\QGC_PARAM_SLIDER_COMPONENTID=1
QGC_TOOL_WIDGET_ITEMS\2\QGC_PARAM_SLIDER_MIN=0
QGC_TOOL_WIDGET_ITEMS\2\QGC_PARAM_SLIDER_MAX=100
QGC_TOOL_WIDGET_ITEMS\3\TYPE=SLIDER
QGC_TOOL_WIDGET_ITEMS\3\QGC_PARAM_SLIDER_DESCRIPTION=Compass Declination
QGC_TOOL_WIDGET_ITEMS\3\QGC_PARAM_SLIDER_PARAMID=COMPASS_DEC
QGC_TOOL_WIDGET_ITEMS\3\QGC_PARAM_SLIDER_DESCRIPTION=Base throttle percentage in auto
QGC_TOOL_WIDGET_ITEMS\3\QGC_PARAM_SLIDER_PARAMID=CRUISE_THROTTLE
QGC_TOOL_WIDGET_ITEMS\3\QGC_PARAM_SLIDER_COMPONENTID=1
QGC_TOOL_WIDGET_ITEMS\3\QGC_PARAM_SLIDER_MIN=0
QGC_TOOL_WIDGET_ITEMS\3\QGC_PARAM_SLIDER_MAX=100
QGC_TOOL_WIDGET_ITEMS\4\TYPE=COMBO
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_DESCRIPTION=Sonar Enable
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_PARAMID=SONAR_ENABLE
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_DESCRIPTION=Receiver RSSI sensing pin
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_PARAMID=RSSI_PIN
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_COMPONENTID=1
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_COUNT=2
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_ITEM_0_TEXT=Disabled
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_COUNT=14
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_ITEM_0_TEXT=A0
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_ITEM_0_VAL=0
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_ITEM_1_TEXT=Enabled
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_ITEM_1_TEXT=A1
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_ITEM_1_VAL=1
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_ITEM_2_TEXT=A2
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_ITEM_2_VAL=2
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_ITEM_3_TEXT=A3
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_ITEM_3_VAL=3
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_ITEM_4_TEXT=A4
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_ITEM_4_VAL=4
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_ITEM_5_TEXT=A5
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_ITEM_5_VAL=5
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_ITEM_6_TEXT=A6
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_ITEM_6_VAL=6
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_ITEM_7_TEXT=A7
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_ITEM_7_VAL=7
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_ITEM_8_TEXT=A8
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_ITEM_8_VAL=8
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_ITEM_9_TEXT=A9
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_ITEM_9_VAL=9
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_ITEM_10_TEXT=A10
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_ITEM_10_VAL=10
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_ITEM_11_TEXT=A11
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_ITEM_11_VAL=11
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_ITEM_12_TEXT=A12
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_ITEM_12_VAL=12
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_ITEM_13_TEXT=A13
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_COMBOBOX_ITEM_13_VAL=13
QGC_TOOL_WIDGET_ITEMS\5\TYPE=COMBO
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_COMBOBOX_DESCRIPTION=Sonar Type
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_COMBOBOX_PARAMID=SONAR_TYPE
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_COMBOBOX_DESCRIPTION=USB Console Baud Rate
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_COMBOBOX_PARAMID=SERIAL0_BAUD
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_COMBOBOX_COMPONENTID=1
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_COMBOBOX_COUNT=4
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_COMBOBOX_ITEM_0_TEXT=XL-EZ0
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_COMBOBOX_ITEM_0_VAL=0
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_COMBOBOX_ITEM_1_TEXT=LV-EZ0
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_COMBOBOX_ITEM_1_VAL=1
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_COMBOBOX_ITEM_2_TEXT=XL-EZL0
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_COMBOBOX_ITEM_2_VAL=2
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_COMBOBOX_ITEM_3_TEXT=HRLV
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_COMBOBOX_ITEM_3_VAL=3
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_COMBOBOX_COUNT=9
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_COMBOBOX_ITEM_0_TEXT=1200
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_COMBOBOX_ITEM_0_VAL=1
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_COMBOBOX_ITEM_1_TEXT=2400
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_COMBOBOX_ITEM_1_VAL=2
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_COMBOBOX_ITEM_2_TEXT=4800
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_COMBOBOX_ITEM_2_VAL=4
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_COMBOBOX_ITEM_3_TEXT=9600
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_COMBOBOX_ITEM_3_VAL=9
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_COMBOBOX_ITEM_4_TEXT=19200
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_COMBOBOX_ITEM_4_VAL=19
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_COMBOBOX_ITEM_5_TEXT=38400
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_COMBOBOX_ITEM_5_VAL=38
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_COMBOBOX_ITEM_6_TEXT=57600
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_COMBOBOX_ITEM_6_VAL=57
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_COMBOBOX_ITEM_7_TEXT=111100
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_COMBOBOX_ITEM_7_VAL=111
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_COMBOBOX_ITEM_8_TEXT=115200
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_COMBOBOX_ITEM_8_VAL=115
QGC_TOOL_WIDGET_ITEMS\6\TYPE=COMBO
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_COMBOBOX_DESCRIPTION=Air speed Enable
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_COMBOBOX_PARAMID=ARSPD_ENABLE
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_COMBOBOX_DESCRIPTION=Telemetry Baud Rate
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_COMBOBOX_PARAMID=SERIAL3_BAUD
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_COMBOBOX_COMPONENTID=1
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_COMBOBOX_COUNT=2
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_COMBOBOX_ITEM_0_TEXT=Disabled
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_COMBOBOX_ITEM_0_VAL=0
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_COMBOBOX_ITEM_1_TEXT=Enabled
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_COMBOBOX_ITEM_1_VAL=1
QGC_TOOL_WIDGET_ITEMS\7\TYPE=COMBO
QGC_TOOL_WIDGET_ITEMS\7\QGC_PARAM_COMBOBOX_DESCRIPTION=Air speed use
QGC_TOOL_WIDGET_ITEMS\7\QGC_PARAM_COMBOBOX_PARAMID=AIRSPD_USE
QGC_TOOL_WIDGET_ITEMS\7\QGC_PARAM_COMBOBOX_COMPONENTID=1
QGC_TOOL_WIDGET_ITEMS\7\QGC_PARAM_COMBOBOX_COUNT=2
QGC_TOOL_WIDGET_ITEMS\7\QGC_PARAM_COMBOBOX_ITEM_0_TEXT=Do Not Use
QGC_TOOL_WIDGET_ITEMS\7\QGC_PARAM_COMBOBOX_ITEM_0_VAL=0
QGC_TOOL_WIDGET_ITEMS\7\QGC_PARAM_COMBOBOX_ITEM_1_TEXT=Use
QGC_TOOL_WIDGET_ITEMS\7\QGC_PARAM_COMBOBOX_ITEM_1_VAL=1
QGC_TOOL_WIDGET_ITEMS\8\TYPE=COMBO
QGC_TOOL_WIDGET_ITEMS\8\QGC_PARAM_COMBOBOX_DESCRIPTION=Optical Flow Enable
QGC_TOOL_WIDGET_ITEMS\8\QGC_PARAM_COMBOBOX_PARAMID=FLOW_ENABLE
QGC_TOOL_WIDGET_ITEMS\8\QGC_PARAM_COMBOBOX_COMPONENTID=1
QGC_TOOL_WIDGET_ITEMS\8\QGC_PARAM_COMBOBOX_COUNT=2
QGC_TOOL_WIDGET_ITEMS\8\QGC_PARAM_COMBOBOX_ITEM_0_TEXT=Disabled
QGC_TOOL_WIDGET_ITEMS\8\QGC_PARAM_COMBOBOX_ITEM_0_VAL=0
QGC_TOOL_WIDGET_ITEMS\8\QGC_PARAM_COMBOBOX_ITEM_1_TEXT=Enabled
QGC_TOOL_WIDGET_ITEMS\8\QGC_PARAM_COMBOBOX_ITEM_1_VAL=1
QGC_TOOL_WIDGET_ITEMS\size=8
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_COMBOBOX_COUNT=9
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_COMBOBOX_ITEM_0_TEXT=1200
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_COMBOBOX_ITEM_0_VAL=1
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_COMBOBOX_ITEM_1_TEXT=2400
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_COMBOBOX_ITEM_1_VAL=2
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_COMBOBOX_ITEM_2_TEXT=4800
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_COMBOBOX_ITEM_2_VAL=4
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_COMBOBOX_ITEM_3_TEXT=9600
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_COMBOBOX_ITEM_3_VAL=9
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_COMBOBOX_ITEM_4_TEXT=19200
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_COMBOBOX_ITEM_4_VAL=19
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_COMBOBOX_ITEM_5_TEXT=38400
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_COMBOBOX_ITEM_5_VAL=38
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_COMBOBOX_ITEM_6_TEXT=57600
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_COMBOBOX_ITEM_6_VAL=57
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_COMBOBOX_ITEM_7_TEXT=111100
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_COMBOBOX_ITEM_7_VAL=111
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_COMBOBOX_ITEM_8_TEXT=115200
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_COMBOBOX_ITEM_8_VAL=115
QGC_TOOL_WIDGET_ITEMS\size=6
......@@ -29,4 +29,25 @@ QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_SLIDER_PARAMID=ROV_SONAR_TRIG
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_SLIDER_COMPONENTID=1
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_SLIDER_MIN=0
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_SLIDER_MAX=100
QGC_TOOL_WIDGET_ITEMS\size=5
QGC_TOOL_WIDGET_ITEMS\6\TYPE=COMBO
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_COMBOBOX_DESCRIPTION=Skid Steering Input
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_COMBOBOX_PARAMID=SKID_STEER_IN
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_COMBOBOX_COMPONENTID=1
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_COMBOBOX_COUNT=2
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_COMBOBOX_ITEM_0_TEXT=Disabled
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_COMBOBOX_ITEM_0_VAL=0
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_COMBOBOX_ITEM_1_TEXT=Enabled
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_COMBOBOX_ITEM_1_VAL=1
QGC_TOOL_WIDGET_ITEMS\7\TYPE=COMBO
QGC_TOOL_WIDGET_ITEMS\7\QGC_PARAM_COMBOBOX_DESCRIPTION=Skid Steering Output
QGC_TOOL_WIDGET_ITEMS\7\QGC_PARAM_COMBOBOX_PARAMID=SKID_STEER_OUT
QGC_TOOL_WIDGET_ITEMS\7\QGC_PARAM_COMBOBOX_COMPONENTID=1
QGC_TOOL_WIDGET_ITEMS\7\QGC_PARAM_COMBOBOX_COUNT=2
QGC_TOOL_WIDGET_ITEMS\7\QGC_PARAM_COMBOBOX_ITEM_0_TEXT=Disabled
QGC_TOOL_WIDGET_ITEMS\7\QGC_PARAM_COMBOBOX_ITEM_0_VAL=0
QGC_TOOL_WIDGET_ITEMS\7\QGC_PARAM_COMBOBOX_ITEM_1_TEXT=Enabled
QGC_TOOL_WIDGET_ITEMS\7\QGC_PARAM_COMBOBOX_ITEM_1_VAL=1
QGC_TOOL_WIDGET_ITEMS\size=6
\ No newline at end of file
[QuadCoptor%20Frame Setup]
QGC_TOOL_WIDGET_ITEMS\1\TYPE=COMBO
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_DESCRIPTION=Quadcoptor Frame Type
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_PARAMID=FRAME
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_COMPONENTID=1
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_COUNT=3
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_ITEM_0_TEXT=Plus
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_ITEM_0_VAL=0
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_ITEM_0_IMG=files/images/mavs/frames_plus.png
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_ITEM_1_TEXT=X
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_ITEM_1_IMG=files/images/mavs/frames_x.png
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_ITEM_1_VAL=1
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_ITEM_2_TEXT=V
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_ITEM_2_VAL=2
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_ITEM_2_IMG=files/images/mavs/frames-05.png
QGC_TOOL_WIDGET_ITEMS\size=1
\ No newline at end of file
[Airframe%20Config]
QGC_TOOL_WIDGET_ITEMS\1\TYPE=COMBO
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_DESCRIPTION=Quadcoptor Configuration
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_PARAMID=FRAME
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_COMPONENTID=1
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_COUNT=3
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_ITEM_0_TEXT=Plus
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_ITEM_0_VAL=0
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_ITEM_1_TEXT=X
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_ITEM_1_VAL=1
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_ITEM_2_TEXT=V
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_COMBOBOX_ITEM_2_VAL=2
QGC_TOOL_WIDGET_ITEMS\size=1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:18pt;">Sensor Calibration</span></p>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Lucida Grande'; font-size:16pt;"><br /></p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:12pt;">The PX4FMU sensors can be calibrated with the buttons on the right. Gyroscope (GYRO) and Accelerometer (ACCEL) calibrations have to be performed with a static, unmoved system. The magnetometer calibration needs to be performed while moving the device.</span></p>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Lucida Grande'; font-size:12pt;"><br /></p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:16pt;">Magnetometer Calibration</span></p>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Lucida Grande'; font-size:16pt;"><br /></p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:12pt;">Carefully follow the instructions. Click on MAG to start the calibration. Watch the communication console for further instructions (Available through Main Menu -&gt; Tool Widgets -&gt; Communication Console). Do not calibrate the vehicle in vincinity of metal, e.g. from a table or chair. Start the calibration, leave the system unmoved on the table. Wait for the double beep. Next move the system in a figure eight, roll and pitch it strongly, rotate around all axes and perform the figure eight also upside-down. The calibration is finished after the triple beep.</span></p>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Lucida Grande'; font-size:12pt;"><br /></p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:16pt;">Accelerometer Calibration</span></p>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Lucida Grande'; font-size:16pt;"><br /></p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:12pt;">Put the system on an absolutely level surface and press ACCEL, wait for the the triple beep. Do not move the system. If no flat surface is available, rather not calibrate the system.</span></p>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Lucida Grande'; font-size:12pt;"><br /></p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:16pt;">Gyroscope Calibration</span></p>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Lucida Grande'; font-size:16pt;"><br /></p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:12pt;">The orientation is not important for this calibration, but do not move the system until the triple beep or the matching text message in the console.</span></p></body></html>
\ No newline at end of file
[PX4%20Calibration%20Tool]
QGC_TOOL_WIDGET_ITEMS\1\TYPE=COMMANDBUTTON
QGC_TOOL_WIDGET_ITEMS\1\QGC_COMMAND_BUTTON_DESCRIPTION=Reboot (only in standby)
QGC_TOOL_WIDGET_ITEMS\1\QGC_COMMAND_BUTTON_BUTTONTEXT=REBOOT
QGC_TOOL_WIDGET_ITEMS\1\QGC_COMMAND_BUTTON_COMMANDID=246
QGC_TOOL_WIDGET_ITEMS\1\QGC_COMMAND_BUTTON_PARAMS_VISIBLE=false
QGC_TOOL_WIDGET_ITEMS\1\QGC_COMMAND_BUTTON_PARAM1=1
QGC_TOOL_WIDGET_ITEMS\1\QGC_COMMAND_BUTTON_PARAM2=0
QGC_TOOL_WIDGET_ITEMS\1\QGC_COMMAND_BUTTON_PARAM3=0
QGC_TOOL_WIDGET_ITEMS\1\QGC_COMMAND_BUTTON_PARAM4=0
QGC_TOOL_WIDGET_ITEMS\1\QGC_COMMAND_BUTTON_PARAM5=0
QGC_TOOL_WIDGET_ITEMS\1\QGC_COMMAND_BUTTON_PARAM6=0
QGC_TOOL_WIDGET_ITEMS\1\QGC_COMMAND_BUTTON_PARAM7=0
QGC_TOOL_WIDGET_ITEMS\2\TYPE=COMMANDBUTTON
QGC_TOOL_WIDGET_ITEMS\2\QGC_COMMAND_BUTTON_DESCRIPTION=Magnetometer calibration
QGC_TOOL_WIDGET_ITEMS\2\QGC_COMMAND_BUTTON_BUTTONTEXT=MAG
QGC_TOOL_WIDGET_ITEMS\2\QGC_COMMAND_BUTTON_COMMANDID=241
QGC_TOOL_WIDGET_ITEMS\2\QGC_COMMAND_BUTTON_PARAMS_VISIBLE=false
QGC_TOOL_WIDGET_ITEMS\2\QGC_COMMAND_BUTTON_PARAM1=0
QGC_TOOL_WIDGET_ITEMS\2\QGC_COMMAND_BUTTON_PARAM2=1
QGC_TOOL_WIDGET_ITEMS\2\QGC_COMMAND_BUTTON_PARAM3=0
QGC_TOOL_WIDGET_ITEMS\2\QGC_COMMAND_BUTTON_PARAM4=0
QGC_TOOL_WIDGET_ITEMS\2\QGC_COMMAND_BUTTON_PARAM5=0
QGC_TOOL_WIDGET_ITEMS\2\QGC_COMMAND_BUTTON_PARAM6=0
QGC_TOOL_WIDGET_ITEMS\2\QGC_COMMAND_BUTTON_PARAM7=0
QGC_TOOL_WIDGET_ITEMS\3\TYPE=COMMANDBUTTON
QGC_TOOL_WIDGET_ITEMS\3\QGC_COMMAND_BUTTON_DESCRIPTION=Accelerometer calibration
QGC_TOOL_WIDGET_ITEMS\3\QGC_COMMAND_BUTTON_BUTTONTEXT=ACCEL
QGC_TOOL_WIDGET_ITEMS\3\QGC_COMMAND_BUTTON_COMMANDID=241
QGC_TOOL_WIDGET_ITEMS\3\QGC_COMMAND_BUTTON_PARAMS_VISIBLE=false
QGC_TOOL_WIDGET_ITEMS\3\QGC_COMMAND_BUTTON_PARAM1=0
QGC_TOOL_WIDGET_ITEMS\3\QGC_COMMAND_BUTTON_PARAM2=0
QGC_TOOL_WIDGET_ITEMS\3\QGC_COMMAND_BUTTON_PARAM3=0
QGC_TOOL_WIDGET_ITEMS\3\QGC_COMMAND_BUTTON_PARAM4=0
QGC_TOOL_WIDGET_ITEMS\3\QGC_COMMAND_BUTTON_PARAM5=1
QGC_TOOL_WIDGET_ITEMS\3\QGC_COMMAND_BUTTON_PARAM6=0
QGC_TOOL_WIDGET_ITEMS\3\QGC_COMMAND_BUTTON_PARAM7=0
QGC_TOOL_WIDGET_ITEMS\4\TYPE=COMMANDBUTTON
QGC_TOOL_WIDGET_ITEMS\4\QGC_COMMAND_BUTTON_DESCRIPTION=Gyroscope calibration
QGC_TOOL_WIDGET_ITEMS\4\QGC_COMMAND_BUTTON_BUTTONTEXT=GYRO
QGC_TOOL_WIDGET_ITEMS\4\QGC_COMMAND_BUTTON_COMMANDID=241
QGC_TOOL_WIDGET_ITEMS\4\QGC_COMMAND_BUTTON_PARAMS_VISIBLE=false
QGC_TOOL_WIDGET_ITEMS\4\QGC_COMMAND_BUTTON_PARAM1=1
QGC_TOOL_WIDGET_ITEMS\4\QGC_COMMAND_BUTTON_PARAM2=0
QGC_TOOL_WIDGET_ITEMS\4\QGC_COMMAND_BUTTON_PARAM3=0
QGC_TOOL_WIDGET_ITEMS\4\QGC_COMMAND_BUTTON_PARAM4=0
QGC_TOOL_WIDGET_ITEMS\4\QGC_COMMAND_BUTTON_PARAM5=0
QGC_TOOL_WIDGET_ITEMS\4\QGC_COMMAND_BUTTON_PARAM6=0
QGC_TOOL_WIDGET_ITEMS\4\QGC_COMMAND_BUTTON_PARAM7=0
QGC_TOOL_WIDGET_ITEMS\5\QGC_COMMAND_BUTTON_DESCRIPTION=RC Trim calibration
QGC_TOOL_WIDGET_ITEMS\5\QGC_COMMAND_BUTTON_BUTTONTEXT=TRIM
QGC_TOOL_WIDGET_ITEMS\5\QGC_COMMAND_BUTTON_COMMANDID=241
QGC_TOOL_WIDGET_ITEMS\5\QGC_COMMAND_BUTTON_PARAMS_VISIBLE=false
QGC_TOOL_WIDGET_ITEMS\5\QGC_COMMAND_BUTTON_PARAM1=1
QGC_TOOL_WIDGET_ITEMS\5\QGC_COMMAND_BUTTON_PARAM2=0
QGC_TOOL_WIDGET_ITEMS\5\QGC_COMMAND_BUTTON_PARAM3=0
QGC_TOOL_WIDGET_ITEMS\5\QGC_COMMAND_BUTTON_PARAM4=1
QGC_TOOL_WIDGET_ITEMS\5\QGC_COMMAND_BUTTON_PARAM5=0
QGC_TOOL_WIDGET_ITEMS\5\QGC_COMMAND_BUTTON_PARAM6=0
QGC_TOOL_WIDGET_ITEMS\5\QGC_COMMAND_BUTTON_PARAM7=0
QGC_TOOL_WIDGET_ITEMS\size=5
[PX4%20Fixed%20Wing%20Attitude%20Control]
QGC_TOOL_WIDGET_ITEMS\1\TYPE=SLIDER
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_SLIDER_DESCRIPTION=Roll Rate P Gain
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_SLIDER_PARAMID=FW_ROLLRATE_P
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_SLIDER_COMPONENTID=50
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_SLIDER_MIN=0
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_SLIDER_MAX=2
QGC_TOOL_WIDGET_ITEMS\size=1
[PX4%20Fixed%20Wing%20Position%20Control]
QGC_TOOL_WIDGET_ITEMS\1\TYPE=SLIDER
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_SLIDER_DESCRIPTION=Heading P Gain
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_SLIDER_PARAMID=FW_HEADING_P
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_SLIDER_COMPONENTID=50
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_SLIDER_MIN=0
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_SLIDER_MAX=2
QGC_TOOL_WIDGET_ITEMS\size=1
[PX4%20Multirotor%20Attitude%20Control]
QGC_TOOL_WIDGET_ITEMS\1\TYPE=SLIDER
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_SLIDER_DESCRIPTION=Attitude P Gain
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_SLIDER_PARAMID=MC_ATT_P
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_SLIDER_COMPONENTID=50
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_SLIDER_MIN=0
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_SLIDER_MAX=1.5
QGC_TOOL_WIDGET_ITEMS\2\TYPE=SLIDER
QGC_TOOL_WIDGET_ITEMS\2\QGC_PARAM_SLIDER_DESCRIPTION=Attitude I Gain
QGC_TOOL_WIDGET_ITEMS\2\QGC_PARAM_SLIDER_PARAMID=MC_ATT_I
QGC_TOOL_WIDGET_ITEMS\2\QGC_PARAM_SLIDER_COMPONENTID=50
QGC_TOOL_WIDGET_ITEMS\2\QGC_PARAM_SLIDER_MIN=0
QGC_TOOL_WIDGET_ITEMS\2\QGC_PARAM_SLIDER_MAX=1
QGC_TOOL_WIDGET_ITEMS\3\TYPE=SLIDER
QGC_TOOL_WIDGET_ITEMS\3\QGC_PARAM_SLIDER_DESCRIPTION=Attitude D Gain
QGC_TOOL_WIDGET_ITEMS\3\QGC_PARAM_SLIDER_PARAMID=MC_ATT_D
QGC_TOOL_WIDGET_ITEMS\3\QGC_PARAM_SLIDER_COMPONENTID=50
QGC_TOOL_WIDGET_ITEMS\3\QGC_PARAM_SLIDER_MIN=0
QGC_TOOL_WIDGET_ITEMS\3\QGC_PARAM_SLIDER_MAX=1
QGC_TOOL_WIDGET_ITEMS\4\TYPE=SLIDER
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_SLIDER_DESCRIPTION=Attitude Anti-Windup
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_SLIDER_PARAMID=MC_ATT_AWU
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_SLIDER_COMPONENTID=50
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_SLIDER_MIN=0
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_SLIDER_MAX=1
QGC_TOOL_WIDGET_ITEMS\5\TYPE=SLIDER
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_SLIDER_DESCRIPTION=Attitude Output Limit
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_SLIDER_PARAMID=MC_ATT_LIM
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_SLIDER_COMPONENTID=50
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_SLIDER_MIN=0
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_SLIDER_MAX=3
QGC_TOOL_WIDGET_ITEMS\6\TYPE=SLIDER
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_SLIDER_DESCRIPTION=Heading / Yaw P Gain
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_SLIDER_PARAMID=MC_YAWPOS_P
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_SLIDER_COMPONENTID=50
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_SLIDER_MIN=0
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_SLIDER_MAX=1.2
QGC_TOOL_WIDGET_ITEMS\7\TYPE=SLIDER
QGC_TOOL_WIDGET_ITEMS\7\QGC_PARAM_SLIDER_DESCRIPTION=Heading / Yaw D Gain
QGC_TOOL_WIDGET_ITEMS\7\QGC_PARAM_SLIDER_PARAMID=MC_YAWPOS_D
QGC_TOOL_WIDGET_ITEMS\7\QGC_PARAM_SLIDER_COMPONENTID=50
QGC_TOOL_WIDGET_ITEMS\7\QGC_PARAM_SLIDER_MIN=0
QGC_TOOL_WIDGET_ITEMS\7\QGC_PARAM_SLIDER_MAX=1
QGC_TOOL_WIDGET_ITEMS\8\TYPE=SLIDER
QGC_TOOL_WIDGET_ITEMS\8\QGC_PARAM_SLIDER_DESCRIPTION=Roll / Pitch Rate P Gain
QGC_TOOL_WIDGET_ITEMS\8\QGC_PARAM_SLIDER_PARAMID=MC_ATTRATE_P
QGC_TOOL_WIDGET_ITEMS\8\QGC_PARAM_SLIDER_COMPONENTID=50
QGC_TOOL_WIDGET_ITEMS\8\QGC_PARAM_SLIDER_MIN=0
QGC_TOOL_WIDGET_ITEMS\8\QGC_PARAM_SLIDER_MAX=1.5
QGC_TOOL_WIDGET_ITEMS\9\TYPE=SLIDER
QGC_TOOL_WIDGET_ITEMS\9\QGC_PARAM_SLIDER_DESCRIPTION=Roll / Pitch Rate D Gain
QGC_TOOL_WIDGET_ITEMS\9\QGC_PARAM_SLIDER_PARAMID=MC_ATTRATE_D
QGC_TOOL_WIDGET_ITEMS\9\QGC_PARAM_SLIDER_COMPONENTID=50
QGC_TOOL_WIDGET_ITEMS\9\QGC_PARAM_SLIDER_MIN=0
QGC_TOOL_WIDGET_ITEMS\9\QGC_PARAM_SLIDER_MAX=0.3
QGC_TOOL_WIDGET_ITEMS\10\TYPE=SLIDER
QGC_TOOL_WIDGET_ITEMS\10\QGC_PARAM_SLIDER_DESCRIPTION=Yaw Rate P Gain
QGC_TOOL_WIDGET_ITEMS\10\QGC_PARAM_SLIDER_PARAMID=MC_YAWRATE_P
QGC_TOOL_WIDGET_ITEMS\10\QGC_PARAM_SLIDER_COMPONENTID=50
QGC_TOOL_WIDGET_ITEMS\10\QGC_PARAM_SLIDER_MIN=0
QGC_TOOL_WIDGET_ITEMS\10\QGC_PARAM_SLIDER_MAX=1
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_SLIDER_DISPLAY_INFO=false
QGC_TOOL_WIDGET_ITEMS\2\QGC_PARAM_SLIDER_DISPLAY_INFO=true
QGC_TOOL_WIDGET_ITEMS\3\QGC_PARAM_SLIDER_DISPLAY_INFO=true
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_SLIDER_DISPLAY_INFO=true
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_SLIDER_DISPLAY_INFO=true
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_SLIDER_DISPLAY_INFO=true
QGC_TOOL_WIDGET_ITEMS\7\QGC_PARAM_SLIDER_DISPLAY_INFO=true
QGC_TOOL_WIDGET_ITEMS\8\QGC_PARAM_SLIDER_DISPLAY_INFO=true
QGC_TOOL_WIDGET_ITEMS\9\QGC_PARAM_SLIDER_DISPLAY_INFO=true
QGC_TOOL_WIDGET_ITEMS\10\QGC_PARAM_SLIDER_DISPLAY_INFO=true
QGC_TOOL_WIDGET_ITEMS\size=10
[PX4%20Multirotor%20Attitude%20Control]
QGC_TOOL_WIDGET_ITEMS\1\TYPE=SLIDER
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_SLIDER_DESCRIPTION=Attitude P Gain
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_SLIDER_PARAMID=MC_ATT_P
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_SLIDER_COMPONENTID=50
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_SLIDER_MIN=0
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_SLIDER_MAX=1.5
QGC_TOOL_WIDGET_ITEMS\2\TYPE=SLIDER
QGC_TOOL_WIDGET_ITEMS\2\QGC_PARAM_SLIDER_DESCRIPTION=Attitude I Gain
QGC_TOOL_WIDGET_ITEMS\2\QGC_PARAM_SLIDER_PARAMID=MC_ATT_I
QGC_TOOL_WIDGET_ITEMS\2\QGC_PARAM_SLIDER_COMPONENTID=50
QGC_TOOL_WIDGET_ITEMS\2\QGC_PARAM_SLIDER_MIN=0
QGC_TOOL_WIDGET_ITEMS\2\QGC_PARAM_SLIDER_MAX=1
QGC_TOOL_WIDGET_ITEMS\3\TYPE=SLIDER
QGC_TOOL_WIDGET_ITEMS\3\QGC_PARAM_SLIDER_DESCRIPTION=Attitude D Gain
QGC_TOOL_WIDGET_ITEMS\3\QGC_PARAM_SLIDER_PARAMID=MC_ATT_D
QGC_TOOL_WIDGET_ITEMS\3\QGC_PARAM_SLIDER_COMPONENTID=50
QGC_TOOL_WIDGET_ITEMS\3\QGC_PARAM_SLIDER_MIN=0
QGC_TOOL_WIDGET_ITEMS\3\QGC_PARAM_SLIDER_MAX=1
QGC_TOOL_WIDGET_ITEMS\4\TYPE=SLIDER
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_SLIDER_DESCRIPTION=Attitude Anti-Windup
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_SLIDER_PARAMID=MC_ATT_AWU
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_SLIDER_COMPONENTID=50
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_SLIDER_MIN=0
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_SLIDER_MAX=1
QGC_TOOL_WIDGET_ITEMS\5\TYPE=SLIDER
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_SLIDER_DESCRIPTION=Attitude Output Limit
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_SLIDER_PARAMID=MC_ATT_LIM
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_SLIDER_COMPONENTID=50
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_SLIDER_MIN=0
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_SLIDER_MAX=3
QGC_TOOL_WIDGET_ITEMS\6\TYPE=SLIDER
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_SLIDER_DESCRIPTION=Heading / Yaw P Gain
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_SLIDER_PARAMID=MC_YAWPOS_P
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_SLIDER_COMPONENTID=50
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_SLIDER_MIN=0
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_SLIDER_MAX=1.2
QGC_TOOL_WIDGET_ITEMS\7\TYPE=SLIDER
QGC_TOOL_WIDGET_ITEMS\7\QGC_PARAM_SLIDER_DESCRIPTION=Heading / Yaw D Gain
QGC_TOOL_WIDGET_ITEMS\7\QGC_PARAM_SLIDER_PARAMID=MC_YAWPOS_D
QGC_TOOL_WIDGET_ITEMS\7\QGC_PARAM_SLIDER_COMPONENTID=50
QGC_TOOL_WIDGET_ITEMS\7\QGC_PARAM_SLIDER_MIN=0
QGC_TOOL_WIDGET_ITEMS\7\QGC_PARAM_SLIDER_MAX=1
QGC_TOOL_WIDGET_ITEMS\8\TYPE=SLIDER
QGC_TOOL_WIDGET_ITEMS\8\QGC_PARAM_SLIDER_DESCRIPTION=Roll / Pitch Rate P Gain
QGC_TOOL_WIDGET_ITEMS\8\QGC_PARAM_SLIDER_PARAMID=MC_ATTRATE_P
QGC_TOOL_WIDGET_ITEMS\8\QGC_PARAM_SLIDER_COMPONENTID=50
QGC_TOOL_WIDGET_ITEMS\8\QGC_PARAM_SLIDER_MIN=0
QGC_TOOL_WIDGET_ITEMS\8\QGC_PARAM_SLIDER_MAX=1.5
QGC_TOOL_WIDGET_ITEMS\9\TYPE=SLIDER
QGC_TOOL_WIDGET_ITEMS\9\QGC_PARAM_SLIDER_DESCRIPTION=Roll / Pitch Rate D Gain
QGC_TOOL_WIDGET_ITEMS\9\QGC_PARAM_SLIDER_PARAMID=MC_ATTRATE_D
QGC_TOOL_WIDGET_ITEMS\9\QGC_PARAM_SLIDER_COMPONENTID=50
QGC_TOOL_WIDGET_ITEMS\9\QGC_PARAM_SLIDER_MIN=0
QGC_TOOL_WIDGET_ITEMS\9\QGC_PARAM_SLIDER_MAX=0.3
QGC_TOOL_WIDGET_ITEMS\10\TYPE=SLIDER
QGC_TOOL_WIDGET_ITEMS\10\QGC_PARAM_SLIDER_DESCRIPTION=Yaw Rate P Gain
QGC_TOOL_WIDGET_ITEMS\10\QGC_PARAM_SLIDER_PARAMID=MC_YAWRATE_P
QGC_TOOL_WIDGET_ITEMS\10\QGC_PARAM_SLIDER_COMPONENTID=50
QGC_TOOL_WIDGET_ITEMS\10\QGC_PARAM_SLIDER_MIN=0
QGC_TOOL_WIDGET_ITEMS\10\QGC_PARAM_SLIDER_MAX=1
QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_SLIDER_DISPLAY_INFO=false
QGC_TOOL_WIDGET_ITEMS\2\QGC_PARAM_SLIDER_DISPLAY_INFO=true
QGC_TOOL_WIDGET_ITEMS\3\QGC_PARAM_SLIDER_DISPLAY_INFO=true
QGC_TOOL_WIDGET_ITEMS\4\QGC_PARAM_SLIDER_DISPLAY_INFO=true
QGC_TOOL_WIDGET_ITEMS\5\QGC_PARAM_SLIDER_DISPLAY_INFO=true
QGC_TOOL_WIDGET_ITEMS\6\QGC_PARAM_SLIDER_DISPLAY_INFO=true
QGC_TOOL_WIDGET_ITEMS\7\QGC_PARAM_SLIDER_DISPLAY_INFO=true
QGC_TOOL_WIDGET_ITEMS\8\QGC_PARAM_SLIDER_DISPLAY_INFO=true
QGC_TOOL_WIDGET_ITEMS\9\QGC_PARAM_SLIDER_DISPLAY_INFO=true
QGC_TOOL_WIDGET_ITEMS\10\QGC_PARAM_SLIDER_DISPLAY_INFO=true
QGC_TOOL_WIDGET_ITEMS\size=10
......@@ -228,7 +228,8 @@ FORMS += src/ui/MainWindow.ui \
src/ui/QGCHilFlightGearConfiguration.ui \
src/ui/QGCHilJSBSimConfiguration.ui \
src/ui/QGCHilXPlaneConfiguration.ui \
src/ui/designer/QGCComboBox.ui
src/ui/designer/QGCComboBox.ui \
src/ui/designer/QGCTextLabel.ui
INCLUDEPATH += src \
src/ui \
src/ui/linechart \
......@@ -372,7 +373,8 @@ HEADERS += src/MG.h \
src/ui/QGCHilFlightGearConfiguration.h \
src/ui/QGCHilJSBSimConfiguration.h \
src/ui/QGCHilXPlaneConfiguration.h \
src/ui/designer/QGCComboBox.h
src/ui/designer/QGCComboBox.h \
src/ui/designer/QGCTextLabel.h
# Google Earth is only supported on Mac OS and Windows with Visual Studio Compiler
macx|macx-g++|macx-g++42|win32-msvc2008|win32-msvc2010::HEADERS += src/ui/map3D/QGCGoogleEarthView.h
......@@ -535,7 +537,8 @@ SOURCES += src/main.cc \
src/ui/QGCHilFlightGearConfiguration.cc \
src/ui/QGCHilJSBSimConfiguration.cc \
src/ui/QGCHilXPlaneConfiguration.cc \
src/ui/designer/QGCComboBox.cc
src/ui/designer/QGCComboBox.cc \
src/ui/designer/QGCTextLabel.cc
# Enable Google Earth only on Mac OS and Windows with Visual Studio compiler
macx|macx-g++|macx-g++42|win32-msvc2008|win32-msvc2010::SOURCES += src/ui/map3D/QGCGoogleEarthView.cc
......@@ -669,4 +672,3 @@ win32-msvc2008|win32-msvc2010 {
}
unix:!macx:!symbian: LIBS += -losg
>>>>>>> New ComboBox param configuration UI element, and qgw widgets for general
......@@ -156,7 +156,8 @@ void QGCVehicleConfig::stopCalibrationRC()
ui->rcTypeComboBox->setEnabled(true);
ui->rcCalibrationButton->setText(tr("Start RC Calibration"));
}
void QGCVehicleConfig::loadQgcConfig()
void QGCVehicleConfig::loadQgcConfig(bool primary)
{
QDir autopilotdir(qApp->applicationDirPath() + "/files/" + mav->getAutopilotTypeName().toLower());
QDir generaldir = QDir(autopilotdir.absolutePath() + "/general/widgets");
......@@ -185,15 +186,18 @@ void QGCVehicleConfig::loadQgcConfig()
box->setTitle(tool->objectName());
box->setLayout(new QVBoxLayout());
box->layout()->addWidget(tool);
if (left)
{
left = false;
ui->leftGeneralLayout->addWidget(box);
}
else
if (!primary)
{
left = true;
ui->rightGeneralLayout->addWidget(box);
if (left)
{
left = false;
ui->leftGeneralLayout->addWidget(box);
}
else
{
left = true;
ui->rightGeneralLayout->addWidget(box);
}
}
} else {
delete tool;
......@@ -213,15 +217,18 @@ void QGCVehicleConfig::loadQgcConfig()
box->setTitle(tool->objectName());
box->setLayout(new QVBoxLayout());
box->layout()->addWidget(tool);
if (left)
{
left = false;
ui->leftAdvancedLayout->addWidget(box);
}
else
if (!primary)
{
left = true;
ui->rightAdvancedLayout->addWidget(box);
if (left)
{
left = false;
ui->leftAdvancedLayout->addWidget(box);
}
else
{
left = true;
ui->rightAdvancedLayout->addWidget(box);
}
}
} else {
......@@ -230,18 +237,112 @@ void QGCVehicleConfig::loadQgcConfig()
}
}
//Load tabs for general configuration
foreach (QString dir,generaldir.entryList(QDir::Dirs | QDir::NoDotAndDotDot))
{
QWidget *tab = new QWidget(ui->tabWidget);
tab->setLayout(new QVBoxLayout());
ui->tabWidget->insertTab(2,tab,dir);
tab->show();
QGroupBox *gbox = new QGroupBox(tab);
tab->layout()->addWidget(gbox);
gbox->show();
gbox->setLayout(new QVBoxLayout());
QDir newdir = QDir(generaldir.absoluteFilePath(dir));
foreach (QString file,newdir.entryList(QDir::Files| QDir::NoDotAndDotDot))
{
if (file.toLower().endsWith(".qgw")) {
tool = new QGCToolWidget("", this);
if (tool->loadSettings(newdir.absoluteFilePath(file), false))
{
toolWidgets.append(tool);
//ui->sensorLayout->addWidget(tool);
QGroupBox *box = new QGroupBox(this);
box->setTitle(tool->objectName());
box->setLayout(new QVBoxLayout());
box->layout()->addWidget(tool);
gbox->layout()->addWidget(box);
} else {
delete tool;
}
}
}
}
//Load tabs for vehicle specific configuration
foreach (QString dir,vehicledir.entryList(QDir::Dirs | QDir::NoDotAndDotDot))
{
QWidget *tab = new QWidget(ui->tabWidget);
tab->setLayout(new QVBoxLayout());
ui->tabWidget->insertTab(2,tab,dir);
tab->show();
QGroupBox *gbox = new QGroupBox(tab);
tab->layout()->addWidget(gbox);
gbox->show();
gbox->setLayout(new QVBoxLayout());
QDir newdir = QDir(vehicledir.absoluteFilePath(dir));
foreach (QString file,newdir.entryList(QDir::Files| QDir::NoDotAndDotDot))
{
if (file.toLower().endsWith(".qgw")) {
tool = new QGCToolWidget("", this);
tool->addUAS(mav);
if (tool->loadSettings(newdir.absoluteFilePath(file), false))
{
toolWidgets.append(tool);
//ui->sensorLayout->addWidget(tool);
QGroupBox *box = new QGroupBox(this);
box->setTitle(tool->objectName());
box->setLayout(new QVBoxLayout());
box->layout()->addWidget(tool);
gbox->layout()->addWidget(box);
} else {
delete tool;
}
}
}
}
// Load calibration
//TODO: Handle this more gracefully, maybe have it scan the directory for multiple calibration entries?
tool = new QGCToolWidget("", this);
tool->addUAS(mav);
if (tool->loadSettings(autopilotdir.absolutePath() + "/general/calibration/calibration.qgw", false))
{
toolWidgets.append(tool);
ui->sensorLayout->addWidget(tool);
QGroupBox *box = new QGroupBox(this);
box->setTitle(tool->objectName());
box->setLayout(new QVBoxLayout());
box->layout()->addWidget(tool);
ui->sensorLayout->addWidget(box);
} else {
delete tool;
}
tool = new QGCToolWidget("", this);
tool->addUAS(mav);
if (tool->loadSettings(autopilotdir.absolutePath() + "/" + mav->getSystemTypeName().toLower() + "/calibration/calibration.qgw", false))
{
toolWidgets.append(tool);
QGroupBox *box = new QGroupBox(this);
box->setTitle(tool->objectName());
box->setLayout(new QVBoxLayout());
box->layout()->addWidget(tool);
ui->sensorLayout->addWidget(box);
} else {
delete tool;
}
//description.txt
QFile sensortipsfile(autopilotdir.absolutePath() + "/general/calibration/description.txt");
sensortipsfile.open(QIODevice::ReadOnly);
ui->sensorTips->setHtml(sensortipsfile.readAll());
sensortipsfile.close();
}
void QGCVehicleConfig::loadConfig()
......@@ -267,10 +368,11 @@ void QGCVehicleConfig::loadConfig()
QFile xmlfile(autopilotdir.absolutePath() + "/arduplane.pdef.xml");
if (xmlfile.exists() && !xmlfile.open(QIODevice::ReadOnly))
{
loadQgcConfig();
loadQgcConfig(false);
doneLoadingConfig = true;
return;
}
loadQgcConfig(true);
QXmlStreamReader xml(xmlfile.readAll());
xmlfile.close();
......@@ -394,6 +496,7 @@ void QGCVehicleConfig::loadConfig()
set["count"] = arraycount;
tool = new QGCToolWidget("", this);
tool->addUAS(mav);
tool->setTitle(parametersname);
tool->setObjectName(parametersname);
tool->setSettings(set);
......
......@@ -32,7 +32,7 @@ public slots:
/** Set the MAV currently being calibrated */
void setActiveUAS(UASInterface* active);
/** Fallback function, automatically called by loadConfig() upon failure to find and xml file*/
void loadQgcConfig();
void loadQgcConfig(bool primary);
/** Load configuration from xml file */
void loadConfig();
/** Start the RC calibration routine */
......
......@@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>780</width>
<height>586</height>
<width>760</width>
<height>541</height>
</rect>
</property>
<property name="windowTitle">
......@@ -725,50 +725,47 @@
<attribute name="title">
<string>Sensor Calibration</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_6" columnstretch="55,45">
<property name="topMargin">
<number>20</number>
</property>
<item row="0" column="1">
<layout class="QVBoxLayout" name="sensorLayout"/>
</item>
<item row="1" column="1">
<spacer name="verticalSpacer_8">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="0" rowspan="2">
<widget class="QTextBrowser" name="sensorTips">
<property name="html">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
<layout class="QHBoxLayout" name="horizontalLayout_9">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_8">
<item>
<widget class="QTextBrowser" name="sensorTips">
<property name="html">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Lucida Grande'; font-size:18pt;&quot;&gt;Sensor Calibration&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Lucida Grande'; font-size:16pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Lucida Grande'; font-size:12pt;&quot;&gt;The PX4FMU sensors can be calibrated with the buttons on the right. Gyroscope (GYRO) and Accelerometer (ACCEL) calibrations have to be performed with a static, unmoved system. The magnetometer calibration needs to be performed while moving the device.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Lucida Grande'; font-size:12pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Lucida Grande'; font-size:16pt;&quot;&gt;Magnetometer Calibration&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Lucida Grande'; font-size:16pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Lucida Grande'; font-size:12pt;&quot;&gt;Carefully follow the instructions. Click on MAG to start the calibration. Watch the communication console for further instructions (Available through Main Menu -&amp;gt; Tool Widgets -&amp;gt; Communication Console). Do not calibrate the vehicle in vincinity of metal, e.g. from a table or chair. Start the calibration, leave the system unmoved on the table. Wait for the double beep. Next move the system in a figure eight, roll and pitch it strongly, rotate around all axes and perform the figure eight also upside-down. The calibration is finished after the triple beep.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Lucida Grande'; font-size:12pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Lucida Grande'; font-size:16pt;&quot;&gt;Accelerometer Calibration&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Lucida Grande'; font-size:16pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Lucida Grande'; font-size:12pt;&quot;&gt;Put the system on an absolutely level surface and press ACCEL, wait for the the triple beep. Do not move the system. If no flat surface is available, rather not calibrate the system.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Lucida Grande'; font-size:12pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Lucida Grande'; font-size:16pt;&quot;&gt;Gyroscope Calibration&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Lucida Grande'; font-size:16pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Lucida Grande'; font-size:12pt;&quot;&gt;The orientation is not important for this calibration, but do not move the system until the triple beep or the matching text message in the console.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_9" stretch="0">
<item>
<widget class="QScrollArea" name="scrollArea_3">
<property name="widgetResizable">
<bool>true</bool>
</property>
<widget class="QWidget" name="scrollAreaWidgetContents_7">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>354</width>
<height>448</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_10">
<item>
<layout class="QVBoxLayout" name="sensorLayout"/>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</widget>
......@@ -825,8 +822,8 @@ p, li { white-space: pre-wrap; }
<rect>
<x>0</x>
<y>0</y>
<width>364</width>
<height>449</height>
<width>354</width>
<height>404</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_4">
......@@ -862,8 +859,8 @@ p, li { white-space: pre-wrap; }
<rect>
<x>0</x>
<y>0</y>
<width>364</width>
<height>449</height>
<width>354</width>
<height>404</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_5">
......@@ -937,8 +934,8 @@ p, li { white-space: pre-wrap; }
<rect>
<x>0</x>
<y>0</y>
<width>364</width>
<height>449</height>
<width>354</width>
<height>404</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_7">
......@@ -974,8 +971,8 @@ p, li { white-space: pre-wrap; }
<rect>
<x>0</x>
<y>0</y>
<width>364</width>
<height>449</height>
<width>354</width>
<height>404</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_8">
......
......@@ -39,6 +39,7 @@ QGCComboBox::QGCComboBox(QWidget *parent) :
ui->editItemNameLabel->hide();
ui->itemValueLabel->hide();
ui->itemNameLabel->hide();
ui->infoLabel->hide();
ui->editOptionComboBox->setEnabled(false);
isDisabled = true;
//ui->editLine1->setStyleSheet("QWidget { border: 1px solid #66666B; border-radius: 3px; padding: 10px 0px 0px 0px; background: #111122; }");
......@@ -110,7 +111,11 @@ void QGCComboBox::setActiveUAS(UASInterface* activeUas)
//requestParameter();
// Set param info
QString text = uas->getParamManager()->getParamInfo(parameterName);
ui->infoLabel->setToolTip(text);
if (text != "")
{
ui->infoLabel->setToolTip(text);
ui->infoLabel->show();
}
// Force-uncheck and hide label if no description is available
if (ui->editInfoCheckBox->isChecked())
{
......@@ -165,7 +170,7 @@ void QGCComboBox::selectParameter(int paramIndex)
// Description
QString text = uas->getParamManager()->getParamInfo(parameterName);
ui->infoLabel->setText(text);
//ui->infoLabel->setText(text);
showInfo(!(text.length() > 0));
}
}
......@@ -369,6 +374,11 @@ void QGCComboBox::readSettings(const QString& pre,const QVariantMap& settings)
int num = settings.value(pre + "QGC_PARAM_COMBOBOX_COUNT").toInt();
for (int i=0;i<num;i++)
{
QString pixmapfn = settings.value(pre + "QGC_PARAM_COMBOBOX_ITEM_" + QString::number(i) + "_IMG","").toString();
if (pixmapfn != "")
{
comboBoxIndexToPixmap[i] = QPixmap(pixmapfn);
}
ui->editOptionComboBox->addItem(settings.value(pre + "QGC_PARAM_COMBOBOX_ITEM_" + QString::number(i) + "_TEXT").toString());
//qDebug() << "Adding val:" << settings.value(pre + "QGC_PARAM_COMBOBOX_ITEM_" + QString::number(i) + "_TEXT").toString() << settings.value(pre + "QGC_PARAM_COMBOBOX_ITEM_" + QString::number(i) + "_VAL").toInt();
comboBoxTextToValMap[settings.value(pre + "QGC_PARAM_COMBOBOX_ITEM_" + QString::number(i) + "_TEXT").toString()] = settings.value(pre + "QGC_PARAM_COMBOBOX_ITEM_" + QString::number(i) + "_VAL").toInt();
......@@ -397,6 +407,11 @@ void QGCComboBox::readSettings(const QSettings& settings)
int num = settings.value("QGC_PARAM_COMBOBOX_COUNT").toInt();
for (int i=0;i<num;i++)
{
QString pixmapfn = settings.value("QGC_PARAM_COMBOBOX_ITEM_" + QString::number(i) + "_IMG","").toString();
if (pixmapfn != "")
{
comboBoxIndexToPixmap[i] = QPixmap(pixmapfn);
}
ui->editOptionComboBox->addItem(settings.value("QGC_PARAM_COMBOBOX_ITEM_" + QString::number(i) + "_TEXT").toString());
qDebug() << "Adding val:" << settings.value("QGC_PARAM_COMBOBOX_ITEM_" + QString::number(i)).toString() << settings.value("QGC_PARAM_COMBOBOX_ITEM_" + QString::number(i) + "_VAL").toInt();
comboBoxTextToValMap[settings.value("QGC_PARAM_COMBOBOX_ITEM_" + QString::number(i) + "_TEXT").toString()] = settings.value("QGC_PARAM_COMBOBOX_ITEM_" + QString::number(i) + "_VAL").toInt();
......@@ -421,6 +436,7 @@ void QGCComboBox::delButtonClicked()
}
void QGCComboBox::comboBoxIndexChanged(QString val)
{
ui->imageLabel->setPixmap(comboBoxIndexToPixmap[ui->editOptionComboBox->currentIndex()]);
switch (parameterValue.type())
{
case QVariant::Char:
......
......@@ -49,6 +49,7 @@ protected slots:
/** @brief Updates current parameter based on new combobox value */
void comboBoxIndexChanged(QString val);
protected:
QMap<int,QPixmap> comboBoxIndexToPixmap;
QMap<QString,int> comboBoxTextToValMap; ///< Comboboxtext/parameter value map
QString parameterName; ///< Key/Name of the parameter
QVariant parameterValue; ///< Value of the parameter
......
This diff is collapsed.
......@@ -116,7 +116,10 @@ void QGCCommandButton::sendCommand()
float param6 = ui->editParam6SpinBox->value();
float param7 = ui->editParam7SpinBox->value();
int component = ui->editComponentSpinBox->value();
if (showlabelname != "")
{
emit showLabel(showlabelname,index);
}
QGCToolWidgetItem::uas->executeCommand(command, confirm, param1, param2, param3, param4, param5, param6, param7, component);
//qDebug() << __FILE__ << __LINE__ << "SENDING COMMAND" << index;
}
......@@ -309,6 +312,8 @@ void QGCCommandButton::readSettings(const QSettings& settings)
ui->editParam6SpinBox->setValue(settings.value("QGC_COMMAND_BUTTON_PARAM6", 0.0).toDouble());
ui->editParam7SpinBox->setValue(settings.value("QGC_COMMAND_BUTTON_PARAM7", 0.0).toDouble());
showlabelname = settings.value("QGC_COMMAND_BUTTON_LABEL","").toString();
ui->editCommandComboBox->setCurrentIndex(0);
// Find combobox entry for this data
......
......@@ -26,8 +26,10 @@ public slots:
void writeSettings(QSettings& settings);
void readSettings(const QSettings& settings);
void readSettings(const QString& pre,const QVariantMap& settings);
signals:
void showLabel(QString name, int num);
private:
QString showlabelname;
Ui::QGCCommandButton *ui;
UASInterface* uas;
};
......
......@@ -41,6 +41,7 @@ QGCParamSlider::QGCParamSlider(QWidget *parent) :
ui->editMaxSpinBox->hide();
ui->editLine1->hide();
ui->editLine2->hide();
ui->infoLabel->hide();
//ui->editLine1->setStyleSheet("QWidget { border: 1px solid #66666B; border-radius: 3px; padding: 10px 0px 0px 0px; background: #111122; }");
//ui->editLine2->setStyleSheet("QWidget { border: 1px solid #66666B; border-radius: 3px; padding: 10px 0px 0px 0px; background: #111122; }");
......@@ -107,7 +108,11 @@ void QGCParamSlider::setActiveUAS(UASInterface* activeUas)
//requestParameter();
// Set param info
QString text = uas->getParamManager()->getParamInfo(parameterName);
ui->infoLabel->setToolTip(text);
if (text != "")
{
ui->infoLabel->setToolTip(text);
ui->infoLabel->show();
}
// Force-uncheck and hide label if no description is available
if (ui->editInfoCheckBox->isChecked())
{
......@@ -195,9 +200,10 @@ void QGCParamSlider::selectParameter(int paramIndex)
}
// Description
QString text = uas->getParamManager()->getParamInfo(parameterName);
ui->infoLabel->setText(text);
showInfo(!(text.length() > 0));
//QString text = uas->getParamManager()->getParamInfo(parameterName);
//ui->infoLabel->setText(text);
//showInfo(!(text.length() > 0));
}
}
}
......
#include <QDockWidget>
#include "QGCTextLabel.h"
#include "ui_QGCTextLabel.h"
#include "MAVLinkProtocol.h"
#include "UASManager.h"
QGCTextLabel::QGCTextLabel(QWidget *parent) :
QGCToolWidgetItem("Command Button", parent),
ui(new Ui::QGCTextLabel)
{
uas = 0;
enabledNum = -1;
ui->setupUi(this);
connect(ui->editFinishButton, SIGNAL(clicked()), this, SLOT(endEditMode()));
// Hide all edit items
ui->editFinishButton->hide();
ui->editNameLabel->hide();
ui->editTextParam->hide();
ui->editComponentSpinBox->hide();
ui->editLine1->hide();
ui->editLine2->hide();
ui->editLine1->setStyleSheet("QWidget { border: 1px solid #66666B; border-radius: 3px; padding: 10px 0px 0px 0px; background: #111122; }");
ui->editLine2->setStyleSheet("QWidget { border: 1px solid #66666B; border-radius: 3px; padding: 10px 0px 0px 0px; background: #111122; }");
// Add commands to combo box
}
QGCTextLabel::~QGCTextLabel()
{
delete ui;
}
void QGCTextLabel::startEditMode()
{
// Hide elements
ui->nameLabel->hide();
ui->editTextParam->show();
ui->editFinishButton->show();
ui->editNameLabel->show();
ui->editComponentSpinBox->show();
ui->editLine1->show();
ui->editLine2->show();
//setStyleSheet("QGroupBox { border: 1px solid #66666B; border-radius: 3px; padding: 10px 0px 0px 0px; background: #111122; }");
// Attempt to undock the dock widget
QWidget* p = this;
QDockWidget* dock;
do {
p = p->parentWidget();
dock = dynamic_cast<QDockWidget*>(p);
if (dock)
{
dock->setFloating(true);
break;
}
} while (p && !dock);
isInEditMode = true;
}
void QGCTextLabel::endEditMode()
{
ui->editFinishButton->hide();
ui->editTextParam->hide();
ui->editNameLabel->hide();
ui->editComponentSpinBox->hide();
ui->editLine1->hide();
ui->editLine2->hide();
ui->nameLabel->show();
// Write to settings
emit editingFinished();
//setStyleSheet("");
// Attempt to dock the dock widget
QWidget* p = this;
QDockWidget* dock;
do {
p = p->parentWidget();
dock = dynamic_cast<QDockWidget*>(p);
if (dock)
{
dock->setFloating(false);
break;
}
} while (p && !dock);
isInEditMode = false;
}
void QGCTextLabel::writeSettings(QSettings& settings)
{
qDebug() << "COMMAND BUTTON WRITING SETTINGS";
settings.setValue("TYPE", "COMMANDBUTTON");
settings.setValue("QGC_COMMAND_BUTTON_DESCRIPTION", ui->nameLabel->text());
settings.sync();
}
void QGCTextLabel::readSettings(const QString& pre,const QVariantMap& settings)
{
ui->editTextParam->setText(settings.value(pre + "QGC_TEXT_SOURCE", "UNKNOWN").toString());
//ui->editCommandComboBox->setCurrentIndex(settings.value(pre + "QGC_COMMAND_BUTTON_COMMANDID", 0).toInt());
if (ui->editTextParam->text() == "NONE")
{
ui->editNameLabel->setText(settings.value(pre + "QGC_TEXT_TEXT","").toString());
ui->nameLabel->setText(ui->editNameLabel->text());
}
else if (ui->editTextParam->text() == "MAV")
{
//MAV command text
connect(uas,SIGNAL(textMessageReceived(int,int,int,QString)),this,SLOT(textMessageReceived(int,int,int,QString)));
}
//int commandId = settings.value(pre + "QGC_COMMAND_BUTTON_COMMANDID", 0).toInt();
//ui->editNameLabel->setText(settings.value(pre + "QGC_COMMAND_BUTTON_DESCRIPTION", "ERROR LOADING BUTTON").toString());
//ui->nameLabel->setText(settings.value(pre + "QGC_COMMAND_BUTTON_DESCRIPTION", "ERROR LOADING BUTTON").toString());
}
void QGCTextLabel::textMessageReceived(int uasid, int component, int severity, QString message)
{
if (enabledNum != -1)
{
//SUCCESS: Executed CMD: 241
if (message.contains("SUCCESS"))
{
if (message.trimmed().endsWith(QString::number(enabledNum)))
{
enabledNum = -1;
ui->textLabel->setText(ui->textLabel->text() + " Complete");
}
}
else
{
ui->textLabel->setText(message);
}
}
}
void QGCTextLabel::readSettings(const QSettings& settings)
{
//ui->editNameLabel->setText(settings.value("QGC_COMMAND_BUTTON_DESCRIPTION", "ERROR LOADING BUTTON").toString());
//ui->nameLabel->setText(settings.value("QGC_COMMAND_BUTTON_DESCRIPTION", "ERROR LOADING BUTTON").toString());
ui->editTextParam->setText(settings.value("QGC_TEXT_SOURCE", "UNKNOWN").toString());
ui->editNameLabel->setText(settings.value("QGC_TEXT_TEXT","").toString());
//ui->editCommandComboBox->setCurrentIndex(settings.value(pre + "QGC_COMMAND_BUTTON_COMMANDID", 0).toInt());
if (ui->editTextParam->text() == "NONE")
{
ui->textLabel->setText(ui->editNameLabel->text());
ui->nameLabel->setText("");
}
else if (ui->editTextParam->text() == "MAV")
{
//MAV command text
ui->nameLabel->setText(ui->editNameLabel->text());
ui->textLabel->setText("");
connect(uas,SIGNAL(textMessageReceived(int,int,int,QString)),this,SLOT(textMessageReceived(int,int,int,QString)));
}
else
{
}
}
void QGCTextLabel::enableText(int num)
{
enabledNum = num;
}
void QGCTextLabel::setActiveUAS(UASInterface *uas)
{
this->uas = uas;
}
#ifndef QGCTEXTLABEL_H
#define QGCTEXTLABEL_H
#include "QGCToolWidgetItem.h"
namespace Ui
{
class QGCTextLabel;
}
class UASInterface;
class QGCTextLabel : public QGCToolWidgetItem
{
Q_OBJECT
public:
explicit QGCTextLabel(QWidget *parent = 0);
~QGCTextLabel();
void setActiveUAS(UASInterface *uas);
void enableText(int num);
public slots:
void startEditMode();
void endEditMode();
void writeSettings(QSettings& settings);
void readSettings(const QSettings& settings);
void readSettings(const QString& pre,const QVariantMap& settings);
void textMessageReceived(int uasid, int component, int severity, QString message);
private:
int enabledNum;
Ui::QGCTextLabel *ui;
};
#endif // QGCTEXTLABEL_H
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>QGCTextLabel</class>
<widget class="QWidget" name="QGCTextLabel">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1183</width>
<height>166</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QGridLayout" name="gridLayout" columnstretch="100,0,0">
<property name="leftMargin">
<number>6</number>
</property>
<property name="topMargin">
<number>3</number>
</property>
<property name="rightMargin">
<number>6</number>
</property>
<property name="bottomMargin">
<number>3</number>
</property>
<item row="2" column="0" colspan="2">
<widget class="QLineEdit" name="editNameLabel">
<property name="text">
<string>&lt;Label Description Label (in front of text)&gt;</string>
</property>
</widget>
</item>
<item row="1" column="0" colspan="3">
<widget class="Line" name="editLine1">
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="3" column="0" colspan="2">
<widget class="QLabel" name="nameLabel">
<property name="minimumSize">
<size>
<width>50</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Description</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QLineEdit" name="editTextParam">
<property name="text">
<string>&lt;Text Param&gt;</string>
</property>
</widget>
</item>
<item row="6" column="2">
<widget class="QPushButton" name="editFinishButton">
<property name="text">
<string>Done</string>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QSpinBox" name="editComponentSpinBox">
<property name="prefix">
<string>Component ID: </string>
</property>
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>255</number>
</property>
</widget>
</item>
<item row="7" column="0" colspan="3">
<widget class="Line" name="editLine2">
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="3" column="2">
<widget class="QLabel" name="textLabel">
<property name="text">
<string>TextLabel</string>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>editNameLabel</sender>
<signal>textChanged(QString)</signal>
<receiver>nameLabel</receiver>
<slot>setText(QString)</slot>
<hints>
<hint type="sourcelabel">
<x>114</x>
<y>22</y>
</hint>
<hint type="destinationlabel">
<x>114</x>
<y>55</y>
</hint>
</hints>
</connection>
</connections>
</ui>
......@@ -12,6 +12,7 @@
#include "QGCParamSlider.h"
#include "QGCComboBox.h"
#include "QGCTextLabel.h"
#include "QGCCommandButton.h"
#include "UASManager.h"
......@@ -148,6 +149,20 @@ QList<QGCToolWidget*> QGCToolWidget::createWidgetsFromSettings(QWidget* parent,
return instances()->values();
}
void QGCToolWidget::showLabel(QString name,int num)
{
for (int i=0;i<toolItemList.size();i++)
{
if (toolItemList[i]->objectName() == name)
{
QGCTextLabel *label = qobject_cast<QGCTextLabel*>(toolItemList[i]);
if (label)
{
label->enableText(num);
}
}
}
}
/**
* @param singleinstance If this is set to true, the widget settings will only be loaded if not another widget with the same title exists
......@@ -266,6 +281,11 @@ void QGCToolWidget::loadSettings(QVariantMap& settings)
item = new QGCCommandButton(this);
//qDebug() << "CREATED COMMANDBUTTON";
}
else if (type == "TEXT")
{
item = new QGCTextLabel(this);
item->setActiveUAS(mav);
}
else if (type == "SLIDER")
{
item = new QGCParamSlider(this);
......@@ -310,19 +330,30 @@ void QGCToolWidget::loadSettings(QSettings& settings)
QGCToolWidgetItem* item = NULL;
if (type == "COMMANDBUTTON")
{
item = new QGCCommandButton(this);
QGCCommandButton *button = new QGCCommandButton(this);
connect(button,SIGNAL(showLabel(QString,int)),this,SLOT(showLabel(QString,int)));
item = button;
item->setActiveUAS(mav);
//qDebug() << "CREATED COMMANDBUTTON";
}
else if (type == "SLIDER")
{
item = new QGCParamSlider(this);
item->setActiveUAS(mav);
//qDebug() << "CREATED PARAM SLIDER";
}
else if (type == "COMBO")
{
item = new QGCComboBox(this);
item->setActiveUAS(mav);
qDebug() << "CREATED PARAM COMBOBOX";
}
else if (type == "TEXT")
{
item = new QGCTextLabel(this);
item->setObjectName(settings.value("QGC_TEXT_ID").toString());
item->setActiveUAS(mav);
}
if (item)
{
......@@ -565,6 +596,7 @@ void QGCToolWidget::addToolWidget(QGCToolWidgetItem* widget)
}
connect(widget, SIGNAL(destroyed()), this, SLOT(storeSettings()));
toolLayout->addWidget(widget);
toolItemList.append(widget);
}
void QGCToolWidget::exportWidget()
......
......@@ -62,12 +62,14 @@ public slots:
QList<QString> getParamList();
void setParameterValue(int uas, int component, QString parameterName, const QVariant value);
bool fromMetaData() { return isFromMetaData; }
void showLabel(QString name,int num);
signals:
void titleChanged(QString);
protected:
bool isFromMetaData;
QMap<QString,QGCToolWidgetItem*> paramToItemMap;
QList<QGCToolWidgetItem*> toolItemList;
QList<QString> paramList;
QVariantMap settingsMap;
QAction* addParamAction;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment