transferBufferWord method
MraaReturnCode
transferBufferWord(
- MraaSpiContext dev,
- MraaSpiTransferBuffer<
Uint16List> buffer, - int length
Transfer buffer word - mraa_spi_transfer_buf_word
Transfer a buffer of words to the SPI device. Both send and receive
buffers are passed in using the buffer
parameter.
Maximum length 4096 both ways
Implementation
MraaReturnCode transferBufferWord(MraaSpiContext dev,
MraaSpiTransferBuffer<Uint16List> buffer, int length) {
final ptr = ffi.calloc.allocate<Uint16>(length);
final ptrData = ptr.asTypedList(length);
ptrData.setAll(0, buffer.dataSent);
final retData = ffi.calloc.allocate<Uint16>(length);
final status = MraaReturnCode.returnCode(
_impl.mraa_spi_transfer_buf_word(dev, ptr, retData, length));
final retDataList = retData.asTypedList(length);
if (status != MraaReturnCode.success) {
ffi.calloc.free(retData);
return status;
}
if (retData == nullptr) {
buffer.dataReceived = Uint16List(0);
ffi.calloc.free(retData);
return status;
}
buffer.dataReceived = Uint16List(length);
buffer.dataReceived.setAll(0, retDataList);
return status;
}