Go to file
bert hubert f3653f178e readme, library thing for libh2o 2019-08-06 19:13:25 +02:00
ext yolo 2019-07-31 22:32:39 +02:00
html more bits 2019-08-06 12:57:06 +02:00
.gitignore Initial commit 2019-07-21 16:09:11 +02:00
.gitmodules yolo 2019-07-31 22:32:39 +02:00
LICENSE Initial commit 2019-07-21 16:09:11 +02:00
Makefile readme, library thing for libh2o 2019-08-06 19:13:25 +02:00
README.md readme, library thing for libh2o 2019-08-06 19:13:25 +02:00
bits.cc more bits 2019-08-06 12:57:06 +02:00
bits.hh more bits 2019-08-06 12:57:06 +02:00
minicurl.cc more bits 2019-08-06 12:57:06 +02:00
minicurl.hh more bits 2019-08-06 12:57:06 +02:00
minread.cc yolo 2019-07-24 13:24:48 +02:00
ubx.cc more bits 2019-08-06 12:57:06 +02:00
ubx.hh more bits 2019-08-06 12:57:06 +02:00
ubxdisplay.cc more file 2019-07-31 22:33:04 +02:00
ubxparse.cc store some more values 2019-08-06 19:13:15 +02:00
ubxtool.cc more bits 2019-08-06 12:57:06 +02:00

README.md

galmon

galileo open source monitoring

Tooling:

  • ubxtool: can configure a u-blox 8 chipset, parses its output & will convert it into a protbuf stream of GNSS NAV frames + metadata Adds 64-bit timestamps plus origin information to each message
  • xtool: if you have another chipset, build something that extracts NAV frames & metadata
  • navtrans: transmits GNSS NAV frames emitted by ubxtool to a collector. Performs some best effort buffering & will reconnect if needed.
  • navrecv: receives GNSS NAV frames and stores them on disk, split out per sender
  • navstore: tails the file stored by navrecv, puts them in LMDB
  • navstream: produces a stream of NAV updates from all sources, with a few seconds delay so all data is in. Does this with queries to LMDB
  • navweb: consumes these ordered nav updates for a nice website
  • navinflux: puts "ready to graph" data in influxdb - this is the first step that breaks "store everything in native format". Also does computations on ephemerides.
  • grafana dashboard: makes pretty graphs

The transport format consists of repeats of:

  1. Four byte magic value
  2. Two-byte frame length
  3. A protobuf frame

The magic value is there to help us resync from partially written data.

The whole goal is that we can continue to rebuild the database by rerunning 'navstore' and 'navinflux'.