IoAbstraction
Toggle main menu visibility
Loading...
Searching...
No Matches
src
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
17
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
102
AnalogDevice
*
internalAnalogIo
();
103
104
#define asAnalogRef(x) (&(x))
105
106
#endif
//_ANALOG_DEVICE_ABSTRACTION_H_
AnalogDirection
AnalogDirection
Definition
AnalogDeviceAbstraction.h:22
internalAnalogIo
AnalogDevice * internalAnalogIo()
BasicIoAbstraction.h
Provides the core IoAbstraction interface and Arduino implementation of that interface.
AnalogDevice
Definition
AnalogDeviceAbstraction.h:31
AnalogDevice::setCurrentValue
virtual void setCurrentValue(pinid_t pin, unsigned int newValue)=0
AnalogDevice::getBitDepth
virtual int getBitDepth(AnalogDirection direction, pinid_t pin)=0
AnalogDevice::initPin
virtual void initPin(pinid_t pin, AnalogDirection direction)=0
AnalogDevice::setCurrentFloat
virtual void setCurrentFloat(pinid_t pin, float newValue)=0
AnalogDevice::getCurrentValue
virtual unsigned int getCurrentValue(pinid_t pin)=0
AnalogDevice::getMaximumRange
virtual int getMaximumRange(AnalogDirection direction, pinid_t pin)=0