public void Update(Asst_PID_Controller[] controllers) { PIDGains.Clear(); foreach (Asst_PID_Controller controller in controllers) { double[] gains = new double[9]; gains[0] = controller.k_proportional; gains[1] = controller.k_integral; gains[2] = controller.k_derivative; gains[3] = controller.outMin; gains[4] = controller.outMax; gains[5] = controller.integralClampLower; gains[6] = controller.integralClampUpper; gains[7] = controller.Scalar; gains[8] = controller.Easing; PIDGains.Add(gains); } }
private bool controllerVisible(Asst_PID_Controller controller) { if (!controller.bShow) return false; switch (controller.ctrlID) { case AsstList.HdgBank: case AsstList.BankToYaw: return bShowHdg && CurrentHrztMode != HrztMode.Bank; case AsstList.Aileron: case AsstList.Rudder: return bShowHdg && showControlSurfaces; case AsstList.Altitude: return bShowVert && (CurrentVertMode == VertMode.Altitude || CurrentVertMode == VertMode.RadarAltitude); case AsstList.VertSpeed: return bShowVert; case AsstList.Elevator: return bShowVert && showControlSurfaces; case AsstList.Speed: return bShowThrottle && CurrentThrottleMode == ThrottleMode.Speed; case AsstList.Acceleration: return bShowThrottle && CurrentThrottleMode != ThrottleMode.Direct; default: return true; } }
// used for adding a new preset, can clone the current values public AsstPreset(Asst_PID_Controller[] controllers, string Name) { name = Name; Update(controllers); }