mirror of
https://github.com/meshcore-dev/MeshCore.git
synced 2026-05-14 06:05:13 +00:00
* added REQ_TYPE_GET_AVG_MIN_MAX
* TimeSeriesData * very basic SensorMesh::sendAlert()
This commit is contained in:
@@ -93,7 +93,33 @@ protected:
|
||||
void alertIfLow(Trigger& t, float value, float threshold, const char* text);
|
||||
void alertIfHigh(Trigger& t, float value, float threshold, const char* text);
|
||||
|
||||
virtual void checkForAlerts() = 0; // for app to implement
|
||||
class TimeSeriesData {
|
||||
public:
|
||||
float* data;
|
||||
int num_slots, next;
|
||||
uint32_t last_timestamp;
|
||||
uint32_t interval_secs;
|
||||
|
||||
TimeSeriesData(float* array, int num, uint32_t secs) : num_slots(num), data(array), last_timestamp(0), next(0), interval_secs(secs) {
|
||||
memset(data, 0, sizeof(float)*num);
|
||||
}
|
||||
TimeSeriesData(int num, uint32_t secs) : num_slots(num), last_timestamp(0), next(0), interval_secs(secs) {
|
||||
data = new float[num];
|
||||
memset(data, 0, sizeof(float)*num);
|
||||
}
|
||||
};
|
||||
|
||||
void recordData(TimeSeriesData& data, float value);
|
||||
|
||||
struct MinMaxAvg {
|
||||
float _min, _max, _avg;
|
||||
uint8_t _lpp_type, _channel;
|
||||
};
|
||||
|
||||
void calcDataMinMaxAvg(const TimeSeriesData& data, uint32_t start_secs_ago, uint32_t end_secs_ago, MinMaxAvg* dest, uint8_t channel, uint8_t lpp_type);
|
||||
|
||||
virtual void onSensorDataRead() = 0; // for app to implement
|
||||
virtual int querySeriesData(uint32_t start_secs_ago, uint32_t end_secs_ago, MinMaxAvg dest[], int max_num) = 0; // for app to implement
|
||||
|
||||
// Mesh overrides
|
||||
float getAirtimeBudgetFactor() const override;
|
||||
@@ -130,6 +156,6 @@ private:
|
||||
mesh::Packet* createSelfAdvert();
|
||||
ContactInfo* putContact(const mesh::Identity& id);
|
||||
|
||||
void sendAlert(const char* text) { } // TODO
|
||||
void sendAlert(const char* text);
|
||||
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user