decode method
Decode raw bytes to value based on data type.
Implementation
dynamic decode(Uint8List bytes) {
dynamic value;
switch (dataType) {
case DataType.uint16:
value = DataConverter.bytesToUint16(bytes)[0];
break;
case DataType.int16:
value = DataConverter.bytesToInt16(bytes)[0];
break;
case DataType.uint32:
value = DataConverter.bytesToUint32(bytes, byteOrder: byteOrder);
break;
case DataType.int32:
value = DataConverter.bytesToInt32(bytes, byteOrder: byteOrder);
break;
case DataType.float32:
value = DataConverter.bytesToFloat32(bytes, byteOrder: byteOrder);
break;
case DataType.float64:
value = DataConverter.bytesToFloat64(bytes, byteOrder: byteOrder);
break;
case DataType.bool:
value = DataConverter.getBit(bytes, 0);
break;
case DataType.string:
value = DataConverter.bytesToString(bytes);
break;
}
// Apply scaling
if (value is num && (multiplier != null || offset != null)) {
value = value * (multiplier ?? 1.0) + (offset ?? 0.0);
}
return value;
}