serialize method

List<int> serialize()

Implementation

List<int> serialize() {
  int frameLen = 128 + data.length;
  Uint8List result = Uint8List(frameLen);
  result.fillRange(0, frameLen, 0);

  result.buffer.asUint32List(0)[0] = frameLen;
  result.buffer.asUint32List(4)[0] = 0; // CRC32
  result[8] = frameType;

  result.buffer.asUint64List(16)[0] = transactionId;
  result.buffer.asUint64List(24)[0] = sessionId;
  result.buffer.asUint32List(32)[0] = offset;
  result.buffer.asUint32List(36)[0] = totalSize;

  var srcAddressBS =
      base32.decode(srcAddress.replaceAll("#", "").toUpperCase());
  var destAddressBS =
      base32.decode(destAddress.replaceAll("#", "").toUpperCase());

  copyBytes(result, 40, srcAddressBS);
  copyBytes(result, 70, destAddressBS);
  copyBytes(result, 128, data);

  return result;
}