simplify sensor config handling

This commit is contained in:
andreas 2023-11-05 12:15:39 +01:00
parent cf1e0d1224
commit 5a79e0584f
3 changed files with 43 additions and 125 deletions

View File

@ -90,87 +90,48 @@ class BME280Config : public SensorBase{
sendN2kHumidity(api, *this, humidity, counterId); sendN2kHumidity(api, *this, humidity, counterId);
} }
} }
#define CFG280(prefix) \
CFG_GET(prAct,prefix); \
CFG_GET(tmAct,prefix);\
CFG_GET(huAct,prefix);\
CFG_GET(tmSrc,prefix);\
CFG_GET(huSrc,prefix);\
CFG_GET(iid,prefix);\
CFG_GET(intv,prefix);\
CFG_GET(tmNam,prefix);\
CFG_GET(huNam,prefix);\
CFG_GET(prNam,prefix);\
CFG_GET(tmOff,prefix);\
CFG_GET(prOff,prefix);
virtual void readConfig(GwConfigHandler *cfg) override virtual void readConfig(GwConfigHandler *cfg) override
{ {
if (prefix == PRFX1) if (prefix == PRFX1)
{ {
busId = 1; busId = 1;
addr = 0x76; addr = 0x76;
#undef CG CFG280(BME28011);
#define CG(name) CFG_GET(name, BME28011)
CG(prAct);
CG(tmAct);
CG(huAct);
CG(tmSrc);
CG(huSrc);
CG(iid);
CG(intv);
CG(tmNam);
CG(huNam);
CG(prNam);
CG(tmOff);
CG(prOff);
ok=true; ok=true;
} }
if (prefix == PRFX2) if (prefix == PRFX2)
{ {
busId = 1; busId = 1;
addr = 0x77; addr = 0x77;
#undef CG CFG280(BME28012);
#define CG(name) CFG_GET(name, BME28012)
CG(prAct);
CG(tmAct);
CG(huAct);
CG(tmSrc);
CG(huSrc);
CG(iid);
CG(intv);
CG(tmNam);
CG(huNam);
CG(prNam);
CG(tmOff);
CG(prOff);
ok=true; ok=true;
} }
if (prefix == PRFX3) if (prefix == PRFX3)
{ {
busId = 2; busId = 2;
addr = 0x76; addr = 0x76;
#undef CG CFG280(BME28021);
#define CG(name) CFG_GET(name, BME28021)
CG(prAct);
CG(tmAct);
CG(huAct);
CG(tmSrc);
CG(huSrc);
CG(iid);
CG(intv);
CG(tmNam);
CG(huNam);
CG(prNam);
CG(tmOff);
CG(prOff);
ok=true; ok=true;
} }
if (prefix == PRFX4) if (prefix == PRFX4)
{ {
busId = 2; busId = 2;
addr = 0x77; addr = 0x77;
#undef CG CFG280(BME28022);
#define CG(name) CFG_GET(name, BME28022)
CG(prAct);
CG(tmAct);
CG(huAct);
CG(tmSrc);
CG(huSrc);
CG(iid);
CG(intv);
CG(tmNam);
CG(huNam);
CG(prNam);
CG(tmOff);
CG(prOff);
ok=true;
} }
intv *= 1000; intv *= 1000;
} }

View File

@ -40,53 +40,36 @@ class QMP6988Config : public SensorBase{
LOG_DEBUG(GwLog::DEBUG,"%s measure %2.0fPa, computed %2.0fPa",prefix.c_str(), pressure,computed); LOG_DEBUG(GwLog::DEBUG,"%s measure %2.0fPa, computed %2.0fPa",prefix.c_str(), pressure,computed);
sendN2kPressure(api,*this,computed,counterId); sendN2kPressure(api,*this,computed,counterId);
} }
#define CFG6988(prefix)\
CFG_GET(prNam,prefix); \
CFG_GET(iid,prefix); \
CFG_GET(prAct,prefix); \
CFG_GET(intv,prefix); \
CFG_GET(prOff,prefix);
virtual void readConfig(GwConfigHandler *cfg){ virtual void readConfig(GwConfigHandler *cfg){
if (prefix == PRFX1){ if (prefix == PRFX1){
busId=1; busId=1;
addr=86; addr=86;
#undef CG CFG6988(QMP698811);
#define CG(name) CFG_GET(name,QMP698811)
CG(prNam);
CG(iid);
CG(prAct);
CG(intv);
CG(prOff);
ok=true; ok=true;
} }
if (prefix == PRFX2){ if (prefix == PRFX2){
busId=1; busId=1;
addr=112; addr=112;
#undef CG CFG6988(QMP698812);
#define CG(name) CFG_GET(name,QMP698812)
CG(prNam);
CG(iid);
CG(prAct);
CG(intv);
CG(prOff);
ok=true; ok=true;
} }
if (prefix == PRFX3){ if (prefix == PRFX3){
busId=2; busId=2;
addr=86; addr=86;
#undef CG CFG6988(QMP698821);
#define CG(name) CFG_GET(name,QMP698821)
CG(prNam);
CG(iid);
CG(prAct);
CG(intv);
CG(prOff);
ok=true; ok=true;
} }
if (prefix == PRFX4){ if (prefix == PRFX4){
busId=2; busId=2;
addr=112; addr=112;
#undef CG CFG6988(QMP698822);
#define CG(name) CFG_GET(name,QMP698822)
CG(prNam);
CG(iid);
CG(prAct);
CG(intv);
CG(prOff);
ok=true; ok=true;
} }
intv*=1000; intv*=1000;

View File

@ -66,65 +66,39 @@ class SHT3XConfig : public SensorBase{
* just to get compile time errors if something does not fit * just to get compile time errors if something does not fit
* correctly * correctly
*/ */
#define CFG3X(prefix) \
CFG_GET(tmNam,prefix); \
CFG_GET(huNam,prefix); \
CFG_GET(iid,prefix); \
CFG_GET(tmAct,prefix); \
CFG_GET(huAct,prefix); \
CFG_GET(intv,prefix); \
CFG_GET(huSrc,prefix); \
CFG_GET(tmSrc,prefix);
virtual void readConfig(GwConfigHandler *cfg){ virtual void readConfig(GwConfigHandler *cfg){
if (prefix == PRFX1){ if (prefix == PRFX1){
busId=1; busId=1;
addr=0x44; addr=0x44;
#undef CG CFG3X(SHT3X11);
#define CG(name) CFG_GET(name,SHT3X11)
CG(tmNam);
CG(huNam);
CG(iid);
CG(tmAct);
CG(huAct);
CG(intv);
CG(huSrc);
CG(tmSrc);
ok=true; ok=true;
} }
if (prefix == PRFX2){ if (prefix == PRFX2){
busId=1; busId=1;
addr=0x45; addr=0x45;
#undef CG CFG3X(SHT3X12);
#define CG(name) CFG_GET(name,SHT3X12)
CG(tmNam);
CG(huNam);
CG(iid);
CG(tmAct);
CG(huAct);
CG(intv);
CG(huSrc);
CG(tmSrc);
ok=true; ok=true;
} }
if (prefix == PRFX3){ if (prefix == PRFX3){
busId=2; busId=2;
addr=0x44; addr=0x44;
#undef CG CFG3X(SHT3X21);
#define CG(name) CFG_GET(name,SHT3X21)
CG(tmNam);
CG(huNam);
CG(iid);
CG(tmAct);
CG(huAct);
CG(intv);
CG(huSrc);
CG(tmSrc);
ok=true; ok=true;
} }
if (prefix == PRFX4){ if (prefix == PRFX4){
busId=2; busId=2;
addr=0x45; addr=0x45;
#undef CG CFG3X(SHT3X22);
#define CG(name) CFG_GET(name,SHT3X22)
CG(tmNam);
CG(huNam);
CG(iid);
CG(tmAct);
CG(huAct);
CG(intv);
CG(huSrc);
CG(tmSrc);
ok=true; ok=true;
} }
intv*=1000; intv*=1000;