From f7c644bee6d8d361f1610685c81c48b0eee57552 Mon Sep 17 00:00:00 2001 From: Stefan Wahren Date: Tue, 15 May 2012 23:06:14 +0200 Subject: [PATCH] Fixed output format of secondary address (always 16 digits, leading zeros) --- mbus/mbus-protocol.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/mbus/mbus-protocol.c b/mbus/mbus-protocol.c index 9fd9bd0..8a717b4 100644 --- a/mbus/mbus-protocol.c +++ b/mbus/mbus-protocol.c @@ -3496,6 +3496,7 @@ mbus_frame_get_secondary_address(mbus_frame *frame) { static char addr[32]; mbus_frame_data *data; + long id; if (frame == NULL || (data = mbus_frame_data_new()) == NULL) { @@ -3514,8 +3515,10 @@ mbus_frame_get_secondary_address(mbus_frame *frame) return NULL; } - snprintf(addr, sizeof(addr), "%.6d%.2X%.2X%.2X%.2X", - (int)mbus_data_bcd_decode(data->data_var.header.id_bcd, 4), + id = (long) 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[1], data->data_var.header.version,