Do not reverse unismart version string.

pull/348/head
Fredrik Öhrström 2021-09-26 10:18:36 +02:00
rodzic 14290ba7b1
commit 2c0accb6ad
2 zmienionych plików z 6 dodań i 7 usunięć

Wyświetl plik

@ -273,5 +273,5 @@ telegram=76442104710007612507727100076121042507B5006005E2E95A3C2A1279A5415E67326
# Test Unismart Gas Meter
telegram=|6044B8059430040001037A1D005085E2B670BCF1A5C87E0C1A51DA18924EF984613DA2A9CD39D8F4C7208326C76D42DBEADF80D574192B71BD7C4F56A7F1513151768A9DB804883B28CB085CA2D0F7438C361CB9E2734712ED9BFBB2A14EF55208|
{"media":"gas","meter":"unismart","name":"GasMeter","id":"00043094","fabrication_no":"3162296","total_date_time":"2021-09-15 13:18","total_m3":917,"target_date_time":"2021-09-01 06:00","target_m3":911.32,"version":"4GGU","device_date_time":"2021-09-15 13:18","suppler_info":"00","status":"F00C","parameter_set":"02","status2":"14","timestamp":"1111-11-11T11:11:11Z"}
{"media":"gas","meter":"unismart","name":"GasMeter","id":"00043094","fabrication_no":"3162296","total_date_time":"2021-09-15 13:18","total_m3":917,"target_date_time":"2021-09-01 06:00","target_m3":911.32,"version":"UGG4","device_date_time":"2021-09-15 13:18","suppler_info":"00","status":"F00C","parameter_set":"02","other_int":20,"timestamp":"1111-11-11T11:11:11Z"}
|GasMeter;00043094;917.000000;911.320000;1111-11-11 11:11.11

Wyświetl plik

@ -49,7 +49,7 @@ private:
string supplier_info_;
string status_;
string parameter_set_;
string status2_;
uint8_t other_;
};
shared_ptr<GasMeter> createUnismart(MeterInfo &mi)
@ -114,8 +114,8 @@ MeterUnismart::MeterUnismart(MeterInfo &mi) :
"?",
false, true);
addPrint("status2", Quantity::Text,
[&](){ return status2_; },
addPrint("other", Quantity::Counter,
[&](Unit u){ return other_; },
"?",
false, true);
@ -219,7 +219,6 @@ void MeterUnismart::processContent(Telegram *t)
{
vector<uchar> bin;
hex2bin(tmp, &bin);
std::reverse(bin.begin(), bin.end());
version_ = safeString(bin);
trimWhitespace(&version_);
t->addMoreExplanation(offset, " version (%s)", version_.c_str());
@ -247,9 +246,9 @@ void MeterUnismart::processContent(Telegram *t)
t->addMoreExplanation(offset, " parameter set (%s)", parameter_set_.c_str());
}
if (extractDVstring(&t->values, "017F", &offset, &status2_))
if (extractDVuint8(&t->values, "017F", &offset, &other_))
{
t->addMoreExplanation(offset, " status2 (%s)", status2_.c_str());
t->addMoreExplanation(offset, " status2 (%d)", other_);
}
}