Exemplo n.º 1
0
t_Open9xArmExpoData_v210::operator ExpoData ()
{
  ExpoData c9x;
  c9x.mode = mode;
  c9x.chn = chn;

  if (expo!=0 && curve!=0) {
    EEPROMWarnings.push_back(::QObject::tr("Simultaneous usage of expo and curves is no longer supported"));
  }
  else {
    if (curve == 0) {
      c9x.curve = CurveReference(CurveReference::CURVE_REF_EXPO, expo);
    }
    else {
      // TODO
    }
  }
  c9x.swtch = open9xArmToSwitch(swtch);
  if (phase<0) {
    c9x.phases= 1 << (-phase -1);
  }
  else if (phase==0) {
    c9x.phases=0;
  }
  else {
    c9x.phases=63;
    c9x.phases &= ~(1 << (phase -1));
  }  
  c9x.weight = weight;
  getEEPROMZString(c9x.name, name, sizeof(name));
  return c9x;
}
Exemplo n.º 2
0
t_Open9xArmMixData_v212::operator MixData ()
{
  MixData c9x;
  if (srcRaw) {
    c9x.destCh = destCh+1;
    if (srcRaw == 0) {
      c9x.srcRaw = RawSource(SOURCE_TYPE_NONE);
    }
    else if (srcRaw <= 7) {
      c9x.srcRaw = RawSource(SOURCE_TYPE_STICK, srcRaw-1);
    }
    else if (srcRaw <= 8) {
      c9x.srcRaw = RawSource(SOURCE_TYPE_ROTARY_ENCODER, srcRaw-8);
    }
    else if (srcRaw <= 12) {
      c9x.srcRaw = RawSource(SOURCE_TYPE_TRIM, srcRaw-9);
    }
    else if (srcRaw == 13) {
      c9x.srcRaw = RawSource(SOURCE_TYPE_MAX);
    }
    else if (srcRaw == 14) {
      c9x.srcRaw = RawSource(SOURCE_TYPE_SWITCH, 0);
    }
    else if (srcRaw <= 14+9+O9X_ARM_NUM_CSW) {
      c9x.srcRaw = RawSource(SOURCE_TYPE_SWITCH, srcRaw-14);
    }
    else if (srcRaw <= 14+9+O9X_ARM_NUM_CSW+NUM_CYC) {
      c9x.srcRaw = RawSource(SOURCE_TYPE_CYC, srcRaw-15-9-O9X_ARM_NUM_CSW);
    }
    else if (srcRaw <= 14+9+O9X_ARM_NUM_CSW+NUM_CYC+8) {
      c9x.srcRaw = RawSource(SOURCE_TYPE_PPM, srcRaw-15-9-O9X_ARM_NUM_CSW-NUM_CYC);
    }
    else {
      c9x.srcRaw = RawSource(SOURCE_TYPE_CH, srcRaw-15-9-O9X_ARM_NUM_CSW-NUM_CYC-8);
    }
    c9x.weight = weight;

    if (curveMode==0) {
      c9x.curve = CurveReference(CurveReference::CURVE_REF_DIFF, curveParam);
    }
    else {
      // TODO
    }

    c9x.swtch = open9xArmToSwitch(swtch);
    c9x.delayUp = delayUp;
    c9x.delayDown = delayDown;
    c9x.speedUp = speedUp;
    c9x.speedDown = speedDown;
    c9x.carryTrim = carryTrim;
    c9x.noExpo = noExpo;
    c9x.mltpx = (MltpxValue)mltpx;
    c9x.mixWarn = mixWarn;
    c9x.phases = phases;
    c9x.sOffset = sOffset;
    getEEPROMZString(c9x.name, name, sizeof(name));
  }
  return c9x;
}
Exemplo n.º 3
0
t_Open9xArmFuncSwData_v208::operator FuncSwData ()
{
  FuncSwData c9x;
  c9x.swtch = open9xArmToSwitch(swtch);
  c9x.func = (AssignFunc)(func);
  if (c9x.func <= FuncOverrideCH32) {
    c9x.enabled=param & 0x01;
    c9x.param = (param>>1)<<1;
  }
Exemplo n.º 4
0
t_Open9xArmFlightModeData_v208::operator FlightModeData ()
{
  FlightModeData c9x;
  for (int i=0; i<NUM_STICKS; i++)
    c9x.trim[i] = trim[i];
  c9x.swtch = open9xArmToSwitch(swtch);
  getEEPROMZString(c9x.name, name, sizeof(name));
  c9x.fadeIn = fadeIn;
  c9x.fadeOut = fadeOut;
  return c9x;
}
Exemplo n.º 5
0
t_Open9xArmLogicalSwitchData_v209::operator LogicalSwitchData ()
{
  LogicalSwitchData c9x;
  c9x.func = func;
  c9x.val1 = v1;
  c9x.val2 = v2;

  if ((c9x.func >= LS_FN_VPOS && c9x.func <= LS_FN_ANEG) || c9x.func >= LS_FN_EQUAL) {
    c9x.val1 = open9xArm209ToSource(v1).toValue();
  }

  if (c9x.func >= LS_FN_EQUAL) {
    c9x.val2 = open9xArm209ToSource(v2).toValue();
  }

  if (c9x.func >= LS_FN_AND && c9x.func <= LS_FN_XOR) {
    c9x.val1 = open9xArmToSwitch(v1).toValue();
    c9x.val2 = open9xArmToSwitch(v2).toValue();
  }

  return c9x;
}
Exemplo n.º 6
0
t_Open9xArmExpoData_v212::operator ExpoData ()
{
  ExpoData c9x;
  c9x.mode = mode;
  c9x.chn = chn;

  // TODO c9x.curveMode=curveMode;
  // c9x.curveParam=curveParam;
  c9x.swtch = open9xArmToSwitch(swtch);
  c9x.phases= phases;
  c9x.weight = weight;
  getEEPROMZString(c9x.name, name, sizeof(name));
  return c9x;
}
Exemplo n.º 7
0
t_Open9xArmLogicalSwitchData_v210::operator LogicalSwitchData ()
{
  LogicalSwitchData c9x;
  c9x.func = func;
  c9x.val1 = v1;
  c9x.val2 = v2;
  c9x.delay = delay;
  c9x.duration = duration;
  
  if ((c9x.func >= LS_FN_VPOS && c9x.func <= LS_FN_ANEG) || c9x.func >= LS_FN_EQUAL) {
    c9x.val1 = open9xArm210ToSource(v1).toValue();
  }

  if (c9x.func >= LS_FN_EQUAL && c9x.func <= LS_FN_ELESS) {
    c9x.val2 = open9xArm210ToSource(v2).toValue();
  }

  if (c9x.func >= LS_FN_AND && c9x.func <= LS_FN_XOR) {
    c9x.val1 = open9xArmToSwitch(v1).toValue();
    c9x.val2 = open9xArmToSwitch(v2).toValue();
  }

  return c9x;
}
Exemplo n.º 8
0
t_Open9xArmMixData_v210::operator MixData ()
{
  MixData c9x;
  if (srcRaw) {
    c9x.destCh = destCh+1;
    if (srcRaw == 0) {
      c9x.srcRaw = RawSource(SOURCE_TYPE_NONE);
    }
    else if (srcRaw <= 7) {
      c9x.srcRaw = RawSource(SOURCE_TYPE_STICK, srcRaw-1);
    }
    else if (srcRaw <= 11) {
      c9x.srcRaw = RawSource(SOURCE_TYPE_TRIM, srcRaw-8);
    }
    else if (srcRaw == 12) {
      c9x.srcRaw = RawSource(SOURCE_TYPE_MAX);
    }
    else if (srcRaw == 13) {
      c9x.srcRaw = RawSource(SOURCE_TYPE_SWITCH, 0);
    }
    else if (srcRaw <= 13+9+O9X_ARM_NUM_CSW) {
      c9x.srcRaw = RawSource(SOURCE_TYPE_SWITCH, srcRaw-13);
    }
    else if (srcRaw <= 13+9+O9X_ARM_NUM_CSW+NUM_CYC) {
      c9x.srcRaw = RawSource(SOURCE_TYPE_CYC, srcRaw-14-9-O9X_ARM_NUM_CSW);
    }
    else if (srcRaw <= 13+9+O9X_ARM_NUM_CSW+NUM_CYC+8) {
      c9x.srcRaw = RawSource(SOURCE_TYPE_PPM, srcRaw-14-9-O9X_ARM_NUM_CSW-NUM_CYC);
    }
    else {
      c9x.srcRaw = RawSource(SOURCE_TYPE_CH, srcRaw-14-9-O9X_ARM_NUM_CSW-NUM_CYC-8);
    }
    c9x.weight = weight;

    if (differential) {
      c9x.curve = CurveReference(CurveReference::CURVE_REF_DIFF, differential*2);
    }
    else {
      // TODO c9x.curve = curve;
    }

    c9x.swtch = open9xArmToSwitch(swtch);
    c9x.delayUp = delayUp;
    c9x.delayDown = delayDown;
    c9x.speedUp = speedUp;
    c9x.speedDown = speedDown;
    c9x.carryTrim = carryTrim;
    c9x.mltpx = (MltpxValue)mltpx;
    c9x.mixWarn = mixWarn;

    if (phase<0) {
      c9x.phases= 1 << (-phase -1);
    }
    else if (phase==0) {
      c9x.phases=0;
    }
    else {
      c9x.phases=511;
      c9x.phases &= ~(1 << (phase -1));
    }

    c9x.sOffset = sOffset;
    getEEPROMZString(c9x.name, name, sizeof(name));
  }
  return c9x;
}
Exemplo n.º 9
0
t_Open9xArmMixData_v208::operator MixData ()
{
    MixData c9x;
    if (srcRaw) {
        c9x.destCh = destCh+1;
        if (srcRaw == 0) {
            c9x.srcRaw = RawSource(SOURCE_TYPE_NONE);
        }
        else if (srcRaw <= 7) {
            c9x.srcRaw = RawSource(SOURCE_TYPE_STICK, srcRaw-1);
        }
        else if (srcRaw == 8) {
            c9x.srcRaw = RawSource(SOURCE_TYPE_MAX);
        }
        else if (srcRaw == 9) {
            c9x.srcRaw = RawSource(SOURCE_TYPE_SWITCH, 0);
        }
        else if (srcRaw <= 9+9+32) {
            c9x.srcRaw = RawSource(SOURCE_TYPE_SWITCH, srcRaw-9);
        }
        else if (srcRaw <= 9+9+32+NUM_CYC) {
            c9x.srcRaw = RawSource(SOURCE_TYPE_CYC, srcRaw-10-9-32);
        }
        else if (srcRaw <= 9+9+32+NUM_CYC+8) {
            c9x.srcRaw = RawSource(SOURCE_TYPE_PPM, srcRaw-10-9-32-NUM_CYC);
        }
        else {
            c9x.srcRaw = RawSource(SOURCE_TYPE_CH, srcRaw-10-9-32-NUM_CYC-8);
        }
        c9x.weight = weight;
        c9x.swtch = open9xArmToSwitch(swtch);

        if (differential) {
            c9x.curve = CurveReference(CurveReference::CURVE_REF_DIFF, differential*2);
        }
        else {
            // TODO c9x.curve = curve;
        }

        c9x.delayUp = delayUp;
        c9x.delayDown = delayDown;
        c9x.speedUp = speedUp;
        c9x.speedDown = speedDown;
        c9x.carryTrim = carryTrim;
        c9x.mltpx = (MltpxValue)mltpx;
        c9x.mixWarn = mixWarn;

        if (phase<0) {
            c9x.flightModes= 1 << (-phase -1);
        }
        else if (phase==0) {
            c9x.flightModes=0;
        }
        else {
            c9x.flightModes=511;
            c9x.flightModes &= ~(1 << (phase -1));
        }

        c9x.sOffset = sOffset;
    }
    return c9x;
}