using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; namespace Rs.Motion.Base { public class BaseAxisControl { List axes= new List(); private bool bLoadAxis = false; private void LoadAxis() { if(!bLoadAxis) { PropertyInfo[] pis = this.GetType().GetProperties(System.Reflection.BindingFlags.Instance | BindingFlags.Public); foreach (var item in pis) { IAxis axis = (IAxis)item.GetValue(this, null); axes.Add(axis); } bLoadAxis = true; } } public void AllEnable() { LoadAxis(); foreach (IAxis axis in axes) { axis.Enable(); } } public void AllDisEnable() { LoadAxis(); foreach (IAxis axis in axes) { axis.Enable(); } } public void AllStop() { LoadAxis(); foreach (IAxis axis in axes) { axis.Stop(); } } public void Restore() { LoadAxis(); foreach (IAxis axis in axes) { axis.Restore(); } } } }