将带dart的16位寄存器转换为float
Convert 16bits register with dart to float
我必须做这个转换:
// 2 Modbus 寄存器浮点数 32
[21946, 17562]需要变成float 32bit -> 1234,6789
// 4个Modbus寄存器加倍
[50437, 12687, 19127, 16531]需要变成双 -> 1234,67890000
有什么帮助吗?
谢谢!
这是一些灵感。 Dart 没有 float
类型,所以 getFloat32
会 return 一个 double
.
import 'dart:typed_data';
void main() {
final float32Data = ByteData(4)
..setUint16(0, 17562)
..setUint16(2, 21946);
print(float32Data.getFloat32(0)); // 1234.678955078125
final doubleData = ByteData(8)
..setUint16(0, 16531)
..setUint16(2, 19127)
..setUint16(4, 12687)
..setUint16(6, 50437);
print(doubleData.getFloat64(0)); // 1234.6789
}
我必须做这个转换:
// 2 Modbus 寄存器浮点数 32
[21946, 17562]需要变成float 32bit -> 1234,6789
// 4个Modbus寄存器加倍
[50437, 12687, 19127, 16531]需要变成双 -> 1234,67890000
有什么帮助吗?
谢谢!
这是一些灵感。 Dart 没有 float
类型,所以 getFloat32
会 return 一个 double
.
import 'dart:typed_data';
void main() {
final float32Data = ByteData(4)
..setUint16(0, 17562)
..setUint16(2, 21946);
print(float32Data.getFloat32(0)); // 1234.678955078125
final doubleData = ByteData(8)
..setUint16(0, 16531)
..setUint16(2, 19127)
..setUint16(4, 12687)
..setUint16(6, 50437);
print(doubleData.getFloat64(0)); // 1234.6789
}