diff --git a/README.md b/README.md index e6b90f5..1f74340 100644 --- a/README.md +++ b/README.md @@ -295,6 +295,11 @@ Many thanks to David Brooke for coding this feature and the AFC. Change History ============== +## 21/09/2022 - V1.9.3 + + Scans telemetry for a fieldlist field. This is metadata defining the sequence of fields in the telemetry string + If found, then this field is used to extract fields such as sats, pred_lat etc., and send them to Sondehub/amateur + ## 10/09/2022 - V1.9.2 Fixed code that uploads to Sondehub so that a zero altitude doesn't result in a 400 response from the server diff --git a/errors.txt b/errors.txt index 5b657b3..ec43e41 100644 --- a/errors.txt +++ b/errors.txt @@ -1,3 +1,90 @@ 09:08:52: 400 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.1","uploader_callsign": "M0RPI/5","time_received": "2022-09-18T08:08:50Z","payload_callsign": "PITS","datetime":"2022-09-18T08:08:50Z","lat": 51.95018,"lon": -2.54439,"alt": ,"frequency": 434.2250,"modulation": "LoRa","uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] 09:08:54: 400 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.1","uploader_callsign": "M0RPI/5","time_received": "2022-09-18T08:08:53Z","payload_callsign": "PITS","datetime":"2022-09-18T08:08:53Z","lat": 51.95017,"lon": -2.54439,"alt": ,"frequency": 434.2250,"modulation": "LoRa","uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] 09:08:57: 400 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.1","uploader_callsign": "M0RPI/5","time_received": "2022-09-18T08:08:56Z","payload_callsign": "PITS","datetime":"2022-09-18T08:08:56Z","lat": 51.95017,"lon": -2.54439,"alt": ,"frequency": 434.2250,"modulation": "LoRa","uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:20:23: 400 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:20:21Z","payload_callsign": "PITS","datetime":"2022-09-21T09:20:21Z","lat": 51.95020,"lon": -2.54434,"alt": 153,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"},"sats"=12] +10:20:25: 400 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:20:24Z","payload_callsign": "PITS","datetime":"2022-09-21T09:20:24Z","lat": 51.95020,"lon": -2.54434,"alt": 153,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"},"sats"=12] +10:20:28: 400 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:20:27Z","payload_callsign": "PITS","datetime":"2022-09-21T09:20:27Z","lat": 51.95020,"lon": -2.54434,"alt": 153,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"},"sats"=12] +10:20:30: 400 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:20:30Z","payload_callsign": "PITS","datetime":"2022-09-21T09:20:30Z","lat": 51.95020,"lon": -2.54433,"alt": 153,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"},"sats"=12] +10:40:53: 200 response to: {"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","uploader_position": [ 51.950, -2.545, 145],"uploader_radio": "Uputronics LoRa HAT","uploader_antenna": "Collinear"} +10:40:56: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:40:55Z","payload_callsign": "PITS","datetime":"2022-09-21T09:40:55Z","lat": 52.30179,"lon": -0.06818,"alt": 4761,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":10,"internal_temp":32.2,"batt":0.0,"pred_lat":52.40964,"pred_lon":-0.01595,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:51:26: 200 response to: {"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","uploader_position": [ 51.950, -2.545, 145],"uploader_radio": "Uputronics LoRa HAT","uploader_antenna": "Collinear"} +10:51:29: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:51:27Z","payload_callsign": "PITS","datetime":"2022-09-21T09:51:27Z","lat": 52.36804,"lon": 0.06429,"alt": 11359,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.4,"batt":0.0,"pred_lat":52.60164,"pred_lon":0.35422,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:51:35: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:51:34Z","payload_callsign": "PITS","datetime":"2022-09-21T09:51:34Z","lat": 52.36853,"lon": 0.06666,"alt": 11432,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.4,"batt":0.0,"pred_lat":52.60250,"pred_lon":0.35797,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:51:42: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:51:41Z","payload_callsign": "PITS","datetime":"2022-09-21T09:51:41Z","lat": 52.36875,"lon": 0.06876,"alt": 11493,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -28,"sats":11,"internal_temp":32.4,"batt":0.0,"pred_lat":52.60338,"pred_lon":0.36201,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:51:49: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:51:48Z","payload_callsign": "PITS","datetime":"2022-09-21T09:51:48Z","lat": 52.36903,"lon": 0.07080,"alt": 11557,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.4,"batt":0.0,"pred_lat":52.60389,"pred_lon":0.36831,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:51:56: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:51:55Z","payload_callsign": "PITS","datetime":"2022-09-21T09:51:55Z","lat": 52.36931,"lon": 0.07277,"alt": 11621,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.4,"batt":0.0,"pred_lat":52.60455,"pred_lon":0.37151,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:52:03: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:52:02Z","payload_callsign": "PITS","datetime":"2022-09-21T09:52:02Z","lat": 52.36985,"lon": 0.07486,"alt": 11688,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.4,"batt":0.0,"pred_lat":52.60527,"pred_lon":0.37543,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:52:09: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:52:09Z","payload_callsign": "PITS","datetime":"2022-09-21T09:52:09Z","lat": 52.37017,"lon": 0.07677,"alt": 11757,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 9,"rssi": -29,"sats":11,"internal_temp":32.4,"batt":0.0,"pred_lat":52.60671,"pred_lon":0.38157,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:52:17: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:52:15Z","payload_callsign": "PITS","datetime":"2022-09-21T09:52:15Z","lat": 52.37051,"lon": 0.07865,"alt": 11830,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.5,"batt":0.0,"pred_lat":52.60701,"pred_lon":0.38491,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:52:23: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:52:22Z","payload_callsign": "PITS","datetime":"2022-09-21T09:52:22Z","lat": 52.37094,"lon": 0.08035,"alt": 11893,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.5,"batt":0.0,"pred_lat":52.60780,"pred_lon":0.38814,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:52:30: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:52:29Z","payload_callsign": "PITS","datetime":"2022-09-21T09:52:29Z","lat": 52.37145,"lon": 0.08226,"alt": 11959,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.4,"batt":0.0,"pred_lat":52.60912,"pred_lon":0.39349,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:52:37: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:52:36Z","payload_callsign": "PITS","datetime":"2022-09-21T09:52:36Z","lat": 52.37188,"lon": 0.08421,"alt": 12022,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.4,"batt":0.0,"pred_lat":52.61009,"pred_lon":0.39684,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:52:44: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:52:43Z","payload_callsign": "PITS","datetime":"2022-09-21T09:52:43Z","lat": 52.37238,"lon": 0.08618,"alt": 12084,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.4,"batt":0.0,"pred_lat":52.61164,"pred_lon":0.40265,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:52:51: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:52:50Z","payload_callsign": "PITS","datetime":"2022-09-21T09:52:50Z","lat": 52.37288,"lon": 0.08814,"alt": 12141,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 9,"rssi": -28,"sats":11,"internal_temp":32.4,"batt":0.0,"pred_lat":52.61252,"pred_lon":0.40582,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:52:58: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:52:57Z","payload_callsign": "PITS","datetime":"2022-09-21T09:52:57Z","lat": 52.37337,"lon": 0.09015,"alt": 12203,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.4,"batt":0.0,"pred_lat":52.61294,"pred_lon":0.40880,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:53:05: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:53:04Z","payload_callsign": "PITS","datetime":"2022-09-21T09:53:04Z","lat": 52.37387,"lon": 0.09212,"alt": 12266,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.4,"batt":0.0,"pred_lat":52.61472,"pred_lon":0.41470,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:53:11: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:53:10Z","payload_callsign": "PITS","datetime":"2022-09-21T09:53:10Z","lat": 52.37436,"lon": 0.09412,"alt": 12328,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.4,"batt":0.0,"pred_lat":52.61539,"pred_lon":0.41749,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:53:18: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:53:17Z","payload_callsign": "PITS","datetime":"2022-09-21T09:53:17Z","lat": 52.37497,"lon": 0.09588,"alt": 12391,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.4,"batt":0.0,"pred_lat":52.61636,"pred_lon":0.42102,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:53:25: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:53:24Z","payload_callsign": "PITS","datetime":"2022-09-21T09:53:24Z","lat": 52.37577,"lon": 0.09773,"alt": 12448,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.5,"batt":0.0,"pred_lat":52.61879,"pred_lon":0.42634,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:53:32: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:53:31Z","payload_callsign": "PITS","datetime":"2022-09-21T09:53:31Z","lat": 52.37664,"lon": 0.09936,"alt": 12510,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.5,"batt":0.0,"pred_lat":52.61977,"pred_lon":0.42781,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:53:39: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:53:38Z","payload_callsign": "PITS","datetime":"2022-09-21T09:53:38Z","lat": 52.37743,"lon": 0.10107,"alt": 12570,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.5,"batt":0.0,"pred_lat":52.62228,"pred_lon":0.43267,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:53:46: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:53:45Z","payload_callsign": "PITS","datetime":"2022-09-21T09:53:45Z","lat": 52.37839,"lon": 0.10353,"alt": 12656,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.5,"batt":0.0,"pred_lat":52.62395,"pred_lon":0.43714,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:53:53: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:53:52Z","payload_callsign": "PITS","datetime":"2022-09-21T09:53:52Z","lat": 52.37868,"lon": 0.10533,"alt": 12735,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.5,"batt":0.0,"pred_lat":52.62460,"pred_lon":0.44016,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:54:00: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:53:59Z","payload_callsign": "PITS","datetime":"2022-09-21T09:53:59Z","lat": 52.37906,"lon": 0.10800,"alt": 12798,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.5,"batt":0.0,"pred_lat":52.62568,"pred_lon":0.44798,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:54:06: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:54:05Z","payload_callsign": "PITS","datetime":"2022-09-21T09:54:05Z","lat": 52.37961,"lon": 0.11089,"alt": 12864,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.5,"batt":0.0,"pred_lat":52.62660,"pred_lon":0.45244,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:54:13: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:54:12Z","payload_callsign": "PITS","datetime":"2022-09-21T09:54:12Z","lat": 52.38002,"lon": 0.11315,"alt": 12920,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.5,"batt":0.0,"pred_lat":52.62706,"pred_lon":0.45573,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:54:20: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:54:19Z","payload_callsign": "PITS","datetime":"2022-09-21T09:54:19Z","lat": 52.38100,"lon": 0.11487,"alt": 13006,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.5,"batt":0.0,"pred_lat":52.63008,"pred_lon":0.46124,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:54:27: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:54:26Z","payload_callsign": "PITS","datetime":"2022-09-21T09:54:26Z","lat": 52.38202,"lon": 0.11650,"alt": 13070,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.5,"batt":0.0,"pred_lat":52.63171,"pred_lon":0.46452,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:54:34: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:54:33Z","payload_callsign": "PITS","datetime":"2022-09-21T09:54:33Z","lat": 52.38302,"lon": 0.11773,"alt": 13135,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.5,"batt":0.0,"pred_lat":52.63331,"pred_lon":0.46549,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:54:41: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:54:40Z","payload_callsign": "PITS","datetime":"2022-09-21T09:54:40Z","lat": 52.38394,"lon": 0.11909,"alt": 13197,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.5,"batt":0.0,"pred_lat":52.63633,"pred_lon":0.46955,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:54:48: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:54:47Z","payload_callsign": "PITS","datetime":"2022-09-21T09:54:47Z","lat": 52.38490,"lon": 0.12077,"alt": 13261,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.5,"batt":0.0,"pred_lat":52.63770,"pred_lon":0.47184,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:54:55: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:54:54Z","payload_callsign": "PITS","datetime":"2022-09-21T09:54:54Z","lat": 52.38584,"lon": 0.12249,"alt": 13326,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.5,"batt":0.0,"pred_lat":52.64028,"pred_lon":0.47626,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:55:02: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:55:00Z","payload_callsign": "PITS","datetime":"2022-09-21T09:55:00Z","lat": 52.38673,"lon": 0.12433,"alt": 13392,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.5,"batt":0.0,"pred_lat":52.64174,"pred_lon":0.47981,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:55:08: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:55:07Z","payload_callsign": "PITS","datetime":"2022-09-21T09:55:07Z","lat": 52.38754,"lon": 0.12629,"alt": 13456,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.5,"batt":0.0,"pred_lat":52.64323,"pred_lon":0.48181,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:55:15: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:55:14Z","payload_callsign": "PITS","datetime":"2022-09-21T09:55:14Z","lat": 52.38822,"lon": 0.12827,"alt": 13515,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.5,"batt":0.0,"pred_lat":52.64556,"pred_lon":0.48818,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:55:22: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:55:21Z","payload_callsign": "PITS","datetime":"2022-09-21T09:55:21Z","lat": 52.38902,"lon": 0.13050,"alt": 13578,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.5,"batt":0.0,"pred_lat":52.64671,"pred_lon":0.49135,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:55:29: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:55:28Z","payload_callsign": "PITS","datetime":"2022-09-21T09:55:28Z","lat": 52.38996,"lon": 0.13256,"alt": 13641,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.5,"batt":0.0,"pred_lat":52.64778,"pred_lon":0.49462,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:55:36: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:55:35Z","payload_callsign": "PITS","datetime":"2022-09-21T09:55:35Z","lat": 52.39085,"lon": 0.13426,"alt": 13699,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.5,"batt":0.0,"pred_lat":52.65040,"pred_lon":0.49984,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:55:43: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:55:42Z","payload_callsign": "PITS","datetime":"2022-09-21T09:55:42Z","lat": 52.39182,"lon": 0.13601,"alt": 13762,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.6,"batt":0.0,"pred_lat":52.65193,"pred_lon":0.50247,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:55:50: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:55:49Z","payload_callsign": "PITS","datetime":"2022-09-21T09:55:49Z","lat": 52.39272,"lon": 0.13771,"alt": 13821,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.6,"batt":0.0,"pred_lat":52.65431,"pred_lon":0.50702,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:55:56: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:55:55Z","payload_callsign": "PITS","datetime":"2022-09-21T09:55:55Z","lat": 52.39359,"lon": 0.13933,"alt": 13873,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.6,"batt":0.0,"pred_lat":52.65600,"pred_lon":0.50972,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:56:03: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:56:02Z","payload_callsign": "PITS","datetime":"2022-09-21T09:56:02Z","lat": 52.39429,"lon": 0.14125,"alt": 13937,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.5,"batt":0.0,"pred_lat":52.65667,"pred_lon":0.51269,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:56:10: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:56:09Z","payload_callsign": "PITS","datetime":"2022-09-21T09:56:09Z","lat": 52.39496,"lon": 0.14304,"alt": 14001,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.5,"batt":0.0,"pred_lat":52.65869,"pred_lon":0.51868,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:56:17: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:56:16Z","payload_callsign": "PITS","datetime":"2022-09-21T09:56:16Z","lat": 52.39569,"lon": 0.14470,"alt": 14061,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.5,"batt":0.0,"pred_lat":52.65973,"pred_lon":0.52087,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:56:24: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:56:23Z","payload_callsign": "PITS","datetime":"2022-09-21T09:56:23Z","lat": 52.39644,"lon": 0.14625,"alt": 14119,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.5,"batt":0.0,"pred_lat":52.66054,"pred_lon":0.52304,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:56:31: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:56:30Z","payload_callsign": "PITS","datetime":"2022-09-21T09:56:30Z","lat": 52.39707,"lon": 0.14763,"alt": 14176,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.5,"batt":0.0,"pred_lat":52.66226,"pred_lon":0.52728,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:56:38: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:56:37Z","payload_callsign": "PITS","datetime":"2022-09-21T09:56:37Z","lat": 52.39792,"lon": 0.14937,"alt": 14240,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.5,"batt":0.0,"pred_lat":52.66379,"pred_lon":0.52942,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:56:45: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:56:44Z","payload_callsign": "PITS","datetime":"2022-09-21T09:56:44Z","lat": 52.39859,"lon": 0.15101,"alt": 14301,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.5,"batt":0.0,"pred_lat":52.66491,"pred_lon":0.53232,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:56:51: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:56:50Z","payload_callsign": "PITS","datetime":"2022-09-21T09:56:50Z","lat": 52.39931,"lon": 0.15240,"alt": 14364,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.5,"batt":0.0,"pred_lat":52.66694,"pred_lon":0.53598,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:56:58: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:56:57Z","payload_callsign": "PITS","datetime":"2022-09-21T09:56:57Z","lat": 52.40019,"lon": 0.15352,"alt": 14425,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.5,"batt":0.0,"pred_lat":52.66813,"pred_lon":0.53764,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:57:05: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:57:04Z","payload_callsign": "PITS","datetime":"2022-09-21T09:57:04Z","lat": 52.40126,"lon": 0.15470,"alt": 14487,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.5,"batt":0.0,"pred_lat":52.67087,"pred_lon":0.54089,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:57:12: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:57:11Z","payload_callsign": "PITS","datetime":"2022-09-21T09:57:11Z","lat": 52.40224,"lon": 0.15598,"alt": 14551,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.6,"batt":0.0,"pred_lat":52.67222,"pred_lon":0.54264,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:57:19: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:57:18Z","payload_callsign": "PITS","datetime":"2022-09-21T09:57:18Z","lat": 52.40314,"lon": 0.15740,"alt": 14615,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.6,"batt":0.0,"pred_lat":52.67364,"pred_lon":0.54461,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:57:26: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:57:25Z","payload_callsign": "PITS","datetime":"2022-09-21T09:57:25Z","lat": 52.40397,"lon": 0.15855,"alt": 14674,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.6,"batt":0.0,"pred_lat":52.67610,"pred_lon":0.54824,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:57:33: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:57:32Z","payload_callsign": "PITS","datetime":"2022-09-21T09:57:32Z","lat": 52.40493,"lon": 0.15975,"alt": 14737,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.6,"batt":0.0,"pred_lat":52.67693,"pred_lon":0.54927,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:57:39: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:57:39Z","payload_callsign": "PITS","datetime":"2022-09-21T09:57:39Z","lat": 52.40583,"lon": 0.16124,"alt": 14802,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.6,"batt":0.0,"pred_lat":52.67852,"pred_lon":0.55157,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:57:46: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:57:45Z","payload_callsign": "PITS","datetime":"2022-09-21T09:57:45Z","lat": 52.40670,"lon": 0.16293,"alt": 14863,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.6,"batt":0.0,"pred_lat":52.68067,"pred_lon":0.55574,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:57:53: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:57:52Z","payload_callsign": "PITS","datetime":"2022-09-21T09:57:52Z","lat": 52.40767,"lon": 0.16451,"alt": 14924,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.6,"batt":0.0,"pred_lat":52.68199,"pred_lon":0.55787,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:58:00: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:57:59Z","payload_callsign": "PITS","datetime":"2022-09-21T09:57:59Z","lat": 52.40867,"lon": 0.16614,"alt": 14987,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.6,"batt":0.0,"pred_lat":52.68479,"pred_lon":0.56215,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:58:07: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:58:06Z","payload_callsign": "PITS","datetime":"2022-09-21T09:58:06Z","lat": 52.40965,"lon": 0.16759,"alt": 15049,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.6,"batt":0.0,"pred_lat":52.68612,"pred_lon":0.56407,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:58:14: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:58:13Z","payload_callsign": "PITS","datetime":"2022-09-21T09:58:13Z","lat": 52.41062,"lon": 0.16922,"alt": 15111,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.6,"batt":0.0,"pred_lat":52.68730,"pred_lon":0.56652,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:58:21: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:58:20Z","payload_callsign": "PITS","datetime":"2022-09-21T09:58:20Z","lat": 52.41138,"lon": 0.17084,"alt": 15169,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.6,"batt":0.0,"pred_lat":52.69001,"pred_lon":0.57136,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:58:28: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:58:27Z","payload_callsign": "PITS","datetime":"2022-09-21T09:58:27Z","lat": 52.41225,"lon": 0.17245,"alt": 15232,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.5,"batt":0.0,"pred_lat":52.69107,"pred_lon":0.57338,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:58:34: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:58:34Z","payload_callsign": "PITS","datetime":"2022-09-21T09:58:34Z","lat": 52.41293,"lon": 0.17417,"alt": 15295,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.5,"batt":0.0,"pred_lat":52.69217,"pred_lon":0.57543,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:58:41: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:58:40Z","payload_callsign": "PITS","datetime":"2022-09-21T09:58:40Z","lat": 52.41330,"lon": 0.17574,"alt": 15358,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.6,"batt":0.0,"pred_lat":52.69358,"pred_lon":0.58039,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:58:48: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:58:47Z","payload_callsign": "PITS","datetime":"2022-09-21T09:58:47Z","lat": 52.41349,"lon": 0.17688,"alt": 15416,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -28,"sats":11,"internal_temp":32.6,"batt":0.0,"pred_lat":52.69381,"pred_lon":0.58200,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:58:55: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:58:54Z","payload_callsign": "PITS","datetime":"2022-09-21T09:58:54Z","lat": 52.41364,"lon": 0.17819,"alt": 15480,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.6,"batt":0.0,"pred_lat":52.69412,"pred_lon":0.58566,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:59:02: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:59:01Z","payload_callsign": "PITS","datetime":"2022-09-21T09:59:01Z","lat": 52.41379,"lon": 0.17945,"alt": 15543,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 5,"rssi": -29,"sats":11,"internal_temp":32.6,"batt":0.0,"pred_lat":52.69428,"pred_lon":0.58740,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:59:09: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:59:08Z","payload_callsign": "PITS","datetime":"2022-09-21T09:59:08Z","lat": 52.41396,"lon": 0.18071,"alt": 15606,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -28,"sats":11,"internal_temp":32.6,"batt":0.0,"pred_lat":52.69445,"pred_lon":0.58904,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:59:16: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:59:15Z","payload_callsign": "PITS","datetime":"2022-09-21T09:59:15Z","lat": 52.41410,"lon": 0.18169,"alt": 15669,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.6,"batt":0.0,"pred_lat":52.69487,"pred_lon":0.59203,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:59:23: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:59:22Z","payload_callsign": "PITS","datetime":"2022-09-21T09:59:22Z","lat": 52.41425,"lon": 0.18301,"alt": 15737,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.6,"batt":0.0,"pred_lat":52.69511,"pred_lon":0.59389,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:59:30: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:59:29Z","payload_callsign": "PITS","datetime":"2022-09-21T09:59:29Z","lat": 52.41428,"lon": 0.18445,"alt": 15802,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.6,"batt":0.0,"pred_lat":52.69527,"pred_lon":0.59592,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:59:36: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:59:35Z","payload_callsign": "PITS","datetime":"2022-09-21T09:59:35Z","lat": 52.41428,"lon": 0.18577,"alt": 15868,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.6,"batt":0.0,"pred_lat":52.69539,"pred_lon":0.59951,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:59:43: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:59:42Z","payload_callsign": "PITS","datetime":"2022-09-21T09:59:42Z","lat": 52.41448,"lon": 0.18693,"alt": 15928,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 8,"rssi": -29,"sats":11,"internal_temp":32.6,"batt":0.0,"pred_lat":52.69537,"pred_lon":0.60156,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:59:50: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:59:49Z","payload_callsign": "PITS","datetime":"2022-09-21T09:59:49Z","lat": 52.41477,"lon": 0.18804,"alt": 15997,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.6,"batt":0.0,"pred_lat":52.69574,"pred_lon":0.60283,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +10:59:57: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T09:59:56Z","payload_callsign": "PITS","datetime":"2022-09-21T09:59:56Z","lat": 52.41515,"lon": 0.18922,"alt": 16057,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.6,"batt":0.0,"pred_lat":52.69678,"pred_lon":0.60650,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +11:00:04: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T10:00:03Z","payload_callsign": "PITS","datetime":"2022-09-21T10:00:03Z","lat": 52.41558,"lon": 0.19081,"alt": 16128,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.6,"batt":0.0,"pred_lat":52.69745,"pred_lon":0.60904,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +11:00:11: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T10:00:10Z","payload_callsign": "PITS","datetime":"2022-09-21T10:00:10Z","lat": 52.41592,"lon": 0.19215,"alt": 16190,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.6,"batt":0.0,"pred_lat":52.69777,"pred_lon":0.61115,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +11:00:18: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T10:00:17Z","payload_callsign": "PITS","datetime":"2022-09-21T10:00:17Z","lat": 52.41619,"lon": 0.19358,"alt": 16254,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 5,"rssi": -29,"sats":11,"internal_temp":32.6,"batt":0.0,"pred_lat":52.69886,"pred_lon":0.61479,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +11:00:24: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T10:00:24Z","payload_callsign": "PITS","datetime":"2022-09-21T10:00:24Z","lat": 52.41639,"lon": 0.19498,"alt": 16319,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 6,"rssi": -29,"sats":11,"internal_temp":32.6,"batt":0.0,"pred_lat":52.69916,"pred_lon":0.61717,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] +11:00:31: 200 response to: [{"software_name": "LoRa Gateway","software_version": "V1.9.2","uploader_callsign": "M0RPI/5","time_received": "2022-09-21T10:00:30Z","payload_callsign": "PITS","datetime":"2022-09-21T10:00:30Z","lat": 52.41684,"lon": 0.19604,"alt": 16387,"frequency": 434.2250,"modulation": "LoRa Mode 1","snr": 7,"rssi": -29,"sats":11,"internal_temp":32.6,"batt":0.0,"pred_lat":52.70033,"pred_lon":0.62027,"uploader_position": [ 51.950, -2.545, 145],"uploader_antenna": "Collinear"}] diff --git a/gateway.c b/gateway.c index c79dcf7..a3b44b7 100644 --- a/gateway.c +++ b/gateway.c @@ -48,7 +48,7 @@ #include "udpclient.h" #include "lifo_buffer.h" -#define VERSION "V1.9.2" +#define VERSION "V1.9.3" bool run = TRUE; // RFM98 diff --git a/global.h b/global.h index ad07e2c..52e7cca 100644 --- a/global.h +++ b/global.h @@ -25,6 +25,9 @@ struct TPayload int Altitude, PreviousAltitude; float AscentRate; unsigned long LastPositionAt; + + int PacketSNR, PacketRSSI; + double Frequency; }; struct TLoRaDevice diff --git a/sondehub.c b/sondehub.c index ab8df5a..c0d0dc9 100755 --- a/sondehub.c +++ b/sondehub.c @@ -33,14 +33,12 @@ void SetSondehubSentence(int Channel, char *tmp) &SondehubPayloads[Channel].Longitude, &SondehubPayloads[Channel].Altitude); - // LogMessage("Sondehub: %s,%d,%s,%.5lf,%.5lf,%d\n", - // SondehubPayloads[Channel].Payload, - // SondehubPayloads[Channel].Counter, - // SondehubPayloads[Channel].Time, - // SondehubPayloads[Channel].Latitude, - // SondehubPayloads[Channel].Longitude, - // SondehubPayloads[Channel].Altitude); - + SondehubPayloads[Channel].PacketSNR = Config.LoRaDevices[Channel].PacketSNR; + SondehubPayloads[Channel].PacketRSSI = Config.LoRaDevices[Channel].PacketRSSI; + SondehubPayloads[Channel].Frequency = Config.LoRaDevices[Channel].Frequency + Config.LoRaDevices[Channel].FrequencyOffset; + + strcpy(SondehubPayloads[Channel].Telemetry, tmp); + SondehubPayloads[Channel].InUse = (SondehubPayloads[Channel].Latitude != 0) && (SondehubPayloads[Channel].Longitude != 0); } @@ -102,8 +100,8 @@ int UploadJSONToServer(char *url, char *json) curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &http_resp); if (http_resp == 200) { - // LogMessage("Saved OK to sondehub\n"); // Everything performing nominally (even if we didn't successfully insert this time) + // LogError("200 response to:", json); result = true; } else if (http_resp == 400) @@ -143,10 +141,93 @@ int UploadJSONToServer(char *url, char *json) } +void ExtractFields(char *Telemetry, char *ExtractedFields) +{ + char Line[256], FieldList[32]; + char *token; + + ExtractedFields[0] = '\0'; + FieldList[0] = '\0'; + + strcpy(Line, Telemetry); + token = strtok(Line, ",*"); + while ((token != NULL) && (FieldList[0] == '\0')) + { + if (strncmp(token, "012345", 6) == 0) + { + strcpy(FieldList, token); + } + token = strtok(NULL, ",*"); + } + + if (FieldList[0]) + { + // We have a field list field, so go through that and extract each field, adding fields to the JSON for Sondehub + int i; + char Value[64]; + + strcpy(Line, Telemetry); + token = strtok(Line, ",*"); + for (i=1; FieldList[i]; i++) + { + token = strtok(NULL, ",*"); + Value[0] = '\0'; + + // LogMessage("Field %d type %c is '%s'\n", i, FieldList[i], token); + + switch (FieldList[i]) + { + case '6': + sprintf(Value, "\"sats\":%s,", token); + break; + + case '7': + sprintf(Value, "\"vel_h\":%s,", token); + break; + + case '8': + sprintf(Value, "\"heading\":%s,", token); + break; + + case '9': + sprintf(Value, "\"batt\":%s,", token); + break; + + case 'A': + sprintf(Value, "\"internal_temp\":%s,", token); + break; + + case 'B': + sprintf(Value, "\"temp\":%s,", token); + break; + + case 'C': + sprintf(Value, "\"pred_lat\":%s,", token); + break; + + case 'D': + sprintf(Value, "\"pred_lon\":%s,", token); + break; + + case 'R': + sprintf(Value, "\"pressure\":%s,", token); + break; + } + + if (*Value) + { + strcat(ExtractedFields, Value); + } + } + } + + // LogMessage("Extracted: '%s'\n", ExtractedFields); +} + int UploadSondehubPosition(int Channel) { char url[200]; - char json[1000], now[32], doc_time[32]; + char json[1000], now[32], doc_time[32], ExtractedFields[256]; time_t rawtime; struct tm *tm, *doc_tm; @@ -158,6 +239,9 @@ int UploadSondehubPosition(int Channel) // Get formatted timestamp for doc timestamp doc_tm = gmtime( &rawtime ); strftime(doc_time, sizeof( doc_time ), "%Y-%0m-%0dT%H:%M:%SZ", doc_tm); + + // Find field list and extract fields + ExtractFields(SondehubPayloads[Channel].Telemetry, ExtractedFields); // Create json as required by sondehub-amateur sprintf(json, "[{\"software_name\": \"LoRa Gateway\"," // Fixed software name @@ -168,23 +252,27 @@ int UploadSondehubPosition(int Channel) "\"datetime\":\"%s\"," // UTC from payload "\"lat\": %.5lf," // Latitude "\"lon\": %.5lf," // Longitude - "\"alt\": %d," // Altitude + "\"alt\": %d," // Altitude "\"frequency\": %.4lf," // Frequency - "\"modulation\": \"LoRa\"," // Modulation - // DoubleToString('snr', SNR, HasSNR) + - // DoubleToString('rssi', PacketRSSI, HasPacketRSSI) + - "\"uploader_position\": [" - " %.3lf," // Listener Latitude - " %.3lf," // Listener Longitude - " %.0lf" // Listener Altitude - "]," - "\"uploader_antenna\": \"%s\"" - "}]", - Config.Version, Config.Tracker, now, - SondehubPayloads[Channel].Payload, doc_time, - SondehubPayloads[Channel].Latitude, SondehubPayloads[Channel].Longitude, SondehubPayloads[Channel].Altitude, - Config.LoRaDevices[Channel].Frequency + Config.LoRaDevices[Channel].FrequencyOffset, - Config.latitude, Config.longitude, Config.altitude, Config.antenna); + "\"modulation\": \"LoRa Mode %d\"," // Modulation + "\"snr\": %d," // SNR + "\"rssi\": %d," // RSSI + "%s" + "\"uploader_position\": [" + " %.3lf," // Listener Latitude + " %.3lf," // Listener Longitude + " %.0lf" // Listener Altitude + "]," + "\"uploader_antenna\": \"%s\"" + "}]", + Config.Version, Config.Tracker, now, + SondehubPayloads[Channel].Payload, doc_time, + SondehubPayloads[Channel].Latitude, SondehubPayloads[Channel].Longitude, SondehubPayloads[Channel].Altitude, + SondehubPayloads[Channel].Frequency, + Config.LoRaDevices[Channel].SpeedMode, + SondehubPayloads[Channel].PacketSNR, SondehubPayloads[Channel].PacketRSSI, + ExtractedFields, + Config.latitude, Config.longitude, Config.altitude, Config.antenna); // Set the URL that is about to receive our PUT strcpy(url, "https://api.v2.sondehub.org/amateur/telemetry");