mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-27 14:42:18 +03:00
Делаем поиск адреса I2C более удобным
This commit is contained in:
@@ -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() {
|
||||
|
||||
@@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user