Merge branch 'dl9rdz:devel' into devel

pull/182/head
eben80 2021-09-20 10:17:03 +02:00 zatwierdzone przez GitHub
commit 0266d2fe33
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
3 zmienionych plików z 26 dodań i 15 usunięć

Wyświetl plik

@ -537,13 +537,12 @@ const char *createLiveJson() {
strcpy(ptr, "{");
SondeInfo *s = &sonde.sondeList[sonde.currentSonde];
sprintf(ptr + strlen(ptr), "\"res\": %d, \"rssi\": %d, \"sonde\": {\"vframe\": %d, \"time\": %d,\"id\": \"%s\", \"freq\": %3.3f, \"type\": \"%s\","
"\"lat\": %.6f, \"lon\": %.6f, \"alt\": %.0f, \"speed\": %.1f, \"dir\": %.0f, \"climb\": %.1f, \"launchsite\": \"%s\" }",
s->rxStat[0], s->rssi, s->vframe, s->time, s->id, s->freq, sondeTypeStr[s->type], s->lat, s->lon, s->alt, s->hs, s->dir, s->vs, s->launchsite);
sprintf(ptr + strlen(ptr), "\"rssi\": %d, \"sonde\": {\"vframe\": %d, \"time\": %d,\"id\": \"%s\", \"freq\": %3.3f, \"type\": \"%s\","
"\"lat\": %.6f, \"lon\": %.6f, \"alt\": %.0f, \"speed\": %.1f, \"dir\": %.0f, \"climb\": %.1f, \"launchsite\": \"%s\", \"res\": %d }",
s->rssi, s->vframe, s->time, s->id, s->freq, sondeTypeStr[s->type], s->lat, s->lon, s->alt, s->hs, s->dir, s->vs, s->launchsite, s->rxStat[0]);
if (sonde.config.gps_rxd < 0) {
// gps disabled
} else {
if (gpsPos.valid) {
#if 0
long sat = nmea.getNumSatellites();
long speed = nmea.getSpeed();
long dir = nmea.getCourse();
@ -555,7 +554,14 @@ const char *createLiveJson() {
uint8_t hdop = nmea.getHDOP();
if (valid) {
strcat(ptr, ",");
sprintf(ptr + strlen(ptr), "\"gps\": {\"lat\": %ld, \"lon\": %ld, \"alt\": %ld, \"sat\": %ld, \"speed\": %ld, \"dir\": %ld, \"hdop\": %d }", lat, lon, alt, sat, speed, dir, hdop);
#endif
sprintf(ptr + strlen(ptr), ", \"gps\": {\"lat\": %g, \"lon\": %g, \"alt\": %d, \"sat\": %d, \"speed\": %g, \"dir\": %d, \"hdop\": %d }", gpsPos.lat, gpsPos.lon, gpsPos.alt, gpsPos.sat, gpsPos.speed, gpsPos.course, gpsPos.hdop);
//}
} else {
// no GPS position, but maybe a fixed position
if ((!isnan(sonde.config.rxlat)) && (!isnan(sonde.config.rxlon))) {
int alt = isnan(sonde.config.rxalt) ? 0 : (int)sonde.config.rxalt;
sprintf(ptr + strlen(ptr), ", \"gps\": {\"lat\": %g, \"lon\": %g, \"alt\": %d, \"sat\": 0, \"speed\": 0, \"dir\": 0, \"hdop\": 0 }", sonde.config.rxlat, sonde.config.rxlon, alt);
}
}
@ -1688,6 +1694,9 @@ void gpsTask(void *parameter) {
}
}
}
gpsPos.hdop = nmea.getHDOP();
gpsPos.sat = nmea.getNumSatellites();
gpsPos.speed = nmea.getSpeed() / 1000.0 * 0.514444; // speed is in m/s nmea.getSpeed is in 0.001 knots
#ifdef DEBUG_GPS
uint8_t hdop = nmea.getHDOP();
Serial.printf(" =>: valid: %d N %f E %f alt %d course:%d dop:%d\n", gpsPos.valid ? 1 : 0, gpsPos.lat, gpsPos.lon, gpsPos.alt, gpsPos.course, hdop);
@ -3493,7 +3502,7 @@ void sondehub_reply_handler(WiFiClient *client) {
// sondehub handler for tasks to be done even if no data is to be sent:
// process response messages from sondehub
// request frequency list (if active)
#define MSG_SIZE 550
#define MSG_SIZE 1000
char rs_msg[MSG_SIZE];
if(shImport==1) { // we are waiting for a reply to a sondehub frequency import request

Wyświetl plik

@ -70,11 +70,11 @@ $('.leaflet-footer').append(footer);
var statbar = '';
headtxt = function(data,stat) {
console.log(data);
//console.log(data);
var staticon = (stat == '1')?greendot:yellowdot;
statbar = staticon + statbar;
if ((statbar.length) > 10*greendot.length) { statbar = statbar.substring(0,10*greendot.length); }
if (data.lat == '0.000000') { return false; }
//if (data.lat == '0.000000') { return false; }
if (data.res == 0) {
$('#sonde_id').html(data.id);
$('#sonde_alt').html(data.alt);
@ -156,7 +156,7 @@ headtxt = function(data,stat) {
draw = function(data) {
var stat;
console.log(data);
//console.log(data);
if (data.id) {
// data.res: 0: ok 1: no rx (timeout), 2: crc err, >2 some other error
if ((data.lat != '0.000000' && data.lon != '0.000000') && (data.res==0)) { //JSON.stringify(data) != JSON.stringify(last_data)) ) {
@ -201,7 +201,7 @@ headtxt = function(data,stat) {
circ_gps = false;
gps = function(e) {
gps_location = [e.lat/1000000,e.lon/1000000];
gps_location = [e.lat,e.lon];
gps_accuracy = e.hdop*2;
if (last_data && last_data.lat != '0.000000') {
@ -233,10 +233,9 @@ headtxt = function(data,stat) {
get_data = function() {
$('#status').html(reddot);
console.log("get_data called");
$.ajax({url: 'live.json', success: (function( data ) {
if (typeof data != "object") { data = $.parseJSON(data); }
console.log(data);
//console.log(data);
if (data.sonde) {
draw(data.sonde);
} else {
@ -408,7 +407,7 @@ headtxt = function(data,stat) {
if (t == 'burst') { return '<div class="i_burst"><b>💥 Predicted Burst:</b><br />'+fd(i.datetime)+' in '+mr(i.altitude)+'m'+add+'</div>'; }
if (t == 'highest') { return '<div class="i_burst"><b>💥 Burst:</b> '+mr(i.altitude)+'m'+add+'</div>';}
if (t == 'landing') { return '<div class="i_landing"><b>🎯 Predicted Landing:</b><br />'+fd(i.datetime)+' at '+mr(i.altitude)+'m'+add+'</div>'; }
if (t == 'gps') { return '<div class="i_gps">Position: '+(i.lat/1000000)+','+(i.lon/1000000)+'<br />Altitude: '+mr(i.alt/1000)+'m<br />Speed: '+mr(i.speed/1000 * 1.852 * 10)/10+'km/h '+mr(i.dir/1000)+'°<br />Sat: '+i.sat+' Hdop:'+(i.hdop/10)+'</div>'; }
if (t == 'gps') { return '<div class="i_gps">Position: '+(i.lat)+','+(i.lon)+'<br />Altitude: '+i.alt+'m<br />Speed: '+mr(i.speed * 3.6 * 10)/10+'km/h '+i.dir+'°<br />Sat: '+i.sat+' Hdop:'+(i.hdop/10)+'</div>'; }
};
fd = function(date) {

Wyświetl plik

@ -14,7 +14,10 @@ struct GpsPos {
double lon;
int alt;
int course;
float speed;
int sat;
int accuracy;
int hdop;
int valid;
};
extern struct GpsPos gpsPos;