AxisSwitchID.cs
Get an
Axis object from an expected switch id (instead of topology)
using System;
using System.Collections.Generic;
using System.Text;
using NUnit.Framework;
using RSI.RapidCode.SynqNet.dotNET;
using RSI.RapidCode.SynqNet.dotNET.Enums;
namespace SampleApplications
{
[TestFixture]
public class AxisSwitchID
{
const int LINEAR_AXIS_SWITCH_ID = 0xCC;
const int ROTARY_AXIS_SWITCH_ID = 0x44;
MotionController controller;
Axis linear;
Axis rotary;
List<Axis> axes;
public Axis AxisGetFromSwitchID(int switchID)
{
Axis axisMatch = null;
foreach (Axis axis in axes)
{
if (axis.SqNode.Exists())
{
if (axis.SqNode.SwitchIDGet() == switchID)
{
axisMatch = axis;
}
}
}
return axisMatch;
}
[Test]
public void Main()
{
try
{
controller = MotionController.Create();
axes = new List<Axis>();
for(int i = 0; i < controller.AxisCountGet(); i++)
{
axes.Add(controller.AxisGet(i));
}
linear = AxisGetFromSwitchID(LINEAR_AXIS_SWITCH_ID);
rotary = AxisGetFromSwitchID(ROTARY_AXIS_SWITCH_ID);
Assert.IsNotNull(linear, "Oops, there is no drive with the expected Switch ID!");
Assert.IsNotNull(rotary, "Oops, there is no drive with the expected Switch ID!");
}
catch(RsiError e)
{
Console.WriteLine(e.Message);
}
}
}
}