diff --git a/mbus/mbus-protocol-aux.c b/mbus/mbus-protocol-aux.c
index a2ff793..32e775f 100755
--- a/mbus/mbus-protocol-aux.c
+++ b/mbus/mbus-protocol-aux.c
@@ -1156,6 +1156,9 @@ mbus_record_new()
record->unit = NULL;
record->function_medium = NULL;
record->quantity = NULL;
+ record->device = -1;
+ record->tariff = -1;
+ record->storage_number = 0;
return record;
}
@@ -1257,6 +1260,10 @@ mbus_parse_variable_record(mbus_data_record *data)
MBUS_ERROR("%s: memory allocation error\n", __PRETTY_FUNCTION__);
return NULL;
}
+
+ record->storage_number = mbus_data_record_storage_number(data);
+ record->tariff = mbus_data_record_tariff(data);
+ record->device = mbus_data_record_device(data);
if ((data->drh.dib.dif == MBUS_DIB_DIF_MANUFACTURER_SPECIFIC) ||
(data->drh.dib.dif == MBUS_DIB_DIF_MORE_RECORDS_FOLLOW)) /* MBUS_DIB_DIF_VENDOR_SPECIFIC */
@@ -1395,6 +1402,14 @@ mbus_data_variable_xml_normalized(mbus_data_variable *data)
{
mbus_str_xml_encode(str_encoded, norm_record->function_medium, sizeof(str_encoded));
len += snprintf(&buff[len], buff_size - len, " %s\n", str_encoded);
+
+ len += snprintf(&buff[len], buff_size - len, " %ld\n", norm_record->storage_number);
+
+ if (norm_record->tariff >= 0)
+ {
+ len += snprintf(&buff[len], buff_size - len, " %ld\n", norm_record->tariff);
+ len += snprintf(&buff[len], buff_size - len, " %d\n", norm_record->device);
+ }
mbus_str_xml_encode(str_encoded, norm_record->unit, sizeof(str_encoded));
diff --git a/mbus/mbus-protocol.c b/mbus/mbus-protocol.c
index 93ec8b1..27b0354 100755
--- a/mbus/mbus-protocol.c
+++ b/mbus/mbus-protocol.c
@@ -3657,6 +3657,7 @@ mbus_data_variable_record_xml(mbus_data_record *record, int record_cnt, int fram
size_t len = 0;
struct tm * timeinfo;
char timestamp[21];
+ long tariff;
if (record)
{
@@ -3687,6 +3688,19 @@ mbus_data_variable_record_xml(mbus_data_record *record, int record_cnt, int fram
mbus_str_xml_encode(str_encoded, mbus_data_record_function(record), sizeof(str_encoded));
len += snprintf(&buff[len], sizeof(buff) - len,
" %s\n", str_encoded);
+
+ len += snprintf(&buff[len], sizeof(buff) - len,
+ " %ld\n",
+ mbus_data_record_storage_number(record));
+
+
+ if ((tariff = mbus_data_record_tariff(record)) >= 0)
+ {
+ len += snprintf(&buff[len], sizeof(buff) - len, " %ld\n",
+ tariff);
+ len += snprintf(&buff[len], sizeof(buff) - len, " %d\n",
+ mbus_data_record_device(record));
+ }
mbus_str_xml_encode(str_encoded, mbus_data_record_unit(record), sizeof(str_encoded));
len += snprintf(&buff[len], sizeof(buff) - len,