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);
/**
* @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
#endif // STA_CORE_BUS_SERIAL_DEVICE_HPP

View File

@ -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.
*

View File

@ -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.
*

View File

@ -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.
*

View File

@ -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
#endif // STA_I2C_HPP

View File

@ -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;

View File

@ -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;

View File

@ -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());

View File

@ -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();

View File

@ -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
#endif // STA_PLATFORM_RASPI

View File

@ -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;

View File

@ -29,11 +29,6 @@ namespace sta
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)
{
STA_ASSERT(buffer != nullptr);