1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-16 12:55:19 +03:00

Fix smartport over softserial using override (#13540)

* Fix smartport over softserial

* Constrain baudrateIndex does not work

* Reapply 57600 for SmartPort

* Use custom define for baudrate override

* Return when baudrate requested is above set limit of softserial

* Thanks ledvinap

* Fix macro name

* Cloud Build API does not allow define size > 32
This commit is contained in:
Mark Haslinghuis 2024-04-23 21:04:52 +02:00 committed by GitHub
parent 8d1d8872d6
commit 92287b870d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -346,13 +346,14 @@ bool isSerialConfigValid(serialConfig_t *serialConfigToCheck)
(portConfig->identifier == SERIAL_PORT_SOFTSERIAL2)) {
// Ensure MSP or serial RX is not enabled on soft serial ports
serialConfigToCheck->portConfigs[index].functionMask &= ~(FUNCTION_MSP | FUNCTION_RX_SERIAL);
// Ensure that the baud rate on soft serial ports is limited to 19200
#ifndef USE_OVERRIDE_SOFTSERIAL_BAUDRATE
serialConfigToCheck->portConfigs[index].gps_baudrateIndex = constrain(portConfig->gps_baudrateIndex, BAUD_AUTO, BAUD_19200);
serialConfigToCheck->portConfigs[index].blackbox_baudrateIndex = constrain(portConfig->blackbox_baudrateIndex, BAUD_AUTO, BAUD_19200);
serialConfigToCheck->portConfigs[index].telemetry_baudrateIndex = constrain(portConfig->telemetry_baudrateIndex, BAUD_AUTO, BAUD_19200);
}
#endif
}
#endif // USE_SOFTSERIAL
if (portConfig->functionMask & FUNCTION_MSP) {
mspPortCount++;
@ -436,10 +437,10 @@ serialPort_t *openSerialPort(
serialPort_t *serialPort = NULL;
#ifdef USE_SOFTSERIAL
#if defined(USE_SOFTSERIAL) && !defined(USE_OVERRIDE_SOFTSERIAL_BAUDRATE)
if (((identifier == SERIAL_PORT_SOFTSERIAL1) || (identifier == SERIAL_PORT_SOFTSERIAL2)) && (baudRate > 19200)) {
// Limit baud rate on soft serial ports
baudRate = 19200;
// Don't continue if baud rate requested is higher then the limit set on soft serial ports
return NULL;
}
#endif