Fixed output format of secondary address (always 16 digits, leading

zeros)
This commit is contained in:
Stefan Wahren 2012-05-15 23:06:14 +02:00
parent 8e56943fc8
commit f7c644bee6

View File

@ -3496,6 +3496,7 @@ mbus_frame_get_secondary_address(mbus_frame *frame)
{ {
static char addr[32]; static char addr[32];
mbus_frame_data *data; mbus_frame_data *data;
long id;
if (frame == NULL || (data = mbus_frame_data_new()) == NULL) if (frame == NULL || (data = mbus_frame_data_new()) == NULL)
{ {
@ -3514,8 +3515,10 @@ mbus_frame_get_secondary_address(mbus_frame *frame)
return NULL; return NULL;
} }
snprintf(addr, sizeof(addr), "%.6d%.2X%.2X%.2X%.2X", id = (long) mbus_data_bcd_decode(data->data_var.header.id_bcd, 4);
(int)mbus_data_bcd_decode(data->data_var.header.id_bcd, 4),
snprintf(addr, sizeof(addr), "%08lu%02X%02X%02X%02X",
id,
data->data_var.header.manufacturer[0], data->data_var.header.manufacturer[0],
data->data_var.header.manufacturer[1], data->data_var.header.manufacturer[1],
data->data_var.header.version, data->data_var.header.version,