diff --git a/include/sta/bus/device.hpp b/include/sta/bus/device.hpp index 55ea4a4..c6dc208 100644 --- a/include/sta/bus/device.hpp +++ b/include/sta/bus/device.hpp @@ -53,15 +53,6 @@ namespace sta */ void transfer(const uint8_t * buffer, size_t size); - /** - * @brief Send and receive data simultaneously. - * - * @param txBuffer Send buffer - * @param rxBuffer Receive buffer - * @param size Number of bytes to transfer - */ - void transfer(const uint8_t * txBuffer, uint8_t * rxBuffer, size_t size); - /** * @brief Read incoming data to buffer. * @@ -95,4 +86,4 @@ namespace sta }; } // namespace sta -#endif // STA_CORE_BUS_SERIAL_DEVICE_HPP \ No newline at end of file +#endif // STA_CORE_BUS_SERIAL_DEVICE_HPP diff --git a/include/sta/bus/interface.hpp b/include/sta/bus/interface.hpp index 6e53b9e..e4a0cd8 100644 --- a/include/sta/bus/interface.hpp +++ b/include/sta/bus/interface.hpp @@ -35,14 +35,6 @@ namespace sta * @param size Number of bytes to transfer */ virtual void transfer(const uint8_t * buffer, size_t size) = 0; - /** - * @brief Send and receive data simultaneously. - * - * @param txBuffer Send buffer - * @param rxBuffer Receive buffer - * @param size Number of bytes to transfer - */ - virtual void transfer(const uint8_t * txBuffer, uint8_t * rxBuffer, size_t size) = 0; /** * @brief Read incoming data to buffer. * diff --git a/include/sta/bus/spi/device.hpp b/include/sta/bus/spi/device.hpp index 5f22b87..adeed46 100644 --- a/include/sta/bus/spi/device.hpp +++ b/include/sta/bus/spi/device.hpp @@ -29,6 +29,15 @@ namespace sta */ SPIDevice(SPI * intf, GpioPin * csPin); + /** + * @brief Send and receive data simultaneously. + * + * @param txBuffer Send buffer + * @param rxBuffer Receive buffer + * @param size Number of bytes to transfer + */ + void transfer(const uint8_t * txBuffer, uint8_t * rxBuffer, size_t size); + /** * @brief Get %SPI interface settings. * diff --git a/include/sta/bus/spi/spi.hpp b/include/sta/bus/spi/spi.hpp index fdf978f..2d0dc14 100644 --- a/include/sta/bus/spi/spi.hpp +++ b/include/sta/bus/spi/spi.hpp @@ -31,6 +31,15 @@ namespace sta */ SPI(const SPISettings & settings, Mutex * mutex = nullptr); + /** + * @brief Send and receive data simultaneously. + * + * @param txBuffer Send buffer + * @param rxBuffer Receive buffer + * @param size Number of bytes to transfer + */ + virtual void transfer(const uint8_t * txBuffer, uint8_t * rxBuffer, size_t size) = 0; + /** * @brief Get %SPI interface settings. * diff --git a/include/sta/devices/raspi/bus/i2c.hpp b/include/sta/devices/raspi/bus/i2c.hpp index d2573ac..c4c8ee7 100644 --- a/include/sta/devices/raspi/bus/i2c.hpp +++ b/include/sta/devices/raspi/bus/i2c.hpp @@ -26,7 +26,6 @@ namespace sta void transfer(uint8_t value) override; void transfer16(uint16_t value) override; void transfer(const uint8_t * buffer, size_t size) override; - void transfer(const uint8_t * txBuffer, uint8_t * rxBuffer, size_t size) override; void receive(uint8_t * buffer, size_t size) override; void acquire() override; @@ -48,4 +47,4 @@ namespace sta #endif // STA_PLATFORM_RASPI -#endif // STA_I2C_HPP \ No newline at end of file +#endif // STA_I2C_HPP diff --git a/include/sta/devices/stm32/bus/i2c.hpp b/include/sta/devices/stm32/bus/i2c.hpp index ce71294..c195709 100644 --- a/include/sta/devices/stm32/bus/i2c.hpp +++ b/include/sta/devices/stm32/bus/i2c.hpp @@ -24,7 +24,6 @@ namespace sta void transfer(uint8_t value) override; void transfer16(uint16_t value) override; void transfer(const uint8_t * buffer, size_t size) override; - void transfer(const uint8_t * txBuffer, uint8_t * rxBuffer, size_t size) override; void receive(uint8_t * buffer, size_t size) override; void fill(uint8_t value, size_t count) override; diff --git a/include/sta/devices/stm32/bus/uart.hpp b/include/sta/devices/stm32/bus/uart.hpp index 1f70911..5982c8b 100644 --- a/include/sta/devices/stm32/bus/uart.hpp +++ b/include/sta/devices/stm32/bus/uart.hpp @@ -46,7 +46,6 @@ namespace sta void transfer(uint8_t value) override; void transfer16(uint16_t value) override; void transfer(const uint8_t * buffer, size_t size) override; - void transfer(const uint8_t * txBuffer, uint8_t * rxBuffer, size_t size) override; void receive(uint8_t * buffer, size_t size) override; void fill(uint8_t value, size_t count) override; diff --git a/src/bus/device.cpp b/src/bus/device.cpp index e42646a..85713d0 100644 --- a/src/bus/device.cpp +++ b/src/bus/device.cpp @@ -48,16 +48,6 @@ namespace sta intf_->transfer(buffer, size); } - void Device::transfer(const uint8_t * txBuffer, uint8_t * rxBuffer, size_t size) - { - STA_ASSERT(intf_->isAcquired()); - STA_ASSERT(selected_); - STA_ASSERT(txBuffer != nullptr); - STA_ASSERT(rxBuffer != nullptr); - - intf_->transfer(txBuffer, rxBuffer, size); - } - void Device::receive(uint8_t * buffer, size_t size) { STA_ASSERT(intf_->isAcquired()); diff --git a/src/bus/spi/device.cpp b/src/bus/spi/device.cpp index cca3fa1..60b273a 100644 --- a/src/bus/spi/device.cpp +++ b/src/bus/spi/device.cpp @@ -12,6 +12,15 @@ namespace sta STA_ASSERT(csPin != nullptr); } + void SPIDevice::transfer(const uint8_t * txBuffer, uint8_t * rxBuffer, size_t size) + { + STA_ASSERT(intf_->isAcquired()); + STA_ASSERT(txBuffer != nullptr); + STA_ASSERT(rxBuffer != nullptr); + + intf_->transfer(txBuffer, rxBuffer, size); + } + const SPISettings & SPIDevice::settings() const { return intf_->settings(); diff --git a/src/devices/raspi/bus/i2c.cpp b/src/devices/raspi/bus/i2c.cpp index be270c6..bb23bf2 100644 --- a/src/devices/raspi/bus/i2c.cpp +++ b/src/devices/raspi/bus/i2c.cpp @@ -58,13 +58,6 @@ namespace sta write(i2cfd_, buffer, size); } - void RaspiI2C::transfer(const uint8_t * txBuffer, uint8_t * rxBuffer, size_t size) - { - STA_ASSERT(open_); - - // TODO: Is this even possible in i2c? - } - void RaspiI2C::receive(uint8_t * buffer, size_t size) { STA_ASSERT(open_); @@ -118,4 +111,4 @@ namespace sta } } // namespace sta -#endif // STA_PLATFORM_RASPI \ No newline at end of file +#endif // STA_PLATFORM_RASPI diff --git a/src/devices/stm32/bus/i2c.cpp b/src/devices/stm32/bus/i2c.cpp index 5eae138..6478f8a 100644 --- a/src/devices/stm32/bus/i2c.cpp +++ b/src/devices/stm32/bus/i2c.cpp @@ -83,11 +83,6 @@ namespace sta STA_ASSERT(res == HAL_OK); } - void STM32I2C::transfer(const uint8_t * txBuffer, uint8_t * rxBuffer, size_t size) - { - // TODO: Is this even something necessary for I2C? - } - void STM32I2C::receive(uint8_t * buffer, size_t size) { HAL_StatusTypeDef res; diff --git a/src/devices/stm32/bus/uart.cpp b/src/devices/stm32/bus/uart.cpp index 699e9eb..300f49f 100644 --- a/src/devices/stm32/bus/uart.cpp +++ b/src/devices/stm32/bus/uart.cpp @@ -29,11 +29,6 @@ namespace sta HAL_UART_Transmit(handle_, const_cast(buffer), size, HAL_MAX_DELAY); } - void STM32UART::transfer(const uint8_t * txBuffer, uint8_t * rxBuffer, size_t size) - { - // IS THIS A THING HERE? - } - void STM32UART::receive(uint8_t * buffer, size_t size) { STA_ASSERT(buffer != nullptr);