using System;
using System.Runtime.InteropServices;
using RSI.RapidCode.dotNET;
using RSI.RapidCode.dotNET.Enums;
{
class UserLimitCommandPositionDirectSet
{
const int AXIS_INDEX = 0;
const int USER_LIMIT_FIRST = 0;
const int USER_LIMIT_SECOND = 1;
const int USER_LIMIT_COUNT = 2;
const double VELOCITY = 10000.0;
const double ACCEL = 100000.0;
const double DECEL = 1000000000000000000000.0;
const double JERK_PCT = 0.0;
const int DURATION = 0;
const bool ONE_SHOT = true;
const int COMMAND_POSITION_INDEX = 0;
const int ACTUAL_POSITION_INDEX = 1;
const int TC_COMMAND_POSITION_INDEX = 2;
const int TC_ACTUAL_POSITION_INDEX = 3;
static void ConfigureUserLimitInterrupts(int userLimitIndex)
{
}
static void WaitForInterrupts()
{
bool done = false;
int timeout_millseconds = 10000;
while(!done)
{
switch(eventType)
{
Console.WriteLine(
"CmdPos: " + BitConverter.ToDouble(BitConverter.GetBytes(controller.
InterruptUserDataGet(COMMAND_POSITION_INDEX)), 0));
Console.WriteLine(
"ActPos: " + BitConverter.ToDouble(BitConverter.GetBytes(controller.
InterruptUserDataGet(ACTUAL_POSITION_INDEX)), 0));
Console.WriteLine(
"TC.CmdPos: " + BitConverter.ToDouble(BitConverter.GetBytes(controller.
InterruptUserDataGet(TC_COMMAND_POSITION_INDEX)), 0));
Console.WriteLine(
"TC.ActPos: " + BitConverter.ToDouble(BitConverter.GetBytes(controller.
InterruptUserDataGet(TC_ACTUAL_POSITION_INDEX)), 0));
break;
done = true;
break;
default:
break;
}
}
}
static void Main(string[] args)
{
axis = controller.
AxisGet(AXIS_INDEX);
try
{
ConfigureUserLimitInterrupts(USER_LIMIT_FIRST);
ConfigureUserLimitInterrupts(USER_LIMIT_SECOND);
WaitForInterrupts();
}
catch(Exception e)
{
Console.WriteLine(e.Message);
}
}
}
}