decode method

dynamic decode(
  1. Uint8List bytes
)

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;
}