using System;
using System.Text;
using Aerotech.A3200.Properties;
namespace Aerotech.A3200.Commands
{
public class IOCommands : CommandCategory
{
internal IOCommands(Controller controller, int taskNumber, AxisSelectionEnumerator axisEnumerator)
: base(controller, taskNumber, axisEnumerator)
{
}
public double AnalogInput(int Channel, int Axis)
{
string name = base.Controller.Information.Axes[Axis].Name;
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append("$return");
stringBuilder.Append(" = $AI[");
stringBuilder.Append(ToString(Channel));
stringBuilder.Append("].");
stringBuilder.Append(ToString(name));
return base.Controller.Commands.ExecuteInternal(base.TaskNumber, stringBuilder.ToString());
}
public double AnalogInput(int Channel, string Axis)
{
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append("$return");
stringBuilder.Append(" = $AI[");
stringBuilder.Append(ToString(Channel));
stringBuilder.Append("].");
stringBuilder.Append(ToString(Axis));
return base.Controller.Commands.ExecuteInternal(base.TaskNumber, stringBuilder.ToString());
}
public void AnalogOutput(int Channel, int Axis, double Value)
{
string name = base.Controller.Information.Axes[Axis].Name;
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append("$AO[");
stringBuilder.Append(ToString(Channel));
stringBuilder.Append("].");
stringBuilder.Append(ToString(name));
stringBuilder.Append(" = ");
stringBuilder.Append(ToString(Value));
base.Controller.Commands.ExecuteInternal(base.TaskNumber, stringBuilder.ToString());
}
public void AnalogOutput(int Channel, string Axis, double Value)
{
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append("$AO[");
stringBuilder.Append(ToString(Channel));
stringBuilder.Append("].");
stringBuilder.Append(ToString(Axis));
stringBuilder.Append(" = ");
stringBuilder.Append(ToString(Value));
base.Controller.Commands.ExecuteInternal(base.TaskNumber, stringBuilder.ToString());
}
public int DigitalInput(int Word, int Axis)
{
string name = base.Controller.Information.Axes[Axis].Name;
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append("$return");
stringBuilder.Append(" = $WI[");
stringBuilder.Append(ToString(Word));
stringBuilder.Append("].");
stringBuilder.Append(ToString(name));
return (int)base.Controller.Commands.ExecuteInternal(base.TaskNumber, stringBuilder.ToString());
}
public int DigitalInput(int Word, string Axis)
{
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append("$return");
stringBuilder.Append(" = $WI[");
stringBuilder.Append(ToString(Word));
stringBuilder.Append("].");
stringBuilder.Append(ToString(Axis));
return (int)base.Controller.Commands.ExecuteInternal(base.TaskNumber, stringBuilder.ToString());
}
public void DigitalOutput(int Word, int Axis, int Value)
{
string name = base.Controller.Information.Axes[Axis].Name;
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append("$WO[");
stringBuilder.Append(ToString(Word));
stringBuilder.Append("].");
stringBuilder.Append(ToString(name));
stringBuilder.Append(" = ");
stringBuilder.Append(ToString(Value));
base.Controller.Commands.ExecuteInternal(base.TaskNumber, stringBuilder.ToString());
}
public void DigitalOutput(int Word, string Axis, int Value)
{
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append("$WO[");
stringBuilder.Append(ToString(Word));
stringBuilder.Append("].");
stringBuilder.Append(ToString(Axis));
stringBuilder.Append(" = ");
stringBuilder.Append(ToString(Value));
base.Controller.Commands.ExecuteInternal(base.TaskNumber, stringBuilder.ToString());
}
public int DigitalInputBit(int Bit, int Axis)
{
string name = base.Controller.Information.Axes[Axis].Name;
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append("$return");
stringBuilder.Append(" = $DI[");
stringBuilder.Append(ToString(Bit));
stringBuilder.Append("].");
stringBuilder.Append(ToString(name));
return (int)base.Controller.Commands.ExecuteInternal(base.TaskNumber, stringBuilder.ToString());
}
public int DigitalInputBit(int Bit, string Axis)
{
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append("$return");
stringBuilder.Append(" = $DI[");
stringBuilder.Append(ToString(Bit));
stringBuilder.Append("].");
stringBuilder.Append(ToString(Axis));
return (int)base.Controller.Commands.ExecuteInternal(base.TaskNumber, stringBuilder.ToString());
}
public void DigitalOutputBit(int Bit, int Axis, int Value)
{
string name = base.Controller.Information.Axes[Axis].Name;
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append("$DO[");
stringBuilder.Append(ToString(Bit));
stringBuilder.Append("].");
stringBuilder.Append(ToString(name));
stringBuilder.Append(" = ");
stringBuilder.Append(ToString(Value));
base.Controller.Commands.ExecuteInternal(base.TaskNumber, stringBuilder.ToString());
}
public void DigitalOutputBit(int Bit, string Axis, int Value)
{
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append("$DO[");
stringBuilder.Append(ToString(Bit));
stringBuilder.Append("].");
stringBuilder.Append(ToString(Axis));
stringBuilder.Append(" = ");
stringBuilder.Append(ToString(Value));
base.Controller.Commands.ExecuteInternal(base.TaskNumber, stringBuilder.ToString());
}
public void Brake(int[] axisIndexes, OnOff OnOff)
{
AxisSelectionEnumerator axisSelectionEnumerator = new AxisSelectionEnumerator(base.Controller, axisIndexes, "axisIndexes");
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append("BRAKE ");
if (axisSelectionEnumerator.Count <= 0)
{
throw new ArgumentOutOfRangeException(axisSelectionEnumerator.ArgumentName, Resources.AtLeastOneAxisMustBeSelected);
}
for (int i = 0; i < axisSelectionEnumerator.Count; i++)
{
stringBuilder.Append(base.Controller.Information.Axes[axisSelectionEnumerator[i]].Name);
stringBuilder.Append(" ");
}
stringBuilder.Append(" ");
stringBuilder.Append(ToString(EnumToBase(OnOff)));
base.Controller.Commands.ExecuteInternal(base.TaskNumber, stringBuilder.ToString());
}
public void Brake(int axisIndex, OnOff OnOff)
{
AxisSelectionEnumerator axisSelectionEnumerator = new AxisSelectionEnumerator(base.Controller, new int[1] { axisIndex }, "axisIndex");
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append("BRAKE ");
if (axisSelectionEnumerator.Count != 1)
{
throw new ArgumentOutOfRangeException("AxisMask", Resources.ExactlyOneAxisMustBeSelected);
}
stringBuilder.Append(base.Controller.Information.Axes[axisSelectionEnumerator[0]].Name);
stringBuilder.Append(" ");
stringBuilder.Append(ToString(EnumToBase(OnOff)));
base.Controller.Commands.ExecuteInternal(base.TaskNumber, stringBuilder.ToString());
}
public void Brake(string[] axisNames, OnOff OnOff)
{
AxisSelectionEnumerator axisSelectionEnumerator = new AxisSelectionEnumerator(base.Controller, axisNames, "axisNames");
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append("BRAKE ");
if (axisSelectionEnumerator.Count <= 0)
{
throw new ArgumentOutOfRangeException(axisSelectionEnumerator.ArgumentName, Resources.AtLeastOneAxisMustBeSelected);
}
for (int i = 0; i < axisSelectionEnumerator.Count; i++)
{
stringBuilder.Append(base.Controller.Information.Axes[axisSelectionEnumerator[i]].Name);
stringBuilder.Append(" ");
}
stringBuilder.Append(" ");
stringBuilder.Append(ToString(EnumToBase(OnOff)));
base.Controller.Commands.ExecuteInternal(base.TaskNumber, stringBuilder.ToString());
}
public void Brake(string axisName, OnOff OnOff)
{
AxisSelectionEnumerator axisSelectionEnumerator = new AxisSelectionEnumerator(base.Controller, new string[1] { axisName }, "axisName");
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append("BRAKE ");
if (axisSelectionEnumerator.Count != 1)
{
throw new ArgumentOutOfRangeException("AxisMask", Resources.ExactlyOneAxisMustBeSelected);
}
stringBuilder.Append(base.Controller.Information.Axes[axisSelectionEnumerator[0]].Name);
stringBuilder.Append(" ");
stringBuilder.Append(ToString(EnumToBase(OnOff)));
base.Controller.Commands.ExecuteInternal(base.TaskNumber, stringBuilder.ToString());
}
public void Brake(AxisMask axisMask, OnOff OnOff)
{
AxisSelectionEnumerator axisSelectionEnumerator = new AxisSelectionEnumerator(base.Controller, axisMask, "axisMask");
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append("BRAKE ");
if (axisSelectionEnumerator.Count <= 0)
{
throw new ArgumentOutOfRangeException(axisSelectionEnumerator.ArgumentName, Resources.AtLeastOneAxisMustBeSelected);
}
for (int i = 0; i < axisSelectionEnumerator.Count; i++)
{
stringBuilder.Append(base.Controller.Information.Axes[axisSelectionEnumerator[i]].Name);
stringBuilder.Append(" ");
}
stringBuilder.Append(" ");
stringBuilder.Append(ToString(EnumToBase(OnOff)));
base.Controller.Commands.ExecuteInternal(base.TaskNumber, stringBuilder.ToString());
}
}
}