Sensor Communication Library  0.4.0
SensorCommunicationLib.cpp
Go to the documentation of this file.
1 
12 /*
13  Copyright 2019, Toni Cafiero, IoThingsWare
14  MIT License terms detailed in LICENSE.txt
15 */
16 #include <Arduino.h>
17 #include <SensorCommunicationLib.h>
18 
19 
20 //Serial data variables
21 const char kDelimiter = ',';
22 unsigned long serialPreviousTime;
23 Smoothed <float> avgSensors[MAXNUMOFSENSORS];
24 
25 
26 
35 SensorCommunicationLib::SensorCommunicationLib(int NumberOfSensors, int param_ms, int param_samples)
36 {
37  kNumberOfSensors=NumberOfSensors;
38  kSerialInterval = param_ms;
39  for(int i=0; i < NumberOfSensors; i++) {
40  avgSensors[i].begin(SMOOTHED_AVERAGE, param_samples);
41  avgSensors[i].clear();
42  }
43 }
44 
45 void SensorCommunicationLib::Send()
46 {
47  int i;
48  for(i = 0; i < kNumberOfSensors-1; i++){
49  Serial.printf("%.2f", avgSensors[i].get());
50  Serial.print(kDelimiter);
51  }
52  Serial.printf("%.2f", avgSensors[i].get());
53  Serial.println();
54 }
55 
56 void SensorCommunicationLib::Tentative()
57 {
58  if((millis() - serialPreviousTime) > kSerialInterval)
59  {
60  serialPreviousTime = millis();
61  Send();
62  }
63 }
64 
71 void SensorCommunicationLib::processSensors(void (*getSensorData)()) //call in loop()
72 {
73  (*getSensorData)();
74  for(int i = 0; i < kNumberOfSensors; i++){
75  avgSensors[i].add(Sensors[i]);
76  }
77  delay(10);
78  Tentative();
79 }
SensorCommunicationLib(int NumberOfSensors=10, int param_ms=2000, int param_samples=100)
void processSensors(void(*getSensorData)())
contains the SensorCommunicationLib class definition and the include file that the class implementati...