This PR completes the base functionality of FSController, reorganizes messaging formats and standards.
Completed:
FSController: FSController manages all interaction with the SD card. The class initializes the directory structure for formatting all data and diagnostic logging on rovers in a unique timestamped directory. All interaction with the SD card can be completed by simply calling the FSController::log() method which dispatches the message to the proper folder be it data, error messages or messages containing information about state.
IMUController: The IMUController was tooled to add signals to RTS messages indicating the at the Rover woke due to a transient event.
POSSIBLE MESSAGE ID's
RTS, // request for service
ROV: [rover ID]
MSG: [Wake type]
RES, // configuration data
MSG: [configuration data and commands]
GNSS, // data collected by the receiver
MSG: [position data]
LOG, // state data collected, error messages in the system
MSG: state or err string
PKT, // condensed data packet
MSG: all data aggregated into the packet
TODO:
migrate state to a centralized object and inject it as a dependency to all controllers
implement status(), update() and init() methods for all controllers
Note: if state is migrated to a central object, after configuring the object with config data, each controller would need to update its internal state. We cannot simply reference the global state object for operation because internal controller methods such as setting the sensitivity of the accelerometer or the timeout parameter of RHdatagram require methods of these objects to be called. Perhaps update can pull from the state object and ensure a match?
This PR completes the base functionality of FSController, reorganizes messaging formats and standards.
Completed:
POSSIBLE MESSAGE ID's RTS, // request for service
GNSS, // data collected by the receiver
TODO: