Open PatrickKa opened 11 months ago
Blocked by #185 and #192
The EDU program status history is also a ring buffer stored on the FRAM, so I guess it makes sense to implement a general ring buffer abstraction for the FRAM (see #204).
Edit: Implementing a general FRAM ring array is now tracked separatly in #323.
I think it would be good if we employed some form of error detection and correction (EDAC) for the telemetry memory. Hamming or Reed–Solomon codes are the first that come to mind, but there are many more options to choose from.
Also blocked by #207 because we need tests.
Blocked by #239 We will not implement #239 now due to a lack of resources. Maybe we'll come back to it later.
As explained in #294, we need a fallback mechanism in case the FRAM does not work. This means that the Telemetry Memory needs to be cached in RAM (with a smaller size, though). If the FRAM works, records are read from and written to it. Records are also always written to the cache, but only when the FRAM doesn't work are they also read from the cache.
Blocked by #323
Description
The telemetry memory is a ring buffer on the FRAM that stores the telemetry data of the last few weeks. I am not sure about the exact amount of time, but basically we use as much of the FRAM as possible.
The telemetry memory needs to support the following operations:
Store(TelemetryRecord const & telemetryRecord) -> Result<void>
)LoadTelemetryRecord(int index ) -> Result<TelemetryRecord>
)