invokeBroadcast method

Future<ArtemisAcpsAeaResponse> invokeBroadcast(
  1. ArtemisAcpsBroadcastData data, {
  2. String? overrideTransactionID,
})

Implementation

Future<ArtemisAcpsAeaResponse> invokeBroadcast(ArtemisAcpsBroadcastData data, {String? overrideTransactionID}) async {
  String transactionID = overrideTransactionID ?? generateTransactionID();
  data = data.copyWith(deviceId: devId!, transactionId: transactionID, messageType: "BARCODE");

  log("invoking\n${data.toJson()} TrID:$transactionID ${data.message}");
  inProgressAeaActions.putIfAbsent(transactionID, () => data);
  final completer = Completer<ArtemisAcpsAeaResponse>();
  _pendingAeaResponses[transactionID] = completer;

  _hubConnection.invoke("VirtualDeviceResponse", args: [data]);

  return completer.future.timeout(
    const Duration(seconds: 10),
    onTimeout: () {
      throw TimeoutException("Operation timed out after 10 Seconds");
    },
  );
}