1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-17 21:35:44 +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)) { (portConfig->identifier == SERIAL_PORT_SOFTSERIAL2)) {
// Ensure MSP or serial RX is not enabled on soft serial ports // Ensure MSP or serial RX is not enabled on soft serial ports
serialConfigToCheck->portConfigs[index].functionMask &= ~(FUNCTION_MSP | FUNCTION_RX_SERIAL); serialConfigToCheck->portConfigs[index].functionMask &= ~(FUNCTION_MSP | FUNCTION_RX_SERIAL);
// Ensure that the baud rate on soft serial ports is limited to 19200 // 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].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].blackbox_baudrateIndex = constrain(portConfig->blackbox_baudrateIndex, BAUD_AUTO, BAUD_19200);
serialConfigToCheck->portConfigs[index].telemetry_baudrateIndex = constrain(portConfig->telemetry_baudrateIndex, BAUD_AUTO, BAUD_19200); serialConfigToCheck->portConfigs[index].telemetry_baudrateIndex = constrain(portConfig->telemetry_baudrateIndex, BAUD_AUTO, BAUD_19200);
}
#endif #endif
}
#endif // USE_SOFTSERIAL
if (portConfig->functionMask & FUNCTION_MSP) { if (portConfig->functionMask & FUNCTION_MSP) {
mspPortCount++; mspPortCount++;
@ -436,10 +437,10 @@ serialPort_t *openSerialPort(
serialPort_t *serialPort = NULL; 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)) { if (((identifier == SERIAL_PORT_SOFTSERIAL1) || (identifier == SERIAL_PORT_SOFTSERIAL2)) && (baudRate > 19200)) {
// Limit baud rate on soft serial ports // Don't continue if baud rate requested is higher then the limit set on soft serial ports
baudRate = 19200; return NULL;
} }
#endif #endif