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/aprs.h"
#include "src/ShFreqImport.h" #include "src/ShFreqImport.h"
#include "src/RS41.h" #include "src/RS41.h"
#include "src/json.h"
#if FEATURE_CHASEMAPPER #if FEATURE_CHASEMAPPER
#include "src/Chasemapper.h" #include "src/Chasemapper.h"
#endif #endif
@ -545,9 +546,12 @@ const char *createStatusForm() {
const char *createLiveJson() { const char *createLiveJson() {
char *ptr = message; char *ptr = message;
strcpy(ptr, "{");
SondeInfo *s = &sonde.sondeList[sonde.currentSonde]; 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\"", 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)]); 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), ", \"speed\": %.1f", s->d.hs);
sprintf(ptr + strlen(ptr), ", \"launchsite\": \"%s\", \"res\": %d }", s->launchsite, s->rxStat[0]); sprintf(ptr + strlen(ptr), ", \"launchsite\": \"%s\", \"res\": %d }", s->launchsite, s->rxStat[0]);
#endif
strcat(ptr, " }");
if (gpsPos.valid) { 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); 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; 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); 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, "}"); 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 "\"id\": \"%s\"," // TODO: maybe remove in the future, ser is enough, client can calculate APRS id if needed
"\"ser\": \"%s\"," "\"ser\": \"%s\","
"\"frame\": %u," // raw frame, from sonde, can be 0. (TODO: add virtual frame # as in sondehub?) "\"frame\": %u," // raw frame, from sonde, can be 0. (TODO: add virtual frame # as in sondehub?)
"\"vframe\": %d,"
"\"time\": %u," "\"time\": %u,"
"\"lat\": %.5f," "\"lat\": %.5f,"
"\"lon\": %.5f," "\"lon\": %.5f,"
@ -46,11 +47,14 @@ int sonde2json(char *buf, int maxlen, SondeInfo *si)
"\"launchKT\": %d," "\"launchKT\": %d,"
"\"burstKT\": %d," "\"burstKT\": %d,"
"\"countKT\": %d," "\"countKT\": %d,"
"\"crefKT\": %d", "\"crefKT\": %d,"
"\"launchsite\": \"%d\","
"\"res\": %d",
getType(si), getType(si),
s->id, s->id,
s->ser, s->ser,
s->frame, s->frame,
s->vframe,
s->time, s->time,
s->lat, s->lat,
s->lon, s->lon,
@ -67,7 +71,9 @@ int sonde2json(char *buf, int maxlen, SondeInfo *si)
s->launchKT, s->launchKT,
s->burstKT, s->burstKT,
s->countKT, s->countKT,
s->crefKT s->crefKT,
si->launchsite,
si->rxStat[0]
); );
if(n>=maxlen) return -1; if(n>=maxlen) return -1;
buf += n; maxlen -= n; buf += n; maxlen -= n;