mirror of
https://github.com/iNavFlight/inav-configurator.git
synced 2025-07-25 01:05:12 +03:00
Merge pull request #696 from iNavFlight/agh_map_scale_and_reference_as_elements
Add MAP_SCALE and MAP_REFERENCE elements
This commit is contained in:
commit
6ddc173f58
2 changed files with 49 additions and 14 deletions
|
@ -2581,6 +2581,18 @@
|
|||
"osdElement_RADAR": {
|
||||
"message": "Radar"
|
||||
},
|
||||
"osdElement_MAP_SCALE": {
|
||||
"message": "Map Scale"
|
||||
},
|
||||
"osdElement_MAP_SCALE_HELP": {
|
||||
"message": "Scale of the currently shown map/radar."
|
||||
},
|
||||
"osdElement_MAP_REFERENCE": {
|
||||
"message": "Map Reference"
|
||||
},
|
||||
"osdElement_MAP_REFERENCE_HELP": {
|
||||
"message": "Reference (direction that points up) of the current map. N for North and T for takeoff direction."
|
||||
},
|
||||
"osdElement_WIND_SPEED_HORIZONTAL": {
|
||||
"message": "Horizontal Wind Speed"
|
||||
},
|
||||
|
|
51
tabs/osd.js
51
tabs/osd.js
|
@ -1108,6 +1108,26 @@ OSD.constants = {
|
|||
min_version: '2.0.0',
|
||||
positionable: false,
|
||||
},
|
||||
{
|
||||
name: 'MAP_SCALE',
|
||||
id: 98,
|
||||
min_version: '2.1.1',
|
||||
preview: function(osd_data) {
|
||||
var scale;
|
||||
if (OSD.data.preferences.units === 0) {
|
||||
scale = FONT.embed_dot("0.10") + FONT.symbol(SYM.MI);
|
||||
} else {
|
||||
scale = "100" + FONT.symbol(SYM.M);
|
||||
}
|
||||
return FONT.symbol(SYM.SCALE) + scale;
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'MAP_REFERENCE',
|
||||
id: 99,
|
||||
min_version: '2.1.1',
|
||||
preview: FONT.symbol(SYM.DIRECTION) + '\nN',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
|
@ -1955,21 +1975,24 @@ OSD.GUI.updateFields = function() {
|
|||
OSD.GUI.updateMapPreview = function(mapCenter, name, directionSymbol, centerSymbol) {
|
||||
if ($('input[name="' + name + '"]').prop('checked')) {
|
||||
var mapInitialX = OSD.data.display_size.x - 2;
|
||||
if (directionSymbol) {
|
||||
OSD.GUI.checkAndProcessSymbolPosition(mapInitialX, SYM.DIRECTION);
|
||||
OSD.GUI.checkAndProcessSymbolPosition(mapInitialX + OSD.data.display_size.x, directionSymbol.charCodeAt(0));
|
||||
}
|
||||
OSD.GUI.checkAndProcessSymbolPosition(mapCenter, centerSymbol);
|
||||
var scalePos = 1 + OSD.data.display_size.x * (OSD.data.display_size.y - 2);
|
||||
OSD.GUI.checkAndProcessSymbolPosition(scalePos, SYM.SCALE);
|
||||
var scale;
|
||||
if (OSD.data.preferences.units === 0) {
|
||||
scale = FONT.embed_dot("0.10") + FONT.symbol(SYM.MI);
|
||||
} else {
|
||||
scale = "100" + FONT.symbol(SYM.M);
|
||||
}
|
||||
for (var ii = 0; ii < scale.length; ii++) {
|
||||
OSD.GUI.checkAndProcessSymbolPosition(scalePos + ii + 1, scale.charCodeAt(ii));
|
||||
if (semver.lt(CONFIG.flightControllerVersion, '2.1.1')) {
|
||||
// INAV pre 2.1.1 had hardcoded map reference and scale
|
||||
if (directionSymbol) {
|
||||
OSD.GUI.checkAndProcessSymbolPosition(mapInitialX, SYM.DIRECTION);
|
||||
OSD.GUI.checkAndProcessSymbolPosition(mapInitialX + OSD.data.display_size.x, directionSymbol.charCodeAt(0));
|
||||
}
|
||||
var scalePos = 1 + OSD.data.display_size.x * (OSD.data.display_size.y - 2);
|
||||
OSD.GUI.checkAndProcessSymbolPosition(scalePos, SYM.SCALE);
|
||||
var scale;
|
||||
if (OSD.data.preferences.units === 0) {
|
||||
scale = FONT.embed_dot("0.10") + FONT.symbol(SYM.MI);
|
||||
} else {
|
||||
scale = "100" + FONT.symbol(SYM.M);
|
||||
}
|
||||
for (var ii = 0; ii < scale.length; ii++) {
|
||||
OSD.GUI.checkAndProcessSymbolPosition(scalePos + ii + 1, scale.charCodeAt(ii));
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue