Standardize groundstation online/offline, testing attribute

As discovered in #482 (closed), the "online/offline" and "testing" attributes of a groundstation is implemented and encoded in multiple implementations. There should only be one truth on wether to check if a groundstation is in testing or online/offline, not multiple ways. The following double truths have been found troughout the codebase:

For "testing":

  1. gs.status == 1
  2. gs.testing == True/False

For "online/offline":

  1. gs.status (online: 2, offline: 0)
  2. gs.last_seen (online: younger than STATION_HEARTBEAT_TIME, offline: older than STATION_HEARTBEAT_TIME)

Solution proposal:

  • No changes to attributes
  • Make sure that is_online()/is_offline() is purely based upon gs.status with: offline: status=0 online: status>0
  • Make sure that gs.is_testing() is purely based upon gs.testing and NOT on status==1 anymore.
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information