From 2b2229fe618b021b8559781572b200696fa0657c Mon Sep 17 00:00:00 2001 From: Michael Keller Date: Thu, 9 Mar 2017 14:41:32 +1300 Subject: [PATCH 1/3] Suppress listing SOFTSERIAL ports if they don't have pins assigned. --- src/main/io/serial.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/main/io/serial.c b/src/main/io/serial.c index 516c8fa66f..4d0a88c4e9 100644 --- a/src/main/io/serial.c +++ b/src/main/io/serial.c @@ -28,6 +28,8 @@ #include "config/parameter_group.h" #include "config/parameter_group_ids.h" +#include "config/config_master.h" + #include "drivers/system.h" #include "drivers/serial.h" #if defined(USE_SOFTSERIAL1) || defined(USE_SOFTSERIAL2) @@ -435,18 +437,23 @@ void serialInit(bool softserialEnabled, serialPortIdentifier_e serialPortToDisab serialPortCount--; } } - if (!softserialEnabled) { - if (0 + + if (serialPortUsageList[index].identifier == SERIAL_PORT_SOFTSERIAL1 #ifdef USE_SOFTSERIAL1 - || serialPortUsageList[index].identifier == SERIAL_PORT_SOFTSERIAL1 + && !(softserialEnabled && serialPinConfig()->ioTagRx[RESOURCE_SOFT_OFFSET + SOFTSERIAL1] && serialPinConfig()->ioTagTx[RESOURCE_SOFT_OFFSET + SOFTSERIAL1]) #endif + ) { + serialPortUsageList[index].identifier = SERIAL_PORT_NONE; + serialPortCount--; + } + + if (serialPortUsageList[index].identifier == SERIAL_PORT_SOFTSERIAL2 #ifdef USE_SOFTSERIAL2 - || serialPortUsageList[index].identifier == SERIAL_PORT_SOFTSERIAL2 + && !(softserialEnabled && serialPinConfig()->ioTagRx[RESOURCE_SOFT_OFFSET + SOFTSERIAL1] && serialPinConfig()->ioTagTx[RESOURCE_SOFT_OFFSET + SOFTSERIAL1]) #endif - ) { - serialPortUsageList[index].identifier = SERIAL_PORT_NONE; - serialPortCount--; - } + ) { + serialPortUsageList[index].identifier = SERIAL_PORT_NONE; + serialPortCount--; } } } From a33cc7d038c21a2dfd63c9ebdf7e312959f3d98d Mon Sep 17 00:00:00 2001 From: Michael Keller Date: Thu, 9 Mar 2017 17:51:08 +1300 Subject: [PATCH 2/3] Fixed copy / pasta bug, changed to checko only TX pin assignment. --- src/main/io/serial.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/src/main/io/serial.c b/src/main/io/serial.c index 4d0a88c4e9..acb354c72a 100644 --- a/src/main/io/serial.c +++ b/src/main/io/serial.c @@ -438,20 +438,15 @@ void serialInit(bool softserialEnabled, serialPortIdentifier_e serialPortToDisab } } - if (serialPortUsageList[index].identifier == SERIAL_PORT_SOFTSERIAL1 + if ((serialPortUsageList[index].identifier == SERIAL_PORT_SOFTSERIAL1 #ifdef USE_SOFTSERIAL1 - && !(softserialEnabled && serialPinConfig()->ioTagRx[RESOURCE_SOFT_OFFSET + SOFTSERIAL1] && serialPinConfig()->ioTagTx[RESOURCE_SOFT_OFFSET + SOFTSERIAL1]) + && !(softserialEnabled && serialPinConfig()->ioTagTx[RESOURCE_SOFT_OFFSET + SOFTSERIAL1]) #endif - ) { - serialPortUsageList[index].identifier = SERIAL_PORT_NONE; - serialPortCount--; - } - - if (serialPortUsageList[index].identifier == SERIAL_PORT_SOFTSERIAL2 + ) || (serialPortUsageList[index].identifier == SERIAL_PORT_SOFTSERIAL2 #ifdef USE_SOFTSERIAL2 - && !(softserialEnabled && serialPinConfig()->ioTagRx[RESOURCE_SOFT_OFFSET + SOFTSERIAL1] && serialPinConfig()->ioTagTx[RESOURCE_SOFT_OFFSET + SOFTSERIAL1]) + && !(softserialEnabled && serialPinConfig()->ioTagTx[RESOURCE_SOFT_OFFSET + SOFTSERIAL2]) #endif - ) { + )) { serialPortUsageList[index].identifier = SERIAL_PORT_NONE; serialPortCount--; } From c47ea3dc848aef2bbd79d63f46400aabea67db8e Mon Sep 17 00:00:00 2001 From: mikeller Date: Thu, 9 Mar 2017 23:29:43 +1300 Subject: [PATCH 3/3] Switched to parameter groups. --- src/main/io/serial.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/io/serial.c b/src/main/io/serial.c index acb354c72a..a9a54affb9 100644 --- a/src/main/io/serial.c +++ b/src/main/io/serial.c @@ -28,7 +28,7 @@ #include "config/parameter_group.h" #include "config/parameter_group_ids.h" -#include "config/config_master.h" +#include "fc/config.h" #include "drivers/system.h" #include "drivers/serial.h"