encode method

Uint8List encode(
  1. dynamic value
)

Encode value to bytes based on data type.

Implementation

Uint8List encode(dynamic value) {
  // Remove scaling
  if (value is num && (multiplier != null || offset != null)) {
    value = (value - (offset ?? 0.0)) / (multiplier ?? 1.0);
  }

  switch (dataType) {
    case DataType.uint16:
      return DataConverter.uint16ToBytes([value as int]);
      break;
    case DataType.int16:
      return DataConverter.int16ToBytes([value as int]);
      break;
    case DataType.uint32:
      return DataConverter.uint32ToBytes(value as int, byteOrder: byteOrder);
      break;
    case DataType.int32:
      return DataConverter.int32ToBytes(value as int, byteOrder: byteOrder);
      break;
    case DataType.float32:
      return DataConverter.float32ToBytes(value as double, byteOrder: byteOrder);
      break;
    case DataType.float64:
      return DataConverter.float64ToBytes(value as double, byteOrder: byteOrder);
      break;
    case DataType.bool:
      final bytes = Uint8List(1);
      DataConverter.setBit(bytes, 0, value as bool);
      return bytes;
      break;
    case DataType.string:
      return DataConverter.stringToBytes(value as String, length: registerCount * 2);
      break;
  }
}