You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

66 lines
1.4 KiB
C#

2 years ago
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<IAxis> axes= new List<IAxis>();
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();
}
}
}
}