Bsongis/issue 7156 (#7160)

Fixes #7156
This commit is contained in:
Bertrand Songis
2019-12-06 16:27:07 +01:00
committed by GitHub
parent b334e1845d
commit 98c123ef8b
6 changed files with 45 additions and 40 deletions
+34 -28
View File
@@ -42,34 +42,35 @@ void onUSBConnectMenu(const char *result)
void handleUsbConnection()
{
#if defined(STM32) && !defined(SIMU)
if (!usbStarted() && usbPlugged() && !(getSelectedUsbMode() == USB_UNSELECTED_MODE)) {
usbStart();
if (getSelectedUsbMode() == USB_MASS_STORAGE_MODE) {
opentxClose(false);
usbPluggedIn();
}
}
if (!usbStarted() && usbPlugged() && getSelectedUsbMode() == USB_UNSELECTED_MODE) {
if (g_eeGeneral.USBMode == USB_UNSELECTED_MODE && popupMenuItemsCount == 0) {
POPUP_MENU_ADD_ITEM(STR_USB_JOYSTICK);
POPUP_MENU_ADD_ITEM(STR_USB_MASS_STORAGE);
if (!usbStarted() && usbPlugged()) {
if (getSelectedUsbMode() == USB_UNSELECTED_MODE) {
if (g_eeGeneral.USBMode == USB_UNSELECTED_MODE && popupMenuItemsCount == 0) {
POPUP_MENU_ADD_ITEM(STR_USB_JOYSTICK);
POPUP_MENU_ADD_ITEM(STR_USB_MASS_STORAGE);
#if defined(DEBUG)
POPUP_MENU_ADD_ITEM(STR_USB_SERIAL);
POPUP_MENU_ADD_ITEM(STR_USB_SERIAL);
#endif
POPUP_MENU_START(onUSBConnectMenu);
POPUP_MENU_START(onUSBConnectMenu);
}
else {
setSelectedUsbMode(g_eeGeneral.USBMode);
}
}
if (g_eeGeneral.USBMode != USB_UNSELECTED_MODE) {
setSelectedUsbMode(g_eeGeneral.USBMode);
else {
if (getSelectedUsbMode() == USB_MASS_STORAGE_MODE) {
opentxClose(false);
usbPluggedIn();
}
usbStart();
}
}
if (usbStarted() && !usbPlugged()) {
usbStop();
if (getSelectedUsbMode() == USB_MASS_STORAGE_MODE) {
opentxResume();
}
#if !defined(BOOT)
setSelectedUsbMode(USB_UNSELECTED_MODE);
#endif
}
#endif // defined(STM32) && !defined(SIMU)
}
@@ -157,12 +158,10 @@ void checkSpeakerVolume()
#if defined(EEPROM)
void checkEeprom()
{
if (!usbPlugged()) {
if (eepromIsWriting())
eepromWriteProcess();
else if (TIME_TO_WRITE())
storageCheck(false);
}
if (eepromIsWriting())
eepromWriteProcess();
else if (TIME_TO_WRITE())
storageCheck(false);
}
#else
void checkEeprom()
@@ -483,13 +482,20 @@ void perMain()
#if defined(PCBSKY9X)
calcConsumption();
#endif
checkSpeakerVolume();
checkEeprom();
logsWrite();
if (!usbPlugged()) {
checkEeprom();
logsWrite();
}
handleUsbConnection();
#if defined(PCBXLITES)
handleJackConnection();
#endif
checkTrainerSettings();
periodicTick();
DEBUG_TIMER_STOP(debugTimerPerMain1);
@@ -500,7 +506,7 @@ void perMain()
mainRequestFlags &= ~(1 << REQUEST_FLIGHT_RESET);
}
doLoopCommonActions();
checkBacklight();
event_t evt = getEvent(false);
@@ -512,14 +518,14 @@ void perMain()
#endif
#if defined(STM32)
if (SD_CARD_PRESENT() && !sdMounted()) {
if (!usbPlugged() && SD_CARD_PRESENT() && !sdMounted()) {
sdMount();
}
#endif
#if !defined(EEPROM)
// In case the SD card is removed during the session
if (!SD_CARD_PRESENT() && !globalData.unexpectedShutdown) {
if (!usbPlugged() && !SD_CARD_PRESENT() && !globalData.unexpectedShutdown) {
drawFatalErrorScreen(STR_NO_SDCARD);
return;
}