diff --git a/radio/src/gui/colorlcd/radio_hardware.cpp b/radio/src/gui/colorlcd/radio_hardware.cpp index b5c264846..36f9a52c5 100644 --- a/radio/src/gui/colorlcd/radio_hardware.cpp +++ b/radio/src/gui/colorlcd/radio_hardware.cpp @@ -278,19 +278,29 @@ void RadioHardwarePage::build(FormWindow * window) #if defined(AUX_SERIAL) new StaticText(window, grid.getLabelSlot(), STR_AUX_SERIAL_MODE); - auto aux = new Choice(window, grid.getFieldSlot(1,0), STR_AUX_SERIAL_MODES, 0, UART_MODE_MAX, GET_SET_DEFAULT(g_eeGeneral.auxSerialMode)); - aux->setAvailableHandler([=](int value) { - return isAuxModeAvailable; - }); + auto aux = + new Choice(window, grid.getFieldSlot(1, 0), STR_AUX_SERIAL_MODES, 0, + UART_MODE_MAX, GET_DEFAULT(g_eeGeneral.auxSerialMode), + [](int value) { + g_eeGeneral.auxSerialMode = value; + auxSerialInit(g_eeGeneral.auxSerialMode, modelTelemetryProtocol()); + SET_DIRTY(); + }); + aux->setAvailableHandler([=](int value) { return isAuxModeAvailable; }); grid.nextLine(); #endif #if defined(AUX2_SERIAL) new StaticText(window, grid.getLabelSlot(), STR_AUX2_SERIAL_MODE); - auto aux2 = new Choice(window, grid.getFieldSlot(1,0), STR_AUX_SERIAL_MODES, 0, UART_MODE_MAX, GET_SET_DEFAULT(g_eeGeneral.aux2SerialMode)); - aux2->setAvailableHandler([=](int value) { - return isAux2ModeAvailable; - }); + auto aux2 = + new Choice(window, grid.getFieldSlot(1, 0), STR_AUX_SERIAL_MODES, 0, + UART_MODE_MAX, GET_DEFAULT(g_eeGeneral.aux2SerialMode), + [](int value) { + g_eeGeneral.aux2SerialMode = value; + aux2SerialInit(g_eeGeneral.aux2SerialMode, modelTelemetryProtocol()); + SET_DIRTY(); + }); + aux2->setAvailableHandler([=](int value) { return isAux2ModeAvailable; }); grid.nextLine(); #endif