From 4d022ace0baf8f5a36e17affe4f51f1b95694733 Mon Sep 17 00:00:00 2001 From: Petri Mattila Date: Wed, 31 Jul 2024 22:56:58 +0100 Subject: [PATCH] Add pinswap to all serialrx protocols --- src/main/rx/crsf.c | 4 +++- src/main/rx/fport.c | 6 +++--- src/main/rx/ghst.c | 4 +++- src/main/rx/ibus.c | 7 ++++--- src/main/rx/jetiexbus.c | 4 +++- src/main/rx/sbus.c | 6 +++--- src/main/rx/srxl2.c | 19 ++++++++++++------- src/main/rx/sumd.c | 7 ++++--- src/main/rx/sumh.c | 13 ++++++++++++- src/main/rx/xbus.c | 7 ++++--- src/main/telemetry/ibus.c | 12 +++++++++++- 11 files changed, 62 insertions(+), 27 deletions(-) diff --git a/src/main/rx/crsf.c b/src/main/rx/crsf.c index b7437de345..777e25791c 100644 --- a/src/main/rx/crsf.c +++ b/src/main/rx/crsf.c @@ -634,7 +634,9 @@ bool crsfRxInit(const rxConfig_t *rxConfig, rxRuntimeState_t *rxRuntimeState) rxRuntimeState, crsfBaudrate, CRSF_PORT_MODE, - CRSF_PORT_OPTIONS | (rxConfig->serialrx_inverted ? SERIAL_INVERTED : 0) + CRSF_PORT_OPTIONS | + (rxConfig->serialrx_inverted ? SERIAL_INVERTED : SERIAL_NOT_INVERTED) | + (rxConfig->pinSwap ? SERIAL_PINSWAP : SERIAL_NOSWAP) ); if (rssiSource == RSSI_SOURCE_NONE) { diff --git a/src/main/rx/fport.c b/src/main/rx/fport.c index 9d0e37dcc7..77b403694f 100644 --- a/src/main/rx/fport.c +++ b/src/main/rx/fport.c @@ -409,9 +409,9 @@ bool fportRxInit(const rxConfig_t *rxConfig, rxRuntimeState_t *rxRuntimeState) FPORT_BAUDRATE, MODE_RXTX, FPORT_PORT_OPTIONS | - (rxConfig->serialrx_inverted ? SERIAL_INVERTED : SERIAL_NOT_INVERTED) | - (rxConfig->halfDuplex ? SERIAL_BIDIR : SERIAL_UNIDIR) | - (rxConfig->pinSwap ? SERIAL_PINSWAP : SERIAL_NOSWAP) + (rxConfig->serialrx_inverted ? SERIAL_INVERTED : SERIAL_NOT_INVERTED) | + (rxConfig->halfDuplex ? SERIAL_BIDIR : SERIAL_UNIDIR) | + (rxConfig->pinSwap ? SERIAL_PINSWAP : SERIAL_NOSWAP) ); if (fportPort) { diff --git a/src/main/rx/ghst.c b/src/main/rx/ghst.c index ee1e1ca43e..c5a764b646 100644 --- a/src/main/rx/ghst.c +++ b/src/main/rx/ghst.c @@ -338,7 +338,9 @@ bool ghstRxInit(const rxConfig_t *rxConfig, rxRuntimeState_t *rxRuntimeState) NULL, GHST_RX_BAUDRATE, GHST_PORT_MODE, - GHST_PORT_OPTIONS | (rxConfig->serialrx_inverted ? SERIAL_INVERTED : 0) + GHST_PORT_OPTIONS | + (rxConfig->serialrx_inverted ? SERIAL_INVERTED : SERIAL_NOT_INVERTED) | + (rxConfig->pinSwap ? SERIAL_PINSWAP : SERIAL_NOSWAP) ); serialPort->idleCallback = ghstIdle; diff --git a/src/main/rx/ibus.c b/src/main/rx/ibus.c index 5f4b3eba26..2168196825 100644 --- a/src/main/rx/ibus.c +++ b/src/main/rx/ibus.c @@ -232,9 +232,10 @@ bool ibusInit(const rxConfig_t *rxConfig, rxRuntimeState_t *rxRuntimeState) NULL, IBUS_BAUDRATE, portShared ? MODE_RXTX : MODE_RX, - (rxConfig->serialrx_inverted ? SERIAL_INVERTED : SERIAL_NOT_INVERTED) | - (rxConfig->halfDuplex || portShared ? SERIAL_BIDIR : SERIAL_UNIDIR) | - (rxConfig->pinSwap ? SERIAL_PINSWAP : SERIAL_NOSWAP) + SERIAL_STOPBITS_1 | SERIAL_PARITY_NO | + (rxConfig->serialrx_inverted ? SERIAL_INVERTED : SERIAL_NOT_INVERTED) | + (rxConfig->halfDuplex || portShared ? SERIAL_BIDIR : SERIAL_UNIDIR) | + (rxConfig->pinSwap ? SERIAL_PINSWAP : SERIAL_NOSWAP) ); #if defined(USE_TELEMETRY) && defined(USE_TELEMETRY_IBUS) diff --git a/src/main/rx/jetiexbus.c b/src/main/rx/jetiexbus.c index c477deed7d..81f9db46e0 100644 --- a/src/main/rx/jetiexbus.c +++ b/src/main/rx/jetiexbus.c @@ -269,7 +269,9 @@ bool jetiExBusInit(const rxConfig_t *rxConfig, rxRuntimeState_t *rxRuntimeState) NULL, JETIEXBUS_BAUDRATE, MODE_RXTX, - JETIEXBUS_OPTIONS | (rxConfig->serialrx_inverted ? SERIAL_INVERTED : 0) | SERIAL_BIDIR + JETIEXBUS_OPTIONS | SERIAL_BIDIR | + (rxConfig->serialrx_inverted ? SERIAL_INVERTED : SERIAL_NOT_INVERTED) | + (rxConfig->pinSwap ? SERIAL_PINSWAP : SERIAL_NOSWAP) ); return jetiExBusPort != NULL; } diff --git a/src/main/rx/sbus.c b/src/main/rx/sbus.c index d0512dcf8c..e55e2f0644 100644 --- a/src/main/rx/sbus.c +++ b/src/main/rx/sbus.c @@ -199,9 +199,9 @@ bool sbusInit(const rxConfig_t *rxConfig, rxRuntimeState_t *rxRuntimeState) sbusBaudRate, portShared ? MODE_RXTX : MODE_RX, SBUS_PORT_OPTIONS | - (rxConfig->serialrx_inverted ? SERIAL_NOT_INVERTED : SERIAL_INVERTED) | - (rxConfig->halfDuplex ? SERIAL_BIDIR : SERIAL_UNIDIR) | - (rxConfig->pinSwap ? SERIAL_PINSWAP : SERIAL_NOSWAP) + (rxConfig->serialrx_inverted ? SERIAL_NOT_INVERTED : SERIAL_INVERTED) | + (rxConfig->halfDuplex ? SERIAL_BIDIR : SERIAL_UNIDIR) | + (rxConfig->pinSwap ? SERIAL_PINSWAP : SERIAL_NOSWAP) ); if (rxConfig->rssi_src_frame_errors) { diff --git a/src/main/rx/srxl2.c b/src/main/rx/srxl2.c index 979bede0bd..95eeb65459 100644 --- a/src/main/rx/srxl2.c +++ b/src/main/rx/srxl2.c @@ -500,13 +500,18 @@ bool srxl2RxInit(const rxConfig_t *rxConfig, rxRuntimeState_t *rxRuntimeState) return false; } - portOptions_e options = SRXL2_PORT_OPTIONS | - (rxConfig->serialrx_inverted ? SERIAL_INVERTED : SERIAL_NOT_INVERTED) | - (rxConfig->halfDuplex ? SERIAL_BIDIR : SERIAL_UNIDIR) | - (rxConfig->pinSwap ? SERIAL_PINSWAP : SERIAL_NOSWAP); - - serialPort = openSerialPort(portConfig->identifier, FUNCTION_RX_SERIAL, srxl2DataReceive, - NULL, SRXL2_PORT_BAUDRATE_DEFAULT, SRXL2_PORT_MODE, options); + serialPort = openSerialPort( + portConfig->identifier, + FUNCTION_RX_SERIAL, + srxl2DataReceive, + NULL, + SRXL2_PORT_BAUDRATE_DEFAULT, + SRXL2_PORT_MODE, + SRXL2_PORT_OPTIONS | + (rxConfig->serialrx_inverted ? SERIAL_INVERTED : SERIAL_NOT_INVERTED) | + (rxConfig->halfDuplex ? SERIAL_BIDIR : SERIAL_UNIDIR) | + (rxConfig->pinSwap ? SERIAL_PINSWAP : SERIAL_NOSWAP) + ); if (!serialPort) { return false; diff --git a/src/main/rx/sumd.c b/src/main/rx/sumd.c index daf92b2481..4e0fb9d67e 100644 --- a/src/main/rx/sumd.c +++ b/src/main/rx/sumd.c @@ -195,9 +195,10 @@ bool sumdInit(const rxConfig_t *rxConfig, rxRuntimeState_t *rxRuntimeState) NULL, SUMD_BAUDRATE, portShared ? MODE_RXTX : MODE_RX, - (rxConfig->serialrx_inverted ? SERIAL_INVERTED : SERIAL_NOT_INVERTED) | - (rxConfig->halfDuplex ? SERIAL_BIDIR : SERIAL_UNIDIR) | - (rxConfig->pinSwap ? SERIAL_PINSWAP : SERIAL_NOSWAP) + SERIAL_STOPBITS_1 | SERIAL_PARITY_NO | + (rxConfig->serialrx_inverted ? SERIAL_INVERTED : SERIAL_NOT_INVERTED) | + (rxConfig->halfDuplex ? SERIAL_BIDIR : SERIAL_UNIDIR) | + (rxConfig->pinSwap ? SERIAL_PINSWAP : SERIAL_NOSWAP) ); #ifdef USE_TELEMETRY diff --git a/src/main/rx/sumh.c b/src/main/rx/sumh.c index 9dc7d82896..f9b90f659c 100644 --- a/src/main/rx/sumh.c +++ b/src/main/rx/sumh.c @@ -140,7 +140,18 @@ bool sumhInit(const rxConfig_t *rxConfig, rxRuntimeState_t *rxRuntimeState) bool portShared = false; #endif - sumhPort = openSerialPort(portConfig->identifier, FUNCTION_RX_SERIAL, sumhDataReceive, NULL, SUMH_BAUDRATE, portShared ? MODE_RXTX : MODE_RX, (rxConfig->serialrx_inverted ? SERIAL_INVERTED : 0)); + sumhPort = openSerialPort( + portConfig->identifier, + FUNCTION_RX_SERIAL, + sumhDataReceive, + NULL, + SUMH_BAUDRATE, + portShared ? MODE_RXTX : MODE_RX, + SERIAL_STOPBITS_1 | SERIAL_PARITY_NO | + (rxConfig->serialrx_inverted ? SERIAL_INVERTED : SERIAL_NOT_INVERTED) | + (rxConfig->halfDuplex ? SERIAL_BIDIR : SERIAL_UNIDIR) | + (rxConfig->pinSwap ? SERIAL_PINSWAP : SERIAL_NOSWAP) + ); #ifdef USE_TELEMETRY if (portShared) { diff --git a/src/main/rx/xbus.c b/src/main/rx/xbus.c index 0fb64d4d3f..42261072f6 100644 --- a/src/main/rx/xbus.c +++ b/src/main/rx/xbus.c @@ -314,9 +314,10 @@ bool xBusInit(const rxConfig_t *rxConfig, rxRuntimeState_t *rxRuntimeState) NULL, baudRate, portShared ? MODE_RXTX : MODE_RX, - (rxConfig->serialrx_inverted ? SERIAL_INVERTED : SERIAL_NOT_INVERTED) | - (rxConfig->halfDuplex ? SERIAL_BIDIR : SERIAL_UNIDIR) | - (rxConfig->pinSwap ? SERIAL_PINSWAP : SERIAL_NOSWAP) + SERIAL_STOPBITS_1 | SERIAL_PARITY_NO | + (rxConfig->serialrx_inverted ? SERIAL_INVERTED : SERIAL_NOT_INVERTED) | + (rxConfig->halfDuplex ? SERIAL_BIDIR : SERIAL_UNIDIR) | + (rxConfig->pinSwap ? SERIAL_PINSWAP : SERIAL_NOSWAP) ); #ifdef USE_TELEMETRY diff --git a/src/main/telemetry/ibus.c b/src/main/telemetry/ibus.c index 9f1c817166..4359585f95 100644 --- a/src/main/telemetry/ibus.c +++ b/src/main/telemetry/ibus.c @@ -157,7 +157,17 @@ void configureIbusTelemetryPort(void) return; } - ibusSerialPort = openSerialPort(ibusSerialPortConfig->identifier, FUNCTION_TELEMETRY_IBUS, NULL, NULL, IBUS_BAUDRATE, IBUS_UART_MODE, SERIAL_BIDIR | (telemetryConfig()->telemetry_inverted ? SERIAL_INVERTED : SERIAL_NOT_INVERTED)); + ibusSerialPort = openSerialPort( + ibusSerialPortConfig->identifier, + FUNCTION_TELEMETRY_IBUS, + NULL, + NULL, + IBUS_BAUDRATE, + IBUS_UART_MODE, + SERIAL_STOPBITS_1 | SERIAL_PARITY_NO | SERIAL_BIDIR | + (telemetryConfig()->telemetry_inverted ? SERIAL_INVERTED : SERIAL_NOT_INVERTED) | + (telemetryConfig()->pinSwap ? SERIAL_PINSWAP : SERIAL_NOSWAP) + ); if (!ibusSerialPort) { return;