chore(radio): Cleanup startup code, fix throttle warning led color, startup haptic option (#4027)
This commit is contained in:
@@ -9,8 +9,6 @@ set(PCB "X9D+" CACHE STRING "Radio type, one of: ${PCB_TYPES}")
|
||||
set_property(CACHE PCB PROPERTY STRINGS ${PCB_TYPES})
|
||||
set(TRANSLATIONS "EN" CACHE STRING "Radio language, one of: ${RADIO_LANGUAGES}")
|
||||
set_property(CACHE TRANSLATIONS PROPERTY STRINGS ${RADIO_LANGUAGES})
|
||||
set(SPLASH "DEFAULT" CACHE STRING "Splash (DEFAULT/OFF/FRSKY)")
|
||||
set_property(CACHE SPLASH PROPERTY STRINGS DEFAULT OFF FRSKY)
|
||||
set(DEFAULT_MODE "" CACHE STRING "Default sticks mode")
|
||||
set(POPUP_LEVEL 2 CACHE STRING "Popup level")
|
||||
|
||||
@@ -269,10 +267,6 @@ if(DANGEROUS_MODULE_FUNCTIONS)
|
||||
add_definitions(-DDANGEROUS_MODULE_FUNCTIONS)
|
||||
endif()
|
||||
|
||||
if(NOT SPLASH STREQUAL OFF)
|
||||
add_definitions(-DSPLASH)
|
||||
endif()
|
||||
|
||||
if(NOT DEFAULT_MODE STREQUAL "")
|
||||
add_definitions(-DDEFAULT_MODE=${DEFAULT_MODE})
|
||||
endif()
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
|
||||
#include "keys.h"
|
||||
#include "common/stdlcd/menus.h"
|
||||
#include "common/stdlcd/features.h"
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#define NAVIGATION_LINE_BY_LINE 0x40
|
||||
|
||||
@@ -38,13 +38,6 @@ void menuRadioDiagAnalogs(event_t event)
|
||||
|
||||
static int viewpage = ANAVIEW_FIRST;
|
||||
|
||||
// TODO enum
|
||||
#if defined(TX_CAPACITY_MEASUREMENT)
|
||||
#define ANAS_ITEMS_COUNT 3
|
||||
#else
|
||||
#define ANAS_ITEMS_COUNT 1
|
||||
#endif
|
||||
|
||||
switch (event) {
|
||||
case EVT_KEY_FIRST(KEY_RIGHT):
|
||||
case EVT_KEY_BREAK(KEY_PAGEDN):
|
||||
@@ -74,11 +67,11 @@ void menuRadioDiagAnalogs(event_t event)
|
||||
switch (viewpage) {
|
||||
case (ANAVIEW_CALIB):
|
||||
SIMPLE_SUBMENU(STR_MENU_RADIO_ANALOGS_CALIB,
|
||||
HEADER_LINE+ANAS_ITEMS_COUNT);
|
||||
HEADER_LINE+1);
|
||||
break;
|
||||
case (ANAVIEW_RAWLOWFPS):
|
||||
SIMPLE_SUBMENU(STR_MENU_RADIO_ANALOGS_RAWLOWFPS,
|
||||
HEADER_LINE+ANAS_ITEMS_COUNT);
|
||||
HEADER_LINE+1);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -38,12 +38,6 @@ const unsigned char sticks[] = {
|
||||
value = editChoice(RADIO_SETUP_2ND_COLUMN, y, nullptr, nullptr, tmp, -2, +2, attr, event); \
|
||||
}
|
||||
|
||||
#if defined(SPLASH)
|
||||
#define CASE_SPLASH_PARAM(x) x,
|
||||
#else
|
||||
#define CASE_SPLASH_PARAM(x)
|
||||
#endif
|
||||
|
||||
#if defined(BATTGRAPH)
|
||||
#define CASE_BATTGRAPH(x) x,
|
||||
#else
|
||||
@@ -83,7 +77,6 @@ enum {
|
||||
CASE_IMU(ITEM_RADIO_SETUP_IMU_OFFSET)
|
||||
ITEM_RADIO_SETUP_ALARMS_LABEL,
|
||||
ITEM_RADIO_SETUP_BATTERY_WARNING,
|
||||
CASE_CAPACITY(ITEM_RADIO_SETUP_CAPACITY_WARNING)
|
||||
ITEM_RADIO_SETUP_INACTIVITY_ALARM,
|
||||
ITEM_RADIO_SETUP_MEMORY_WARNING,
|
||||
ITEM_RADIO_SETUP_ALARM_WARNING,
|
||||
@@ -188,7 +181,7 @@ void menuRadioSetup(event_t event)
|
||||
CASE_IMU(LABEL(IMU))
|
||||
CASE_IMU(0)
|
||||
CASE_IMU(0)
|
||||
LABEL(ALARMS), 0, CASE_CAPACITY(0)
|
||||
LABEL(ALARMS), 0,
|
||||
0, 0, 0, 0, /* ITEM_RADIO_SETUP_INACTIVITY_ALARM ITEM_RADIO_SETUP_MEMORY_WARNING ITEM_RADIO_SETUP_ALARM_WARNING ITEM_RADIO_SETUP_RSSI_POWEROFF_ALARM */
|
||||
CASE_BACKLIGHT(LABEL(BACKLIGHT))
|
||||
CASE_BACKLIGHT(0)
|
||||
@@ -526,14 +519,6 @@ void menuRadioSetup(event_t event)
|
||||
break;
|
||||
}
|
||||
|
||||
#if defined(TX_CAPACITY_MEASUREMENT)
|
||||
case ITEM_RADIO_SETUP_CAPACITY_WARNING:
|
||||
lcdDrawTextAlignedLeft(y, STR_CAPAWARNING);
|
||||
drawValueWithUnit(LCD_W-2, y, g_eeGeneral.mAhWarn*50, UNIT_MAH, attr|RIGHT) ;
|
||||
if(attr) CHECK_INCDEC_GENVAR(event, g_eeGeneral.mAhWarn, 0, 100);
|
||||
break;
|
||||
#endif
|
||||
|
||||
case ITEM_RADIO_SETUP_INACTIVITY_ALARM:
|
||||
lcdDrawText(INDENT_WIDTH, y, STR_INACTIVITYALARM);
|
||||
lcdDrawNumber(LCD_W-7, y, g_eeGeneral.inactivityTimer, attr|RIGHT);
|
||||
@@ -588,7 +573,6 @@ void menuRadioSetup(event_t event)
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if defined(SPLASH)
|
||||
case ITEM_RADIO_SETUP_DISABLE_SPLASH:
|
||||
{
|
||||
lcdDrawTextAlignedLeft(y, STR_SPLASHSCREEN);
|
||||
@@ -602,7 +586,6 @@ void menuRadioSetup(event_t event)
|
||||
if (attr) g_eeGeneral.splashMode = -checkIncDecGen(event, -g_eeGeneral.splashMode, -3, 4);
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
|
||||
case ITEM_RADIO_SETUP_START_SOUND:
|
||||
lcdDrawTextAlignedLeft(y, STR_PLAY_HELLO);
|
||||
|
||||
@@ -21,7 +21,6 @@
|
||||
|
||||
#include "opentx.h"
|
||||
|
||||
#if defined(SPLASH)
|
||||
const unsigned char splashdata[] = {
|
||||
'S','P','S',0,
|
||||
#include "bitmaps/128x64/splash.lbm"
|
||||
@@ -35,4 +34,3 @@ void drawSplash()
|
||||
lcdDraw1bitBitmap(0, 0, splash_lbm, 0, 0);
|
||||
lcdRefresh();
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -169,25 +169,8 @@ void menuStatisticsDebug(event_t event)
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
uint8_t y = FH + 1;
|
||||
|
||||
#if defined(TX_CAPACITY_MEASUREMENT)
|
||||
// current
|
||||
lcdDrawTextAlignedLeft(y, STR_CPU_CURRENT);
|
||||
drawValueWithUnit(MENU_DEBUG_COL1_OFS, y, getCurrent(), UNIT_MILLIAMPS, LEFT);
|
||||
uint32_t current_scale = 488 + g_eeGeneral.txCurrentCalibration;
|
||||
lcdDrawChar(MENU_DEBUG_COL2_OFS, y, '>');
|
||||
drawValueWithUnit(MENU_DEBUG_COL2_OFS+FW+1, y, Current_max*10*current_scale/8192, UNIT_RAW, LEFT);
|
||||
y += FH;
|
||||
|
||||
// consumption
|
||||
lcdDrawTextAlignedLeft(y, STR_CPU_MAH);
|
||||
drawValueWithUnit(MENU_DEBUG_COL1_OFS, y, g_eeGeneral.mAhUsed + Current_used*current_scale/8192/36, UNIT_MAH, LEFT|PREC1);
|
||||
y += FH;
|
||||
#endif
|
||||
|
||||
|
||||
lcdDrawTextAlignedLeft(y, STR_FREE_MEM_LABEL);
|
||||
lcdDrawNumber(MENU_DEBUG_COL1_OFS, y, availableMemory(), LEFT);
|
||||
lcdDrawText(lcdLastRightPos+FW, y, STR_BYTES);
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
|
||||
#include "keys.h"
|
||||
#include "common/stdlcd/menus.h"
|
||||
#include "common/stdlcd/features.h"
|
||||
|
||||
inline bool isRadioMenuDisplayed()
|
||||
{
|
||||
|
||||
@@ -41,12 +41,6 @@ const unsigned char sticks[] = {
|
||||
value = editChoice(RADIO_SETUP_2ND_COLUMN, y, nullptr, nullptr, tmp, -2, +2, attr, event); \
|
||||
}
|
||||
|
||||
#if defined(SPLASH)
|
||||
#define CASE_SPLASH_PARAM(x) x,
|
||||
#else
|
||||
#define CASE_SPLASH_PARAM(x)
|
||||
#endif
|
||||
|
||||
enum MenuRadioSetupItems {
|
||||
CASE_RTCLOCK(ITEM_RADIO_SETUP_DATE)
|
||||
CASE_RTCLOCK(ITEM_RADIO_SETUP_TIME)
|
||||
@@ -535,7 +529,6 @@ void menuRadioSetup(event_t event)
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if defined(SPLASH)
|
||||
case ITEM_RADIO_SETUP_DISABLE_SPLASH:
|
||||
lcdDrawTextAlignedLeft(y, STR_SPLASHSCREEN);
|
||||
if (SPLASH_NEEDED()) {
|
||||
@@ -547,7 +540,6 @@ void menuRadioSetup(event_t event)
|
||||
}
|
||||
if (attr) g_eeGeneral.splashMode = -checkIncDecGen(event, -g_eeGeneral.splashMode, -3, 4);
|
||||
break;
|
||||
#endif
|
||||
|
||||
case ITEM_RADIO_SETUP_START_SOUND:
|
||||
lcdDrawTextAlignedLeft(y, STR_PLAY_HELLO);
|
||||
|
||||
@@ -21,7 +21,6 @@
|
||||
|
||||
#include "opentx.h"
|
||||
|
||||
#if defined(SPLASH)
|
||||
#define MAXIMUM_SPLASH_IMAGE_SIZE 3072
|
||||
const struct {
|
||||
const uint8_t __magic_prefix[4] = { 'S','P','S',0 };
|
||||
@@ -39,4 +38,3 @@ void drawSplash()
|
||||
lcdDrawRleBitmap(0, 0, splash_lbm);
|
||||
lcdRefresh();
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -49,36 +49,63 @@ FullScreenDialog::FullScreenDialog(
|
||||
|
||||
bringToTop();
|
||||
|
||||
init();
|
||||
build();
|
||||
|
||||
lv_obj_add_event_cb(lvobj, FullScreenDialog::long_pressed, LV_EVENT_LONG_PRESSED, nullptr);
|
||||
lv_obj_add_event_cb(lvobj, FullScreenDialog::on_draw, LV_EVENT_DRAW_MAIN_BEGIN, nullptr);
|
||||
}
|
||||
|
||||
void FullScreenDialog::init()
|
||||
void FullScreenDialog::on_draw(lv_event_t* e)
|
||||
{
|
||||
if (!loaded) {
|
||||
loaded = true;
|
||||
|
||||
std::string t;
|
||||
if (type == WARNING_TYPE_ALERT) {
|
||||
#if defined(TRANSLATIONS_FR) || defined(TRANSLATIONS_IT) || defined(TRANSLATIONS_CZ)
|
||||
t = std::string(STR_WARNING) + "\n" + title;
|
||||
#else
|
||||
t = title + "\n" + STR_WARNING;
|
||||
#endif
|
||||
} else if (!title.empty()) {
|
||||
t = title;
|
||||
auto dlg = (FullScreenDialog*)lv_obj_get_user_data(lv_event_get_target(e));
|
||||
if (dlg) {
|
||||
if (!dlg->loaded) {
|
||||
dlg->loaded = true;
|
||||
dlg->delayedInit();
|
||||
}
|
||||
new StaticText(this,
|
||||
rect_t{ALERT_TITLE_LEFT, ALERT_TITLE_TOP, LCD_W - ALERT_TITLE_LEFT - PAGE_PADDING, LCD_H - ALERT_TITLE_TOP - PAGE_PADDING},
|
||||
t.c_str(), 0, COLOR_THEME_WARNING | FONT(XL));
|
||||
}
|
||||
}
|
||||
|
||||
messageLabel = new StaticText(this,
|
||||
rect_t{ALERT_MESSAGE_LEFT, ALERT_MESSAGE_TOP, LCD_W - ALERT_MESSAGE_LEFT - PAGE_PADDING, LCD_H - ALERT_MESSAGE_TOP - PAGE_PADDING},
|
||||
message.c_str(), 0, COLOR_THEME_PRIMARY1 | FONT(BOLD));
|
||||
void FullScreenDialog::build()
|
||||
{
|
||||
std::string t;
|
||||
if (type == WARNING_TYPE_ALERT) {
|
||||
#if defined(TRANSLATIONS_FR) || defined(TRANSLATIONS_IT) || defined(TRANSLATIONS_CZ)
|
||||
t = std::string(STR_WARNING) + "\n" + title;
|
||||
#else
|
||||
t = title + "\n" + STR_WARNING;
|
||||
#endif
|
||||
} else if (!title.empty()) {
|
||||
t = title;
|
||||
}
|
||||
new StaticText(this,
|
||||
rect_t{ALERT_TITLE_LEFT, ALERT_TITLE_TOP, LCD_W - ALERT_TITLE_LEFT - PAGE_PADDING, LCD_H - ALERT_TITLE_TOP - PAGE_PADDING},
|
||||
t.c_str(), 0, COLOR_THEME_WARNING | FONT(XL));
|
||||
|
||||
if (!action.empty()) {
|
||||
auto btn = new TextButton(this, { (LCD_W - 280) / 2, LCD_H - 48, 280, 40 }, action.c_str(),
|
||||
messageLabel = new StaticText(this,
|
||||
rect_t{ALERT_MESSAGE_LEFT, ALERT_MESSAGE_TOP, LCD_W - ALERT_MESSAGE_LEFT - PAGE_PADDING, LCD_H - ALERT_MESSAGE_TOP - PAGE_PADDING},
|
||||
message.c_str(), 0, COLOR_THEME_PRIMARY1 | FONT(BOLD));
|
||||
|
||||
if (!action.empty()) {
|
||||
auto btn = new TextButton(this, { (LCD_W - 280) / 2, LCD_H - 48, 280, 40 }, action.c_str(),
|
||||
[=]() {
|
||||
closeDialog();
|
||||
return 0;
|
||||
}, COLOR_THEME_PRIMARY1 | FONT(BOLD));
|
||||
lv_obj_set_style_bg_color(btn->getLvObj(), makeLvColor(COLOR_THEME_SECONDARY3), 0);
|
||||
lv_obj_set_style_bg_opa(btn->getLvObj(), LV_OPA_COVER, 0);
|
||||
lv_obj_set_style_text_color(btn->getLvObj(), makeLvColor(COLOR_THEME_PRIMARY1), 0);
|
||||
} else {
|
||||
if (type == WARNING_TYPE_CONFIRM) {
|
||||
auto btn = new TextButton(this, { LCD_W / 3 - 50, LCD_H - 48, 100, 40 }, STR_EXIT,
|
||||
[=]() {
|
||||
deleteLater();
|
||||
return 0;
|
||||
}, COLOR_THEME_PRIMARY1 | FONT(BOLD));
|
||||
lv_obj_set_style_bg_color(btn->getLvObj(), makeLvColor(COLOR_THEME_SECONDARY3), 0);
|
||||
lv_obj_set_style_bg_opa(btn->getLvObj(), LV_OPA_COVER, 0);
|
||||
lv_obj_set_style_text_color(btn->getLvObj(), makeLvColor(COLOR_THEME_PRIMARY1), 0);
|
||||
btn = new TextButton(this, { LCD_W * 2 / 3 - 50, LCD_H - 48, 100, 40 }, STR_OK,
|
||||
[=]() {
|
||||
closeDialog();
|
||||
return 0;
|
||||
@@ -86,25 +113,6 @@ void FullScreenDialog::init()
|
||||
lv_obj_set_style_bg_color(btn->getLvObj(), makeLvColor(COLOR_THEME_SECONDARY3), 0);
|
||||
lv_obj_set_style_bg_opa(btn->getLvObj(), LV_OPA_COVER, 0);
|
||||
lv_obj_set_style_text_color(btn->getLvObj(), makeLvColor(COLOR_THEME_PRIMARY1), 0);
|
||||
} else {
|
||||
if (type == WARNING_TYPE_CONFIRM) {
|
||||
auto btn = new TextButton(this, { LCD_W / 3 - 50, LCD_H - 48, 100, 40 }, STR_EXIT,
|
||||
[=]() {
|
||||
deleteLater();
|
||||
return 0;
|
||||
}, COLOR_THEME_PRIMARY1 | FONT(BOLD));
|
||||
lv_obj_set_style_bg_color(btn->getLvObj(), makeLvColor(COLOR_THEME_SECONDARY3), 0);
|
||||
lv_obj_set_style_bg_opa(btn->getLvObj(), LV_OPA_COVER, 0);
|
||||
lv_obj_set_style_text_color(btn->getLvObj(), makeLvColor(COLOR_THEME_PRIMARY1), 0);
|
||||
btn = new TextButton(this, { LCD_W * 2 / 3 - 50, LCD_H - 48, 100, 40 }, STR_OK,
|
||||
[=]() {
|
||||
closeDialog();
|
||||
return 0;
|
||||
}, COLOR_THEME_PRIMARY1 | FONT(BOLD));
|
||||
lv_obj_set_style_bg_color(btn->getLvObj(), makeLvColor(COLOR_THEME_SECONDARY3), 0);
|
||||
lv_obj_set_style_bg_opa(btn->getLvObj(), LV_OPA_COVER, 0);
|
||||
lv_obj_set_style_text_color(btn->getLvObj(), makeLvColor(COLOR_THEME_PRIMARY1), 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -79,9 +79,11 @@ class FullScreenDialog : public Window
|
||||
bool loaded = false;
|
||||
StaticText* messageLabel;
|
||||
|
||||
virtual void init();
|
||||
virtual void delayedInit() {}
|
||||
void build();
|
||||
|
||||
static void long_pressed(lv_event_t* e);
|
||||
static void on_draw(lv_event_t* e);
|
||||
};
|
||||
|
||||
#endif // _FULLSCREEN_DIALOG_H_
|
||||
|
||||
@@ -19,7 +19,11 @@
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#if defined(SPLASH)
|
||||
#include "opentx.h"
|
||||
#include "inactivity_timer.h"
|
||||
#include "stamp.h"
|
||||
|
||||
extern void checkSpeakerVolume();
|
||||
|
||||
#include "opentx.h"
|
||||
#include "stamp.h"
|
||||
@@ -125,4 +129,49 @@ void drawSplash()
|
||||
|
||||
MainWindow::instance()->setActiveScreen();
|
||||
}
|
||||
#endif
|
||||
|
||||
static tmr10ms_t splashStartTime = 0;
|
||||
|
||||
void startSplash()
|
||||
{
|
||||
if (!UNEXPECTED_SHUTDOWN()) {
|
||||
splashStartTime = get_tmr10ms();
|
||||
drawSplash();
|
||||
}
|
||||
}
|
||||
|
||||
void waitSplash()
|
||||
{
|
||||
// Handle color splash screen
|
||||
if (splashStartTime) {
|
||||
|
||||
#if defined(SIMU)
|
||||
// Simulator - inputsMoved() returns true immediately without this!
|
||||
RTOS_WAIT_TICKS(30);
|
||||
#endif // defined(SIMU)
|
||||
|
||||
splashStartTime += SPLASH_TIMEOUT;
|
||||
while (splashStartTime > get_tmr10ms()) {
|
||||
WDG_RESET();
|
||||
checkSpeakerVolume();
|
||||
checkBacklight();
|
||||
RTOS_WAIT_TICKS(10);
|
||||
auto evt = getEvent();
|
||||
if (evt || inactivityCheckInputs()) {
|
||||
if (evt)
|
||||
killEvents(evt);
|
||||
break;
|
||||
}
|
||||
#if defined(SIMU)
|
||||
// Allow simulator to exit if closed while splash showing
|
||||
uint32_t pwr_check = pwrCheck();
|
||||
if (pwr_check == e_power_off) {
|
||||
break;
|
||||
}
|
||||
#endif // defined(SIMU)
|
||||
}
|
||||
|
||||
// Reset timer so special/global functions set to !1x don't get triggered
|
||||
START_SILENCE_PERIOD();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,33 +26,30 @@ SwitchWarnDialog::SwitchWarnDialog() :
|
||||
FullScreenDialog(WARNING_TYPE_ALERT, STR_SWITCHWARN, "", STR_PRESS_ANY_KEY_TO_SKIP)
|
||||
{
|
||||
last_bad_switches = 0xff;
|
||||
bad_pots = 0;
|
||||
last_bad_pots = 0x0;
|
||||
setCloseCondition(std::bind(&SwitchWarnDialog::warningInactive, this));
|
||||
}
|
||||
|
||||
void SwitchWarnDialog::init()
|
||||
void SwitchWarnDialog::delayedInit()
|
||||
{
|
||||
if (!loaded) {
|
||||
FullScreenDialog::init();
|
||||
lv_label_set_long_mode(messageLabel->getLvObj(), LV_LABEL_LONG_DOT);
|
||||
}
|
||||
lv_label_set_long_mode(messageLabel->getLvObj(), LV_LABEL_LONG_DOT);
|
||||
AUDIO_ERROR_MESSAGE(AU_SWITCH_ALERT);
|
||||
}
|
||||
|
||||
bool SwitchWarnDialog::warningInactive()
|
||||
{
|
||||
uint16_t bad_pots;
|
||||
|
||||
if (!isSwitchWarningRequired(bad_pots))
|
||||
return true;
|
||||
|
||||
if (last_bad_switches != switches_states || last_bad_pots != bad_pots) {
|
||||
// Redraw to update list of switches that need attention
|
||||
invalidate();
|
||||
if (last_bad_switches == 0xff || last_bad_pots & 0x7ff) {
|
||||
AUDIO_ERROR_MESSAGE(AU_SWITCH_ALERT);
|
||||
}
|
||||
}
|
||||
|
||||
last_bad_pots = bad_pots;
|
||||
last_bad_switches = switches_states;
|
||||
last_bad_pots = bad_pots;
|
||||
last_bad_switches = switches_states;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
@@ -61,14 +58,6 @@ void SwitchWarnDialog::paint(BitmapBuffer * dc)
|
||||
{
|
||||
if (!running) return;
|
||||
FullScreenDialog::paint(dc);
|
||||
}
|
||||
|
||||
void SwitchWarnDialog::checkEvents()
|
||||
{
|
||||
if (!running) return;
|
||||
|
||||
FullScreenDialog::checkEvents();
|
||||
if (deleted()) return;
|
||||
|
||||
std::string warn_txt;
|
||||
swarnstate_t states = g_model.switchWarningState;
|
||||
@@ -98,3 +87,21 @@ void SwitchWarnDialog::checkEvents()
|
||||
|
||||
messageLabel->setText(warn_txt);
|
||||
}
|
||||
|
||||
ThrottleWarnDialog::ThrottleWarnDialog(const char* msg) :
|
||||
FullScreenDialog(WARNING_TYPE_ALERT, TR_THROTTLE_UPPERCASE, msg, STR_PRESS_ANY_KEY_TO_SKIP)
|
||||
{
|
||||
setCloseCondition(std::bind(&ThrottleWarnDialog::warningInactive, this));
|
||||
}
|
||||
|
||||
void ThrottleWarnDialog::delayedInit()
|
||||
{
|
||||
lv_label_set_long_mode(messageLabel->getLvObj(), LV_LABEL_LONG_DOT);
|
||||
AUDIO_ERROR_MESSAGE(AU_THROTTLE_ALERT);
|
||||
}
|
||||
|
||||
bool ThrottleWarnDialog::warningInactive()
|
||||
{
|
||||
extern bool isThrottleWarningAlertNeeded();
|
||||
return !isThrottleWarningAlertNeeded();
|
||||
}
|
||||
|
||||
@@ -19,8 +19,7 @@
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#ifndef _SWITCH_WARN_DIALOG_H_
|
||||
#define _SWITCH_WARN_DIALOG_H_
|
||||
#pragma once
|
||||
|
||||
#include "fullscreen_dialog.h"
|
||||
#include "mainwindow.h"
|
||||
@@ -35,18 +34,28 @@ class SwitchWarnDialog : public FullScreenDialog
|
||||
std::string getName() const override { return "SwitchWarnDialog"; }
|
||||
#endif
|
||||
|
||||
void checkEvents() override;
|
||||
void paint(BitmapBuffer* dc) override;
|
||||
|
||||
protected:
|
||||
swarnstate_t last_bad_switches;
|
||||
uint16_t bad_pots;
|
||||
uint16_t last_bad_pots;
|
||||
StaticText* warn_label;
|
||||
|
||||
bool warningInactive();
|
||||
|
||||
void init() override;
|
||||
void delayedInit() override;
|
||||
};
|
||||
|
||||
class ThrottleWarnDialog : public FullScreenDialog
|
||||
{
|
||||
public:
|
||||
ThrottleWarnDialog(const char* msg);
|
||||
|
||||
#if defined(DEBUG_WINDOWS)
|
||||
std::string getName() const override { return "ThrottleWarnDialog"; }
|
||||
#endif
|
||||
|
||||
protected:
|
||||
bool warningInactive();
|
||||
|
||||
void delayedInit() override;
|
||||
};
|
||||
|
||||
@@ -17,6 +17,7 @@ set(GUI_SRC
|
||||
../common/stdlcd/radio_trainer.cpp
|
||||
../common/stdlcd/view_telemetry.cpp
|
||||
../common/stdlcd/calibration.cpp
|
||||
../common/stdlcd/splash.cpp
|
||||
model_curve_edit.cpp
|
||||
)
|
||||
|
||||
|
||||
@@ -0,0 +1,140 @@
|
||||
/*
|
||||
* Copyright (C) EdgeTX
|
||||
*
|
||||
* Based on code named
|
||||
* opentx - https://github.com/opentx/opentx
|
||||
* th9x - http://code.google.com/p/th9x
|
||||
* er9x - http://code.google.com/p/er9x
|
||||
* gruvin9x - http://code.google.com/p/gruvin9x
|
||||
*
|
||||
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
// Macros for B&W menus
|
||||
|
||||
#if defined(VARIO)
|
||||
#define CASE_VARIO(x) x,
|
||||
#else
|
||||
#define CASE_VARIO(x)
|
||||
#endif
|
||||
|
||||
#if defined(IMU)
|
||||
#define CASE_IMU(x) x,
|
||||
#else
|
||||
#define CASE_IMU(x)
|
||||
#endif
|
||||
|
||||
#if defined(BACKLIGHT_GPIO)
|
||||
#define CASE_BACKLIGHT(x) x,
|
||||
#else
|
||||
#define CASE_BACKLIGHT(x)
|
||||
#endif
|
||||
|
||||
#if defined(RTCLOCK)
|
||||
#define CASE_RTCLOCK(x) x,
|
||||
#else
|
||||
#define CASE_RTCLOCK(x)
|
||||
#endif
|
||||
|
||||
#if defined(BUZZER)
|
||||
#define CASE_BUZZER(x) x,
|
||||
#else
|
||||
#define CASE_BUZZER(x)
|
||||
#endif
|
||||
|
||||
#if defined(AUDIO)
|
||||
#define CASE_AUDIO(x) x,
|
||||
#else
|
||||
#define CASE_AUDIO(x)
|
||||
#endif
|
||||
|
||||
#if defined(PWM_BACKLIGHT)
|
||||
#define CASE_PWM_BACKLIGHT(x) x,
|
||||
#else
|
||||
#define CASE_PWM_BACKLIGHT(x)
|
||||
#endif
|
||||
|
||||
#if defined(GPS)
|
||||
#define CASE_GPS(x) x,
|
||||
#else
|
||||
#define CASE_GPS(x)
|
||||
#endif
|
||||
|
||||
#if defined(HAPTIC)
|
||||
#define CASE_HAPTIC(x) x,
|
||||
#else
|
||||
#define CASE_HAPTIC(x)
|
||||
#endif
|
||||
|
||||
#if defined(PWR_BUTTON_PRESS)
|
||||
#define CASE_PWR_BUTTON_PRESS(x) x,
|
||||
#else
|
||||
#define CASE_PWR_BUTTON_PRESS(x)
|
||||
#endif
|
||||
|
||||
#if defined(PXX1)
|
||||
#define CASE_PXX1(x) x,
|
||||
#else
|
||||
#define CASE_PXX1(x)
|
||||
#endif
|
||||
|
||||
#if defined(PXX2)
|
||||
#define CASE_PXX2(x) x,
|
||||
#else
|
||||
#define CASE_PXX2(x)
|
||||
#endif
|
||||
|
||||
#if defined(BLUETOOTH)
|
||||
#define CASE_BLUETOOTH(x) x,
|
||||
#else
|
||||
#define CASE_BLUETOOTH(x)
|
||||
#endif
|
||||
|
||||
#if defined(HELI)
|
||||
#define CASE_HELI(x) x,
|
||||
#else
|
||||
#define CASE_HELI(x)
|
||||
#endif
|
||||
|
||||
#if defined(FLIGHT_MODES)
|
||||
#define CASE_FLIGHT_MODES(x) x,
|
||||
#else
|
||||
#define CASE_FLIGHT_MODES(x)
|
||||
#endif
|
||||
|
||||
#if defined(GVARS)
|
||||
#define CASE_GVARS(x) x,
|
||||
#else
|
||||
#define CASE_GVARS(x)
|
||||
#endif
|
||||
|
||||
#if defined(LUA_MODEL_SCRIPTS)
|
||||
#define CASE_LUA_MODEL_SCRIPTS(x) x,
|
||||
#else
|
||||
#define CASE_LUA_MODEL_SCRIPTS(x)
|
||||
#endif
|
||||
|
||||
#if defined(PCBX9DP) || defined(PCBX9E)
|
||||
#define CASE_PCBX9E_PCBX9DP(x) x,
|
||||
#else
|
||||
#define CASE_PCBX9E_PCBX9DP(x)
|
||||
#endif
|
||||
|
||||
#if defined(SDCARD)
|
||||
#define CASE_SDCARD(x) x,
|
||||
#else
|
||||
#define CASE_SDCARD(x)
|
||||
#endif
|
||||
|
||||
#define CASE_SPLASH_PARAM(x) x,
|
||||
@@ -0,0 +1,76 @@
|
||||
/*
|
||||
* Copyright (C) EdgeTX
|
||||
*
|
||||
* Based on code named
|
||||
* opentx - https://github.com/opentx/opentx
|
||||
* th9x - http://code.google.com/p/th9x
|
||||
* er9x - http://code.google.com/p/er9x
|
||||
* gruvin9x - http://code.google.com/p/gruvin9x
|
||||
*
|
||||
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#include "opentx.h"
|
||||
#include "inactivity_timer.h"
|
||||
|
||||
void startSplash()
|
||||
{
|
||||
}
|
||||
|
||||
void waitSplash()
|
||||
{
|
||||
// Handle B&W splash screen
|
||||
|
||||
#if defined(PWR_BUTTON_PRESS)
|
||||
bool refresh = false;
|
||||
#endif
|
||||
|
||||
if (SPLASH_NEEDED()) {
|
||||
resetBacklightTimeout();
|
||||
drawSplash();
|
||||
|
||||
getADC(); // init ADC array
|
||||
|
||||
inactivityCheckInputs();
|
||||
|
||||
tmr10ms_t tgtime = get_tmr10ms() + SPLASH_TIMEOUT;
|
||||
|
||||
while (tgtime > get_tmr10ms()) {
|
||||
RTOS_WAIT_TICKS(1);
|
||||
|
||||
getADC();
|
||||
|
||||
if (getEvent() || inactivityCheckInputs())
|
||||
return;
|
||||
|
||||
#if defined(PWR_BUTTON_PRESS)
|
||||
uint32_t pwr_check = pwrCheck();
|
||||
if (pwr_check == e_power_off) {
|
||||
break;
|
||||
}
|
||||
else if (pwr_check == e_power_press) {
|
||||
refresh = true;
|
||||
}
|
||||
else if (pwr_check == e_power_on && refresh) {
|
||||
drawSplash();
|
||||
refresh = false;
|
||||
}
|
||||
#else
|
||||
if (pwrCheck() == e_power_off) {
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
checkBacklight();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -85,3 +85,10 @@ int32_t getGVarFieldValuePrec1(int16_t val, int16_t min, int16_t max, int8_t fm)
|
||||
}
|
||||
return limit<int>(min*10, val, max*10);
|
||||
}
|
||||
|
||||
void getGVarIncDecRange(int16_t & valMin, int16_t & valMax)
|
||||
{
|
||||
int16_t rng = abs(valMax - valMin);
|
||||
valMin = -rng;
|
||||
valMax = rng;
|
||||
}
|
||||
|
||||
+11
-12
@@ -19,18 +19,17 @@
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#ifndef _GVARS_H_
|
||||
#define _GVARS_H_
|
||||
#pragma once
|
||||
|
||||
// GVars have one value per flight mode
|
||||
#define GVAR_VALUE(gv, fm) g_model.flightModeData[fm].gvars[gv]
|
||||
#define SET_GVAR_VALUE(idx, phase, value) \
|
||||
GVAR_VALUE(idx, phase) = value; \
|
||||
storageDirty(EE_MODEL); \
|
||||
if (g_model.gvars[idx].popup) { \
|
||||
gvarLastChanged = idx; \
|
||||
gvarDisplayTimer = GVAR_DISPLAY_TIME; \
|
||||
}
|
||||
// GVars have one value per flight mode
|
||||
#define GVAR_VALUE(gv, fm) g_model.flightModeData[fm].gvars[gv]
|
||||
#define SET_GVAR_VALUE(idx, phase, value) \
|
||||
GVAR_VALUE(idx, phase) = value; \
|
||||
storageDirty(EE_MODEL); \
|
||||
if (g_model.gvars[idx].popup) { \
|
||||
gvarLastChanged = idx; \
|
||||
gvarDisplayTimer = GVAR_DISPLAY_TIME; \
|
||||
}
|
||||
|
||||
#if defined(GVARS)
|
||||
uint8_t getGVarFlightMode(uint8_t fm, uint8_t gv);
|
||||
@@ -72,4 +71,4 @@ constexpr int32_t MIX_WEIGHT_MIN = -500;
|
||||
constexpr int32_t MIX_OFFSET_MAX = 500;
|
||||
constexpr int32_t MIX_OFFSET_MIN = -500;
|
||||
|
||||
#endif // _GVARS_H_
|
||||
void getGVarIncDecRange(int16_t & valMin, int16_t & valMax);
|
||||
|
||||
+2
-2
@@ -160,7 +160,7 @@ void handleUsbConnection()
|
||||
if (getSelectedUsbMode() != USB_UNSELECTED_MODE) {
|
||||
|
||||
if (getSelectedUsbMode() == USB_MASS_STORAGE_MODE) {
|
||||
opentxClose(false);
|
||||
edgeTxClose(false);
|
||||
}
|
||||
#if defined(USB_SERIAL)
|
||||
else if (getSelectedUsbMode() == USB_SERIAL_MODE) {
|
||||
@@ -177,7 +177,7 @@ void handleUsbConnection()
|
||||
usbStop();
|
||||
TRACE("USB stopped");
|
||||
if (getSelectedUsbMode() == USB_MASS_STORAGE_MODE) {
|
||||
opentxResume();
|
||||
edgeTxResume();
|
||||
pushEvent(EVT_ENTRY);
|
||||
} else if (getSelectedUsbMode() == USB_SERIAL_MODE) {
|
||||
serialStop(SP_VCP);
|
||||
|
||||
+46
-134
@@ -46,11 +46,11 @@
|
||||
|
||||
#if defined(LIBOPENUI)
|
||||
#include "libopenui.h"
|
||||
// #include "shutdown_animation.h"
|
||||
#include "radio_calibration.h"
|
||||
#include "view_main.h"
|
||||
#include "view_text.h"
|
||||
#include "theme.h"
|
||||
#include "switch_warn_dialog.h"
|
||||
|
||||
#include "gui/colorlcd/LvglWrapper.h"
|
||||
#endif
|
||||
@@ -59,6 +59,9 @@
|
||||
#include <malloc.h>
|
||||
#endif
|
||||
|
||||
extern void startSplash();
|
||||
extern void waitSplash();
|
||||
|
||||
RadioData g_eeGeneral;
|
||||
ModelData g_model;
|
||||
|
||||
@@ -69,6 +72,8 @@ Clipboard clipboard;
|
||||
GlobalData globalData;
|
||||
|
||||
uint32_t maxMixerDuration; // microseconds
|
||||
|
||||
constexpr uint8_t HEART_TIMER_10MS = 0x01;
|
||||
uint8_t heartbeat;
|
||||
|
||||
#if defined(OVERRIDE_CHANNEL_FUNCTION)
|
||||
@@ -558,58 +563,6 @@ void resetBacklightTimeout()
|
||||
lightOffCounter = (autoOff*250) << 1;
|
||||
}
|
||||
|
||||
#if defined(SPLASH)
|
||||
void doSplash()
|
||||
{
|
||||
#if defined(PWR_BUTTON_PRESS)
|
||||
bool refresh = false;
|
||||
#endif
|
||||
|
||||
if (SPLASH_NEEDED()) {
|
||||
resetBacklightTimeout();
|
||||
drawSplash();
|
||||
|
||||
getADC(); // init ADC array
|
||||
|
||||
inactivityCheckInputs();
|
||||
|
||||
tmr10ms_t tgtime = get_tmr10ms() + SPLASH_TIMEOUT;
|
||||
|
||||
while (tgtime > get_tmr10ms()) {
|
||||
RTOS_WAIT_TICKS(1);
|
||||
|
||||
getADC();
|
||||
|
||||
if (getEvent() || inactivityCheckInputs())
|
||||
return;
|
||||
|
||||
#if defined(PWR_BUTTON_PRESS)
|
||||
uint32_t pwr_check = pwrCheck();
|
||||
if (pwr_check == e_power_off) {
|
||||
break;
|
||||
}
|
||||
else if (pwr_check == e_power_press) {
|
||||
refresh = true;
|
||||
}
|
||||
else if (pwr_check == e_power_on && refresh) {
|
||||
drawSplash();
|
||||
refresh = false;
|
||||
}
|
||||
#else
|
||||
if (pwrCheck() == e_power_off) {
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
checkBacklight();
|
||||
}
|
||||
#if defined(LIBOPENUI)
|
||||
MainWindow::instance()->setActiveScreen();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(MULTIMODULE)
|
||||
void checkMultiLowPower()
|
||||
@@ -802,14 +755,10 @@ void checkThrottleStick()
|
||||
strcpy(throttleNotIdle, STR_THROTTLE_NOT_IDLE);
|
||||
}
|
||||
LED_ERROR_BEGIN();
|
||||
AUDIO_ERROR_MESSAGE(AU_THROTTLE_ALERT);
|
||||
auto dialog =
|
||||
new FullScreenDialog(WARNING_TYPE_ALERT, TR_THROTTLE_UPPERCASE,
|
||||
throttleNotIdle, STR_PRESS_ANY_KEY_TO_SKIP);
|
||||
dialog->setCloseCondition([]() { return !isThrottleWarningAlertNeeded(); });
|
||||
auto dialog = new ThrottleWarnDialog(throttleNotIdle);
|
||||
dialog->runForever();
|
||||
LED_ERROR_END();
|
||||
}
|
||||
LED_ERROR_END();
|
||||
}
|
||||
#else
|
||||
void checkThrottleStick()
|
||||
@@ -1087,9 +1036,9 @@ void flightReset(uint8_t check)
|
||||
}
|
||||
}
|
||||
|
||||
void opentxClose(uint8_t shutdown)
|
||||
void edgeTxClose(uint8_t shutdown)
|
||||
{
|
||||
TRACE("opentxClose");
|
||||
TRACE("edgeTxClose");
|
||||
|
||||
watchdogSuspend(2000/*20s*/);
|
||||
|
||||
@@ -1150,9 +1099,9 @@ void opentxClose(uint8_t shutdown)
|
||||
#endif
|
||||
}
|
||||
|
||||
void opentxResume()
|
||||
void edgeTxResume()
|
||||
{
|
||||
TRACE("opentxResume");
|
||||
TRACE("edgeTxResume");
|
||||
|
||||
sdMount();
|
||||
#if defined(COLORLCD) && defined(LUA)
|
||||
@@ -1317,7 +1266,10 @@ void runStartupAnimation()
|
||||
else if (!isPowerOn) {
|
||||
isPowerOn = true;
|
||||
pwrOn();
|
||||
haptic.play(15, 3, PLAY_NOW);
|
||||
#if defined(HAPTIC)
|
||||
if (g_eeGeneral.hapticMode != e_mode_quiet)
|
||||
haptic.play(15, 3, PLAY_NOW);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1370,26 +1322,15 @@ void moveTrimsToOffsets() // copy state of 3 primary to subtrim
|
||||
AUDIO_WARNING2();
|
||||
}
|
||||
|
||||
#if !defined(OPENTX_START_DEFAULT_ARGS)
|
||||
#define OPENTX_START_DEFAULT_ARGS 0
|
||||
#endif
|
||||
// Overridden by simulator startup
|
||||
uint8_t startOptions = 0;
|
||||
|
||||
const uint8_t startOptions = OPENTX_START_DEFAULT_ARGS;
|
||||
|
||||
void opentxInit()
|
||||
void edgeTxInit()
|
||||
{
|
||||
TRACE("opentxInit");
|
||||
TRACE("edgeTxInit");
|
||||
|
||||
#if defined(SPLASH) && !defined(STARTUP_ANIMATION)
|
||||
tmr10ms_t splashStartTime = 0;
|
||||
bool waitSplash = false;
|
||||
if (!UNEXPECTED_SHUTDOWN()) {
|
||||
splashStartTime = get_tmr10ms();
|
||||
waitSplash = true;
|
||||
drawSplash();
|
||||
TRACE("drawSplash() completed");
|
||||
}
|
||||
#endif
|
||||
// Show splash screen (color LCD)
|
||||
startSplash();
|
||||
|
||||
#if defined(HARDWARE_TOUCH) && !defined(PCBFLYSKY) && !defined(SIMU)
|
||||
touchPanelInit();
|
||||
@@ -1411,13 +1352,21 @@ void opentxInit()
|
||||
lcdClear();
|
||||
lcdRefresh();
|
||||
lcdRefreshWait();
|
||||
#endif
|
||||
|
||||
bool radioSettingsValid = storageReadRadioSettings(false);
|
||||
(void)radioSettingsValid;
|
||||
// Load radio.yml so radio settings can be used
|
||||
bool radioSettingsValid = false;
|
||||
#if defined(RTC_BACKUP_RAM)
|
||||
// Skip loading if EM startup and radio has RTC backup data
|
||||
if (!UNEXPECTED_SHUTDOWN())
|
||||
radioSettingsValid = storageReadRadioSettings(false);
|
||||
#else
|
||||
// No RTC backup - try and load even for EM startup
|
||||
radioSettingsValid = storageReadRadioSettings(false);
|
||||
#endif
|
||||
|
||||
#if defined(GUI) && !defined(COLORLCD)
|
||||
lcdSetContrast();
|
||||
#endif
|
||||
#endif
|
||||
|
||||
BACKLIGHT_ENABLE(); // we start the backlight during the startup animation
|
||||
@@ -1429,9 +1378,12 @@ void opentxInit()
|
||||
else {
|
||||
runStartupAnimation();
|
||||
}
|
||||
#else // defined(PWR_BUTTON_PRESS)
|
||||
#else // defined(STARTUP_ANIMATION)
|
||||
pwrOn();
|
||||
haptic.play(15, 3, PLAY_NOW);
|
||||
#if defined(HAPTIC)
|
||||
if (g_eeGeneral.hapticMode != e_mode_quiet)
|
||||
haptic.play(15, 3, PLAY_NOW);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// Radios handle UNEXPECTED_SHUTDOWN() differently:
|
||||
@@ -1486,6 +1438,8 @@ void opentxInit()
|
||||
if (!radioSettingsValid)
|
||||
storageReadRadioSettings();
|
||||
storageReadCurrentModel();
|
||||
#else
|
||||
(void)radioSettingsValid;
|
||||
#endif
|
||||
|
||||
#if defined(COLORLCD) && defined(LUA)
|
||||
@@ -1510,11 +1464,6 @@ void opentxInit()
|
||||
storageReadAll();
|
||||
#endif
|
||||
#endif // #if !defined(EEPROM)
|
||||
|
||||
// TODO: move to board on hook (onStorageReady()?)
|
||||
// #if defined(SPORT_UPDATE_PWR_GPIO)
|
||||
// SPORT_UPDATE_POWER_INIT();
|
||||
// #endif
|
||||
|
||||
initSerialPorts();
|
||||
|
||||
@@ -1555,48 +1504,8 @@ void opentxInit()
|
||||
if (!g_eeGeneral.dontPlayHello)
|
||||
AUDIO_HELLO();
|
||||
|
||||
// TODO: This needs some refactoring and cleanup
|
||||
#if defined(SPLASH)
|
||||
// Handle B&W splash screen
|
||||
doSplash();
|
||||
|
||||
// Handle color splash screen
|
||||
#if !defined(STARTUP_ANIMATION)
|
||||
if (waitSplash) {
|
||||
extern bool inactivityCheckInputs();
|
||||
extern void checkSpeakerVolume();
|
||||
|
||||
#if defined(SIMU)
|
||||
// Simulator - inputsMoved() returns true immediately without this!
|
||||
RTOS_WAIT_TICKS(30);
|
||||
#endif // defined(SIMU)
|
||||
|
||||
splashStartTime += SPLASH_TIMEOUT;
|
||||
while (splashStartTime > get_tmr10ms()) {
|
||||
WDG_RESET();
|
||||
checkSpeakerVolume();
|
||||
checkBacklight();
|
||||
RTOS_WAIT_TICKS(10);
|
||||
auto evt = getEvent();
|
||||
if (evt || inactivityCheckInputs()) {
|
||||
if (evt)
|
||||
killEvents(evt);
|
||||
break;
|
||||
}
|
||||
#if defined(SIMU)
|
||||
// Allow simulator to exit if closed while splash showing
|
||||
uint32_t pwr_check = pwrCheck();
|
||||
if (pwr_check == e_power_off) {
|
||||
break;
|
||||
}
|
||||
#endif // defined(SIMU)
|
||||
}
|
||||
|
||||
// Reset timer so special/global functions set to !1x don't get triggered
|
||||
START_SILENCE_PERIOD();
|
||||
}
|
||||
#endif // !defined(STARTUP_ANIMATION)
|
||||
#endif // defined(SPLASH)
|
||||
// Wait until splash screen done
|
||||
waitSplash();
|
||||
}
|
||||
#endif // defined(GUI)
|
||||
|
||||
@@ -1882,7 +1791,10 @@ uint32_t pwrCheck()
|
||||
#endif // COLORLCD
|
||||
}
|
||||
|
||||
haptic.play(15, 3, PLAY_NOW);
|
||||
#if defined(HAPTIC)
|
||||
if (g_eeGeneral.hapticMode != e_mode_quiet)
|
||||
haptic.play(15, 3, PLAY_NOW);
|
||||
#endif
|
||||
pwr_check_state = PWR_CHECK_OFF;
|
||||
return e_power_off;
|
||||
}
|
||||
|
||||
+6
-189
@@ -41,159 +41,6 @@
|
||||
#include "libopenui/src/libopenui_file.h"
|
||||
#endif
|
||||
|
||||
#if defined(SIMU)
|
||||
#define SWITCH_SIMU(a, b) (a)
|
||||
#else
|
||||
#define SWITCH_SIMU(a, b) (b)
|
||||
#endif
|
||||
|
||||
#if defined(VARIO)
|
||||
#define CASE_VARIO(x) x,
|
||||
#else
|
||||
#define CASE_VARIO(x)
|
||||
#endif
|
||||
|
||||
#if defined(IMU)
|
||||
#define CASE_IMU(x) x,
|
||||
#else
|
||||
#define CASE_IMU(x)
|
||||
#endif
|
||||
|
||||
#if defined(BACKLIGHT_GPIO)
|
||||
#define CASE_BACKLIGHT(x) x,
|
||||
#else
|
||||
#define CASE_BACKLIGHT(x)
|
||||
#endif
|
||||
|
||||
#if defined(OLED_SCREEN)
|
||||
#define CASE_CONTRAST(x)
|
||||
#else
|
||||
#define CASE_CONTRAST(x) x,
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(LUA)
|
||||
#define CASE_LUA(x) x,
|
||||
#else
|
||||
#define CASE_LUA(x)
|
||||
#endif
|
||||
|
||||
#if defined(RTCLOCK)
|
||||
#define CASE_RTCLOCK(x) x,
|
||||
#else
|
||||
#define CASE_RTCLOCK(x)
|
||||
#endif
|
||||
|
||||
#if defined(BUZZER)
|
||||
#define CASE_BUZZER(x) x,
|
||||
#else
|
||||
#define CASE_BUZZER(x)
|
||||
#endif
|
||||
|
||||
#if defined(AUDIO)
|
||||
#define CASE_AUDIO(x) x,
|
||||
#else
|
||||
#define CASE_AUDIO(x)
|
||||
#endif
|
||||
|
||||
#if defined(PWM_BACKLIGHT)
|
||||
#define CASE_PWM_BACKLIGHT(x) x,
|
||||
#else
|
||||
#define CASE_PWM_BACKLIGHT(x)
|
||||
#endif
|
||||
|
||||
#if defined(GPS)
|
||||
#define CASE_GPS(x) x,
|
||||
#else
|
||||
#define CASE_GPS(x)
|
||||
#endif
|
||||
|
||||
#if defined(VARIO)
|
||||
#define CASE_VARIO(x) x,
|
||||
#else
|
||||
#define CASE_VARIO(x)
|
||||
#endif
|
||||
|
||||
#if defined(HAPTIC)
|
||||
#define CASE_HAPTIC(x) x,
|
||||
#else
|
||||
#define CASE_HAPTIC(x)
|
||||
#endif
|
||||
|
||||
#if defined(SPLASH)
|
||||
#define CASE_SPLASH(x) x,
|
||||
#else
|
||||
#define CASE_SPLASH(x)
|
||||
#endif
|
||||
|
||||
#if defined(PWR_BUTTON_PRESS)
|
||||
#define CASE_PWR_BUTTON_PRESS(x) x,
|
||||
#else
|
||||
#define CASE_PWR_BUTTON_PRESS(x)
|
||||
#endif
|
||||
|
||||
#if defined(PXX1)
|
||||
#define CASE_PXX1(x) x,
|
||||
#else
|
||||
#define CASE_PXX1(x)
|
||||
#endif
|
||||
|
||||
#if defined(PXX2)
|
||||
#define CASE_PXX2(x) x,
|
||||
#else
|
||||
#define CASE_PXX2(x)
|
||||
#endif
|
||||
|
||||
#if defined(SDCARD)
|
||||
#define CASE_SDCARD(x) x,
|
||||
#else
|
||||
#define CASE_SDCARD(x)
|
||||
#endif
|
||||
|
||||
#if defined(BLUETOOTH)
|
||||
#define CASE_BLUETOOTH(x) x,
|
||||
#else
|
||||
#define CASE_BLUETOOTH(x)
|
||||
#endif
|
||||
|
||||
#if defined(HELI)
|
||||
#define CASE_HELI(x) x,
|
||||
#else
|
||||
#define CASE_HELI(x)
|
||||
#endif
|
||||
|
||||
#if defined(FLIGHT_MODES)
|
||||
#define CASE_FLIGHT_MODES(x) x,
|
||||
#else
|
||||
#define CASE_FLIGHT_MODES(x)
|
||||
#endif
|
||||
|
||||
#if defined(GVARS)
|
||||
#define CASE_GVARS(x) x,
|
||||
#else
|
||||
#define CASE_GVARS(x)
|
||||
#endif
|
||||
|
||||
#if defined(LUA_MODEL_SCRIPTS)
|
||||
#define CASE_LUA_MODEL_SCRIPTS(x) x,
|
||||
#else
|
||||
#define CASE_LUA_MODEL_SCRIPTS(x)
|
||||
#endif
|
||||
|
||||
#if defined(PCBX9DP) || defined(PCBX9E)
|
||||
#define CASE_PCBX9E_PCBX9DP(x) x,
|
||||
#else
|
||||
#define CASE_PCBX9E_PCBX9DP(x)
|
||||
#endif
|
||||
|
||||
#if defined(PCBX9E)
|
||||
#define CASE_PCBX9E(x) x,
|
||||
#else
|
||||
#define CASE_PCBX9E(x)
|
||||
#endif
|
||||
|
||||
#define CASE_CAPACITY(x)
|
||||
|
||||
#if defined(FAI)
|
||||
#define IS_FAI_ENABLED() true
|
||||
#define IF_FAI_CHOICE(x)
|
||||
@@ -334,35 +181,17 @@ struct CustomFunctionsContext {
|
||||
|
||||
#define THRCHK_DEADBAND 16
|
||||
|
||||
#if !defined(COLORLCD)
|
||||
inline bool SPLASH_NEEDED()
|
||||
{
|
||||
#if defined(COLORLCD)
|
||||
return false;
|
||||
#else
|
||||
return g_eeGeneral.splashMode != 3;
|
||||
#endif
|
||||
}
|
||||
|
||||
#if defined(SPLASH)
|
||||
#define SPLASH_TIMEOUT (g_eeGeneral.splashMode == -4 ? 1500 : (g_eeGeneral.splashMode <= 0 ? (400-g_eeGeneral.splashMode * 200) : (400 - g_eeGeneral.splashMode * 100)))
|
||||
#endif
|
||||
|
||||
constexpr uint8_t HEART_TIMER_10MS = 0x01;
|
||||
constexpr uint8_t HEART_TIMER_PULSES = 0x02; // when multiple modules this is the first one
|
||||
|
||||
constexpr uint8_t HEART_WDT_CHECK = HEART_TIMER_10MS
|
||||
#if defined(HARDWARE_INTERNAL_MODULE)
|
||||
+ (HEART_TIMER_PULSES << INTERNAL_MODULE)
|
||||
#endif
|
||||
#if defined(HARDWARE_EXTERNAL_MODULE)
|
||||
+ (HEART_TIMER_PULSES << EXTERNAL_MODULE)
|
||||
#endif
|
||||
; // end of HEART_WDT_CHECK
|
||||
#define SPLASH_TIMEOUT (g_eeGeneral.splashMode == -4 ? 1500 : (g_eeGeneral.splashMode <= 0 ? (400-g_eeGeneral.splashMode * 200) : (400 - g_eeGeneral.splashMode * 100)))
|
||||
|
||||
extern uint8_t heartbeat;
|
||||
|
||||
#define MAX_ALERT_TIME 60
|
||||
|
||||
#define LEN_STD_CHARS 40
|
||||
|
||||
#if defined(TRANSLATIONS_CZ)
|
||||
@@ -499,10 +328,6 @@ void flightReset(uint8_t check=true);
|
||||
#define RESET_THR_TRACE() s_timeCum16ThrP = s_timeCumThr = 0
|
||||
#endif
|
||||
|
||||
#if defined(SPLASH)
|
||||
void doSplash();
|
||||
#endif
|
||||
|
||||
// disabled function (not used anywhere)
|
||||
#define READ_ONLY() false
|
||||
#define READ_ONLY_UNLOCKED() true
|
||||
@@ -613,14 +438,6 @@ inline void getMixSrcRange(const int source, int16_t & valMin, int16_t & valMax,
|
||||
valMin = -valMax;
|
||||
}
|
||||
}
|
||||
#if defined(GVAR_MAX)
|
||||
inline void getGVarIncDecRange(int16_t & valMin, int16_t & valMax)
|
||||
{
|
||||
int16_t rng = abs(valMax - valMin);
|
||||
valMin = -rng;
|
||||
valMax = rng;
|
||||
}
|
||||
#endif
|
||||
|
||||
void applyExpos(int16_t * anas, uint8_t mode, uint8_t ovwrIdx=0, int16_t ovwrValue=0);
|
||||
int16_t applyLimits(uint8_t channel, int32_t value);
|
||||
@@ -808,9 +625,9 @@ enum AUDIO_SOUNDS {
|
||||
|
||||
|
||||
void checkBattery();
|
||||
void opentxClose(uint8_t shutdown=true);
|
||||
void opentxInit();
|
||||
void opentxResume();
|
||||
void edgeTxClose(uint8_t shutdown=true);
|
||||
void edgeTxInit();
|
||||
void edgeTxResume();
|
||||
|
||||
constexpr uint8_t OPENTX_START_NO_SPLASH = 0x01;
|
||||
constexpr uint8_t OPENTX_START_NO_CALIBRATION = 0x02;
|
||||
@@ -831,7 +648,6 @@ constexpr uint8_t OPENTX_START_NO_CHECKS = 0x04;
|
||||
#define LED_ERROR_END()
|
||||
#endif
|
||||
|
||||
// Re-useable byte array to save having multiple buffers
|
||||
#if LCD_W <= 212
|
||||
constexpr uint8_t SD_SCREEN_FILE_LENGTH = 32;
|
||||
#else
|
||||
@@ -848,6 +664,7 @@ constexpr uint8_t TEXT_FILENAME_MAXLEN = 40;
|
||||
#include "telemetry/ghost_menu.h"
|
||||
#endif
|
||||
|
||||
// Re-useable byte array to save having multiple buffers
|
||||
union ReusableBuffer
|
||||
{
|
||||
struct {
|
||||
|
||||
@@ -37,10 +37,6 @@ endif()
|
||||
set(CPU_TYPE_FULL STM32F429xI)
|
||||
set(SIZE_TARGET_MEM_DEFINE "MEM_SIZE_SDRAM2=8192")
|
||||
|
||||
if(SPLASH STREQUAL OFF)
|
||||
message(FATAL_ERROR "Option SPLASH=OFF not supported on Horus")
|
||||
endif()
|
||||
|
||||
add_definitions(-DPCBFRSKY)
|
||||
|
||||
# defines existing internal modules
|
||||
|
||||
@@ -29,6 +29,8 @@
|
||||
#include "hal.h"
|
||||
#include "hal/serial_port.h"
|
||||
|
||||
#include "watchdog_driver.h"
|
||||
|
||||
#define FLASHSIZE 0x200000
|
||||
#define BOOTLOADER_SIZE 0x20000
|
||||
#define FIRMWARE_ADDRESS 0x08000000
|
||||
|
||||
@@ -43,7 +43,8 @@
|
||||
|
||||
int g_snapshot_idx = 0;
|
||||
|
||||
uint8_t simu_start_mode = 0;
|
||||
extern uint8_t startOptions;
|
||||
|
||||
char * main_thread_error = nullptr;
|
||||
|
||||
bool simu_shutdown = false;
|
||||
@@ -159,7 +160,7 @@ void simuStart(bool tests, const char * sdPath, const char * settingsPath)
|
||||
menuLevel = 0;
|
||||
#endif
|
||||
|
||||
simu_start_mode = (tests ? 0 : OPENTX_START_NO_SPLASH | OPENTX_START_NO_CALIBRATION | OPENTX_START_NO_CHECKS);
|
||||
startOptions = (tests ? 0 : OPENTX_START_NO_SPLASH | OPENTX_START_NO_CALIBRATION | OPENTX_START_NO_CHECKS);
|
||||
simu_shutdown = false;
|
||||
|
||||
simuFatfsSetPaths(sdPath, settingsPath);
|
||||
|
||||
@@ -39,11 +39,8 @@ extern uint8_t * eeprom;
|
||||
#define __disable_irq()
|
||||
#define __enable_irq()
|
||||
|
||||
extern uint8_t simu_start_mode;
|
||||
extern char * main_thread_error;
|
||||
|
||||
#define OPENTX_START_DEFAULT_ARGS simu_start_mode
|
||||
|
||||
|
||||
uint64_t simuTimerMicros(void);
|
||||
uint8_t simuSleep(uint32_t ms); // returns true if thread shutdown requested
|
||||
|
||||
@@ -553,10 +553,6 @@ set(SDCARD YES)
|
||||
set(TARGET_DIR taranis)
|
||||
set(PPM_LIMITS_SYMETRICAL YES)
|
||||
|
||||
if(SPLASH STREQUAL OFF)
|
||||
message(FATAL_ERROR "Option SPLASH=OFF not supported on Taranis")
|
||||
endif()
|
||||
|
||||
add_definitions(-DPCBTARANIS)
|
||||
add_definitions(-DAUDIO -DVOICE )
|
||||
|
||||
|
||||
+2
-2
@@ -47,7 +47,7 @@ TASK_FUNCTION(menusTask)
|
||||
LvglWrapper::instance();
|
||||
#endif
|
||||
|
||||
opentxInit();
|
||||
edgeTxInit();
|
||||
|
||||
mixerTaskInit();
|
||||
|
||||
@@ -90,7 +90,7 @@ TASK_FUNCTION(menusTask)
|
||||
#endif
|
||||
|
||||
drawSleepBitmap();
|
||||
opentxClose();
|
||||
edgeTxClose();
|
||||
boardOff();
|
||||
|
||||
TASK_RETURN();
|
||||
|
||||
@@ -25,6 +25,8 @@
|
||||
|
||||
volatile tmr10ms_t g_tmr10ms;
|
||||
|
||||
#define MAX_ALERT_TIME 60
|
||||
|
||||
#if TIMERS > MAX_TIMERS
|
||||
#error "Timers cannot exceed " .. MAX_TIMERS
|
||||
#endif
|
||||
|
||||
@@ -490,13 +490,10 @@ const char STR_VOLUME[] = TR_VOLUME;
|
||||
const char STR_LCD[] = TR_LCD;
|
||||
const char STR_BRIGHTNESS[] = TR_BRIGHTNESS;
|
||||
const char STR_CPU_TEMP[] = TR_CPU_TEMP;
|
||||
const char STR_CPU_CURRENT[] = TR_CPU_CURRENT;
|
||||
const char STR_CPU_MAH[] = TR_CPU_MAH;
|
||||
const char STR_COPROC[] = TR_COPROC;
|
||||
const char STR_COPROC_TEMP[] = TR_COPROC_TEMP;
|
||||
const char STR_TEMPWARNING[] = TR_TEMPWARNING;
|
||||
const char STR_TTL_WARNING[] = TR_TTL_WARNING;
|
||||
const char STR_CAPAWARNING[] = TR_CAPAWARNING;
|
||||
const char STR_FUNC[] = TR_FUNC;
|
||||
const char STR_V1[] = TR_V1;
|
||||
const char STR_V2[] = TR_V2;
|
||||
|
||||
@@ -748,11 +748,8 @@ extern const char STR_VOLUME[];
|
||||
extern const char STR_LCD[];
|
||||
extern const char STR_BRIGHTNESS[];
|
||||
extern const char STR_CPU_TEMP[];
|
||||
extern const char STR_CPU_CURRENT[];
|
||||
extern const char STR_CPU_MAH[];
|
||||
extern const char STR_COPROC[];
|
||||
extern const char STR_COPROC_TEMP[];
|
||||
extern const char STR_CAPAWARNING[];
|
||||
extern const char STR_TEMPWARNING[];
|
||||
extern const char STR_TTL_WARNING[];
|
||||
extern const char STR_FUNC[];
|
||||
|
||||
@@ -647,11 +647,8 @@
|
||||
#define TR_LCD "LCD"
|
||||
#define TR_BRIGHTNESS "亮度"
|
||||
#define TR_CPU_TEMP "CPU 温度"
|
||||
#define TR_CPU_CURRENT "电流"
|
||||
#define TR_CPU_MAH "消耗量"
|
||||
#define TR_COPROC "CoProc."
|
||||
#define TR_COPROC_TEMP "主板温度"
|
||||
#define TR_CAPAWARNING INDENT "电流过低"
|
||||
#define TR_TEMPWARNING INDENT "过热"
|
||||
#define TR_TTL_WARNING "注意串口使用逻辑电平3.3V"
|
||||
#define TR_FUNC "功能"
|
||||
|
||||
@@ -665,11 +665,8 @@
|
||||
#define TR_LCD "LCD"
|
||||
#define TR_BRIGHTNESS "Jas"
|
||||
#define TR_CPU_TEMP "Tepl. CPU\016>"
|
||||
#define TR_CPU_CURRENT "Proud\030>"
|
||||
#define TR_CPU_MAH "Spotřeba"
|
||||
#define TR_COPROC "CoProc."
|
||||
#define TR_COPROC_TEMP "Tepl. MB \016>"
|
||||
#define TR_CAPAWARNING INDENT "Nízká kapacita"
|
||||
#define TR_TEMPWARNING INDENT "Přehřátí"
|
||||
#define TR_TTL_WARNING "Varování: používat 3.3V hodnoty"
|
||||
#define TR_FUNC "Funkce"
|
||||
|
||||
@@ -663,11 +663,8 @@
|
||||
#define TR_LCD "LCD"
|
||||
#define TR_BRIGHTNESS "Skarphed"
|
||||
#define TR_CPU_TEMP "CPU temp."
|
||||
#define TR_CPU_CURRENT "CPU strøm"
|
||||
#define TR_CPU_MAH "Forbrug"
|
||||
#define TR_COPROC "CoProc."
|
||||
#define TR_COPROC_TEMP "MB Temp."
|
||||
#define TR_CAPAWARNING INDENT "Kapacitet lav"
|
||||
#define TR_TEMPWARNING INDENT "For varm"
|
||||
#define TR_TTL_WARNING "Advarsel: brug 3.3V logisk niveau"
|
||||
#define TR_FUNC "Funktion"
|
||||
|
||||
@@ -658,11 +658,8 @@
|
||||
#define TR_LCD "Bildschirm"
|
||||
#define TR_BRIGHTNESS "Helligkeit"
|
||||
#define TR_CPU_TEMP "CPU-Temp.\016>"
|
||||
#define TR_CPU_CURRENT "Strom\022>"
|
||||
#define TR_CPU_MAH "Verbrauch"
|
||||
#define TR_COPROC "CoProz."
|
||||
#define TR_COPROC_TEMP "MB Temp. \016>"
|
||||
#define TR_CAPAWARNING INDENT "Kapaz. niedrig" // wg 9XR-Pro
|
||||
#define TR_TEMPWARNING INDENT "Temp. größer" //wg 9XR-Pro
|
||||
#define TR_TTL_WARNING "Warning: use 3.3V logic levels"
|
||||
#define TR_FUNC "Funktion"
|
||||
|
||||
@@ -658,11 +658,8 @@
|
||||
#define TR_LCD "LCD"
|
||||
#define TR_BRIGHTNESS "Brightness"
|
||||
#define TR_CPU_TEMP "CPU temp."
|
||||
#define TR_CPU_CURRENT "Current"
|
||||
#define TR_CPU_MAH "Consumpt."
|
||||
#define TR_COPROC "CoProc."
|
||||
#define TR_COPROC_TEMP "MB Temp."
|
||||
#define TR_CAPAWARNING INDENT "Capacity low"
|
||||
#define TR_TEMPWARNING INDENT "Overheat"
|
||||
#define TR_TTL_WARNING "Warning: use 3.3V logic levels"
|
||||
#define TR_FUNC "Function"
|
||||
|
||||
@@ -654,11 +654,8 @@
|
||||
#define TR_LCD "LCD"
|
||||
#define TR_BRIGHTNESS "Brillo"
|
||||
#define TR_CPU_TEMP "CPU Temp.\016>"
|
||||
#define TR_CPU_CURRENT "Actual\022>"
|
||||
#define TR_CPU_MAH "Consumo"
|
||||
#define TR_COPROC "CoProc."
|
||||
#define TR_COPROC_TEMP "MB Temp. \016>"
|
||||
#define TR_CAPAWARNING INDENT "Capacidad baja"
|
||||
#define TR_TEMPWARNING INDENT "Sobrecalent"
|
||||
#define TR_TTL_WARNING "Warning: use 3.3V logic levels"
|
||||
#define TR_FUNC "Función"
|
||||
|
||||
@@ -669,11 +669,8 @@
|
||||
#define TR_LCD "LCD-näyttö"
|
||||
#define TR_BRIGHTNESS "Kirkkaus"
|
||||
#define TR_CPU_TEMP "CPU:n lämpötila\016>"
|
||||
#define TR_CPU_CURRENT "Virta\022>"
|
||||
#define TR_CPU_MAH "Kulutus"
|
||||
#define TR_COPROC "CoProc."
|
||||
#define TR_COPROC_TEMP "MB Temp. \016>"
|
||||
#define TR_CAPAWARNING INDENT "Capacity Low"
|
||||
#define TR_TEMPWARNING INDENT "Ylikuumentunut"
|
||||
#define TR_TTL_WARNING "Varoitus: käytä 3,3V:n logiikkatasoja"
|
||||
#define TR_FUNC "Func"
|
||||
|
||||
@@ -662,11 +662,8 @@
|
||||
#define TR_LCD "LCD"
|
||||
#define TR_BRIGHTNESS "Luminosité"
|
||||
#define TR_CPU_TEMP "Temp. CPU\016>"
|
||||
#define TR_CPU_CURRENT "Courant\022>"
|
||||
#define TR_CPU_MAH "Consomm."
|
||||
#define TR_COPROC "CoProc."
|
||||
#define TR_COPROC_TEMP "Temp. CM \016>"
|
||||
#define TR_CAPAWARNING INDENT "Capacité Faible"
|
||||
#define TR_TEMPWARNING INDENT "Surchauffe"
|
||||
#define TR_TTL_WARNING "Attention: utiliser val. logique 3.3V"
|
||||
#define TR_FUNC "Fonction"
|
||||
|
||||
@@ -662,11 +662,8 @@
|
||||
#define TR_LCD "LCD"
|
||||
#define TR_BRIGHTNESS "בהירות"
|
||||
#define TR_CPU_TEMP "CPU temp."
|
||||
#define TR_CPU_CURRENT "Current"
|
||||
#define TR_CPU_MAH "Consumpt."
|
||||
#define TR_COPROC "CoProc."
|
||||
#define TR_COPROC_TEMP "MB Temp."
|
||||
#define TR_CAPAWARNING INDENT "Capacity low"
|
||||
#define TR_TEMPWARNING INDENT "Overheat"
|
||||
#define TR_TTL_WARNING "אזהרה חיבורים אלה עם מתח 3.3 וולט !"
|
||||
#define TR_FUNC "Function"
|
||||
|
||||
@@ -657,11 +657,8 @@
|
||||
#define TR_LCD "LCD"
|
||||
#define TR_BRIGHTNESS "Luminosità"
|
||||
#define TR_CPU_TEMP "Temp CPU \016>"
|
||||
#define TR_CPU_CURRENT "Corrente\022>"
|
||||
#define TR_CPU_MAH "Consumo"
|
||||
#define TR_COPROC "CoProc."
|
||||
#define TR_COPROC_TEMP "Temp. MB \016>"
|
||||
#define TR_CAPAWARNING INDENT "Capacità Bassa"
|
||||
#define TR_TEMPWARNING INDENT "Temp. Alta"
|
||||
#define TR_TTL_WARNING "Attenzione: usa livelli logici 3.3V"
|
||||
#define TR_FUNC "Funzione"
|
||||
|
||||
@@ -653,11 +653,8 @@
|
||||
#define TR_LCD "LCD"
|
||||
#define TR_BRIGHTNESS "輝度"
|
||||
#define TR_CPU_TEMP "CPU温度"
|
||||
#define TR_CPU_CURRENT "電流"
|
||||
#define TR_CPU_MAH "消費量"
|
||||
#define TR_COPROC "CoProc."
|
||||
#define TR_COPROC_TEMP "MB温度"
|
||||
#define TR_CAPAWARNING INDENT "電流が低すぎます"
|
||||
#define TR_TEMPWARNING INDENT "オーバーヒートです"
|
||||
#define TR_TTL_WARNING "警告: 論理値3.3Vを使用します"
|
||||
#define TR_FUNC TR("機能", "ファンクション")
|
||||
|
||||
@@ -655,11 +655,8 @@
|
||||
#define TR_LCD "LCD"
|
||||
#define TR_BRIGHTNESS "Helderheid"
|
||||
#define TR_CPU_TEMP "CPU-Temp.\016>"
|
||||
#define TR_CPU_CURRENT "Stroom\022>"
|
||||
#define TR_CPU_MAH "Verbruik"
|
||||
#define TR_COPROC "CoProc."
|
||||
#define TR_COPROC_TEMP "MB Temp. \016>"
|
||||
#define TR_CAPAWARNING INDENT "Capaciteit laag" // wg 9XR-Pro
|
||||
#define TR_TEMPWARNING INDENT "Overhitting" //wg 9XR-Pro
|
||||
#define TR_TTL_WARNING "Warning: use 3.3V logic levels"
|
||||
#define TR_FUNC "Funktie"
|
||||
|
||||
@@ -651,11 +651,8 @@
|
||||
#define TR_LCD "LCD"
|
||||
#define TR_BRIGHTNESS "Jasność"
|
||||
#define TR_CPU_TEMP "Temp. CPU\016>"
|
||||
#define TR_CPU_CURRENT "Prąd"
|
||||
#define TR_CPU_MAH "Zużycie"
|
||||
#define TR_COPROC "CoProc."
|
||||
#define TR_COPROC_TEMP "Temp. MB"
|
||||
#define TR_CAPAWARNING INDENT "Mała pojemność"
|
||||
#define TR_TEMPWARNING INDENT "Przegrzanie"
|
||||
#define TR_TTL_WARNING "Uwaga: use 3.3V logic levels"
|
||||
#define TR_FUNC "Funkcja"
|
||||
|
||||
@@ -661,11 +661,8 @@
|
||||
#define TR_LCD "LCD"
|
||||
#define TR_BRIGHTNESS "Brilho"
|
||||
#define TR_CPU_TEMP "CPU temp."
|
||||
#define TR_CPU_CURRENT "Current"
|
||||
#define TR_CPU_MAH "Consumo."
|
||||
#define TR_COPROC "CoProc."
|
||||
#define TR_COPROC_TEMP "MB Temp."
|
||||
#define TR_CAPAWARNING INDENT "Capacit baixa"
|
||||
#define TR_TEMPWARNING INDENT "SobrAquec."
|
||||
#define TR_TTL_WARNING "Alerta: use 3.3V logic levels"
|
||||
#define TR_FUNC "Funcao"
|
||||
|
||||
@@ -660,11 +660,8 @@
|
||||
#define TR_LCD "LCD"
|
||||
#define TR_BRIGHTNESS "Подсветка"
|
||||
#define TR_CPU_TEMP "Темпер проц"
|
||||
#define TR_CPU_CURRENT "Ток"
|
||||
#define TR_CPU_MAH "Расход"
|
||||
#define TR_COPROC "Сопроцессор"
|
||||
#define TR_COPROC_TEMP "Темпер сопроц"
|
||||
#define TR_CAPAWARNING INDENT "Низкая емкость"
|
||||
#define TR_TEMPWARNING INDENT "Перегрев"
|
||||
#define TR_TTL_WARNING "Предупреждение: испол лог уровни 3.3В"
|
||||
#define TR_FUNC "Функция"
|
||||
|
||||
@@ -674,11 +674,8 @@
|
||||
#define TR_LCD "LCD"
|
||||
#define TR_BRIGHTNESS "Ljusstyrka"
|
||||
#define TR_CPU_TEMP "CPU temp.\016>"
|
||||
#define TR_CPU_CURRENT "Ström\022>"
|
||||
#define TR_CPU_MAH "Förbrukn."
|
||||
#define TR_COPROC "CoProc."
|
||||
#define TR_COPROC_TEMP "MB temp. \016>"
|
||||
#define TR_CAPAWARNING INDENT "Låg kapacitet"
|
||||
#define TR_TEMPWARNING TR(INDENT "Hög temp", INDENT "Hög temperatur")
|
||||
#define TR_TTL_WARNING "Varning: använd 3.3V logiska nivåer"
|
||||
#define TR_FUNC "Funktion"
|
||||
|
||||
@@ -653,11 +653,8 @@
|
||||
#define TR_LCD "LCD"
|
||||
#define TR_BRIGHTNESS "亮度"
|
||||
#define TR_CPU_TEMP "CPU 溫度"
|
||||
#define TR_CPU_CURRENT "電流"
|
||||
#define TR_CPU_MAH "消耗量"
|
||||
#define TR_COPROC "CoProc."
|
||||
#define TR_COPROC_TEMP "主板溫度"
|
||||
#define TR_CAPAWARNING INDENT "電流過低"
|
||||
#define TR_TEMPWARNING INDENT "過熱"
|
||||
#define TR_TTL_WARNING "注意串口使用逻辑电平3.3V"
|
||||
#define TR_FUNC "功能"
|
||||
|
||||
Reference in New Issue
Block a user