Move sondehub recovery report into browser, so errors can be reported

pull/37/head v1.3.1
Mark Jessop 2021-06-11 09:09:06 +09:30
rodzic 5f85cc1bcc
commit 9258120a52
4 zmienionych plików z 88 dodań i 2 usunięć

Wyświetl plik

@ -8,4 +8,4 @@
# Now using Semantic Versioning (https://semver.org/) MAJOR.MINOR.PATCH
__version__ = "1.3.0"
__version__ = "1.3.1"

Wyświetl plik

@ -707,6 +707,8 @@ def mark_payload_recovered(data):
""" Mark a payload as recovered, by uploading a station position """
global online_uploader
print(data)
_serial = data["payload_call"]
_callsign = data["my_call"]
_lat = data["last_pos"][0]

Wyświetl plik

@ -30,3 +30,80 @@ function get_sondehub_vehicles(){
}
/* Habitat ChaseCar lib (copied from SondeHub Tracker)
* Uploads geolocation for chase cars to habitat
*
* Author: Rossen Gerogiev / Mark Jessop
* Requires: jQuery
*
* Updated to SondeHub v2 by Mark Jessop
*/
ChaseCar = {
db_uri: "https://api.v2.sondehub.org/listeners", // Sondehub API
recovery_uri: "https://api.v2.sondehub.org/recovered",
};
// Updated SondeHub position upload function.
// Refer PUT listeners API here: https://generator.swagger.io/?url=https://raw.githubusercontent.com/projecthorus/sondehub-infra/main/swagger.yaml
// @callsign string
// @position object (geolocation position object)
ChaseCar.updatePosition = function(callsign, position) {
if(!position || !position.coords) return;
// Set altitude to zero if not provided.
_position_alt = ((!!position.coords.altitude) ? position.coords.altitude : 0);
var _doc = {
"software_name": "SondeHub Tracker",
"software_version": "{VER}",
"uploader_callsign": callsign,
"uploader_position": [position.coords.latitude, position.coords.longitude, _position_alt],
"uploader_antenna": "Mobile Station",
"uploader_contact_email": "none@none.com",
"mobile": true
};
// push the doc to sondehub
$.ajax({
type: "PUT",
url: ChaseCar.db_uri,
contentType: "application/json; charset=utf-8",
dataType: "json",
data: JSON.stringify(_doc),
});
};
ChaseCar.markRecovered = function(serial, lat, lon, recovered, callsign, notes){
var _doc = {
"serial": serial,
"lat": lat,
"lon": lon,
"alt": 0.0,
"recovered": recovered,
"recovered_by": callsign,
"description": notes
};
$.ajax({
type: "PUT",
url: ChaseCar.recovery_uri,
contentType: "application/json; charset=utf-8",
dataType: "json",
data: JSON.stringify(_doc),
}).done(function(data) {
console.log(data);
alert("Recovery Reported OK!");
})
.fail(function(jqXHR, textStatus, error) {
try {
_fail_resp = JSON.parse(jqXHR.responseText);
alert("Error Submitting Recovery Report: " + _fail_resp.message);
} catch(err) {
alert("Error Submitting Recovery Report.");
}
})
}

Wyświetl plik

@ -79,7 +79,14 @@ function markPayloadRecovered(callsign){
_recovery_data.last_pos = chase_car_position.latest_data;
}
socket.emit('mark_recovered', _recovery_data);
if (chase_config.profiles[chase_config.selected_profile].online_tracker === "sondehub"){
// For sondehub recoveries, do the request in-browser.
ChaseCar.markRecovered(_recovery_data.payload_call, _recovery_data.last_pos[0], _recovery_data.last_pos[1], _recovery_data.recovered, _recovery_data.my_call, _recovery_data.message);
} else {
// Habitat 'recoveries' are a bit more involved, so do these in the backend.
socket.emit('mark_recovered', _recovery_data);
}
},
Cancel: function() {
$( this ).dialog( "close" );