Private
Public Access
2
0

spi: return int instead of uint8_t in mraa_spi_write

This stops the error code getting lost since -1 wraps around to 0xFF when cast
to a uint8_t. This fixes #146

Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
This commit is contained in:
Brendan Le Foll
2015-03-03 16:20:29 +00:00
parent 7375146295
commit f854a2b410
3 changed files with 7 additions and 7 deletions

View File

@@ -102,9 +102,9 @@ mraa_result_t mraa_spi_frequency(mraa_spi_context dev, int hz);
* *
* @param dev The Spi context * @param dev The Spi context
* @param data Data to send * @param data Data to send
* @return Data received on the miso line * @return Data received on the miso line or -1 in case of error
*/ */
uint8_t mraa_spi_write(mraa_spi_context dev, uint8_t data); int mraa_spi_write(mraa_spi_context dev, uint8_t data);
/** /**
*Write Two Bytes to the SPI device. *Write Two Bytes to the SPI device.

View File

@@ -93,9 +93,9 @@ class Spi {
* Write single byte to the SPI device * Write single byte to the SPI device
* *
* @param data the byte to send * @param data the byte to send
* @return data received on the miso line * @return data received on the miso line or -1 in case of error
*/ */
uint8_t writeByte(uint8_t data) { int writeByte(uint8_t data) {
return mraa_spi_write(m_spi, (uint8_t) data); return mraa_spi_write(m_spi, (uint8_t) data);
} }

View File

@@ -234,7 +234,7 @@ mraa_spi_bit_per_word(mraa_spi_context dev, unsigned int bits)
return MRAA_SUCCESS; return MRAA_SUCCESS;
} }
uint8_t int
mraa_spi_write(mraa_spi_context dev, uint8_t data) mraa_spi_write(mraa_spi_context dev, uint8_t data)
{ {
struct spi_ioc_transfer msg; struct spi_ioc_transfer msg;
@@ -242,7 +242,7 @@ mraa_spi_write(mraa_spi_context dev, uint8_t data)
uint16_t length = 1; uint16_t length = 1;
uint8_t recv = 0; unsigned long recv = 0;
msg.tx_buf = (unsigned long) &data; msg.tx_buf = (unsigned long) &data;
msg.rx_buf = (unsigned long) &recv; msg.rx_buf = (unsigned long) &recv;
msg.speed_hz = dev->clock; msg.speed_hz = dev->clock;
@@ -253,7 +253,7 @@ mraa_spi_write(mraa_spi_context dev, uint8_t data)
syslog(LOG_ERR, "spi: Failed to perform dev transfer"); syslog(LOG_ERR, "spi: Failed to perform dev transfer");
return -1; return -1;
} }
return recv; return (int) recv;
} }
uint16_t uint16_t