Ejemplo n.º 1
0
static void OnCruiseEfficiencyData(DataField *Sender, DataField::DataAccessKind_t Mode) {
  double clast = CRUISE_EFFICIENCY;
  switch(Mode){
  case DataField::daGet:
    break;
  case DataField::daSpecial:
    GetCruiseEfficiency();
    CRUISE_EFFICIENCY = cruise_efficiency;
    if (fabs(cruise_efficiency-clast)>0.01) {
      RefreshCalculator();
    }
    break;
  case DataField::daPut: 
  case DataField::daChange:
    cruise_efficiency = Sender->GetAsFloat()/100.0;
    CRUISE_EFFICIENCY = cruise_efficiency;
    if (fabs(cruise_efficiency-clast)>0.01) {
      RefreshCalculator();
    }
    break;
  case DataField::daInc:
  case DataField::daDec:
    break;
  }
}
Ejemplo n.º 2
0
void
TaskCalculatorPanel::OnSpecial(DataField &df)
{
  if (IsDataField(MC, df)) {
    const DerivedInfo &calculated = CommonInterface::Calculated();
    if (positive(calculated.time_climb)) {
      fixed mc = calculated.total_height_gain / calculated.time_climb;
      DataFieldFloat &dff = (DataFieldFloat &)df;
      dff.Set(Units::ToUserVSpeed(mc));
      ActionInterface::SetManualMacCready(mc);
      Refresh();
    }
  } else if (IsDataField(CRUISE_EFFICIENCY, df)) {
    GetCruiseEfficiency();
  }
}