pull/520/head
Fredrik Öhrström 2022-04-17 11:23:45 +02:00
rodzic 29b5efef7c
commit 4abc31d75c
57 zmienionych plików z 189 dodań i 158 usunięć

Wyświetl plik

@ -1,2 +1,2 @@
telegram=|6644242381818181640E7246564656A51170071F0050052F2F|15257A616F14139172137DAE3A0C000000008C2013917213000B3B0000000B26784601025AF5000266EF00046D1B08B7214C1338861200CC101300000000CC201338861200426C9F2C42EC7EBF2C|
{"media":"water","meter":"hydrus","name":"Vatten","id":"56465646","total_m3":0,"total_tariff1_m3":0,"total_tariff2_m3":137.291,"max_flow_m3h":0,"flow_temperature_c":24.5,"external_temperature_c":23.9,"current_date":"2021-01-23 08:27","total_at_date_m3":128.638,"total_tariff1_at_date_m3":0,"total_tariff2_at_date_m3":128.638,"at_date":"2020-12-31 00:00","actuality_duration_s":0,"operating_time_h":14678,"remaining_battery_life_y":0,"status":"OK","timestamp":"1111-11-11T11:11:11Z"}
{"media":"water","meter":"hydrus","name":"Vatten","id":"56465646","total_m3":114.35283,"total_tariff1_m3":0,"total_tariff2_m3":137.291,"max_flow_m3h":0,"flow_temperature_c":24.5,"external_temperature_c":23.9,"current_date":"2021-01-23 08:27","total_at_date_m3":128.638,"total_tariff1_at_date_m3":0,"total_tariff2_at_date_m3":128.638,"at_date":"2020-12-31 00:00","actuality_duration_s":0,"operating_time_h":14678,"remaining_battery_life_y":0,"status":"OK","timestamp":"1111-11-11T11:11:11Z"}

Wyświetl plik

@ -122,7 +122,7 @@ telegram=|5744b40988227711101b7ab20800000265a00842658f088201659f08226589081265a0
# Test Hydrus water meter telegram
telegram=|4E44A5116464646470077AED004005|2F2F01FD08300C13741100007C1300000000FC101300000000FC201300000000726C00000B3B00000002FD748713025A6800C4016D3B177F2ACC011300020000|
{"media":"water","meter":"hydrus","name":"HydrusWater","id":"64646464","total_m3":1.174,"total_tariff1_m3":0,"total_tariff2_m3":0,"max_flow_m3h":0,"flow_temperature_c":10.4,"external_temperature_c":0,"current_date":"","total_at_date_m3":0.2,"total_tariff1_at_date_m3":0,"total_tariff2_at_date_m3":0,"at_date":"2019-10-31 23:59","actuality_duration_s":0,"operating_time_h":0,"remaining_battery_life_y":13.686516,"status":"OK","timestamp":"1111-11-11T11:11:11Z"}
{"media":"water","meter":"hydrus","name":"HydrusWater","id":"64646464","total_m3":1.174,"total_tariff1_m3":0,"total_tariff2_m3":0,"max_flow_m3h":0,"flow_temperature_c":10.4,"external_temperature_c":0,"current_date":"","total_at_date_m3":0,"total_tariff1_at_date_m3":0,"total_tariff2_at_date_m3":0,"at_date":"2000-00-00 00:00","actuality_duration_s":0,"operating_time_h":0,"remaining_battery_life_y":13.686516,"status":"OK","timestamp":"1111-11-11T11:11:11Z"}
|HydrusWater;64646464;1.174000;0.000000;OK;1111-11-11 11:11.11
# Test Hydrus new version water meter telegram

Wyświetl plik

@ -88,7 +88,7 @@ MeterAmiplus::MeterAmiplus(MeterInfo &mi, DriverInfo &di) : MeterCommonImplement
Quantity::Energy,
DifVifKey("0E833C"),
VifScaling::Auto,
MeasurementType::Unknown,
MeasurementType::Instantaneous,
VIFRange::None,
AnyStorageNr,
AnyTariffNr,
@ -103,7 +103,7 @@ MeterAmiplus::MeterAmiplus(MeterInfo &mi, DriverInfo &di) : MeterCommonImplement
Quantity::Power,
DifVifKey("0BAB3C"),
VifScaling::Auto,
MeasurementType::Unknown,
MeasurementType::Instantaneous,
VIFRange::Any,
AnyStorageNr,
AnyTariffNr,
@ -118,7 +118,7 @@ MeterAmiplus::MeterAmiplus(MeterInfo &mi, DriverInfo &di) : MeterCommonImplement
Quantity::Voltage,
DifVifKey("0AFDC9FC01"),
VifScaling::None,
MeasurementType::Unknown,
MeasurementType::Instantaneous,
VIFRange::Any,
AnyStorageNr,
AnyTariffNr,
@ -133,7 +133,7 @@ MeterAmiplus::MeterAmiplus(MeterInfo &mi, DriverInfo &di) : MeterCommonImplement
Quantity::Voltage,
DifVifKey("0AFDC9FC02"),
VifScaling::None,
MeasurementType::Unknown,
MeasurementType::Instantaneous,
VIFRange::Any,
AnyStorageNr,
AnyTariffNr,
@ -148,7 +148,7 @@ MeterAmiplus::MeterAmiplus(MeterInfo &mi, DriverInfo &di) : MeterCommonImplement
Quantity::Voltage,
DifVifKey("0AFDC9FC03"),
VifScaling::None,
MeasurementType::Unknown,
MeasurementType::Instantaneous,
VIFRange::Any,
AnyStorageNr,
AnyTariffNr,
@ -177,7 +177,7 @@ MeterAmiplus::MeterAmiplus(MeterInfo &mi, DriverInfo &di) : MeterCommonImplement
Quantity::Energy,
DifVifKey("8E1003"),
VifScaling::Auto,
MeasurementType::Unknown,
MeasurementType::Instantaneous,
VIFRange::None,
StorageNr(0),
TariffNr(1),
@ -192,7 +192,7 @@ MeterAmiplus::MeterAmiplus(MeterInfo &mi, DriverInfo &di) : MeterCommonImplement
Quantity::Energy,
DifVifKey("8E2003"),
VifScaling::Auto,
MeasurementType::Unknown,
MeasurementType::Instantaneous,
VIFRange::None,
StorageNr(0),
TariffNr(2),
@ -208,7 +208,7 @@ MeterAmiplus::MeterAmiplus(MeterInfo &mi, DriverInfo &di) : MeterCommonImplement
Quantity::Energy,
DifVifKey("8E3003"),
VifScaling::Auto,
MeasurementType::Unknown,
MeasurementType::Instantaneous,
VIFRange::None,
StorageNr(0),
TariffNr(3),
@ -223,7 +223,7 @@ MeterAmiplus::MeterAmiplus(MeterInfo &mi, DriverInfo &di) : MeterCommonImplement
Quantity::Energy,
DifVifKey("8E10833C"),
VifScaling::Auto,
MeasurementType::Unknown,
MeasurementType::Instantaneous,
VIFRange::None,
StorageNr(0),
TariffNr(1),
@ -239,7 +239,7 @@ MeterAmiplus::MeterAmiplus(MeterInfo &mi, DriverInfo &di) : MeterCommonImplement
Quantity::Energy,
DifVifKey("8E20833C"),
VifScaling::Auto,
MeasurementType::Unknown,
MeasurementType::Instantaneous,
VIFRange::None,
StorageNr(0),
TariffNr(2),
@ -255,7 +255,7 @@ MeterAmiplus::MeterAmiplus(MeterInfo &mi, DriverInfo &di) : MeterCommonImplement
Quantity::Energy,
DifVifKey("8E30833C"),
VifScaling::Auto,
MeasurementType::Unknown,
MeasurementType::Instantaneous,
VIFRange::None,
StorageNr(0),
TariffNr(3),

Wyświetl plik

@ -67,10 +67,10 @@ void MeterApator08::processContent(Telegram *t)
string total;
strprintf(total, "%02x%02x%02x%02x", content[0], content[1], content[2], content[3]);
vendor_values["0413"] = { 25, DVEntry(MeasurementType::Instantaneous, 0x13, 0, 0, 0, total) };
vendor_values["0413"] = { 25, DVEntry(DifVifKey("0413"), MeasurementType::Instantaneous, 0x13, 0, 0, 0, total) };
int offset;
string key;
if(findKey(MeasurementType::Unknown, VIFRange::Volume, 0, 0, &key, &vendor_values))
if(findKey(MeasurementType::Instantaneous, VIFRange::Volume, 0, 0, &key, &vendor_values))
{
extractDVdouble(&vendor_values, key, &offset, &total_water_consumption_m3_);
// Now divide with 3! Is this the same for all apator08 meters? Time will tell.

Wyświetl plik

@ -96,7 +96,7 @@ MeterAventiesHCA::MeterAventiesHCA(MeterInfo &mi, DriverInfo &di) : MeterCommonI
"error_flags",
Quantity::Text,
DifVifKey("02FD17"),
MeasurementType::Unknown,
MeasurementType::Instantaneous,
VIFRange::Any,
AnyStorageNr,
AnyTariffNr,

Wyświetl plik

@ -83,7 +83,7 @@ MeterAventiesWM::MeterAventiesWM(MeterInfo &mi, DriverInfo &di) :
"error_flags",
Quantity::Text,
DifVifKey("02FD17"),
MeasurementType::Unknown,
MeasurementType::Instantaneous,
VIFRange::Any,
AnyStorageNr,
AnyTariffNr,

Wyświetl plik

@ -94,7 +94,7 @@ MeterC5isf::MeterC5isf(MeterInfo &mi, DriverInfo &di) : MeterCommonImplementatio
"status",
Quantity::Text,
DifVifKey("02FD17"),
MeasurementType::Unknown,
MeasurementType::Instantaneous,
VIFRange::Any,
AnyStorageNr,
AnyTariffNr,

Wyświetl plik

@ -114,7 +114,7 @@ MeterItron::MeterItron(MeterInfo &mi, DriverInfo &di) : MeterCommonImplementatio
"enhanced_id",
Quantity::Text,
DifVifKey("0E79"),
MeasurementType::Unknown,
MeasurementType::Instantaneous,
VIFRange::EnhancedIdentification,
StorageNr(0),
TariffNr(0),
@ -128,7 +128,7 @@ MeterItron::MeterItron(MeterInfo &mi, DriverInfo &di) : MeterCommonImplementatio
"unknown_a",
Quantity::Text,
DifVifKey("047F"),
MeasurementType::Unknown,
MeasurementType::Instantaneous,
VIFRange::Any,
AnyStorageNr,
AnyTariffNr,
@ -154,7 +154,7 @@ MeterItron::MeterItron(MeterInfo &mi, DriverInfo &di) : MeterCommonImplementatio
"unknown_b",
Quantity::Text,
DifVifKey("027F"),
MeasurementType::Unknown,
MeasurementType::Instantaneous,
VIFRange::Any,
AnyStorageNr,
AnyTariffNr,

Wyświetl plik

@ -99,7 +99,7 @@ MeterLSE_07_17::MeterLSE_07_17(MeterInfo &mi, DriverInfo &di) :
"error_code",
Quantity::Text,
DifVifKey("02BB56"),
MeasurementType::Unknown,
MeasurementType::Instantaneous,
VIFRange::Any,
AnyStorageNr,
AnyTariffNr,

Wyświetl plik

@ -186,7 +186,7 @@ MeterMicroClima::MeterMicroClima(MeterInfo &mi, DriverInfo &di) : MeterCommonImp
"status",
Quantity::Text,
DifVifKey("01FD17"),
MeasurementType::Unknown,
MeasurementType::Instantaneous,
VIFRange::Any,
AnyStorageNr,
AnyTariffNr,

Wyświetl plik

@ -136,7 +136,7 @@ MeterMinomess::MeterMinomess(MeterInfo &mi, DriverInfo &di) : MeterCommonImpleme
"status",
Quantity::Text,
DifVifKey("02FD17"),
MeasurementType::Unknown,
MeasurementType::Instantaneous,
VIFRange::Any,
AnyStorageNr,
AnyTariffNr,

Wyświetl plik

@ -96,7 +96,7 @@ MeterPIIGTH::MeterPIIGTH(MeterInfo &mi, DriverInfo &di) :
Quantity::Temperature,
DifVifKey("02FB1A"),
VifScaling::Auto,
MeasurementType::Unknown,
MeasurementType::Instantaneous,
VIFRange::RelativeHumidity,
StorageNr(0),
TariffNr(0),
@ -223,13 +223,13 @@ void MeterPIIGTH::processContent(Telegram *t)
int offset;
string key;
if (findKey(MeasurementType::Unknown, VIFRange::ExternalTemperature, 1, 0, &key, &t->dv_entries))
if (findKey(MeasurementType::Instantaneous, VIFRange::ExternalTemperature, 1, 0, &key, &t->dv_entries))
{
extractDVdouble(&t->dv_entries, key, &offset, &average_temperature_1h_c_);
t->addMoreExplanation(offset, " average temperature 1h (%f C))", average_temperature_1h_c_);
}
if (findKey(MeasurementType::Unknown, VIFRange::ExternalTemperature, 2, 0, &key, &t->dv_entries))
if (findKey(MeasurementType::Instantaneous, VIFRange::ExternalTemperature, 2, 0, &key, &t->dv_entries))
{
extractDVdouble(&t->dv_entries, key, &offset, &average_temperature_24h_c_);
t->addMoreExplanation(offset, " average temperature 24h (%f C))", average_temperature_24h_c_);

Wyświetl plik

@ -129,7 +129,7 @@ MeterQWater::MeterQWater(MeterInfo &mi, DriverInfo &di) :
"error_code",
Quantity::Text,
DifVifKey("02BB56"),
MeasurementType::Unknown,
MeasurementType::Instantaneous,
VIFRange::Any,
AnyStorageNr,
AnyTariffNr,

Wyświetl plik

@ -149,7 +149,7 @@ MeterSharky774::MeterSharky774(MeterInfo &mi, DriverInfo &di) : MeterCommonImpl
Quantity::Time,
DifVifKey("0AA618"),
VifScaling::Auto,
MeasurementType::Unknown,
MeasurementType::Instantaneous,
VIFRange::None,
StorageNr(0),
TariffNr(0),

Wyświetl plik

@ -1,5 +1,5 @@
/*
Copyright (C) 2018-2020 Fredrik Öhrström (gpl-3.0-or-later)
Copyright (C) 2018-2022 Fredrik Öhrström (gpl-3.0-or-later)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -142,7 +142,7 @@ bool parseDV(Telegram *t,
// Data format is:
// DIF byte (defines how the binary data bits should be decoded and how man data bytes there are)
// DIF byte (defines how the binary data bits should be decoded and howy man data bytes there are)
// Sometimes followed by one or more dife bytes, if the 0x80 high bit is set.
// The last dife byte does not have the 0x80 bit set.
@ -332,7 +332,8 @@ bool parseDV(Telegram *t,
string value = bin2hex(data, data_end, datalen);
int offset = start_parse_here+data-data_start;
(*values)[key] = { offset,
DVEntry(mt,
DVEntry(key,
mt,
Vif(vif&0x7f),
StorageNr(storage_nr),
TariffNr(tariff),
@ -383,16 +384,17 @@ bool findKeyWithNr(MeasurementType mit, VIFRange vif_range, StorageNr storagenr,
for (auto& v : *values)
{
MeasurementType ty = v.second.second.type;
MeasurementType ty = v.second.second.measurement_type;
Vif vi = v.second.second.vif;
StorageNr sn = v.second.second.storagenr;
TariffNr tn = v.second.second.tariff;
StorageNr sn = v.second.second.storage_nr;
TariffNr tn = v.second.second.tariff_nr;
/*debug("(dvparser) match? %s type=%s vif=%02x (%s) and storagenr=%d\n",
v.first.c_str(),
measurementTypeName(ty).c_str(), vi, toString(toVIFRange(vi)), storagenr, sn);*/
if (isInsideVIFRange(vi, vif_range) &&
(mit == MeasurementType::Unknown || mit == ty) &&
(mit == MeasurementType::Instantaneous || mit == ty) &&
(storagenr == AnyStorageNr || storagenr == sn) &&
(tariffnr == AnyTariffNr || tariffnr == tn))
{
@ -936,3 +938,18 @@ bool extractDVdate(map<string,pair<int,DVEntry>> *values,
return ok;
}
bool FieldMatcher::matches(int index, DVEntry &dv_entry)
{
if (match_dif_vif_key)
{
return dv_entry.dif_vif_key == dif_vif_key;
}
return
(!match_vif_range || isInsideVIFRange(dv_entry.vif, vif_range)) &&
(!match_measurement_type || dv_entry.measurement_type == measurement_type) &&
(!match_storage_nr || (dv_entry.storage_nr >= storage_nr_from && dv_entry.storage_nr <= storage_nr_to)) &&
(!match_tariff_nr || (dv_entry.tariff_nr >= tariff_nr_from && dv_entry.tariff_nr <= tariff_nr_to)) &&
(!match_subunit_nr || (dv_entry.subunit_nr >= subunit_nr_from && dv_entry.subunit_nr <= subunit_nr_to));
}

Wyświetl plik

@ -64,7 +64,6 @@ bool isInsideVIFRange(int i, VIFRange range);
enum class MeasurementType
{
Unknown,
Instantaneous,
Minimum,
Maximum,
@ -75,7 +74,7 @@ struct DifVifKey
{
DifVifKey(std::string key) : key_(key) {}
std::string str() { return key_; }
bool useSearchInstead() { return key_ == ""; }
bool operator==(DifVifKey &dvk) { return key_ == dvk.key_; }
private:
@ -99,6 +98,8 @@ struct StorageNr
StorageNr(int n) : nr_(n) {}
int intValue() { return nr_; }
bool operator==(StorageNr s) { return nr_ == s.nr_; }
bool operator>=(StorageNr s) { return nr_ >= s.nr_; }
bool operator<=(StorageNr s) { return nr_ <= s.nr_; }
private:
int nr_;
@ -111,6 +112,8 @@ struct TariffNr
TariffNr(int n) : nr_(n) {}
int intValue() { return nr_; }
bool operator==(TariffNr s) { return nr_ == s.nr_; }
bool operator>=(TariffNr s) { return nr_ >= s.nr_; }
bool operator<=(TariffNr s) { return nr_ <= s.nr_; }
private:
int nr_;
@ -123,6 +126,8 @@ struct SubUnitNr
SubUnitNr(int n) : nr_(n) {}
int intValue() { return nr_; }
bool operator==(SubUnitNr s) { return nr_ == s.nr_; }
bool operator>=(SubUnitNr s) { return nr_ >= s.nr_; }
bool operator<=(SubUnitNr s) { return nr_ <= s.nr_; }
private:
int nr_;
@ -142,16 +147,17 @@ static IndexNr AnyIndexNr = IndexNr(-1);
struct DVEntry
{
MeasurementType type {};
DifVifKey dif_vif_key { "" };
MeasurementType measurement_type {};
Vif vif { 0 };
StorageNr storagenr { 0 };
TariffNr tariff { 0 };
SubUnitNr subunit { 0 };
StorageNr storage_nr { 0 };
TariffNr tariff_nr { 0 };
SubUnitNr subunit_nr { 0 };
std::string value;
DVEntry() {}
DVEntry(MeasurementType mt, Vif vi, StorageNr st, TariffNr ta, SubUnitNr su, std::string &val) :
type(mt), vif(vi), storagenr(st), tariff(ta), subunit(su), value(val) {}
DVEntry(DifVifKey dvk, MeasurementType mt, Vif vi, StorageNr st, TariffNr ta, SubUnitNr su, std::string &val) :
dif_vif_key(dvk), measurement_type(mt), vif(vi), storage_nr(st), tariff_nr(ta), subunit_nr(su), value(val) {}
};
struct FieldMatcher
@ -165,20 +171,23 @@ struct FieldMatcher
MeasurementType measurement_type { MeasurementType::Instantaneous };
// Match the value information range. See dvparser.h
bool match_value_information = false;
VIFRange value_information { VIFRange::None };
bool match_vif_range = false;
VIFRange vif_range { VIFRange::None };
// Match the storage nr.
bool match_storage_nr = false;
StorageNr storage_nr { 0 };
StorageNr storage_nr_from { 0 };
StorageNr storage_nr_to { 0 };
// Match the tariff nr.
bool match_tariff_nr = false;
TariffNr tariff_nr { 0 };
TariffNr tariff_nr_from { 0 };
TariffNr tariff_nr_to { 0 };
// Match the subunit.
bool match_subunit_nr = false;
SubUnitNr subunit_nr { 0 };
SubUnitNr subunit_nr_from { 0 };
SubUnitNr subunit_nr_to { 0 };
// If the telegram has multiple identical difvif entries, use entry with this index nr.
// First entry has nr 1, which is the default value.
@ -188,11 +197,17 @@ struct FieldMatcher
static FieldMatcher build() { return FieldMatcher(); }
void set(DifVifKey k) { dif_vif_key = k; }
FieldMatcher &set(MeasurementType mt) { measurement_type = mt; return *this; }
FieldMatcher &set(VIFRange vi) { value_information = vi; return *this; }
FieldMatcher &set(StorageNr s) { storage_nr = s; return *this; }
FieldMatcher &set(TariffNr t) { tariff_nr = t; return *this; }
FieldMatcher &set(SubUnitNr u) { subunit_nr = u; return *this; }
FieldMatcher &set(VIFRange v) { vif_range = v; return *this; }
FieldMatcher &set(StorageNr s) { storage_nr_from = storage_nr_to = s; return *this; }
FieldMatcher &set(StorageNr from, StorageNr to) { storage_nr_from = from; storage_nr_to = to; return *this; }
FieldMatcher &set(TariffNr s) { tariff_nr_from = tariff_nr_to = s; return *this; }
FieldMatcher &set(TariffNr from, TariffNr to) { tariff_nr_from = from; tariff_nr_to = to; return *this; }
FieldMatcher &set(SubUnitNr s) { subunit_nr_from = subunit_nr_to = s; return *this; }
FieldMatcher &set(SubUnitNr from, SubUnitNr to) { subunit_nr_from = from; subunit_nr_to = to; return *this; }
FieldMatcher &set(IndexNr i) { index_nr = i; return *this; }
bool matches(int index, DVEntry &dv_entry);
};
bool loadFormatBytesFromSignature(uint16_t format_signature, std::vector<uchar> *format_bytes);

Wyświetl plik

@ -125,7 +125,7 @@ void MeterApator162::processContent(Telegram *t)
// We found the register representing the total
string total;
strprintf(total, "%02x%02x%02x%02x", content[i+0], content[i+1], content[i+2], content[i+3]);
vendor_values["0413"] = {i-1+t->header_size, DVEntry(MeasurementType::Instantaneous, 0x13, 0, 0, 0, total) };
vendor_values["0413"] = {i-1+t->header_size, DVEntry(DifVifKey("0215"), MeasurementType::Instantaneous, 0x13, 0, 0, 0, total) };
int offset;
extractDVdouble(&vendor_values, "0413", &offset, &total_water_consumption_m3_);
total = "*** 10|"+total+" total consumption (%f m3)";

Wyświetl plik

@ -97,13 +97,13 @@ void MeterCMa12w::processContent(Telegram *t)
int offset;
string key;
if (findKey(MeasurementType::Unknown, VIFRange::ExternalTemperature, 0, 0, &key, &t->dv_entries))
if (findKey(MeasurementType::Instantaneous, VIFRange::ExternalTemperature, 0, 0, &key, &t->dv_entries))
{
extractDVdouble(&t->dv_entries, key, &offset, &current_temperature_c_);
t->addMoreExplanation(offset, " current temperature (%f C)", current_temperature_c_);
}
if (findKey(MeasurementType::Unknown, VIFRange::ExternalTemperature, 1, 0, &key, &t->dv_entries))
if (findKey(MeasurementType::Instantaneous, VIFRange::ExternalTemperature, 1, 0, &key, &t->dv_entries))
{
extractDVdouble(&t->dv_entries, key, &offset, &average_temperature_1h_c_);
t->addMoreExplanation(offset, " average temperature 1h (%f C))", average_temperature_1h_c_);

Wyświetl plik

@ -110,7 +110,7 @@ void MeterCompact5::processContent(Telegram *t)
string prevs;
strprintf(prevs, "%02x%02x", prev_lo, prev_hi);
int offset = t->parsed.size()+3;
vendor_values["0215"] = { offset, DVEntry(MeasurementType::Instantaneous, 0x15, 0, 0, 0, prevs) };
vendor_values["0215"] = { offset, DVEntry(DifVifKey("0215"), MeasurementType::Instantaneous, 0x15, 0, 0, 0, prevs) };
Explanation pe(offset, 2, prevs, KindOfData::CONTENT, Understanding::FULL);
t->explanations.push_back(pe);
t->addMoreExplanation(offset, " energy used in previous billing period (%f KWH)", prev);
@ -122,7 +122,7 @@ void MeterCompact5::processContent(Telegram *t)
string currs;
strprintf(currs, "%02x%02x", curr_lo, curr_hi);
offset = t->parsed.size()+7;
vendor_values["0215"] = { offset, DVEntry(MeasurementType::Instantaneous, 0x15, 0, 0, 0, currs) };
vendor_values["0215"] = { offset, DVEntry(DifVifKey("0215"), MeasurementType::Instantaneous, 0x15, 0, 0, 0, currs) };
Explanation ce(offset, 2, currs, KindOfData::CONTENT, Understanding::FULL);
t->explanations.push_back(ce);
t->addMoreExplanation(offset, " energy used in current billing period (%f KWH)", curr);

Wyświetl plik

@ -152,7 +152,7 @@ void MeterEBZWMBE::processContent(Telegram *t)
int offset;
string key;
if (findKey(MeasurementType::Unknown, VIFRange::EnergyWh, 0, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::EnergyWh, 0, 0, &key, &t->dv_entries)) {
extractDVdouble(&t->dv_entries, key, &offset, &total_energy_kwh_);
t->addMoreExplanation(offset, " total energy (%f kwh)", total_energy_kwh_);
}

Wyświetl plik

@ -122,13 +122,13 @@ void MeterEHZP::processContent(Telegram *t)
int offset;
string key;
if (findKey(MeasurementType::Unknown, VIFRange::EnergyWh, 0, 0, &key, &t->dv_entries))
if (findKey(MeasurementType::Instantaneous, VIFRange::EnergyWh, 0, 0, &key, &t->dv_entries))
{
extractDVdouble(&t->dv_entries, key, &offset, &total_energy_kwh_);
t->addMoreExplanation(offset, " total energy (%f kwh)", total_energy_kwh_);
}
if (findKey(MeasurementType::Unknown, VIFRange::PowerW, 0, 0, &key, &t->dv_entries))
if (findKey(MeasurementType::Instantaneous, VIFRange::PowerW, 0, 0, &key, &t->dv_entries))
{
extractDVdouble(&t->dv_entries, key, &offset, &current_power_kw_);
t->addMoreExplanation(offset, " current power (%f kw)", current_power_kw_);

Wyświetl plik

@ -73,12 +73,12 @@ void MeterEMerlin868::processContent(Telegram *t)
int offset;
string key;
if(findKey(MeasurementType::Unknown, VIFRange::Volume, 0, 0, &key, &t->dv_entries)) {
if(findKey(MeasurementType::Instantaneous, VIFRange::Volume, 0, 0, &key, &t->dv_entries)) {
extractDVdouble(&t->dv_entries, key, &offset, &actual_total_water_consumption_m3_);
t->addMoreExplanation(offset, " actual total consumption (%f m3)", actual_total_water_consumption_m3_);
}
if(findKey(MeasurementType::Unknown, VIFRange::Volume, 1, 0, &key, &t->dv_entries)) {
if(findKey(MeasurementType::Instantaneous, VIFRange::Volume, 1, 0, &key, &t->dv_entries)) {
extractDVdouble(&t->dv_entries, key, &offset, &last_total_water_consumption_m3h_);
t->addMoreExplanation(offset, " last total consumption (%f m3)", last_total_water_consumption_m3h_);
}

Wyświetl plik

@ -254,22 +254,22 @@ void MeterESYSWM::processContent(Telegram *t)
int offset;
string key;
if (findKey(MeasurementType::Unknown, VIFRange::EnergyWh, 0, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::EnergyWh, 0, 0, &key, &t->dv_entries)) {
extractDVdouble(&t->dv_entries, key, &offset, &total_energy_kwh_);
t->addMoreExplanation(offset, " total energy (%f kwh)", total_energy_kwh_);
}
if (findKey(MeasurementType::Unknown, VIFRange::EnergyWh, 0, 1, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::EnergyWh, 0, 1, &key, &t->dv_entries)) {
extractDVdouble(&t->dv_entries, key, &offset, &total_energy_tariff1_kwh_);
t->addMoreExplanation(offset, " total energy tariff 1 (%f kwh)", total_energy_tariff1_kwh_);
}
if (findKey(MeasurementType::Unknown, VIFRange::EnergyWh, 0, 2, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::EnergyWh, 0, 2, &key, &t->dv_entries)) {
extractDVdouble(&t->dv_entries, key, &offset, &total_energy_tariff2_kwh_);
t->addMoreExplanation(offset, " total energy tariff 2 (%f kwh)", total_energy_tariff2_kwh_);
}
if (findKey(MeasurementType::Unknown, VIFRange::PowerW, 0, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::PowerW, 0, 0, &key, &t->dv_entries)) {
extractDVdouble(&t->dv_entries, key, &offset, &current_power_kw_);
t->addMoreExplanation(offset, " current power (%f kw)", current_power_kw_);
}

Wyświetl plik

@ -210,13 +210,13 @@ void MeterEurisII::processContent(Telegram *t)
int offset;
string key;
if (findKey(MeasurementType::Unknown, VIFRange::HeatCostAllocation, 0, 0, &key, &t->dv_entries))
if (findKey(MeasurementType::Instantaneous, VIFRange::HeatCostAllocation, 0, 0, &key, &t->dv_entries))
{
extractDVdouble(&t->dv_entries, key, &offset, &current_consumption_hca_);
t->addMoreExplanation(offset, " current consumption (%f hca)", current_consumption_hca_);
}
if (findKey(MeasurementType::Unknown, VIFRange::Date, 1, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::Date, 1, 0, &key, &t->dv_entries)) {
struct tm date;
extractDVdate(&t->dv_entries, key, &offset, &date);
set_date_ = strdate(&date);
@ -225,7 +225,7 @@ void MeterEurisII::processContent(Telegram *t)
for (int i=1; i<=17; ++i)
{
if (findKey(MeasurementType::Unknown, VIFRange::HeatCostAllocation, i, 0, &key, &t->dv_entries))
if (findKey(MeasurementType::Instantaneous, VIFRange::HeatCostAllocation, i, 0, &key, &t->dv_entries))
{
string info;
strprintf(info, " consumption at set date %d (%%f hca)", i);

Wyświetl plik

@ -73,12 +73,12 @@ void MeterEV200::processContent(Telegram *t)
int offset;
string key;
if(findKey(MeasurementType::Unknown, VIFRange::Volume, 0, 0, &key, &t->dv_entries)) {
if(findKey(MeasurementType::Instantaneous, VIFRange::Volume, 0, 0, &key, &t->dv_entries)) {
extractDVdouble(&t->dv_entries, key, &offset, &actual_total_water_consumption_m3_);
t->addMoreExplanation(offset, " actual total consumption (%f m3)", actual_total_water_consumption_m3_);
}
if(findKey(MeasurementType::Unknown, VIFRange::Volume, 1, 0, &key, &t->dv_entries)) {
if(findKey(MeasurementType::Instantaneous, VIFRange::Volume, 1, 0, &key, &t->dv_entries)) {
extractDVdouble(&t->dv_entries, key, &offset, &last_total_water_consumption_m3h_);
t->addMoreExplanation(offset, " last total consumption (%f m3)", last_total_water_consumption_m3h_);
}

Wyświetl plik

@ -154,29 +154,29 @@ void MeterFHKVDataIV::processContent(Telegram *t)
int offset;
string key;
if (findKey(MeasurementType::Unknown, VIFRange::HeatCostAllocation, 0, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::HeatCostAllocation, 0, 0, &key, &t->dv_entries)) {
extractDVdouble(&t->dv_entries, key, &offset, &current_consumption_hca_);
t->addMoreExplanation(offset, " current consumption (%f hca)", current_consumption_hca_);
}
if (findKey(MeasurementType::Unknown, VIFRange::Date, 1, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::Date, 1, 0, &key, &t->dv_entries)) {
struct tm date;
extractDVdate(&t->dv_entries, key, &offset, &date);
set_date_ = strdate(&date);
t->addMoreExplanation(offset, " set date (%s)", set_date_.c_str());
}
if (findKey(MeasurementType::Unknown, VIFRange::HeatCostAllocation, 1, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::HeatCostAllocation, 1, 0, &key, &t->dv_entries)) {
extractDVdouble(&t->dv_entries, key, &offset, &consumption_at_set_date_hca_);
t->addMoreExplanation(offset, " consumption at set date (%f hca)", consumption_at_set_date_hca_);
}
if (findKey(MeasurementType::Unknown, VIFRange::HeatCostAllocation, 8, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::HeatCostAllocation, 8, 0, &key, &t->dv_entries)) {
extractDVdouble(&t->dv_entries, key, &offset, &consumption_at_set_date_8_hca_);
t->addMoreExplanation(offset, " consumption at set date 8 (%f hca)", consumption_at_set_date_8_hca_);
}
if (findKey(MeasurementType::Unknown, VIFRange::Date, 8, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::Date, 8, 0, &key, &t->dv_entries)) {
struct tm date;
extractDVdate(&t->dv_entries, key, &offset, &date);
set_date_8_ = strdate(&date);
@ -191,7 +191,7 @@ void MeterFHKVDataIV::processContent(Telegram *t)
t->addMoreExplanation(offset, " error date (%s)", error_date_.c_str());
}
if (findKey(MeasurementType::Unknown, VIFRange::DateTime, 0, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::DateTime, 0, 0, &key, &t->dv_entries)) {
struct tm datetime;
extractDVdate(&t->dv_entries, key, &offset, &datetime);
device_date_time_ = strdatetime(&datetime);

Wyświetl plik

@ -332,13 +332,13 @@ void MeterFlowIQ2200::processContent(Telegram *t)
t->addMoreExplanation(offset, " total consumption (%f m3)", total_water_consumption_m3_);
}
if(findKey(MeasurementType::Unknown, VIFRange::Volume, 1, 0, &key, &t->dv_entries)) {
if(findKey(MeasurementType::Instantaneous, VIFRange::Volume, 1, 0, &key, &t->dv_entries)) {
extractDVdouble(&t->dv_entries, key, &offset, &target_water_consumption_m3_);
has_target_water_consumption_ = true;
t->addMoreExplanation(offset, " target consumption (%f m3)", target_water_consumption_m3_);
}
if (findKey(MeasurementType::Unknown, VIFRange::Date, 1, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::Date, 1, 0, &key, &t->dv_entries)) {
struct tm datetime;
extractDVdate(&t->dv_entries, key, &offset, &datetime);
target_datetime_ = strdatetime(&datetime);
@ -370,7 +370,7 @@ void MeterFlowIQ2200::processContent(Telegram *t)
t->addMoreExplanation(offset, " max flow temperature (%f °C)", max_flow_temperature_c_);
}
if(findKey(MeasurementType::Unknown, VIFRange::ExternalTemperature, AnyStorageNr, 0, &key, &t->dv_entries)) {
if(findKey(MeasurementType::Instantaneous, VIFRange::ExternalTemperature, AnyStorageNr, 0, &key, &t->dv_entries)) {
has_external_temperature_ = extractDVdouble(&t->dv_entries, key, &offset, &external_temperature_c_);
t->addMoreExplanation(offset, " external temperature (%f °C)", external_temperature_c_);
}

Wyświetl plik

@ -68,12 +68,12 @@ void MeterHydrodigit::processContent(Telegram *t)
int offset;
string key;
if(findKey(MeasurementType::Unknown, VIFRange::Volume, 0, 0, &key, &t->dv_entries)) {
if(findKey(MeasurementType::Instantaneous, VIFRange::Volume, 0, 0, &key, &t->dv_entries)) {
extractDVdouble(&t->dv_entries, key, &offset, &total_water_consumption_m3_);
t->addMoreExplanation(offset, " total consumption (%f m3)", total_water_consumption_m3_);
}
if (findKey(MeasurementType::Unknown, VIFRange::DateTime, 0, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::DateTime, 0, 0, &key, &t->dv_entries)) {
struct tm datetime;
extractDVdate(&t->dv_entries, key, &offset, &datetime);
meter_datetime_ = strdatetime(&datetime);

Wyświetl plik

@ -129,19 +129,19 @@ void MeterLansenTH::processContent(Telegram *t)
int offset;
string key;
if (findKey(MeasurementType::Unknown, VIFRange::ExternalTemperature, 0, 0, &key, &t->dv_entries))
if (findKey(MeasurementType::Instantaneous, VIFRange::ExternalTemperature, 0, 0, &key, &t->dv_entries))
{
extractDVdouble(&t->dv_entries, key, &offset, &current_temperature_c_);
t->addMoreExplanation(offset, " current temperature (%f C)", current_temperature_c_);
}
if (findKey(MeasurementType::Unknown, VIFRange::ExternalTemperature, 1, 0, &key, &t->dv_entries))
if (findKey(MeasurementType::Instantaneous, VIFRange::ExternalTemperature, 1, 0, &key, &t->dv_entries))
{
extractDVdouble(&t->dv_entries, key, &offset, &average_temperature_1h_c_);
t->addMoreExplanation(offset, " average temperature 1h (%f C))", average_temperature_1h_c_);
}
if (findKey(MeasurementType::Unknown, VIFRange::ExternalTemperature, 2, 0, &key, &t->dv_entries))
if (findKey(MeasurementType::Instantaneous, VIFRange::ExternalTemperature, 2, 0, &key, &t->dv_entries))
{
extractDVdouble(&t->dv_entries, key, &offset, &average_temperature_24h_c_);
t->addMoreExplanation(offset, " average temperature 24h (%f C))", average_temperature_24h_c_);

Wyświetl plik

@ -98,19 +98,19 @@ void MeterLSE_08::processContent(Telegram *t)
int offset;
string key;
if (findKey(MeasurementType::Unknown, VIFRange::HeatCostAllocation, 8, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::HeatCostAllocation, 8, 0, &key, &t->dv_entries)) {
extractDVdouble(&t->dv_entries, key, &offset, &consumption_at_set_date_hca_);
t->addMoreExplanation(offset, " consumption at set date (%f hca)", consumption_at_set_date_hca_);
}
if (findKey(MeasurementType::Unknown, VIFRange::Date, 8, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::Date, 8, 0, &key, &t->dv_entries)) {
struct tm date;
extractDVdate(&t->dv_entries, key, &offset, &date);
set_date_ = strdate(&date);
t->addMoreExplanation(offset, " set date (%s)", set_date_.c_str());
}
if (findKey(MeasurementType::Unknown, VIFRange::DateTime, 0, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::DateTime, 0, 0, &key, &t->dv_entries)) {
struct tm datetime;
extractDVdate(&t->dv_entries, key, &offset, &datetime);
device_date_time_ = strdatetime(&datetime);

Wyświetl plik

@ -100,7 +100,7 @@ void MKRadio3::processContent(Telegram *t)
string prev_date_str;
strprintf(prev_date_str, "%04x", prev_date);
uint offset = t->parsed.size() + 1;
vendor_values["0215"] = { offset, DVEntry(MeasurementType::Unknown, 0x6c, 0, 0, 0, prev_date_str) };
vendor_values["0215"] = { offset, DVEntry(DifVifKey("0215"), MeasurementType::Instantaneous, 0x6c, 0, 0, 0, prev_date_str) };
t->explanations.push_back(Explanation(offset, 1, prev_date_str, KindOfData::CONTENT, Understanding::FULL));
t->addMoreExplanation(offset, " previous date (%s)", previous_date_.c_str());
@ -112,7 +112,7 @@ void MKRadio3::processContent(Telegram *t)
string prevs;
strprintf(prevs, "%02x%02x", prev_lo, prev_hi);
offset = t->parsed.size()+3;
vendor_values["0215"] = { offset, DVEntry(MeasurementType::Instantaneous, 0x15, 0, 0, 0, prevs) };
vendor_values["0215"] = { offset, DVEntry(DifVifKey("0215"), MeasurementType::Instantaneous, 0x15, 0, 0, 0, prevs) };
t->explanations.push_back(Explanation(offset, 2, prevs, KindOfData::CONTENT, Understanding::FULL));
t->addMoreExplanation(offset, " prev consumption (%f m3)", prev);
@ -125,7 +125,7 @@ void MKRadio3::processContent(Telegram *t)
string current_date_str;
strprintf(current_date_str, "%04x", current_date);
offset = t->parsed.size() + 5;
vendor_values["0215"] = { offset, DVEntry(MeasurementType::Unknown, 0x6c, 0, 0, 0, current_date_str) };
vendor_values["0215"] = { offset, DVEntry(DifVifKey("0215"), MeasurementType::Instantaneous, 0x6c, 0, 0, 0, current_date_str) };
t->explanations.push_back(Explanation(offset, 1, current_date_str, KindOfData::CONTENT, Understanding::FULL));
t->addMoreExplanation(offset, " current date (%s)", current_date_.c_str());
@ -137,7 +137,7 @@ void MKRadio3::processContent(Telegram *t)
string currs;
strprintf(currs, "%02x%02x", curr_lo, curr_hi);
offset = t->parsed.size()+7;
vendor_values["0215"] = { offset, DVEntry(MeasurementType::Instantaneous, 0x15, 0, 0, 0, currs) };
vendor_values["0215"] = { offset, DVEntry(DifVifKey("0215"), MeasurementType::Instantaneous, 0x15, 0, 0, 0, currs) };
t->explanations.push_back(Explanation(offset, 2, currs, KindOfData::CONTENT, Understanding::FULL));
t->addMoreExplanation(offset, " curr consumption (%f m3)", curr);

Wyświetl plik

@ -83,7 +83,7 @@ void MKRadio4::processContent(Telegram *t)
string prevs;
strprintf(prevs, "%02x%02x", prev_lo, prev_hi);
int offset = t->parsed.size()+3;
vendor_values["0215"] = { offset, DVEntry(MeasurementType::Instantaneous, 0x15, 0, 0, 0, prevs) };
vendor_values["0215"] = { offset, DVEntry(DifVifKey("0215"), MeasurementType::Instantaneous, 0x15, 0, 0, 0, prevs) };
t->explanations.push_back(Explanation(offset, 2, prevs, KindOfData::CONTENT, Understanding::FULL));
t->addMoreExplanation(offset, " prev consumption (%f m3)", prev);
@ -94,7 +94,7 @@ void MKRadio4::processContent(Telegram *t)
string currs;
strprintf(currs, "%02x%02x", curr_lo, curr_hi);
offset = t->parsed.size()+7;
vendor_values["0215"] = { offset, DVEntry(MeasurementType::Instantaneous, 0x15, 0, 0, 0, currs) };
vendor_values["0215"] = { offset, DVEntry(DifVifKey("0215"), MeasurementType::Instantaneous, 0x15, 0, 0, 0, currs) };
t->explanations.push_back(Explanation(offset, 2, currs, KindOfData::CONTENT, Understanding::FULL));
t->addMoreExplanation(offset, " curr consumption (%f m3)", curr);

Wyświetl plik

@ -301,24 +301,24 @@ void MeterMultical21::processContent(Telegram *t)
t->addMoreExplanation(offset, " total consumption (%f m3)", total_water_consumption_m3_);
}
if(findKey(MeasurementType::Unknown, VIFRange::Volume, 1, 0, &key, &t->dv_entries)) {
if(findKey(MeasurementType::Instantaneous, VIFRange::Volume, 1, 0, &key, &t->dv_entries)) {
extractDVdouble(&t->dv_entries, key, &offset, &target_water_consumption_m3_);
has_target_water_consumption_ = true;
t->addMoreExplanation(offset, " target consumption (%f m3)", target_water_consumption_m3_);
}
if(findKey(MeasurementType::Unknown, VIFRange::VolumeFlow, AnyStorageNr, 0, &key, &t->dv_entries)) {
if(findKey(MeasurementType::Instantaneous, VIFRange::VolumeFlow, AnyStorageNr, 0, &key, &t->dv_entries)) {
extractDVdouble(&t->dv_entries, key, &offset, &max_flow_m3h_);
has_max_flow_ = true;
t->addMoreExplanation(offset, " max flow (%f m3/h)", max_flow_m3h_);
}
if(findKey(MeasurementType::Unknown, VIFRange::FlowTemperature, AnyStorageNr, 0, &key, &t->dv_entries)) {
if(findKey(MeasurementType::Instantaneous, VIFRange::FlowTemperature, AnyStorageNr, 0, &key, &t->dv_entries)) {
has_flow_temperature_ = extractDVdouble(&t->dv_entries, key, &offset, &flow_temperature_c_);
t->addMoreExplanation(offset, " flow temperature (%f °C)", flow_temperature_c_);
}
if(findKey(MeasurementType::Unknown, VIFRange::ExternalTemperature, AnyStorageNr, 0, &key, &t->dv_entries)) {
if(findKey(MeasurementType::Instantaneous, VIFRange::ExternalTemperature, AnyStorageNr, 0, &key, &t->dv_entries)) {
has_external_temperature_ = extractDVdouble(&t->dv_entries, key, &offset, &external_temperature_c_);
t->addMoreExplanation(offset, " external temperature (%f °C)", external_temperature_c_);
}

Wyświetl plik

@ -181,7 +181,7 @@ void MeterMultical302::processContent(Telegram *t)
t->addMoreExplanation(offset, " current power consumption (%f kW)", current_power_kw_);
}
if (findKey(MeasurementType::Unknown, VIFRange::Date, 1, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::Date, 1, 0, &key, &t->dv_entries)) {
struct tm datetime;
extractDVdate(&t->dv_entries, key, &offset, &datetime);
target_date_ = strdatetime(&datetime);

Wyświetl plik

@ -167,7 +167,7 @@ void MeterMultical403::processContent(Telegram *t)
t->addMoreExplanation(offset, " total volume (%f m3)", total_volume_m3_);
}
if(findKey(MeasurementType::Unknown, VIFRange::VolumeFlow, 0, 0, &key, &t->dv_entries)) {
if(findKey(MeasurementType::Instantaneous, VIFRange::VolumeFlow, 0, 0, &key, &t->dv_entries)) {
extractDVdouble(&t->dv_entries, key, &offset, &volume_flow_m3h_);
t->addMoreExplanation(offset, " volume flow (%f m3/h)", volume_flow_m3h_);
}
@ -182,7 +182,7 @@ void MeterMultical403::processContent(Telegram *t)
t->addMoreExplanation(offset, " T2 flow temperature (%f °C)", t2_temperature_c_);
}
if (findKey(MeasurementType::Unknown, VIFRange::Date, 0, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::Date, 0, 0, &key, &t->dv_entries)) {
struct tm datetime;
extractDVdate(&t->dv_entries, key, &offset, &datetime);
target_date_ = strdatetime(&datetime);

Wyświetl plik

@ -243,7 +243,7 @@ void MeterMultical602::processContent(Telegram *t)
t->addMoreExplanation(offset, " total volume (%f m3)", total_volume_m3_);
}
if(findKey(MeasurementType::Unknown, VIFRange::VolumeFlow, 0, 0, &key, &t->dv_entries)) {
if(findKey(MeasurementType::Instantaneous, VIFRange::VolumeFlow, 0, 0, &key, &t->dv_entries)) {
extractDVdouble(&t->dv_entries, key, &offset, &volume_flow_m3h_);
t->addMoreExplanation(offset, " volume flow (%f m3/h)", volume_flow_m3h_);
}
@ -258,7 +258,7 @@ void MeterMultical602::processContent(Telegram *t)
t->addMoreExplanation(offset, " T2 flow temperature (%f °C)", t2_temperature_c_);
}
if (findKey(MeasurementType::Unknown, VIFRange::Date, 0, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::Date, 0, 0, &key, &t->dv_entries)) {
struct tm datetime;
extractDVdate(&t->dv_entries, key, &offset, &datetime);
target_date_ = strdatetime(&datetime);

Wyświetl plik

@ -216,7 +216,7 @@ void MeterMultical603::processContent(Telegram *t)
t->addMoreExplanation(offset, " total volume (%f m3)", total_volume_m3_);
}
if(findKey(MeasurementType::Unknown, VIFRange::VolumeFlow, 0, 0, &key, &t->dv_entries)) {
if(findKey(MeasurementType::Instantaneous, VIFRange::VolumeFlow, 0, 0, &key, &t->dv_entries)) {
extractDVdouble(&t->dv_entries, key, &offset, &volume_flow_m3h_);
t->addMoreExplanation(offset, " volume flow (%f m3/h)", volume_flow_m3h_);
}
@ -231,7 +231,7 @@ void MeterMultical603::processContent(Telegram *t)
t->addMoreExplanation(offset, " T2 flow temperature (%f °C)", t2_temperature_c_);
}
if (findKey(MeasurementType::Unknown, VIFRange::Date, 0, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::Date, 0, 0, &key, &t->dv_entries)) {
struct tm datetime;
extractDVdate(&t->dv_entries, key, &offset, &datetime);
target_date_ = strdatetime(&datetime);

Wyświetl plik

@ -256,7 +256,7 @@ void MeterMultical803::processContent(Telegram *t)
t->addMoreExplanation(offset, " total volume (%f m3)", total_volume_m3_);
}
if(findKey(MeasurementType::Unknown, VIFRange::VolumeFlow, 0, 0, &key, &t->dv_entries)) {
if(findKey(MeasurementType::Instantaneous, VIFRange::VolumeFlow, 0, 0, &key, &t->dv_entries)) {
extractDVdouble(&t->dv_entries, key, &offset, &volume_flow_m3h_);
t->addMoreExplanation(offset, " volume flow (%f m3/h)", volume_flow_m3h_);
}
@ -271,7 +271,7 @@ void MeterMultical803::processContent(Telegram *t)
t->addMoreExplanation(offset, " T2 flow temperature (%f °C)", t2_temperature_c_);
}
if (findKey(MeasurementType::Unknown, VIFRange::Date, 0, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::Date, 0, 0, &key, &t->dv_entries)) {
struct tm datetime;
extractDVdate(&t->dv_entries, key, &offset, &datetime);
target_date_ = strdatetime(&datetime);

Wyświetl plik

@ -88,7 +88,7 @@ void MeterMunia::processContent(Telegram *t)
int offset;
string key;
if (findKey(MeasurementType::Unknown, VIFRange::ExternalTemperature, 0, 0, &key, &t->dv_entries))
if (findKey(MeasurementType::Instantaneous, VIFRange::ExternalTemperature, 0, 0, &key, &t->dv_entries))
{
extractDVdouble(&t->dv_entries, key, &offset, &current_temperature_c_);
t->addMoreExplanation(offset, " current temperature (%f C)", current_temperature_c_);

Wyświetl plik

@ -208,17 +208,17 @@ void MeterQ400::processContent(Telegram *t)
// Find keys common to both q400 and axioma.
if(findKey(MeasurementType::Unknown, VIFRange::Volume, 0, 0, &key, &t->dv_entries)) {
if(findKey(MeasurementType::Instantaneous, VIFRange::Volume, 0, 0, &key, &t->dv_entries)) {
extractDVdouble(&t->dv_entries, key, &offset, &total_water_consumption_m3_);
t->addMoreExplanation(offset, " total consumption (%f m3)", total_water_consumption_m3_);
}
if(findKey(MeasurementType::Unknown, VIFRange::Volume, 1, 0, &key, &t->dv_entries)) {
if(findKey(MeasurementType::Instantaneous, VIFRange::Volume, 1, 0, &key, &t->dv_entries)) {
extractDVdouble(&t->dv_entries, key, &offset, &consumption_at_set_date_m3_);
t->addMoreExplanation(offset, " consumption at set date (%f m3)", consumption_at_set_date_m3_);
}
if (findKey(MeasurementType::Unknown, VIFRange::DateTime, 1, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::DateTime, 1, 0, &key, &t->dv_entries)) {
struct tm date;
extractDVdate(&t->dv_entries, key, &offset, &date);
set_date_ = strdate(&date);

Wyświetl plik

@ -167,29 +167,29 @@ void MeterQCaloric::processContent(Telegram *t)
int offset;
string key;
if (findKey(MeasurementType::Unknown, VIFRange::HeatCostAllocation, 0, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::HeatCostAllocation, 0, 0, &key, &t->dv_entries)) {
extractDVdouble(&t->dv_entries, key, &offset, &current_consumption_hca_);
t->addMoreExplanation(offset, " current consumption (%f hca)", current_consumption_hca_);
}
if (findKey(MeasurementType::Unknown, VIFRange::Date, 1, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::Date, 1, 0, &key, &t->dv_entries)) {
struct tm date;
extractDVdate(&t->dv_entries, key, &offset, &date);
set_date_ = strdate(&date);
t->addMoreExplanation(offset, " set date (%s)", set_date_.c_str());
}
if (findKey(MeasurementType::Unknown, VIFRange::HeatCostAllocation, 1, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::HeatCostAllocation, 1, 0, &key, &t->dv_entries)) {
extractDVdouble(&t->dv_entries, key, &offset, &consumption_at_set_date_hca_);
t->addMoreExplanation(offset, " consumption at set date (%f hca)", consumption_at_set_date_hca_);
}
if (findKey(MeasurementType::Unknown, VIFRange::HeatCostAllocation, 17, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::HeatCostAllocation, 17, 0, &key, &t->dv_entries)) {
extractDVdouble(&t->dv_entries, key, &offset, &consumption_at_set_date_17_hca_);
t->addMoreExplanation(offset, " consumption at set date 17 (%f hca)", consumption_at_set_date_17_hca_);
}
if (findKey(MeasurementType::Unknown, VIFRange::Date, 17, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::Date, 17, 0, &key, &t->dv_entries)) {
struct tm date;
extractDVdate(&t->dv_entries, key, &offset, &date);
set_date_17_ = strdate(&date);
@ -204,7 +204,7 @@ void MeterQCaloric::processContent(Telegram *t)
t->addMoreExplanation(offset, " error date (%s)", error_date_.c_str());
}
if (findKey(MeasurementType::Unknown, VIFRange::DateTime, 0, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::DateTime, 0, 0, &key, &t->dv_entries)) {
struct tm datetime;
extractDVdate(&t->dv_entries, key, &offset, &datetime);
device_date_time_ = strdatetime(&datetime);

Wyświetl plik

@ -156,7 +156,7 @@ void MeterQHeat::processContent(Telegram *t)
t->addMoreExplanation(offset, " last year energy consumption (%f kWh)", last_year_energy_kwh_);
}
if (findKey(MeasurementType::Unknown, VIFRange::Date, 1, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::Date, 1, 0, &key, &t->dv_entries)) {
struct tm datetime;
extractDVdate(&t->dv_entries, key, &offset, &datetime);
last_year_date_ = strdatetime(&datetime);
@ -168,14 +168,14 @@ void MeterQHeat::processContent(Telegram *t)
t->addMoreExplanation(offset, " last month energy consumption (%f kWh)", last_month_energy_kwh_);
}
if (findKey(MeasurementType::Unknown, VIFRange::Date, 17, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::Date, 17, 0, &key, &t->dv_entries)) {
struct tm datetime;
extractDVdate(&t->dv_entries, key, &offset, &datetime);
last_month_date_ = strdatetime(&datetime);
t->addMoreExplanation(offset, " last month date (%s)", last_month_date_.c_str());
}
if (findKey(MeasurementType::Unknown, VIFRange::DateTime, 0, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::DateTime, 0, 0, &key, &t->dv_entries)) {
struct tm datetime;
extractDVdate(&t->dv_entries, key, &offset, &datetime);
device_date_time_ = strdatetime(&datetime);

Wyświetl plik

@ -326,7 +326,7 @@ void MeterQSmoke::processContent(Telegram *t)
t->addMoreExplanation(offset, " error date (%s)", error_date_.c_str());
}
if (findKey(MeasurementType::Unknown, VIFRange::DateTime, 0, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::DateTime, 0, 0, &key, &t->dv_entries)) {
struct tm datetime;
extractDVdate(&t->dv_entries, key, &offset, &datetime);
device_date_time_ = strdatetime(&datetime);

Wyświetl plik

@ -296,13 +296,13 @@ void MeterRfmAmb::processContent(Telegram *t)
minimum_temperature_24h_c_);
}
if (findKey(MeasurementType::Unknown, VIFRange::ExternalTemperature, 1, 0, &key, &t->dv_entries))
if (findKey(MeasurementType::Instantaneous, VIFRange::ExternalTemperature, 1, 0, &key, &t->dv_entries))
{
extractDVdouble(&t->dv_entries, key, &offset, &average_temperature_1h_c_);
t->addMoreExplanation(offset, " average temperature 1h (%f C)", average_temperature_1h_c_);
}
if (findKey(MeasurementType::Unknown, VIFRange::ExternalTemperature, 2, 0, &key, &t->dv_entries))
if (findKey(MeasurementType::Instantaneous, VIFRange::ExternalTemperature, 2, 0, &key, &t->dv_entries))
{
extractDVdouble(&t->dv_entries, key, &offset, &average_temperature_24h_c_);
t->addMoreExplanation(offset, " average temperature 24h (%f C)", average_temperature_24h_c_);
@ -367,7 +367,7 @@ void MeterRfmAmb::processContent(Telegram *t)
t->addMoreExplanation(offset, " relative humidity 24h (%f RH)", average_relative_humidity_24h_rh_);
}
if (findKey(MeasurementType::Unknown, VIFRange::DateTime, 0, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::DateTime, 0, 0, &key, &t->dv_entries)) {
struct tm datetime;
extractDVdate(&t->dv_entries, key, &offset, &datetime);
device_date_time_ = strdatetime(&datetime);

Wyświetl plik

@ -108,12 +108,12 @@ void MeterRfmTX1::processContent(Telegram *t)
return;
}
if(findKey(MeasurementType::Unknown, VIFRange::Volume, 0, 0, &key, &t->dv_entries)) {
if(findKey(MeasurementType::Instantaneous, VIFRange::Volume, 0, 0, &key, &t->dv_entries)) {
extractDVdouble(&t->dv_entries, key, &offset, &total_water_consumption_m3_);
t->addMoreExplanation(offset, " total consumption (%f m3)", total_water_consumption_m3_);
}
if (findKey(MeasurementType::Unknown, VIFRange::DateTime, 0, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::DateTime, 0, 0, &key, &t->dv_entries)) {
struct tm datetime;
extractDVdate(&t->dv_entries, key, &offset, &datetime);
meter_datetime_ = strdatetime(&datetime);

Wyświetl plik

@ -96,7 +96,7 @@ void MeterSensostar::processContent(Telegram *t)
int offset;
string key;
if (findKey(MeasurementType::Unknown, VIFRange::DateTime, 0, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::DateTime, 0, 0, &key, &t->dv_entries)) {
struct tm datetime;
extractDVdate(&t->dv_entries, key, &offset, &datetime);
meter_timestamp_ = strdatetime(&datetime);

Wyświetl plik

@ -235,19 +235,19 @@ void MeterSontex868::processContent(Telegram *t)
int offset;
string key;
if (findKey(MeasurementType::Unknown, VIFRange::HeatCostAllocation, 0, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::HeatCostAllocation, 0, 0, &key, &t->dv_entries)) {
extractDVdouble(&t->dv_entries, key, &offset, &current_consumption_hca_);
t->addMoreExplanation(offset, " current consumption (%f hca)", current_consumption_hca_);
}
if (findKey(MeasurementType::Unknown, VIFRange::Date, 1, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::Date, 1, 0, &key, &t->dv_entries)) {
struct tm date;
extractDVdate(&t->dv_entries, key, &offset, &date);
set_date_ = strdate(&date);
t->addMoreExplanation(offset, " set date (%s)", set_date_.c_str());
}
if (findKey(MeasurementType::Unknown, VIFRange::HeatCostAllocation, 1, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::HeatCostAllocation, 1, 0, &key, &t->dv_entries)) {
extractDVdouble(&t->dv_entries, key, &offset, &consumption_at_set_date_hca_);
t->addMoreExplanation(offset, " consumption at set date (%f hca)", consumption_at_set_date_hca_);
}
@ -272,7 +272,7 @@ void MeterSontex868::processContent(Telegram *t)
t->addMoreExplanation(offset, " max temperature previous period (%f °C)", max_temp_previous_period_c_);
}
if (findKey(MeasurementType::Unknown, VIFRange::DateTime, 0, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::DateTime, 0, 0, &key, &t->dv_entries)) {
struct tm datetime;
extractDVdate(&t->dv_entries, key, &offset, &datetime);
device_date_time_ = strdatetime(&datetime);

Wyświetl plik

@ -127,15 +127,15 @@ void MeterTopasEsKr::processContent(Telegram *t)
int offset;
string key;
if(findKey(MeasurementType::Unknown, VIFRange::Volume, 0, 0, &key, &t->dv_entries)) {
if(findKey(MeasurementType::Instantaneous, VIFRange::Volume, 0, 0, &key, &t->dv_entries)) {
extractDVdouble(&t->dv_entries, key, &offset, &total_water_consumption_m3_);
t->addMoreExplanation(offset, " total consumption (%f m3)", total_water_consumption_m3_);
}
if(findKey(MeasurementType::Unknown, VIFRange::FlowTemperature, 0, 0, &key, &t->dv_entries)) {
if(findKey(MeasurementType::Instantaneous, VIFRange::FlowTemperature, 0, 0, &key, &t->dv_entries)) {
extractDVdouble(&t->dv_entries, key, &offset, &flow_temperature_);
t->addMoreExplanation(offset, " water temperature (%f °C)", flow_temperature_);
}
if(findKey(MeasurementType::Unknown, VIFRange::VolumeFlow, 0, 0, &key, &t->dv_entries)) {
if(findKey(MeasurementType::Instantaneous, VIFRange::VolumeFlow, 0, 0, &key, &t->dv_entries)) {
extractDVdouble(&t->dv_entries, key, &offset, &current_flow_m3h_);
t->addMoreExplanation(offset, " current flow (%f m3/h)", current_flow_m3h_);
}

Wyświetl plik

@ -120,7 +120,7 @@ void MeterUltrimis::processContent(Telegram *t)
int offset;
string key;
if(findKey(MeasurementType::Unknown, VIFRange::Volume, 0, 0, &key, &t->dv_entries)) {
if(findKey(MeasurementType::Instantaneous, VIFRange::Volume, 0, 0, &key, &t->dv_entries)) {
extractDVdouble(&t->dv_entries, key, &offset, &total_water_consumption_m3_);
t->addMoreExplanation(offset, " total consumption (%f m3)", total_water_consumption_m3_);
}
@ -128,7 +128,7 @@ void MeterUltrimis::processContent(Telegram *t)
extractDVuint24(&t->dv_entries, "03FD17", &offset, &info_codes_);
t->addMoreExplanation(offset, " info codes (%s)", status().c_str());
if(findKey(MeasurementType::Unknown, VIFRange::Volume, 1, 0, &key, &t->dv_entries)) {
if(findKey(MeasurementType::Instantaneous, VIFRange::Volume, 1, 0, &key, &t->dv_entries)) {
extractDVdouble(&t->dv_entries, key, &offset, &target_water_consumption_m3_);
t->addMoreExplanation(offset, " target consumption (%f m3)", target_water_consumption_m3_);
}

Wyświetl plik

@ -109,7 +109,7 @@ void MeterVario451::processContent(Telegram *t)
string prevs;
strprintf(prevs, "%02x%02x", prev_lo, prev_hi);
int offset = t->parsed.size()+3;
vendor_values["0215"] = { offset, DVEntry(MeasurementType::Instantaneous, 0x15, 0, 0, 0, prevs) };
vendor_values["0215"] = { offset, DVEntry(DifVifKey("0215"), MeasurementType::Instantaneous, 0x15, 0, 0, 0, prevs) };
t->explanations.push_back(Explanation(offset, 2, prevs, KindOfData::CONTENT, Understanding::FULL));
t->addMoreExplanation(offset, " energy used in previous billing period (%f GJ)", prev);
@ -120,7 +120,7 @@ void MeterVario451::processContent(Telegram *t)
string currs;
strprintf(currs, "%02x%02x", curr_lo, curr_hi);
offset = t->parsed.size()+7;
vendor_values["0215"] = { offset, DVEntry(MeasurementType::Instantaneous, 0x15, 0, 0, 0, currs) };
vendor_values["0215"] = { offset, DVEntry(DifVifKey("0215"), MeasurementType::Instantaneous, 0x15, 0, 0, 0, currs) };
t->explanations.push_back(Explanation(offset, 2, currs, KindOfData::CONTENT, Understanding::FULL));
t->addMoreExplanation(offset, " energy used in current billing period (%f GJ)", curr);

Wyświetl plik

@ -139,14 +139,14 @@ void MeterWaterstarM::processContent(Telegram *t)
int offset;
string key;
if (findKey(MeasurementType::Unknown, VIFRange::DateTime, 0, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::DateTime, 0, 0, &key, &t->dv_entries)) {
struct tm datetime;
extractDVdate(&t->dv_entries, key, &offset, &datetime);
meter_timestamp_ = strdatetime(&datetime);
t->addMoreExplanation(offset, " at date (%s)", meter_timestamp_.c_str());
}
if(findKey(MeasurementType::Unknown, VIFRange::Volume, 0, 0, &key, &t->dv_entries)) {
if(findKey(MeasurementType::Instantaneous, VIFRange::Volume, 0, 0, &key, &t->dv_entries)) {
extractDVdouble(&t->dv_entries, key, &offset, &total_water_consumption_m3_);
t->addMoreExplanation(offset, " total consumption (%f m3)", total_water_consumption_m3_);
}

Wyświetl plik

@ -63,7 +63,7 @@ void MeterWEH_07::processContent(Telegram *t)
int offset;
string key;
if(findKey(MeasurementType::Unknown, VIFRange::Volume, 0, 0, &key, &t->dv_entries)) {
if(findKey(MeasurementType::Instantaneous, VIFRange::Volume, 0, 0, &key, &t->dv_entries)) {
extractDVdouble(&t->dv_entries, key, &offset, &total_water_consumption_m3_);
t->addMoreExplanation(offset, " total consumption (%f m3)", total_water_consumption_m3_);
}

Wyświetl plik

@ -164,29 +164,29 @@ void MeterWhe46x::processContent(Telegram *t)
// This heat cost allocator cannot even be bothered to send the HCA data according
// to the wmbus protocol....Blech..... I suppose the HCA data is hidden
// in the variable string vendor string at the end. Sigh.
if (findKey(MeasurementType::Unknown, VIFRange::HeatCostAllocation, 0, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::HeatCostAllocation, 0, 0, &key, &t->dv_entries)) {
extractDVdouble(&t->dv_entries, key, &offset, &current_consumption_hca_);
t->addMoreExplanation(offset, " current consumption (%f hca)", current_consumption_hca_);
}
if (findKey(MeasurementType::Unknown, VIFRange::Date, 1, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::Date, 1, 0, &key, &t->dv_entries)) {
struct tm date;
extractDVdate(&t->dv_entries, key, &offset, &date);
set_date_ = strdate(&date);
t->addMoreExplanation(offset, " set date (%s)", set_date_.c_str());
}
if (findKey(MeasurementType::Unknown, VIFRange::HeatCostAllocation, 1, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::HeatCostAllocation, 1, 0, &key, &t->dv_entries)) {
extractDVdouble(&t->dv_entries, key, &offset, &consumption_at_set_date_hca_);
t->addMoreExplanation(offset, " consumption at set date (%f hca)", consumption_at_set_date_hca_);
}
if (findKey(MeasurementType::Unknown, VIFRange::HeatCostAllocation, 17, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::HeatCostAllocation, 17, 0, &key, &t->dv_entries)) {
extractDVdouble(&t->dv_entries, key, &offset, &consumption_at_set_date_17_hca_);
t->addMoreExplanation(offset, " consumption at set date 17 (%f hca)", consumption_at_set_date_17_hca_);
}
if (findKey(MeasurementType::Unknown, VIFRange::Date, 17, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::Date, 17, 0, &key, &t->dv_entries)) {
struct tm date;
extractDVdate(&t->dv_entries, key, &offset, &date);
set_date_17_ = strdate(&date);
@ -201,7 +201,7 @@ void MeterWhe46x::processContent(Telegram *t)
t->addMoreExplanation(offset, " error date (%s)", error_date_.c_str());
}
if (findKey(MeasurementType::Unknown, VIFRange::DateTime, 0, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::DateTime, 0, 0, &key, &t->dv_entries)) {
struct tm datetime;
extractDVdate(&t->dv_entries, key, &offset, &datetime);
device_date_time_ = strdatetime(&datetime);

Wyświetl plik

@ -112,24 +112,24 @@ void MeterWhe5x::processContent(Telegram *t)
int offset;
string key;
if (findKey(MeasurementType::Unknown, VIFRange::HeatCostAllocation, 0, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::HeatCostAllocation, 0, 0, &key, &t->dv_entries)) {
extractDVdouble(&t->dv_entries, key, &offset, &current_consumption_hca_);
t->addMoreExplanation(offset, " current consumption (%f hca)", current_consumption_hca_);
}
if (findKey(MeasurementType::Unknown, VIFRange::Date, 1, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::Date, 1, 0, &key, &t->dv_entries)) {
struct tm date;
extractDVdate(&t->dv_entries, key, &offset, &date);
set_date_ = strdate(&date);
t->addMoreExplanation(offset, " set date (%s)", set_date_.c_str());
}
if (findKey(MeasurementType::Unknown, VIFRange::HeatCostAllocation, 1, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::HeatCostAllocation, 1, 0, &key, &t->dv_entries)) {
extractDVdouble(&t->dv_entries, key, &offset, &consumption_at_set_date_hca_);
t->addMoreExplanation(offset, " consumption at set date (%f hca)", consumption_at_set_date_hca_);
}
if (findKey(MeasurementType::Unknown, VIFRange::DateTime, 0, 0, &key, &t->dv_entries)) {
if (findKey(MeasurementType::Instantaneous, VIFRange::DateTime, 0, 0, &key, &t->dv_entries)) {
struct tm datetime;
extractDVdate(&t->dv_entries, key, &offset, &datetime);
device_date_time_ = strdatetime(&datetime);

Wyświetl plik

@ -781,7 +781,7 @@ void MeterCommonImplementation::addPrint(string vname, Quantity vquantity,
defaultUnitForQuantity(vquantity),
NoDifVifKey,
VifScaling::Auto,
MeasurementType::Unknown,
MeasurementType::Instantaneous,
VIFRange::None,
AnyStorageNr,
AnyTariffNr,
@ -809,7 +809,7 @@ void MeterCommonImplementation::addPrint(string vname, Quantity vquantity, Unit
unit,
NoDifVifKey,
VifScaling::Auto,
MeasurementType::Unknown,
MeasurementType::Instantaneous,
VIFRange::None,
AnyStorageNr,
AnyTariffNr,
@ -835,7 +835,7 @@ void MeterCommonImplementation::addPrint(string vname, Quantity vquantity,
defaultUnitForQuantity(vquantity),
NoDifVifKey,
VifScaling::Auto,
MeasurementType::Unknown,
MeasurementType::Instantaneous,
VIFRange::None,
AnyStorageNr,
AnyTariffNr,
@ -910,7 +910,7 @@ void MeterCommonImplementation::addNumericField(
defaultUnitForQuantity(vquantity),
DifVifKey(""),
VifScaling::None,
MeasurementType::Unknown,
MeasurementType::Instantaneous,
VIFRange::Volume,
StorageNr(0),
TariffNr(0),

Wyświetl plik

@ -83,7 +83,7 @@ protected:
#define SET_FUNC(varname,to_unit) {[=](Unit from_unit, double d){varname = convert(d, from_unit, to_unit);}}
#define GET_FUNC(varname,from_unit) {[=](Unit to_unit){return convert(varname, from_unit, to_unit);}}
#define LOOKUP_FIELD(DVKEY) NoDifVifKey,VifScaling::Auto,MeasurementType::Unknown,VIFRange::Any,AnyStorageNr,AnyTariffNr,IndexNr(1)
#define LOOKUP_FIELD(DVKEY) NoDifVifKey,VifScaling::Auto,MeasurementType::Instantaneous,VIFRange::Any,AnyStorageNr,AnyTariffNr,IndexNr(1)
#define FIND_FIELD(TYPE,INFO) NoDifVifKey,VifScaling::Auto,TYPE,INFO,StorageNr(0),TariffNr(0),IndexNr(1)
#define FIND_FIELD_S(TYPE,INFO,STORAGE) NoDifVifKey,VifScaling::Auto,TYPE,INFO,STORAGE,TariffNr(0),IndexNr(1)
#define FIND_FIELD_ST(TYPE,INFO,STORAGE,TARIFF) NoDifVifKey,VifScaling::Auto,,TYPE,INFO,STORAGE,TARIFF,IndexNr(1)

Wyświetl plik

@ -3863,7 +3863,6 @@ string measurementTypeName(MeasurementType mt)
case MeasurementType::Maximum: return "maximum";
case MeasurementType::Minimum: return "minimum";
case MeasurementType::AtError: return "aterror";
case MeasurementType::Unknown: return "unknown";
}
assert(0);
}