/// <summary> /// Starts the SPI data transfer. /// </summary> /// <param name="transferBuffers">The transfer buffers that contain data to be send and/or the received data.</param> /// <returns>An <see cref="int"/> that contains the result of the transfer operation.</returns> public int Transfer(ISpiTransferBufferCollection transferBuffers) { if (transferBuffers == null) { throw new ArgumentNullException("transferBuffers"); } var request = Interop.Interop.GetSpiMessageRequest(transferBuffers.Length); var structures = transferBuffers .Select(buf => buf.ControlStructure) .ToArray(); var result = deviceFile.Control(request, structures); result.ThrowOnPInvokeError <SendSpiMessageException>("Can't send SPI messages. Error {1}: {2}"); return(result); }
/// <summary> /// Starts the SPI data transfer. /// </summary> /// <param name="transferBuffers">The transfer buffers that contain data to be send and/or the received data.</param> /// <returns>An <see cref="int"/> that contains the result of the transfer operation.</returns> public int Transfer(ISpiTransferBufferCollection transferBuffers) { if (transferBuffers == null) { throw new ArgumentNullException("transferBuffers"); } var request = Interop.GetSpiMessageRequest(transferBuffers.Length); var structures = transferBuffers .Select(buf => buf.ControlStructure) .ToArray(); var result = deviceFile.Control(request, structures); result.ThrowOnPInvokeError<SendSpiMessageException>("Can't send SPI messages. Error {1}: {2}"); return result; }