IoAbstraction
Toggle main menu visibility
Loading...
Searching...
No Matches
src
NegatingIoAbstraction.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
#ifndef _NEGATING_IO_ABSTRACTION_
6
#define _NEGATING_IO_ABSTRACTION_
7
8
#include "
BasicIoAbstraction.h
"
9
14
20
class
NegatingIoAbstraction :
public
BasicIoAbstraction
{
21
private
:
22
IoAbstractionRef
delegate;
23
public
:
24
NegatingIoAbstraction(
IoAbstractionRef
toInvert) { delegate = toInvert; }
25
26
void
pinDirection
(pinid_t pin, uint8_t mode)
override
{
27
delegate->pinDirection(pin, mode);
28
}
29
30
void
writeValue
(pinid_t pin, uint8_t value)
override
{
31
delegate->writeValue(pin, !value);
32
}
33
34
uint8_t
readValue
(pinid_t pin)
override
{
35
return
!delegate->readValue(pin);
36
}
37
38
void
attachInterrupt
(pinid_t pin, RawIntHandler interruptHandler, uint8_t mode)
override
{
39
delegate->attachInterrupt(pin, interruptHandler, mode);
40
}
41
42
bool
runLoop
()
override
{
43
return
delegate->runLoop();
44
}
45
46
void
writePort
(pinid_t pin, uint8_t portVal)
override
{
47
delegate->writePort(pin, ~portVal);
48
}
49
50
uint8_t
readPort
(pinid_t pin)
override
{
51
return
~(delegate->readPort(pin));
52
}
53
};
54
55
#endif
// _NEGATING_IO_ABSTRACTION_
BasicIoAbstraction.h
Provides the core IoAbstraction interface and Arduino implementation of that interface.
IoAbstractionRef
BasicIoAbstraction * IoAbstractionRef
Definition
BasicIoAbstraction.h:170
BasicIoAbstraction
Definition
BasicIoAbstraction.h:38
NegatingIoAbstraction::attachInterrupt
void attachInterrupt(pinid_t pin, RawIntHandler interruptHandler, uint8_t mode) override
Definition
NegatingIoAbstraction.h:38
NegatingIoAbstraction::readValue
uint8_t readValue(pinid_t pin) override
Definition
NegatingIoAbstraction.h:34
NegatingIoAbstraction::runLoop
bool runLoop() override
Definition
NegatingIoAbstraction.h:42
NegatingIoAbstraction::pinDirection
void pinDirection(pinid_t pin, uint8_t mode) override
Definition
NegatingIoAbstraction.h:26
NegatingIoAbstraction::writeValue
void writeValue(pinid_t pin, uint8_t value) override
Definition
NegatingIoAbstraction.h:30
NegatingIoAbstraction::readPort
uint8_t readPort(pinid_t pin) override
Definition
NegatingIoAbstraction.h:50
NegatingIoAbstraction::writePort
void writePort(pinid_t pin, uint8_t portVal) override
Definition
NegatingIoAbstraction.h:46