Fix endian DGUS WriteVariable (#18703)

This commit is contained in:
yufanyufan
2020-07-19 15:34:36 -07:00
committed by GitHub
parent 12ebb71155
commit 1c94033f7c
4 changed files with 33 additions and 27 deletions

View File

@@ -184,15 +184,7 @@ public:
if (var.memadr) {
float f = *(float *)var.memadr;
f *= cpow(10, decimals);
union { long l; char lb[4]; } endian;
char tmp[4];
endian.l = f;
tmp[0] = endian.lb[3];
tmp[1] = endian.lb[2];
tmp[2] = endian.lb[1];
tmp[3] = endian.lb[0];
dgusdisplay.WriteVariable(var.VP, tmp, 4);
dgusdisplay.WriteVariable(var.VP, (long)f);
}
}
@@ -205,13 +197,7 @@ public:
float f = *(float *)var.memadr;
DEBUG_ECHOLNPAIR_F(" >> ", f, 6);
f *= cpow(10, decimals);
union { int16_t i; char lb[2]; } endian;
char tmp[2];
endian.i = f;
tmp[0] = endian.lb[1];
tmp[1] = endian.lb[0];
dgusdisplay.WriteVariable(var.VP, tmp, 2);
dgusdisplay.WriteVariable(var.VP, (int16_t)f);
}
}