bytesToFloat32 static method
Convert bytes to 32-bit float (Float32/Single).
Parameters:
bytes: 4 bytes in big-endian formatbyteOrder: Word order (default: ByteOrder.bigEndian)
Returns: 32-bit floating point number
Example:
final bytes = await client.readHoldingRegistersBytes(1, 100, 2);
final temperature = DataConverter.bytesToFloat32(bytes);
print('Temperature: $temperature °C');
Implementation
static double bytesToFloat32(Uint8List bytes, {ByteOrder byteOrder = ByteOrder.bigEndian}) {
if (bytes.length < 4) {
throw ArgumentError('Requires at least 4 bytes for Float32');
}
final data = ByteData.sublistView(bytes);
if (byteOrder == ByteOrder.bigEndian) {
return data.getFloat32(0, Endian.big);
} else {
final high = data.getUint16(2, Endian.big);
final low = data.getUint16(0, Endian.big);
final result = ByteData(4);
result.setUint16(0, high, Endian.big);
result.setUint16(2, low, Endian.big);
return result.getFloat32(0, Endian.big);
}
}