Solved: ModbusBridge reading int16 returns uint16 (#18524)

https://github.com/arendst/Tasmota/issues/18522

Co-authored-by: JeroenSt <nospam@nospam.org>
This commit is contained in:
Jeroen 2023-04-26 22:27:53 +02:00 committed by GitHub
parent 4c685967e6
commit ee9d086aba
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 3 additions and 3 deletions

View File

@ -485,7 +485,7 @@ void ModbusBridgeHandle(void)
((uint8_t *)&value)[0] = modbusBridge.buffer[dataOffset + 3 + (count * 4)];
}
if (modbusBridge.type == ModbusBridgeType::mb_int32)
snprintf(svalue, MBR_MAX_VALUE_LENGTH, "%d", value);
snprintf(svalue, MBR_MAX_VALUE_LENGTH, "%d", (int32_t)value);
else
snprintf(svalue, MBR_MAX_VALUE_LENGTH, "%u", value);
}
@ -506,7 +506,7 @@ void ModbusBridgeHandle(void)
((uint8_t *)&value)[0] = modbusBridge.buffer[dataOffset + 1 + (count * 2)];
}
if (modbusBridge.type == ModbusBridgeType::mb_int16)
snprintf(svalue, MBR_MAX_VALUE_LENGTH, "%d", value);
snprintf(svalue, MBR_MAX_VALUE_LENGTH, "%d", (int16_t)value);
else
snprintf(svalue, MBR_MAX_VALUE_LENGTH, "%u", value);
}
@ -515,7 +515,7 @@ void ModbusBridgeHandle(void)
{
uint8_t value = modbusBridge.buffer[dataOffset + (count * 1)];
if (modbusBridge.type == ModbusBridgeType::mb_int8)
snprintf(svalue, MBR_MAX_VALUE_LENGTH, "%d", value);
snprintf(svalue, MBR_MAX_VALUE_LENGTH, "%d", (int8_t)value);
else
snprintf(svalue, MBR_MAX_VALUE_LENGTH, "%u", value);
}