mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-27 06:32:19 +03:00
Делаем поиск адреса I2C более удобным
This commit is contained in:
@@ -15,16 +15,17 @@ class Lcd2004 : public IoTItem {
|
|||||||
String _id2show;
|
String _id2show;
|
||||||
String _descr;
|
String _descr;
|
||||||
int _prevStrSize;
|
int _prevStrSize;
|
||||||
|
String _addr;
|
||||||
|
|
||||||
bool _isShow = true; // экран показывает
|
bool _isShow = true; // экран показывает
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Lcd2004(String parameters) : IoTItem(parameters) {
|
Lcd2004(String parameters) : IoTItem(parameters) {
|
||||||
String addr, size, xy;
|
String size, xy;
|
||||||
_prevStrSize = 0;
|
_prevStrSize = 0;
|
||||||
|
|
||||||
jsonRead(parameters, "addr", addr);
|
jsonRead(parameters, "addr", _addr);
|
||||||
if (addr == "") {
|
if (_addr == "") {
|
||||||
scanI2C();
|
scanI2C();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -33,7 +34,7 @@ class Lcd2004 : public IoTItem {
|
|||||||
int w = selectFromMarkerToMarker(size, ",", 0).toInt(); //количество столбцов
|
int w = selectFromMarkerToMarker(size, ",", 0).toInt(); //количество столбцов
|
||||||
int h = selectFromMarkerToMarker(size, ",", 1).toInt(); //количество строк
|
int h = selectFromMarkerToMarker(size, ",", 1).toInt(); //количество строк
|
||||||
if (LCDI2C == nullptr) { //инициализации экрана еще не было
|
if (LCDI2C == nullptr) { //инициализации экрана еще не было
|
||||||
LCDI2C = new LiquidCrystal_I2C(hexStringToUint8(addr), w, h);
|
LCDI2C = new LiquidCrystal_I2C(hexStringToUint8(_addr), w, h);
|
||||||
if (LCDI2C != nullptr) {
|
if (LCDI2C != nullptr) {
|
||||||
LCDI2C->init();
|
LCDI2C->init();
|
||||||
}
|
}
|
||||||
@@ -62,6 +63,8 @@ class Lcd2004 : public IoTItem {
|
|||||||
//LCDI2C->print("Helloy,Manager 404 !");
|
//LCDI2C->print("Helloy,Manager 404 !");
|
||||||
//Serial.printf("ffff %s\n", _id2show);
|
//Serial.printf("ffff %s\n", _id2show);
|
||||||
_prevStrSize = tmpStr.length();
|
_prevStrSize = tmpStr.length();
|
||||||
|
} else {
|
||||||
|
scanI2C();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,8 +3,6 @@
|
|||||||
#include "classes/IoTGpio.h"
|
#include "classes/IoTGpio.h"
|
||||||
#include <Adafruit_MCP23X17.h>
|
#include <Adafruit_MCP23X17.h>
|
||||||
|
|
||||||
void scanI2C();
|
|
||||||
|
|
||||||
class Mcp23017Driver : public IoTGpio {
|
class Mcp23017Driver : public IoTGpio {
|
||||||
private:
|
private:
|
||||||
Adafruit_MCP23X17 _mcp;
|
Adafruit_MCP23X17 _mcp;
|
||||||
@@ -39,14 +37,14 @@ class Mcp23017Driver : public IoTGpio {
|
|||||||
class Mcp23017 : public IoTItem {
|
class Mcp23017 : public IoTItem {
|
||||||
private:
|
private:
|
||||||
Mcp23017Driver* _driver;
|
Mcp23017Driver* _driver;
|
||||||
|
String _addr;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Mcp23017(String parameters) : IoTItem(parameters) {
|
Mcp23017(String parameters) : IoTItem(parameters) {
|
||||||
_driver = nullptr;
|
_driver = nullptr;
|
||||||
|
|
||||||
String addr;
|
jsonRead(parameters, "addr", _addr);
|
||||||
jsonRead(parameters, "addr", addr);
|
if (_addr == "") {
|
||||||
if (addr == "") {
|
|
||||||
scanI2C();
|
scanI2C();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -58,10 +56,15 @@ class Mcp23017 : public IoTItem {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
_driver = new Mcp23017Driver(index, addr);
|
_driver = new Mcp23017Driver(index, _addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
void doByInterval() {}
|
void doByInterval() {
|
||||||
|
if (_addr == "") {
|
||||||
|
scanI2C();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//возвращает ссылку на экземпляр класса Mcp23017Driver
|
//возвращает ссылку на экземпляр класса Mcp23017Driver
|
||||||
IoTGpio* getGpioDriver() {
|
IoTGpio* getGpioDriver() {
|
||||||
|
|||||||
@@ -93,14 +93,14 @@ class Pcf8574Driver : public IoTGpio {
|
|||||||
class Pcf8574 : public IoTItem {
|
class Pcf8574 : public IoTItem {
|
||||||
private:
|
private:
|
||||||
Pcf8574Driver* _driver;
|
Pcf8574Driver* _driver;
|
||||||
|
String _addr;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Pcf8574(String parameters) : IoTItem(parameters) {
|
Pcf8574(String parameters) : IoTItem(parameters) {
|
||||||
_driver = nullptr;
|
_driver = nullptr;
|
||||||
|
|
||||||
String addr;
|
jsonRead(parameters, "addr", _addr);
|
||||||
jsonRead(parameters, "addr", addr);
|
if (_addr == "") {
|
||||||
if (addr == "") {
|
|
||||||
scanI2C();
|
scanI2C();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -112,10 +112,15 @@ class Pcf8574 : public IoTItem {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
_driver = new Pcf8574Driver(index, addr);
|
_driver = new Pcf8574Driver(index, _addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
void doByInterval() {}
|
void doByInterval() {
|
||||||
|
if (_addr == "") {
|
||||||
|
scanI2C();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//возвращает ссылку на экземпляр класса Pcf8574Driver
|
//возвращает ссылку на экземпляр класса Pcf8574Driver
|
||||||
IoTGpio* getGpioDriver() {
|
IoTGpio* getGpioDriver() {
|
||||||
|
|||||||
Reference in New Issue
Block a user