parse floats instead of ints

fixes #119
main
Joost Wooning 2022-03-10 12:08:06 +01:00
parent 7ee1cff25f
commit b70a94797b
2 changed files with 6 additions and 2 deletions

View File

@ -564,7 +564,11 @@ export default class DBC {
if (signalSpec.size > 32) {
ret = signalSpec.isSigned ? BigInt.asIntN(64, ret) : ret;
return ret * BigInt(signalSpec.factor) + BigInt(signalSpec.offset);
if (Number.isInteger(signalSpec.factor)) {
return ret * BigInt(signalSpec.factor) + BigInt(signalSpec.offset);
} else {
return parseFloat(ret) * signalSpec.factor + signalSpec.offset;
}
} else {
if (signalSpec.isSigned) {
ret -= ((ret >> (signalSpec.size-1)) & 1) ? (1 << signalSpec.size) : 0;

View File

@ -51,7 +51,7 @@ function _calcGraphData(msg, signalUid, firstCanTime) {
return {
x: entry.time,
relTime: entry.relTime,
y: parseInt(entry.signals[signal.name]),
y: parseFloat(entry.signals[signal.name]),
unit: signal.unit,
color: `rgba(${colors.join(',')}, 0.5)`,
signalName: signal.name,