public override string ToString() { string output = ""; if (TriggeringEvent == YawTrackerOrientationEvent.Yaw0) { output += YawTracker.S_Yaw0; } else if (TriggeringEvent == YawTrackerOrientationEvent.Yaw180) { output += YawTracker.S_Yaw180; } else if (TriggeringEvent == YawTrackerOrientationEvent.Yaw0Yaw180) { output += YawTracker.S_Yaw0Yaw180; } else if (TriggeringEvent == YawTrackerOrientationEvent.ResetPosition) { output += YawTracker.S_ResetPosition; } output += (FireLimitPerReset > 0) ? $" (max {FireLimitPerReset.ToString()})" : ""; output += RotCondition?.ToString() ?? ""; return(output); }
public XElement GetXml() { return(new XElement("Trigger", new XElement("TriggeringEvent", TriggeringEvent.ToString()), new XElement("FireLimitPerZero", FireLimitPerReset), RotCondition.GetXml() )); }
public void LoadFromXml(XElement xTrackerTrigger) { if (xTrackerTrigger != null) { if (Enum.TryParse(xTrackerTrigger.GetElementValueTrimmed("TriggeringEvent"), out YawTrackerOrientationEvent trig)) { TriggeringEvent = trig; } else { TriggeringEvent = YawTrackerOrientationEvent.Yaw0; } FireLimitPerReset = (uint)xTrackerTrigger.GetElementValueInt("FireLimitPerZero"); RotCondition.LoadFromXml(xTrackerTrigger.Element("RotationCondition")); } }
protected bool ConditionsAreTrue(RotationEventArgs e) { if (FireLimitPerReset > 0 && FireCountSinceLastResetPos >= FireLimitPerReset) { return(false); } if (RotCondition != null) { if (RotCondition.IsTrue(e) == false) { return(false); } } // further conditions... return(true); }
public void Delete() { RotCondition.Delete(); Enabled = false; }