mirror of
https://github.com/opentx/opentx.git
synced 2025-07-20 06:45:10 +03:00
Fixes #1172
This commit is contained in:
parent
c8e0b85e7e
commit
61923a9bec
3 changed files with 23 additions and 10 deletions
|
@ -1164,6 +1164,23 @@ int ModelData::getTrimValue(int phaseIdx, int trimIdx)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool ModelData::isGVarLinked(int phaseIdx, int gvarIdx)
|
||||||
|
{
|
||||||
|
return phaseData[phaseIdx].gvars[gvarIdx] > 1024;
|
||||||
|
}
|
||||||
|
|
||||||
|
int ModelData::getGVarValue(int phaseIdx, int gvarIdx)
|
||||||
|
{
|
||||||
|
int idx = phaseData[phaseIdx].gvars[gvarIdx];
|
||||||
|
for (int i=0; idx>1024 && i<C9X_MAX_FLIGHT_MODES; i++) {
|
||||||
|
int nextPhase = idx - 1025;
|
||||||
|
if (nextPhase >= phaseIdx) nextPhase += 1;
|
||||||
|
phaseIdx = nextPhase;
|
||||||
|
idx = phaseData[phaseIdx].gvars[gvarIdx];
|
||||||
|
}
|
||||||
|
return idx;
|
||||||
|
}
|
||||||
|
|
||||||
void ModelData::setTrimValue(int phaseIdx, int trimIdx, int value)
|
void ModelData::setTrimValue(int phaseIdx, int trimIdx, int value)
|
||||||
{
|
{
|
||||||
for (uint8_t i=0; i<C9X_MAX_FLIGHT_MODES; i++) {
|
for (uint8_t i=0; i<C9X_MAX_FLIGHT_MODES; i++) {
|
||||||
|
|
|
@ -1046,6 +1046,10 @@ class ModelData {
|
||||||
|
|
||||||
int getTrimValue(int phaseIdx, int trimIdx);
|
int getTrimValue(int phaseIdx, int trimIdx);
|
||||||
void setTrimValue(int phaseIdx, int trimIdx, int value);
|
void setTrimValue(int phaseIdx, int trimIdx, int value);
|
||||||
|
|
||||||
|
bool isGVarLinked(int phaseIdx, int gvarIdx);
|
||||||
|
int getGVarValue(int phaseIdx, int gvarIdx);
|
||||||
|
|
||||||
ModelData removeGlobalVars();
|
ModelData removeGlobalVars();
|
||||||
|
|
||||||
void clearMixes();
|
void clearMixes();
|
||||||
|
|
|
@ -202,17 +202,9 @@ void FlightModePanel::update()
|
||||||
|
|
||||||
for (int i=0; i<gvCount; i++) {
|
for (int i=0; i<gvCount; i++) {
|
||||||
gvNames[i]->setText(model.gvars_names[i]);
|
gvNames[i]->setText(model.gvars_names[i]);
|
||||||
gvValues[i]->setDisabled(false);
|
gvValues[i]->setDisabled(model.isGVarLinked(phaseIdx, i));
|
||||||
int idx = phase.gvars[i];
|
|
||||||
PhaseData *phasegvar = &phase;
|
|
||||||
while (idx > 1024) {
|
|
||||||
idx -= 1025;
|
|
||||||
phasegvar = &model.phaseData[idx];
|
|
||||||
idx = phasegvar->gvars[i];
|
|
||||||
gvValues[i]->setDisabled(true);
|
|
||||||
}
|
|
||||||
if (IS_TARANIS(GetEepromInterface()->getBoard())) {
|
if (IS_TARANIS(GetEepromInterface()->getBoard())) {
|
||||||
gvValues[i]->setValue(phasegvar->gvars[i]);
|
gvValues[i]->setValue(model.getGVarValue(phaseIdx, i));
|
||||||
if (phaseIdx == 0)
|
if (phaseIdx == 0)
|
||||||
gvPopups[i]->setChecked(model.gvars_popups[i]);
|
gvPopups[i]->setChecked(model.gvars_popups[i]);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue