This commit is contained in:
3djc
2022-03-21 11:43:48 +01:00
committed by Raphael Coeffic
parent cc609a6a3b
commit db3547d45c
42 changed files with 661 additions and 435 deletions
+16 -35
View File
@@ -97,11 +97,9 @@ enum {
#endif
#if !defined(PCBX9D) && !defined(PCBX9DP) && !defined(PCBX9E)
ITEM_RADIO_HARDWARE_INTERNAL_MODULE,
#endif
#if (defined(CROSSFIRE) || defined(GHOST))
ITEM_RADIO_HARDWARE_SERIAL_BAUDRATE,
ITEM_RADIO_HARDWARE_LABEL_INTERNAL_MODULE,
ITEM_RADIO_HARDWARE_INTERNAL_MODULE_TYPE,
ITEM_RADIO_HARDWARE_INTERNAL_MODULE_BAUDRATE,
#endif
ITEM_RADIO_HARDWARE_SERIAL_SAMPLE_MODE,
@@ -231,17 +229,11 @@ enum {
#endif
#if !defined(PCBX9D) && !defined(PCBX9DP) && !defined(PCBX9E)
#define INTERNAL_MODULE_ROWS 0,
#define INTERNAL_MODULE_ROWS 0, (isInternalModuleCrossfire() ? (uint8_t ) 0 : HIDDEN_ROW),
#else
#define INTERNAL_MODULE_ROWS
#endif
#if (defined(CROSSFIRE) || defined(GHOST))
#define MAX_BAUD_ROWS 0,
#else
#define MAX_BAUD_ROWS
#endif
#define SERIAL_SAMPLE_MODE_ROWS 0,
#if defined(AUX_SERIAL) || defined(USB_SERIAL)
@@ -282,21 +274,6 @@ void onFactoryResetConfirm(const char * result)
}
#endif
void restartExternalModule()
{
if (!IS_EXTERNAL_MODULE_ON()) {
return;
}
pauseMixerCalculations();
pausePulses();
EXTERNAL_MODULE_OFF();
RTOS_WAIT_MS(20); // 20ms so that the pulses interrupt will reinit the frame rate
telemetryProtocol = 255; // force telemetry port + module reinitialization
EXTERNAL_MODULE_ON();
resumePulses();
resumeMixerCalculations();
}
static bool _isAux1ModeAvailable(int m) { return isSerialModeAvailable(SP_AUX1, m); }
static bool _isAux2ModeAvailable(int m) { return isSerialModeAvailable(SP_AUX2, m); }
static bool _isVCPModeAvailable(int m) { return isSerialModeAvailable(SP_VCP, m); }
@@ -322,8 +299,8 @@ void menuRadioHardware(event_t event)
0 /* battery calib */,
RTC_ROW
TX_CAPACITY_MEASUREMENT_ROWS
LABEL(InternalModule),
INTERNAL_MODULE_ROWS
MAX_BAUD_ROWS
SERIAL_SAMPLE_MODE_ROWS
BLUETOOTH_ROWS
EXTERNAL_ANTENNA_ROW
@@ -533,9 +510,13 @@ void menuRadioHardware(event_t event)
#endif
#if !defined(PCBX9D) && !defined(PCBX9DP) && !defined(PCBX9E)
case ITEM_RADIO_HARDWARE_INTERNAL_MODULE: {
case ITEM_RADIO_HARDWARE_LABEL_INTERNAL_MODULE:
lcdDrawTextAlignedLeft(y, STR_INTERNALRF);
break;
case ITEM_RADIO_HARDWARE_INTERNAL_MODULE_TYPE: {
g_eeGeneral.internalModule =
editChoice(HW_SETTINGS_COLUMN2, y, STR_INTERNAL_MODULE,
editChoice(HW_SETTINGS_COLUMN2, y, STR_TYPE,
STR_INTERNAL_MODULE_PROTOCOLS,
g_eeGeneral.internalModule, MODULE_TYPE_NONE,
MODULE_TYPE_MAX, attr, event, isInternalModuleSupported);
@@ -548,12 +529,12 @@ void menuRadioHardware(event_t event)
} break;
#endif
#if (defined(CROSSFIRE) || defined(GHOST))
case ITEM_RADIO_HARDWARE_SERIAL_BAUDRATE:
lcdDrawTextAlignedLeft(y, STR_MAXBAUDRATE);
lcdDrawNumber(HW_SETTINGS_COLUMN2, y, CROSSFIRE_BAUDRATE, attr|LEFT);
#if !defined(PCBX9D) && !defined(PCBX9DP) && !defined(PCBX9E)
case ITEM_RADIO_HARDWARE_INTERNAL_MODULE_BAUDRATE:
lcdDrawText(INDENT_WIDTH, y, STR_BAUDRATE);
lcdDrawNumber(HW_SETTINGS_COLUMN2, y, INT_CROSSFIRE_BAUDRATE, attr|LEFT);
if (attr) {
g_eeGeneral.telemetryBaudrate = CROSSFIRE_INDEX_TO_STORE(checkIncDecModel(event, CROSSFIRE_STORE_TO_INDEX(g_eeGeneral.telemetryBaudrate), 0, DIM(CROSSFIRE_BAUDRATES) - 1));
g_eeGeneral.InternalModuleBaudrate = CROSSFIRE_INDEX_TO_STORE(checkIncDecModel(event, CROSSFIRE_STORE_TO_INDEX(g_eeGeneral.InternalModuleBaudrate), 0, CROSSFIRE_MAX_INTERNAL_BAUDRATE));
if (checkIncDec_Ret) {
restartExternalModule();
}