Avionics
Core avionics package for CURE flight computers
Loading...
Searching...
No Matches
SensorDataHandler.cpp
Go to the documentation of this file.
1// Originally written by Ethan Anderson -- 2/17/2024
2
4#include "ArduinoHAL.h"
5
7 : name(name),
9 saveInterval_ms(0),
10 lastSaveTime_ms(0),
11 lastDataPointSaved({0, 0})
12{}
13
14void SensorDataHandler::restrictSaveSpeed(uint16_t interval_ms){
15 this->saveInterval_ms = interval_ms;
16}
17
18
20 // Check if the data is old enough to be saved based on the interval
21 if (data.timestamp_ms - lastSaveTime_ms > saveInterval_ms) {
22 dataSaver->saveDataPoint(data, name);
23 lastSaveTime_ms = data.timestamp_ms;
24 lastDataPointSaved = data;
25 }
26
27 return 0;
28}
Timestamped float measurement container.
Definition DataPoint.h:11
uint32_t timestamp_ms
Definition DataPoint.h:13
Abstract interface for persisting timestamped data points.
Definition DataSaver.h:13
SensorDataHandler(uint8_t name, IDataSaver *dataSaver)
Construct a handler for a specific sensor.
void restrictSaveSpeed(uint16_t interval_ms)
Set the minimum gap between persisted samples.
int addData(DataPoint data)
Ingest a data point and persist it if the save interval elapsed.