kopia lustrzana https://github.com/weetmuts/wmbusmeters
Fix rtl_wmbus -f detection.
rodzic
0d0338c9a4
commit
14ca481c63
|
@ -237,7 +237,14 @@ XMQProceed DriverDynamic::add_detect(XMQDoc *doc, XMQNode *detect, DriverInfo *d
|
|||
XMQProceed DriverDynamic::add_use(XMQDoc *doc, XMQNode *field, DriverDynamic *dd)
|
||||
{
|
||||
string name = xmqGetString(doc, field, ".");
|
||||
dd->addOptionalLibraryFields(name);
|
||||
bool ok = dd->addOptionalLibraryFields(name);
|
||||
if (!ok)
|
||||
{
|
||||
warning("(driver) error in %s, unknown library field: %s \n",
|
||||
dd->fileName().c_str(),
|
||||
name.c_str());
|
||||
}
|
||||
|
||||
return XMQ_CONTINUE;
|
||||
}
|
||||
|
||||
|
|
|
@ -2679,7 +2679,7 @@ bool checkIf(set<string> &fields, const char *s)
|
|||
return false;
|
||||
}
|
||||
|
||||
void checkFieldsEmpty(set<string> &fields, string name)
|
||||
bool checkFieldsEmpty(set<string> &fields, string driver_name)
|
||||
{
|
||||
if (fields.size() > 0)
|
||||
{
|
||||
|
@ -2687,12 +2687,14 @@ void checkFieldsEmpty(set<string> &fields, string name)
|
|||
for (auto &s : fields) { info += s+" "; }
|
||||
|
||||
warning("(meter) when adding common fields to driver %s, these fields were not found: %s\n",
|
||||
name.c_str(),
|
||||
driver_name.c_str(),
|
||||
info.c_str());
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void MeterCommonImplementation::addOptionalLibraryFields(string field_names)
|
||||
bool MeterCommonImplementation::addOptionalLibraryFields(string field_names)
|
||||
{
|
||||
set<string> fields = splitStringIntoSet(field_names, ',');
|
||||
|
||||
|
@ -3095,6 +3097,12 @@ void MeterCommonImplementation::addOptionalLibraryFields(string field_names)
|
|||
.set(VIFRange::HeatCostAllocation)
|
||||
);
|
||||
}
|
||||
|
||||
if (!checkFieldsEmpty(fields, name()))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
const char *toString(VifScaling s)
|
||||
|
|
|
@ -204,7 +204,7 @@ protected:
|
|||
|
||||
std::string decodeTPLStatusByte(uchar sts);
|
||||
|
||||
void addOptionalLibraryFields(string fields);
|
||||
bool addOptionalLibraryFields(string fields);
|
||||
|
||||
vector<string> &selectedFields() { return selected_fields_; }
|
||||
void setSelectedFields(vector<string> &f) { selected_fields_ = f; }
|
||||
|
|
|
@ -168,7 +168,7 @@ shared_ptr<BusDevice> openRTLWMBUS(Detected detected,
|
|||
args.push_back("-h");
|
||||
invokeShellCaptureOutput(rtl_wmbus, { "-h" }, {}, &out, true);
|
||||
debug("(rtlwmbus) help %s\n", out.c_str());
|
||||
if (out.find("-f exit if flow") != string::npos)
|
||||
if (out.find("-f exit") != string::npos)
|
||||
{
|
||||
add_f = " -f";
|
||||
}
|
||||
|
|
Ładowanie…
Reference in New Issue