json reorg part 2

This commit is contained in:
Hans P. Reiser 2022-04-07 23:46:59 +00:00
parent b605e156fd
commit cad5bd16cd
2 changed files with 16 additions and 6 deletions

View File

@ -23,6 +23,7 @@
#include "src/aprs.h"
#include "src/ShFreqImport.h"
#include "src/RS41.h"
#include "src/json.h"
#if FEATURE_CHASEMAPPER
#include "src/Chasemapper.h"
#endif
@ -545,9 +546,12 @@ const char *createStatusForm() {
const char *createLiveJson() {
char *ptr = message;
strcpy(ptr, "{");
SondeInfo *s = &sonde.sondeList[sonde.currentSonde];
strcpy(ptr, "{\"sonde\": {");
// use the same JSON format here as for MQTT and for the Android App
sonde2json( ptr+strlen(ptr), 1024, s );
#if 0
sprintf(ptr + strlen(ptr), "\"sonde\": {\"rssi\": %d, \"vframe\": %d, \"time\": %d,\"id\": \"%s\", \"freq\": %3.3f, \"type\": \"%s\"",
s->rssi, s->d.vframe, s->d.time, s->d.id, s->freq, sondeTypeStr[sonde.realType(s)]);
@ -563,7 +567,8 @@ const char *createLiveJson() {
sprintf(ptr + strlen(ptr), ", \"speed\": %.1f", s->d.hs);
sprintf(ptr + strlen(ptr), ", \"launchsite\": \"%s\", \"res\": %d }", s->launchsite, s->rxStat[0]);
#endif
strcat(ptr, " }");
if (gpsPos.valid) {
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);
//}
@ -573,7 +578,6 @@ const char *createLiveJson() {
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);
}
}
strcat(ptr, "}");

View File

@ -30,6 +30,7 @@ int sonde2json(char *buf, int maxlen, SondeInfo *si)
"\"id\": \"%s\"," // TODO: maybe remove in the future, ser is enough, client can calculate APRS id if needed
"\"ser\": \"%s\","
"\"frame\": %u," // raw frame, from sonde, can be 0. (TODO: add virtual frame # as in sondehub?)
"\"vframe\": %d,"
"\"time\": %u,"
"\"lat\": %.5f,"
"\"lon\": %.5f,"
@ -46,11 +47,14 @@ int sonde2json(char *buf, int maxlen, SondeInfo *si)
"\"launchKT\": %d,"
"\"burstKT\": %d,"
"\"countKT\": %d,"
"\"crefKT\": %d",
"\"crefKT\": %d,"
"\"launchsite\": \"%d\","
"\"res\": %d",
getType(si),
s->id,
s->ser,
s->frame,
s->vframe,
s->time,
s->lat,
s->lon,
@ -67,7 +71,9 @@ int sonde2json(char *buf, int maxlen, SondeInfo *si)
s->launchKT,
s->burstKT,
s->countKT,
s->crefKT
s->crefKT,
si->launchsite,
si->rxStat[0]
);
if(n>=maxlen) return -1;
buf += n; maxlen -= n;