Port CRSF RC driver to new Serial UART API (#22917)

* Added implementations of Rx Tx swap and single wire for new UART API needed by CRSF driver
* Added inverted mode to Serial interface API
This commit is contained in:
Eric Katzfey
2024-04-01 22:09:13 -04:00
committed by GitHub
parent a9ba0acb2a
commit 8e61026511
14 changed files with 367 additions and 79 deletions
+33
View File
@@ -84,6 +84,11 @@ ssize_t Serial::write(const void *buffer, size_t buffer_size)
return _impl.write(buffer, buffer_size);
}
void Serial::flush()
{
return _impl.flush();
}
uint32_t Serial::getBaudrate() const
{
return _impl.getBaudrate();
@@ -134,6 +139,34 @@ bool Serial::setFlowcontrol(FlowControl flowcontrol)
return _impl.setFlowcontrol(flowcontrol);
}
bool Serial::getSingleWireMode() const
{
return _impl.getSingleWireMode();
}
bool Serial::setSingleWireMode()
{
return _impl.setSingleWireMode();
}
bool Serial::getSwapRxTxMode() const
{
return _impl.getSwapRxTxMode();
}
bool Serial::setSwapRxTxMode()
{
return _impl.setSwapRxTxMode();
}
bool Serial::getInvertedMode() const
{
return _impl.getInvertedMode();
}
bool Serial::setInvertedMode(bool enable)
{
return _impl.setInvertedMode(enable);
}
const char *Serial::getPort() const
{
return _impl.getPort();
@@ -65,6 +65,8 @@ public:
ssize_t write(const void *buffer, size_t buffer_size);
void flush();
// If port is already open then the following configuration functions
// will reconfigure the port. If the port is not yet open then they will
// simply store the configuration in preparation for the port to be opened.
@@ -84,6 +86,15 @@ public:
FlowControl getFlowcontrol() const;
bool setFlowcontrol(FlowControl flowcontrol);
bool getSingleWireMode() const;
bool setSingleWireMode();
bool getSwapRxTxMode() const;
bool setSwapRxTxMode();
bool getInvertedMode() const;
bool setInvertedMode(bool enable);
static bool validatePort(const char *port);
bool setPort(const char *port);
const char *getPort() const;