transmit method
Implementation
@override
Tuple2<SCardResult, List<int>> transmit(int hCard, int pioSendPci, List<int> pbSendBuffer) {
final sendBuffer = _allocateNativeBytes(pbSendBuffer);
final recvBuffer = calloc<BYTE>(MAX_BUFFER_SIZE);
final bytesReturned = calloc<DWORD>();
bytesReturned.value = MAX_BUFFER_SIZE;
try {
//Call the native function
var response = _winscard.SCardTransmit(hCard, _getPciProtocol(pioSendPci), sendBuffer, pbSendBuffer.length, _nullptr.cast(), recvBuffer, bytesReturned);
var result = SCardResult(response);
//Check if the call was successful
if( !result.isSuccess ) {
return Tuple2(result, []);
}
//Create a list of bytes
List<int> byteList = _convertNativeBytes(recvBuffer, bytesReturned.value);
//Return the result
return Tuple2(result, byteList);
}
finally {
//Free the buffers
calloc.free(sendBuffer);
calloc.free(recvBuffer);
calloc.free(bytesReturned);
}
}