1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-25 17:25:13 +03:00
This commit is contained in:
bsongis 2014-07-07 18:03:25 +02:00
parent ee077a06e6
commit 2798fa7ba9
19 changed files with 104 additions and 70 deletions

View file

@ -918,7 +918,7 @@ class TimerData {
unsigned int countdownBeep; unsigned int countdownBeep;
bool dir; // 0=>Count Down, 1=>Count Up bool dir; // 0=>Count Down, 1=>Count Up
unsigned int val; unsigned int val;
bool persistent; unsigned int persistent;
int pvalue; int pvalue;
void clear() { memset(this, 0, sizeof(TimerData)); mode = RawSwitch(SWITCH_TYPE_TIMER_MODE, 0); } void clear() { memset(this, 0, sizeof(TimerData)); mode = RawSwitch(SWITCH_TYPE_TIMER_MODE, 0); }
}; };

View file

@ -2399,8 +2399,8 @@ OpenTxModelData::OpenTxModelData(ModelData & modelData, BoardEnum board, unsigne
internalField.Append(new UnsignedField<16>(modelData.timers[i].val)); internalField.Append(new UnsignedField<16>(modelData.timers[i].val));
internalField.Append(new UnsignedField<2>(modelData.timers[i].countdownBeep)); internalField.Append(new UnsignedField<2>(modelData.timers[i].countdownBeep));
internalField.Append(new BoolField<1>(modelData.timers[i].minuteBeep)); internalField.Append(new BoolField<1>(modelData.timers[i].minuteBeep));
internalField.Append(new BoolField<1>(modelData.timers[i].persistent)); internalField.Append(new UnsignedField<2>(modelData.timers[i].persistent));
internalField.Append(new SpareBitsField<4>()); internalField.Append(new SpareBitsField<3>());
internalField.Append(new SignedField<16>(modelData.timers[i].pvalue)); internalField.Append(new SignedField<16>(modelData.timers[i].pvalue));
} }
else if (afterrelease21March2013) { else if (afterrelease21March2013) {
@ -2408,7 +2408,7 @@ OpenTxModelData::OpenTxModelData(ModelData & modelData, BoardEnum board, unsigne
internalField.Append(new BoolField<1>((bool &)modelData.timers[i].countdownBeep)); internalField.Append(new BoolField<1>((bool &)modelData.timers[i].countdownBeep));
internalField.Append(new BoolField<1>(modelData.timers[i].minuteBeep)); internalField.Append(new BoolField<1>(modelData.timers[i].minuteBeep));
if (HAS_PERSISTENT_TIMERS(board)) { if (HAS_PERSISTENT_TIMERS(board)) {
internalField.Append(new BoolField<1>(modelData.timers[i].persistent)); internalField.Append(new UnsignedField<1>(modelData.timers[i].persistent));
internalField.Append(new SpareBitsField<1>()); internalField.Append(new SpareBitsField<1>());
internalField.Append(new SignedField<16>(modelData.timers[i].pvalue)); internalField.Append(new SignedField<16>(modelData.timers[i].pvalue));
} }
@ -2419,7 +2419,7 @@ OpenTxModelData::OpenTxModelData(ModelData & modelData, BoardEnum board, unsigne
else { else {
internalField.Append(new UnsignedField<16>(modelData.timers[i].val)); internalField.Append(new UnsignedField<16>(modelData.timers[i].val));
if (HAS_PERSISTENT_TIMERS(board)) { if (HAS_PERSISTENT_TIMERS(board)) {
internalField.Append(new BoolField<1>(modelData.timers[i].persistent)); internalField.Append(new UnsignedField<1>(modelData.timers[i].persistent));
internalField.Append(new SpareBitsField<15>()); internalField.Append(new SpareBitsField<15>());
} }
} }

View file

@ -25,8 +25,14 @@ TimerPanel::TimerPanel(QWidget *parent, ModelData & model, TimerData & timer, Ge
ui->countdownBeep->setField(&timer.countdownBeep, this); ui->countdownBeep->setField(&timer.countdownBeep, this);
ui->countdownBeep->addItem(tr("Silent"), 0); ui->countdownBeep->addItem(tr("Silent"), 0);
ui->countdownBeep->addItem(tr("Beeps"), 1); ui->countdownBeep->addItem(tr("Beeps"), 1);
if (IS_ARM(GetEepromInterface()->getBoard()) || IS_2560(GetEepromInterface()->getBoard())) if (IS_ARM(GetEepromInterface()->getBoard()) || IS_2560(GetEepromInterface()->getBoard())) {
ui->countdownBeep->addItem(tr("Voice"), 2); ui->countdownBeep->addItem(tr("Voice"), 2);
}
ui->persistent->setField(&timer.persistent, this);
ui->persistent->addItem(tr("Not persistent"), 0);
ui->persistent->addItem(tr("Persistent (flight)"), 1);
ui->persistent->addItem(tr("Persistent (manual reset)"), 2);
disableMouseScrolling(); disableMouseScrolling();
@ -55,7 +61,6 @@ void TimerPanel::update()
pvalue -= hours * 3600; pvalue -= hours * 3600;
int minutes = pvalue / 60; int minutes = pvalue / 60;
int seconds = pvalue % 60; int seconds = pvalue % 60;
ui->persistent->setChecked(timer.persistent);
ui->persistentValue->setText(QString(" %1(%2:%3:%4)").arg(sign<0 ? "-" :" ").arg(hours, 2, 10, QLatin1Char('0')).arg(minutes, 2, 10, QLatin1Char('0')).arg(seconds, 2, 10, QLatin1Char('0'))); ui->persistentValue->setText(QString(" %1(%2:%3:%4)").arg(sign<0 ? "-" :" ").arg(hours, 2, 10, QLatin1Char('0')).arg(minutes, 2, 10, QLatin1Char('0')).arg(seconds, 2, 10, QLatin1Char('0')));
} }

View file

@ -51,11 +51,7 @@
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QCheckBox" name="persistent"> <widget class="QUnsignedAutoComboBox" name="persistent"/>
<property name="text">
<string>Persistent</string>
</property>
</widget>
</item> </item>
<item> <item>
<widget class="QLabel" name="persistentValue"> <widget class="QLabel" name="persistentValue">

View file

@ -1142,7 +1142,7 @@ void menuModelSetup(uint8_t event)
case ITEM_MODEL_TIMER2_PERSISTENT: case ITEM_MODEL_TIMER2_PERSISTENT:
{ {
TimerData &timer = g_model.timers[k==ITEM_MODEL_TIMER2_PERSISTENT]; TimerData &timer = g_model.timers[k==ITEM_MODEL_TIMER2_PERSISTENT];
timer.persistent = onoffMenuItem(timer.persistent, MODEL_SETUP_2ND_COLUMN, y, STR_PERSISTENT, attr, event); timer.persistent = selectMenuItem(MODEL_SETUP_2ND_COLUMN, y, STR_PERSISTENT, STR_VPERSISTENT, timer.persistent, 0, 2, attr, event);
break; break;
} }
#endif #endif

View file

@ -1590,11 +1590,11 @@ PACK(typedef struct t_TimerData {
uint16_t start; uint16_t start;
uint8_t countdownBeep:2; uint8_t countdownBeep:2;
uint8_t minuteBeep:1; uint8_t minuteBeep:1;
uint8_t persistent:1; uint8_t persistent:2;
uint8_t spare:4; uint8_t spare:3;
uint16_t value; uint16_t value;
}) TimerData; }) TimerData;
#define IS_PERSISTENT_TIMER(idx) g_model.timers[idx].persistent #define IS_MANUAL_RESET_TIMER(idx) (g_model.timers[idx].persistent == 2)
#else #else
PACK(typedef struct t_TimerData { PACK(typedef struct t_TimerData {
int8_t mode; // timer trigger source -> off, abs, stk, stk%, sw/!sw, !m_sw/!m_sw int8_t mode; // timer trigger source -> off, abs, stk, stk%, sw/!sw, !m_sw/!m_sw
@ -1603,7 +1603,7 @@ PACK(typedef struct t_TimerData {
uint16_t minuteBeep:1; uint16_t minuteBeep:1;
uint16_t spare:2; uint16_t spare:2;
}) TimerData; }) TimerData;
#define IS_PERSISTENT_TIMER(idx) 0 #define IS_MANUAL_RESET_TIMER(idx) 0
#endif #endif
enum Protocols { enum Protocols {

View file

@ -1619,11 +1619,11 @@ void flightReset()
else else
AUDIO_RESET(); AUDIO_RESET();
if (!IS_PERSISTENT_TIMER(0)) { if (!IS_MANUAL_RESET_TIMER(0)) {
timerReset(0); timerReset(0);
} }
if (!IS_PERSISTENT_TIMER(1)) { if (!IS_MANUAL_RESET_TIMER(1)) {
timerReset(1); timerReset(1);
} }

View file

@ -100,6 +100,7 @@ const pm_char STR_OPEN9X[] PROGMEM =
ISTR(VTMRMODES) ISTR(VTMRMODES)
#if defined(CPUM2560) || defined(CPUARM) #if defined(CPUM2560) || defined(CPUARM)
ISTR(DATETIME) ISTR(DATETIME)
ISTR(VPERSISTENT)
#endif #endif
#if defined(CPUARM) #if defined(CPUARM)
ISTR(VLCD) ISTR(VLCD)

View file

@ -156,7 +156,8 @@ extern const pm_char STR_OPEN9X[];
#define OFS_VTMRMODES (OFS_VSRCRAW + sizeof(TR_VSRCRAW)) #define OFS_VTMRMODES (OFS_VSRCRAW + sizeof(TR_VSRCRAW))
#define OFS_DATETIME (OFS_VTMRMODES + sizeof(TR_VTMRMODES)) #define OFS_DATETIME (OFS_VTMRMODES + sizeof(TR_VTMRMODES))
#if defined(CPUM2560) || defined(CPUARM) #if defined(CPUM2560) || defined(CPUARM)
#define OFS_VLCD (OFS_DATETIME + sizeof(TR_DATETIME)) #define OFS_VPERSISTENT (OFS_DATETIME + sizeof(TR_DATETIME))
#define OFS_VLCD (OFS_VPERSISTENT + sizeof(TR_VPERSISTENT))
#else #else
#define OFS_VLCD (OFS_DATETIME) #define OFS_VLCD (OFS_DATETIME)
#endif #endif
@ -260,6 +261,7 @@ extern const pm_char STR_OPEN9X[];
#if defined(CPUM2560) || defined(CPUARM) #if defined(CPUM2560) || defined(CPUARM)
#define STR_DATETIME (STR_OPEN9X + OFS_DATETIME) #define STR_DATETIME (STR_OPEN9X + OFS_DATETIME)
#define STR_VPERSISTENT (STR_OPEN9X + OFS_VPERSISTENT)
#endif #endif
#if defined(CPUARM) #if defined(CPUARM)

View file

@ -91,6 +91,9 @@
#define LEN_VLCD "\006" #define LEN_VLCD "\006"
#define TR_VLCD "NormalOptrex" #define TR_VLCD "NormalOptrex"
#define LEN_VPERSISTENT "\014"
#define TR_VPERSISTENT "OFF\0 ""Flight\0 ""Manual Reset"
#define LEN_COUNTRYCODES TR("\002", "\010") #define LEN_COUNTRYCODES TR("\002", "\010")
#define TR_COUNTRYCODES TR("US""JP""EU", "Amerika\0""Japonsko""Evropa\0 ") #define TR_COUNTRYCODES TR("US""JP""EU", "Amerika\0""Japonsko""Evropa\0 ")

View file

@ -91,6 +91,9 @@
#define LEN_VLCD "\006" #define LEN_VLCD "\006"
#define TR_VLCD "Normal""Optrex" #define TR_VLCD "Normal""Optrex"
#define LEN_VPERSISTENT "\014"
#define TR_VPERSISTENT "OFF\0 ""Flight\0 ""Manual Reset"
#define LEN_COUNTRYCODES TR("\002", "\007") #define LEN_COUNTRYCODES TR("\002", "\007")
#define TR_COUNTRYCODES TR("US""JP""EU", "Amerika""Japan\0 ""Europa\0") #define TR_COUNTRYCODES TR("US""JP""EU", "Amerika""Japan\0 ""Europa\0")

View file

@ -91,6 +91,9 @@
#define LEN_VLCD "\006" #define LEN_VLCD "\006"
#define TR_VLCD "NormalOptrex" #define TR_VLCD "NormalOptrex"
#define LEN_VPERSISTENT "\014"
#define TR_VPERSISTENT "OFF\0 ""Flight\0 ""Manual Reset"
#define LEN_COUNTRYCODES TR("\002", "\007") #define LEN_COUNTRYCODES TR("\002", "\007")
#define TR_COUNTRYCODES TR("US""JP""EU", "America""Japan\0 ""Europe\0") #define TR_COUNTRYCODES TR("US""JP""EU", "America""Japan\0 ""Europe\0")

View file

@ -91,6 +91,9 @@
#define LEN_VLCD "\006" #define LEN_VLCD "\006"
#define TR_VLCD "NormalOptrex" #define TR_VLCD "NormalOptrex"
#define LEN_VPERSISTENT "\014"
#define TR_VPERSISTENT "OFF\0 ""Flight\0 ""Manual Reset"
#define LEN_COUNTRYCODES TR("\002", "\007") #define LEN_COUNTRYCODES TR("\002", "\007")
#define TR_COUNTRYCODES TR("US""JP""EU", "America""Japon\0 ""Europa\0") #define TR_COUNTRYCODES TR("US""JP""EU", "America""Japon\0 ""Europa\0")

View file

@ -91,6 +91,9 @@
#define LEN_VLCD "\006" #define LEN_VLCD "\006"
#define TR_VLCD "NormalOptrex" #define TR_VLCD "NormalOptrex"
#define LEN_VPERSISTENT "\014"
#define TR_VPERSISTENT "OFF\0 ""Flight\0 ""Manual Reset"
#define LEN_COUNTRYCODES TR("\002", "\007") #define LEN_COUNTRYCODES TR("\002", "\007")
#define TR_COUNTRYCODES TR("US""JP""EU", "Amerikk""Japani\0""Euroopp") #define TR_COUNTRYCODES TR("US""JP""EU", "Amerikk""Japani\0""Euroopp")

View file

@ -91,6 +91,9 @@
#define LEN_VLCD "\006" #define LEN_VLCD "\006"
#define TR_VLCD "NormalOptrex" #define TR_VLCD "NormalOptrex"
#define LEN_VPERSISTENT "\014"
#define TR_VPERSISTENT "OFF\0 ""Vol\0 ""Reset Manuel"
#define LEN_COUNTRYCODES TR("\002", "\006") #define LEN_COUNTRYCODES TR("\002", "\006")
#define TR_COUNTRYCODES TR("US""JP""EU", "USA\0 ""Japon\0""Europe") #define TR_COUNTRYCODES TR("US""JP""EU", "USA\0 ""Japon\0""Europe")

View file

@ -91,6 +91,9 @@
#define LEN_VLCD "\006" #define LEN_VLCD "\006"
#define TR_VLCD "NormalOptrex" #define TR_VLCD "NormalOptrex"
#define LEN_VPERSISTENT "\014"
#define TR_VPERSISTENT "OFF\0 ""Flight\0 ""Manual Reset"
#define LEN_COUNTRYCODES TR("\002", "\007") #define LEN_COUNTRYCODES TR("\002", "\007")
#define TR_COUNTRYCODES TR("US""JP""EU", "America""Japan\0 ""Europa\0") #define TR_COUNTRYCODES TR("US""JP""EU", "America""Japan\0 ""Europa\0")

View file

@ -91,6 +91,9 @@
#define LEN_VLCD "\006" #define LEN_VLCD "\006"
#define TR_VLCD "NormalOptrex" #define TR_VLCD "NormalOptrex"
#define LEN_VPERSISTENT "\014"
#define TR_VPERSISTENT "OFF\0 ""Flight\0 ""Manual Reset"
#define LEN_COUNTRYCODES TR("\002", "\007") #define LEN_COUNTRYCODES TR("\002", "\007")
#define TR_COUNTRYCODES TR("US""JP""EU", "Ameryka""Japonia""Europa\0") #define TR_COUNTRYCODES TR("US""JP""EU", "Ameryka""Japonia""Europa\0")

View file

@ -91,6 +91,9 @@
#define LEN_VLCD "\006" #define LEN_VLCD "\006"
#define TR_VLCD "NormalOptrex" #define TR_VLCD "NormalOptrex"
#define LEN_VPERSISTENT "\014"
#define TR_VPERSISTENT "OFF\0 ""Flight\0 ""Manual Reset"
#define LEN_COUNTRYCODES TR("\002", "\007") #define LEN_COUNTRYCODES TR("\002", "\007")
#define TR_COUNTRYCODES TR("US""JP""EU", "America""Japan\0 ""Europe\0") #define TR_COUNTRYCODES TR("US""JP""EU", "America""Japan\0 ""Europe\0")

View file

@ -91,6 +91,9 @@
#define LEN_VLCD "\006" #define LEN_VLCD "\006"
#define TR_VLCD "NormalOptrex" #define TR_VLCD "NormalOptrex"
#define LEN_VPERSISTENT "\014"
#define TR_VPERSISTENT "OFF\0 ""Flight\0 ""Manual Reset"
#define LEN_COUNTRYCODES TR("\002", "\007") #define LEN_COUNTRYCODES TR("\002", "\007")
#define TR_COUNTRYCODES TR("US""JP""EU", "Amerika""Japan\0 ""Europa\0") #define TR_COUNTRYCODES TR("US""JP""EU", "Amerika""Japan\0 ""Europa\0")