Делаем поиск адреса I2C более удобным

This commit is contained in:
2022-10-10 22:54:44 +03:00
parent 0553503e1c
commit cc28b45851
3 changed files with 27 additions and 16 deletions

View File

@@ -3,8 +3,6 @@
#include "classes/IoTGpio.h"
#include <Adafruit_MCP23X17.h>
void scanI2C();
class Mcp23017Driver : public IoTGpio {
private:
Adafruit_MCP23X17 _mcp;
@@ -39,14 +37,14 @@ class Mcp23017Driver : public IoTGpio {
class Mcp23017 : public IoTItem {
private:
Mcp23017Driver* _driver;
String _addr;
public:
Mcp23017(String parameters) : IoTItem(parameters) {
_driver = nullptr;
String addr;
jsonRead(parameters, "addr", addr);
if (addr == "") {
jsonRead(parameters, "addr", _addr);
if (_addr == "") {
scanI2C();
return;
}
@@ -58,10 +56,15 @@ class Mcp23017 : public IoTItem {
return;
}
_driver = new Mcp23017Driver(index, addr);
_driver = new Mcp23017Driver(index, _addr);
}
void doByInterval() {}
void doByInterval() {
if (_addr == "") {
scanI2C();
return;
}
}
//возвращает ссылку на экземпляр класса Mcp23017Driver
IoTGpio* getGpioDriver() {

View File

@@ -93,14 +93,14 @@ class Pcf8574Driver : public IoTGpio {
class Pcf8574 : public IoTItem {
private:
Pcf8574Driver* _driver;
String _addr;
public:
Pcf8574(String parameters) : IoTItem(parameters) {
_driver = nullptr;
String addr;
jsonRead(parameters, "addr", addr);
if (addr == "") {
jsonRead(parameters, "addr", _addr);
if (_addr == "") {
scanI2C();
return;
}
@@ -112,10 +112,15 @@ class Pcf8574 : public IoTItem {
return;
}
_driver = new Pcf8574Driver(index, addr);
_driver = new Pcf8574Driver(index, _addr);
}
void doByInterval() {}
void doByInterval() {
if (_addr == "") {
scanI2C();
return;
}
}
//возвращает ссылку на экземпляр класса Pcf8574Driver
IoTGpio* getGpioDriver() {