diff --git a/include/classes/IoTGpio.h b/include/classes/IoTGpio.h index 8f3175ab..ede36c2a 100644 --- a/include/classes/IoTGpio.h +++ b/include/classes/IoTGpio.h @@ -6,12 +6,12 @@ class IoTGpio { IoTGpio(int pins); ~IoTGpio(); - virtual void pinMode(uint8_t pin, uint8_t mode); - virtual void digitalWrite(uint8_t pin, uint8_t val); - virtual int digitalRead(uint8_t pin); - virtual int analogRead(uint8_t pin); - virtual void analogWrite(uint8_t pin, int val); - virtual void digitalInvert(uint8_t pin); + virtual void pinMode(int pin, uint8_t mode); + virtual void digitalWrite(int pin, uint8_t val); + virtual int digitalRead(int pin); + virtual int analogRead(int pin); + virtual void analogWrite(int pin, int val); + virtual void digitalInvert(int pin); int index; void regDriver(IoTGpio* newDriver); diff --git a/src/classes/IoTGpio.cpp b/src/classes/IoTGpio.cpp index 71e01b49..f5bef51f 100644 --- a/src/classes/IoTGpio.cpp +++ b/src/classes/IoTGpio.cpp @@ -10,32 +10,32 @@ IoTGpio::~IoTGpio(){ } -void IoTGpio::pinMode(uint8_t pin, uint8_t mode) { +void IoTGpio::pinMode(int pin, uint8_t mode) { int pinH = pin/100; if (_drivers[pinH]) _drivers[pinH]->pinMode(pin - pinH*100, mode); else ::pinMode(pin, mode); } -void IoTGpio::digitalWrite(uint8_t pin, uint8_t val) { +void IoTGpio::digitalWrite(int pin, uint8_t val) { int pinH = pin/100; if (_drivers[pinH]) _drivers[pinH]->digitalWrite(pin - pinH*100, val); else ::digitalWrite(pin, val); } -int IoTGpio::digitalRead(uint8_t pin) { +int IoTGpio::digitalRead(int pin) { int pinH = pin/100; if (_drivers[pinH]) return _drivers[pinH]->digitalRead(pin - pinH*100); else return ::digitalRead(pin); } -int IoTGpio::analogRead(uint8_t pin) { +int IoTGpio::analogRead(int pin) { int pinH = pin/100; if (_drivers[pinH]) return _drivers[pinH]->analogRead(pin - pinH*100); else return ::analogRead(pin); } -void IoTGpio::analogWrite(uint8_t pin, int val) { +void IoTGpio::analogWrite(int pin, int val) { int pinH = pin/100; if (_drivers[pinH]) _drivers[pinH]->analogWrite(pin - pinH*100, val); else { @@ -48,7 +48,7 @@ void IoTGpio::analogWrite(uint8_t pin, int val) { } } -void IoTGpio::digitalInvert(uint8_t pin) { +void IoTGpio::digitalInvert(int pin) { int pinH = pin/100; if (_drivers[pinH]) _drivers[pinH]->digitalInvert(pin - pinH*100); else ::digitalWrite(pin, 1 - ::digitalRead(pin)); diff --git a/src/modules/exec/Mcp23008/Mcp23008.cpp b/src/modules/exec/Mcp23008/Mcp23008.cpp index fef91121..956b2d8f 100644 --- a/src/modules/exec/Mcp23008/Mcp23008.cpp +++ b/src/modules/exec/Mcp23008/Mcp23008.cpp @@ -14,19 +14,19 @@ class Mcp23008Driver : public IoTGpio { } } - void pinMode(uint8_t pin, uint8_t mode) { + void pinMode(int pin, uint8_t mode) { _mcp.pinMode(pin, mode); } - void digitalWrite(uint8_t pin, uint8_t val) { + void digitalWrite(int pin, uint8_t val) { _mcp.digitalWrite(pin, val); } - int digitalRead(uint8_t pin) { + int digitalRead(int pin) { return _mcp.digitalRead(pin); } - void digitalInvert(uint8_t pin) { + void digitalInvert(int pin) { _mcp.digitalWrite(pin, 1 - _mcp.digitalRead(pin)); } diff --git a/src/modules/exec/Mcp23017/Mcp23017.cpp b/src/modules/exec/Mcp23017/Mcp23017.cpp index b5fc7f06..b22cf151 100644 --- a/src/modules/exec/Mcp23017/Mcp23017.cpp +++ b/src/modules/exec/Mcp23017/Mcp23017.cpp @@ -14,19 +14,19 @@ class Mcp23017Driver : public IoTGpio { } } - void pinMode(uint8_t pin, uint8_t mode) { + void pinMode(int pin, uint8_t mode) { _mcp.pinMode(pin, mode); } - void digitalWrite(uint8_t pin, uint8_t val) { + void digitalWrite(int pin, uint8_t val) { _mcp.digitalWrite(pin, val); } - int digitalRead(uint8_t pin) { + int digitalRead(int pin) { return _mcp.digitalRead(pin); } - void digitalInvert(uint8_t pin) { + void digitalInvert(int pin) { _mcp.digitalWrite(pin, 1 - _mcp.digitalRead(pin)); } diff --git a/src/modules/exec/Pcf8574/Pcf8574.cpp b/src/modules/exec/Pcf8574/Pcf8574.cpp index 962feea5..f7b5454a 100644 --- a/src/modules/exec/Pcf8574/Pcf8574.cpp +++ b/src/modules/exec/Pcf8574/Pcf8574.cpp @@ -30,7 +30,7 @@ class Adafruit_PCF8574_mod { return _readbuf; } - bool digitalWrite(uint8_t pinnum, bool val) { + bool digitalWrite(int pinnum, bool val) { if (val) { _writebuf |= 1 << pinnum; } else { @@ -39,7 +39,7 @@ class Adafruit_PCF8574_mod { return i2c_dev->write(&_writebuf, 1); } - bool pinMode(uint8_t pinnum, uint8_t val) { + bool pinMode(int pinnum, uint8_t val) { if ((val == INPUT) || (val == INPUT_PULLUP)) { _writebuf |= 1 << pinnum; } else { @@ -48,7 +48,7 @@ class Adafruit_PCF8574_mod { return i2c_dev->write(&_writebuf, 1); } - bool digitalRead(uint8_t pinnum) { + bool digitalRead(int pinnum) { i2c_dev->read(&_readbuf, 1); return (_readbuf >> pinnum) & 0x1; } @@ -70,19 +70,19 @@ class Pcf8574Driver : public IoTGpio { } } - void pinMode(uint8_t pin, uint8_t mode) { + void pinMode(int pin, uint8_t mode) { _pcf.pinMode(pin, mode); } - void digitalWrite(uint8_t pin, uint8_t val) { + void digitalWrite(int pin, uint8_t val) { _pcf.digitalWrite(pin, val); } - int digitalRead(uint8_t pin) { + int digitalRead(int pin) { return _pcf.digitalRead(pin); } - void digitalInvert(uint8_t pin) { + void digitalInvert(int pin) { _pcf.digitalWrite(pin, 1 - _pcf.digitalRead(pin)); }