sys/phydat: improvements of formatting in dump

This commit is contained in:
Gunar Schorcht 2020-02-28 15:27:42 +01:00
parent db04bc1af4
commit 1eabcb9566

View File

@ -73,19 +73,23 @@ void phydat_dump(phydat_t *data, uint8_t dim)
printf(" "); printf(" ");
} }
if (scale_prefix) { if (scale_prefix) {
printf("%6d %c", (int)data->val[i], scale_prefix); printf("%11d %c", (int)data->val[i], scale_prefix);
} }
else if (data->scale == 0) { else if (data->scale == 0) {
printf("%6d", (int)data->val[i]); printf("%11d ", (int)data->val[i]);
} }
else if ((data->scale > -5) && (data->scale < 0)) { else if ((data->scale > -6) && (data->scale < 0)) {
char num[8]; char num[9];
size_t len = fmt_s16_dfp(num, data->val[i], data->scale); size_t len = fmt_s16_dfp(num, data->val[i], data->scale);
assert(len < 9);
num[len] = '\0'; num[len] = '\0';
printf("%s", num); printf("%11s ", num);
} }
else { else {
printf("%iE%i", (int)data->val[i], (int)data->scale); char num[12];
snprintf(num, sizeof(num), "%ie%i",
(int)data->val[i], (int)data->scale);
printf("%11s ", num);
} }
printf("%s\n", phydat_unit_to_str(data->unit)); printf("%s\n", phydat_unit_to_str(data->unit));