public static HelicopterControllerSettings FromXmlElement(XElement controllerElement) { var controllerSetting = new HelicopterControllerSettings() { IsSafetyEnabled = controllerElement.Attribute("IsSafetyEnabled").ParseOptionalBoolean(), PidLoopIntervalMilliseconds = controllerElement.Attribute("PidLoopIntervalMilliseconds").ParseInt(), YawControllerSettings = YawControllerSettings.FromXmlElement(controllerElement.Element("Yaw")), TiltControllerSettings = TiltControllerSettings.FromXmlElement(controllerElement.Element("Tilt")), }; return controllerSetting; }
public void LoadSettings(HelicopterControllerSettings settings) { if (settings.IsSafetyEnabled) { EnableSafety(); } else { DisableSafety(); } SetPidLoopInterval(settings.PidLoopIntervalMilliseconds); Yaw.LoadSettings(settings.YawControllerSettings); Tilt.LoadSettings(settings.TiltControllerSettings); Yaw.RefreshAllValues(); Tilt.RefreshAllValues(); Log.Debug("Loaded settings for Helicopter Controller"); }
public void Connect(HelicopterControllerSettings settings) { if (!IsConnected) { Microcontroller.Connect(); LoadSettings(settings); InitializeController(); Log.DebugFormat("Connected to {0}", ControllerIdentity); } else { throw new Exception("Microcontroller is already connected."); } }