supla-device
Loading...
Searching...
No Matches
Supla::Io::MCP23017 Class Reference
Inheritance diagram for Supla::Io::MCP23017:
Collaboration diagram for Supla::Io::MCP23017:

Public Member Functions

 MCP23017 (uint8_t address=0x20, Supla::Mutex *mutex=nullptr, TwoWire *wire=&Wire, bool pullUp=false)
 
void onInit ()
 Third method called on element in SuplaDevice.begin()
 
void customPinMode (int channelNumber, uint8_t pin, uint8_t mode) override
 
void customDigitalWrite (int channelNumber, uint8_t pin, uint8_t val) override
 
int customDigitalRead (int channelNumber, uint8_t pin) override
 
unsigned int customPulseIn (int channelNumber, uint8_t pin, uint8_t value, uint64_t timeoutMicro) override
 
void customAnalogWrite (int channelNumber, uint8_t pin, int val) override
 
int customAnalogRead (int channelNumber, uint8_t pin) override
 
void onTimer () override
 Method called on timer interupt.
 
void read16FromMCP ()
 
void write16ToMCP ()
 
- Public Member Functions inherited from Supla::Io::Base
virtual bool isReady () const
 
virtual void customSetPwmResolutionBits (uint8_t pin, uint8_t resolutionBits)
 
virtual void customConfigureAnalogOutput (int channelNumber, uint8_t pin, bool outputInvert=false)
 
virtual void customSetPwmFrequency (uint16_t pwmFrequency)
 
virtual uint8_t customDefaultPwmResolutionBits (uint8_t pin) const
 
virtual bool customCanSetPwmResolutionBits (uint8_t pin) const
 
virtual uint8_t customPwmResolutionBits (uint8_t pin) const
 
virtual uint32_t customPwmMaxValue (uint8_t pin) const
 
virtual uint16_t customPwmFrequency () const
 
virtual void customAttachInterrupt (uint8_t pin, void(*func)(void), int mode)
 
virtual void customDetachInterrupt (uint8_t pin)
 
virtual uint8_t customPinToInterrupt (uint8_t pin)
 

Protected Attributes

::MCP23017 mcp_
 
uint16_t outState_ = 0
 
uint16_t inState_ = 0
 
uint16_t lastOutState_ = 0
 
Supla::Mutexmutex_ = nullptr
 

Member Function Documentation

◆ customAnalogRead()

int Supla::Io::MCP23017::customAnalogRead ( int channelNumber,
uint8_t pin )
inlineoverridevirtual

Reimplemented from Supla::Io::Base.

◆ customAnalogWrite()

void Supla::Io::MCP23017::customAnalogWrite ( int channelNumber,
uint8_t pin,
int val )
inlineoverridevirtual

Reimplemented from Supla::Io::Base.

◆ customDigitalRead()

int Supla::Io::MCP23017::customDigitalRead ( int channelNumber,
uint8_t pin )
inlineoverridevirtual

Reimplemented from Supla::Io::Base.

◆ customDigitalWrite()

void Supla::Io::MCP23017::customDigitalWrite ( int channelNumber,
uint8_t pin,
uint8_t val )
inlineoverridevirtual

Reimplemented from Supla::Io::Base.

◆ customPinMode()

void Supla::Io::MCP23017::customPinMode ( int channelNumber,
uint8_t pin,
uint8_t mode )
inlineoverridevirtual

Reimplemented from Supla::Io::Base.

◆ customPulseIn()

unsigned int Supla::Io::MCP23017::customPulseIn ( int channelNumber,
uint8_t pin,
uint8_t value,
uint64_t timeoutMicro )
inlineoverridevirtual

Reimplemented from Supla::Io::Base.

◆ onInit()

void Supla::Io::MCP23017::onInit ( )
inlinevirtual

Third method called on element in SuplaDevice.begin()

Method called during SuplaDevice initialization. I.e. load initial state, initialize pins etc.

Reimplemented from Supla::Element.

◆ onTimer()

void Supla::Io::MCP23017::onTimer ( )
inlineoverridevirtual

Method called on timer interupt.

It should provide all actions that have to be executed periodically regardless of other SuplaDevice activities. It is usually called every 10 ms.

Reimplemented from Supla::Element.


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