mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-24 11:16:34 +00:00
Fix for aligment at displayfloat command (#18601)
* Fix for wrong aligment at displayfloat command * Added alignment parameter to prevent regression --------- Co-authored-by: JeroenSt <nospam@nospam.org>
This commit is contained in:
parent
cdc6ba7c96
commit
6cb92ffe49
@ -83,14 +83,14 @@
|
||||
|
||||
|
||||
|
||||
DisplayFloat num [,position {0-(Settings->display_width-1)} [,precision {0-Settings->display_width} [,length {1 to Settings->display_width}]]]
|
||||
DisplayFloat num [,position {0-(Settings->display_width-1)} [,precision {0-Settings->display_width} [,length {1 to Settings->display_width} [,alignment {0=left 1=right}]]]]
|
||||
|
||||
Clears and then displays float (with decimal point) command e.g., "DisplayFloat 12.34"
|
||||
See function description below for more details.
|
||||
|
||||
|
||||
|
||||
DisplayFloatNC num [,position {0-(Settings->display_width-1)} [,precision {0-Settings->display_width} [,length {1 to Settings->display_width}]]]
|
||||
DisplayFloatNC num [,position {0-(Settings->display_width-1)} [,precision {0-Settings->display_width} [,length {1 to Settings->display_width} [,alignment {0=left 1=right}]]]]
|
||||
|
||||
Displays float (with decimal point) as above, but without clearing first. command e.g., "DisplayFloatNC 12.34"
|
||||
See function description below for more details.
|
||||
@ -431,14 +431,18 @@ bool CmndTM1637Float(bool clear)
|
||||
char sPrecision[CMD_MAX_LEN];
|
||||
char sPosition[CMD_MAX_LEN];
|
||||
char sLength[CMD_MAX_LEN];
|
||||
char sAlignment[CMD_MAX_LEN];
|
||||
uint8_t length = 0;
|
||||
uint8_t precision = Settings->display_width;
|
||||
uint8_t position = 0;
|
||||
|
||||
uint8_t alignment = 0;
|
||||
float fnum = 0.0f;
|
||||
|
||||
switch (ArgC())
|
||||
{
|
||||
case 5:
|
||||
subStr(sAlignment, XdrvMailbox.data, ",", 5);
|
||||
alignment = atoi(sAlignment);
|
||||
case 4:
|
||||
subStr(sLength, XdrvMailbox.data, ",", 4);
|
||||
length = atoi(sLength);
|
||||
@ -469,6 +473,14 @@ bool CmndTM1637Float(bool clear)
|
||||
if ((length <= 0) || (length > Settings->display_width))
|
||||
length = Settings->display_width;
|
||||
|
||||
// Add leading spaces before value if txt is shorter than length
|
||||
if ((alignment == 1) && (strlen(txt) < length + 1))
|
||||
{
|
||||
char tmptxt[30];
|
||||
ext_snprintf_P(tmptxt, sizeof(tmptxt), "%*s%s", strlen(txt)-(length+1), "", txt);
|
||||
strcpy (txt, tmptxt);
|
||||
}
|
||||
|
||||
AddLog(LOG_LEVEL_DEBUG, PSTR("TM7: num %4_f, prec %d, len %d"), &fnum, precision, length);
|
||||
|
||||
if (TM1637 == TM1637Data.display_type)
|
||||
|
Loading…
x
Reference in New Issue
Block a user