mirror of
https://github.com/opentx/opentx.git
synced 2025-07-23 08:15:17 +03:00
[Taranis] Issue #554 - Companion part done
This commit is contained in:
parent
cde59a2b22
commit
80a6c4727d
8 changed files with 139 additions and 93 deletions
|
@ -624,17 +624,57 @@ void ModelData::setDefault(uint8_t id)
|
|||
sprintf(name, "MODEL%02d", id+1);
|
||||
}
|
||||
|
||||
unsigned int ModelData::getTrimFlightPhase(uint8_t idx, int8_t phase)
|
||||
int ModelData::getTrimValue(int phaseIdx, int trimIdx)
|
||||
{
|
||||
// if (phase == -1) phase = getFlightPhase();
|
||||
|
||||
for (uint8_t i=0; i<C9X_MAX_PHASES; i++) {
|
||||
if (phase == 0 || phaseData[phase].trimRef[idx] < 0) return phase;
|
||||
phase = phaseData[phase].trimRef[idx];
|
||||
int result = 0;
|
||||
for (int i=0; i<C9X_MAX_PHASES; i++) {
|
||||
PhaseData & phase = phaseData[phaseIdx];
|
||||
if (phase.trimMode[trimIdx] < 0) {
|
||||
return result;
|
||||
}
|
||||
else {
|
||||
if (phase.trimRef[trimIdx] == phaseIdx || phaseIdx == 0) {
|
||||
return result + phase.trim[trimIdx];
|
||||
}
|
||||
else {
|
||||
phaseIdx = phase.trimRef[trimIdx];
|
||||
if (phase.trimMode[trimIdx] == 0)
|
||||
result = 0;
|
||||
else
|
||||
result += phase.trim[trimIdx];
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void ModelData::setTrimValue(int phaseIdx, int trimIdx, int value)
|
||||
{
|
||||
for (uint8_t i=0; i<C9X_MAX_PHASES; i++) {
|
||||
PhaseData & phase = phaseData[phaseIdx];
|
||||
int mode = phase.trimMode[trimIdx];
|
||||
int p = phase.trimRef[trimIdx];
|
||||
int & trim = phase.trim[trimIdx];
|
||||
if (mode < 0)
|
||||
return;
|
||||
if (p == phaseIdx || phaseIdx == 0) {
|
||||
trim = value;
|
||||
break;;
|
||||
}
|
||||
else if (mode == 0) {
|
||||
phaseIdx = p;
|
||||
}
|
||||
else {
|
||||
trim = value - getTrimValue(p, trimIdx);
|
||||
if (trim < -500)
|
||||
trim = -500;
|
||||
if (trim > 500)
|
||||
trim = 500;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ModelData::removeGlobalVar(int & var)
|
||||
{
|
||||
if (var >= 126 && var <= 130)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue