lis 3 basic test code

This commit is contained in:
2021-02-24 00:24:14 +01:00
parent 93aafb4344
commit 6b982ce5cd
7 changed files with 101 additions and 25 deletions

View File

@ -6,6 +6,7 @@
#include <fsfw/ipc/MutexFactory.h>
#include <fsfw/ipc/MutexHelper.h>
#include <fsfw/globalfunctions/arrayprinter.h>
#include <linux/spi/spidev.h>
#include <fcntl.h>
@ -170,6 +171,23 @@ ReturnValue_t SpiComIF::sendMessage(CookieIF *cookie, const uint8_t *sendData, s
}
bool fullDuplex = spiCookie->isFullDuplex();
if(fullDuplex) {
uint8_t* readBuf = nullptr;
ReturnValue_t result = getReadBuffer(spiCookie->getSpiAddress(), &readBuf);
if (result != HasReturnvaluesIF::RETURN_OK) {
#if FSFW_VERBOSE_LEVEL >= 1
#if FSFW_CPP_OSTREAM_ENABLED == 1
sif::warning << "SpiComIF::sendMessage: Could not get read buffer!" <<
std::endl;
#else
sif::printWarning("SpiComIF::sendMessage: Could not get read buffer!\n");
#endif /* FSFW_CPP_OSTREAM_ENABLED == 1 */
#endif /* FSFW_VERBOSE_LEVEL >= 1 */
return result;
}
spiCookie->assignReadBuffer(readBuf);
}
int retval = 0;
gpioId_t gpioId = spiCookie->getChipSelectPin();
@ -182,7 +200,7 @@ ReturnValue_t SpiComIF::sendMessage(CookieIF *cookie, const uint8_t *sendData, s
if(fullDuplex) {
/* Initiate a full duplex SPI transfer. */
retval = ioctl(fileDescriptor, SPI_IOC_MESSAGE(1), spiCookie->getTransferStructHandle());
if(retval != 0) {
if(retval < 0) {
utility::handleIoctlError("SpiComIF::sendMessage: ioctl error.");
result = FULL_DUPLEX_TRANSFER_FAILED;
}