1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-20 06:45:10 +03:00
This commit is contained in:
bsongis 2014-06-04 09:02:05 +02:00
parent c8e0b85e7e
commit 61923a9bec
3 changed files with 23 additions and 10 deletions

View file

@ -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++) {

View file

@ -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();

View file

@ -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]);
} }