Initial build

pull/1357/head
breadoven 3 years ago
parent 924c974473
commit c1983a6241

@ -15,7 +15,7 @@ let Waypoint = function (number, action, lat, lon, alt=0, p1=0, p2=0, p3=0, endM
self.setNumber = function (data) {
number = data;
};
self.getLayerNumber = function () {
return layerNumber;
};
@ -23,7 +23,7 @@ let Waypoint = function (number, action, lat, lon, alt=0, p1=0, p2=0, p3=0, endM
self.setLayerNumber = function (data) {
layerNumber = data;
};
self.getPoiNumber = function () {
return poiNumber;
};
@ -31,7 +31,7 @@ let Waypoint = function (number, action, lat, lon, alt=0, p1=0, p2=0, p3=0, endM
self.setPoiNumber = function (data) {
poiNumber = data;
};
self.isUsed = function () {
return isUsed;
};
@ -39,7 +39,7 @@ let Waypoint = function (number, action, lat, lon, alt=0, p1=0, p2=0, p3=0, endM
self.setUsed = function (data) {
isUsed = data;
};
self.isAttached = function () {
return isAttached;
};
@ -51,7 +51,7 @@ let Waypoint = function (number, action, lat, lon, alt=0, p1=0, p2=0, p3=0, endM
self.getLon = function () {
return lon;
};
self.getLonMap = function () {
return lon / 10000000;
};
@ -63,7 +63,7 @@ let Waypoint = function (number, action, lat, lon, alt=0, p1=0, p2=0, p3=0, endM
self.getLat = function () {
return lat;
};
self.getLatMap = function () {
return lat / 10000000;
};
@ -71,55 +71,55 @@ let Waypoint = function (number, action, lat, lon, alt=0, p1=0, p2=0, p3=0, endM
self.setLat = function (data) {
lat = data;
};
self.getAction = function () {
return action;
};
self.setAction = function (data) {
action = data;
};
self.getAlt = function () {
return alt;
};
self.setAlt = function (data) {
alt = data;
};
self.getP1 = function () {
return p1;
};
self.setP1 = function (data) {
p1 = data;
};
self.getP2 = function () {
return p2;
};
self.setP2 = function (data) {
p2 = data;
};
self.getP3 = function () {
return p3;
};
self.setP3 = function (data) {
p3 = data;
};
self.getEndMission = function () {
return endMission;
};
self.setEndMission = function (data) {
endMission = data;
};
self.getAttachedId = function () {
return attachedId;
};
@ -127,7 +127,7 @@ let Waypoint = function (number, action, lat, lon, alt=0, p1=0, p2=0, p3=0, endM
self.setAttachedId = function (data) {
attachedId = data;
};
self.getAttachedNumber = function () {
return attachedNumber;
};
@ -135,16 +135,20 @@ let Waypoint = function (number, action, lat, lon, alt=0, p1=0, p2=0, p3=0, endM
self.setAttachedNumber = function (data) {
attachedNumber = data;
};
self.getElevation = async function (globalSettings) {
let elevation;
if (globalSettings.mapProviderType == 'bing') {
const response = await fetch('http://dev.virtualearth.net/REST/v1/Elevation/List?points='+self.getLatMap()+','+self.getLonMap()+'&heights=ellipsoid&key='+globalSettings.mapApiKey);
const myJson = await response.json();
let elevationEarthModel = "ellipsoid";
if ($('#elevationEarthModel').prop("checked")) {
elevationEarthModel = "sealevel";
}
const response = await fetch('http://dev.virtualearth.net/REST/v1/Elevation/List?points='+self.getLatMap()+','+self.getLonMap()+'&heights='+elevationEarthModel+'&key='+globalSettings.mapApiKey);
const myJson = await response.json();
elevation = myJson.resourceSets[0].resources[0].elevations[0];
}
else {
elevation = "NA";
elevation = "N/A";
}
return elevation;
}

@ -10,7 +10,7 @@ let WaypointCollection = function () {
countBusyPoints = 0,
version = 0,
center = {}
self.getMaxWaypoints = function () {
return maxWaypoints;
};
@ -18,15 +18,15 @@ let WaypointCollection = function () {
self.setMaxWaypoints = function (data) {
maxWaypoints = data;
};
self.getValidMission = function () {
return isValidMission;
};
self.setValidMission = function (data) {
isValidMission = data;
};
self.getCountBusyPoints = function () {
return countBusyPoints;
};
@ -34,7 +34,7 @@ let WaypointCollection = function () {
self.setCountBusyPoints = function (data) {
countBusyPoints = data;
};
self.getVersion = function () {
return version;
};
@ -42,11 +42,11 @@ let WaypointCollection = function () {
self.setVersion = function (data) {
version = data;
};
self.getCenter = function () {
return center;
};
self.setCenter = function (data) {
center = data;
};
@ -54,11 +54,11 @@ let WaypointCollection = function () {
self.setCenterZoom = function (data) {
center.zoom = data;
};
self.setCenterLon = function (data) {
center.lon = data;
};
self.setCenterLat = function (data) {
center.lat = data;
};
@ -70,7 +70,7 @@ let WaypointCollection = function () {
self.get = function () {
return data;
};
self.isEmpty = function () {
return data == [];
};
@ -78,7 +78,7 @@ let WaypointCollection = function () {
self.flush = function () {
data = [];
};
self.reinit = function () {
data = [];
maxWaypoints = 60;
@ -99,13 +99,13 @@ let WaypointCollection = function () {
}
}
};
self.updateWaypoint = function(newWaypoint) {
if (newWaypoint.isUsed()) {
data[newWaypoint.getNumber()] = newWaypoint;
}
};
self.dropWaypoint = function(newWaypoint) {
self.getWaypoint(newWaypoint.getNumber()).setUsed(false);
let indexId = newWaypoint.getNumber()
@ -120,7 +120,7 @@ let WaypointCollection = function () {
data.splice(indexId, 1);
};
self.insertWaypoint = function (newWaypoint, indexId) {
data.forEach(function (wp) {
if (wp.getNumber() >= indexId) {
@ -133,7 +133,7 @@ let WaypointCollection = function () {
data.splice(indexId, 0, newWaypoint);
};
self.drop = function (waypointId) {
self.getWaypoint(waypointId).setUsed(false);
var tmpData = [];
@ -148,7 +148,7 @@ let WaypointCollection = function () {
data = tmpData;
};
self.update = function (bMWPfile=false, bReverse=false) {
let oldWPNumber = 0;
let optionIdx = 0;
@ -167,7 +167,7 @@ let WaypointCollection = function () {
element.setP1(element.getP1()+1);
}
}
if ([MWNP.WPTYPE.JUMP,MWNP.WPTYPE.SET_HEAD,MWNP.WPTYPE.RTH].includes(element.getAction())) {
element.setAttachedId(oldWPNumber);
element.setAttachedNumber(optionIdx);
@ -189,7 +189,7 @@ let WaypointCollection = function () {
}
});
};
self.getNonAttachedList = function () {
let tmpData = [];
data.forEach(function (element) {
@ -199,8 +199,8 @@ let WaypointCollection = function () {
});
return tmpData;
}
}
self.getAttachedList = function () {
let tmpData = [];
data.forEach(function (element) {
@ -210,8 +210,8 @@ let WaypointCollection = function () {
});
return tmpData;
}
}
self.getAttachedFromWaypoint = function (waypoint) {
let tmpData = [];
data.forEach(function (element) {
@ -221,8 +221,8 @@ let WaypointCollection = function () {
});
return tmpData;
}
}
self.addAttachedFromWaypoint = function (waypoint) {
let tmpNumber = 0;
let tmpData = self.getAttachedFromWaypoint(waypoint);
@ -234,8 +234,8 @@ let WaypointCollection = function () {
tempWp.setAttachedId(waypoint.getNumber());
self.insertWaypoint(tempWp, waypoint.getNumber()+tmpNumber+1);
self.update();
}
}
self.dropAttachedFromWaypoint = function (waypoint, waypointAttachedNumber) {
data.forEach(function (element) {
if (element.isAttached() && element.getAttachedId() == waypoint.getNumber() && element.getAttachedNumber() == waypointAttachedNumber) {
@ -243,9 +243,9 @@ let WaypointCollection = function () {
self.update();
}
});
}
}
self.extractBuffer = function(waypointId) {
let buffer = [];
let waypoint = self.getWaypoint(waypointId);
@ -270,10 +270,10 @@ let WaypointCollection = function () {
buffer.push(lowByte(waypoint.getP3())); //sbufReadU16(src); // P3
buffer.push(highByte(waypoint.getP3()));
buffer.push(waypoint.getEndMission()); //sbufReadU8(src); // future: to set nav flag
return buffer;
}
self.missionDisplayDebug = function() {
if (data && data.length != 0) {
data.forEach(function (element) {
@ -289,7 +289,7 @@ let WaypointCollection = function () {
});
}
}
self.copy = function(mission){
mission.get().forEach(function (element) {
self.put(element);
@ -300,7 +300,7 @@ let WaypointCollection = function () {
self.setVersion(mission.getVersion());
self.setCenter(mission.getCenter());
}
self.convertJumpNumberToWaypoint = function(jumpId) {
let outputNumber = 0;
self.getNonAttachedList().forEach(function (element) {
@ -310,7 +310,7 @@ let WaypointCollection = function () {
});
return outputNumber;
}
self.isJumpTargetAttached = function(waypoint) {
let lJumptTargetAttached = [];
data.forEach(function (element) {
@ -320,7 +320,7 @@ let WaypointCollection = function () {
});
return (lJumptTargetAttached.length != 0 && lJumptTargetAttached != 'undefined')
}
self.getPoiList = function() {
let poiList = [];
data.forEach(function (element) {
@ -330,7 +330,7 @@ let WaypointCollection = function () {
});
return poiList;
}
self.getPoint2Measure = function(reverse=false) {
let point2measure = [];
let altPoint2measure = [];
@ -383,10 +383,10 @@ let WaypointCollection = function () {
nStart++;
}
}
return [nLoop, point2measure, altPoint2measure, namePoint2measure, refPoint2measure];
}
self.getDistance = function(display) {
let lengthLine = [];
const [nLoop, point2measure, altPoint2measure, namePoint2measure, refPoint2measure] = self.getPoint2Measure();
@ -394,9 +394,9 @@ let WaypointCollection = function () {
return [-1];
}
else {
const cumulativeSum = (sum => value => sum += value)(0);
let oldCoord = [];
point2measure.forEach(function (coord) {
if (oldCoord != 'undefined' && oldCoord != []) {
@ -408,7 +408,7 @@ let WaypointCollection = function () {
return lengthLine.map(cumulativeSum);
}
}
self.getElevation = async function(globalSettings) {
const [nLoop, point2measure, altPoint2measure, namePoint2measure, refPoint2measure] = self.getPoint2Measure(true);
let lengthMission = self.getDistance(true);
@ -424,19 +424,23 @@ let WaypointCollection = function () {
samples = 1024;
}
if (globalSettings.mapProviderType == 'bing') {
let elevationEarthModel = "ellipsoid";
if ($('#elevationEarthModel').prop("checked")) {
elevationEarthModel = "sealevel";
}
if (point2measure.length >1) {
const response = await fetch('http://dev.virtualearth.net/REST/v1/Elevation/Polyline?points='+point2measure+'&heights=ellipsoid&samples='+String(samples+1)+'&key='+globalSettings.mapApiKey);
const myJson = await response.json();
const response = await fetch('http://dev.virtualearth.net/REST/v1/Elevation/Polyline?points='+point2measure+'&heights='+elevationEarthModel+'&samples='+String(samples+1)+'&key='+globalSettings.mapApiKey);
const myJson = await response.json();
elevation = myJson.resourceSets[0].resources[0].elevations;
}
else {
const response = await fetch('http://dev.virtualearth.net/REST/v1/Elevation/List?points='+point2measure+'&heights=ellipsoid&key='+globalSettings.mapApiKey);
const myJson = await response.json();
const response = await fetch('http://dev.virtualearth.net/REST/v1/Elevation/List?points='+point2measure+'&heights='+elevationEarthModel+'&key='+globalSettings.mapApiKey);
const myJson = await response.json();
elevation = myJson.resourceSets[0].resources[0].elevations;
}
}
else {
elevation = "NA";
elevation = "N/A";
}
//console.log("elevation ", elevation);
return [lengthMission, totalMissionDistance, samples, elevation, altPoint2measure, namePoint2measure, refPoint2measure];

@ -13,7 +13,7 @@
</div>
</div>
<div class="spacer" id="ActionContent">
<div class="btn save_btn">
<a id="loadFileMissionButton" class="btnicon ic_loadFromFile" href="#" title="Load Mission File"></a>
<a id="saveFileMissionButton" class="btnicon ic_save2File" href="#" title="Save Mission File"></a>
@ -86,7 +86,7 @@
</div>
</div>
</div>
<div id="missionPlanerHome" class="gui_box grey" style="display: none">
<div class="gui_box_titlebar">
<div class="spacer_box_title i18n-replaced" data-i18n="missionHomeHead">Take Off home</div>
@ -110,10 +110,10 @@
</thead>
<tbody id="homeTableBody">
<tr>
<td><div id="viewHomePoint" class="btnTable btnTableIcon">
<a class="ic_center" data-role="home-center" href="#" title="move to center view"></a>
<td><div id="viewHomePoint" class="btnTable btnTableIcon">
<a class="ic_center" data-role="home-center" href="#" title="move to center view"></a>
</div>
</td>
</td>
<td><input type="number" class="home-lon" /></td>
<td><input type="number" class="home-lat" /></td>
<td><span id="elevationValueAtHome">NA</span></td>
@ -122,8 +122,12 @@
</table>
</div>
</div>
<div class="point" id="elevationEarthModelclass" style="display: none">
<label class="spacer_box_title i18n-replaced" for="elevationEarthModel">Use Sea Level Earth DEM Model: </label>
<input id="elevationEarthModel" type="checkbox" value="0" class="togglemedium" required>
</div>
</div>
<div id="missionPlanerSafehome" class="gui_box grey" style="display: none">
<div class="gui_box_titlebar">
<div class="spacer_box_title i18n-replaced" data-i18n="missionSafehomeHead">Safe Home manager</div>
@ -215,7 +219,11 @@
</div>
<div class="point" id="elevationAtWP" style="display: none">
<label class="point-label">Elevation (m): </label>
<span id="elevationValueAtWP">NA</span>
<span id="elevationValueAtWP">N/A</span>
</div>
<div class="point" id="groundClearanceAtWP" style="display: none">
<label class="point-label">Grd Dist (m): </label>
<span id="groundClearanceValueAtWP">N/A</span>
</div>
<div class="point" id="pointP1class" style="display: none">
<label class="point-label" for="pointP1">Parameter 1: </label>
@ -244,7 +252,7 @@
</tbody>
</table>
</div>
<!-- <div class="point-radio" id="pointOptionclass" style="display: none">
<div class="radio-line">
<input type="radio" id="Options_None" name="Options" value="None" checked>
@ -256,7 +264,7 @@
<input type="checkbox" id="Options_LandRTH">
<label for="Options_LandRTH">Land after RTH</label><br>
</div>
<div class="radio-line">
<div class="radio-line">
<input type="radio" id="Options_JUMP" name="Options" value="JUMP">
<label class="radio-options" for="Options_JUMP">JUMP</label>
<label for="Options_TargetJUMP">Target WP: </label>
@ -264,14 +272,14 @@
<label for="Options_NumberJUMP">Repeat: </label>
<input id="Options_NumberJUMP" type="text" value="0" required><br>
</div>
<div class="radio-line">
<div class="radio-line">
<input type="radio" id="Options_HEAD" name="Options" value="SET_HEAD">
<label class="radio-options" for="Options_HEAD">HEAD</label>
<label for="Options_HeadingHead">Heading: </label>
<input id="Options_HeadingHead" type="text" value="-1" required><br>
</div>
</div> -->
</div>
</div>
</div>

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save