/*==========================================================================*/
/*----             COMMAND ID DEFINE                                        ---*/
/*==========================================================================*/

/*==========================================================================*/
/*----1.1 板卡的操作以及资源的获取接口                                   ---*/
/*==========================================================================*/

#define ID_IMC_GetCardsNum                                       (0x8000)
#define ID_IMC_OpenCard                                          (0x8001)
#define ID_IMC_CloseCard                                         (0x8002)

#define ID_IMC_OpenCardHandle                                    (0x8004)
#define ID_IMC_ScanCardECAT                                      (0x8006)
#define ID_IMC_GetECATMasterSts                                  (0x8007)
#define ID_IMC_CloseCardHandle                                   (0x8005)

#define ID_IMC_ScanCard                                          (0x8008)
#define ID_IMC_GetCardSts                                        (0x8009)

#define ID_IMC_GetCardResource                                   (0x8003)

#define ID_IMC_UpLoadDeviceConfig                                (0x8010)
#define ID_IMC_DownLoadDeviceConfig                              (0x8011)
#define ID_IMC_DownLoadSystemConfig                              (0x8012)

#define ID_IMC_GetHwVer                                          (0x8026)

/*==========================================================================*/
/*----1.2 板卡的操作以及资源的获取接口                                   ---*/
/*==========================================================================*/

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/*----1.2.1 ECAT资源设置接口                                             ---*/
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#define ID_IMC_SetEcatGrpDiInverse                               (0x0010)
#define ID_IMC_GetEcatGrpDiInverse                               (0x0011)
#define ID_IMC_SetEcatGrpDoInverse                               (0x0012)
#define ID_IMC_GetEcatGrpDoInverse                               (0x0013)

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/*----1.2.2 端子板资源设置接口                                           ---*/
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#define ID_IMC_GetBoardWorkSts                                   (0x0080)
#define ID_IMC_SetLocalDiFilterTime                              (0x0081)
#define ID_IMC_GetLocalDiFilterTime                              (0x0082)
#define ID_IMC_SetLocalHmLmtPrbFilterTime                        (0x008b)
#define ID_IMC_GetLocalHmLmtPrbFilterTime                        (0x008c)
#define ID_IMC_SetLocalSpecialIOInverse                          (0x008d)
#define ID_IMC_GetLocalSpecialIOInverse                          (0x008e)
#define ID_IMC_SetLocalDiInverse                                 (0x0083)
#define ID_IMC_GetLocalDiInverse                                 (0x0084)
#define ID_IMC_SetLocalDoInverse                                 (0x0085)
#define ID_IMC_GetLocalDoInverse                                 (0x0086)
#define ID_IMC_SetLocalEncDir                                    (0x0087)
#define ID_IMC_GetLocalEncDir                                    (0x0088)
#define ID_IMC_SetLocalPulseMode                                 (0x0089)
#define ID_IMC_GetLocalPulseMode                                 (0x008a)

#define ID_IMC_SetLocalGpoUseType                                (0x0092)
#define ID_IMC_GetLocalGpoUseType                                (0x0093)
#define ID_IMC_SetEncFilterPara                                  (0x0094)
#define ID_IMC_GetEncFilterPara                                  (0x0095)

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/*----1.2.3 系统参数设置接口                                             ---*/
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#define ID_IMC_GetHwSysPara                                      (0x0202)
#define ID_IMC_ResetSysPara                                      (0x0222)
#define ID_IMC_GetCalcLoadRatio                                  (0x0203)
#define ID_IMC_GetVersion                                        (0x0204)

#define ID_IMC_WriteUserCode                                     (0x8015)
#define ID_IMC_CheckUserCode                                     (0x8016)

#define ID_IMC_SetEmgStopMode                                    (0x020f)
#define ID_IMC_GetEmgStopMode                                    (0x0215)
#define ID_IMC_SetEmgFilter                                      (0x0210)
#define ID_IMC_GetEmgFilter                                      (0x0211)
#define ID_IMC_SetEmgTrigLevelInv                                (0x0212)
#define ID_IMC_GetEmgTrigLevelInv                                (0x0213)
#define ID_IMC_GetEmgDiLevel                                     (0x0214)
#define ID_IMC_SetEmgDoResetFlag                                 (0x0216)
#define ID_IMC_GetEmgDoResetFlag                                 (0x0217)
#define ID_IMC_SetEmgSvOffVelThreshold                           (0x0218)
#define ID_IMC_GetEmgSvOffVelThreshold                           (0x0219)

#define ID_IMC_OpenWatchDog                                      (0x0223)
#define ID_IMC_FeedWatchDog                                      (0x0224)
#define ID_IMC_CloseWatchDog                                     (0x0225)
#define ID_IMC_EnableCheckEcatErrCode                            (0x0226)

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/*----1.2.4 轴参数设置接口                                               ---*/
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#define ID_IMC_SetAxActive                                       (0x0065)
#define ID_IMC_GetAxActive                                       (0x0066)
#define ID_IMC_SetAxMaxMtPara                                    (0x0031)
#define ID_IMC_GetAxMaxMtPara                                    (0x0032)
#define ID_IMC_SetAxEquiv                                        (0x0060)
#define ID_IMC_GetAxEquiv                                        (0x0061)
#define ID_IMC_SetAxBondCfg                                      (0x0041)
#define ID_IMC_GetAxBondCfg                                      (0x0042)
#define ID_IMC_ResetAxBondCfg                                    (0x004f)
#define ID_IMC_SetAxAttriPara                                    (0x0043)
#define ID_IMC_GetAxAttriPara                                    (0x0044)
#define ID_IMC_SetAxSoftLimit                                    (0x0045)
#define ID_IMC_GetAxSoftLimit                                    (0x0046)
#define ID_IMC_SetAxArrivalBand                                  (0x0047)
#define ID_IMC_GetAxArrivalBand                                  (0x0048)
#define ID_IMC_SetAxErrorPos                                     (0x004b)
#define ID_IMC_GetAxErrorPos                                     (0x004c)
#define ID_IMC_SetAxBacklash                                     (0x004d)
#define ID_IMC_GetAxBacklash                                     (0x004e)
#define ID_IMC_AxSafeCheckEnable                                 (0x0050)
#define ID_IMC_AxSafeCheckSts                                    (0x0051)
#define ID_IMC_AxAlarmEnable                                     (0x0052)
#define ID_IMC_AxAlarmDisable                                    (0x0053)
#define ID_IMC_AxSoftLmtsEnable                                  (0x0054)
#define ID_IMC_AxSoftLmtsDisable                                 (0x0055)
#define ID_IMC_AxHwLmtsEnable                                    (0x0056)
#define ID_IMC_AxHwLmtsDisable                                   (0x0057)
#define ID_IMC_AxErrPosEnable                                    (0x0058)
#define ID_IMC_AxErrPosDisable                                   (0x0059)

#define ID_IMC_SetEcatAxProbeMaskBit                             (0x0030)
#define ID_IMC_GetEcatAxProbeMaskBit                             (0x0033)

#define ID_IMC_SetupAxGantry                                     (0x0062)
#define ID_IMC_AbortAxGantry                                     (0x0063)
#define ID_IMC_GetAxGantrySts                                    (0x0064)
#define ID_IMC_ClrAxGantrySts                                    (0x0068)

#define ID_IMC_AxSetScrewCompTable								 (0x2100)
#define ID_IMC_AxGetScrewCompTable								 (0x2101)
#define ID_IMC_AxEnableScrewComp								 (0x2103)
#define ID_IMC_AxDisableScrewComp								 (0x2104)
#define ID_IMC_AxGetScrewCompStatus								 (0x2105)
#define ID_IMC_AxGetScrewCompValue								 (0x2106)

/*==========================================================================*/
/*----2.1 ECAT硬件操作接口                                               ---*/
/*==========================================================================*/

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/*----2.1.1ECAT总线 SDO操作以及状态查询                                  ---*/
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#define ID_IMC_GetSlaveCurSts                                     (0x8017)
#define ID_IMC_GetSlaveReqSts                                     (0x8018)
#define ID_IMC_GetEcatErrCode                                     (0x8019)
#define ID_IMC_GetAxEcatStation                                   (0x801a)
#define ID_IMC_GetEcatSdo                                         (0x801b)
#define ID_IMC_SetEcatSdo                                         (0x801c)

#define ID_IMC_GetAxEcatPidVid                                    (0x8032)
#define ID_IMC_GetEcatStationPidVid                               (0x8032)
#define ID_IMC_GetAxSdo                                           (0x8034)
#define ID_IMC_SetAxSdo                                           (0x8033)


/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/*----2.1.2 ECAT总线 DI/DO操作                       ---*/
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#define ID_IMC_SetEcatDoBit                                       (0x0100)
#define ID_IMC_GetEcatDoBit                                       (0x0102)
#define ID_IMC_SetEcatGrpDo                                       (0x0103)
#define ID_IMC_GetEcatGrpDo                                       (0x0104)
#define ID_IMC_GetEcatDiBit                                       (0x0105)
#define ID_IMC_GetEcatGrpDi                                       (0x0106)

#define ID_IMC_GetEcatAdVal                                       (0x0107)
#define ID_IMC_SetEcatDaVal                                       (0x0108)
#define ID_IMC_GetEcatDaVal                                       (0x0109)

#define ID_IMC_GetEcatAdSts                                       (0x001e)
#define ID_IMC_GetEcatDaSts                                       (0x001f)

#define ID_IMC_GetEcatPtVal                                       (0x0113)

/*==========================================================================*/
/*----2.2 端子板硬件操作接口                                             ---*/
/*==========================================================================*/
#define ID_IMC_GetBoardVersion                                    (0x0152)

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/*----2.2.1 端子板DIO操作接口                                            ---*/
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#define ID_IMC_SetLocalDoBit                                      (0x0140)
#define ID_IMC_GetLocalDoBit                                      (0x0141)
#define ID_IMC_SetLocalDo                                         (0x0142)
#define ID_IMC_GetLocalDo                                         (0x0143)
#define ID_IMC_GetLocalDiBit                                      (0x0144)
#define ID_IMC_GetLocalDi                                         (0x0145)
#define ID_IMC_GetLocalADVal                                      (0x0148)
#define ID_IMC_GetLocalSpecialDi                                  (0x0149)
#define ID_IMC_GetLocalSpecialDiBit                               (0x014a)

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/*----2.2.2 端子板编码器操作接口                                         ---*/
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#define ID_IMC_GetLocalCntPos                                     (0x0150)
#define ID_IMC_GetLocalCntVel                                     (0x0151)
#define ID_IMC_GetLocalEncPos                                     (0x0146)
#define ID_IMC_GetLocalEncVel                                     (0x0147)

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/*----2.2.4 端子板位置比较输出操作接口                                   ---*/
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#define ID_IMC_CompareSrcConfig                                   (0x0180)
#define ID_IMC_CompareOutputConfig                                (0x0186)
#define ID_IMC_GetCompareStatus                                   (0x0184)
#define ID_IMC_StopCompareOut                                     (0x0185)
#define ID_IMC_StartCompareOut                                    (0x0187)
#define ID_IMC_CompareManualOutput                                (0x0181)
#define ID_IMC_LinearCompare                                      (0x0182)
#define ID_IMC_SetCompareData                                     (0x0183)
#define ID_IMC_SetCompareDataType                                 (0x0188)
#define ID_IMC_GetCompareDataType                                 (0x0189)
#define ID_IMC_SetComparePosType                                  (0x018a)
#define ID_IMC_GetComparePosType                                  (0x018b)
#define ID_IMC_SetMultiDimensComparePara                          (0x018c)
#define ID_IMC_GetMultiDimensComparePara                          (0x018d)
#define ID_IMC_SetMultiDimensCompareData                          (0x018e)

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/*----2.2.5 端子板PWM输出控制                                            ---*/
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#define ID_IMC_SetPwmPara                                         (0x0160)
#define ID_IMC_GetPwmPara                                         (0x0161)
#define ID_IMC_SetPwmFrq                                          (0x0162)
#define ID_IMC_SetPwmDuty                                         (0x0163)
#define ID_IMC_SetPwmOnOff                                        (0x0164)
#define ID_IMC_SetPwmOnDelay                                      (0x0165)
#define ID_IMC_SetPwmOffDelay                                     (0x0166)

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/*----2.2.6 PSO控制                                            ---*/
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#define ID_IMC_SetPSOMode0Para                                    (0x0179)
#define ID_IMC_GetPSOMode0Para                                    (0x017a)
#define ID_IMC_StartPSO                                           (0x017b)
#define ID_IMC_StopPSO                                         	  (0x017c)



/*==========================================================================*/
/*----3 回零操作接口                                                     ---*/
/*==========================================================================*/
#define ID_IMC_StartHomingInUnit                                  (0x000a)
#define ID_IMC_StartHoming                                        (0x000a)
#define ID_IMC_StopHoming                                         (0x000d)
#define ID_IMC_GetHomingStatus                                    (0x000c)
#define ID_IMC_FinishHoming                                       (0x000b)

#define ID_IMC_StartEcatAxCSPHoming                               (0x0024)
#define ID_IMC_StopEcatAxCSPHoming                                (0x0025)
#define ID_IMC_GetEcatAxCSPHomingSts                              (0x0026)
#define ID_IMC_FinishEcatAxCSPHoming                              (0x0027)

#define ID_IMC_CloseAutoHomingFinish				  (0x000f)

/*==========================================================================*/
/*----4 状态管理接口                                                     ---*/
/*==========================================================================*/

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/*----4.2 轴状态管理接口                                                 ---*/
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#define ID_IMC_GetAxPrfMode                                       (0x0308)
#define ID_IMC_GetAxSts                                           (0x0300)
#define ID_IMC_ClrAxSts                                           (0x0301)
#define ID_IMC_GetAxPrfPos                                        (0x0302)
#define ID_IMC_GetAxPrfVel                                        (0x0303)
#define ID_IMC_GetAxPrfAcc                                        (0x0304)
#define ID_IMC_GetAxEncPos                                        (0x0305)
#define ID_IMC_GetAxcOrgEncPos                                    (0x030f)
#define ID_IMC_GetAxEncVel                                        (0x0306)
#define ID_IMC_GetAxEncAcc                                        (0x0307)
#define ID_IMC_GetPrfPos                                          (0x0309)
#define ID_IMC_GetAxType                                          (0x030a)
#define ID_IMC_GetMultiAxArrivalSts                               (0x0310)

#define ID_IMC_AxServoOn                                          (0x0320)
#define ID_IMC_AxServoOff                                         (0x0323)
#define ID_IMC_AxMoveStop                                         (0x0321)
#define ID_IMC_AxStopInBits                                       (0x0322)
#define ID_IMC_SetAxCurPos                                        (0x0330)

#define ID_IMC_SetAxCompenPos                                     (0x0331)
#define ID_IMC_GetAxCompenPos                                     (0x0332)

#define ID_IMC_SetAxCtrlMode                                      (0x0360)
#define ID_IMC_GetAxCtrlMode                                      (0x0361)
#define ID_IMC_PrfAxTorq                                          (0x0362)
#define ID_IMC_GetAxActTorq                                       (0x0363)

#define ID_IMC_SetAxTorqSlope                                     (0x0364)
#define ID_IMC_GetAxTorqSlope                                     (0x0366)
#define ID_IMC_SetAxTgtTorq                                       (0x0367)
#define ID_IMC_GetAxTgtTorq                                       (0x0368)

#define ID_IMC_GetAxErrCode                                       (0x030d)
#define ID_IMC_GetAxEcatDigitalInput                              (0x0365)
#define ID_IMC_GetAxBacklashCmpVal                                (0x0369)

#define ID_IMC_SetEcatAxMaxVelLmt                                 (0x0028)
#define ID_IMC_GetEcatAxMaxVelLmt                                 (0x0029)
#define ID_IMC_SetEcatAxPosTorqLmt                                (0x002a)
#define ID_IMC_GetEcatAxPosTorqLmt                                (0x002b)
#define ID_IMC_SetEcatAxNegTorqLmt                                (0x002c)
#define ID_IMC_GetEcatAxNegTorqLmt                                (0x002d)
#define ID_IMC_SetEcatAxMaxTorqLmt                                (0x002e)
#define ID_IMC_GetEcatAxMaxTorqLmt                                (0x002f)

#define ID_IMC_SyncAxPos                                          (0x030e)

#define ID_IMC_SetAxPressFitCtrlWord                              (0x0370)
#define ID_IMC_GetAxPressFitSts                                   (0x0371)
#define ID_IMC_GetAxAIInputVal                                    (0x0372)
#define ID_IMC_GetAxPressFeedback                                 (0x0373)
#define ID_IMC_SetAxPressTgtVal                                   (0x0374)

#define ID_IMC_StartAxTorqHoming                                  (0x0380)
#define ID_IMC_StopAxTorqHoming                                   (0x0381)
#define ID_IMC_GetAxTorqHomingSts                                 (0x0382)
#define ID_IMC_FinishAxTorqHoming                                 (0x0383)

#define ID_IMC_StartAxCsvPrf                                      (0x0390)
#define ID_IMC_StopAxCsvPrf                                       (0x0391)
#define ID_IMC_EstopAxCsvPrf                                      (0x0392)
#define ID_IMC_UpdateAxCsvPrf                                     (0x0393)
#define ID_IMC_GetAxCsvPrfStatus                                  (0x0394)

/*==========================================================================*/
/*----5 数据采样接口                                                   ---*/
/*==========================================================================*/
#define ID_IMC_ConfigSamplePara                                    (0x0400)
#define ID_IMC_ConfigSampleData                                    (0x0401)
#define ID_IMC_ConfigSampleEnable                                  (0x0402)
#define ID_IMC_GetSampleStatus                                     (0x0403)
#define ID_IMC_GetSampleData                                       (0x0404)

/*==========================================================================*/
/*----6 轴位置捕获接口                                                   ---*/
/*==========================================================================*/
#define ID_IMC_SetAxCaptMode                                      (0x0340)
#define ID_IMC_GetAxCaptMode                                      (0x0341)
#define ID_IMC_GetAxCaptStatus                                    (0x0342)

/*==========================================================================*/
/*----7 运动模式接口                                                     ---*/
/*==========================================================================*/
#define ID_IMC_SetSingleAxMvPara                                  (0x1000)
#define ID_IMC_GetSingleAxMvPara                                  (0x1001)
#define ID_IMC_SetSingleAxVelType                                 (0x1002)
#define ID_IMC_GetSingleAxVelType                                 (0x1003)

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/*----7.1 PTP点位模式接口                                                ---*/
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#define ID_IMC_StartPtpMove                                       (0x1004)
#define ID_IMC_StartMultiPtpMove                                  (0x1009)
#define ID_IMC_UpdatePtpTgtPos                                    (0x1005)
#define ID_IMC_UpdatePtpMvPara                                    (0x1006)
#define ID_IMC_UpdatePtpTgtVel                                    (0x1008)
#define ID_IMC_PauseMove                                          (0x1030)
#define ID_IMC_ResumeMove                                         (0x1031)

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/*----7.2 Jog运动模式接口                                                ---*/
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#define ID_IMC_StartJogMove                                       (0x1010)
#define ID_IMC_StartMultiJogMove                                  (0x1013)
#define ID_IMC_UpdateJogMvPara                                    (0x1011)
#define ID_IMC_UpdateJogTgtVel                                    (0x1012)

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/*----7.3 手轮跟随运动模式接口                                           ---*/
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#define ID_IMC_EnterHandWheelMode                                 (0x1200)
#define ID_IMC_ExitHandWheelMode                                  (0x1201)
#define ID_IMC_SwitchHandWheelRatio                               (0x1202)


/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/*----7.4 电子齿轮                                           ---*/
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#define ID_IMC_GearSetParam                                       (0x1403)
#define ID_IMC_GearGetParam                                       (0x1404)
#define ID_IMC_GearUpdateScale                                    (0x1405)
#define ID_IMC_GearStart                                          (0x1400)
#define ID_IMC_GearStop                                           (0x1401)
#define ID_IMC_GearGetStatus                                      (0x1402)
#define ID_IMC_GearDestroy                                        (0x1408)

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/*----7.5 直角坐标系插补运动模式接口                                     ---*/
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#define ID_IMC_CrdSetMtSys                                         (0x2500)
#define ID_IMC_CrdGetMtSysParam                                    (0x2501)
#define ID_IMC_CrdDeleteMtSys                                      (0x2502)
#define ID_IMC_CrdSetAdvParam                                      (0x2503)
#define ID_IMC_CrdGetAdvParam                                      (0x2504)

#define ID_IMC_CrdSetTrajVel                                       (0x2528)
#define ID_IMC_CrdSetTrajAcc                                       (0x2529)
#define ID_IMC_CrdSetTrajAccAndDec                                 (0x2537)
#define ID_IMC_CrdSetZeroFlag                                      (0x252a)
#define ID_IMC_CrdSetIncMode                                       (0x252d)
#define ID_IMC_CrdUserVelPlan                                      (0x252f)
#define ID_IMC_CrdSetTrajTol                                       (0x2530)
#define ID_IMC_CrdSetTrajTurnCoef                                  (0x2531)

#define ID_IMC_CrdSetFolVelMode                                    (0x253a)
#define ID_IMC_CrdGetFolVelMode                                    (0x2546)
#define ID_IMC_CrdGetTrajVel                                       (0x2541)
#define ID_IMC_CrdGetTrajAccAndDec                                 (0x2542)
#define ID_IMC_CrdGetZeroFlag                                      (0x2543)
#define ID_IMC_CrdGetIncMode                                       (0x2544)
#define ID_IMC_CrdGetUserVelPlan                                   (0x2545)

#define ID_IMC_CrdLineXYZ                                          (0x2505)
#define ID_IMC_CrdLineXY                                           (0x2506)
#define ID_IMC_CrdLineZX                                           (0x2508)
#define ID_IMC_CrdLineYZ                                           (0x2507)

#define ID_IMC_CrdArcThreePoint                                    (0x2509)

#define ID_IMC_Crd3DArcCenerNormal                                 (0x250a)
#define ID_IMC_Crd3DArcRadiusNormal                                (0x250e)
#define ID_IMC_Crd3DArcAngleNormal                                 (0x2527)

#define ID_IMC_CrdArcCenterXYPlane                                 (0x250b)
#define ID_IMC_CrdArcCenterYZPlane                                 (0x250c)
#define ID_IMC_CrdArcCenterZXPlane                                 (0x250d)

#define ID_IMC_CrdArcRadiusXYPlane                                 (0x250f)
#define ID_IMC_CrdArcRadiusYZPlane                                 (0x2510)
#define ID_IMC_CrdArcRadiusZXPlane                                 (0x2511)

#define ID_IMC_CrdArcAngleXYPlane                                  (0x2524)
#define ID_IMC_CrdArcAngleYZPlane                                  (0x2525)
#define ID_IMC_CrdArcAngleZXPlane                                  (0x2526)

#define ID_IMC_CrdWaitTime                                         (0x2512)
#define ID_IMC_CrdWaitDI                                           (0x2513)
#define ID_IMC_CrdSetDO                                            (0x2514)
#define ID_IMC_CrdPTPMove                                          (0x2515)
#define ID_IMC_CrdSyncMove                                         (0x2516)
#define ID_IMC_CrdEndData                                          (0x2517)
#define ID_IMC_CrdWaitInPos                                        (0x2538)
#define ID_IMC_CrdSetDistanceDO                                    (0x254b)
#define ID_IMC_CrdSetTimeDO                                        (0x254c)

#define ID_IMC_CrdStart                                            (0x2518)
#define ID_IMC_CrdStop                                             (0x2519)
#define ID_IMC_CrdGetStatus                                        (0x251a)
#define ID_IMC_CrdSetRatio                                         (0x251b)
#define ID_IMC_CrdGetRatio                                         (0x251c)
#define ID_IMC_CrdGetPos                                           (0x251d)
#define ID_IMC_CrdGetVel                                           (0x251e)
#define ID_IMC_CrdGetUserID                                        (0x251f)
#define ID_IMC_CrdGetSpace                                         (0x2520)
#define ID_IMC_CrdClrData                                          (0x2521)
#define ID_IMC_CrdClrError                                         (0x2522)
#define ID_IMC_CrdGetTargetPos                                     (0x2523)
#define ID_IMC_CrdGetPausePos                                      (0x2533)
#define ID_IMC_CrdSetSmoothParam                                   (0x252b)
#define ID_IMC_CrdGetSmoothParam                                   (0x252c)
#define ID_IMC_CrdGetArrivalSts                                    (0x2539)

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/*----7.6 PTP连续运动模式接口                                     ---*/
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#define ID_IMC_PTPCAddFixTData                                      (0x1021)
#define ID_IMC_PTPCAddFixVmData                                     (0x1022)
#define ID_IMC_PTPCInterruptData                                    (0x1025)
#define ID_IMC_PTPCStart                                            (0x1020)
#define ID_IMC_PTPCGetSpace                                         (0x1023)
#define ID_IMC_PTPCClrData                                          (0x1024)

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/*----7.7 多轴同步运动模式接口                                     ---*/
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#define ID_IMC_SetupMutiSyncSys                                     (0x2000)                
#define ID_IMC_GetMutiSyncSysInfo                                   (0x2011)                
#define ID_IMC_DeleteMutiSyncSys                                    (0x2001)                
#define ID_IMC_MutiSyncMotion                                       (0x200c) 

#define ID_IMC_MutiSyncMotionInRatio                                (0x200c) 
#define ID_IMC_MutiSyncMotionLookaheadInRatio                       (0x2014) 
#define ID_IMC_MutiSyncMotionInAxVelAcc                             (0x2012) 
#define ID_IMC_MutiSyncMotionLookaheadInAxVelAcc                    (0x2015) 
#define ID_IMC_MutiSyncMotionInSynVelAcc                            (0x2013) 
#define ID_IMC_MutiSyncMotionLookaheadInSynVelAcc                   (0x2016) 
#define ID_IMC_MutiSyncMotionInAccDecTime                           (0x2018) 
#define ID_IMC_MutiSyncMotionInRunTime                              (0x2019) 
               
#define ID_IMC_MutiSyncStart                                        (0x2006)                
#define ID_IMC_MutiSyncStop                                         (0x2007)                
#define ID_IMC_MutiSyncGetStatus                                    (0x200b)                
#define ID_IMC_MutiSyncSetRatio                                     (0x2004)                
#define ID_IMC_MutiSyncGetRatio                                     (0x2005)                
#define ID_IMC_MutiSyncGetUserID                                    (0x2008)                
#define ID_IMC_MutiSyncGetSpace                                     (0x2009)                
#define ID_IMC_MutiSyncClrData                                      (0x200a)                
#define ID_IMC_MutiSyncClrError                                     (0x2010)                
#define ID_IMC_MutiSyncSetType                                      (0x200e)                
#define ID_IMC_MutiSyncGetType                                      (0x200f)
#define ID_IMC_MutiSyncGetTrajVel                                   (0x2017)
#define ID_IMC_MutiSyncGetArrivalSts                                (0x201a)               

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/*----7.8 多轴插补立即运动模式接口                                     ---*/
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#define ID_IMC_ImmediateLineMoveInSynVelAcc                         (0x2900)
#define ID_IMC_ImmediateLineMoveInAxisVelAcc                        (0x2901)
#define ID_IMC_ImmediateArcThreePointMove                           (0x2904)
#define ID_IMC_ImmediateArcCenterMove                               (0x2905)
#define ID_IMC_ImmediateArcRadiusMove                               (0x2906)
#define ID_IMC_ImmediateArcAngleMove                                (0x2907)
#define ID_IMC_ImmediateMoveGetVel                                  (0x2908)
#define ID_IMC_ImmediateMoveStop                                    (0x2902)
#define ID_IMC_ImmediateMoveEStop                                   (0x2903)

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/*----7.9 周期运动接口                                     ---*/
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#define ID_IMC_SetCycleMovePara                                     (0x1700)
#define ID_IMC_GetCycleMovePara                                     (0x1701)
#define ID_IMC_StartCycleMove                                       (0x1702)
#define ID_IMC_StopCycleMove                                        (0x1703)
#define ID_IMC_GetCycleMovePrfPos                                   (0x1704)
#define ID_IMC_GetCycleMoveEncPos                                   (0x1705)
#define ID_IMC_SetCycleMoveCurPos                                   (0x1706)

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/*----7.10 捆绑PT运动模式接口                                     ---*/
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#define ID_IMC_SetupPtPackSys                                       (0x1920)
#define ID_IMC_AddMotionPointPtPack                                 (0x1921)
#define ID_IMC_AddDoPointPtPack                                     (0x1929)
#define ID_IMC_StartPtPack                                          (0x1922)
#define ID_IMC_StopPtPack                                           (0x1923)
#define ID_IMC_GetPtPackRestSpace                                   (0x1924)
#define ID_IMC_GetPtPackStatus                                      (0x1925)
#define ID_IMC_DeletePtPackSys                                      (0x1927)
#define ID_IMC_ClrPtPackData                                        (0x1928)
#define ID_IMC_SetPtPackIncMode                                     (0x192a)
#define ID_IMC_GetPtPackIncMode                                     (0x192b)
#define ID_IMC_EnablePtPackNoDataProtect                            (0x192c)
#define ID_IMC_DisablePtPackNoDataProtect                           (0x192d)
#define ID_IMC_GetPtPackNoDataProtectStatus                         (0x192e)
#define ID_IMC_ClrPtPackError                                       (0x192f)
#define ID_IMC_GetPtPackError                                       (0x1930)
#define ID_IMC_PtPackGetArrivalSts                                  (0x1932)

/*==========================================================================*/
/*----8 事件管理接口                                                     ---*/
/*==========================================================================*/
#define ID_IMC_SetEventIO                                           (0x1600)
#define ID_IMC_GetEventIO                                           (0x1601)
#define ID_IMC_EnableEventIO                                        (0x1602)
#define ID_IMC_DisableEventIO                                       (0x1603)
                                                                    
#define ID_IMC_SetEventDiMotion                                     (0x1610)
#define ID_IMC_GetEventDiMotion                                     (0x1611)
#define ID_IMC_EnableEventDiMotion                                  (0x1612)
#define ID_IMC_DisableEventDiMotion                                 (0x1613)
#define ID_IMC_GetEventDiMotionSts                                  (0x1614)
#define ID_IMC_ClearEventDiMotionSts                                (0x1615)

#define ID_IMC_SetEventCompareOut                                   (0x1620)
#define ID_IMC_GetEventCompareOut                                   (0x1621)
#define ID_IMC_EnableEventCompareOut                                (0x1622)
#define ID_IMC_DisableEventCompareOut                               (0x1623)

#define ID_IMC_SetEventVirtualIOVal                                 (0x1630)
#define ID_IMC_GetEventVirtualIOVal                                 (0x1631)
#define ID_IMC_GetEventVirtualIOUseSts                              (0x1632)








