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.

895 lines
51 KiB
C

2 years ago
#pragma once
#define GT_API extern "C" short __stdcall
#define DLL_VERSION_0 2
#define DLL_VERSION_1 1
#define DLL_VERSION_2 0
#define DLL_VERSION_3 1
#define DLL_VERSION_4 5
#define DLL_VERSION_5 0
#define DLL_VERSION_6 6
#define DLL_VERSION_7 0
#define DLL_VERSION_8 7
#define MC_NONE -1
#define MC_LIMIT_POSITIVE 0
#define MC_LIMIT_NEGATIVE 1
#define MC_ALARM 2
#define MC_HOME 3
#define MC_GPI 4
#define MC_ARRIVE 5
#define MC_MPG 6
#define MC_ENABLE 10
#define MC_CLEAR 11
#define MC_GPO 12
#define MC_DAC 20
#define MC_STEP 21
#define MC_PULSE 22
#define MC_ENCODER 23
#define MC_ADC 24
#define MC_AXIS 30
#define MC_PROFILE 31
#define MC_CONTROL 32
#define CAPTURE_HOME 1
#define CAPTURE_INDEX 2
#define CAPTURE_PROBE 3
#define CAPTURE_HSIO0 6
#define CAPTURE_HSIO1 7
#define CAPTURE_HOME_GPI 8
#define PT_MODE_STATIC 0
#define PT_MODE_DYNAMIC 1
#define PT_SEGMENT_NORMAL 0
#define PT_SEGMENT_EVEN 1
#define PT_SEGMENT_STOP 2
#define GEAR_MASTER_ENCODER 1
#define GEAR_MASTER_PROFILE 2
#define GEAR_MASTER_AXIS 3
#define FOLLOW_MASTER_ENCODER 1
#define FOLLOW_MASTER_PROFILE 2
#define FOLLOW_MASTER_AXIS 3
#define FOLLOW_EVENT_START 1
#define FOLLOW_EVENT_PASS 2
#define GEAR_EVENT_START 1
#define GEAR_EVENT_PASS 2
#define GEAR_EVENT_AREA 5
#define FOLLOW_SEGMENT_NORMAL 0
#define FOLLOW_SEGMENT_EVEN 1
#define FOLLOW_SEGMENT_STOP 2
#define FOLLOW_SEGMENT_CONTINUE 3
#define INTERPOLATION_AXIS_MAX 4
#define CRD_FIFO_MAX 4096
#define FIFO_MAX 2
#define CRD_MAX 2
#define CRD_OPERATION_DATA_EXT_MAX 2
#define CRD_OPERATION_TYPE_NONE 0
#define CRD_OPERATION_TYPE_BUF_IO_DELAY 1
#define CRD_OPERATION_TYPE_LASER_ON 2
#define CRD_OPERATION_TYPE_LASER_OFF 3
#define CRD_OPERATION_TYPE_BUF_DA 4
#define CRD_OPERATION_TYPE_LASER_CMD 5
#define CRD_OPERATION_TYPE_LASER_FOLLOW_RATIO 6
#define CRD_OPERATION_TYPE_LMTS_ON 7
#define CRD_OPERATION_TYPE_LMTS_OFF 8
#define CRD_OPERATION_TYPE_SET_STOP_IO 9
#define CRD_OPERATION_TYPE_BUF_MOVE 10
#define CRD_OPERATION_TYPE_BUF_GEAR 11
#define CRD_OPERATION_TYPE_SET_SEG_NUM 12
#define CRD_OPERATION_TYPE_STOP_MOTION 13
#define CRD_OPERATION_TYPE_SET_VAR_VALUE 14
#define CRD_OPERATION_TYPE_JUMP_NEXT_SEG 15
#define CRD_OPERATION_TYPE_SYNCH_PRF_POS 16
#define CRD_OPERATION_TYPE_VIRTUAL_TO_ACTUAL 17
#define CRD_OPERATION_TYPE_SET_USER_VAR 18
#define CRD_OPERATION_TYPE_SET_DO_BIT_PULSE 19
#define CRD_OPERATION_TYPE_BUF_COMPAREPULSE 20
#define CRD_OPERATION_TYPE_LASER_ON_EX 21
#define CRD_OPERATION_TYPE_LASER_OFF_EX 22
#define CRD_OPERATION_TYPE_LASER_CMD_EX 23
#define CRD_OPERATION_TYPE_LASER_FOLLOW_RATIO_EX 24
#define CRD_OPERATION_TYPE_LASER_FOLLOW_MODE 25
#define CRD_OPERATION_TYPE_LASER_FOLLOW_OFF 26
#define CRD_OPERATION_TYPE_LASER_FOLLOW_OFF_EX 27
#define CRD_OPERATION_TYPE_LASER_FOLLOW_SPLINE 28
#define CRD_OPERATION_TYPE_MOTION_DATA 29
#define INTERPOLATION_MOTION_TYPE_LINE 0
#define INTERPOLATION_MOTION_TYPE_CIRCLE 1
#define INTERPOLATION_MOTION_TYPE_HELIX 2
#define INTERPOLATION_MOTION_TYPE_CIRCLE_3D 3
#define INTERPOLATION_CIRCLE_PLAT_XY 0
#define INTERPOLATION_CIRCLE_PLAT_YZ 1
#define INTERPOLATION_CIRCLE_PLAT_ZX 2
#define INTERPOLATION_HELIX_CIRCLE_XY_LINE_Z 0
#define INTERPOLATION_HELIX_CIRCLE_YZ_LINE_X 1
#define INTERPOLATION_HELIX_CIRCLE_ZX_LINE_Y 2
#define INTERPOLATION_CIRCLE_DIR_CW 0
#define INTERPOLATION_CIRCLE_DIR_CCW 1
#define COMPARE_PORT_HSIO (0) //??zW??HSIO?
#define COMPARE_PORT_GPO (1) //??zW??GPO?
#define COMPARE2D_MODE_2D 1
#define COMPARE2D_MODE_1D 0
#define INTERFACEBOARD20 2
#define INTERFACEBOARD30 3
#define AXIS_LASER 7
#define AXIS_LASER_EX 8
#define LASER_CTRL_MODE_PWM1 (0) // ??:PWM1
#define LASER_CTRL_FREQUENCY (1) // ??:?
#define LASER_CTRL_VOLTAGE (2) // ??:?
#define LASER_CTRL_MODE_PWM2 (3) // ??:PWM2
typedef struct TrapPrm
{
double acc;
double dec;
double velStart;
short smoothTime;
} TTrapPrm;
typedef struct JogPrm
{
double acc;
double dec;
double smooth;
} TJogPrm;
typedef struct Pid
{
double kp;
double ki;
double kd;
double kvff;
double kaff;
long integralLimit;
long derivativeLimit;
short limit;
} TPid;
typedef struct ThreadSts
{
short run;
short error;
double result;
short line;
} TThreadSts;
typedef struct VarInfo
{
short id;
short dataType;
char name[32];
} TVarInfo;
typedef struct CompileInfo
{
char *pFileName;
short *pLineNo;
char *pMessage;
} TCompileInfo;
typedef struct CrdPrm
{
short dimension; // <20><><EFBFBD><EFBFBD>ϵά<CFB5><CEAC>
short profile[8]; // <20><><EFBFBD><EFBFBD>profile<6C><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
double synVelMax; // <20><><EFBFBD><EFBFBD><EFBFBD>ϳ<EFBFBD><CFB3>ٶ<EFBFBD>
double synAccMax; // <20><><EFBFBD><EFBFBD><EFBFBD>ϳɼ<CFB3><C9BC>ٶ<EFBFBD>
short evenTime; // <20><>С<EFBFBD><D0A1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
short setOriginFlag; // <20><><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>־,0:Ĭ<>ϵ<EFBFBD>ǰ<EFBFBD>滮λ<E6BBAE><CEBB>Ϊԭ<CEAA><D4AD>λ<EFBFBD><CEBB>;1:<3A>û<EFBFBD>ָ<EFBFBD><D6B8>ԭ<EFBFBD><D4AD>λ<EFBFBD><CEBB>
long originPos[8]; // <20>û<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD>λ<EFBFBD><CEBB>
}TCrdPrm;
typedef struct CrdBufOperation
{
short flag; // <20><>־<EFBFBD>ò岹<C3B2><E5B2B9><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>IO<49><4F><EFBFBD><EFBFBD>ʱ
unsigned short delay; // <20><>ʱʱ<CAB1><CAB1>
short doType; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,0:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IO
unsigned short doMask; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
unsigned short doValue; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
unsigned short dataExt[CRD_OPERATION_DATA_EXT_MAX]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><D5B9><EFBFBD><EFBFBD>
}TCrdBufOperation;
typedef struct CrdData
{
short motionType; // <20>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD>,0:ֱ<>߲岹,1:Բ<><D4B2><EFBFBD>
short circlePlat; // Բ<><D4B2><EFBFBD><EFBFBD><E5B2B9>ƽ<EFBFBD><C6BD>
long pos[INTERPOLATION_AXIS_MAX]; // <20><>ǰ<EFBFBD>θ<EFBFBD><CEB8><EFBFBD><EFBFBD>յ<EFBFBD>λ<EFBFBD><CEBB>
double radius; // Բ<><D4B2><EFBFBD><EFBFBD>İ뾶
short circleDir; // Բ<><D4B2><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>,0:˳ʱ<CBB3><CAB1>;1:<3A><>ʱ<EFBFBD><CAB1>
double center[3]; // Բ<><D4B2><EFBFBD><EFBFBD><E5B2B9>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
double vel; // <20><>ǰ<EFBFBD>κϳ<CEBA>Ŀ<EFBFBD><C4BF><EFBFBD>ٶ<EFBFBD>
double acc; // <20><>ǰ<EFBFBD>κϳɼ<CFB3><C9BC>ٶ<EFBFBD>
short velEndZero; // <20><>־<EFBFBD><D6BE>ǰ<EFBFBD>ε<EFBFBD><CEB5>յ<EFBFBD><D5B5>ٶ<EFBFBD><D9B6>Ƿ<EFBFBD>ǿ<EFBFBD><C7BF>Ϊ0,0:<3A><>ǿ<EFBFBD><C7BF>Ϊ0;1:ǿ<><C7BF>Ϊ0
TCrdBufOperation operation; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>IO<49><EFBFBD><E1B9B9>
double cos[INTERPOLATION_AXIS_MAX]; // <20><>ǰ<EFBFBD>θ<EFBFBD><CEB8><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
double velEnd; // <20><>ǰ<EFBFBD>κϳ<CEBA><CFB3>յ<EFBFBD><D5B5>ٶ<EFBFBD>
double velEndAdjust; // <20><><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5>ٶ<EFBFBD>ʱ<EFBFBD>õ<EFBFBD><C3B5>ı<EFBFBD><C4B1><EFBFBD>հģ<D5B0><C4A3>)
double r; // <20><>ǰ<EFBFBD>κϳ<CEBA>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
}TCrdData;
typedef struct Trigger
{
short encoder;
short probeType;
short probeIndex;
short offset;
short windowOnly;
long firstPosition;
long lastPosition;
}TTrigger;
typedef struct TriggerStatus
{
short execute;
short done;
long position;
}TTriggerStatus;
typedef struct
{
long px;
long py;
} T2DCompareData;
typedef struct
{
short encx;
short ency;
short source;
short outputType;
short startLevel;
short time;
short maxerr;
short threshold;
} T2DComparePrm;
GT_API GT_GetDllVersion(char **pDllVersion);
GT_API GT_SetCardNo(short index);
GT_API GT_GetCardNo(short *pIndex);
GT_API GT_GetVersion(short cardNum,char **pVersion);
GT_API GT_GetInterfaceBoardSts(short cardNum,short *pStatus);
GT_API GT_SetInterfaceBoardSts(short cardNum,short type);
GT_API GT_Open(short cardNum,short channel=0,short param=1);
GT_API GT_Close(short cardNum);
GT_API GT_LoadConfig(short cardNum,char *pFile);
GT_API GT_AlarmOff(short cardNum,short axis);
GT_API GT_AlarmOn(short cardNum,short axis);
GT_API GT_LmtsOn(short cardNum,short axis,short limitType=-1);
GT_API GT_LmtsOff(short cardNum,short axis,short limitType=-1);
GT_API GT_ProfileScale(short cardNum,short axis,short alpha,short beta);
GT_API GT_EncScale(short cardNum,short axis,short alpha,short beta);
GT_API GT_StepDir(short cardNum,short step);
GT_API GT_StepPulse(short cardNum,short step);
GT_API GT_SetMtrBias(short cardNum,short dac,short bias);
GT_API GT_GetMtrBias(short cardNum,short dac,short *pBias);
GT_API GT_SetMtrLmt(short cardNum,short dac,short limit);
GT_API GT_GetMtrLmt(short cardNum,short dac,short *pLimit);
GT_API GT_EncSns(short cardNum,unsigned short sense);
GT_API GT_EncOn(short cardNum,short encoder);
GT_API GT_EncOff(short cardNum,short encoder);
GT_API GT_SetPosErr(short cardNum,short control,long error);
GT_API GT_GetPosErr(short cardNum,short control,long *pError);
GT_API GT_SetStopDec(short cardNum,short profile,double decSmoothStop,double decAbruptStop);
GT_API GT_GetStopDec(short cardNum,short profile,double *pDecSmoothStop,double *pDecAbruptStop);
GT_API GT_LmtSns(short cardNum,unsigned short sense);
GT_API GT_CtrlMode(short cardNum,short axis,short mode);
GT_API GT_SetStopIo(short cardNum,short axis,short stopType,short inputType,short inputIndex);
GT_API GT_GpiSns(short cardNum,unsigned short sense);
GT_API GT_SetAdcFilter(short cardNum,short adc,short filterTime);
GT_API GT_SetAxisPrfVelFilter(short cardNum,short axis,short filterNumExp);
GT_API GT_GetAxisPrfVelFilter(short cardNum,short axis,short *pFilterNumExp);
GT_API GT_SetAxisEncVelFilter(short cardNum,short axis,short filterNumExp);
GT_API GT_GetAxisEncVelFilter(short cardNum,short axis,short *pFilterNumExp);
GT_API GT_SetAxisInputShaping(short cardNum,short axis,short enable,short count,double k);
GT_API GT_SetDo(short cardNum,short doType,long value);
GT_API GT_SetDoBit(short cardNum,short doType,short doIndex,short value);
GT_API GT_GetDo(short cardNum,short doType,long *pValue);
GT_API GT_SetDoBitReverse(short cardNum,short doType,short doIndex,short value,short reverseTime);
GT_API GT_SetDoMask(short cardNum,short doType,unsigned short doMask,long value);
GT_API GT_EnableDoBitPulse(short cardNum,short doType,short doIndex,unsigned short highLevelTime,unsigned short lowLevelTime,long pulseNum,short firstLevel);
GT_API GT_DisableDoBitPulse(short cardNum,short doType,short doIndex);
GT_API GT_GetDi(short cardNum,short diType,long *pValue);
GT_API GT_GetDiReverseCount(short cardNum,short diType,short diIndex,unsigned long *pReverseCount,short count=1);
GT_API GT_SetDiReverseCount(short cardNum,short diType,short diIndex,unsigned long *pReverseCount,short count=1);
GT_API GT_GetDiRaw(short cardNum,short diType,long *pValue);
GT_API GT_SetDac(short cardNum,short dac,short *pValue,short count=1);
GT_API GT_GetDac(short cardNum,short dac,short *pValue,short count=1,unsigned long *pClock=NULL);
GT_API GT_GetAdc(short cardNum,short adc,double *pValue,short count=1,unsigned long *pClock=NULL);
GT_API GT_GetAdcValue(short cardNum,short adc,short *pValue,short count=1,unsigned long *pClock=NULL);
GT_API GT_SetEncPos(short cardNum,short encoder,long encPos);
GT_API GT_GetEncPos(short cardNum,short encoder,double *pValue,short count=1,unsigned long *pClock=NULL);
GT_API GT_GetEncPosPre(short cardNum,short encoder,double *pValue,short count=1,unsigned long *pClock=NULL);
GT_API GT_GetEncVel(short cardNum,short encoder,double *pValue,short count=1,unsigned long *pClock=NULL);
GT_API GT_SetCaptureMode(short cardNum,short encoder,short mode);
GT_API GT_GetCaptureMode(short cardNum,short encoder,short *pMode,short count=1);
GT_API GT_GetCaptureStatus(short cardNum,short encoder,short *pStatus,long *pValue,short count=1,unsigned long *pClock=NULL);
GT_API GT_SetCaptureSense(short cardNum,short encoder,short mode,short sense);
GT_API GT_ClearCaptureStatus(short cardNum,short encoder);
GT_API GT_SetCaptureRepeat(short cardNum,short encoder,short count);
GT_API GT_GetCaptureRepeatStatus(short cardNum,short encoder,short *pCount);
GT_API GT_GetCaptureRepeatPos(short cardNum,short encoder,long *pValue,short startNum,short count);
GT_API GT_SetCaptureEncoder(short cardNum,short trigger,short encoder);
GT_API GT_GetCaptureWidth(short cardNum,short trigger,short *pWidth,short count=1);
GT_API GT_GetCaptureHomeGpi(short cardNum,short trigger,short pHomeSts,short *pHomePos,short pGpiSts,short *pGpiPos,short count=1);
GT_API GT_Reset(short cardNum);
GT_API GT_GetClock(short cardNum,unsigned long *pClock,unsigned long *pLoop=NULL);
GT_API GT_GetClockHighPrecision(short cardNum,unsigned long *pClock);
GT_API GT_GetSts(short cardNum,short axis,long *pSts,short count=1,unsigned long *pClock=NULL);
GT_API GT_ClrSts(short cardNum,short axis,short count=1);
GT_API GT_AxisOn(short cardNum,short axis);
GT_API GT_AxisOff(short cardNum,short axis);
GT_API GT_Stop(short cardNum,long mask,long option);
GT_API GT_SetPrfPos(short cardNum,short profile,long prfPos);
GT_API GT_SynchAxisPos(short cardNum,long mask);
GT_API GT_ZeroPos(short cardNum,short axis,short count=1);
GT_API GT_SetSoftLimit(short cardNum,short axis,long positive,long negative);
GT_API GT_GetSoftLimit(short cardNum,short axis,long *pPositive,long *pNegative);
GT_API GT_SetAxisBand(short cardNum,short axis,long band,long time);
GT_API GT_GetAxisBand(short cardNum,short axis,long *pBand,long *pTime);
GT_API GT_SetBacklash(short cardNum,short axis,long compValue,double compChangeValue,long compDir);
GT_API GT_GetBacklash(short cardNum,short axis,long *pCompValue,double *pCompChangeValue,long *pCompDir);
GT_API GT_SetLeadScrewComp(short cardNum,short axis,short n,long startPos,long lenPos,long *pCompPos,long *pCompNeg);
GT_API GT_EnableLeadScrewComp(short cardNum,short axis,short mode);
GT_API GT_GetCompensate(short cardNum,short axis,double *pPitchError,double *pCrossError,double *pBacklashError,double *pEncPos,double *pPrfPos);
GT_API GT_EnableGantry(short cardNum,short gantryMaster,short gantrySlave,double masterKp,double slaveKp);
GT_API GT_DisableGantry(short cardNum);
GT_API GT_SetGantryErrLmt(short cardNum,long gantryErrLmt);
GT_API GT_GetGantryErrLmt(short cardNum,long *pGantryErrLmt);
GT_API GT_GetPrfPos(short cardNum,short profile,double *pValue,short count=1,unsigned long *pClock=NULL);
GT_API GT_GetPrfVel(short cardNum,short profile,double *pValue,short count=1,unsigned long *pClock=NULL);
GT_API GT_GetPrfAcc(short cardNum,short profile,double *pValue,short count=1,unsigned long *pClock=NULL);
GT_API GT_GetPrfMode(short cardNum,short profile,long *pValue,short count=1,unsigned long *pClock=NULL);
GT_API GT_GetAxisPrfPos(short cardNum,short axis,double *pValue,short count=1,unsigned long *pClock=NULL);
GT_API GT_GetAxisPrfVel(short cardNum,short axis,double *pValue,short count=1,unsigned long *pClock=NULL);
GT_API GT_GetAxisPrfAcc(short cardNum,short axis,double *pValue,short count=1,unsigned long *pClock=NULL);
GT_API GT_GetAxisEncPos(short cardNum,short axis,double *pValue,short count=1,unsigned long *pClock=NULL);
GT_API GT_GetAxisEncVel(short cardNum,short axis,double *pValue,short count=1,unsigned long *pClock=NULL);
GT_API GT_GetAxisEncAcc(short cardNum,short axis,double *pValue,short count=1,unsigned long *pClock=NULL);
GT_API GT_GetAxisError(short cardNum,short axis,double *pValue,short count=1,unsigned long *pClock=NULL);
GT_API GT_SetLongVar(short cardNum,short index,long value);
GT_API GT_GetLongVar(short cardNum,short index,long *pValue);
GT_API GT_SetDoubleVar(short cardNum,short index,double pValue);
GT_API GT_GetDoubleVar(short cardNum,short index,double *pValue);
GT_API GT_SetControlFilter(short cardNum,short control,short index);
GT_API GT_GetControlFilter(short cardNum,short control,short *pIndex);
GT_API GT_SetPid(short cardNum,short control,short index,TPid *pPid);
GT_API GT_GetPid(short cardNum,short control,short index,TPid *pPid);
GT_API GT_SetKvffFilter(short cardNum,short control,short index,short kvffFilterExp,double accMax);
GT_API GT_GetKvffFilter(short cardNum,short control,short index,short *pKvffFilterExp,double *pAccMax);
GT_API GT_Update(short cardNum,long mask);
GT_API GT_SetPos(short cardNum,short profile,long pos);
GT_API GT_GetPos(short cardNum,short profile,long *pPos);
GT_API GT_SetVel(short cardNum,short profile,double vel);
GT_API GT_GetVel(short cardNum,short profile,double *pVel);
GT_API GT_PrfTrap(short cardNum,short profile);
GT_API GT_SetTrapPrm(short cardNum,short profile,TTrapPrm *pPrm);
GT_API GT_GetTrapPrm(short cardNum,short profile,TTrapPrm *pPrm);
GT_API GT_PrfJog(short cardNum,short profile);
GT_API GT_SetJogPrm(short cardNum,short profile,TJogPrm *pPrm);
GT_API GT_GetJogPrm(short cardNum,short profile,TJogPrm *pPrm);
GT_API GT_PrfPt(short cardNum,short profile,short mode=PT_MODE_STATIC);
GT_API GT_SetPtLoop(short cardNum,short profile,long loop);
GT_API GT_GetPtLoop(short cardNum,short profile,long *pLoop);
GT_API GT_PtSpace(short cardNum,short profile,short *pSpace,short fifo=0);
GT_API GT_PtData(short cardNum,short profile,double pos,long time,short type=PT_SEGMENT_NORMAL,short fifo=0);
GT_API GT_PtDataWN(short cardNum,short profile,double pos,long time,short type=PT_SEGMENT_NORMAL,long segNum=0,short fifo=0);
GT_API GT_PtClear(short cardNum,short profile,short fifo=0);
GT_API GT_PtStart(short cardNum,long mask,long option=0);
GT_API GT_SetPtMemory(short cardNum,short profile,short memory);
GT_API GT_GetPtMemory(short cardNum,short profile,short *pMemory);
GT_API GT_PtGetSegNum(short cardNum,short profile,long *pSegNum);
GT_API GT_PrfGear(short cardNum,short profile,short dir=0);
GT_API GT_SetGearMaster(short cardNum,short profile,short masterIndex,short masterType=GEAR_MASTER_PROFILE,short masterItem=0);
GT_API GT_GetGearMaster(short cardNum,short profile,short *pMasterIndex,short *pMasterType=NULL,short *pMasterItem=NULL);
GT_API GT_SetGearRatio(short cardNum,short profile,long masterEven,long slaveEven,long masterSlope=0);
GT_API GT_GetGearRatio(short cardNum,short profile,long *pMasterEven,long *pSlaveEven,long *pMasterSlope=NULL);
GT_API GT_GearStart(short cardNum,long mask);
GT_API GT_SetGearEvent(short cardNum,short profile,short event,long startPara0,long startPara1);
GT_API GT_GetGearEvent(short cardNum,short profile,short *pEvent,long *pStartPara0,long *pStartPara1);
GT_API GT_PrfFollow(short cardNum,short profile,short dir=0);
GT_API GT_SetFollowMaster(short cardNum,short profile,short masterIndex,short masterType=FOLLOW_MASTER_PROFILE,short masterItem=0);
GT_API GT_GetFollowMaster(short cardNum,short profile,short *pMasterIndex,short *pMasterType=NULL,short *pMasterItem=NULL);
GT_API GT_SetFollowLoop(short cardNum,short profile,long loop);
GT_API GT_GetFollowLoop(short cardNum,short profile,long *pLoop);
GT_API GT_SetFollowEvent(short cardNum,short profile,short event,short masterDir,long pos=0);
GT_API GT_GetFollowEvent(short cardNum,short profile,short *pEvent,short *pMasterDir,long *pPos=NULL);
GT_API GT_FollowSpace(short cardNum,short profile,short *pSpace,short fifo=0);
GT_API GT_FollowData(short cardNum,short profile,long masterSegment,double slaveSegment,short type=FOLLOW_SEGMENT_NORMAL,short fifo=0);
GT_API GT_FollowClear(short cardNum,short profile,short fifo=0);
GT_API GT_FollowStart(short cardNum,long mask,long option=0);
GT_API GT_FollowSwitch(short cardNum,long mask);
GT_API GT_SetFollowMemory(short cardNum,short profile,short memory);
GT_API GT_GetFollowMemory(short cardNum,short profile,short *pMemory);
GT_API GT_GetFollowStatus(short cardNum,short profile,short *pFifoNum,short *pSwitchStatus);
GT_API GT_SetFollowPhasing(short cardNum,short profile,short profilePhasing);
GT_API GT_GetFollowPhasing(short cardNum,short profile,short *pProfilePhasing);
GT_API GT_Compile(short cardNum,char *pFileName,TCompileInfo *pWrongInfo);
GT_API GT_Download(short cardNum,char *pFileName);
GT_API GT_GetFunId(short cardNum,char *pFunName,short *pFunId);
GT_API GT_Bind(short cardNum,short thread,short funId,short page);
GT_API GT_RunThread(short cardNum,short thread);
GT_API GT_StopThread(short cardNum,short thread);
GT_API GT_PauseThread(short cardNum,short thread);
GT_API GT_GetThreadSts(short cardNum,short thread,TThreadSts *pThreadSts);
GT_API GT_GetVarId(short cardNum,char *pFunName,char *pVarName,TVarInfo *pVarInfo);
GT_API GT_SetVarValue(short cardNum,short page,TVarInfo *pVarInfo,double *pValue,short count=1);
GT_API GT_GetVarValue(short cardNum,short page,TVarInfo *pVarInfo,double *pValue,short count=1);
GT_API GT_SetCrdPrm(short cardNum,short crd,TCrdPrm *pCrdPrm);
GT_API GT_GetCrdPrm(short cardNum,short crd,TCrdPrm *pCrdPrm);
GT_API GT_CrdSpace(short cardNum,short crd,long *pSpace,short fifo=0);
GT_API GT_CrdData(short cardNum,short crd,TCrdData *pCrdData,short fifo=0);
GT_API GT_CrdDataCircle(short cardNum,short crd,TCrdData *pCrdData,short fifo=0);
GT_API GT_LnXY(short cardNum,short crd,long x,long y,double synVel,double synAcc,double velEnd=0,short fifo=0);
GT_API GT_LnXYZ(short cardNum,short crd,long x,long y,long z,double synVel,double synAcc,double velEnd=0,short fifo=0);
GT_API GT_LnXYZA(short cardNum,short crd,long x,long y,long z,long a,double synVel,double synAcc,double velEnd=0,short fifo=0);
GT_API GT_LnXYG0(short cardNum,short crd,long x,long y,double synVel,double synAcc,short fifo=0);
GT_API GT_LnXYZG0(short cardNum,short crd,long x,long y,long z,double synVel,double synAcc,short fifo=0);
GT_API GT_LnXYZAG0(short cardNum,short crd,long x,long y,long z,long a,double synVel,double synAcc,short fifo=0);
GT_API GT_ArcXYR(short cardNum,short crd,long x,long y,double radius,short circleDir,double synVel,double synAcc,double velEnd=0,short fifo=0);
GT_API GT_ArcXYC(short cardNum,short crd,long x,long y,double xCenter,double yCenter,short circleDir,double synVel,double synAcc,double velEnd=0,short fifo=0);
GT_API GT_ArcYZR(short cardNum,short crd,long y,long z,double radius,short circleDir,double synVel,double synAcc,double velEnd=0,short fifo=0);
GT_API GT_ArcYZC(short cardNum,short crd,long y,long z,double yCenter,double zCenter,short circleDir,double synVel,double synAcc,double velEnd=0,short fifo=0);
GT_API GT_ArcZXR(short cardNum,short crd,long z,long x,double radius,short circleDir,double synVel,double synAcc,double velEnd=0,short fifo=0);
GT_API GT_ArcZXC(short cardNum,short crd,long z,long x,double zCenter,double xCenter,short circleDir,double synVel,double synAcc,double velEnd=0,short fifo=0);
GT_API GT_ArcXYZ(short cardNum,short crd,long x,long y,long z,double interX,double interY,double interZ,double synVel,double synAcc,double velEnd=0,short fifo=0);
GT_API GT_LnXYOverride2(short cardNum,short crd,long x,long y,double synVel,double synAcc,double velEnd=0,short fifo=0);
GT_API GT_LnXYZOverride2(short cardNum,short crd,long x,long y,long z,double synVel,double synAcc,double velEnd=0,short fifo=0);
GT_API GT_LnXYZAOverride2(short cardNum,short crd,long x,long y,long z,long a,double synVel,double synAcc,double velEnd=0,short fifo=0);
GT_API GT_LnXYG0Override2(short cardNum,short crd,long x,long y,double synVel,double synAcc,short fifo=0);
GT_API GT_LnXYZG0Override2(short cardNum,short crd,long x,long y,long z,double synVel,double synAcc,short fifo=0);
GT_API GT_LnXYZAG0Override2(short cardNum,short crd,long x,long y,long z,long a,double synVel,double synAcc,short fifo=0);
GT_API GT_ArcXYROverride2(short cardNum,short crd,long x,long y,double radius,short circleDir,double synVel,double synAcc,double velEnd=0,short fifo=0);
GT_API GT_ArcXYCOverride2(short cardNum,short crd,long x,long y,double xCenter,double yCenter,short circleDir,double synVel,double synAcc,double velEnd=0,short fifo=0);
GT_API GT_ArcYZROverride2(short cardNum,short crd,long y,long z,double radius,short circleDir,double synVel,double synAcc,double velEnd=0,short fifo=0);
GT_API GT_ArcYZCOverride2(short cardNum,short crd,long y,long z,double yCenter,double zCenter,short circleDir,double synVel,double synAcc,double velEnd=0,short fifo=0);
GT_API GT_ArcZXROverride2(short cardNum,short crd,long z,long x,double radius,short circleDir,double synVel,double synAcc,double velEnd=0,short fifo=0);
GT_API GT_ArcZXCOverride2(short cardNum,short crd,long z,long x,double zCenter,double xCenter,short circleDir,double synVel,double synAcc,double velEnd=0,short fifo=0);
GT_API GT_HelixXYRZ(short cardNum,short crd,long x,long y,long z,double radius,short circleDir,double synVel,double synAcc,double velEnd,short fifo=0);
GT_API GT_HelixXYCZ(short cardNum,short crd,long x,long y,long z,double xCenter,double yCenter,short circleDir,double synVel,double synAcc,double velEnd=0,short fifo=0);
GT_API GT_HelixYZRX(short cardNum,short crd,long x,long y,long z,double radius,short circleDir,double synVel,double synAcc,double velEnd=0,short fifo=0);
GT_API GT_HelixYZCX(short cardNum,short crd,long x,long y,long z,double yCenter,double zCenter,short circleDir,double synVel,double synAcc,double velEnd=0,short fifo=0);
GT_API GT_HelixZXRY(short cardNum,short crd,long x,long y,long z,double radius,short circleDir,double synVel,double synAcc,double velEnd=0,short fifo=0);
GT_API GT_HelixZXCY(short cardNum,short crd,long x,long y,long z,double zCenter,double xCenter,short circleDir,double synVel,double synAcc,double velEnd=0,short fifo=0);
GT_API GT_HelixXYRZOverride2(short cardNum,short crd,long x,long y,long z,double radius,short circleDir,double synVel,double synAcc,double velEnd=0,short fifo=0);
GT_API GT_HelixXYCZOverride2(short cardNum,short crd,long x,long y,long z,double xCenter,double yCenter,short circleDir,double synVel,double synAcc,double velEnd=0,short fifo=0);
GT_API GT_HelixYZRXOverride2(short cardNum,short crd,long x,long y,long z,double radius,short circleDir,double synVel,double synAcc,double velEnd=0,short fifo=0);
GT_API GT_HelixYZCXOverride2(short cardNum,short crd,long x,long y,long z,double yCenter,double zCenter,short circleDir,double synVel,double synAcc,double velEnd=0,short fifo=0);
GT_API GT_HelixZXRYOverride2(short cardNum,short crd,long x,long y,long z,double radius,short circleDir,double synVel,double synAcc,double velEnd=0,short fifo=0);
GT_API GT_HelixZXCYOverride2(short cardNum,short crd,long x,long y,long z,double zCenter,double xCenter,short circleDir,double synVel,double synAcc,double velEnd=0,short fifo=0);
GT_API GT_LnXYWN(short cardNum,short crd,long x,long y,double synVel,double synAcc,double velEnd=0,long segNum=0,short fifo=0);
GT_API GT_LnXYZWN(short cardNum,short crd,long x,long y,long z,double synVel,double synAcc,double velEnd=0,long segNum=0,short fifo=0);
GT_API GT_LnXYZAWN(short cardNum,short crd,long x,long y,long z,long a,double synVel,double synAcc,double velEnd=0,long segNum=0,short fifo=0);
GT_API GT_LnXYG0WN(short cardNum,short crd,long x,long y,double synVel,double synAcc,long segNum=0,short fifo=0);
GT_API GT_LnXYZG0WN(short cardNum,short crd,long x,long y,long z,double synVel,double synAcc,long segNum=0,short fifo=0);
GT_API GT_LnXYZAG0WN(short cardNum,short crd,long x,long y,long z,long a,double synVel,double synAcc,long segNum=0,short fifo=0);
GT_API GT_ArcXYRWN(short cardNum,short crd,long x,long y,double radius,short circleDir,double synVel,double synAcc,double velEnd=0,long segNum=0,short fifo=0);
GT_API GT_ArcXYCWN(short cardNum,short crd,long x,long y,double xCenter,double yCenter,short circleDir,double synVel,double synAcc,double velEnd=0,long segNum=0,short fifo=0);
GT_API GT_ArcYZRWN(short cardNum,short crd,long y,long z,double radius,short circleDir,double synVel,double synAcc,double velEnd=0,long segNum=0,short fifo=0);
GT_API GT_ArcYZCWN(short cardNum,short crd,long y,long z,double yCenter,double zCenter,short circleDir,double synVel,double synAcc,double velEnd=0,long segNum=0,short fifo=0);
GT_API GT_ArcZXRWN(short cardNum,short crd,long z,long x,double radius,short circleDir,double synVel,double synAcc,double velEnd=0,long segNum=0,short fifo=0);
GT_API GT_ArcZXCWN(short cardNum,short crd,long z,long x,double zCenter,double xCenter,short circleDir,double synVel,double synAcc,double velEnd=0,long segNum=0,short fifo=0);
GT_API GT_ArcXYZWN(short cardNum,short crd,long x,long y,long z,double interX,double interY,double interZ,double synVel,double synAcc,double velEnd=0,long segNum=0,short fifo=0);
GT_API GT_LnXYOverride2WN(short cardNum,short crd,long x,long y,double synVel,double synAcc,double velEnd=0,long segNum=0,short fifo=0);
GT_API GT_LnXYZOverride2WN(short cardNum,short crd,long x,long y,long z,double synVel,double synAcc,double velEnd=0,long segNum=0,short fifo=0);
GT_API GT_LnXYZAOverride2WN(short cardNum,short crd,long x,long y,long z,long a,double synVel,double synAcc,double velEnd=0,long segNum=0,short fifo=0);
GT_API GT_LnXYG0Override2WN(short cardNum,short crd,long x,long y,double synVel,double synAcc,long segNum=0,short fifo=0);
GT_API GT_LnXYZG0Override2WN(short cardNum,short crd,long x,long y,long z,double synVel,double synAcc,long segNum=0,short fifo=0);
GT_API GT_LnXYZAG0Override2WN(short cardNum,short crd,long x,long y,long z,long a,double synVel,double synAcc,long segNum=0,short fifo=0);
GT_API GT_ArcXYROverride2WN(short cardNum,short crd,long x,long y,double radius,short circleDir,double synVel,double synAcc,double velEnd=0,long segNum=0,short fifo=0);
GT_API GT_ArcXYCOverride2WN(short cardNum,short crd,long x,long y,double xCenter,double yCenter,short circleDir,double synVel,double synAcc,double velEnd=0,long segNum=0,short fifo=0);
GT_API GT_ArcYZROverride2WN(short cardNum,short crd,long y,long z,double radius,short circleDir,double synVel,double synAcc,double velEnd=0,long segNum=0,short fifo=0);
GT_API GT_ArcYZCOverride2WN(short cardNum,short crd,long y,long z,double yCenter,double zCenter,short circleDir,double synVel,double synAcc,double velEnd=0,long segNum=0,short fifo=0);
GT_API GT_ArcZXROverride2WN(short cardNum,short crd,long z,long x,double radius,short circleDir,double synVel,double synAcc,double velEnd=0,long segNum=0,short fifo=0);
GT_API GT_ArcZXCOverride2WN(short cardNum,short crd,long z,long x,double zCenter,double xCenter,short circleDir,double synVel,double synAcc,double velEnd=0,long segNum=0,short fifo=0);
GT_API GT_HelixXYRZWN(short cardNum,short crd,long x,long y,long z,double radius,short circleDir,double synVel,double synAcc,double velEnd=0,long segNum=0,short fifo=0);
GT_API GT_HelixXYCZWN(short cardNum,short crd,long x,long y,long z,double xCenter,double yCenter,short circleDir,double synVel,double synAcc,double velEnd=0,long segNum=0,short fifo=0);
GT_API GT_HelixYZRXWN(short cardNum,short crd,long x,long y,long z,double radius,short circleDir,double synVel,double synAcc,double velEnd=0,long segNum=0,short fifo=0);
GT_API GT_HelixYZCXWN(short cardNum,short crd,long x,long y,long z,double yCenter,double zCenter,short circleDir,double synVel,double synAcc,double velEnd=0,long segNum=0,short fifo=0);
GT_API GT_HelixZXRYWN(short cardNum,short crd,long x,long y,long z,double radius,short circleDir,double synVel,double synAcc,double velEnd=0,long segNum=0,short fifo=0);
GT_API GT_HelixZXCYWN(short cardNum,short crd,long x,long y,long z,double zCenter,double xCenter,short circleDir,double synVel,double synAcc,double velEnd=0,long segNum=0,short fifo=0);
GT_API GT_HelixXYRZOverride2WN(short cardNum,short crd,long x,long y,long z,double radius,short circleDir,double synVel,double synAcc,double velEnd=0,long segNum=0,short fifo=0);
GT_API GT_HelixXYCZOverride2WN(short cardNum,short crd,long x,long y,long z,double xCenter,double yCenter,short circleDir,double synVel,double synAcc,double velEnd=0,long segNum=0,short fifo=0);
GT_API GT_HelixYZRXOverride2WN(short cardNum,short crd,long x,long y,long z,double radius,short circleDir,double synVel,double synAcc,double velEnd=0,long segNum=0,short fifo=0);
GT_API GT_HelixYZCXOverride2WN(short cardNum,short crd,long x,long y,long z,double yCenter,double zCenter,short circleDir,double synVel,double synAcc,double velEnd=0,long segNum=0,short fifo=0);
GT_API GT_HelixZXRYOverride2WN(short cardNum,short crd,long x,long y,long z,double radius,short circleDir,double synVel,double synAcc,double velEnd=0,long segNum=0,short fifo=0);
GT_API GT_HelixZXCYOverride2WN(short cardNum,short crd,long x,long y,long z,double zCenter,double xCenter,short circleDir,double synVel,double synAcc,double velEnd=0,long segNum=0,short fifo=0);
GT_API GT_BufIO(short cardNum,short crd,unsigned short doType,unsigned short doMask,unsigned short doValue,short fifo=0);
GT_API GT_BufEnableDoBitPulse(short cardNum,short crd,short doType,short doIndex,unsigned short highLevelTime,unsigned short lowLevelTime,long pulseNum,short firstLevel,short fifo=0);
GT_API GT_BufDisableDoBitPulse(short cardNum,short crd,short doType,short doIndex,short fifo=0);
GT_API GT_BufDelay(short cardNum,short crd,unsigned short delayTime,short fifo=0);
GT_API GT_BufComparePulse(short cardNum,short crd,short level,short outputType,short time,short fifo=0);
GT_API GT_BufDA(short cardNum,short crd,short chn,short daValue,short fifo=0);
GT_API GT_BufLmtsOn(short cardNum,short crd,short axis,short limitType,short fifo=0);
GT_API GT_BufLmtsOff(short cardNum,short crd,short axis,short limitType,short fifo=0);
GT_API GT_BufSetStopIo(short cardNum,short crd,short axis,short stopType,short inputType,short inputIndex,short fifo=0);
GT_API GT_BufMove(short cardNum,short crd,short moveAxis,long pos,double vel,double acc,short modal,short fifo=0);
GT_API GT_BufGear(short cardNum,short crd,short gearAxis,long pos,short fifo=0);
GT_API GT_BufGearPercent(short cardNum,short crd,short gearAxis,long pos,short accPercent,short decPercent,short fifo=0);
GT_API GT_BufStopMotion(short cardNum,short crd,short fifo=0);
GT_API GT_BufSetVarValue(short cardNum,short crd,short pageId,TVarInfo *pVarInfo,double value,short fifo=0);
GT_API GT_BufJumpNextSeg(short cardNum,short crd,short axis,short limitType,short fifo=0);
GT_API GT_BufSynchPrfPos(short cardNum,short crd,short encoder,short profile,short fifo=0);
GT_API GT_BufVirtualToActual(short cardNum,short crd,short fifo=0);
GT_API GT_BufSetLongVar(short cardNum,short crd,short index,long value,short fifo=0);
GT_API GT_BufSetDoubleVar(short cardNum,short crd,short index,double value,short fifo=0);
GT_API GT_CrdStart(short cardNum,short mask,short option);
GT_API GT_CrdStartStep(short cardNum,short mask,short option);
GT_API GT_CrdStepMode(short cardNum,short mask,short option);
GT_API GT_SetOverride(short cardNum,short crd,double synVelRatio);
GT_API GT_SetOverride2(short cardNum,short crd,double synVelRatio);
GT_API GT_InitLookAhead(short cardNum,short crd,short fifo,double T,double accMax,short n,TCrdData *pLookAheadBuf);
GT_API GT_GetLookAheadSpace(short cardNum,short crd,long *pSpace,short fifo=0);
GT_API GT_GetLookAheadSegCount(short cardNum,short crd,long *pSegCount,short fifo=0);
GT_API GT_CrdClear(short cardNum,short crd,short fifo);
GT_API GT_CrdStatus(short cardNum,short crd,short *pRun,long *pSegment,short fifo=0);
GT_API GT_SetUserSegNum(short cardNum,short crd,long segNum,short fifo=0);
GT_API GT_GetUserSegNum(short cardNum,short crd,long *pSegment,short fifo=0);
GT_API GT_GetUserSegNumWN(short cardNum,short crd,long *pSegment,short fifo=0);
GT_API GT_GetRemainderSegNum(short cardNum,short crd,long *pSegment,short fifo=0);
GT_API GT_SetCrdStopDec(short cardNum,short crd,double decSmoothStop,double decAbruptStop);
GT_API GT_GetCrdStopDec(short cardNum,short crd,double *pDecSmoothStop,double *pDecAbruptStop);
GT_API GT_SetCrdLmtStopMode(short cardNum,short crd,short lmtStopMode);
GT_API GT_GetCrdLmtStopMode(short cardNum,short crd,short *pLmtStopMode);
GT_API GT_GetUserTargetVel(short cardNum,short crd,double *pTargetVel);
GT_API GT_GetSegTargetPos(short cardNum,short crd,long *pTargetPos);
GT_API GT_GetCrdPos(short cardNum,short crd,double *pPos);
GT_API GT_GetCrdVel(short cardNum,short crd,double *pSynVel);
GT_API GT_SetCrdSingleMaxVel(short cardNum,short crd,double *pMaxVel);
GT_API GT_GetCrdSingleMaxVel(short cardNum,short crd,double *pMaxVel);
GT_API GT_BufLaserOn(short cardNum,short crd,short fifo=0,short channel=0);
GT_API GT_BufLaserOff(short cardNum,short crd,short fifo=0,short channel=0);
GT_API GT_BufLaserPrfCmd(short cardNum,short crd,double laserPower,short fifo=0,short channel=0);
GT_API GT_BufLaserFollowRatio(short cardNum,short crd,double ratio,double minPower,double maxPower,short fifo=0,short channel=0);
GT_API GT_BufLaserFollowMode(short cardNum,short crd,short source =0,short fifo=0,short channel=0,double startPower =0);
GT_API GT_BufLaserFollowOff(short cardNum,short crd,short fifo=0,short channel=0);
GT_API GT_BufLaserFollowSpline(short cardNum,short crd,short tableId,double minPower,double maxPower,short fifo=0,short channel=0);
GT_API GT_PrfPvt(short cardNum,short profile);
GT_API GT_SetPvtLoop(short cardNum,short profile,long loop);
GT_API GT_GetPvtLoop(short cardNum,short profile,long *pLoopCount,long *pLoop);
GT_API GT_PvtStatus(short cardNum,short profile,short *pTableId,double *pTime,short count=1);
GT_API GT_PvtStart(short cardNum,long mask);
GT_API GT_PvtTableSelect(short cardNum,short profile,short tableId);
GT_API GT_PvtTable(short cardNum,short tableId,long count,double *pTime,double *pPos,double *pVel);
GT_API GT_PvtTableEx(short cardNum,short tableId,long count,double *pTime,double *pPos,double *pVelBegin,double *pVelEnd);
GT_API GT_PvtTableComplete(short cardNum,short tableId,long count,double *pTime,double *pPos,double *pA,double *pB,double *pC,double velBegin=0,double velEnd=0);
GT_API GT_PvtTablePercent(short cardNum,short tableId,long count,double *pTime,double *pPos,double *pPercent,double velBegin=0);
GT_API GT_PvtPercentCalculate(short cardNum,long n,double *pTime,double *pPos,double *pPercent,double velBegin,double *pVel);
GT_API GT_PvtTableContinuous(short cardNum,short tableId,long count,double *pPos,double *pVel,double *pPercent,double *pVelMax,double *pAcc,double *pDec,double timeBegin);
GT_API GT_PvtContinuousCalculate(short cardNum,long n,double *pPos,double *pVel,double *pPercent,double *pVelMax,double *pAcc,double *pDec,double *pTime);
GT_API GT_PvtTableMovePercent(short cardNum,short tableId,long distance,double vm,double acc,double pa1,double pa2,double dec,double pd1,double pd2,double *pVel,double *pAcc,double *pDec,double *pTime);
GT_API GT_HomeInit(short cardNum);
GT_API GT_Home(short cardNum,short axis,long pos,double vel,double acc,long offset);
GT_API GT_Index(short cardNum,short axis,long pos,long offset);
GT_API GT_HomeStop(short cardNum,short axis,long pos,double vel,double acc);
GT_API GT_HomeSts(short cardNum,short axis,unsigned short *pStatus);
GT_API GT_HandwheelInit(short cardNum);
GT_API GT_SetHandwheelStopDec(short cardNum,short slave,double decSmoothStop,double decAbruptStop);
GT_API GT_StartHandwheel(short cardNum,short slave,short master,short masterEven,short slaveEven,short intervalTime,double acc,double dec,double vel,short stopWaitTime);
GT_API GT_EndHandwheel(short cardNum,short slave);
GT_API GT_SetTrigger(short cardNum,short i,TTrigger *pTrigger);
GT_API GT_GetTrigger(short cardNum,short i,TTrigger *pTrigger);
GT_API GT_GetTriggerStatus(short cardNum,short i,TTriggerStatus *pTriggerStatus,short count=1);
GT_API GT_ClearTriggerStatus(short cardNum,short i);
GT_API GT_SetComparePort(short cardNum,short channel,short hsio0,short hsio1);
GT_API GT_ComparePulse(short cardNum,short level,short outputType,short time);
GT_API GT_CompareStop(short cardNum);
GT_API GT_CompareStatus(short cardNum,short *pStatus,long *pCount);
GT_API GT_CompareData(short cardNum,short encoder,short source,short pulseType,short startLevel,short time,
long *pBuf1,short count1,long *pBuf2,short count2);
GT_API GT_CompareLinear(short cardNum,short encoder,short channel,long startPos,long repeatTimes,long interval,short time,short source);
GT_API GT_CompareContinuePulseMode(short mode,short count,short standTime);
GT_API GT_SetEncResponseCheck(short cardNum,short control,short dacThreshold,double minEncVel,long time);
GT_API GT_GetEncResponseCheck(short cardNum,short control,short *pDacThreshold,double *pMinEncVel,long *pTime);
GT_API GT_EnableEncResponseCheck(short cardNum,short control);
GT_API GT_DisableEncResponseCheck(short cardNum,short control);
GT_API GT_2DCompareMode(short cardNum,short chn,short mode);
GT_API GT_2DComparePulse(short cardNum,short chn,short level,short outputType,short time);
GT_API GT_2DCompareStop(short cardNum,short chn);
GT_API GT_2DCompareClear(short cardNum,short chn);
GT_API GT_2DCompareStatus(short cardNum,short chn,short *pStatus,long *pCount,short *pFifo,short *pFifoCount,short *pBufCount =NULL);
GT_API GT_2DCompareSetPrm(short cardNum,short chn,T2DComparePrm *pPrm);
GT_API GT_2DCompareData(short cardNum,short chn,short count,T2DCompareData *pBuf,short fifo);
GT_API GT_2DCompareStart(short cardNum,short chn);
GT_API GT_2DCompareClearData(short cardNum,short chn);
GT_API GT_SetAxisMode(short cardNum,short axis,short mode);
GT_API GT_GetAxisMode(short cardNum,short axis,short *pMode);
GT_API GT_SetHSIOOpt(short cardNum,unsigned short value,short channel=0);
GT_API GT_GetHSIOOpt(short cardNum,unsigned short *pValue,short channel=0);
GT_API GT_LaserPowerMode(short cardNum,short laserPowerMode,double maxValue,double minValue,short channel=0,short delaymode =0);
GT_API GT_LaserPrfCmd(short cardNum,double outputCmd,short channel=0);
GT_API GT_LaserOutFrq(short cardNum,double outFrq,short channel=0);
GT_API GT_SetPulseWidth(short cardNum,unsigned long width,short channel=0);
GT_API GT_SetWaitPulse(short cardNum,unsigned short mode,double waitPulseFrq,double waitPulseDuty,short channel=0);
GT_API GT_SetPreVltg(short cardNum,unsigned short mode,double voltageValue,short channel=0);
GT_API GT_SetLevelDelay(short cardNum,unsigned short offDelay,unsigned short onDelay,short channel=0);
GT_API GT_EnaFPK(short cardNum,unsigned short time1,unsigned short time2,unsigned short laserOffDelay,short channel=0);
GT_API GT_DisFPK(short cardNum,short channel=0);
GT_API GT_SetLaserDisMode(short cardNum,short mode,short source,long *pPos,double *pScale,short channel=0);
GT_API GT_SetLaserDisRatio(short cardNum,double *pRatio,double minPower,double maxPower,short channel=0);
GT_API GT_SetWaitPulseEx(short cardNum,unsigned short mode,double waitPulseFrq,double waitPulseDuty);
GT_API GT_SetLaserMode(short cardNum,short mode);
GT_API GT_SetLaserFollowSpline(short cardNum,short tableId,long n,double *pX,double *pY,double beginValue,double endValue,short channel=0);
GT_API GT_GetLaserFollowSpline(short cardNum,short tableId,long n,double *pX,double *pY,double *pA,double *pB,double *pC,long *pCount,short channel=0);
GT_API GT_OpenExtMdl(short cardNum,char *pDllName=NULL);
GT_API GT_CloseExtMdl(short cardNum);
GT_API GT_SwitchtoCardNoExtMdl(short cardNum,short card);
GT_API GT_ResetExtMdl(short cardNum);
GT_API GT_LoadExtConfig(short cardNum,char *pFileName);
GT_API GT_SetExtIoValue(short cardNum,short mdl,unsigned short value);
GT_API GT_GetExtIoValue(short cardNum,short mdl,unsigned short *pValue);
GT_API GT_SetExtIoBit(short cardNum,short mdl,short index,unsigned short value);
GT_API GT_GetExtIoBit(short cardNum,short mdl,short index,unsigned short *pValue);
GT_API GT_GetExtAdValue(short cardNum,short mdl,short chn,unsigned short *pValue);
GT_API GT_GetExtAdVoltage(short cardNum,short mdl,short chn,double *pValue);
GT_API GT_SetExtDaValue(short cardNum,short mdl,short chn,unsigned short value);
GT_API GT_SetExtDaVoltage(short cardNum,short mdl,short chn,double value);
GT_API GT_GetStsExtMdl(short cardNum,short mdl,short chn,unsigned short *pStatus);
GT_API GT_GetExtDoValue(short cardNum,short mdl,unsigned short *pValue);
GT_API GT_GetExtMdlMode(short cardNum,short *pMode);
GT_API GT_SetExtMdlMode(short cardNum,short mode);
GT_API GT_UploadConfig(short cardNum);
GT_API GT_DownloadConfig(short cardNum);
GT_API GT_GetUuid(short cardNum,char *pCode,short count);
//////////////////////////////////////////////////////////////////////////
//2D Compensate
//////////////////////////////////////////////////////////////////////////
typedef struct
{
short count[2]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>СֵΪ2
long posBegin[2]; // <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
long step[2]; // <20><><EFBFBD><EFBFBD>
} TCompensate2DTable;
typedef struct
{
short enable; // 2D<32><44><EFBFBD><EFBFBD>ʹ<EFBFBD>ܱ<EFBFBD>־
short tableIndex; // <20><>ʹ<EFBFBD>õ<EFBFBD>2D<32><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
short axisType[2]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
short axisIndex[2]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
} TCompensate2D;
GT_API GT_SetCompensate2DTable(short cardNum,short tableIndex,TCompensate2DTable *pTable,long *pData,short externComp=0);
GT_API GT_GetCompensate2DTable(short cardNum,short tableIndex,TCompensate2DTable *pTable,short *pExternComp=NULL);
GT_API GT_SetCompensate2D(short cardNum,short axis,TCompensate2D *pComp2d);
GT_API GT_GetCompensate2D(short cardNum,short axis,TCompensate2D *pComp2d);
GT_API GT_GetCompensate2DValue(short cardNum,short axis,double *pValue);
//////////////////////////////////////////////////////////////////////////
//Smart Home
//////////////////////////////////////////////////////////////////////////
#define HOME_STAGE_IDLE (0)
#define HOME_STAGE_START (1)
#define HOME_STAGE_SEARCH_LIMIT (10)
#define HOME_STAGE_SEARCH_LIMIT_STOP (11)
#define HOME_STAGE_SEARCH_LIMIT_ESCAPE (13)
#define HOME_STAGE_SEARCH_LIMIT_RETURN (15)
#define HOME_STAGE_SEARCH_LIMIT_RETURN_STOP (16)
#define HOME_STAGE_SEARCH_HOME (20)
#define HOME_STAGE_SEARCH_HOME_RETURN (25)
#define HOME_STAGE_SEARCH_INDEX (30)
#define HOME_STAGE_SEARCH_GPI (40)
#define HOME_STAGE_SEARCH_GPI_RETURN (45)
#define HOME_STAGE_GO_HOME (80)
#define HOME_STAGE_END (100)
#define HOME_ERROR_NONE (0)
#define HOME_ERROR_NOT_TRAP_MODE (1)
#define HOME_ERROR_DISABLE (2)
#define HOME_ERROR_ALARM (3)
#define HOME_ERROR_STOP (4)
#define HOME_ERROR_STAGE (5)
#define HOME_ERROR_HOME_MODE (6)
#define HOME_ERROR_SET_CAPTURE_HOME (7)
#define HOME_ERROR_NO_HOME (8)
#define HOME_ERROR_SET_CAPTURE_INDEX (9)
#define HOME_ERROR_NO_INDEX (10)
#define HOME_MODE_LIMIT (10)
#define HOME_MODE_LIMIT_HOME (11)
#define HOME_MODE_LIMIT_INDEX (12)
#define HOME_MODE_LIMIT_HOME_INDEX (13)
#define HOME_MODE_HOME (20)
#define HOME_MODE_HOME_INDEX (22)
#define HOME_MODE_INDEX (30)
typedef struct
{
short mode; // <20><><EFBFBD><EFBFBD>ģʽ
short moveDir; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD>
short indexDir; // <20><><EFBFBD><EFBFBD>Index<65><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
short edge; // <20><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD>
short triggerIndex; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ-1<><31>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>Ŷ<EFBFBD>Ӧ
short pad1[3]; // <20><><EFBFBD><EFBFBD>1
double velHigh; // Home<6D><65><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>
double velLow; // Index<65><78><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>
double acc;
double dec;
short smoothTime;
short pad2[3]; // <20><><EFBFBD><EFBFBD>2
long homeOffset; // ԭ<><D4AD>ƫ<EFBFBD><C6AB>
long searchHomeDistance; // Home<6D><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룬Ϊ0<CEAA><30>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
long searchIndexDistance; // Index<65><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룬Ϊ0<CEAA><30>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
long escapeStep; // <20><><EFBFBD><EFBFBD><EBB2BD>
long pad3[2]; // <20><><EFBFBD><EFBFBD>3
} THomePrm;
typedef struct
{
short run;
short stage;
short error;
short pad1;
long capturePos;
long targetPos;
} THomeStatus;
GT_API GT_GoHome(short cardNum,short axis,THomePrm *pHomePrm);
GT_API GT_GetHomePrm(short cardNum,short axis,THomePrm *pHomePrm);
GT_API GT_GetHomeStatus(short cardNum,short axis,THomeStatus *pHomeStatus);
//////////////////////////////////////////////////////////////////////////
//Extern Control
//////////////////////////////////////////////////////////////////////////
typedef struct ControlConfigEx
{
short refType; //<2F><><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD><CEBF><EFBFBD><EFBFBD>ͣ<EFBFBD>ֻ<EFBFBD><D6BB>ȡMC_AXIS
short refIndex; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
short feedbackType; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>ΪMC_ENCODERʱ<52><CAB1>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪMC_ADCʱ<43><CAB1>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ѹ
short feedbackIndex; //<2F><><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>
long errorLimit; //<2F><><EFBFBD><EFBFBD>ޣ<EFBFBD><DEA3><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
short feedbackSmooth; //<2F><><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
short controlSmooth; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}TControlConfigEx;
GT_API GT_SetControlConfigEx(short cardNum,short control,TControlConfigEx *pControl);
GT_API GT_GetControlConfigEx(short cardNum,short control,TControlConfigEx *pControl);
//////////////////////////////////////////////////////////////////////////
//Adc filter
//////////////////////////////////////////////////////////////////////////
typedef struct AdcConfig
{
short active;
short reverse;
double a; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD>Ա任aֵ<61><D6B5>ȡֵΪ1
double b; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD>Ա任bֵ<62><D6B5>ȡֵΪ0
short filterMode; //<2F>˲<EFBFBD>ģʽ<C4A3><CABD>0-FIR<49>˲<EFBFBD>ģʽ<C4A3><CABD>1-IIR<49>˲<EFBFBD>ģʽ
} TAdcConfig;
GT_API GT_SetAdcConfig(short cardNum,short adc,TAdcConfig *pAdc);
GT_API GT_GetAdcConfig(short adc,TAdcConfig *pAdc);
GT_API GT_SetAdcFilterPrm(short cardNum,short adc,double k);
GT_API GT_GetAdcFilterPrm(short cardNum,short adc,double *pk);
//////////////////////////////////////////////////////////////////////////
//Superimposed
//////////////////////////////////////////////////////////////////////////
GT_API GT_SetControlSuperimposed(short cardNum,short control,short superimposedType,short superimposedIndex);
GT_API GT_GetControlSuperimposed(short cardNum,short control,short *pSuperimposedType,short *pSuperimposedIndex);
//////////////////////////////////////////////////////////////////////////
//Pci Interrupt
//////////////////////////////////////////////////////////////////////////
#define PCI_INTERRUPT_SOURCE_USER (1) //PCI<43>ж<EFBFBD>ԴΪ<D4B4>û<EFBFBD><C3BB>Զ<EFBFBD><D4B6><EFBFBD>
#define PCI_INTERRUPT_SOURCE_2DCOMPARE (2) //PCI<43>ж<EFBFBD>ԴΪ<D4B4><CEAA>άλ<CEAC>ñȽ<C3B1>
typedef struct
{
short source; //interrupt source of pci device
short param; //param coming with pci interrupt
short reserve;
}TInterrupt;
typedef short (*TInterruptCallback)(TInterrupt);
GT_API GT_InterruptOn(short cardNum,TInterruptCallback pCallback);
GT_API GT_InterruptOff(short cardNum);
GT_API GT_SetInterruptMask(short cardNum,long mask);
GT_API GT_GetInterruptMask(short cardNum,long *pMask);
GT_API GT_InterruptTrigger(short cardNum,short param);
//////////////////////////////////////////////////////////////////////////
GT_API GT_ZeroLaserOnTime(short cardNum,short channel);
GT_API GT_GetLaserOnTime(short cardNum,short channel,unsigned long *pTime);
typedef struct
{
short work; //<2F>Ƿ<EFBFBD><C7B7>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>
short n; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
long startPos; //<2F><>ʼλ<CABC><CEBB>
long lenPos; //<2F>ܳ<EFBFBD><DCB3><EFBFBD>
long compPos[256]; //<2F><><EFBFBD>򲹳<EFBFBD>ֵ
long compNeg[256]; //<2F><><EFBFBD>򲹳<EFBFBD>ֵ
}TLeadScrewPrm;
GT_API GT_GetLeadScrewCompInnerValue(short cardNum,short axis,short dir,long pos,long *pCompValue);
GT_API GT_SetProfileScale(short cardNum,short axis,long alpha,long beta);
GT_API GT_GetProfileScale(short cardNum,short axis,long *pAlpha,long *pBeta);