Merge against latest 2.3
This commit is contained in:
@@ -53,20 +53,92 @@ void preModelLoad()
|
||||
|
||||
pauseMixerCalculations();
|
||||
}
|
||||
#if defined(PCBFRSKY)
|
||||
static void fixUpModel()
|
||||
|
||||
void postRadioSettingsLoad()
|
||||
{
|
||||
// Ensure that when rfProtocol is MODULE_SUBTYPE_PXX1_OFF the type of the module is MODULE_TYPE_NONE
|
||||
if (g_model.moduleData[INTERNAL_MODULE].type == MODULE_TYPE_XJT_PXX1 && g_model.moduleData[INTERNAL_MODULE].rfProtocol == MODULE_SUBTYPE_PXX1_OFF)
|
||||
g_model.moduleData[INTERNAL_MODULE].type = MODULE_TYPE_NONE;
|
||||
#if defined(PXX2)
|
||||
if (is_memclear(g_eeGeneral.ownerRegistrationID, PXX2_LEN_REGISTRATION_ID)) {
|
||||
setDefaultOwnerId();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
#if defined(EXTERNAL_ANTENNA) && defined(INTERNAL_MODULE_PXX1)
|
||||
void onAntennaSelection(const char * result)
|
||||
{
|
||||
if (result == STR_USE_INTERNAL_ANTENNA) {
|
||||
globalData.externalAntennaEnabled = false;
|
||||
}
|
||||
else if (result == STR_USE_EXTERNAL_ANTENNA) {
|
||||
globalData.externalAntennaEnabled = true;
|
||||
}
|
||||
else {
|
||||
checkExternalAntenna();
|
||||
}
|
||||
}
|
||||
|
||||
void onAntennaSwitchConfirm(const char * result)
|
||||
{
|
||||
if (result == STR_OK) {
|
||||
// Switch to external antenna confirmation
|
||||
globalData.externalAntennaEnabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
void checkExternalAntenna()
|
||||
{
|
||||
if (isModuleXJT(INTERNAL_MODULE)) {
|
||||
if (g_eeGeneral.antennaMode == ANTENNA_MODE_EXTERNAL) {
|
||||
globalData.externalAntennaEnabled = true;
|
||||
}
|
||||
else if (g_eeGeneral.antennaMode == ANTENNA_MODE_PER_MODEL && g_model.moduleData[INTERNAL_MODULE].pxx.antennaMode == ANTENNA_MODE_EXTERNAL) {
|
||||
if (!globalData.externalAntennaEnabled) {
|
||||
#if defined(COLORLCD)
|
||||
#warning "Antenna confirmation dialog needed"
|
||||
#else
|
||||
POPUP_CONFIRMATION(STR_ANTENNACONFIRM1, onAntennaSwitchConfirm);
|
||||
SET_WARNING_INFO(STR_ANTENNACONFIRM2, sizeof(TR_ANTENNACONFIRM2), 0);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
else if (g_eeGeneral.antennaMode == ANTENNA_MODE_ASK || (g_eeGeneral.antennaMode == ANTENNA_MODE_PER_MODEL && g_model.moduleData[INTERNAL_MODULE].pxx.antennaMode == ANTENNA_MODE_ASK)) {
|
||||
globalData.externalAntennaEnabled = false;
|
||||
#if defined(COLORLCD)
|
||||
#warning "Antenna confirmation dialog needed"
|
||||
#else
|
||||
POPUP_MENU_ADD_ITEM(STR_USE_INTERNAL_ANTENNA);
|
||||
POPUP_MENU_ADD_ITEM(STR_USE_EXTERNAL_ANTENNA);
|
||||
POPUP_MENU_START(onAntennaSelection);
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
globalData.externalAntennaEnabled = false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
globalData.externalAntennaEnabled = false;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
void postModelLoad(bool alarms)
|
||||
{
|
||||
#if defined(PCBFRSKY)
|
||||
fixUpModel();
|
||||
#if defined(PXX2)
|
||||
if (is_memclear(g_model.modelRegistrationID, PXX2_LEN_REGISTRATION_ID)) {
|
||||
memcpy(g_model.modelRegistrationID, g_eeGeneral.ownerRegistrationID, PXX2_LEN_REGISTRATION_ID);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(HARDWARE_INTERNAL_MODULE)
|
||||
if (!isInternalModuleAvailable(g_model.moduleData[INTERNAL_MODULE].type)) {
|
||||
memclear(&g_model.moduleData[INTERNAL_MODULE], sizeof(ModuleData));
|
||||
}
|
||||
#endif
|
||||
|
||||
if (!isExternalModuleAvailable(g_model.moduleData[EXTERNAL_MODULE].type)) {
|
||||
memclear(&g_model.moduleData[EXTERNAL_MODULE], sizeof(ModuleData));
|
||||
}
|
||||
|
||||
AUDIO_FLUSH();
|
||||
flightReset(false);
|
||||
|
||||
@@ -78,7 +150,10 @@ void postModelLoad(bool alarms)
|
||||
TelemetrySensor & sensor = g_model.telemetrySensors[i];
|
||||
if (sensor.type == TELEM_TYPE_CALCULATED && sensor.persistent) {
|
||||
telemetryItems[i].value = sensor.persistentValue;
|
||||
telemetryItems[i].lastReceived = TELEMETRY_VALUE_OLD; // #3595: make value visible even before the first new value is received)
|
||||
telemetryItems[i].timeout = 0; // make value visible even before the first new value is received)
|
||||
}
|
||||
else {
|
||||
telemetryItems[i].timeout = TELEMETRY_SENSOR_TIMEOUT_UNAVAILABLE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -105,6 +180,7 @@ void postModelLoad(bool alarms)
|
||||
|
||||
LOAD_MODEL_BITMAP();
|
||||
LUA_LOAD_MODEL_SCRIPTS();
|
||||
|
||||
SEND_FAILSAFE_1S();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user