feat: Automatic soft-serial fallback for module ports (#3823)

This commit is contained in:
Raphael Coeffic
2023-10-07 12:23:51 +10:00
committed by GitHub
parent 1e925edf4a
commit 3cbcc6b7bf
17 changed files with 130 additions and 83 deletions
+3 -10
View File
@@ -203,19 +203,12 @@ static etx_module_state_t* dsmInit(uint8_t module, uint32_t baudrate,
etx_serial_init params(dsmUartParams);
params.baudrate = baudrate;
auto mod_st = modulePortInitSerial(module, ETX_MOD_PORT_UART, &params);
if (!mod_st) {
// inverted soft-serial fallback
mod_st = modulePortInitSerial(module, ETX_MOD_PORT_SOFT_INV, &params);
if (!mod_st) return nullptr;
}
auto mod_st = modulePortInitSerial(module, ETX_MOD_PORT_UART, &params, true);
if (!mod_st) return nullptr;
if (telemetry) {
params.direction = ETX_Dir_RX;
if (!modulePortInitSerial(module, ETX_MOD_PORT_SPORT, &params)) {
// inverted soft-serial fallback
modulePortInitSerial(module, ETX_MOD_PORT_SPORT_INV, &params);
}
modulePortInitSerial(module, ETX_MOD_PORT_SPORT, &params, true);
}
mixerSchedulerSetPeriod(module, period);