// Headerdatei für CTango

#ifndef __CTango__
#define __CTango__


/////////////////////////////////////////////////////////////////////////////////////////////
// C-Kapselung für Tango.DLL

const int XAxis = 1;
const int YAxis = 2;
const int ZAxis = 3;
const int AAxis = 4;

#pragma pack(1)
struct TLS_ControlInitPar
{
      int Size;
      int InterfaceType;
      char ComNameLength;
      char ComName[32];
      BOOL ShowProt;
      BOOL ShowCmdList;

      int BaudRate;
      int IOAdress;
      int CardIndex;

      int ControlType;
      char VersionStrLength;
      char VersionStr[64];
      int Axes;
      int ErrorCode;
      BOOL NewCmds;
      int Encoder;
      BOOL Display, SpeedPoti, HandWheel, Snapshot, TVR, TriggerOut;
      BOOL DemoMode;
};


#pragma pack(8)
typedef int (__stdcall *PConnect) (int lLSID);
typedef int (__stdcall *PConnectSimple) (int lLSID, int lAnInterfaceType, char *pcAComName, int lABaudRate, int lAShowProt);
typedef int (__stdcall *PConnectEx) (int lLSID, TLS_ControlInitPar *pAControlInitPar);
typedef int (__stdcall *PDisconnect) (int lLSID);
typedef int (__stdcall *PGetDLLVersionString) (int lLSID, char *pcVers, int lMaxLen);
typedef int (__stdcall *PLoadConfig) (int lLSID, char *pcFileName);
typedef int (__stdcall *PSaveConfig) (int lLSID, char *pcFileName);
typedef int (__stdcall *PReadControlPars) (int lLSID);
typedef int (__stdcall *PSetCtrlPars) (int lLSID);
typedef int (__stdcall *PGetStageSN) (int lLSID, char *pcSN, int lMaxLen);
typedef int (__stdcall *PIsVel) (int lLSID, double *pdX, double *pdY, double *pdZ, double *pdA);
typedef int (__stdcall *PIsVelSingleAxis) (int lLSID, int lAxis, double *pdVel);
typedef int (__stdcall *PMoveAbs) (int lLSID, double dX, double dY, double dZ, double dA, BOOL bWait);
typedef int (__stdcall *PMoveRel) (int lLSID, double dX, double dY, double dZ, double dA, BOOL bWait);
typedef int (__stdcall *PMoveEx) (int lLSID, double dX, double dY, double dZ, double dR, BOOL bRelative, BOOL bWait, int lAxisCount);
typedef int (__stdcall *PGo) (int lLSID, double dX, double dY, double dZ, double dA);
typedef int (__stdcall *PGoSingleAxis) (int lLSID, int lAxis, double dValue);
typedef int (__stdcall *PGoEx) (int lLSID, double dX, double dY, double dZ, double dA, int lAxisCount);
typedef int (__stdcall *PCalibrate) (int lLSID);
typedef int (__stdcall *PRMeasure) (int lLSID);
typedef int (__stdcall *PSetPitch) (int lLSID, double dX, double dY, double dZ, double dA);
typedef int (__stdcall *PSetPos) (int lLSID, double dX, double dY, double dZ, double dA);
typedef int (__stdcall *PSetActiveAxes) (int lLSID, int lFlags);
typedef int (__stdcall *PSetVel) (int lLSID, double dX, double dY, double dZ, double dA);
typedef int (__stdcall *PSetSecVel) (int lLSID, double dX, double dY, double dZ, double dA);
typedef int (__stdcall *PSetAccel) (int lLSID, double dX, double dY, double dZ, double dA);
typedef int (__stdcall *PSetReduction) (int lLSID, double dX, double dY, double dZ, double dA);
typedef int (__stdcall *PSetDelay) (int lLSID, int lDelay);
typedef int (__stdcall *PSetSwitchPolarity) (int lLSID, int lXP, int lYP, int lZP, int lAP);
typedef int (__stdcall *PSetSwitchActive) (int lLSID, int lXA, int lYA, int lZA, int lAA);
typedef int (__stdcall *PSetJoystickOn) (int lLSID, BOOL bPositionCount, BOOL bEncoder);
typedef int (__stdcall *PSetJoystickOff) (int lLSID);
typedef int (__stdcall *PSoftwareReset) (int lLSID);
typedef int (__stdcall *PClearProtocolWindow) (int lLSID);
typedef int (__stdcall *PSetAuxDigitalOutput) (int lLSID, int lIndex, BOOL bValue);
typedef int (__stdcall *PGetAuxDigitalInput) (int lLSID, int lIndex, BOOL *bValue);
typedef int (__stdcall *PSetDigitalOutput) (int lLSID, int lIndex, BOOL bValue);
typedef int (__stdcall *PSetDigitalOutputs) (int lLSID, int lValue);
typedef int (__stdcall *PGetDigitalInputs) (int lLSID, int *plValue);
typedef int (__stdcall *PSetDigitalOutputE) (int lLSID, int lIndex, BOOL bValue);
typedef int (__stdcall *PSetDigitalOutputsE) (int lLSID, int lValue);
typedef int (__stdcall *PGetDigitalInputsE) (int lLSID, int *plValue);
typedef int (__stdcall *PSetAnalogOutput) (int lLSID, int lIndex, int lValue);
typedef int (__stdcall *PSetAnalogOutputMode) (int lLSID, int lValue);
typedef int (__stdcall *PGetAnalogOutputMode) (int lLSID, int *plValue);
typedef int (__stdcall *PSetLedBright) (int lLSID, double dBright);
typedef int (__stdcall *PGetAnalogInput) (int lLSID, int lIndex, int *plValue);
typedef int (__stdcall *PGetHdiKeys) (int lLSID, int *plKey1, int *plKey2, int *plKey3, int *plKey4);
typedef int (__stdcall *PGetSmHdiButton) (int lLSID, int lButtonNr, char *pcFunction, int lMaxLen);
typedef int (__stdcall *PSetSmHdiButton) (int lLSID, int lButtonNr, char *pcFunction);
typedef int (__stdcall *PSetHdiSpeedIndex) (int lLSID, int lX, int lY, int lZ, int lA);
typedef int (__stdcall *PGetHdiSpeedIndex) (int lLSID, int *plX, int *plY, int *plZ, int *plA);
typedef int (__stdcall *PSetHdiSpeedIndexSingleAxis) (int lLSID, int lAxis, int lIndex);
typedef int (__stdcall *PGetHdiSpeedIndexSingleAxis) (int lLSID, int lAxis, int *plIndex);
typedef int (__stdcall *PSetHwFactor) (int lLSID, double dX, double dY, double dZ, double dA);
typedef int (__stdcall *PSetHwFactorB) (int lLSID, double dX, double dY, double dZ, double dA);
typedef int (__stdcall *PGetHwFactor) (int lLSID, double *pdX, double *pdY, double *pdZ, double *pdA);
typedef int (__stdcall *PGetHwFactorB) (int lLSID, double *pdX, double *pdY, double *pdZ, double *pdA);
typedef int (__stdcall *PSetHwFactorSingleAxis) (int lLSID, int lAxis, double dFactor);
typedef int (__stdcall *PSetHwFactorBSingleAxis) (int lLSID, int lAxis, double dFactorB);
typedef int (__stdcall *PGetHwFactorSingleAxis) (int lLSID, int lAxis, double *pdFactor);
typedef int (__stdcall *PGetHwFactorBSingleAxis) (int lLSID, int lAxis, double *pdFactorB);
typedef int (__stdcall *PSetLimit) (int lLSID, int lAxis, double dMinRange, double dMaxRange);
typedef int (__stdcall *PSetLimitControl) (int lLSID, int lAxis, BOOL bActive);
typedef int (__stdcall *PGetPos) (int lLSID, double *pdX, double *pdY, double *pdZ, double *pdA);
typedef int (__stdcall *PGetStatus) (int lLSID, char *pcStat, int lMaxLen);
typedef int (__stdcall *PGetEncoderMask) (int lLSID, int *plFlags);
typedef int (__stdcall *PStopAxes) (int lLSID);
typedef int (__stdcall *PStopAxesEx) (int lLSID, int lFlags);
typedef int (__stdcall *PSetAbortFlag) (int lLSID);
typedef int (__stdcall *PMoveRelSingleAxis) (int lLSID, int lAxis, double dValue, BOOL bWait);
typedef int (__stdcall *PMoveAbsSingleAxis) (int lLSID, int lAxis, double dValue, BOOL bWait);
typedef int (__stdcall *PSetControlPars) (int lLSID);
typedef int (__stdcall *PSetMotorCurrent) (int lLSID, double dX, double dY, double dZ, double dA);
typedef int (__stdcall *PSetVelSingleAxis) (int lLSID, int lAxis, double dVel);
typedef int (__stdcall *PSetSecVelSingleAxis) (int lLSID, int lAxis, double dVel);
typedef int (__stdcall *PSetAccelSingleAxis) (int lLSID, int lAxis, double dAccel);
typedef int (__stdcall *PCalibrateEx) (int lLSID, int lFlags);
typedef int (__stdcall *PRMeasureEx) (int lLSID, int lFlags);
typedef int (__stdcall *PSetShowProt) (int lLSID, int lShowProt);
typedef int (__stdcall *PGetAnalogInputs2) (int lLSID, int *plPT100, int *plMV, int *plV24);
typedef int (__stdcall *PSendString) (int lLSID, char *pcStr, char *pcRet, int lMaxLen, BOOL bReadLine, int lTimeOut);
typedef int (__stdcall *PSetSpeedPoti) (int lLSID, BOOL bSpeedPoti);
typedef int (__stdcall *PSetTVRMode) (int lLSID, int lXT, int lYT, int lZT, int lAT);
typedef int (__stdcall *PSetAutoStatus) (int lLSID, int lValue);
typedef int (__stdcall *PGetAutoStatus) (int lLSID, int *plValue);
typedef int (__stdcall *PGetStatusAxis) (int lLSID, char *pcStatusAxisStr, int lMaxLen);
typedef int (__stdcall *PGetStA) (int lLSID, int *plStaX, int *plStaY, int *plStaZ, int *plStaA);
typedef int (__stdcall *PSetDigIO_Off) (int lLSID, int lIndex);
typedef int (__stdcall *PSetDigIO_Polarity) (int lLSID, int lIndex, BOOL bHigh);
typedef int (__stdcall *PSetDigIO_EmergencyStop) (int lLSID, int lIndex);
typedef int (__stdcall *PSetDigIO_Distance) (int lLSID, int lIndex, BOOL bFkt, double dDist, int lAxis);
typedef int (__stdcall *PSetDimensions) (int lLSID, int lXD, int lYD, int lZD, int lAD);
typedef int (__stdcall *PSetResolution) (int lLSID, int lValue);
typedef int (__stdcall *PMoveRelShort) (int lLSID);
typedef int (__stdcall *PSetEncoderPeriod) (int lLSID, double dX, double dY, double dZ, double dA);
typedef int (__stdcall *PSetJoystickDir) (int lLSID, int lXD, int lYD, int lZD, int lAD);
typedef int (__stdcall *PSetEncoderMask) (int lLSID, int lValue);
typedef int (__stdcall *PSetGear) (int lLSID, double dX, double dY, double dZ, double dA);
typedef int (__stdcall *PSetHandWheelOn) (int lLSID, BOOL bPositionCount, BOOL bEncoder);
typedef int (__stdcall *PSetHandWheelOff) (int lLSID);
typedef int (__stdcall *PSetFactorTVR) (int lLSID, double dX, double dY, double dZ, double dA);
typedef int (__stdcall *PSetTargetWindow) (int lLSID, double dX, double dY, double dZ, double dA);
typedef int (__stdcall *PSetController) (int lLSID, int lXC, int lYC, int lZC, int lAC);
typedef int (__stdcall *PSetControllerCall) (int lLSID, int lCtrCall);
typedef int (__stdcall *PSetControllerSteps) (int lLSID, double dX, double dY, double dZ, double dA);
typedef int (__stdcall *PSetControllerFactor) (int lLSID, double dX, double dY, double dZ, double dA);
typedef int (__stdcall *PSetControllerFactorSingleAxis) (int lLSID, int lAxis, double dFactor1, double dFactor2);
typedef int (__stdcall *PSetControllerTWDelay) (int lLSID, int lCtrTWDelay);
typedef int (__stdcall *PSetControllerTWDelaySingleAxis) (int lLSID, int lAxis, int lCtrTWDelay);
typedef int (__stdcall *PSetEncoderRefSignal) (int lLSID, int lXR, int lYR, int lZR, int lAR);
typedef int (__stdcall *PSetEncoderPosition) (int lLSID, BOOL bValue);
typedef int (__stdcall *PGetVersionStr) (int lLSID, char *pcVers, int lMaxLen);
typedef int (__stdcall *PGetError) (int lLSID, int *plErrorCode);
typedef int (__stdcall *PGetErrorString) (int lLSID, int lError, char *pcErrorString, int lMaxLen);
typedef int (__stdcall *PGetPosSingleAxis) (int lLSID, int lAxis, double *pdPos);
typedef int (__stdcall *PSetPosSingleAxis) (int lLSID, int lAxis, double dPos);
typedef int (__stdcall *PSetDistance) (int lLSID, double dX, double dY, double dZ, double dA);
typedef int (__stdcall *PGetPosEx) (int lLSID, double *pdX, double *pdY, double *pdZ, double *pdR, BOOL bEncoder);
typedef int (__stdcall *PSetShowCmdList) (int lLSID, BOOL bShowCmdList);
typedef int (__stdcall *PSetWriteLogText) (int lLSID, BOOL bAWriteLogText);
typedef int (__stdcall *PSetControllerTimeout) (int lLSID, int lACtrTimeout);
typedef int (__stdcall *PSetEncoderActive) (int lLSID, int lFlags);
typedef int (__stdcall *PGetSnapshotCount) (int lLSID, int *plSnsCount);
typedef int (__stdcall *PSetSnapshotCount) (int lLSID, int lSnsCount);
typedef int (__stdcall *PGetSnapshotPos) (int lLSID, double *pdX, double *pdY, double *pdZ, double *pdA);
typedef int (__stdcall *PSetCorrTblOff) (int lLSID);
typedef int (__stdcall *PSetCorrTblOn) (int lLSID, char *pcAFileName);
typedef int (__stdcall *PSetFactorMode) (int lLSID, BOOL bAFactorMode, double dX, double dY, double dZ, double dA);
typedef int (__stdcall *PSetSnapshot) (int lLSID, BOOL bASnapshot);
typedef int (__stdcall *PSetSnapshotPar) (int lLSID, BOOL bHigh, BOOL bAutoMode);
typedef int (__stdcall *PSetTrigger) (int lLSID, BOOL bATrigger);
typedef int (__stdcall *PSetTriggerPar) (int lLSID, int lAxis, int lMode, int lSignal, double dDistance);
typedef int (__stdcall *PSetTrigCount) (int lLSID, int lValue);

typedef int (__stdcall *PSetTriggerAxis) (int lLSID, int lAxis);
typedef int (__stdcall *PSetTriggerMode) (int lLSID, int lMode);
typedef int (__stdcall *PSetTriggerSignalLength) (int lLSID, int lSignal);
typedef int (__stdcall *PSetTriggerDistance) (int lLSID, double dDistance);
typedef int (__stdcall *PSetTriggerCompensation) (int lLSID, int lCompensation);
typedef int (__stdcall *PSetTriggerEncoder) (int lLSID, int lEncoder);
typedef int (__stdcall *PSetTriggerFrequency) (int lLSID, double dFrequency);
typedef int (__stdcall *PSetTriggerRange) (int lLSID, double dStartPos, double dEndPos, int lNumberOfTriggerPulses);
typedef int (__stdcall *PSetTriggerOutput) (int lLSID, int lOutput);
typedef int (__stdcall *PSetTriggerPositionList) (int lLSID, int lIndex, double dPosition);
typedef int (__stdcall *PSetTriggerPositionListIndex) (int lLSID, int lIndex);
typedef int (__stdcall *PSetTriggerPositionListEntries) (int lLSID, int lNumberOfEntries);
typedef int (__stdcall *PSetTriggerLevel) (int lLSID, int lLevel);
typedef int (__stdcall *PSet2ndTriggerDelay) (int lLSID, double dDelay);
typedef int (__stdcall *PSet2ndTriggerWidth) (int lLSID, double dWidth);
typedef int (__stdcall *PSet2ndTriggerFrequency) (int lLSID, double dFrequency);

typedef int (__stdcall *PSetLanguage) (int lLSID, char *pcPLN);
typedef int (__stdcall *PGetSwitches) (int lLSID, int *plFlags);
typedef int (__stdcall *PGetSerialNr) (int lLSID, char *pcSerialNr, int lMaxLen);
typedef int (__stdcall *PSetCalibOffset) (int lLSID, double dX, double dY, double dZ, double dR);
typedef int (__stdcall *PSetRMOffset) (int lLSID, double dX, double dY, double dZ, double dR);
typedef int (__stdcall *PGetSnapshotPosArray) (int lLSID, int lIndex, double *pdX, double *pdY, double *pdZ, double *pdR);
typedef int (__stdcall *PSetAxisDirection) (int lLSID, int lXD, int lYD, int lZD, int lAD);
typedef int (__stdcall *PSetCalibrateDir) (int lLSID, int lXD, int lYD, int lZD, int lAD);
typedef int (__stdcall *PLStepSave) (int lLSID);
typedef int (__stdcall *PSetBPZ) (int lLSID, int lAValue);
typedef int (__stdcall *PSetBPZTrackballFactor) (int lLSID, double dAValue);
typedef int (__stdcall *PSetBPZTrackballBackLash) (int lLSID, double dX, double dY, double dZ, double dR);
typedef int (__stdcall *PSetBPZJoyspeed) (int lLSID, int lAPar, double dAValue);
typedef int (__stdcall *PSetJoystickWindow) (int lLSID, int lAValue);
typedef int (__stdcall *PSetCurrentDelay) (int lLSID, int lX, int lY, int lZ, int lR);
typedef int (__stdcall *PWaitForAxisStop) (int lLSID, int lAFlags, int lATimeoutValue, BOOL *pbATimeout);
typedef int (__stdcall *PSetProcessMessagesProc) (int lLSID, void* pProc);
typedef int (__stdcall *PSendStringPosCmd) (int lLSID, char *pcStr, char *pcRet, int lMaxLen, BOOL bReadLine, int lTimeOut);
typedef int (__stdcall *PSetWriteLogTextFN) (int lLSID, BOOL bAWriteLogText, char *pcALogFN);
typedef int (__stdcall *PEnableCommandRetry) (int lLSID, BOOL bAValue);
typedef int (__stdcall *PSetXYAxisComp) (int lLSID, int lValue);
typedef int (__stdcall *PGetVersionStrDet) (int lLSID, char *pcVersDet, int lMaxLen);
typedef int (__stdcall *PSetDllNumOfAxes) (int lLSID, int lNumOfAxes);
typedef int (__stdcall *PSetCommandTimeout) (int lLSID, int lAtoRead, int lAtoMove, int lAtoCalibrate);
typedef int (__stdcall *PGetCommandTimeout) (int lLSID, int *plAtoRead, int *plAtoMove, int *plAtoCalibrate);
typedef int (__stdcall *PSetExtValue) (int lLSID, int lAName, int lAValue);
typedef int (__stdcall *PFlushBuffer) (int lLSID, int lAValue);
typedef int (__stdcall *PGetEEPRomValue) (int lLSID, unsigned char Offset, unsigned char *pValue);
typedef int (__stdcall *PSetEEPRomValue) (int lLSID, unsigned char Offset, unsigned char Value);
typedef int (__stdcall *PGetXYAxisComp) (int lLSID, int *plValue);
typedef int (__stdcall *PGetDimensions) (int lLSID, int *plXD, int *plYD, int *plZD, int *plAD);
typedef int (__stdcall *PGetResolution) (int lLSID, int *plValue);
typedef int (__stdcall *PGetPitch) (int lLSID, double *pdX, double *pdY, double *pdZ, double *pdA);
typedef int (__stdcall *PGetGear) (int lLSID, double *pdX, double *pdY, double *pdZ, double *pdA);
typedef int (__stdcall *PGetVel) (int lLSID, double *pdX, double *pdY, double *pdZ, double *pdA);
typedef int (__stdcall *PGetAccelFuncSingleAxis) (int lLSID, int lAxis, int *plVal);
typedef int (__stdcall *PSetAccelFuncSingleAxis) (int lLSID, int lAxis, int iVal);
typedef int (__stdcall *PGetJoystickDirSingleAxis) (int lLSID, int lAxis, int *plVal);
typedef int (__stdcall *PSetJoystickDirSingleAxis) (int lLSID, int lAxis, int iVal);
typedef int (__stdcall *PGetDigJoySpeedSingleAxis) (int lLSID, int lAxis, double *pdVal);
typedef int (__stdcall *PSetDigJoySpeedSingleAxis) (int lLSID, int lAxis, double dVal);
typedef int (__stdcall *PGetDimensionsSingleAxis) (int lLSID, int lAxis, int *plVal);
typedef int (__stdcall *PSetDimensionsSingleAxis) (int lLSID, int lAxis, int iVal);
typedef int (__stdcall *PGetEncoderPeriodSingleAxis) (int lLSID, int lAxis, double *pdVal);
typedef int (__stdcall *PSetEncoderPeriodSingleAxis) (int lLSID, int lAxis, double dVal);
typedef int (__stdcall *PGetPitchSingleAxis) (int lLSID, int lAxis, double *pdVal);
typedef int (__stdcall *PSetPitchSingleAxis) (int lLSID, int lAxis, double dVal);
typedef int (__stdcall *PGetGearSingleAxis) (int lLSID, int lAxis, double *pdVal);
typedef int (__stdcall *PSetGearSingleAxis) (int lLSID, int lAxis, double dVal);
typedef int (__stdcall *PGetStopAccelSingleAxis) (int lLSID, int lAxis, double *pdVal);
typedef int (__stdcall *PSetStopAccelSingleAxis) (int lLSID, int lAxis, double dVal);
typedef int (__stdcall *PGetMotorCurrentSingleAxis) (int lLSID, int lAxis, double *pdVal);
typedef int (__stdcall *PSetMotorCurrentSingleAxis) (int lLSID, int lAxis, double dVal);
typedef int (__stdcall *PGetReductionSingleAxis) (int lLSID, int lAxis, double *pdVal);
typedef int (__stdcall *PSetReductionSingleAxis) (int lLSID, int lAxis, double dVal);
typedef int (__stdcall *PGetTargetWindowSingleAxis) (int lLSID, int lAxis, double *pdVal);
typedef int (__stdcall *PSetTargetWindowSingleAxis) (int lLSID, int lAxis, double dVal);
typedef int (__stdcall *PGetMotorStepsSingleAxis) (int lLSID, int lAxis, int *plVal);
typedef int (__stdcall *PSetMotorStepsSingleAxis) (int lLSID, int lAxis, int iVal);
typedef int (__stdcall *PGetCurrentDelaySingleAxis) (int lLSID, int lAxis, int *plVal);
typedef int (__stdcall *PSetCurrentDelaySingleAxis) (int lLSID, int lAxis, int iVal);
typedef int (__stdcall *PGetVelSingleAxis) (int lLSID, int lAxis, double *pdVel);
typedef int (__stdcall *PGetSecVelSingleAxis) (int lLSID, int lAxis, double *pdVel);
typedef int (__stdcall *PGetAccelSingleAxis) (int lLSID, int lAxis, double *pdAccel);
typedef int (__stdcall *PGetSecVel) (int lLSID, double *pdX, double *pdY, double *pdZ, double *pdA);
typedef int (__stdcall *PGetAccel) (int lLSID, double *pdX, double *pdY, double *pdZ, double *pdA);
typedef int (__stdcall *PSetVelFac) (int lLSID, double dX, double dY, double dZ, double dR);
typedef int (__stdcall *PGetVelFac) (int lLSID, double *pdX, double *pdY, double *pdZ, double *pdR);
typedef int (__stdcall *PGetSpeedPoti) (int lLSID, BOOL *pbSpePoti);
typedef int (__stdcall *PGetMotorCurrent) (int lLSID, double *pdX, double *pdY, double *pdZ, double *pdA);
typedef int (__stdcall *PGetReduction) (int lLSID, double *pdX, double *pdY, double *pdZ, double *pdA);
typedef int (__stdcall *PGetCurrentDelay) (int lLSID, int *plX, int *plY, int *plZ, int *plR);
typedef int (__stdcall *PSetOutFuncLev) (int lLSID, double dX, double dY, double dZ, double dR);
typedef int (__stdcall *PGetOutFuncLev) (int lLSID, double *pdX, double *pdY, double *pdZ, double *pdR);
typedef int (__stdcall *PGetActiveAxes) (int lLSID, int *plFlags);
typedef int (__stdcall *PGetAxisDirection) (int lLSID, int *plXD, int *plYD, int *plZD, int *plAD);
typedef int (__stdcall *PGetCalibOffset) (int lLSID, double *pdX, double *pdY, double *pdZ, double *pdR);
typedef int (__stdcall *PGetRMOffset) (int lLSID, double *pdX, double *pdY, double *pdZ, double *pdR);
typedef int (__stdcall *PGetCalibrateDir) (int lLSID, int *plXD, int *plYD, int *plZD, int *plAD);
typedef int (__stdcall *PSetCalibBackSpeed) (int lLSID, int lSpeed);
typedef int (__stdcall *PGetCalibBackSpeed) (int lLSID, int *plSpeed);
typedef int (__stdcall *PSetRefSpeed) (int lLSID, int lSpeed);
typedef int (__stdcall *PGetRefSpeed) (int lLSID, int *plSpeed);
typedef int (__stdcall *PSetPowerAmplifier) (int lLSID, BOOL bAmplifier);
typedef int (__stdcall *PGetPowerAmplifier) (int lLSID, BOOL *pbAmplifier);
typedef int (__stdcall *PSetMotorTablePatch) (int lLSID, BOOL bActive);
typedef int (__stdcall *PGetMotorTablePatch) (int lLSID, BOOL *pbActive);
typedef int (__stdcall *PSetJoystickFilter) (int lLSID, BOOL bActive);
typedef int (__stdcall *PGetJoystickFilter) (int lLSID, BOOL *pbActive);
typedef int (__stdcall *PSetStopPolarity) (int lLSID, BOOL bHighActiv);
typedef int (__stdcall *PGetStopPolarity) (int lLSID, BOOL *pbHighActiv);
typedef int (__stdcall *PSetVLevel) (int lLSID, int lVRegion, double dDownLevel, double dUppLevel);
typedef int (__stdcall *PGetVLevel) (int lLSID, int lVRegion, double *pdDownLevel, double *pdUppLevel);
typedef int (__stdcall *PSetStopAccel) (int lLSID, double dXD, double dYD, double dZD, double dAD);
typedef int (__stdcall *PGetStopAccel) (int lLSID, double *pdXD, double *pdYD, double *pdZD, double *pdAD);
typedef int (__stdcall *PGetVersionStrInfo) (int lLSID, char *pcVersInfo, int lMaxLen);
typedef int (__stdcall *PGetStatusLimit) (int lLSID, char *pcLimit, int lMaxLen);
typedef int (__stdcall *PGetSecurityErr) (int lLSID, DWORD *pdwValue);
typedef int (__stdcall *PGetSecurityStatus) (int lLSID, DWORD *pdwValue);
typedef int (__stdcall *PGetDelay) (int lLSID, int *plDelay);
typedef int (__stdcall *PGetDistance) (int lLSID, double *pdX, double *pdY, double *pdZ, double *pdR);
typedef int (__stdcall *PClearPos) (int lLSID, int lFlags);
typedef int (__stdcall *PSetDigJoySpeed) (int lLSID, double dX, double dY, double dZ, double dR);
typedef int (__stdcall *PGetDigJoySpeed) (int lLSID, double *pdX, double *pdY, double *pdZ, double *pdR);
typedef int (__stdcall *PGetJoystickDir) (int lLSID, int *plXD, int *plYD, int *plZD, int *plRD);
typedef int (__stdcall *PGetJoystick) (int lLSID, BOOL *pbJoystickOn, BOOL *pbManual, BOOL *pbPositionCount, BOOL *pbEncoder);
typedef int (__stdcall *PGetJoystickWindow) (int lLSID, int *plAValue);
typedef int (__stdcall *PGetHandWheel) (int lLSID, BOOL *pbHandWheelOn, BOOL *pbPositionCount, BOOL *pbEncoder);
typedef int (__stdcall *PGetBPZ) (int lLSID, int *plAValue);
typedef int (__stdcall *PGetBPZTrackballFactor) (int lLSID, double *pdAValue);
typedef int (__stdcall *PGetBPZTrackballBackLash) (int lLSID, double *pdX, double *pdY, double *pdZ, double *pdR);
typedef int (__stdcall *PGetBPZJoyspeed) (int lLSID, int lAPar, double *pdAValue);
typedef int (__stdcall *PGetLimitControl) (int lLSID, int lAxis, BOOL *pbActive);
typedef int (__stdcall *PSetAutoLimitAfterCalibRM) (int lLSID, int lFlags);
typedef int (__stdcall *PGetAutoLimitAfterCalibRM) (int lLSID, int *plFlags);
typedef int (__stdcall *PGetSwitchPolarity) (int lLSID, int *plXP, int *plYP, int *plZP, int *plRP);
typedef int (__stdcall *PGetSwitchActive) (int lLSID, int *plXA, int *plYA, int *plZA, int *plRA);
typedef int (__stdcall *PGetTVRMode) (int lLSID, int *plXT, int *plYT, int *plZT, int *plRT);
typedef int (__stdcall *PGetFactorTVR) (int lLSID, double *pdX, double *pdY, double *pdZ, double *pdR);
typedef int (__stdcall *PSetTVROutMode) (int lLSID, int lXT, int lYT, int lZT, int lRT);
typedef int (__stdcall *PGetTVROutMode) (int lLSID, int *plXT, int *plYT, int *plZT, int *plRT);
typedef int (__stdcall *PSetTVROutResolution) (int lLSID, int lX, int lY, int lZ, int lR);
typedef int (__stdcall *PGetTVROutResolution) (int lLSID, int *plX, int *plY, int *plZ, int *plR);
typedef int (__stdcall *PSetTVROutPitch) (int lLSID, double dX, double dY, double dZ, double dR);
typedef int (__stdcall *PGetTVROutPitch) (int lLSID, double *pdX, double *pdY, double *pdZ, double *pdR);
typedef int (__stdcall *PSetVelTVRO) (int lLSID, double dX, double dY, double dZ, double dR);
typedef int (__stdcall *PGetVelTVRO) (int lLSID, double *pdX, double *pdY, double *pdZ, double *pdR);
typedef int (__stdcall *PSetAccelTVRO) (int lLSID, double dX, double dY, double dZ, double dR);
typedef int (__stdcall *PGetAccelTVRO) (int lLSID, double *pdX, double *pdY, double *pdZ, double *pdR);
typedef int (__stdcall *PSetVelSingleAxisTVRO) (int lLSID, int lAxis, double dVel);
typedef int (__stdcall *PSetAccelSingleAxisTVRO) (int lLSID, int lAxis, double dAccel);
typedef int (__stdcall *PSetPosTVRO) (int lLSID, double dX, double dY, double dZ, double dR);
typedef int (__stdcall *PGetPosTVRO) (int lLSID, double *pdX, double *pdY, double *pdZ, double *pdR);
typedef int (__stdcall *PMoveAbsTVRO) (int lLSID, double dX, double dY, double dZ, double dR, BOOL bWait);
typedef int (__stdcall *PMoveRelTVRO) (int lLSID, double dX, double dY, double dZ, double dR, BOOL bWait);
typedef int (__stdcall *PMoveRelTVROSingleAxis) (int lLSID, int lAxis, double dValue, BOOL bWait);
typedef int (__stdcall *PMoveAbsTVROSingleAxis) (int lLSID, int lAxis, double dValue, BOOL bWait);
typedef int (__stdcall *PGetStatusTVRO) (int lLSID, char *pcStat, int lMaxLen);
typedef int (__stdcall *PGetTargetWindow) (int lLSID, double *pdX, double *pdY, double *pdZ, double *pdR);
typedef int (__stdcall *PGetEncoderSingleAxis) (int lLSID, int lAxis, int *plEncoderType, double *pdPeriod, int *plRef);
typedef int (__stdcall *PSetEncoderSingleAxis) (int lLSID, int lAxis, int lEncoderType, double dPeriod, int lRef);
typedef int (__stdcall *PGetEncoderPeriod) (int lLSID, double *pdX, double *pdY, double *pdZ, double *pdR);
typedef int (__stdcall *PGetEncoderRefSignal) (int lLSID, int *plXR, int *plYR, int *plZR, int *plRR);
typedef int (__stdcall *PGetEncoderPosition) (int lLSID, BOOL *pbValue);
typedef int (__stdcall *PGetEncoderActive) (int lLSID, int *plFlags);
typedef int (__stdcall *PGetController) (int lLSID, int *plXC, int *plYC, int *plZC, int *plRC);
typedef int (__stdcall *PGetControllerCall) (int lLSID, int *plCtrCall);
typedef int (__stdcall *PGetControllerSteps) (int lLSID, double *pdX, double *pdY, double *pdZ, double *pdR);
typedef int (__stdcall *PGetControllerFactor) (int lLSID, double *pdX, double *pdY, double *pdZ, double *pdR);
typedef int (__stdcall *PGetControllerFactorSingleAxis) (int lLSID, int lAxis, double *pdFactor1, double *pdFactor2);
typedef int (__stdcall *PGetControllerTWDelay) (int lLSID, int *plCtrTWDelay);
typedef int (__stdcall *PGetControllerTWDelaySingleAxis) (int lLSID, int lAxis, int *plCtrTWDelay);
typedef int (__stdcall *PGetControllerTimeout) (int lLSID, int *plACtrTimeout);
typedef int (__stdcall *PSetCtrFastMoveOn) (int lLSID);
typedef int (__stdcall *PSetCtrFastMoveOff) (int lLSID);
typedef int (__stdcall *PGetCtrFastMove) (int lLSID, BOOL *pbActive);
typedef int (__stdcall *PClearCtrFastMoveCounter) (int lLSID);
typedef int (__stdcall *PGetCtrFastMoveCounter) (int lLSID, int *plXC, int *plYC, int *plZC, int *plRC);
typedef int (__stdcall *PClearEncoder) (int lLSID, int lAxis);
typedef int (__stdcall *PGetEncoder) (int lLSID, double *pdXP, double *pdYP, double *pdZP, double *pdRP);
typedef int (__stdcall *PGetTrigger) (int lLSID, BOOL *pbATrigger);
typedef int (__stdcall *PGetTriggerPar) (int lLSID, int *plAxis, int *plMode, int *plSignal, double *pdDistance);
typedef int (__stdcall *PGetTrigCount) (int lLSID, int *plValue);

typedef int (__stdcall *PGetTriggerAxis) (int lLSID, int *plAxis);
typedef int (__stdcall *PGetTriggerMode) (int lLSID, int *plMode);
typedef int (__stdcall *PGetTriggerSignalLength) (int lLSID, int *plSignal);
typedef int (__stdcall *PGetTriggerDistance) (int lLSID, double *pdDistance);
typedef int (__stdcall *PGetTriggerCompensation) (int lLSID, int *plCompensation);
typedef int (__stdcall *PGetTriggerEncoder) (int lLSID, int *plEncoder);
typedef int (__stdcall *PGetTriggerFrequency) (int lLSID, double *pdFrequency);
typedef int (__stdcall *PGetTriggerRange) (int lLSID, double *pdStartPos, double *pdEndPos, int *plNumberOfTriggerPulses);
typedef int (__stdcall *PGetTriggerOutput) (int lLSID, int *plOutput);
typedef int (__stdcall *PGetTriggerPositionList) (int lLSID, int lIndex, double *pdPos);
typedef int (__stdcall *PGetTriggerPositionListIndex) (int lLSID, int *plIndex);
typedef int (__stdcall *PGetTriggerPositionListEntries) (int lLSID, int *plNumberOfEntries);
typedef int (__stdcall *PGetTriggerLevel) (int lLSID, int *plLevel);
typedef int (__stdcall *PGet2ndTriggerDelay) (int lLSID, double *pdDelay);
typedef int (__stdcall *PGet2ndTriggerWidth) (int lLSID, double *pdWidth);
typedef int (__stdcall *PGet2ndTriggerFrequency) (int lLSID, double *pdFrequency);

typedef int (__stdcall *PSetTVRInPulse) (int lLSID, int lAxis, BOOL bDirection);
typedef int (__stdcall *PGetSnapshot) (int lLSID, BOOL *pbASnapshot);
typedef int (__stdcall *PSetSnapshotFilter) (int lLSID, int lTime);
typedef int (__stdcall *PGetSnapshotFilter) (int lLSID, int *plTime);
typedef int (__stdcall *PGetSnapshotPar) (int lLSID, BOOL *pbHigh, BOOL *pbAutoMode);
typedef int (__stdcall *PGetLimit) (int lLSID, int lAxis, double *pdMinRange, double *pdMaxRange);
typedef int (__stdcall *PJoyChangeAxis) (int lLSID, BOOL bValue);
typedef int (__stdcall *PGetJoyChangeAxis) (int lLSID, BOOL *pbValue);
typedef int (__stdcall *PSetSyncZA) (int lLSID, BOOL bValue);
typedef int (__stdcall *PGetSyncZA) (int lLSID, BOOL *pbValue);
typedef int (__stdcall *PGetKey) (int lLSID, BOOL *pbKey1, BOOL *pbKey2, BOOL *pbKey3, BOOL *pbKey4);
typedef int (__stdcall *PGetKeyLatch) (int lLSID, BOOL *pbKey1, BOOL *pbKey2, BOOL *pbKey3, BOOL *pbKey4);
typedef int (__stdcall *PClearKeyLatch) (int lLSID, int lKey);
typedef int (__stdcall *PSetZwTravel) (int lLSID, int lIndex, double dDistance);
typedef int (__stdcall *PGetZwTravel) (int lLSID, int lIndex, double *pdDistance);
typedef int (__stdcall *PCreateLSID) (int *plLSID);
typedef int (__stdcall *PFreeLSID) (int lLSID);
typedef int (__stdcall *PSetSwitchType) (int lLSID, int lXP, int lYP, int lZP, int lAP);
typedef int (__stdcall *PGetSwitchType) (int lLSID, int *plXP, int *plYP, int *plZP, int *plRP);
typedef int (__stdcall *PSetBlSmoothSingleAxis) (int lLSID, int lAxis, int lBlSmooth);
typedef int (__stdcall *PGetBlSmoothSingleAxis) (int lLSID, int lAxis, int *plBlSmooth);
typedef int (__stdcall *PSetMotorSteps) (int lLSID, int lX, int lY, int lZ, int lR);
typedef int (__stdcall *PGetMotorSteps) (int lLSID, int *lX, int *lY, int *lZ, int *lR);
typedef int (__stdcall *PSetAccelFunc) (int lLSID, int lX, int lY, int lZ, int lR);
typedef int (__stdcall *PGetAccelFunc) (int lLSID, int *lX, int *lY, int *lZ, int *lR);
typedef int (__stdcall *PClearSnapshotPosArray) (int lLSID);
typedef int (__stdcall *PSetSnapshotPosArray) (int lLSID, int lIndex, double dX, double dY, double dZ, double dA);
typedef int (__stdcall *PSetSnapshotIndex) (int lLSID, int lIndex);
typedef int (__stdcall *PGetSnapshotIndex) (int lLSID, int *plIndex);
typedef int (__stdcall *PSetSnapshotMode) (int lLSID, int lMode);
typedef int (__stdcall *PGetSnapshotMode) (int lLSID, int *plMode);

typedef int (__stdcall *PEject) (int lLSID, int maga, int keep);
typedef int (__stdcall *PInsert) (int lLSID);
typedef int (__stdcall *PSlideSeated) (int lLSID, int maga, int slot, int *status);
typedef int (__stdcall *PMagazinSeated) (int lLSID, int maga, int *status);
typedef int (__stdcall *PGetGripper) (int lLSID, int *c1, int *s1, int *c2, int *s2);
typedef int (__stdcall *PSetGripper) (int lLSID, int c1, int s1, int c2, int s2);
typedef int (__stdcall *PGetSlide) (int lLSID, int maga, int slot, int mode);
typedef int (__stdcall *PPutSlide) (int lLSID, int maga, int slot);
typedef int (__stdcall *PSetPrioHandlerPos) (int lLSID, int php); 
typedef int (__stdcall *PGetPrioHandlerPos) (int lLSID, int *php); 
typedef int (__stdcall *PGetClipType) (int lLSID, int *plClipType);

typedef int (__stdcall *PGetTangoVersion) (int lLSID, char *pcVers, int lMaxLen);
typedef int (__stdcall *PGetTray) (int lLSID, int slot, int mode);
typedef int (__stdcall *PPutTray) (int lLSID, int slot);
typedef int (__stdcall *PGetRFID) (int lLSID, int slot, int bank, int *lcode);
typedef int (__stdcall *PSetRFID) (int lLSID, int slot, int bank, int lcode); 
typedef int (__stdcall *PGetTraySN) (int lLSID, int slot, int *lTraySN); 
typedef int (__stdcall *PGetTrayType) (int lLSID, int slot, int *lTrayType); 
typedef int (__stdcall *PSetTrayType) (int lLSID, int slot, int lTrayType); 
typedef int (__stdcall *PGetLoaderType) (int lLSID, int *lLoaderType); 
typedef int (__stdcall *PGetNumberOfRows) (int lLSID, int *lRows); 
typedef int (__stdcall *PGetNumberOfColumns) (int lLSID, int *lCols); 
typedef int (__stdcall *PGetNumberOfMagazines) (int lLSID, int *lMags);
typedef int (__stdcall *PGetNumberOfSlots) (int lLSID, int *pNumberOfSlots);

typedef int (__stdcall *PSetLabelLED) (int lLSID, int lOn);
typedef int (__stdcall *PGetLabelLED) (int lLSID, int *plOn);
typedef int (__stdcall *PSetCabinLED) (int lLSID, int lOn);
typedef int (__stdcall *PGetCabinLED) (int lLSID, int *plOn);

typedef int(__stdcall *PXpos3MoveAbsSingleAxis) (int lLSID, int lAxis, double dValue, BOOL bWait);
typedef int(__stdcall *PXpos3MoveRelSingleAxis) (int lLSID, int lAxis, double dValue, BOOL bWait);
typedef int(__stdcall *PXpos3SetPosSingleAxis) (int lLSID, int lAxis, double dValue);
typedef int(__stdcall *PXpos3GetPosSingleAxis) (int lLSID, int lAxis, double *dValue);
typedef int(__stdcall *PXpos3SetVelSingleAxis) (int lLSID, int lAxis, double dValue);
typedef int(__stdcall *PXpos3GetVelSingleAxis) (int lLSID, int lAxis, double *dValue);
typedef int(__stdcall *PXpos3SetAccelSingleAxis) (int lLSID, int lAxis, double dValue);
typedef int(__stdcall *PXpos3GetAccelSingleAxis) (int lLSID, int lAxis, double *dValue);
typedef int(__stdcall *PXpos3SetStopAccelSingleAxis) (int lLSID, int lAxis, double dValue);
typedef int(__stdcall *PXpos3GetStopAccelSingleAxis) (int lLSID, int lAxis, double *dValue);
typedef int(__stdcall *PXpos3SetSpeedSingleAxis) (int lLSID, int lAxis, double dValue);
typedef int(__stdcall *PXpos3GetSpeedSingleAxis) (int lLSID, int lAxis, double *dValue);
typedef int(__stdcall *PXpos3SetPitchSingleAxis) (int lLSID, int lAxis, double dValue);
typedef int(__stdcall *PXpos3GetPitchSingleAxis) (int lLSID, int lAxis, double *dValue);
typedef int(__stdcall *PXpos3SetGearSingleAxis) (int lLSID, int lAxis, double dValue);
typedef int(__stdcall *PXpos3GetGearSingleAxis) (int lLSID, int lAxis, double *dValue);
typedef int(__stdcall *PXpos3SetAxisDirSingleAxis) (int lLSID, int lAxis, int lValue);
typedef int(__stdcall *PXpos3GetAxisDirSingleAxis) (int lLSID, int lAxis, int *plValue);
typedef int(__stdcall *PXpos3AbortSingleAxis) (int lLSID, int lAxis);
typedef int(__stdcall *PXpos3GetStatusAxisSingleAxis) (int lLSID, int lAxis, int *plState);
typedef int(__stdcall *PXpos3GetTemp) (int lLSID, double *dValue);
typedef int(__stdcall *PXpos3GetTempMCU) (int lLSID, double *dValue);
typedef int(__stdcall *PXpos3GetError) (int lLSID, int *plValue);
typedef int(__stdcall *PXpos3ClearError) (int lLSID);
typedef int(__stdcall *PXpos3GetStatusBits) (int lLSID, int *plValue);


class CTango
{

    int         m_DLLResultat;  // DLL-Zugriff ok
    HINSTANCE   m_Tango;        // Handle auf Dll
    int         m_LSID;

        // Zeiger Funktion in DLL
        PConnect m_pConnect;
        PConnectSimple m_pConnectSimple;
        PConnectEx m_pConnectEx;
        PDisconnect m_pDisconnect;
        PGetDLLVersionString m_pGetDLLVersionString;
        PLoadConfig m_pLoadConfig;
        PSaveConfig m_pSaveConfig;
        PReadControlPars m_pReadControlPars;
        PSetCtrlPars m_pSetCtrlPars;
        PGetStageSN m_pGetStageSN;
        PIsVel m_pIsVel;
        PIsVelSingleAxis m_pIsVelSingleAxis;
        PMoveAbs m_pMoveAbs;
        PMoveRel m_pMoveRel;
        PMoveEx m_pMoveEx;
        PGo m_pGo;
        PGoSingleAxis m_pGoSingleAxis;
        PGoEx m_pGoEx;
        PCalibrate m_pCalibrate;
        PRMeasure m_pRMeasure;
        PSetPitch m_pSetPitch;
        PSetPos m_pSetPos;
        PSetActiveAxes m_pSetActiveAxes;
        PSetVel m_pSetVel;
        PSetSecVel m_pSetSecVel;
        PSetAccel m_pSetAccel;
        PSetReduction m_pSetReduction;
        PSetDelay m_pSetDelay;
        PSetSwitchPolarity m_pSetSwitchPolarity;
        PSetSwitchActive m_pSetSwitchActive;
        PSetJoystickOn m_pSetJoystickOn;
        PSetJoystickOff m_pSetJoystickOff;
        PSoftwareReset m_pSoftwareReset;
        PClearProtocolWindow m_pClearProtocolWindow;
        PSetDigitalOutput m_pSetDigitalOutput;
        PSetDigitalOutputs m_pSetDigitalOutputs;
        PGetDigitalInputs m_pGetDigitalInputs;
        PSetDigitalOutputE m_pSetDigitalOutputE;
        PSetDigitalOutputsE m_pSetDigitalOutputsE;
        PGetDigitalInputsE m_pGetDigitalInputsE;
        PSetAuxDigitalOutput m_pSetAuxDigitalOutput;
        PGetAuxDigitalInput m_pGetAuxDigitalInput;
        PSetAnalogOutput m_pSetAnalogOutput;
        PSetAnalogOutputMode m_pSetAnalogOutputMode;
        PGetAnalogOutputMode m_pGetAnalogOutputMode;
        PSetLedBright m_pSetLedBright;
        PGetAnalogInput m_pGetAnalogInput;
        PGetHdiKeys m_pGetHdiKeys;
        PGetSmHdiButton m_pGetSmHdiButton;
        PSetSmHdiButton m_pSetSmHdiButton;
        PSetHdiSpeedIndex m_pSetHdiSpeedIndex;
        PGetHdiSpeedIndex m_pGetHdiSpeedIndex;
        PSetHdiSpeedIndexSingleAxis m_pSetHdiSpeedIndexSingleAxis;
        PGetHdiSpeedIndexSingleAxis m_pGetHdiSpeedIndexSingleAxis;
        PSetHwFactor m_pSetHwFactor;
        PSetHwFactorB m_pSetHwFactorB;
        PGetHwFactor m_pGetHwFactor;
        PGetHwFactorB m_pGetHwFactorB;
        PSetHwFactorSingleAxis m_pSetHwFactorSingleAxis;
        PSetHwFactorBSingleAxis m_pSetHwFactorBSingleAxis;
        PGetHwFactorSingleAxis m_pGetHwFactorSingleAxis;
        PGetHwFactorBSingleAxis m_pGetHwFactorBSingleAxis;
        PSetLimit m_pSetLimit;
        PSetLimitControl m_pSetLimitControl;
        PGetPos m_pGetPos;
        PGetStatus m_pGetStatus;
        PGetEncoderMask m_pGetEncoderMask;
        PStopAxes m_pStopAxes;
        PStopAxesEx m_pStopAxesEx;
        PSetAbortFlag m_pSetAbortFlag;
        PMoveRelSingleAxis m_pMoveRelSingleAxis;
        PMoveAbsSingleAxis m_pMoveAbsSingleAxis;
        PSetControlPars m_pSetControlPars;
        PSetMotorCurrent m_pSetMotorCurrent;
        PSetVelSingleAxis m_pSetVelSingleAxis;
        PSetSecVelSingleAxis m_pSetSecVelSingleAxis;
        PSetAccelSingleAxis m_pSetAccelSingleAxis;
        PCalibrateEx m_pCalibrateEx;
        PRMeasureEx m_pRMeasureEx;
        PSetShowProt m_pSetShowProt;
        PGetAnalogInputs2 m_pGetAnalogInputs2;
        PSendString m_pSendString;
        PSetSpeedPoti m_pSetSpeedPoti;
        PSetTVRMode m_pSetTVRMode;
        PSetAutoStatus m_pSetAutoStatus;
        PGetAutoStatus m_pGetAutoStatus;
        PGetStatusAxis m_pGetStatusAxis;
        PGetStA m_pGetStA;
        PSetDigIO_Off m_pSetDigIO_Off;
        PSetDigIO_Polarity m_pSetDigIO_Polarity;
        PSetDigIO_EmergencyStop m_pSetDigIO_EmergencyStop;
        PSetDigIO_Distance m_pSetDigIO_Distance;
        PSetDimensions m_pSetDimensions;
        PSetResolution m_pSetResolution;
        PMoveRelShort m_pMoveRelShort;
        PSetEncoderPeriod m_pSetEncoderPeriod;
        PSetJoystickDir m_pSetJoystickDir;
        PSetEncoderMask m_pSetEncoderMask;
        PSetGear m_pSetGear;
        PSetHandWheelOn m_pSetHandWheelOn;
        PSetHandWheelOff m_pSetHandWheelOff;
        PSetFactorTVR m_pSetFactorTVR;
        PSetTargetWindow m_pSetTargetWindow;
        PSetController m_pSetController;
        PSetControllerCall m_pSetControllerCall;
        PSetControllerSteps m_pSetControllerSteps;
        PSetControllerFactor m_pSetControllerFactor;
        PSetControllerFactorSingleAxis m_pSetControllerFactorSingleAxis;
        PSetControllerTWDelay m_pSetControllerTWDelay;
		PSetControllerTWDelaySingleAxis m_pSetControllerTWDelaySingleAxis;
        PSetEncoderRefSignal m_pSetEncoderRefSignal;
        PSetEncoderPosition m_pSetEncoderPosition;
        PGetVersionStr m_pGetVersionStr;
        PGetError m_pGetError;
        PGetErrorString m_pGetErrorString;
        PGetPosSingleAxis m_pGetPosSingleAxis;
	PSetPosSingleAxis m_pSetPosSingleAxis;
        PSetDistance m_pSetDistance;
        PGetPosEx m_pGetPosEx;
        PSetShowCmdList m_pSetShowCmdList;
        PSetWriteLogText m_pSetWriteLogText;
        PSetControllerTimeout m_pSetControllerTimeout;
        PSetEncoderActive m_pSetEncoderActive;
        PGetSnapshotCount m_pGetSnapshotCount;
        PSetSnapshotCount m_pSetSnapshotCount;
        PGetSnapshotPos m_pGetSnapshotPos;
        PSetCorrTblOff m_pSetCorrTblOff;
        PSetCorrTblOn m_pSetCorrTblOn;
        PSetFactorMode m_pSetFactorMode;
        PSetSnapshot m_pSetSnapshot;
        PSetSnapshotPar m_pSetSnapshotPar;
        PSetTrigger m_pSetTrigger;
        PSetTriggerPar m_pSetTriggerPar;
        PSetTrigCount m_pSetTrigCount;

		PSetTriggerAxis m_pSetTriggerAxis;
		PSetTriggerMode m_pSetTriggerMode;
		PSetTriggerSignalLength m_pSetTriggerSignalLength;
		PSetTriggerDistance m_pSetTriggerDistance;
		PSetTriggerCompensation m_pSetTriggerCompensation;
		PSetTriggerEncoder m_pSetTriggerEncoder;
		PSetTriggerFrequency m_pSetTriggerFrequency;
		PSetTriggerRange m_pSetTriggerRange;
		PSetTriggerOutput m_pSetTriggerOutput;
		PSetTriggerPositionList m_pSetTriggerPositionList;
		PSetTriggerPositionListIndex m_pSetTriggerPositionListIndex;
		PSetTriggerPositionListEntries m_pSetTriggerPositionListEntries;
		PSetTriggerLevel m_pSetTriggerLevel;
		PSet2ndTriggerDelay m_pSet2ndTriggerDelay;
		PSet2ndTriggerWidth m_pSet2ndTriggerWidth;
		PSet2ndTriggerFrequency m_pSet2ndTriggerFrequency;

        PSetLanguage m_pSetLanguage;
        PGetSwitches m_pGetSwitches;
        PGetSerialNr m_pGetSerialNr;
        PSetCalibOffset m_pSetCalibOffset;
        PSetRMOffset m_pSetRMOffset;
        PGetSnapshotPosArray m_pGetSnapshotPosArray;
        PSetAxisDirection m_pSetAxisDirection;
        PSetCalibrateDir m_pSetCalibrateDir;
        PLStepSave m_pLStepSave;
        PSetBPZ m_pSetBPZ;
        PSetBPZTrackballFactor m_pSetBPZTrackballFactor;
        PSetBPZTrackballBackLash m_pSetBPZTrackballBackLash;
        PSetBPZJoyspeed m_pSetBPZJoyspeed;
        PSetJoystickWindow m_pSetJoystickWindow;
        PSetCurrentDelay m_pSetCurrentDelay;
        PWaitForAxisStop m_pWaitForAxisStop;
        PSetProcessMessagesProc m_pSetProcessMessagesProc;
        PSendStringPosCmd m_pSendStringPosCmd;
        PSetWriteLogTextFN m_pSetWriteLogTextFN;
        PEnableCommandRetry m_pEnableCommandRetry;
        PSetXYAxisComp m_pSetXYAxisComp;
        PGetVersionStrDet m_pGetVersionStrDet;
        PSetDllNumOfAxes m_pSetDllNumOfAxes;
        PSetCommandTimeout m_pSetCommandTimeout;
        PGetCommandTimeout m_pGetCommandTimeout;
        PSetExtValue m_pSetExtValue;
        PFlushBuffer m_pFlushBuffer;
        PGetEEPRomValue m_pGetEEPRomValue;
        PSetEEPRomValue m_pSetEEPRomValue;
        PGetXYAxisComp m_pGetXYAxisComp;
        PGetDimensions m_pGetDimensions;
        PGetResolution m_pGetResolution;
        PGetPitch m_pGetPitch;
        PGetGear m_pGetGear;
        PGetVel m_pGetVel;
        PGetAccelFuncSingleAxis m_pGetAccelFuncSingleAxis;
        PSetAccelFuncSingleAxis m_pSetAccelFuncSingleAxis;
        PGetJoystickDirSingleAxis m_pGetJoystickDirSingleAxis;
        PSetJoystickDirSingleAxis m_pSetJoystickDirSingleAxis;
        PGetDigJoySpeedSingleAxis m_pGetDigJoySpeedSingleAxis;
        PSetDigJoySpeedSingleAxis m_pSetDigJoySpeedSingleAxis;
        PGetDimensionsSingleAxis m_pGetDimensionsSingleAxis;
        PSetDimensionsSingleAxis m_pSetDimensionsSingleAxis;
        PGetEncoderPeriodSingleAxis m_pGetEncoderPeriodSingleAxis;
        PSetEncoderPeriodSingleAxis m_pSetEncoderPeriodSingleAxis;
        PGetPitchSingleAxis m_pGetPitchSingleAxis;
        PSetPitchSingleAxis m_pSetPitchSingleAxis;
        PGetGearSingleAxis m_pGetGearSingleAxis;
        PSetGearSingleAxis m_pSetGearSingleAxis;
        PGetStopAccelSingleAxis m_pGetStopAccelSingleAxis;
        PSetStopAccelSingleAxis m_pSetStopAccelSingleAxis;
        PGetMotorCurrentSingleAxis m_pGetMotorCurrentSingleAxis;
        PSetMotorCurrentSingleAxis m_pSetMotorCurrentSingleAxis;
        PGetReductionSingleAxis m_pGetReductionSingleAxis;
        PSetReductionSingleAxis m_pSetReductionSingleAxis;
        PGetTargetWindowSingleAxis m_pGetTargetWindowSingleAxis;
        PSetTargetWindowSingleAxis m_pSetTargetWindowSingleAxis;
        PGetMotorStepsSingleAxis m_pGetMotorStepsSingleAxis;
        PSetMotorStepsSingleAxis m_pSetMotorStepsSingleAxis;
        PGetCurrentDelaySingleAxis m_pGetCurrentDelaySingleAxis;
        PSetCurrentDelaySingleAxis m_pSetCurrentDelaySingleAxis;
        PGetVelSingleAxis m_pGetVelSingleAxis;
        PGetSecVelSingleAxis m_pGetSecVelSingleAxis;
        PGetAccelSingleAxis m_pGetAccelSingleAxis;
        PGetSecVel m_pGetSecVel;
        PGetAccel m_pGetAccel;
        PSetVelFac m_pSetVelFac;
        PGetVelFac m_pGetVelFac;
        PGetSpeedPoti m_pGetSpeedPoti;
        PGetMotorCurrent m_pGetMotorCurrent;
        PGetReduction m_pGetReduction;
        PGetCurrentDelay m_pGetCurrentDelay;
        PSetOutFuncLev m_pSetOutFuncLev;
        PGetOutFuncLev m_pGetOutFuncLev;
        PGetActiveAxes m_pGetActiveAxes;
        PGetAxisDirection m_pGetAxisDirection;
        PGetCalibOffset m_pGetCalibOffset;
        PGetRMOffset m_pGetRMOffset;
        PGetCalibrateDir m_pGetCalibrateDir;
        PSetCalibBackSpeed m_pSetCalibBackSpeed;
        PGetCalibBackSpeed m_pGetCalibBackSpeed;
        PSetRefSpeed m_pSetRefSpeed;
        PGetRefSpeed m_pGetRefSpeed;
        PSetPowerAmplifier m_pSetPowerAmplifier;
        PGetPowerAmplifier m_pGetPowerAmplifier;
        PSetMotorTablePatch m_pSetMotorTablePatch;
        PGetMotorTablePatch m_pGetMotorTablePatch;
        PSetJoystickFilter m_pSetJoystickFilter;
        PGetJoystickFilter m_pGetJoystickFilter;
        PSetStopPolarity m_pSetStopPolarity;
        PGetStopPolarity m_pGetStopPolarity;
        PSetVLevel m_pSetVLevel;
        PGetVLevel m_pGetVLevel;
        PSetStopAccel m_pSetStopAccel;
        PGetStopAccel m_pGetStopAccel;
        PGetVersionStrInfo m_pGetVersionStrInfo;
        PGetStatusLimit m_pGetStatusLimit;
        PGetSecurityErr m_pGetSecurityErr;
        PGetSecurityStatus m_pGetSecurityStatus;
        PGetDelay m_pGetDelay;
        PGetDistance m_pGetDistance;
        PClearPos m_pClearPos;
        PSetDigJoySpeed m_pSetDigJoySpeed;
        PGetDigJoySpeed m_pGetDigJoySpeed;
        PGetJoystickDir m_pGetJoystickDir;
        PGetJoystick m_pGetJoystick;
        PGetJoystickWindow m_pGetJoystickWindow;
        PGetHandWheel m_pGetHandWheel;
        PGetBPZ m_pGetBPZ;
        PGetBPZTrackballFactor m_pGetBPZTrackballFactor;
        PGetBPZTrackballBackLash m_pGetBPZTrackballBackLash;
        PGetBPZJoyspeed m_pGetBPZJoyspeed;
        PGetLimitControl m_pGetLimitControl;
        PSetAutoLimitAfterCalibRM m_pSetAutoLimitAfterCalibRM;
        PGetAutoLimitAfterCalibRM m_pGetAutoLimitAfterCalibRM;
        PGetSwitchPolarity m_pGetSwitchPolarity;
        PGetSwitchActive m_pGetSwitchActive;
        PGetTVRMode m_pGetTVRMode;
        PGetFactorTVR m_pGetFactorTVR;
        PSetTVROutMode m_pSetTVROutMode;
        PGetTVROutMode m_pGetTVROutMode;
        PSetTVROutResolution m_pSetTVROutResolution;
        PGetTVROutResolution m_pGetTVROutResolution;
        PSetTVROutPitch m_pSetTVROutPitch;
        PGetTVROutPitch m_pGetTVROutPitch;
        PSetVelTVRO m_pSetVelTVRO;
        PGetVelTVRO m_pGetVelTVRO;
        PSetAccelTVRO m_pSetAccelTVRO;
        PGetAccelTVRO m_pGetAccelTVRO;
        PSetVelSingleAxisTVRO m_pSetVelSingleAxisTVRO;
        PSetAccelSingleAxisTVRO m_pSetAccelSingleAxisTVRO;
        PSetPosTVRO m_pSetPosTVRO;
        PGetPosTVRO m_pGetPosTVRO;
        PMoveAbsTVRO m_pMoveAbsTVRO;
        PMoveRelTVRO m_pMoveRelTVRO;
        PMoveRelTVROSingleAxis m_pMoveRelTVROSingleAxis;
        PMoveAbsTVROSingleAxis m_pMoveAbsTVROSingleAxis;
        PGetStatusTVRO m_pGetStatusTVRO;
        PGetTargetWindow m_pGetTargetWindow;
        PGetEncoderSingleAxis m_pGetEncoderSingleAxis;
        PSetEncoderSingleAxis m_pSetEncoderSingleAxis;
        PGetEncoderPeriod m_pGetEncoderPeriod;
        PGetEncoderRefSignal m_pGetEncoderRefSignal;
        PGetEncoderPosition m_pGetEncoderPosition;
        PGetEncoderActive m_pGetEncoderActive;
        PGetController m_pGetController;
        PGetControllerCall m_pGetControllerCall;
        PGetControllerSteps m_pGetControllerSteps;
        PGetControllerFactor m_pGetControllerFactor;
        PGetControllerFactorSingleAxis m_pGetControllerFactorSingleAxis;
        PGetControllerTWDelay m_pGetControllerTWDelay;
        PGetControllerTWDelaySingleAxis m_pGetControllerTWDelaySingleAxis;
        PGetControllerTimeout m_pGetControllerTimeout;
        PSetCtrFastMoveOn m_pSetCtrFastMoveOn;
        PSetCtrFastMoveOff m_pSetCtrFastMoveOff;
        PGetCtrFastMove m_pGetCtrFastMove;
        PClearCtrFastMoveCounter m_pClearCtrFastMoveCounter;
        PGetCtrFastMoveCounter m_pGetCtrFastMoveCounter;
        PClearEncoder m_pClearEncoder;
        PGetEncoder m_pGetEncoder;
        PGetTrigger m_pGetTrigger;
        PGetTriggerPar m_pGetTriggerPar;
        PGetTrigCount m_pGetTrigCount;

        PGetTriggerAxis m_pGetTriggerAxis;
        PGetTriggerMode m_pGetTriggerMode;
        PGetTriggerSignalLength m_pGetTriggerSignalLength;
        PGetTriggerDistance m_pGetTriggerDistance;
        PGetTriggerCompensation m_pGetTriggerCompensation;
        PGetTriggerEncoder m_pGetTriggerEncoder;
        PGetTriggerFrequency m_pGetTriggerFrequency;
        PGetTriggerRange m_pGetTriggerRange;
        PGetTriggerOutput m_pGetTriggerOutput;
        PGetTriggerPositionList m_pGetTriggerPositionList;
        PGetTriggerPositionListIndex m_pGetTriggerPositionListIndex;
        PGetTriggerPositionListEntries m_pGetTriggerPositionListEntries;
        PGetTriggerLevel m_pGetTriggerLevel;
        PGet2ndTriggerDelay m_pGet2ndTriggerDelay;
        PGet2ndTriggerWidth m_pGet2ndTriggerWidth;
        PGet2ndTriggerFrequency m_pGet2ndTriggerFrequency;

        PSetTVRInPulse m_pSetTVRInPulse;
        PGetSnapshot m_pGetSnapshot;
        PSetSnapshotFilter m_pSetSnapshotFilter;
        PGetSnapshotFilter m_pGetSnapshotFilter;
        PGetSnapshotPar m_pGetSnapshotPar;
        PGetLimit m_pGetLimit;
        PJoyChangeAxis m_pJoyChangeAxis;
        PGetJoyChangeAxis m_pGetJoyChangeAxis;
        PSetSyncZA m_pSetSyncZA;
        PGetSyncZA m_pGetSyncZA;
        PGetKey m_pGetKey;
        PGetKeyLatch m_pGetKeyLatch;
        PClearKeyLatch m_pClearKeyLatch;
        PSetZwTravel m_pSetZwTravel;
        PGetZwTravel m_pGetZwTravel;
        PCreateLSID m_pCreateLSID;
        PFreeLSID m_pFreeLSID;
        PSetSwitchType m_pSetSwitchType;
        PGetSwitchType m_pGetSwitchType;
        PSetBlSmoothSingleAxis m_pSetBlSmoothSingleAxis;
        PGetBlSmoothSingleAxis m_pGetBlSmoothSingleAxis;
        PSetMotorSteps m_pSetMotorSteps;
        PGetMotorSteps m_pGetMotorSteps;
        PSetAccelFunc m_pSetAccelFunc;
        PGetAccelFunc m_pGetAccelFunc;
        PClearSnapshotPosArray m_pClearSnapshotPosArray;
        PSetSnapshotPosArray m_pSetSnapshotPosArray;
        PSetSnapshotIndex m_pSetSnapshotIndex;
        PGetSnapshotIndex m_pGetSnapshotIndex;
        PSetSnapshotMode m_pSetSnapshotMode;
        PGetSnapshotMode m_pGetSnapshotMode;

        PEject m_pEject;
        PInsert m_pInsert;
        PSlideSeated m_pSlideSeated;
        PMagazinSeated m_pMagazinSeated;
        PGetGripper m_pGetGripper;
        PSetGripper m_pSetGripper;
        PGetSlide m_pGetSlide;
        PPutSlide m_pPutSlide;
        PSetPrioHandlerPos m_pSetPrioHandlerPos;
        PGetPrioHandlerPos m_pGetPrioHandlerPos;
        PGetClipType m_pGetClipType;

        PGetTangoVersion m_pGetTangoVersion;
        PGetTray m_pGetTray;
        PPutTray m_pPutTray;
        PGetRFID m_pGetRFID;
        PSetRFID m_pSetRFID;
        PGetTraySN m_pGetTraySN;
        PGetTrayType m_pGetTrayType;
        PSetTrayType m_pSetTrayType;
        PGetLoaderType m_pGetLoaderType;
        PGetNumberOfRows m_pGetNumberOfRows;
        PGetNumberOfColumns m_pGetNumberOfColumns;
        PGetNumberOfMagazines m_pGetNumberOfMagazines;
        PGetNumberOfSlots m_pGetNumberOfSlots;

        PSetLabelLED m_pSetLabelLED;
        PGetLabelLED m_pGetLabelLED;
        PSetCabinLED m_pSetCabinLED;
        PGetCabinLED m_pGetCabinLED;

        PXpos3MoveAbsSingleAxis m_pXpos3MoveAbsSingleAxis;
        PXpos3MoveRelSingleAxis m_pXpos3MoveRelSingleAxis;
        PXpos3SetPosSingleAxis  m_pXpos3SetPosSingleAxis;
        PXpos3GetPosSingleAxis  m_pXpos3GetPosSingleAxis;
        PXpos3SetVelSingleAxis  m_pXpos3SetVelSingleAxis;
        PXpos3GetVelSingleAxis  m_pXpos3GetVelSingleAxis;
        PXpos3SetAccelSingleAxis  m_pXpos3SetAccelSingleAxis;
        PXpos3GetAccelSingleAxis  m_pXpos3GetAccelSingleAxis;
        PXpos3SetStopAccelSingleAxis  m_pXpos3SetStopAccelSingleAxis;
        PXpos3GetStopAccelSingleAxis  m_pXpos3GetStopAccelSingleAxis;
        PXpos3SetSpeedSingleAxis  m_pXpos3SetSpeedSingleAxis;
        PXpos3GetSpeedSingleAxis  m_pXpos3GetSpeedSingleAxis;
        PXpos3SetPitchSingleAxis  m_pXpos3SetPitchSingleAxis;
        PXpos3GetPitchSingleAxis  m_pXpos3GetPitchSingleAxis;
        PXpos3SetGearSingleAxis  m_pXpos3SetGearSingleAxis;
        PXpos3GetGearSingleAxis  m_pXpos3GetGearSingleAxis;
        PXpos3SetAxisDirSingleAxis  m_pXpos3SetAxisDirSingleAxis;
        PXpos3GetAxisDirSingleAxis  m_pXpos3GetAxisDirSingleAxis;
        PXpos3AbortSingleAxis  m_pXpos3AbortSingleAxis;
        PXpos3GetStatusAxisSingleAxis  m_pXpos3GetStatusAxisSingleAxis;
        PXpos3GetTemp  m_pXpos3GetTemp;
        PXpos3GetTempMCU  m_pXpos3GetTempMCU;
        PXpos3GetError  m_pXpos3GetError;
        PXpos3ClearError  m_pXpos3ClearError;
        PXpos3GetStatusBits  m_pXpos3GetStatusBits;




public:
			CTango();
			~CTango();

	int		GetDLLLoadResult() {return m_DLLResultat;}; // Funktion, ob Laden der DLL erfolgreich war.
	// sollte Wert 0 zurückgeben

	// Funktionen der Dll
        int Connect ();
        int ConnectSimple (int lAnInterfaceType, char *pcAComName, int lABaudRate, int lAShowProt);
        int ConnectEx (TLS_ControlInitPar *pAControlInitPar);
        int Disconnect ();
        int GetDLLVersionString (char *pcVers, int lMaxLen);
        int LoadConfig (char *pcFileName);
        int SaveConfig (char *pcFileName);
        int ReadControlPars (void);
        int SetCtrlPars (void);
        int GetStageSN (char *pcSN, int lMaxLen);
        int IsVel (double *pdX, double *pdY, double *pdZ, double *pdA);
        int IsVelSingleAxis (int lAxis, double *pdVel);
        int MoveAbs (double dX, double dY, double dZ, double dA, BOOL bWait);
        int MoveRel (double dX, double dY, double dZ, double dA, BOOL bWait);
        int MoveEx (double dX, double dY, double dZ, double dR, BOOL bRelative, BOOL bWait, int lAxisCount);
        int Go (double dX, double dY, double dZ, double dA);
        int GoSingleAxis (int lAxis, double dValue);
        int GoEx (double dX, double dY, double dZ, double dA, int lAxisCount);
        int Calibrate ();
        int RMeasure ();
        int SetPitch (double dX, double dY, double dZ, double dA);
        int SetPos (double dX, double dY, double dZ, double dA);
        int SetActiveAxes (int lFlags);
        int SetVel (double dX, double dY, double dZ, double dA);
        int SetSecVel (double dX, double dY, double dZ, double dA);
        int SetAccel (double dX, double dY, double dZ, double dA);
        int SetReduction (double dX, double dY, double dZ, double dA);
        int SetDelay (int lDelay);
        int SetSwitchPolarity (int lXP, int lYP, int lZP, int lAP);
        int SetSwitchActive (int lXA, int lYA, int lZA, int lAA);
        int SetJoystickOn (BOOL bPositionCount, BOOL bEncoder);
        int SetJoystickOff ();
        int SoftwareReset ();
        int ClearProtocolWindow ();
        int SetDigitalOutput (int lIndex, BOOL bValue);
        int SetDigitalOutputs (int lValue);
        int GetDigitalInputs (int *plValue);
        int SetDigitalOutputE (int lIndex, BOOL bValue);
        int SetDigitalOutputsE (int lValue);
        int GetDigitalInputsE (int *plValue);
        int SetAuxDigitalOutput (int lIndex, BOOL bValue);
        int GetAuxDigitalInput (int lIndex, BOOL *bValue);
        int SetAnalogOutput (int lIndex, int lValue);
        int SetAnalogOutputMode (int lIndex, int lValue);
        int GetAnalogOutputMode (int lIndex, int *plValue);
        int SetLedBright (double dBright);
        int GetAnalogInput (int lIndex, int *plValue);
        int GetHdiKeys (int *plKey1, int *plKey2, int *plKey3, int *plKey4);
        int GetSmHdiButton (int lButtonNr, char *pcFunction, int lMaxLen);
        int SetSmHdiButton (int lButtonNr, char *pcFunction);
        int SetHdiSpeedIndex (int lX, int lY, int lZ, int lA);
        int GetHdiSpeedIndex (int *plX, int *plY, int *plZ, int *plA);
        int SetHdiSpeedIndexSingleAxis (int lAxis, int lIndex);
        int GetHdiSpeedIndexSingleAxis (int lAxis, int *plIndex);
        int SetHwFactor (double dX, double dY, double dZ, double dA);
        int SetHwFactorB (double dX, double dY, double dZ, double dA);
        int GetHwFactor (double *pdX, double *pdY, double *pdZ, double *pdA);
        int GetHwFactorB (double *pdX, double *pdY, double *pdZ, double *pdA);
        int SetHwFactorSingleAxis (int lAxis, double dFactor);
        int SetHwFactorBSingleAxis (int lAxis, double dFactorB);
        int GetHwFactorSingleAxis (int lAxis, double *pdFactor);
        int GetHwFactorBSingleAxis (int lAxis, double *pdFactorB);
        int SetLimit (int lAxis, double dMinRange, double dMaxRange);
        int SetLimitControl (int lAxis, BOOL bActive);
        int GetPos (double *pdX, double *pdY, double *pdZ, double *pdA);
        int GetStatus (char *pcStat, int lMaxLen);
        int GetEncoderMask (int *plFlags);
        int StopAxes ();
        int StopAxesEx (int lFlags);
        int SetAbortFlag ();
        int MoveRelSingleAxis (int lAxis, double dValue, BOOL bWait);
        int MoveAbsSingleAxis (int lAxis, double dValue, BOOL bWait);
        int SetControlPars ();
        int SetMotorCurrent (double dX, double dY, double dZ, double dA);
        int SetVelSingleAxis (int lAxis, double dVel);
        int SetSecVelSingleAxis (int lAxis, double dVel);
        int SetAccelSingleAxis (int lAxis, double dAccel);
        int CalibrateEx (int lFlags);
        int RMeasureEx (int lFlags);
        int SetShowProt (int lShowProt);
        int GetAnalogInputs2 (int *plPT100, int *plMV, int *plV24);
        int SendString (char *pcStr, char *pcRet, int lMaxLen, BOOL bReadLine, int lTimeOut);
        int SetSpeedPoti (BOOL bSpeedPoti);
        int SetTVRMode (int lXT, int lYT, int lZT, int lAT);
        int SetAutoStatus (int lValue);
        int GetAutoStatus (int *plValue);
        int GetStatusAxis (char *pcStatusAxisStr, int lMaxLen);
        int GetStA (int *plStaX, int *plStaY, int *plStaZ, int *plStaA);
        int SetDigIO_Off (int lIndex);
        int SetDigIO_Polarity (int lIndex, BOOL bHigh);
        int SetDigIO_EmergencyStop (int lIndex);
        int SetDigIO_Distance (int lIndex, BOOL bFkt, double dDist, int lAxis);
        int SetDimensions (int lXD, int lYD, int lZD, int lAD);
        int SetResolution (int lValue);
        int MoveRelShort ();
        int SetEncoderPeriod (double dX, double dY, double dZ, double dA);
        int SetJoystickDir (int lXD, int lYD, int lZD, int lAD);
        int SetEncoderMask (int lValue);
        int SetGear (double dX, double dY, double dZ, double dA);
        int SetHandWheelOn (BOOL bPositionCount, BOOL bEncoder);
        int SetHandWheelOff ();
        int SetFactorTVR (double dX, double dY, double dZ, double dA);
        int SetTargetWindow (double dX, double dY, double dZ, double dA);
        int SetController (int lXC, int lYC, int lZC, int lAC);
        int SetControllerCall (int lCtrCall);
        int SetControllerSteps (double dX, double dY, double dZ, double dA);
        int SetControllerFactor (double dX, double dY, double dZ, double dA);
        int SetControllerFactorSingleAxis (int lAxis, double dFactor1, double dFactor2);
        int SetControllerTWDelay(int lCtrTWDelay);
        int SetControllerTWDelaySingleAxis(int lAxis, int lCtrTWDelay);
        int SetEncoderRefSignal (int lXR, int lYR, int lZR, int lAR);
        int SetEncoderPosition (BOOL bValue);
        int GetVersionStr (char *pcVers, int lMaxLen);
        int GetError (int *plErrorCode);
        int GetErrorString (int lErrorCode, char *pcErrorString, int lMaxLen);
        int GetPosSingleAxis (int lAxis, double *pdPos);
	int SetPosSingleAxis (int lAxis, double dPos);
        int SetDistance (double dX, double dY, double dZ, double dA);
        int GetPosEx (double *pdX, double *pdY, double *pdZ, double *pdR, BOOL bEncoder);
        int SetShowCmdList (BOOL bShowCmdList);
        int SetWriteLogText (BOOL bAWriteLogText);
        int SetControllerTimeout (int lACtrTimeout);
        int SetEncoderActive (int lFlags);
        int GetSnapshotCount (int *plSnsCount);
        int SetSnapshotCount (int lSnsCount);
        int GetSnapshotPos (double *pdX, double *pdY, double *pdZ, double *pdA);
        int SetCorrTblOff ();
        int SetCorrTblOn (char *pcAFileName);
        int SetFactorMode (BOOL bAFactorMode, double dX, double dY, double dZ, double dA);
        int SetSnapshot (BOOL bASnapshot);
        int SetSnapshotPar (BOOL bHigh, BOOL bAutoMode);
        int SetTrigger (BOOL bATrigger);
        int SetTriggerPar (int lAxis, int lMode, int lSignal, double dDistance);
        int SetTrigCount (int lValue);

        int SetTriggerAxis (int lAxis);
        int SetTriggerMode (int lMode);
        int SetTriggerSignalLength (int lSignal);
        int SetTriggerDistance (double dDistance);
        int SetTriggerCompensation (int lCompensation);
        int SetTriggerEncoder (int lEncoder);
        int SetTriggerFrequency (double dFrequency);
        int SetTriggerRange (double dStartPos, double dEndPos, int lNumberOfTriggerPulses);
        int SetTriggerOutput (int lOutput);
        int SetTriggerPositionList (int lIndex, double dPosition);
        int SetTriggerPositionListIndex (int lIndex);
        int SetTriggerPositionListEntries (int lNumberOfEntries);
        int SetTriggerLevel (int lLevel);
        int Set2ndTriggerDelay (double dDelay);
        int Set2ndTriggerWidth (double dWidth);
        int Set2ndTriggerFrequency (double dFrequency);

        int SetLanguage (char *pcPLN);
        int GetSwitches (int *plFlags);
        int GetSerialNr (char *pcSerialNr, int lMaxLen);
        int SetCalibOffset (double dX, double dY, double dZ, double dR);
        int SetRMOffset (double dX, double dY, double dZ, double dR);
        int GetSnapshotPosArray (int lIndex, double *pdX, double *pdY, double *pdZ, double *pdR);
        int SetAxisDirection (int lXD, int lYD, int lZD, int lAD);
        int SetCalibrateDir (int lXD, int lYD, int lZD, int lAD);
        int LStepSave ();
        int SetBPZ (int lAValue);
        int SetBPZTrackballFactor (double dAValue);
        int SetBPZTrackballBackLash (double dX, double dY, double dZ, double dR);
        int SetBPZJoyspeed (int lAPar, double dAValue);
        int SetJoystickWindow (int lAValue);
        int SetCurrentDelay (int lX, int lY, int lZ, int lR);
        int WaitForAxisStop (int lAFlags, int lATimeoutValue, BOOL *pbATimeout);
        int SetProcessMessagesProc (void* pProc);
        int SendStringPosCmd (char *pcStr, char *pcRet, int lMaxLen, BOOL bReadLine, int lTimeOut);
        int SetWriteLogTextFN (BOOL bAWriteLogText, char *pcALogFN);
        int EnableCommandRetry (BOOL bAValue);
        int SetXYAxisComp (int lValue);
        int GetVersionStrDet (char *pcVersDet, int lMaxLen);
        int SetDllNumOfAxes (int lNumOfAxes);
        int SetCommandTimeout (int lAtoRead, int lAtoMove, int lAtoCalibrate);
        int GetCommandTimeout (int *plAtoRead, int *plAtoMove, int *plAtoCalibrate);
        int SetExtValue (int lAName, int lAValue);
        int FlushBuffer (int lAValue);
        int GetEEPRomValue (unsigned char Offset, unsigned char *pValue);
        int SetEEPRomValue (unsigned char Offset, unsigned char Value);
        int GetXYAxisComp (int *plValue);
        int GetDimensions (int *plXD, int *plYD, int *plZD, int *plAD);
        int GetResolution (int *plValue);
        int GetPitch (double *pdX, double *pdY, double *pdZ, double *pdA);
        int GetGear (double *pdX, double *pdY, double *pdZ, double *pdA);
        int GetVel (double *pdX, double *pdY, double *pdZ, double *pdA);
        int GetAccelFuncSingleAxis (int lAxis, int *plVal);
        int SetAccelFuncSingleAxis (int lAxis, int iVal);
        int GetJoystickDirSingleAxis (int lAxis, int *plVal);
        int SetJoystickDirSingleAxis (int lAxis, int iVal);
        int GetDigJoySpeedSingleAxis (int lAxis, double *pdVal);
        int SetDigJoySpeedSingleAxis (int lAxis, double dVal);
        int GetDimensionsSingleAxis (int lAxis, int *plVal);
        int SetDimensionsSingleAxis (int lAxis, int iVal);
        int GetEncoderPeriodSingleAxis (int lAxis, double *pdVal);
        int SetEncoderPeriodSingleAxis (int lAxis, double dVal);
        int GetPitchSingleAxis (int lAxis, double *pdVal);
        int SetPitchSingleAxis (int lAxis, double dVal);
        int GetGearSingleAxis (int lAxis, double *pdVal);
        int SetGearSingleAxis (int lAxis, double dVal);
        int GetStopAccelSingleAxis (int lAxis, double *pdVal);
        int SetStopAccelSingleAxis (int lAxis, double dVal);
        int GetMotorCurrentSingleAxis (int lAxis, double *pdVal);
        int SetMotorCurrentSingleAxis (int lAxis, double dVal);
        int GetReductionSingleAxis (int lAxis, double *pdVal);
        int SetReductionSingleAxis (int lAxis, double dVal);
        int GetTargetWindowSingleAxis (int lAxis, double *pdVal);
        int SetTargetWindowSingleAxis (int lAxis, double dVal);
        int GetMotorStepsSingleAxis (int lAxis, int *plVal);
        int SetMotorStepsSingleAxis (int lAxis, int iVal);
        int GetCurrentDelaySingleAxis (int lAxis, int *plVal);
        int SetCurrentDelaySingleAxis (int lAxis, int iVal);
        int GetVelSingleAxis (int lAxis, double *pdVel);
        int GetSecVelSingleAxis (int lAxis, double *pdVel);
        int GetAccelSingleAxis (int lAxis, double *pdAccel);
        int GetSecVel (double *pdX, double *pdY, double *pdZ, double *pdA);
        int GetAccel (double *pdX, double *pdY, double *pdZ, double *pdA);
        int SetVelFac (double dX, double dY, double dZ, double dR);
        int GetVelFac (double *pdX, double *pdY, double *pdZ, double *pdR);
        int GetSpeedPoti (BOOL *pbSpePoti);
        int GetMotorCurrent (double *pdX, double *pdY, double *pdZ, double *pdA);
        int GetReduction (double *pdX, double *pdY, double *pdZ, double *pdA);
        int GetCurrentDelay (int *plX, int *plY, int *plZ, int *plR);
        int SetOutFuncLev (double dX, double dY, double dZ, double dR);
        int GetOutFuncLev (double *pdX, double *pdY, double *pdZ, double *pdR);
        int GetActiveAxes (int *plFlags);
        int GetAxisDirection (int *plXD, int *plYD, int *plZD, int *plAD);
        int GetCalibOffset (double *pdX, double *pdY, double *pdZ, double *pdR);
        int GetRMOffset (double *pdX, double *pdY, double *pdZ, double *pdR);
        int GetCalibrateDir (int *plXD, int *plYD, int *plZD, int *plAD);
        int SetCalibBackSpeed (int lSpeed);
        int GetCalibBackSpeed (int *plSpeed);
        int SetRefSpeed (int lSpeed);
        int GetRefSpeed (int *plSpeed);
        int SetPowerAmplifier (BOOL bAmplifier);
        int GetPowerAmplifier (BOOL *pbAmplifier);
        int SetMotorTablePatch (BOOL bActive);
        int GetMotorTablePatch (BOOL *pbActive);
        int SetJoystickFilter (BOOL bActive);
        int GetJoystickFilter (BOOL *pbActive);
        int SetStopPolarity (BOOL bHighActiv);
        int GetStopPolarity (BOOL *pbHighActiv);
        int SetVLevel (int lVRegion, double dDownLevel, double dUppLevel);
        int GetVLevel (int lVRegion, double *pdDownLevel, double *pdUppLevel);
        int SetStopAccel (double dXD, double dYD, double dZD, double dAD);
        int GetStopAccel (double *pdXD, double *pdYD, double *pdZD, double *pdAD);
        int GetVersionStrInfo (char *pcVersInfo, int lMaxLen);
        int GetStatusLimit (char *pcLimit, int lMaxLen);
        int GetSecurityErr (DWORD *pdwValue);
        int GetSecurityStatus (DWORD *pdwValue);
        int GetDelay (int *plDelay);
        int GetDistance (double *pdX, double *pdY, double *pdZ, double *pdR);
        int ClearPos (int lFlags);
        int SetDigJoySpeed (double dX, double dY, double dZ, double dR);
        int GetDigJoySpeed (double *pdX, double *pdY, double *pdZ, double *pdR);
        int GetJoystickDir (int *plXD, int *plYD, int *plZD, int *plRD);
        int GetJoystick (BOOL *pbJoystickOn, BOOL *pbManual, BOOL *pbPositionCount, BOOL *pbEncoder);
        int GetJoystickWindow (int *plAValue);
        int GetHandWheel (BOOL *pbHandWheelOn, BOOL *pbPositionCount, BOOL *pbEncoder);
        int GetBPZ (int *plAValue);
        int GetBPZTrackballFactor (double *pdAValue);
        int GetBPZTrackballBackLash (double *pdX, double *pdY, double *pdZ, double *pdR);
        int GetBPZJoyspeed (int lAPar, double *pdAValue);
        int GetLimitControl (int lAxis, BOOL *pbActive);
        int SetAutoLimitAfterCalibRM (int lFlags);
        int GetAutoLimitAfterCalibRM (int *plFlags);
        int GetSwitchPolarity (int *plXP, int *plYP, int *plZP, int *plRP);
        int GetSwitchActive (int *plXA, int *plYA, int *plZA, int *plRA);
        int GetTVRMode (int *plXT, int *plYT, int *plZT, int *plRT);
        int GetFactorTVR (double *pdX, double *pdY, double *pdZ, double *pdR);
        int SetTVROutMode (int lXT, int lYT, int lZT, int lRT);
        int GetTVROutMode (int *plXT, int *plYT, int *plZT, int *plRT);
        int SetTVROutResolution (int lX, int lY, int lZ, int lR);
        int GetTVROutResolution (int *plX, int *plY, int *plZ, int *plR);
        int SetTVROutPitch (double dX, double dY, double dZ, double dR);
        int GetTVROutPitch (double *pdX, double *pdY, double *pdZ, double *pdR);
        int SetVelTVRO (double dX, double dY, double dZ, double dR);
        int GetVelTVRO (double *pdX, double *pdY, double *pdZ, double *pdR);
        int SetAccelTVRO (double dX, double dY, double dZ, double dR);
        int GetAccelTVRO (double *pdX, double *pdY, double *pdZ, double *pdR);
        int SetVelSingleAxisTVRO (int lAxis, double dVel);
        int SetAccelSingleAxisTVRO (int lAxis, double dAccel);
        int SetPosTVRO (double dX, double dY, double dZ, double dR);
        int GetPosTVRO (double *pdX, double *pdY, double *pdZ, double *pdR);
        int MoveAbsTVRO (double dX, double dY, double dZ, double dR, BOOL bWait);
        int MoveRelTVRO (double dX, double dY, double dZ, double dR, BOOL bWait);
        int MoveRelTVROSingleAxis (int lAxis, double dValue, BOOL bWait);
        int MoveAbsTVROSingleAxis (int lAxis, double dValue, BOOL bWait);
        int GetStatusTVRO (char *pcStat, int lMaxLen);
        int GetTargetWindow (double *pdX, double *pdY, double *pdZ, double *pdR);
        int GetEncoderSingleAxis (int lAxis, int *plEncoderType, double *pdPeriod, int *plRef);
        int SetEncoderSingleAxis (int lAxis, int lEncoderType, double dPeriod, int lRef);
        int GetEncoderPeriod (double *pdX, double *pdY, double *pdZ, double *pdR);
        int GetEncoderRefSignal (int *plXR, int *plYR, int *plZR, int *plRR);
        int GetEncoderPosition (BOOL *pbValue);
        int GetEncoderActive (int *plFlags);
        int GetController (int *plXC, int *plYC, int *plZC, int *plRC);
        int GetControllerCall (int *plCtrCall);
        int GetControllerSteps (double *pdX, double *pdY, double *pdZ, double *pdR);
        int GetControllerFactor (double *pdX, double *pdY, double *pdZ, double *pdR);
        int GetControllerFactorSingleAxis (int lAxis, double *pdFactor1, double *pdFactor2);
        int GetControllerTWDelay(int *plCtrTWDelay);
        int GetControllerTWDelaySingleAxis(int lAxis, int *plCtrTWDelay);
        int GetControllerTimeout (int *plACtrTimeout);
        int SetCtrFastMoveOn ();
        int SetCtrFastMoveOff ();
        int GetCtrFastMove (BOOL *pbActive);
        int ClearCtrFastMoveCounter ();
        int GetCtrFastMoveCounter (int *plXC, int *plYC, int *plZC, int *plRC);
        int ClearEncoder (int lAxis);
        int GetEncoder (double *pdXP, double *pdYP, double *pdZP, double *pdRP);
        int GetTrigger (BOOL *pbATrigger);
        int GetTriggerPar (int *plAxis, int *plMode, int *plSignal, double *pdDistance);
        int GetTrigCount (int *plValue);

        int GetTriggerAxis (int *plAxis);
        int GetTriggerMode (int *plMode);
        int GetTriggerSignalLength (int *plSignal);
        int GetTriggerDistance (double *pdDistance);
        int GetTriggerCompensation (int *plCompensation);
        int GetTriggerEncoder (int *plEncoder);
        int GetTriggerFrequency (double *pdFrequency);
        int GetTriggerRange (double *pdStartPos, double *pdEndPos, int *plNumberOfTriggerPulses);
        int GetTriggerOutput (int *plOutput);
        int GetTriggerPositionList (int lIndex, double *pdPos);
        int GetTriggerPositionListIndex (int *plIndex);
        int GetTriggerPositionListEntries (int *plNumberOfEntries);
        int GetTriggerLevel (int *plLevel);
        int Get2ndTriggerDelay (double *pdDelay);
        int Get2ndTriggerWidth (double *pdWidth);
        int Get2ndTriggerFrequency (double *pdFrequency);

        int SetTVRInPulse (int lAxis, BOOL bDirection);
        int GetSnapshot (BOOL *pbASnapshot);
        int SetSnapshotFilter (int lTime);
        int GetSnapshotFilter (int *plTime);
        int GetSnapshotPar (BOOL *pbHigh, BOOL *pbAutoMode);
        int GetLimit (int lAxis, double *pdMinRange, double *pdMaxRange);
        int JoyChangeAxis (BOOL bValue);
        int GetJoyChangeAxis (BOOL *pbValue);
        int GetSyncZA (BOOL *pbSyncZA);
        int SetSyncZA (BOOL bSync);
        int GetKey (BOOL *pbKey1, BOOL *pbKey2, BOOL *pbKey3, BOOL *pbKey4);
        int GetKeyLatch (BOOL *pbKey1, BOOL *pbKey2, BOOL *pbKey3, BOOL *pbKey4);
        int ClearKeyLatch (int lKey);
        int SetZwTravel (int lIndex, double dDistance);
        int GetZwTravel (int lIndex, double *pdDistance);
        int SetSwitchType (int lXP, int lYP, int lZP, int lAP);
        int GetSwitchType (int *plXP, int *plYP, int *plZP, int *plRP);
        int SetBlSmoothSingleAxis (int lAxis, int lBlSmooth);
        int GetBlSmoothSingleAxis (int lAxis, int *plBlSmooth);
        int SetMotorSteps (int lX, int lY, int lZ, int lR);
        int GetMotorSteps (int *lX, int *lY, int *lZ, int *lR);
        int SetAccelFunc (int lX, int lY, int lZ, int lR);
        int GetAccelFunc (int *lX, int *lY, int *lZ, int *lR);
        int ClearSnapshotPosArray (void);
        int SetSnapshotPosArray (int lIndex, double dX, double dY, double dZ, double dA);
        int SetSnapshotIndex (int lIndex);
        int GetSnapshotIndex (int *plIndex);
        int SetSnapshotMode (int lMode);
        int GetSnapshotMode (int *plMode);
		
        int Eject (int maga, int keep);
        int Insert (void);
        int SlideSeated (int maga, int slot, int *status);
        int MagazinSeated (int maga, int *status);
        int GetGripper (int *c1, int *s1, int *c2, int *s2);
        int SetGripper (int c1, int s1, int c2, int s2);
        int GetSlide (int maga, int slot, int mode);
        int PutSlide (int maga, int slot);
        int SetPrioHandlerPos (int php);
        int GetPrioHandlerPos (int *php);
        int GetClipType (int *plClipType);

        int GetTangoVersion (char *pcVers, int lMaxLen);
        int GetTray (int slot, int mode);
        int PutTray (int slot);
        int GetRFID (int slot, int bank, int *lcode); 
        int SetRFID (int slot, int bank, int lcode); 
        int GetTraySN (int slot, int *lTraySN); 
        int GetTrayType (int slot, int *lTrayType); 
        int SetTrayType (int slot, int lTrayType); 
        int GetLoaderType (int *lLoaderType); 
        int GetNumberOfRows (int *lRows); 
        int GetNumberOfColumns (int *lCols); 
        int GetNumberOfMagazines (int *lMags);
        int GetNumberOfSlots (int *pNumberOfSlots);

        int SetLabelLED (int lOn);
        int GetLabelLED (int *plOn);
        int SetCabinLED (int lOn);
        int GetCabinLED (int *plOn);

        int Xpos3MoveAbsSingleAxis (int lAxis, double dValue, BOOL bWait);
        int Xpos3MoveRelSingleAxis (int lAxis, double dValue, BOOL bWait);
        int Xpos3SetPosSingleAxis  (int lAxis, double dValue);
        int Xpos3GetPosSingleAxis  (int lAxis, double *pdValue);
        int Xpos3SetVelSingleAxis  (int lAxis, double dValue);
        int Xpos3GetVelSingleAxis  (int lAxis, double *pdValue);
        int Xpos3SetAccelSingleAxis  (int lAxis, double dValue);
        int Xpos3GetAccelSingleAxis  (int lAxis, double *pdValue);
        int Xpos3SetStopAccelSingleAxis  (int lAxis, double dValue);
        int Xpos3GetStopAccelSingleAxis  (int lAxis, double *pdValue);
        int Xpos3SetSpeedSingleAxis  (int lAxis, double dValue);
        int Xpos3GetSpeedSingleAxis  (int lAxis, double *pdValue);
        int Xpos3SetPitchSingleAxis  (int lAxis, double dValue);
        int Xpos3GetPitchSingleAxis  (int lAxis, double *pdValue);
        int Xpos3SetGearSingleAxis  (int lAxis, double dValue);
        int Xpos3GetGearSingleAxis  (int lAxis, double *pdValue);
        int Xpos3SetAxisDirSingleAxis  (int lAxis, int lValue);
        int Xpos3GetAxisDirSingleAxis  (int lAxis, int *plValue);
        int Xpos3AbortSingleAxis  (int lAxis);
        int Xpos3GetStatusAxisSingleAxis  (int lAxis, int *plState);
        int Xpos3GetTemp  (double *pdValue);
        int Xpos3GetTempMCU  (double *pdValue);
        int Xpos3GetError  (int *plValue);
        int Xpos3ClearError  (void);
        int Xpos3GetStatusBits  (int *plValue);

    };

#endif // __CTango__
