Adafruit Library
Wippersnapper_AnalogIO.h
Go to the documentation of this file.
1 
16 #ifndef WIPPERSNAPPER_ANALOGIO_H
17 #define WIPPERSNAPPER_ANALOGIO_H
18 
19 #include "Wippersnapper.h"
20 
21 #define DEFAULT_HYSTERISIS 0.02
22 
23 
25  int pinName;
26  bool enabled;
27  wippersnapper_pin_v1_ConfigurePinRequest_AnalogReadMode
29  long period;
30  long prvPeriod;
31  float prvPinVal;
32 };
33 
34 // forward decl.
35 class Wippersnapper;
36 
37 /**************************************************************************/
42 /**************************************************************************/
44 public:
45  Wippersnapper_AnalogIO(int32_t totalAnalogInputPins, float aRef);
47 
48  void setAref(float refVoltage);
49  float getAref();
50 
51  void initAnalogInputPin(
52  int pin, float period,
53  wippersnapper_pin_v1_ConfigurePinRequest_Pull pullMode,
54  wippersnapper_pin_v1_ConfigurePinRequest_AnalogReadMode analogReadMode);
55  void
56  deinitAnalogPin(wippersnapper_pin_v1_ConfigurePinRequest_Direction direction,
57  int pin);
58  void disableAnalogInPin(int pin);
59 
60  uint16_t getPinValue(int pin);
61  float getPinValueVolts(int pin);
62 
63  void setADCResolution(int resolution);
64  int getADCresolution();
65  int getNativeResolution();
66  bool timerExpired(long currentTime, analogInputPin pin,
67  long periodOffset = 0);
68 
69  void update();
70  bool encodePinEvent(
71  uint8_t pinName,
72  wippersnapper_pin_v1_ConfigurePinRequest_AnalogReadMode readMode,
73  uint16_t pinValRaw = 0, float pinValVolts = 0.0);
74 
75 private:
76  float _aRef;
77  int _adcResolution;
78  int _nativeResolution;
79  bool scaleAnalogRead = false;
81  int32_t _totalAnalogInputPins;
82  analogInputPin *_analog_input_pins;
83 };
84 extern Wippersnapper WS;
86 #endif // WIPPERSNAPPER_DIGITALGPIO_H
Class that provides an interface for reading and controlling analog pins. Stores information about an...
Definition: Wippersnapper_AnalogIO.h:43
Class that provides storage and functions for the Adafruit IO Wippersnapper interface.
Definition: Wippersnapper.h:283
int pinName
Pin name.
Definition: Wippersnapper_AnalogIO.h:25
bool enabled
Pin is enabled for sampling.
Definition: Wippersnapper_AnalogIO.h:26
wippersnapper_pin_v1_ConfigurePinRequest_AnalogReadMode readMode
Which type of analog read to perform.
Definition: Wippersnapper_AnalogIO.h:28
Wippersnapper WS
Definition: Wippersnapper.cpp:36
Definition: Wippersnapper_AnalogIO.h:24
long period
Pin timer interval, in millis, -1 if disabled.
Definition: Wippersnapper_AnalogIO.h:29
long prvPeriod
When Pin's timer was previously serviced, in millis.
Definition: Wippersnapper_AnalogIO.h:30
float prvPinVal
Previous pin value.
Definition: Wippersnapper_AnalogIO.h:31