intermediate: concentrate sensor cfg into sensro configs
This commit is contained in:
parent
e449b7836d
commit
41b9f1e675
|
@ -159,16 +159,11 @@ class SensorBase{
|
|||
#define GWIIC_SCL2 -1
|
||||
#endif
|
||||
|
||||
#define CFG_GET(cfg,name,prefix) \
|
||||
#define CFG_GET(name,prefix) \
|
||||
cfg->getValue(name, GwConfigDefinitions::prefix ## name)
|
||||
|
||||
#define CFG_SET(target,cfg,name,prefix) \
|
||||
cfg->getValue(target->name,GwConfigDefinitions::prefix ## name)
|
||||
|
||||
#define CQMP6988(name) \
|
||||
CFG_GET(config,name,QMP69881)
|
||||
#define CBME280(name) \
|
||||
CFG_GET(config,name,BME2801)
|
||||
CFG_GET(name,BME2801)
|
||||
|
||||
#ifdef _GWSHT3X
|
||||
class SHT3XConfig : public SensorBase{
|
||||
|
@ -180,11 +175,8 @@ class SHT3XConfig : public SensorBase{
|
|||
tN2kHumiditySource huSrc;
|
||||
tN2kTempSource tmSrc;
|
||||
SHT3X *device=nullptr;
|
||||
SHT3XConfig(GwApi *api,const String &prefix, int bus, int addr):
|
||||
SensorBase(api,prefix){
|
||||
busId=bus;
|
||||
this->addr=addr;
|
||||
}
|
||||
SHT3XConfig(GwApi *api,const String &prefix):
|
||||
SensorBase(api,prefix){}
|
||||
virtual bool isActive(){
|
||||
return tmAct || huAct;
|
||||
}
|
||||
|
@ -230,6 +222,65 @@ class SHT3XConfig : public SensorBase{
|
|||
LOG_DEBUG(GwLog::DEBUG, "unable to query SHT3X: %d", rt);
|
||||
}
|
||||
}
|
||||
virtual void readConfig(GwConfigHandler *cfg){
|
||||
if (prefix == "SHT3X1"){
|
||||
busId=1;
|
||||
addr=0x44;
|
||||
#undef CG
|
||||
#define CG(name) CFG_GET(name,SHT3X1)
|
||||
CG(tmNam);
|
||||
CG(huNam);
|
||||
CG(iid);
|
||||
CG(tmAct);
|
||||
CG(huAct);
|
||||
CG(intv);
|
||||
CG(huSrc);
|
||||
CG(tmSrc);
|
||||
}
|
||||
if (prefix == "SHT3X2"){
|
||||
busId=1;
|
||||
addr=0x45;
|
||||
#undef CG
|
||||
#define CG(name) CFG_GET(name,SHT3X2)
|
||||
CG(tmNam);
|
||||
CG(huNam);
|
||||
CG(iid);
|
||||
CG(tmAct);
|
||||
CG(huAct);
|
||||
CG(intv);
|
||||
CG(huSrc);
|
||||
CG(tmSrc);
|
||||
}
|
||||
if (prefix == "SHT3X3"){
|
||||
busId=2;
|
||||
addr=0x44;
|
||||
#undef CG
|
||||
#define CG(name) CFG_GET(name,SHT3X3)
|
||||
CG(tmNam);
|
||||
CG(huNam);
|
||||
CG(iid);
|
||||
CG(tmAct);
|
||||
CG(huAct);
|
||||
CG(intv);
|
||||
CG(huSrc);
|
||||
CG(tmSrc);
|
||||
}
|
||||
if (prefix == "SHT3X4"){
|
||||
busId=2;
|
||||
addr=0x45;
|
||||
#undef CG
|
||||
#define CG(name) CFG_GET(name,SHT3X4)
|
||||
CG(tmNam);
|
||||
CG(huNam);
|
||||
CG(iid);
|
||||
CG(tmAct);
|
||||
CG(huAct);
|
||||
CG(intv);
|
||||
CG(huSrc);
|
||||
CG(tmSrc);
|
||||
}
|
||||
intv*=1000;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
@ -243,10 +294,7 @@ class QMP6988Config : public SensorBase{
|
|||
tN2kPressureSource prSrc=tN2kPressureSource::N2kps_Atmospheric;
|
||||
float prOff=0;
|
||||
QMP6988 *device=nullptr;
|
||||
QMP6988Config(GwApi* api,const String &prefix,int bus, int addr):SensorBase(api,prefix){
|
||||
busId=bus;
|
||||
this->addr=addr;
|
||||
}
|
||||
QMP6988Config(GwApi* api,const String &prefix):SensorBase(api,prefix){}
|
||||
virtual bool isActive(){return prAct;};
|
||||
virtual bool initDevice(GwApi *api,TwoWire *wire){
|
||||
if (!isActive()) return false;
|
||||
|
@ -274,7 +322,55 @@ class QMP6988Config : public SensorBase{
|
|||
float computed=pressure+prOff;
|
||||
LOG_DEBUG(GwLog::DEBUG,"%s measure %2.0fPa, computed %2.0fPa",prefix.c_str(), pressure,computed);
|
||||
sendN2kPressure(api,*this,computed,counterId);
|
||||
};
|
||||
}
|
||||
virtual void readConfig(GwConfigHandler *cfg){
|
||||
if (prefix == "QMP69881"){
|
||||
busId=1;
|
||||
addr=86;
|
||||
#undef CG
|
||||
#define CG(name) CFG_GET(name,QMP69881)
|
||||
CG(prNam);
|
||||
CG(iid);
|
||||
CG(prAct);
|
||||
CG(intv);
|
||||
CG(prOff);
|
||||
}
|
||||
if (prefix == "QMP69882"){
|
||||
busId=1;
|
||||
addr=112;
|
||||
#undef CG
|
||||
#define CG(name) CFG_GET(name,QMP69882)
|
||||
CG(prNam);
|
||||
CG(iid);
|
||||
CG(prAct);
|
||||
CG(intv);
|
||||
CG(prOff);
|
||||
}
|
||||
if (prefix == "QMP69883"){
|
||||
busId=2;
|
||||
addr=86;
|
||||
#undef CG
|
||||
#define CG(name) CFG_GET(name,QMP69883)
|
||||
CG(prNam);
|
||||
CG(iid);
|
||||
CG(prAct);
|
||||
CG(intv);
|
||||
CG(prOff);
|
||||
}
|
||||
if (prefix == "QMP69884"){
|
||||
busId=2;
|
||||
addr=112;
|
||||
#undef CG
|
||||
#define CG(name) CFG_GET(name,QMP69884)
|
||||
CG(prNam);
|
||||
CG(iid);
|
||||
CG(prAct);
|
||||
CG(intv);
|
||||
CG(prOff);
|
||||
}
|
||||
intv*=1000;
|
||||
|
||||
}
|
||||
};
|
||||
#endif
|
||||
|
||||
|
@ -294,7 +390,7 @@ class BME280Config{
|
|||
String prNam="Pressure";
|
||||
float tmOff=0;
|
||||
float prOff=0;
|
||||
BME280Config(GwConfigHandler *config){
|
||||
BME280Config(GwConfigHandler *cfg){
|
||||
CBME280(prAct);
|
||||
CBME280(tmAct);
|
||||
CBME280(huAct);
|
||||
|
@ -326,141 +422,57 @@ void initIicTask(GwApi *api){
|
|||
GwConfigHandler *config=api->getConfig();
|
||||
#if defined(GWSHT3X) || defined (GWSHT3X1)
|
||||
{
|
||||
SHT3XConfig *scfg=new SHT3XConfig(api,"SHT3X1",1,0x44);
|
||||
SHT3XConfig *scfg=new SHT3XConfig(api,"SHT3X1");
|
||||
LOG_DEBUG(GwLog::LOG,"%s configured",scfg->prefix.c_str());
|
||||
#undef _SET
|
||||
#define _SET(name) \
|
||||
CFG_SET(scfg,config,name,SHT3X1)
|
||||
_SET(tmNam);
|
||||
_SET(huNam);
|
||||
_SET(iid);
|
||||
_SET(tmAct);
|
||||
_SET(huAct);
|
||||
_SET(intv);
|
||||
scfg->intv*=1000;
|
||||
_SET(huSrc);
|
||||
_SET(tmSrc);
|
||||
sensors.push_back(scfg);
|
||||
}
|
||||
#endif
|
||||
#if defined(GWSHT3X2)
|
||||
{
|
||||
SHT3XConfig *scfg=new SHT3XConfig(api,"SHT3X2",1,0x45);
|
||||
SHT3XConfig *scfg=new SHT3XConfig(api,"SHT3X2");
|
||||
LOG_DEBUG(GwLog::LOG,"%s configured",scfg->prefix.c_str());
|
||||
#undef _SET
|
||||
#define _SET(name) \
|
||||
CFG_SET(scfg,config,name,SHT3X2)
|
||||
_SET(tmNam);
|
||||
_SET(huNam);
|
||||
_SET(iid);
|
||||
_SET(tmAct);
|
||||
_SET(huAct);
|
||||
_SET(intv);
|
||||
scfg->intv*=1000;
|
||||
_SET(huSrc);
|
||||
_SET(tmSrc);
|
||||
sensors.push_back(scfg);
|
||||
}
|
||||
#endif
|
||||
#if defined(GWSHT3X3)
|
||||
{
|
||||
SHT3XConfig *scfg=new SHT3XConfig(api,"SHT3X3",2,0x44);
|
||||
SHT3XConfig *scfg=new SHT3XConfig(api,"SHT3X3");
|
||||
LOG_DEBUG(GwLog::LOG,"%s configured",scfg->prefix.c_str());
|
||||
#undef _SET
|
||||
#define _SET(name) \
|
||||
CFG_SET(scfg,config,name,SHT3X3)
|
||||
_SET(tmNam);
|
||||
_SET(huNam);
|
||||
_SET(iid);
|
||||
_SET(tmAct);
|
||||
_SET(huAct);
|
||||
_SET(intv);
|
||||
scfg->intv*=1000;
|
||||
_SET(huSrc);
|
||||
_SET(tmSrc);
|
||||
sensors.push_back(scfg);
|
||||
}
|
||||
#endif
|
||||
#if defined(GWSHT3X4)
|
||||
{
|
||||
SHT3XConfig *scfg=new SHT3XConfig(api,"SHT3X4",2,0x45);
|
||||
SHT3XConfig *scfg=new SHT3XConfig(api,"SHT3X4");
|
||||
LOG_DEBUG(GwLog::LOG,"%s configured",scfg->prefix.c_str());
|
||||
#undef _SET
|
||||
#define _SET(name) \
|
||||
CFG_SET(scfg,config,name,SHT3X4)
|
||||
_SET(tmNam);
|
||||
_SET(huNam);
|
||||
_SET(iid);
|
||||
_SET(tmAct);
|
||||
_SET(huAct);
|
||||
_SET(intv);
|
||||
scfg->intv*=1000;
|
||||
_SET(huSrc);
|
||||
_SET(tmSrc);
|
||||
sensors.push_back(scfg);
|
||||
}
|
||||
#endif
|
||||
#if defined(GWQMP6988) || defined(GWQMP69881)
|
||||
{
|
||||
QMP6988Config *scfg=new QMP6988Config(api,"QMP69881",1,86);
|
||||
QMP6988Config *scfg=new QMP6988Config(api,"QMP69881");
|
||||
LOG_DEBUG(GwLog::LOG,"%s configured",scfg->prefix.c_str());
|
||||
#undef _SET
|
||||
#define _SET(name) \
|
||||
CFG_SET(scfg,config,name,QMP69881)
|
||||
_SET(prNam);
|
||||
_SET(iid);
|
||||
_SET(prAct);
|
||||
_SET(intv);
|
||||
scfg->intv*=1000;
|
||||
_SET(prOff);
|
||||
sensors.push_back(scfg);
|
||||
}
|
||||
#endif
|
||||
#if defined(GWQMP69882)
|
||||
{
|
||||
QMP6988Config *scfg=new QMP6988Config(api,"QMP69882",1,112);
|
||||
QMP6988Config *scfg=new QMP6988Config(api,"QMP69882");
|
||||
LOG_DEBUG(GwLog::LOG,"%s configured",scfg->prefix.c_str());
|
||||
#undef _SET
|
||||
#define _SET(name) \
|
||||
CFG_SET(scfg,config,name,QMP69882)
|
||||
_SET(prNam);
|
||||
_SET(iid);
|
||||
_SET(prAct);
|
||||
_SET(intv);
|
||||
scfg->intv*=1000;
|
||||
_SET(prOff);
|
||||
sensors.push_back(scfg);
|
||||
}
|
||||
#endif
|
||||
#if defined(GWQMP69883)
|
||||
{
|
||||
QMP6988Config *scfg=new QMP6988Config(api,"QMP69883",2,86);
|
||||
QMP6988Config *scfg=new QMP6988Config(api,"QMP69883");
|
||||
LOG_DEBUG(GwLog::LOG,"%s configured",scfg->prefix.c_str());
|
||||
#undef _SET
|
||||
#define _SET(name) \
|
||||
CFG_SET(scfg,config,name,QMP69883)
|
||||
_SET(prNam);
|
||||
_SET(iid);
|
||||
_SET(prAct);
|
||||
_SET(intv);
|
||||
scfg->intv*=1000;
|
||||
_SET(prOff);
|
||||
sensors.push_back(scfg);
|
||||
}
|
||||
#endif
|
||||
#if defined(GWQMP69884)
|
||||
{
|
||||
QMP6988Config *scfg=new QMP6988Config(api,"QMP69884",2,112);
|
||||
QMP6988Config *scfg=new QMP6988Config(api,"QMP69884");
|
||||
LOG_DEBUG(GwLog::LOG,"%s configured",scfg->prefix.c_str());
|
||||
#undef _SET
|
||||
#define _SET(name) \
|
||||
CFG_SET(scfg,config,name,QMP69884)
|
||||
_SET(prNam);
|
||||
_SET(iid);
|
||||
_SET(prAct);
|
||||
_SET(intv);
|
||||
scfg->intv*=1000;
|
||||
_SET(prOff);
|
||||
sensors.push_back(scfg);
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -17,8 +17,14 @@
|
|||
"b": "2",
|
||||
"i": "3",
|
||||
"n": "109"
|
||||
},
|
||||
{
|
||||
"b": "2",
|
||||
"i": "4",
|
||||
"n": "108"
|
||||
}
|
||||
|
||||
|
||||
],
|
||||
"children": [
|
||||
{
|
||||
|
@ -203,6 +209,16 @@
|
|||
"b": "1",
|
||||
"i": "2",
|
||||
"n": "96"
|
||||
},
|
||||
{
|
||||
"b": "2",
|
||||
"i": "3",
|
||||
"n": "107"
|
||||
},
|
||||
{
|
||||
"b": "2",
|
||||
"i": "4",
|
||||
"n": "106"
|
||||
}
|
||||
],
|
||||
"children": [
|
||||
|
@ -282,6 +298,16 @@
|
|||
"b": "1",
|
||||
"i": "2",
|
||||
"n": "94"
|
||||
},
|
||||
{
|
||||
"b": "2",
|
||||
"i": "3",
|
||||
"n": "105"
|
||||
},
|
||||
{
|
||||
"b": "2",
|
||||
"i": "4",
|
||||
"n": "104"
|
||||
}
|
||||
],
|
||||
"children": [
|
||||
|
|
Loading…
Reference in New Issue