IoAbstraction
Public Member Functions | List of all members
ShiftRegisterIoAbstraction165In Class Reference
Inheritance diagram for ShiftRegisterIoAbstraction165In:
BasicIoAbstraction

Public Member Functions

 ShiftRegisterIoAbstraction165In (pinid_t readClockPin, pinid_t readDataPin, pinid_t readLatchPin, pinid_t numRead)
 
 ShiftRegisterIoAbstraction165In (ShiftRegConfig config)
 
void initDevice ()
 
void pinDirection (pinid_t pin, uint8_t mode) override
 
uint8_t readValue (pinid_t pin) override
 
bool runLoop () override
 
uint8_t readPort (pinid_t port) override
 
void writePort (pinid_t port, uint8_t portVal) override
 
void writeValue (pinid_t pin, uint8_t value) override
 
void attachInterrupt (pinid_t, RawIntHandler, uint8_t) override
 
uint8_t shiftInFor165 () const
 
- 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 ()
 

Constructor & Destructor Documentation

◆ ShiftRegisterIoAbstraction165In()

ShiftRegisterIoAbstraction165In::ShiftRegisterIoAbstraction165In ( pinid_t  readClockPin,
pinid_t  readDataPin,
pinid_t  readLatchPin,
pinid_t  numRead 
)

Normally use the shift register helper functions to create an instance.

See also
inputOutputFromShiftRegister
inputOnlyFromShiftRegister
outputOnlyFromShiftRegister

Member Function Documentation

◆ pinDirection()

void ShiftRegisterIoAbstraction165In::pinDirection ( pinid_t  pin,
uint8_t  mode 
)
inlineoverridevirtual

Input only abstraction, does nothing because only input is supported

Reimplemented from BasicIoAbstraction.

◆ readValue()

uint8_t ShiftRegisterIoAbstraction165In::readValue ( pinid_t  pin)
overridevirtual

Reads a value from a pin for this abstraction as per digitalRead. For serial devices may need a sync first.

Parameters
pinthe pin to be read

Reimplemented from BasicIoAbstraction.

◆ runLoop()

bool ShiftRegisterIoAbstraction165In::runLoop ( )
overridevirtual

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.

◆ readPort()

uint8_t ShiftRegisterIoAbstraction165In::readPort ( pinid_t  pin)
overridevirtual

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.

Parameters
pinthe pin determines the hardware port to use.
Returns
the 8 bit value read from the port.

Reimplemented from BasicIoAbstraction.

◆ writePort()

void ShiftRegisterIoAbstraction165In::writePort ( pinid_t  pin,
uint8_t  portVal 
)
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.

Parameters
pinthe pin determines the hardware port to use.
portValthe 8 bit value to write to the port. Use with care.

Reimplemented from BasicIoAbstraction.

◆ writeValue()

void ShiftRegisterIoAbstraction165In::writeValue ( pinid_t  pin,
uint8_t  value 
)
inlineoverridevirtual

Writes a value to a pin on this abstraction, as per digitalWrite. For serial devices, may need a sync first.

Parameters
pinthe pin to be written to
valuethe new value such as HIGH / LOW

Reimplemented from BasicIoAbstraction.

◆ attachInterrupt()

void ShiftRegisterIoAbstraction165In::attachInterrupt ( pinid_t  pin,
RawIntHandler  interruptHandler,
uint8_t  mode 
)
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.

Parameters
pinthe pin on this device to be used
intHandlera void function with no parameters, used to handle interrupts. THIS IS A RAW INTERRUPT AND NOT MARSHALLED
modestandard Arduino interrupt modes: CHANGE, RISING, FALLING

Reimplemented from BasicIoAbstraction.


The documentation for this class was generated from the following files: