Merge branch 'master' into MrD_update-MSPDisplayPort-and-add-Avatar-stuff

pull/1683/head
Darren Lines 2 years ago
commit f6080ffd8b

@ -2574,7 +2574,7 @@
"message": "Optic Flow Calibration"
},
"OpflowCalText": {
"message": "After pressing the button you have 30 seconds to hold the copter in the air and tilt it to sides without moving it horizontally. Note that optic flow sensor needs to observe the surface at all times."
"message": "After pressing the button you have 30 seconds to hold the model in the air and tilt it to sides without moving it horizontally. Note that optic flow sensor needs to observe the surface at all times."
},
"OpflowCalBtn": {
"message": "Calibrate Optic Flow sensor"
@ -2595,7 +2595,7 @@
"message": "Reset Accelerometer Calibration"
},
"MagCalText": {
"message": "After pressing the button you have 30 seconds to hold the copter in the air and rotate it so that each side (front, back, left, right, top and bottom) points down towards the earth."
"message": "After pressing the button you have 30 seconds to hold the model in the air and rotate it so that each side (front, back, left, right, top and bottom) points down towards the earth. Be sure that your compass is not near magnets or electromagnets when installed in the craft or performing the calibration."
},
"MagBtn": {
"message": "Calibrate Compass"
@ -2807,18 +2807,72 @@
"rthAbortThresholdHelp": {
"message": "RTH sanity checking feature will notice if the distance to home is increasing during RTH and if it exceeds the threshold defined by this parameter, instead of continuing RTH the UAV will enter emergency landing. Default is 500m which is safe enough for both multirotors and airplanes."
},
"fsMissionDelay": {
"message": "Failsafe Mission Delay"
},
"fsMissionDelayHelp": {
"message": "Defines a delay in seconds, how long INAV has to wait before Failsafe RTH is engaged, if the Aircraft is in a waypoint mission. Set to -1 to disable Failsafe entirely [0-600s]"
},
"drNavigation": {
"message": "Dead Reckoning Navigation"
},
"drNavigationHelp": {
"message": "Allows INAV to continue navigation (Waypoint, Return to Home, Cruise, Coursehold, etc.) during short GPS outages. This feature needs compass and airspeed sensor enabled on Fixed Wing aircraft."
},
"rthAltitude": {
"message": "RTH altitude"
},
"rthAltitudeHelp": {
"message": "Used in Extra, Fixed and 'At Least' RTH altitude modes"
},
"rthTrackBack": {
"message": "RTH Track Back Mode"
},
"rthTrackBackHelp": {
"message": "When enabled, the aircraft will follow its last path backwards first before flying home directly. Fixed Wing crafts will fly back the path with climbing but not descending. Usage modes for RTH Track Back. OFF = disabled, ON = Normal and Failsafe RTH, FS = Failsafe RTH only."
},
"rthTrackBackDistance": {
"message": "RTH Track Back Distance"
},
"rthTrackBackDistanceHelp": {
"message": "Distance flown during Track Back. Normal RTH is executed once this total flight distance is exceeded [m]."
},
"rthSafeHome": {
"message": "Safe Home Mode"
},
"rthSafeHomeHelp": {
"message": "Used to control when safehomes will be used. Possible values are OFF, RTH and RTH_FS. See Safehome documentation for more information."
},
"rthSafeHomeDistance": {
"message": "Safe Home Max Distance"
},
"rthSafeHomeDistanceHelp": {
"message": "In order for a safehome to be used, it must be less than this distance [in cm] from the arming point."
},
"navMaxAltitude": {
"message": "Max Altitude for Navigation"
},
"navMaxAltitudeHelp": {
"message": "Max allowed altitude (above Home Point) that applies to all NAV modes (including Altitude Hold). 0 means limit is disabled"
},
"rthHomeAltitudeLabel": {
"message": "RTH Home altitude"
},
"rthHomeAltitudeHelp": {
"message": "Used when not landing at the home point. Upon arriving at home, the plane will loiter and change altitude to the RTH Home Altitude. Default is 0, which is feature disabled."
},
"rthTwoStage": {
"message": "Climb First Stage Method"
},
"rthTwoStageHelp": {
"message": "Staged Return To Home Function if Climb First is enabled. Set Climb First Stage Altitude to 0, to use classic Single-Stage RTH."
},
"rthTwoStageAlt": {
"message": "Climb First Stage Altitude"
},
"rthTwoStageAltHelp": {
"message": "Altitude Setting for the first Stage of Staged RTH. Set to 0 to Disable Two-Stage RTH [0-65000cm]"
},
"landMaxAltVspd": {
"message": "The craft will start to descend at this speed, once it reaches the <strong>Home</strong> location."
},
@ -2933,6 +2987,18 @@
"controlSmoothnessHelp": {
"message": "How smoothly the autopilot controls the airplane to correct the navigation error [0-9]."
},
"wpTrackingAccuracy": {
"message": "Waypoint Tracking Accuracy"
},
"wpTrackingAccuracyHelp": {
"message": "How precise the craft tries to follow a waypoint track. Lower values means higher precision but can cause overshoots. 6 is a good starting point [0-10]."
},
"wpTrackingAngle": {
"message": "Waypoint Tracking Angle"
},
"wpTrackingAngleHelp": {
"message": "The angle the craft approaches the waypoint track. Lower values make the approach longer while higher values can cause overshoot. 60° is a good starting point [30-80]."
},
"powerConfiguration": {
"message": "Battery Estimation Settings"
},
@ -2966,9 +3032,51 @@
"waypointConfiguration": {
"message": "Waypoint Navigation Settings"
},
"wpLoadBoot": {
"message": "Load Waypoints on Boot"
},
"wpLoadBootHelp": {
"message": "If enabled, Waypoint Missions in EEPROM will be loaded automatically after bootup."
},
"wpEnforceAlt": {
"message": "Enforce Altitude at Waypoint"
},
"wpEnforceAltHelp": {
"message": "Ensures that the altitude at each waypoint is reached before continue to the next one. Craft will hold position [loiter for fixed wing] and climb/decent until the altitude is within the set range [1-2000 cm] from the waypoint altitude. Set to [0] to disable. Fixed wing crafts should not be set below 500cm."
},
"waypointRadius": {
"message": "Waypoint radius"
},
"wpRestartMission": {
"message": "Restart Waypoint Mission"
},
"wpRestartMissionHelp": {
"message": "Sets restart behaviour for a WP mission when interrupted mid mission. START from first WP, RESUME from last active WP or SWITCH between START and RESUME each time WP Mode is reselected ON. SWITCH effectively allows resuming once only from a previous mid mission waypoint after which the mission will restart from the first waypoint."
},
"wpTurnSmoothing": {
"message": "Waypoint Turn Smoothing"
},
"wpTurnSmoothingHelp": {
"message": "Smooths turns during WP missions by switching to a loiter turn at waypoints. When set to ON the craft will reach the waypoint during the turn. When set to ON-CUT the craft will turn inside the waypoint without actually reaching it (cuts the corner)."
},
"navMotorStop": {
"message": "Navigation Motor Stop Override"
},
"navMotorStopHelp": {
"message": "When set to OFF the navigation system will not take over the control of the motor if the throttle is low (motor will stop). When set to OFF_ALWAYS the navigation system will not take over the control of the motor if the throttle was low even when failsafe is triggered. When set to AUTO_ONLY the navigation system will only take over the control of the throttle in autonomous navigation modes (NAV WP and NAV RTH). When set to ALL_NAV (default) the navigation system will take over the control of the motor completely and never allow the motor to stop even when the throttle is low. This setting only has an effect on NAV modes which take control of the throttle when combined with MOTOR_STOP and is likely to cause a stall if fw_min_throttle_down_pitch isn't set correctly or the pitch estimation is wrong for fixed wing models when not set to ALL_NAV."
},
"soarMotorStop": {
"message": "Soaring Mode Motor Stop"
},
"soarMotorStopHelp": {
"message": "Stops motor when Soaring mode enabled."
},
"soarPitchDeadband": {
"message": "Soaring Mode Pitch Deadband"
},
"soarPitchDeadbandHelp": {
"message": "Pitch Angle deadband when soaring mode enabled (deg). Angle mode inactive within deadband allowing pitch to free float whilst soaring."
},
"waypointRadiusHelp": {
"message": "This sets the distance away from a waypoint that triggers the waypoint as reached."
},

@ -596,6 +596,10 @@ helper.defaultsDialog = (function () {
key: "nav_wp_radius",
value: 5000
},
{
key: "nav_wp_max_safe_distance",
value: 500
},
{
key: "nav_fw_launch_max_angle",
value: 45
@ -819,6 +823,10 @@ helper.defaultsDialog = (function () {
key: "nav_wp_radius",
value: 5000
},
{
key: "nav_wp_max_safe_distance",
value: 500
},
{
key: "nav_fw_launch_max_angle",
value: 75
@ -883,8 +891,8 @@ helper.defaultsDialog = (function () {
value: "ROVER"
},
{
key: "nav_wp_safe_distance",
value: 50000
key: "nav_wp_max_safe_distance",
value: 500
},
{
key: "nav_fw_loiter_radius",

@ -763,6 +763,24 @@ var FC = {
return retVal;
},
getAccelerometerCalibrated: function () {
var calibrated = true;
var flagNames = FC.getArmingFlags();
if (CALIBRATION_DATA.accGain.X === 4096 && CALIBRATION_DATA.accGain.Y === 4096 && CALIBRATION_DATA.accGain.Z === 4096 &&
CALIBRATION_DATA.accZero.X === 0 && CALIBRATION_DATA.accZero.Y === 0 && CALIBRATION_DATA.accZero.Z === 0
) {
calibrated = false;
}
if ((calibrated) && flagNames.hasOwnProperty(13)) {
if (bit_check(CONFIG.armingFlags, 13)) {
calibrated = false;
}
}
return calibrated;
},
getUserControlMode: function () {
return [
"Attitude",
@ -888,19 +906,19 @@ var FC = {
output: "boolean"
},
1: {
name: "Equal",
name: "Equal (A = B)",
operandType: "Comparison",
hasOperand: [true, true],
output: "boolean"
},
2: {
name: "Greater Than",
name: "Greater Than (A > B)",
operandType: "Comparison",
hasOperand: [true, true],
output: "boolean"
},
3: {
name: "Lower Than",
name: "Lower Than (A < B)",
operandType: "Comparison",
hasOperand: [true, true],
output: "boolean"
@ -1158,6 +1176,36 @@ var FC = {
hasOperand: [true, true],
output: "boolean"
},
47: {
name: "Edge",
operandType: "Logic Switches",
hasOperand: [true, true],
output: "boolean"
},
48: {
name: "Delay",
operandType: "Logic Switches",
hasOperand: [true, true],
output: "boolean"
},
49: {
name: "Timer",
operandType: "Logic Switches",
hasOperand: [true, true],
output: "boolean"
},
50: {
name: "Delta (|A| >= B)",
operandType: "Comparison",
hasOperand: [true, true],
output: "boolean"
},
51: {
name: "Approx Equals (A ~ B)",
operandType: "Comparison",
hasOperand: [true, true],
output: "boolean"
},
}
},
getOperandTypes: function () {
@ -1281,7 +1329,6 @@ var FC = {
'throttle_idle',
'turtle_mode_power_factor',
'failsafe_throttle',
'fw_min_throttle_down_pitch',
'nav_mc_hover_thr',
'nav_fw_cruise_thr',
'nav_fw_min_thr',
@ -1342,7 +1389,6 @@ var FC = {
'dterm_lpf2_type',
'yaw_lpf_hz',
'fw_iterm_throw_limit',
'fw_loiter_direction',
'fw_reference_airspeed',
'fw_turn_assist_yaw_gain',
'fw_turn_assist_pitch_gain',

@ -518,11 +518,17 @@ var Settings = (function () {
if (multiplier !== 1) {
decimalPlaces = Math.min(Math.ceil(multiplier / 100), 3);
// Add extra decimal place for non-integer conversions.
if (multiplier % 1 != 0 && decimalPlaces < 3) {
decimalPlaces++;
}
step = 1 / Math.pow(10, decimalPlaces);
}
element.attr('step', step.toFixed(decimalPlaces));
if (multiplier !== 'FAHREN' && multiplier !== 'TZHOURS' && multiplier !== 1) {
element.data('default-min', element.attr('min'));
element.data('default-max', element.attr('max'));
element.attr('min', (parseFloat(element.attr('min')) / multiplier).toFixed(decimalPlaces));
element.attr('max', (parseFloat(element.attr('max')) / multiplier).toFixed(decimalPlaces));
}
@ -591,13 +597,21 @@ var Settings = (function () {
} else {
multiplier = parseFloat(multiplier);
let presicion = input.data("step") || 1; // data-step is always based on the default firmware units.
presicion = self.countDecimals(presicion);
let precision = input.data("step") || 1; // data-step is always based on the default firmware units.
precision = self.countDecimals(precision);
if (presicion === 0) {
if (precision === 0) {
value = Math.round(parseFloat(input.val()) * multiplier);
} else {
value = Math.round((parseFloat(input.val()) * multiplier) * Math.pow(10, presicion)) / Math.pow(10, presicion);
value = Math.round((parseFloat(input.val()) * multiplier) * Math.pow(10, precision)) / Math.pow(10, precision);
}
if (value > parseInt(input.data('default-max'))) {
value = parseInt(input.data('default-max'));
}
if (value < parseInt(input.data('default-min'))) {
value = parseInt(input.data('default-min'));
}
}
}

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 254 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 249 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 253 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

@ -136,8 +136,15 @@ SYM_AH_V_FT_0 | SYM.AH_V_FT_0 | Climb efficiency: im
SYM_AH_V_FT_1 | SYM.AH_V_FT_1 | Climb efficiency: imperial R side | 215 | 0xD7
SYM_AH_V_M_0 | SYM.AH_V_M_0 | Climb efficiency: metric L side | 216 | 0xD8
SYM_AH_V_M_1 | SYM.AH_V_M_1 | Climb efficiency: metric R side | 217 | 0xD9
| | | |
SYM_LOGO_START | | INAV Logo | 257 - 280 | 0x101 - 0x118
SYM_FLIGHT_MINS_REMAINING | SYM.FLIGHT_MINS_REMAINING | Flight time (mins) remaining | 218 | 0xDA
SYM_FLIGHT_HOURS_REMAINING | | Flight time (hours) remaining | 219 | 0xDB
SYM_GROUND_COURSE | SYM.GROUND_COURSE | Ground course | 220 | 0xDC
SYM_TERRAIN_FOLLOWING | SYM.TERRAIN_FOLLOWING | Terrain following | 251 | 0xFB
SYM_CROSS_TRACK_ERROR | SYM.CROSS_TRACK_ERROR | Cross track error | 252 | 0xFC
SYM_ADSB | SYM.ADSB | ADSB | 253 | 0xFD
SYM_BLACKBOX | SYM.BLACKBOX | Blackbox | 254 | 0xFE
| | | |
SYM_LOGO_START | | INAV Logo | 257 - 296 | 0x101 - 0x128
SYM_AH_LEFT | SYM.AH_LEFT | AHI Arrow left | 300 | 0x12C
SYM_AH_RIGHT | SYM.AH_RIGHT | AHI Arrow right | 301 | 0x12D
SYM_AH_DECORATION_MIN | | AHI Scrolling graphics | 302 - 307 | 0x12E - 0x133
@ -175,6 +182,7 @@ SYM_HUD_SIGNAL_3 | | HUD signal 75% icon
SYM_HUD_SIGNAL_4 | | HUD signal 100% icon | 356 | 0x164
SYM_HOME_DIST | | Home distance icon | 357 | 0x165
SYM_AH_CH_CENTER | SYM.AH_CROSSHAIRS | Default crosshair centre | 358 | 0x166
SYM_FLIGHT_DIST_REMAINING | SYM.FLIGHT_DIST_REMAINING | Flight distance remaining | 359 | 0x167
SYM_AH_CH_TYPE3 | SYM.AH_CROSSHAIRS | Crosshair type 3 | 400 - 402 | 0x190 - 0x192
SYM_AH_CH_TYPE4 | SYM.AH_CROSSHAIRS | Crosshair type 4 | 403 - 405 | 0x193 - 0x195
SYM_AH_CH_TYPE5 | SYM.AH_CROSSHAIRS | Crosshair type 5 | 406 - 408 | 0x196 - 0x198

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

@ -190,9 +190,20 @@
<div for="controlSmoothness" class="helpicon cf_tip" data-i18n_title="controlSmoothnessHelp"></div>
</div>
<div class="checkbox">
<input type="checkbox" class="toggle update_preview" id="soarMotorStop" data-setting="nav_fw_soaring_motor_stop" data-live="true" />
<label for="soarMotorStop"><span data-i18n="soarMotorStop"></span></label>
<div for="soarMotorStop" class="helpicon cf_tip" data-i18n_title="soarMotorStopHelp"></div>
</div>
<div class="number">
<input type="number" id="soarPitchDeadband" data-unit="deg" data-setting="nav_fw_soaring_pitch_deadband" data-setting-multiplier="1" step="1" min="0" max="15" />
<label for="soarPitchDeadband"><span data-i18n="soarPitchDeadband"></span></label>
<div for="soarPitchDeadband" class="helpicon cf_tip" data-i18n_title="soarPitchDeadbandHelp"></div>
</div>
</div>
</div>
</div> <!-- right wrapper -->
<div class="clear-both"></div>
@ -342,6 +353,18 @@
<div for="rth-climb-first" class="helpicon cf_tip" data-i18n_title="rthClimbFirstHelp"></div>
</div>
<div class="select">
<select id="rthTwoStage" data-setting="nav_rth_climb_first_stage_mode"></select>
<label for="rthTwoStage"><span data-i18n="rthTwoStage"></span></label>
<div for="rthTwoStage" class="helpicon cf_tip" data-i18n_title="rthTwoStageHelp"></div>
</div>
<div class="number">
<input type="number" id="rthTwoStageAlt" data-unit="cm" data-setting="nav_rth_climb_first_stage_altitude" data-setting-multiplier="1" step="1" min="0" max="65000" />
<label for="rthTwoStageAlt"><span data-i18n="rthTwoStageAlt"></span></label>
<div for="rthTwoStageAlt" class="helpicon cf_tip" data-i18n_title="rthTwoStageAltHelp"></div>
</div>
<div class="checkbox">
<input type="checkbox" class="toggle update_preview" id="rthClimbIgnoreEmergency" data-setting="nav_rth_climb_ignore_emerg" data-live="true" />
<label for="rthClimbIgnoreEmergency"><span data-i18n="rthClimbIgnoreEmergency"></span></label>
@ -353,6 +376,30 @@
<div for="rthAltControlOverride" class="helpicon cf_tip" data-i18n_title="rthAltControlOverrideHelp"></div>
</div>
<div class="select">
<select id="rthTrackBack" data-setting="nav_rth_trackback_mode"></select>
<label for="rthTrackBack"><span data-i18n="rthTrackBack"></span></label>
<div for="rthTrackBack" class="helpicon cf_tip" data-i18n_title="rthTrackBackHelp"></div>
</div>
<div class="number">
<input type="number" id="rthTrackBackDistance" data-unit="m" data-setting="nav_rth_trackback_distance" data-setting-multiplier="1" step="1" min="50" max="2000" />
<label for="rthTrackBackDistance"><span data-i18n="rthTrackBackDistance"></span></label>
<div for="rthTrackBackDistance" class="helpicon cf_tip" data-i18n_title="rthTrackBackDistanceHelp"></div>
</div>
<div class="select">
<select id="rthSafeHome" data-setting="safehome_usage_mode"></select>
<label for="rthSafeHome"><span data-i18n="rthSafeHome"></span></label>
<div for="rthSafeHome" class="helpicon cf_tip" data-i18n_title="rthSafeHomeHelp"></div>
</div>
<div class="number">
<input type="number" id="rthTrackBackDistance" data-unit="cm" data-setting="safehome_max_distance" data-setting-multiplier="1" step="1" min="0" max="65000" />
<label for="rthSafeHomeDistance"><span data-i18n="rthSafeHomeDistance"></span></label>
<div for="rthSafeHomeDistance" class="helpicon cf_tip" data-i18n_title="rthSafeHomeDistanceHelp"></div>
</div>
<div class="checkbox notFixedWingTuning">
<input type="checkbox" class="toggle update_preview" id="rthTailFirst" data-setting="nav_rth_tail_first" data-live="true" />
<label for="rthTailFirst"><span data-i18n="rthTailFirst"></span></label>
@ -375,6 +422,18 @@
<div for="rthAbortThreshold" class="helpicon cf_tip" data-i18n_title="rthAbortThresholdHelp"></div>
</div>
<div class="number">
<input id="fsMissionDelay" type="number" data-unit="sec" data-setting="failsafe_mission_delay" data-setting-multiplier="1" step="1" min="-1" max="600" />
<label for="fsMissionDelay"><span data-i18n="fsMissionDelay"></span></label>
<div for="fsMissionDelay" class="helpicon cf_tip" data-i18n_title="fsMissionDelayHelp"></div>
</div>
<!--
<div class="checkbox">
<input type="checkbox" class="toggle update_preview" id="drNavigation" data-setting="inav_allow_dead_reckoning" data-live="true" />
<label for="drNavigation"><span data-i18n="drNavigation"></span></label>
<div for="drNavigation" class="helpicon cf_tip" data-i18n_title="drNavigationHelp"></div>
</div>
-->
</div>
</div>
@ -398,6 +457,19 @@
<label for="navAutoClimbRate"><span data-i18n="navAutoClimbRate"></span></label>
<div for="navAutoClimbRate" class="helpicon cf_tip" data-i18n_title="navAutoClimbRateHelp"></div>
</div>
<div class="number">
<input type="number" id="navMaxAltitude" data-unit="cm" data-setting="nav_max_altitude" data-setting-multiplier="1" step="1" min="0" max="65000" />
<label for="navMaxAltitude"><span data-i18n="navMaxAltitude"></span></label>
<div for="navMaxAltitude" class="helpicon cf_tip" data-i18n_title="navMaxAltitudeHelp"></div>
</div>
<div class="select">
<select id="navMotorStop" data-setting="nav_overrides_motor_stop"></select>
<label for="navMotorStop"><span data-i18n="navMotorStop"></span></label>
<div for="navMotorStop" class="helpicon cf_tip" data-i18n_title="navMotorStopHelp"></div>
</div>
</div>
</div>
@ -414,11 +486,47 @@
</div>
<div class="number">
<input type="number" id="waypointSafeDistance" data-unit="cm" data-setting="nav_wp_safe_distance" data-setting-multiplier="1" step="1" min="0" max="65000" />
<input type="number" id="waypointSafeDistance" data-unit="m" data-setting="nav_wp_max_safe_distance" data-setting-multiplier="1" step="1" min="0" max="1500" />
<label for="waypointSafeDistance"><span data-i18n="waypointSafeDistance"></span></label>
<div for="waypointSafeDistance" class="helpicon cf_tip" data-i18n_title="waypointSafeDistanceHelp"></div>
</div>
<div class="checkbox">
<input type="checkbox" class="toggle update_preview" id="wpLoadBoot" data-setting="nav_wp_load_on_boot" data-live="true" />
<label for="wpLoadBoot"><span data-i18n="wpLoadBoot"></span></label>
<div for="wpLoadBoot" class="helpicon cf_tip" data-i18n_title="wpLoadBootHelp"></div>
</div>
<div class="number">
<input type="number" id="wpEnforceAlt" data-unit="cm" data-setting="nav_wp_enforce_altitude" data-setting-multiplier="1" step="1" min="0" max="2000" />
<label for="wpEnforceAlt"><span data-i18n="wpEnforceAlt"></span></label>
<div for="wpEnforceAlt" class="helpicon cf_tip" data-i18n_title="wpEnforceAltHelp"></div>
</div>
<div class="number">
<input type="number" id="wpTrackingAccuracy" data-setting="nav_fw_wp_tracking_accuracy" data-setting-multiplier="1" step="1" min="0" max="10" />
<label for="wpTrackingAccuracy"><span data-i18n="wpTrackingAccuracy"></span></label>
<div for="wpTrackingAccuracy" class="helpicon cf_tip" data-i18n_title="wpTrackingAccuracyHelp"></div>
</div>
<div class="number">
<input type="number" id="wpTrackingAngle" data-unit="deg" data-setting="nav_fw_wp_tracking_max_angle" data-setting-multiplier="1" step="1" min="30" max="80" />
<label for="wpTrackingAngle"><span data-i18n="wpTrackingAngle"></span></label>
<div for="wpTrackingAngle" class="helpicon cf_tip" data-i18n_title="wpTrackingAngleHelp"></div>
</div>
<div class="select">
<select id="wpTurnSmoothing" data-setting="nav_fw_wp_turn_smoothing"></select>
<label for="wpTurnSmoothing"><span data-i18n="wpTurnSmoothing"></span></label>
<div for="wpTurnSmoothing" class="helpicon cf_tip" data-i18n_title="wpTurnSmoothingHelp"></div>
</div>
<div class="select">
<select id="wpRestartMission" data-setting="nav_wp_mission_restart"></select>
<label for="wpRestartMission"><span data-i18n="wpRestartMission"></span></label>
<div for="wpRestartMission" class="helpicon cf_tip" data-i18n_title="wpRestartMissionHelp"></div>
</div>
</div>
</div>

@ -176,24 +176,16 @@ TABS.calibration.initialize = function (callback) {
}
function setupCalibrationButton(callback) {
let showCalibrate = false;
var flagNames = FC.getArmingFlags();
if (flagNames.hasOwnProperty(13)) {
if (bit_check(CONFIG.armingFlags, 13)) {
showCalibrate = true;
}
}
if (showCalibrate) {
$('#calibrate-start-button').html(chrome.i18n.getMessage("AccBtn"));
$('#calibrate-start-button').prop("title", chrome.i18n.getMessage("AccBtn"));
$('#calibrate-start-button').addClass("calibrate");
$('#calibrate-start-button').removeClass("resetCalibration");
} else {
if (FC.getAccelerometerCalibrated()) {
$('#calibrate-start-button').html(chrome.i18n.getMessage("AccResetBtn"));
$('#calibrate-start-button').prop("title", chrome.i18n.getMessage("AccResetBtn"));
$('#calibrate-start-button').removeClass("calibrate");
$('#calibrate-start-button').addClass("resetCalibration");
} else {
$('#calibrate-start-button').html(chrome.i18n.getMessage("AccBtn"));
$('#calibrate-start-button').prop("title", chrome.i18n.getMessage("AccBtn"));
$('#calibrate-start-button').addClass("calibrate");
$('#calibrate-start-button').removeClass("resetCalibration");
}
if (callback) callback();

@ -109,6 +109,10 @@ SYM.PROFILE = 0xCF;
SYM.SWITCH_INDICATOR_HIGH = 0xD2;
SYM.GLIDE_MINS = 0xD5;
SYM.GLIDE_RANGE = 0xD4;
SYM.FLIGHT_MINS_REMAINING = 0xDA;
SYM.FLIGHT_DIST_REMAINING = 0x167;
SYM.GROUND_COURSE = 0xDC;
SYM.CROSS_TRACK_ERROR = 0xFC;
SYM.AH_AIRCRAFT0 = 0x1A2;
SYM.AH_AIRCRAFT1 = 0x1A3;
@ -535,28 +539,32 @@ OSD.constants = {
'NTSC',
'HDZERO',
'DJIWTF',
'AVATAR'
'AVATAR',
'BF43COMPAT'
],
VIDEO_LINES: {
PAL: 16,
NTSC: 13,
HDZERO: 18,
DJIWTF: 22,
AVATAR: 20
AVATAR: 20,
BF43COMPAT: 16,
},
VIDEO_COLS: {
PAL: 30,
NTSC: 30,
HDZERO: 50,
DJIWTF: 60,
AVATAR: 53
AVATAR: 53,
BF43COMPAT: 30
},
VIDEO_BUFFER_CHARS: {
PAL: 480,
NTSC: 390,
HDZERO: 900,
DJIWTF: 1320,
AVATAR: 1060
AVATAR: 1060,
BF43COMPAT: 480
},
UNIT_TYPES: [
{name: 'osdUnitImperial', value: 0},
@ -800,7 +808,7 @@ OSD.constants = {
{
name: 'REMAINING_FLIGHT_TIME',
id: 48,
preview: FONT.symbol(SYM.FLY_M) + '10:35'
preview: FONT.symbol(SYM.FLIGHT_MINS_REMAINING) + '10:35'
},
{
name: 'REMAINING_FLIGHT_DISTANCE',
@ -809,11 +817,11 @@ OSD.constants = {
switch (OSD.data.preferences.units) {
case 0: // Imperial
case 3: // UK
return FONT.symbol(SYM.TRIP_DIST) + FONT.embed_dot('0.98') + FONT.symbol(SYM.DIST_MI);
return FONT.symbol(SYM.FLIGHT_DIST_REMAINING) + FONT.embed_dot('0.98') + FONT.symbol(SYM.DIST_MI);
case 4: // GA
return FONT.symbol(SYM.TRIP_DIST) + FONT.embed_dot('0.85') + FONT.symbol(SYM.DIST_NM);
return FONT.symbol(SYM.FLIGHT_DIST_REMAINING) + FONT.embed_dot('0.85') + FONT.symbol(SYM.DIST_NM);
default: // Metric
return FONT.symbol(SYM.TRIP_DIST) + FONT.embed_dot('1.73') + FONT.symbol(SYM.DIST_KM);
return FONT.symbol(SYM.FLIGHT_DIST_REMAINING) + FONT.embed_dot('1.73') + FONT.symbol(SYM.DIST_KM);
}
}
},
@ -1575,6 +1583,28 @@ OSD.constants = {
id: 52,
preview: FONT.symbol(SYM.HEADING) + ' -90' + FONT.symbol(SYM.DEGREES)
},
{
name: 'GROUND COURSE',
id: 140,
min_version: '6.0.0',
preview: FONT.symbol(SYM.GROUND_COURSE) + '245' + FONT.symbol(SYM.DEGREES)
},
{
name: 'CROSS TRACK ERROR',
id: 141,
min_version: '6.0.0',
preview: function(osd_data) {
switch (OSD.data.preferences.units) {
case 0: // Imperial
case 3: // UK
return FONT.symbol(SYM.CROSS_TRACK_ERROR) + FONT.embed_dot('0.98') + FONT.symbol(SYM.DIST_MI);
case 4: // GA
return FONT.symbol(SYM.CROSS_TRACK_ERROR) + FONT.embed_dot('0.85') + FONT.symbol(SYM.DIST_NM);
default: // Metric
return FONT.symbol(SYM.CROSS_TRACK_ERROR) + FONT.embed_dot('1.57') + FONT.symbol(SYM.DIST_KM);
}
}
},
]
},
{
@ -2371,7 +2401,7 @@ OSD.GUI.checkAndProcessSymbolPosition = function(pos, charCode) {
}
};
const mspVideoSystem = [1,3,4,5]; // indexes of PAL, HDZERO, DJIWTF, & AVATAR
const mspVideoSystem = [1,3,4,5,6]; // indexes of PAL, HDZERO, DJIWTF,AVATAR, & BF43COMPAT
const analogVideoSystem = [0,1,2]; // indexes of AUTO, PAL, & NTSC
OSD.GUI.updateVideoMode = function() {

Loading…
Cancel
Save