Moved simultaneous reading and writing into SPI; removed it from I2C and UART

This commit is contained in:
dario 2023-08-20 17:38:48 +02:00
parent 8ffba482de
commit 4c157bbe52
12 changed files with 30 additions and 50 deletions

View File

@ -53,15 +53,6 @@ namespace sta
*/ */
void transfer(const uint8_t * buffer, size_t size); 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. * @brief Read incoming data to buffer.
* *
@ -95,4 +86,4 @@ namespace sta
}; };
} // namespace sta } // namespace sta
#endif // STA_CORE_BUS_SERIAL_DEVICE_HPP #endif // STA_CORE_BUS_SERIAL_DEVICE_HPP

View File

@ -35,14 +35,6 @@ namespace sta
* @param size Number of bytes to transfer * @param size Number of bytes to transfer
*/ */
virtual void transfer(const uint8_t * buffer, size_t size) = 0; 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. * @brief Read incoming data to buffer.
* *

View File

@ -29,6 +29,15 @@ namespace sta
*/ */
SPIDevice(SPI * intf, GpioPin * csPin); 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. * @brief Get %SPI interface settings.
* *

View File

@ -31,6 +31,15 @@ namespace sta
*/ */
SPI(const SPISettings & settings, Mutex * mutex = nullptr); 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. * @brief Get %SPI interface settings.
* *

View File

@ -26,7 +26,6 @@ namespace sta
void transfer(uint8_t value) override; void transfer(uint8_t value) override;
void transfer16(uint16_t value) override; void transfer16(uint16_t value) override;
void transfer(const uint8_t * buffer, size_t size) 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 receive(uint8_t * buffer, size_t size) override;
void acquire() override; void acquire() override;
@ -48,4 +47,4 @@ namespace sta
#endif // STA_PLATFORM_RASPI #endif // STA_PLATFORM_RASPI
#endif // STA_I2C_HPP #endif // STA_I2C_HPP

View File

@ -24,7 +24,6 @@ namespace sta
void transfer(uint8_t value) override; void transfer(uint8_t value) override;
void transfer16(uint16_t value) override; void transfer16(uint16_t value) override;
void transfer(const uint8_t * buffer, size_t size) 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 receive(uint8_t * buffer, size_t size) override;
void fill(uint8_t value, size_t count) override; void fill(uint8_t value, size_t count) override;

View File

@ -46,7 +46,6 @@ namespace sta
void transfer(uint8_t value) override; void transfer(uint8_t value) override;
void transfer16(uint16_t value) override; void transfer16(uint16_t value) override;
void transfer(const uint8_t * buffer, size_t size) 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 receive(uint8_t * buffer, size_t size) override;
void fill(uint8_t value, size_t count) override; void fill(uint8_t value, size_t count) override;

View File

@ -48,16 +48,6 @@ namespace sta
intf_->transfer(buffer, size); 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) void Device::receive(uint8_t * buffer, size_t size)
{ {
STA_ASSERT(intf_->isAcquired()); STA_ASSERT(intf_->isAcquired());

View File

@ -12,6 +12,15 @@ namespace sta
STA_ASSERT(csPin != nullptr); 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 const SPISettings & SPIDevice::settings() const
{ {
return intf_->settings(); return intf_->settings();

View File

@ -58,13 +58,6 @@ namespace sta
write(i2cfd_, buffer, size); 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) void RaspiI2C::receive(uint8_t * buffer, size_t size)
{ {
STA_ASSERT(open_); STA_ASSERT(open_);
@ -118,4 +111,4 @@ namespace sta
} }
} // namespace sta } // namespace sta
#endif // STA_PLATFORM_RASPI #endif // STA_PLATFORM_RASPI

View File

@ -83,11 +83,6 @@ namespace sta
STA_ASSERT(res == HAL_OK); 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) void STM32I2C::receive(uint8_t * buffer, size_t size)
{ {
HAL_StatusTypeDef res; HAL_StatusTypeDef res;

View File

@ -29,11 +29,6 @@ namespace sta
HAL_UART_Transmit(handle_, const_cast<uint8_t *>(buffer), size, HAL_MAX_DELAY); HAL_UART_Transmit(handle_, const_cast<uint8_t *>(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) void STM32UART::receive(uint8_t * buffer, size_t size)
{ {
STA_ASSERT(buffer != nullptr); STA_ASSERT(buffer != nullptr);