transferBulkToHubMulti method

Future<bool> transferBulkToHubMulti({
  1. required TransferType txType,
  2. required int txSubType,
  3. required String destination,
  4. required List<int> payload,
  5. bool resetBeforeSetup = true,
  6. int? chunkSize,
  7. int maxConsecutiveFailures = 10,
  8. int maxPacketsInFlight = 1,
  9. bool shouldCancel()?,
})

Implementation

Future<bool> transferBulkToHubMulti({
  required TransferType txType,
  required int txSubType,
  required String destination,
  required List<int> payload,
  bool resetBeforeSetup = true,
  int? chunkSize,
  int maxConsecutiveFailures = 10,
  int maxPacketsInFlight = 1,
  bool Function()? shouldCancel,
}) async {
  if (!isConnected || connectedDeviceId == null) {
    return false;
  }

  final payloadCrc32 = _crc32(payload);

  if (resetBeforeSetup) {
    final resetOk = await bulkReset();
    if (!resetOk) {
      return false;
    }
  }

  final setup = await setupBulkTransferMulti(
    txType: txType,
    txSubType: txSubType,
    destination: destination,
    totalSizeBytes: payload.length,
    toHub: true,
    payloadCrc32: payloadCrc32,
  );

  if (setup == null) {
    return false;
  }

  return _transferBulkPayloadToHub(
    payload: payload,
    txTypeForWrite: txType,
    chunkSize: chunkSize,
    maxConsecutiveFailures: maxConsecutiveFailures,
    maxPacketsInFlight: maxPacketsInFlight,
    shouldCancel: shouldCancel,
  );
}