1
0
Fork 0
mirror of https://github.com/EdgeTX/edgetx.git synced 2025-07-16 12:55:10 +03:00

Bsongis/sport power line on off (#7435)

SmartPort Power
This commit is contained in:
Bertrand Songis 2020-03-10 17:48:58 +01:00 committed by GitHub
parent cf5e2b3fd5
commit f100e4375a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
24 changed files with 126 additions and 3 deletions

View file

@ -783,7 +783,7 @@ PACK(struct RadioData {
NOBACKUP(uint8_t disableRssiPoweroffAlarm:1);
NOBACKUP(uint8_t USBMode:2);
NOBACKUP(uint8_t jackMode:2);
NOBACKUP(uint8_t spare3:1);
NOBACKUP(uint8_t sportUpdatePower:1);
NOBACKUP(char ttsLanguage[2]);
NOBACKUP(int8_t beepVolume:4);
NOBACKUP(int8_t wavVolume:4);

View file

@ -72,6 +72,9 @@ enum MenuRadioHardwareItems {
#endif
ITEM_RADIO_HARDWARE_JITTER_FILTER,
#if defined(SPORT_UPDATE_PWR_GPIO)
ITEM_RADIO_HARDWARE_SPORT_UPDATE_POWER,
#endif
ITEM_RADIO_HARDWARE_DEBUG,
ITEM_RADIO_HARDWARE_MAX
};
@ -119,6 +122,12 @@ void onHardwareAntennaSwitchConfirm(const char * result)
#define MAX_BAUDRATE_ROW HIDDEN_ROW
#endif
#if defined(SPORT_UPDATE_PWR_GPIO)
#define SPORT_POWER_ROWS 0,
#else
#define SPORT_POWER_ROWS
#endif
bool menuRadioHardware(event_t event)
{
MENU(STR_HARDWARE, RADIO_ICONS, menuTabGeneral, MENU_RADIO_HARDWARE, ITEM_RADIO_HARDWARE_MAX, {
@ -148,6 +157,7 @@ bool menuRadioHardware(event_t event)
AUX_SERIAL_ROW /* aux serial mode */
0, /* ADC filter */
SPORT_POWER_ROWS
1, /* Debug */
});
@ -365,6 +375,16 @@ bool menuRadioHardware(event_t event)
break;
}
#if defined(SPORT_UPDATE_PWR_GPIO)
case ITEM_RADIO_HARDWARE_SPORT_UPDATE_POWER:
lcdDrawText(MENUS_MARGIN_LEFT, y, STR_SPORT_UPDATE_POWER_MODE);
g_eeGeneral.sportUpdatePower = editChoice(HW_SETTINGS_COLUMN + 50, y, STR_SPORT_UPDATE_POWER_MODES, g_eeGeneral.sportUpdatePower, 0, 1, attr, event);
if (attr && checkIncDec_Ret) {
SPORT_UPDATE_POWER_INIT();
}
break;
#endif
case ITEM_RADIO_HARDWARE_DEBUG:
lcdDrawText(MENUS_MARGIN_LEFT, y, STR_DEBUG);
lcdDrawText(HW_SETTINGS_COLUMN + 50, y, STR_ANALOGS_BTN, menuHorizontalPosition == 0 ? attr : 0);

View file

@ -184,6 +184,9 @@ enum {
ITEM_RADIO_HARDWARE_JITTER_FILTER,
ITEM_RADIO_HARDWARE_RAS,
#if defined(SPORT_UPDATE_PWR_GPIO)
ITEM_RADIO_HARDWARE_SPORT_UPDATE_POWER,
#endif
ITEM_RADIO_HARDWARE_DEBUG,
#if defined(EEPROM_RLC)
ITEM_RADIO_BACKUP_EEPROM,
@ -295,6 +298,12 @@ void onHardwareAntennaSwitchConfirm(const char * result)
#define HW_SETTINGS_COLUMN2 (HW_SETTINGS_COLUMN1 + 5*FW)
#endif
#if defined(SPORT_UPDATE_PWR_GPIO)
#define SPORT_POWER_ROWS 0,
#else
#define SPORT_POWER_ROWS
#endif
#if defined(EEPROM_RLC)
void onFactoryResetConfirm(const char * result)
{
@ -334,7 +343,7 @@ void menuRadioHardware(event_t event)
0 /* ADC filter */,
READONLY_ROW /* RAS */,
SPORT_POWER_ROWS
1 /* debugs */,
0,
@ -631,6 +640,14 @@ void menuRadioHardware(event_t event)
else
lcdDrawText(lcdNextPos, y, "---");
break;
#if defined(SPORT_UPDATE_PWR_GPIO)
case ITEM_RADIO_HARDWARE_SPORT_UPDATE_POWER:
g_eeGeneral.sportUpdatePower = editChoice(HW_SETTINGS_COLUMN2, y, STR_SPORT_UPDATE_POWER_MODE, STR_SPORT_UPDATE_POWER_MODES, g_eeGeneral.sportUpdatePower, 0, 1, attr, event);
if (attr && checkIncDec_Ret) {
SPORT_UPDATE_POWER_INIT();
}
break;
#endif
case ITEM_RADIO_HARDWARE_DEBUG:
lcdDrawTextAlignedLeft(y, STR_DEBUG);

View file

@ -487,6 +487,7 @@ const char * FrskyDeviceFirmwareUpdate::flashFirmware(const char * filename)
uint8_t extPwr = IS_EXTERNAL_MODULE_ON();
EXTERNAL_MODULE_OFF();
uint8_t spuPwr = IS_SPORT_UPDATE_POWER_ON();
SPORT_UPDATE_POWER_OFF();
drawProgressScreen(getBasename(filename), STR_DEVICE_RESET, 0, 0);
@ -531,6 +532,10 @@ const char * FrskyDeviceFirmwareUpdate::flashFirmware(const char * filename)
setupPulsesExternalModule();
}
if (spuPwr) {
SPORT_UPDATE_POWER_ON();
}
state = SPORT_IDLE;
resumePulses();
@ -752,6 +757,7 @@ const char * FrskyChipFirmwareUpdate::flashFirmware(const char * filename, bool
uint8_t extPwr = IS_EXTERNAL_MODULE_ON();
EXTERNAL_MODULE_OFF();
uint8_t spuPwr = IS_SPORT_UPDATE_POWER_ON();
SPORT_UPDATE_POWER_OFF();
if (wait) {
@ -791,6 +797,10 @@ const char * FrskyChipFirmwareUpdate::flashFirmware(const char * filename, bool
setupPulsesExternalModule();
}
if (spuPwr) {
SPORT_UPDATE_POWER_ON();
}
resumePulses();
return result;

View file

@ -528,6 +528,7 @@ bool multiFlashFirmware(uint8_t moduleIdx, const char * filename)
uint8_t extPwr = IS_EXTERNAL_MODULE_ON();
EXTERNAL_MODULE_OFF();
uint8_t spuPwr = IS_SPORT_UPDATE_POWER_ON();
SPORT_UPDATE_POWER_OFF();
drawProgressScreen(getBasename(filename), STR_DEVICE_RESET, 0, 0);
@ -575,6 +576,10 @@ bool multiFlashFirmware(uint8_t moduleIdx, const char * filename)
setupPulsesExternalModule();
}
if (spuPwr) {
SPORT_UPDATE_POWER_ON();
}
resumePulses();
return result == nullptr;

View file

@ -1966,6 +1966,10 @@ void opentxInit()
btInit();
#endif
#if defined(SPORT_UPDATE_PWR_GPIO)
SPORT_UPDATE_POWER_INIT();
#endif
#if defined(COLORLCD)
loadTheme();
loadFontCache();

View file

@ -74,6 +74,14 @@ void sportUpdatePowerOff()
{
GPIO_ResetBits(SPORT_UPDATE_PWR_GPIO, SPORT_UPDATE_PWR_GPIO_PIN);
}
void sportUpdatePowerInit()
{
if (g_eeGeneral.sportUpdatePower == 1)
sportUpdatePowerOn();
else
sportUpdatePowerOff();
}
#endif
void boardInit()

View file

@ -599,11 +599,16 @@ void telemetryPortInvertedInit(uint32_t baudrate);
#if HAS_SPORT_UPDATE_CONNECTOR()
void sportUpdatePowerOn();
void sportUpdatePowerOff();
void sportUpdatePowerInit();
#define SPORT_UPDATE_POWER_ON() sportUpdatePowerOn()
#define SPORT_UPDATE_POWER_OFF() sportUpdatePowerOff()
#define SPORT_UPDATE_POWER_INIT() sportUpdatePowerInit()
#define IS_SPORT_UPDATE_POWER_ON() (GPIO_ReadInputDataBit(SPORT_UPDATE_PWR_GPIO, SPORT_UPDATE_PWR_GPIO_PIN) == Bit_SET)
#else
#define SPORT_UPDATE_POWER_ON()
#define SPORT_UPDATE_POWER_OFF()
#define SPORT_UPDATE_POWER_INIT()
#define IS_SPORT_UPDATE_POWER_ON() (false)
#endif
// Second serial port driver

View file

@ -437,6 +437,10 @@ void sportUpdatePowerOff()
{
}
void sportUpdatePowerInit()
{
}
void boardInit()
{
}

View file

@ -62,6 +62,14 @@ void sportUpdatePowerOff()
{
GPIO_SPORT_UPDATE_PWR_GPIO_OFF(SPORT_UPDATE_PWR_GPIO, SPORT_UPDATE_PWR_GPIO_PIN);
}
void sportUpdatePowerInit()
{
if (g_eeGeneral.sportUpdatePower == 1)
sportUpdatePowerOn();
else
sportUpdatePowerOff();
}
#endif
void boardInit()

View file

@ -720,12 +720,17 @@ void telemetryPortInvertedInit(uint32_t baudrate);
void sportUpdateInit();
void sportUpdatePowerOn();
void sportUpdatePowerOff();
void sportUpdatePowerInit();
#define SPORT_UPDATE_POWER_ON() sportUpdatePowerOn()
#define SPORT_UPDATE_POWER_OFF() sportUpdatePowerOff()
#define SPORT_UPDATE_POWER_INIT() sportUpdatePowerInit()
#define IS_SPORT_UPDATE_POWER_ON() (GPIO_ReadInputDataBit(SPORT_UPDATE_PWR_GPIO, SPORT_UPDATE_PWR_GPIO_PIN) == Bit_SET)
#else
#define sportUpdateInit()
#define SPORT_UPDATE_POWER_ON()
#define SPORT_UPDATE_POWER_OFF()
#define SPORT_UPDATE_POWER_INIT()
#define IS_SPORT_UPDATE_POWER_ON() (false)
#endif
// Audio driver

View file

@ -78,6 +78,7 @@ ISTR(SWTYPES);
ISTR(POTTYPES);
ISTR(SLIDERTYPES);
ISTR(ANTENNA_MODES);
ISTR(SPORT_UPDATE_POWER_MODES);
#if defined(PCBSKY9X) && defined(REVX)
ISTR(VOUTPUT_TYPE);
@ -580,6 +581,7 @@ const char STR_RTC_CHECK[] = TR_RTC_CHECK;
const char STR_EXIT[] = TR_EXIT;
const char STR_MODULE_RANGE[] = TR_MODULE_RANGE;
const char STR_RECEIVER_OPTIONS[] = TR_RECEIVER_OPTIONS;
const char STR_SPORT_UPDATE_POWER_MODE[] = TR_SPORT_UPDATE_POWER_MODE;
#if defined(PCBHORUS)
const char STR_ASSIGN_SPLASH[] = TR_ASSIGN_SPLASH;

View file

@ -863,6 +863,8 @@ extern const char STR_MENU_OTHER[];
extern const char STR_MENU_INVERT[];
extern const char STR_JITTER_FILTER[];
extern const char STR_RTC_CHECK[];
extern const char STR_SPORT_UPDATE_POWER_MODE[];
extern const char STR_SPORT_UPDATE_POWER_MODES[];
#if MENUS_LOCK == 1
extern const char STR_UNLOCKED[];

View file

@ -980,6 +980,9 @@
#define STR_FACTORYRESET "Tovární reset"
#define TR_CONFIRMRESET TR("Smazat vše ?", "Smazat modely a nastavení?")
#define TR_TOO_MANY_LUA_SCRIPTS "Příliš mnoho skriptů!"
#define TR_SPORT_UPDATE_POWER_MODE "SP Power"
#define LEN_SPORT_UPDATE_POWER_MODES "\004"
#define TR_SPORT_UPDATE_POWER_MODES "AUTO""ON\0 "
// Horus and Taranis column headers
#define TR_PHASES_HEADERS_NAME "Název"

View file

@ -986,6 +986,9 @@
#define STR_FACTORYRESET TR("Werksreset", "Auf Werkseinstellungen")
#define TR_CONFIRMRESET TR("Alles löschen? ","ALLE Modelle+Einst. löschen?")
#define TR_TOO_MANY_LUA_SCRIPTS "Zu viele Skripte!"
#define TR_SPORT_UPDATE_POWER_MODE "SP Power"
#define LEN_SPORT_UPDATE_POWER_MODES "\004"
#define TR_SPORT_UPDATE_POWER_MODES "AUTO""ON\0 "
// Horus and Taranis specific column headers
#define TR_PHASES_HEADERS_NAME "Name "

View file

@ -985,6 +985,9 @@
#define STR_FACTORYRESET "Factory reset"
#define TR_CONFIRMRESET TR("Erase ALL", "Erase ALL models and settings?")
#define TR_TOO_MANY_LUA_SCRIPTS "Too many Lua scripts!"
#define TR_SPORT_UPDATE_POWER_MODE "SP Power"
#define LEN_SPORT_UPDATE_POWER_MODES "\004"
#define TR_SPORT_UPDATE_POWER_MODES "AUTO""ON\0 "
// Horus and Taranis column headers
#define TR_PHASES_HEADERS_NAME "Name"

View file

@ -1005,6 +1005,9 @@
#define STR_FACTORYRESET "Factory reset"
#define TR_CONFIRMRESET "Erase ALL models and settings?"
#define TR_TOO_MANY_LUA_SCRIPTS "Too many Lua scripts!"
#define TR_SPORT_UPDATE_POWER_MODE "SP Power"
#define LEN_SPORT_UPDATE_POWER_MODES "\004"
#define TR_SPORT_UPDATE_POWER_MODES "AUTO""ON\0 "
// Horus and Taranis column headers

View file

@ -999,6 +999,9 @@
#define STR_FACTORYRESET "Factory reset"
#define TR_CONFIRMRESET "Erase ALL models and settings?"
#define TR_TOO_MANY_LUA_SCRIPTS "Too many Lua scripts!"
#define TR_SPORT_UPDATE_POWER_MODE "SP Power"
#define LEN_SPORT_UPDATE_POWER_MODES "\004"
#define TR_SPORT_UPDATE_POWER_MODES "AUTO""ON\0 "
// Horus and Taranis column headers

View file

@ -1009,6 +1009,9 @@
#endif
#define TR_CONFIRMRESET TR("Effacer TOUT?","Effacer TOUS modèles/réglages?")
#define TR_TOO_MANY_LUA_SCRIPTS "Trop de scripts lua!"
#define TR_SPORT_UPDATE_POWER_MODE "SP Power"
#define LEN_SPORT_UPDATE_POWER_MODES "\004"
#define TR_SPORT_UPDATE_POWER_MODES "AUTO""ON\0 "
// Horus and Taranis column headers
#define TR_PHASES_HEADERS_NAME "Nom"

View file

@ -1001,6 +1001,9 @@
#define STR_FACTORYRESET "Inizializza dati"
#define TR_CONFIRMRESET "Resettare TUTTI i dati?"
#define TR_TOO_MANY_LUA_SCRIPTS "Troppi Scripts Lua!"
#define TR_SPORT_UPDATE_POWER_MODE "SP Power"
#define LEN_SPORT_UPDATE_POWER_MODES "\004"
#define TR_SPORT_UPDATE_POWER_MODES "AUTO""ON\0 "
// Horus and Taranis column headers

View file

@ -993,6 +993,9 @@
#endif
#define TR_CONFIRMRESET TR("Wis Alles?", "Wis ALLE modellen en instellingen?")
#define TR_TOO_MANY_LUA_SCRIPTS "Te veel Lua scripts!"
#define TR_SPORT_UPDATE_POWER_MODE "SP Power"
#define LEN_SPORT_UPDATE_POWER_MODES "\004"
#define TR_SPORT_UPDATE_POWER_MODES "AUTO""ON\0 "
// Horus and Taranis column headers

View file

@ -1000,6 +1000,9 @@
#define STR_FACTORYRESET "Ustaw.Fabrycz"
#define TR_CONFIRMRESET "WYkasować wszytkie modele? "
#define TR_TOO_MANY_LUA_SCRIPTS "Za dużo skryptów Lua!"
#define TR_SPORT_UPDATE_POWER_MODE "SP Power"
#define LEN_SPORT_UPDATE_POWER_MODES "\004"
#define TR_SPORT_UPDATE_POWER_MODES "AUTO""ON\0 "
// Horus and Taranis column headers

View file

@ -990,6 +990,9 @@
#define STR_FACTORYRESET "Factory reset"
#define TR_CONFIRMRESET "Erase ALL models and settings?"
#define TR_TOO_MANY_LUA_SCRIPTS "Too many Lua scripts!"
#define TR_SPORT_UPDATE_POWER_MODE "SP Power"
#define LEN_SPORT_UPDATE_POWER_MODES "\004"
#define TR_SPORT_UPDATE_POWER_MODES "AUTO""ON\0 "
// Horus and Taranis column headers

View file

@ -1000,6 +1000,9 @@
#define STR_FACTORYRESET "Factory reset"
#define TR_CONFIRMRESET "Erase ALL models and settings?"
#define TR_TOO_MANY_LUA_SCRIPTS "För många Lua-scripts!"
#define TR_SPORT_UPDATE_POWER_MODE "SP Power"
#define LEN_SPORT_UPDATE_POWER_MODES "\004"
#define TR_SPORT_UPDATE_POWER_MODES "AUTO""ON\0 "
// Horus and Taranis column headers