Extend XML output with storage number, tariff and device

This commit is contained in:
Stefan Wahren
2013-11-07 00:32:01 +01:00
parent e1ca652bf0
commit 0d9f83ba88
2 changed files with 29 additions and 0 deletions

View File

@ -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, " <Function>%s</Function>\n", str_encoded);
len += snprintf(&buff[len], buff_size - len, " <StorageNumber>%ld</StorageNumber>\n", norm_record->storage_number);
if (norm_record->tariff >= 0)
{
len += snprintf(&buff[len], buff_size - len, " <Tariff>%ld</Tariff>\n", norm_record->tariff);
len += snprintf(&buff[len], buff_size - len, " <Device>%d</Device>\n", norm_record->device);
}
mbus_str_xml_encode(str_encoded, norm_record->unit, sizeof(str_encoded));

View File

@ -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,
" <Function>%s</Function>\n", str_encoded);
len += snprintf(&buff[len], sizeof(buff) - len,
" <StorageNumber>%ld</StorageNumber>\n",
mbus_data_record_storage_number(record));
if ((tariff = mbus_data_record_tariff(record)) >= 0)
{
len += snprintf(&buff[len], sizeof(buff) - len, " <Tariff>%ld</Tariff>\n",
tariff);
len += snprintf(&buff[len], sizeof(buff) - len, " <Device>%d</Device>\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,