Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Rewrite in Golang

    • Well-suited for networked and concurrent applications

    • Less likely to f*ck up memory (garbage collection)

    • Good tooling

    • Can work on almost any platform (can depend on our design though)

  • Prototype already in the works with a telemetry configuration manager and some semblance of communication between threads (not processes) using channels

  • Come up with how new GSW should operate. Ideally, in an extremely user friendly way that simplifies starting up the system, so anyone can do it

  • Idea: Write backend service(s) and have users run applications that take advantage of service(s). Most likely SOA though, so a single service. Might be simpler too and keep things standardized over microservices.

  • Service(s) should handle

    • Setting up a telemetry configuration on startup

    • Arbitrating between other specified nodes in a network to distribute compute. This can be somewhat complex, so we should start with just supporting a single machine, but make it extensible for this feature. Still looking into what our future ground station hardware will look like since we want to move away from LattePandas

    • Running other necessary services (i.e InfluxDB and Grafana)

    • Receiving all telemetry over UDP and processing it before serving it to application code (most likely going to be a broker architecture pattern)

    • Logging received telemetry over InfluxDB and csv

    • Logging internal messages (for debugging)

  • Applications

    • log_view - View logs. If we operate as a service, it would be ideal to have the logging service log to journalctl, but users may not be tech-pilled enough to do this, so read from that.

    • telem_view - Telemetry viewer. Can toggle viewing memory in base-2, 10 and 16.

...