#include <NegatingIoAbstraction.h>
Public Member Functions | |
NegatingIoAbstraction (IoAbstractionRef toInvert) | |
void | pinDirection (pinid_t pin, uint8_t mode) override |
void | writeValue (pinid_t pin, uint8_t value) override |
uint8_t | readValue (pinid_t pin) override |
void | attachInterrupt (pinid_t pin, RawIntHandler interruptHandler, uint8_t mode) override |
bool | runLoop () override |
void | writePort (pinid_t pin, uint8_t portVal) override |
uint8_t | readPort (pinid_t pin) override |
Public Member Functions inherited from BasicIoAbstraction | |
uint8_t | digitalRead (pinid_t p) |
void | digitalWrite (pinid_t p, uint8_t v) |
uint8_t | digitalReadS (pinid_t p) |
void | digitalWriteS (pinid_t p, uint8_t v) |
void | writePortS (pinid_t p, uint8_t v) |
uint8_t | readPortS (pinid_t p) |
void | pinMode (pinid_t pin, uint8_t mode) |
bool | sync () |
This implementation of IoAbstraction negates all the pin operations on the given abstraction, both for read and write. Useful when there is a need to invert the meaning such as when dealing with both PULL UP and PULL DOWN switches at the same time on different IO devices.
|
inlineoverridevirtual |
sets the pin direction for a pin controlled by this abstraction - as per pinMode
pin | the pin to be changed |
mode | the new mode, as per pinMode (or on Mbed you can use PinMode enum values) |
Reimplemented from BasicIoAbstraction.
|
inlineoverridevirtual |
Writes a value to a pin on this abstraction, as per digitalWrite
. For serial devices, may need a sync first.
pin | the pin to be written to |
value | the new value such as HIGH / LOW |
Reimplemented from BasicIoAbstraction.
|
inlineoverridevirtual |
Reads a value from a pin for this abstraction as per digitalRead
. For serial devices may need a sync first.
pin | the pin to be read |
Reimplemented from BasicIoAbstraction.
|
inlineoverridevirtual |
Attach an interrupt to this abstraction, regardless of the device location this will perform the required tasks to register the interrupt in the requested mode. Note that not all devices can support all modes, for arduino pins all modes are supported.
pin | the pin on this device to be used |
intHandler | a void function with no parameters, used to handle interrupts. THIS IS A RAW INTERRUPT AND NOT MARSHALLED |
mode | standard Arduino interrupt modes: CHANGE, RISING, FALLING |
Reimplemented from BasicIoAbstraction.
|
inlineoverridevirtual |
This method is not needed on Arduino pins, but for most serial implementations it causes the device and abstraction to be synced. Returns true if the write call worked, normally true, false indicates error
Reimplemented from BasicIoAbstraction.
|
inlineoverridevirtual |
Writes out a whole port at once, on Arduino pins this is achieved by providing any pin within that port. On Arduino pins you should take care not to use ports that are providing core functions.
pin | the pin determines the hardware port to use. |
portVal | the 8 bit value to write to the port. Use with care. |
Reimplemented from BasicIoAbstraction.
|
inlineoverridevirtual |
Reads a whole port at once, on Arduino pins this is achieved by providing any pin within that port. On Arduino pins you should take care not to use ports that are providing core functions.
pin | the pin determines the hardware port to use. |
Reimplemented from BasicIoAbstraction.