Arduino KVComm  master
Key-Value pair communication library for Arduino
ExtendedIOElement.hpp
Go to the documentation of this file.
1 /* ✔ */
2 
3 #pragma once
4 
6 AH_DIAGNOSTIC_WERROR() // Enable errors on warnings
7 
8 #include "ExtendedInputOutput.hpp"
11 
13 
63 class ExtendedIOElement : public DoublyLinkable<ExtendedIOElement> {
64  protected:
71  ExtendedIOElement(pin_t length);
72 
73  public:
74  virtual ~ExtendedIOElement();
75 
92  virtual void pinMode(pin_t pin, PinMode_t mode) = 0;
93 
102  virtual void digitalWrite(pin_t pin, PinStatus_t state) = 0;
103 
111  virtual int digitalRead(pin_t pin) = 0;
112 
121  virtual void analogWrite(pin_t pin, analog_t val) = 0;
122 
130  virtual analog_t analogRead(pin_t pin) = 0;
131 
135  virtual void begin() = 0;
136 
140  static void beginAll();
141 
147  virtual void update() = 0;
148 
156  pin_t pin(pin_t pin) const;
157 
166  pin_t operator[](pin_t pin) const;
167 
173  pin_t getLength() const;
174 
179  pin_t getEnd() const;
180 
185  pin_t getStart() const;
186 
190  static DoublyLinkedList<ExtendedIOElement> &getAll();
191 
192  private:
193  const pin_t length;
194  const pin_t start;
195  const pin_t end;
196  static pin_t offset;
197 
199 };
200 
202 
BEGIN_AH_NAMESPACE
#define BEGIN_AH_NAMESPACE
Definition: NamespaceSettings.hpp:9
AH::ExtIO::analogWrite
void analogWrite(pin_t pin, analog_t val)
An ExtIO version of the Arduino function.
Definition: ExtendedInputOutput.cpp:97
AH::ExtendedIOElement::end
const pin_t end
Definition: ExtendedIOElement.hpp:195
AH::ExtendedIOElement::offset
static pin_t offset
Definition: ExtendedIOElement.hpp:196
Warnings.hpp
AH::ExtIO::digitalRead
int digitalRead(pin_t pin)
An ExtIO version of the Arduino function.
Definition: ExtendedInputOutput.cpp:58
AH::pin_t
uint16_t pin_t
The type for Arduino pins (and ExtendedIOElement pins).
Definition: Hardware-Types.hpp:17
AH_DIAGNOSTIC_POP
#define AH_DIAGNOSTIC_POP()
Definition: Warnings.hpp:17
AH::ExtendedIOElement::start
const pin_t start
Definition: ExtendedIOElement.hpp:194
AH::ExtIO::digitalWrite
void digitalWrite(pin_t pin, PinStatus_t val)
An ExtIO version of the Arduino function.
Definition: ExtendedInputOutput.cpp:47
AH::ExtendedIOElement
An abstract base class for Extended Input/Output elements.
Definition: ExtendedIOElement.hpp:63
LinkedList.hpp
AH::ExtIO::analogRead
analog_t analogRead(pin_t pin)
An ExtIO version of the Arduino function.
Definition: ExtendedInputOutput.cpp:86
PinStatus_t
uint8_t PinStatus_t
Definition: ExtendedInputOutput.hpp:48
AH::ExtendedIOElement::length
const pin_t length
Definition: ExtendedIOElement.hpp:193
AH::analog_t
uint16_t analog_t
The type returned from analogRead and similar functions.
Definition: Hardware-Types.hpp:15
DoublyLinkedList
A class for doubly linked lists.
Definition: LinkedList.hpp:27
DoublyLinkable
A class that can be inherited from to allow inserting into a DoublyLinkedList.
Definition: LinkedList.hpp:302
AH::ExtIO::pinMode
void pinMode(pin_t pin, PinMode_t mode)
An ExtIO version of the Arduino function.
Definition: ExtendedInputOutput.cpp:36
AH_DIAGNOSTIC_WERROR
#define AH_DIAGNOSTIC_WERROR()
Definition: Warnings.hpp:16
END_AH_NAMESPACE
#define END_AH_NAMESPACE
Definition: NamespaceSettings.hpp:10
AH::ExtendedIOElement::elements
static DoublyLinkedList< ExtendedIOElement > elements
Definition: ExtendedIOElement.hpp:198
PinMode_t
uint8_t PinMode_t
Definition: ExtendedInputOutput.hpp:49
Hardware-Types.hpp