IoAbstraction
AnalogDeviceAbstraction.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2018 https://www.thecoderscorner.com (Dave Cherry).
3  * This product is licensed under an Apache license, see the LICENSE file in the top-level directory.
4  */
5 
6 #ifndef _ANALOG_DEVICE_ABSTRACTION_H_
7 #define _ANALOG_DEVICE_ABSTRACTION_H_
8 
9 #include "PlatformDetermination.h"
10 #include <BasicIoAbstraction.h>
11 
22 enum AnalogDirection { DIR_IN, DIR_OUT, DIR_PWM };
23 
31 class AnalogDevice {
32 public:
38  virtual int getMaximumRange(AnalogDirection direction, pinid_t pin)=0;
39 
45  virtual int getBitDepth(AnalogDirection direction, pinid_t pin) = 0;
46 
54  virtual void initPin(pinid_t pin, AnalogDirection direction) = 0;
55 
61  virtual unsigned int getCurrentValue(pinid_t pin)=0;
62 
63  /*
64  * Returns the current value on the ADC as a float between
65  * 0 and 1.
66  */
67  virtual float getCurrentFloat(pinid_t pin) = 0;
68 
74  virtual void setCurrentValue(pinid_t pin, unsigned int newValue)=0;
75 
82  virtual void setCurrentFloat(pinid_t pin, float newValue)=0;
83 
84 };
85 
86 #if defined(IOA_USE_MBED)
87 #include "mbed/MbedAnalogDevice.h"
88 #elif defined(ESP32)
89 # include "esp32/ESP32AnalogDevice.h"
90 #elif defined(IOA_USE_ARDUINO)
91 #include "arduino/ArduinoAnalogDevice.h"
92 #elif defined(BUILD_FOR_PICO_CMAKE)
93 #include "pico/picoAnalogDevice.h"
94 #endif
95 
103 
104 #define asAnalogRef(x) (&(x))
105 
106 #endif //_ANALOG_DEVICE_ABSTRACTION_H_
AnalogDevice * internalAnalogIo()
AnalogDirection
Definition: AnalogDeviceAbstraction.h:22
Provides the core IoAbstraction interface and Arduino implementation of that interface.
Definition: AnalogDeviceAbstraction.h:31
virtual void setCurrentValue(pinid_t pin, unsigned int newValue)=0
virtual int getBitDepth(AnalogDirection direction, pinid_t pin)=0
virtual void initPin(pinid_t pin, AnalogDirection direction)=0
virtual void setCurrentFloat(pinid_t pin, float newValue)=0
virtual unsigned int getCurrentValue(pinid_t pin)=0
virtual int getMaximumRange(AnalogDirection direction, pinid_t pin)=0