#ifdef SGIF_EXPORTS #define EXP __declspec(dllexport) #else #define EXP __declspec(dllimport) #endif #include "Winsock2.h" #include "Ws2tcpip.h" #include #include #include #pragma comment(lib, "WS2_32.lib") // Return Code List typedef enum { RC_OK = 0x0000, // The operation is completed successfully. /////////////////////////////////////////////// // Communication error from controller notification // RC_NAK_COMMAND = 0x1001, // Command error RC_NAK_COMMAND_LENGTH, // Command length error RC_NAK_TIMEOUT, // Timeout RC_NAK_CHECKSUM, // Check sum error RC_NAK_INVALID_STATE, // Status error RC_NAK_OTHER, // Other error RC_NAK_PARAMETER, // Parameter error RC_NAK_OUT_STAGE, // OUT calculation count limitation error RC_NAK_OUT_HEAD_NUM, // No. of used head/OUT over error RC_NAK_PARAM_RANGE_DATA_STORED, // OUT No which data reserved over acctive out count RC_NAK_OUT_INVALID_CALC, // OUT which cannot be used for calculation was specified for calculation. RC_NAK_OUT_VOID, // OUT which specified for calculation is not found. RC_NAK_INVALID_CYCLE, // Unavailable sampling cycle RC_NAK_CTRL_ERROR, // Main unit error RC_NAK_SRAM_ERROR, // Setting value error /////////////////////////////////////////////// // Communication DLL error notification // RC_ERR_OPEN_DEVICE = 0x2000,// Opening the device failed. RC_ERR_NO_DEVICE, // The device is not open. RC_ERR_SEND, // Command sending error RC_ERR_RECEIVE, // Response receiving error RC_ERR_TIMEOUT, // Timeout RC_ERR_NODATA, // No data RC_ERR_NOMEMORY, // No free memory RC_ERR_DISCONNECT, // Cable disconnection suspected RC_ERR_UNKNOWN, // Undefined error RC_ERR_DEVID_OVER, // over dev_id scale RC_ERR_NET_NO_CONN, // no connected at the deviceID RC_ERR_IP_EXISTED, RC_ERR_SELECT, // select of /socket error RC_ERR_NULL_PARAMETER, // NULL point exception from parameter RC_ERR_DIY_FUNC, // error due to dir function RC_ERR_OVER_PARAMENTER, // paramenter over the limition RC_ERR_NOT_SUPPORT // ¹¦Äܲ»Ö§³Ö } RC; //device Version typedef enum { SG3035 = 0, SG3030 = 1, SG3085 = 2, SG3080 = 3, SG5025 = 4, SG5020 = 5, SG5055 = 6, SG5050 = 7, SG5085 = 8, SG5080 = 9, SG5155 = 10, SG5150 = 11, SC04025 = 12, SC03560 = 13, SGI500 = 14, SGI505 = 15, SGI400 = 16, SGI405 = 17, SGI150 = 18, SGI155 = 19, SGI080 = 20, SGI085 = 21, SGI050 = 22, SGI055 = 23, SGI030 = 24, SGI035 = 25, SGI020 = 26, SGI025 = 27, SG3155 = 28, SG3150 = 29, SC01045 = 30, SC10015 = 31, SC20011 = 32, SC01236 = 33, SCI04025 = 34, SCI03560 = 35, SCI01045 = 36, SCI10015 = 37, SCI20011 = 38, SCI01236 = 39, }SGIF_DEVICE_TYPE; // Measurement value structures typedef enum { SGIF_FLOATRESULT_VALID, // valid data SGIF_FLOATRESULT_RANGEOVER_P, // over range at positive (+) side SGIF_FLOATRESULT_RANGEOVER_N, // over range at negative (-) side SGIF_FLOATRESULT_WAITING, // Wait for comparator result SGIF_FLOATRESULT_ALARM, // alarm SGIF_FLOATRESULT_INVALID, // Invalid (error, etc.) } SGIF_FLOATRESULT; // Set ABLE typedef enum { SGIF_ABLEMODE_AUTO, // AUTO SGIF_ABLEMODE_MANUAL, // manual } SGIF_ABLEMODE; // Set Measurement Mode typedef enum { SGIF_MEASUREMODE_NORMAL, // normal SGIF_MEASUREMODE_HALF_T, // translucent object SGIF_MEASUREMODE_TRAN_1, // transparent object SGIF_MEASUREMODE_TRAN_2, // transparent object 2 SGIF_MEASUREMODE_MRS, // multireflective object SGIF_MEASUREMODE_OPAQUE = SGIF_MEASUREMODE_MRS, // Semi opaque object } SGIF_MEASUREMODE; // Set Basic Point typedef enum { SGIF_BASICPOINT_NEAR, // NEAR SGIF_BASICPOINT_FAR, // FAR } SGIF_BASICPOINT; // Set Mounting Mode typedef enum { SGIF_REFLECTIONMODE_DIFFUSION, // diffuse reflection SGIF_REFLECTIONMODE_MIRROR, // specular reflection } SGIF_REFLECTIONMODE; // Set Median typedef enum { SGIF_MEDIAN_OFF, // OFF SGIF_MEDIAN_7, // 7 point SGIF_MEDIAN_15, // 15 point SGIF_MEDIAN_31, // 31 point } SGIF_MEDIAN; // Set LASER CTRL group. typedef enum { SGIF_LASER_CTRL_GROUP_1, // LASER CTRL 1 SGIF_LASER_CTRL_GROUP_2, // LASER CTRL 2 } SGIF_LASER_CTRL_GROUP; // Set a range. typedef enum { SGIF_RANGE_CENTER, // CENTER SGIF_RANGE_FAR, // FAR } SGIF_RANGE; // Set Mutual Interference Prevention Group typedef enum { SGIF_MUTUAL_INTERFERENCE_PREVENTION_GROUP_A, // Group A SGIF_MUTUAL_INTERFERENCE_PREVENTION_GROUP_B, // Group B SGIF_MUTUAL_INTERFERENCE_PREVENTION_GROUP_C, // Group C } SGIF_MUTUAL_INTERFERENCE_PREVENTION_GROUP; // Set calculation method. typedef enum { SGIF_CALCMETHOD_HEADA, // head A SGIF_CALCMETHOD_HEADB, // head B SGIF_CALCMETHOD_HEAD_HEADA_PLUS_HEADB, // head A+head B SGIF_CALCMETHOD_HEAD_HEADA_MINUS_HEADB, // head A-head B SGIF_CALCMETHOD_HEAD_HEADA_TRANSPARENT, // head A transparent object SGIF_CALCMETHOD_HEAD_HEADB_TRANSPARENT, // head B transparent object SGIF_CALCMETHOD_HEAD = 0, // head SGIF_CALCMETHOD_OUT, // OUT SGIF_CALCMETHOD_ADD, // ADD SGIF_CALCMETHOD_SUB, // SUB SGIF_CALCMETHOD_AVE, // AVE SGIF_CALCMETHOD_MAX, // MAX SGIF_CALCMETHOD_MIN, // MIN SGIF_CALCMETHOD_PP, // P-P } SGIF_CALCMETHOD; // Set Target Surface typedef enum { SGIF_CALCTARGET_PEAK_1, // peak 1 SGIF_CALCTARGET_PEAK_2, // peak 2 SGIF_CALCTARGET_PEAK_3, // peak 3 SGIF_CALCTARGET_PEAK_4, // peak 4 SGIF_CALCTARGET_PEAK_1_2, // peak 1-peak 2 SGIF_CALCTARGET_PEAK_1_3, // peak 1-peak 3 SGIF_CALCTARGET_PEAK_1_4, // peak 1-peak 4 SGIF_CALCTARGET_PEAK_2_3, // peak 2-peak 3 SGIF_CALCTARGET_PEAK_2_4, // peak 2-peak 4 SGIF_CALCTARGET_PEAK_3_4, // peak 3-peak 4 } SGIF_CALCTARGET; // Set Filter Mode typedef enum { SGIF_FILTERMODE_MOVING_AVERAGE, // moving average } SGIF_FILTERMODE; // Specify the filter parameter. (The number of averaging for moving average, or the cutoff frequency for LPF/HPF.) typedef enum { SGIF_FILTERPARA_AVE_1 = 0, // 1 time SGIF_FILTERPARA_AVE_4, // 4 times SGIF_FILTERPARA_AVE_16, // 16 times SGIF_FILTERPARA_AVE_64, // 64 times SGIF_FILTERPARA_AVE_256, // 256 times SGIF_FILTERPARA_AVE_1024, // 1024 times SGIF_FILTERPARA_AVE_4096, // 4096 times SGIF_FILTERPARA_AVE_16384, // 16384 times SGIF_FILTERPARA_AVE_65536, // 65536 times SGIF_FILTERPARA_AVE_262144, // 262144 times }SGIF_FILTERPARA; // Set Trigger Mode typedef enum { SGIF_TRIGGERMODE_EXT1, // external trigger 1 SGIF_TRIGGERMODE_EXT2, // external trigger 2 } SGIF_TRIGGERMODE; // Set the Measurement Mode. typedef enum { SGIF_CALCMODE_NORMAL, // normal SGIF_CALCMODE_PEAKHOLD, // peak hold SGIF_CALCMODE_BOTTOMHOLD, // bottom hold SGIF_CALCMODE_PEAKTOPEAKHOLD, // peak-to-peak hold SGIF_CALCMODE_SAMPLEHOLD, // sample hold } SGIF_CALCMODE; // Set Minimum Display Unit typedef enum { SGIF_DISPLAYUNIT_0000_01MM = 0, // 0.01mm SGIF_DISPLAYUNIT_000_001MM, // 0.001mm SGIF_DISPLAYUNIT_00_0001MM, // 0.0001mm SGIF_DISPLAYUNIT_0_00001MM, // 0.00001mm SGIF_DISPLAYUNIT_00000_1UM, // 0.1um SGIF_DISPLAYUNIT_0000_01UM, // 0.01um SGIF_DISPLAYUNIT_000_001UM, // 0.001um } SGIF_DISPLAYUNIT; // Specify OUT typedef enum { SGIF_OUTNO_01 = 0x0001, // OUT01 SGIF_OUTNO_02 = 0x0002, // OUT02 SGIF_OUTNO_03 = 0x0004, // OUT03 SGIF_OUTNO_04 = 0x0008, // OUT04 SGIF_OUTNO_ALL = 0x000F, // All OUTs } SGIF_OUTNO; // Set Storage (Cycle) typedef enum { SGIF_STORAGECYCLE_1, // sampling rate x 1 SGIF_STORAGECYCLE_2, // sampling rate x 2 SGIF_STORAGECYCLE_5, // sampling rate x 5 SGIF_STORAGECYCLE_10, // sampling rate x 10 SGIF_STORAGECYCLE_20, // sampling rate x 20 SGIF_STORAGECYCLE_50, // sampling rate x 50 SGIF_STORAGECYCLE_100, // sampling rate x 100 SGIF_STORAGECYCLE_200, // sampling rate x 200 SGIF_STORAGECYCLE_500, // sampling rate x 500 SGIF_STORAGECYCLE_1000, // sampling rate x 1000 SGIF_STORAGECYCLE_TIMING, // Timing sync } SGIF_STORAGECYCLE; // Set Sampling Rate typedef enum { //SG5000ϵÁÐ SGIF_5000_SAMPLINGCYCLE_590KHZ, // 590kHz SGIF_5000_SAMPLINGCYCLE_400KHZ, // 400kHz SGIF_5000_SAMPLINGCYCLE_200KHZ, // 200kHz SGIF_5000_SAMPLINGCYCLE_88KHZ, // 88kHz SGIF_5000_SAMPLINGCYCLE_50KHZ, // 50kHz SGIF_5000_SAMPLINGCYCLE_20KHZ, // 20kHz SGIF_5000_SAMPLINGCYCLE_10KHZ, // 10kHz SGIF_5000_SAMPLINGCYCLE_5KHZ, // 5kHz SGIF_5000_SAMPLINGCYCLE_2KHZ, // 2kHz SGIF_5000_SAMPLINGCYCLE_1KHZ, // 1kHz+ //SG3000ϵÁÐ SGIF_3000_SAMPLINGCYCLE_88KHZ = 10, // 88kHz SGIF_3000_SAMPLINGCYCLE_50KHZ, // 50kHz SGIF_3000_SAMPLINGCYCLE_20KHZ, // 20kHz SGIF_3000_SAMPLINGCYCLE_10KHZ, // 10kHz SGIF_3000_SAMPLINGCYCLE_5KHZ, // 5kHz //SGIF_3000_SAMPLINGCYCLE_2KHZ, // 2kHz SGIF_3000_SAMPLINGCYCLE_1KHZ, // 1kHz //SCIϵÁÐ SCI_SAMPLINGCYCLE_33KHZ = 30, // 33kHz SCI_SAMPLINGCYCLE_20KHZ, // 20kHz SCI_SAMPLINGCYCLE_15KHZ, // 15kHz SCI_SAMPLINGCYCLE_10KHZ, // 10kHz SCI_SAMPLINGCYCLE_5KHZ, // 5kHz SCI_SAMPLINGCYCLE_2KHZ, // 2kHz SCI_SAMPLINGCYCLE_1KHZ, // 1kHz SCI_SAMPLINGCYCLE_05KHZ, // 0.5kHz } SGIF_SAMPLINGCYCLE; // Set Mutual interference prevention typedef enum { SGIF_MUTUAL_INTERFERENCE_PREVENTION_OFF, // OFF SGIF_MUTUAL_INTERFERENCE_PREVENTION_AB_ON, // AB-ON SGIF_MUTUAL_INTERFERENCE_PREVENTION_ABC_ON, // ABC-ON } SGIF_MUTUAL_INTERFERENCE_PREVENTION; // Set Strobe Time typedef enum { SGIF_STOROBETIME_2MS, // 2ms SGIF_STOROBETIME_5MS, // 5ms SGIF_STOROBETIME_10MS, // 10ms SGIF_STOROBETIME_20MS, // 20ms } SGIF_STOROBETIME; // Mode Switch typedef enum { SGIF_MODE_NORMAL, // normal mode SGIF_MODE_COMMUNICATION, // setting mode } SGIF_MODE; //Encoder ext typedef enum { SGIF_EmRunningMode_cont,//off SGIF_EmRunningMode_time, SGIF_EmRunningMode_trig, }SGIF_EmRunningMode; typedef enum { SGIF_EmDirection_all,//+- SGIF_EmDirection_pos, SGIF_EmDirection_neg, }SGIF_EmDirection; typedef enum { SGIF_EmEncoderInput_1x1, SGIF_EmEncoderInput_2x1, SGIF_EmEncoderInput_2x2, SGIF_EmEncoderInput_2x4, }SGIF_EmEncoderInput; typedef enum { SGIF_EmInputTime_100 = 100, SGIF_EmInputTime_200 = 200, SGIF_EmInputTime_500 = 500, SGIF_EmInputTime_1000 = 1000, SGIF_EmInputTime_2000 = 2000, SGIF_EmInputTime_5000 = 5000, SGIF_EmInputTime_10000 = 10000, SGIF_EmInputTime_20000 = 20000, }SGIF_EmInputTime; // Measurement value typedef struct { int OutNo; // OUT No(1-4) SGIF_FLOATRESULT FloatResult; // valid or invalid data float Value; // Measurement value } SGIF_FLOATVALUE_OUT; typedef struct { SGIF_FLOATRESULT FloatResult; // valid or invalid data float Value; // Measurement value } SGIF_FLOATVALUE; // IP address typedef struct { IN_ADDR IPAddress; } SGIF_OPENPARAM_ETHERNET; //Mask Minimum Display Unit(0.01mm) #define MASKUNIT 100 #ifdef __cplusplus extern "C" { #endif EXP RC WINAPI SGIF_GetDeviceType(IN int DeviceID, OUT SGIF_DEVICE_TYPE* deviceType); // Measured control commands /// /// \brief SGIF_GetCameraSpotType ¹â°ßÀàÐÍ(²»Ö§³ÖSCI) /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param ControlType: Êä³ö0£ºÐ¡¹â°ß£¬1£º´ó¹â°ß /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetCameraSpotType(IN int DeviceID, OUT int *EissionSpotType); /////////////////////////////////////////////// // Measurement control commands // // Measured value output (single) /// /// \brief SGIF_GetCalcDataSingle ²âÁ¿ÖµÊä³ö /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo: Êä³öOUT±àºÅ /// \param CalcData: ²âÁ¿Öµ /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetCalcDataSingle(IN int DeviceID, IN int OutNo, OUT SGIF_FLOATVALUE_OUT * CalcData); // Measured value output (multiple) /// /// \brief SGIF_GetCalcDataMulti ¶à¸ö²âÁ¿ÖµÊä³ö /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo: Êä³öOUT±àºÅ×éºÏ /// \param CalcData: ²âÁ¿ÖµÊý×é /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetCalcDataMulti(IN int DeviceID, IN SGIF_OUTNO OutNo, OUT SGIF_FLOATVALUE_OUT * CalcData); // Measured value output (ALL) /// /// \brief SGIF_GetCalcDataALL È«²¿²âÁ¿ÖµÊä³ö /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param CalcData: ²âÁ¿ÖµÊý×é /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetCalcDataALL(IN int DeviceID, OUT SGIF_FLOATVALUE_OUT * CalcData); // Timing ON/OFF (single) /// /// \brief SGIF_SetTimingSingle ¼ÆÊ±ON/OFF(Ò»¸ö) /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo: Êä³öOUT±àºÅ /// \param OnOff: ¿ª»ò¹Ø /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetTimingSingle(IN int DeviceID, IN int OutNo, IN BOOL OnOff); // Timing ON/OFF (multiple) /// /// \brief SGIF_SetTimingMulti ¼ÆÊ±ON/OFF(¶à¸ö) /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo: Êä³öOUT±àºÅ×éºÏ /// \param OnOff: ¿ª»ò¹Ø /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetTimingMulti(IN int DeviceID, IN SGIF_OUTNO OutNo, IN BOOL OnOff); // Timing ON/OFF (synchronous) /// /// \brief SGIF_SetTimingSync ¼ÆÊ±ON/OFF(ͬ²½) /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OnOff: ¿ª»ò¹Ø /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetTimingSync(IN int DeviceID, IN BOOL OnOff); // Auto-zero ON/OFF (single) /// /// \brief SGIF_SetZeroSingle ×Ô¶¯¹éÁ㣨һ¸ö£© /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo: Êä³öOUT±àºÅ /// \param OnOff: ¿ª»ò¹Ø /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetZeroSingle(IN int DeviceID, IN int OutNo, IN BOOL OnOff); // Auto-zero ON/OFF (multiple) /// /// \brief SGIF_SetZeroMulti ×Ô¶¯¹éÁ㣨¶à¸ö£© /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo: Êä³öOUT±àºÅ×éºÏ /// \param OnOff: ¿ª»ò¹Ø /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetZeroMulti(IN int DeviceID, IN SGIF_OUTNO OutNo, IN BOOL OnOff); // Auto-zero ON/OFF (synchronous) /// /// \brief SGIF_SetZeroSync ×Ô¶¯¹éÁ㣨ͬ²½£© /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OnOff: ¿ª»ò¹Ø /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetZeroSync(IN int DeviceID, IN BOOL OnOff); // Measured value reset (single) /// /// \brief SGIF_SetResetSingle ÖØÖã¨Ò»¸ö£© /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo: Êä³öOUT±àºÅ /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetResetSingle(IN int DeviceID, IN int OutNo); // Measured value reset (multiple) /// /// \brief SGIF_SetResetMulti ÖØÖ㨶à¸ö£© /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo: Êä³öOUT±àºÅ×éºÏ /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetResetMulti(IN int DeviceID, IN SGIF_OUTNO OutNo); // Measured value reset (synchronous) /// /// \brief SGIF_SetResetSync ÖØÖã¨Í¬²½£© /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetResetSync(IN int DeviceID); // Program Change /// /// \brief SGIF_SetProgramNo ³ÌÐòÇл» /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param ProgramNo: ³ÌÐò±àºÅ£¨0µ½7£© /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetProgramNo(IN int DeviceID, IN int ProgramNo); // Program Check /// /// \brief SGIF_GetProgramNo ³ÌÐòÈ·ÈÏ /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param ProgramNo: ³ÌÐò±àºÅ£¨0µ½7£© /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetProgramNo(IN int DeviceID, OUT int * ProgramNo); // Starting the Data Storage /// /// \brief SGIF_DataStorageStart Êý¾Ý´æ´¢¿ªÊ¼ /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_DataStorageStart(IN int DeviceID); // Stopping the Data Storage /// /// \brief SGIF_DataStorageStop Êý¾Ý´æ´¢Í£Ö¹ /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_DataStorageStop(IN int DeviceID); // Outputting the Data Storage /// /// \brief SGIF_DataStorageGetData Êý¾Ý´æ´¢Êý¾ÝÊä³ö /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo Êä³öOUT±àºÅ /// \param NumOfBuffer »º³åÇø´óС£¨×î¶à¿É½ÓÊܶàÉÙ¸öÊý¾Ý£© /// \param OutBuffer Êý¾ÝÊý×é /// \param NumReceived ʵ¼Ê½ÓÊÕµÄÊý¾Ý¸öÊý /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_DataStorageGetData(IN int DeviceID, IN int OutNo, IN int NumOfBuffer, OUT float * OutBuffer, OUT int *NumReceived); // Initializing the Data Storage /// /// \brief SGIF_DataStorageInit Êý¾Ý´æ´¢³õʼ»¯ /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_DataStorageInit(IN int DeviceID); // Data Storage Accumulation Status Output /// /// \brief SGIF_DataStorageGetStatus Êý¾Ý´æ´¢×´Ì¬Êä³ö /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param lsStorage ´æ´¢×´Ì¬ /// \param NumStorageData ¸÷Êä³ö¿Ú´æ´¢ÊýÁ¿Êý×é /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_DataStorageGetStatus(IN int DeviceID, OUT BOOL * lsStorage, OUT int * NumStorageData); /////////////////////////////////////////////// // Setting change commands // // Set Tolerance /// /// \brief SGIF_SetTolerance ¹«²îÉ趨 /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo Êä³öOUT±àºÅ /// \param UpperLimit ÉÏÏÞ£¬´«ÈëΪÓÐЧÊý×Ö£¨È¥µôСÊýµãºóµÄÕûÐΣ© /// \param LowerLimit ÏÂÏÞ£¬´«ÈëΪÓÐЧÊý×Ö£¨È¥µôСÊýµãºóµÄÕûÐΣ© /// \param Hystersys Öͺ󣬴«ÈëΪÓÐЧÊý×Ö£¨È¥µôСÊýµãºóµÄÕûÐΣ© /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetTolerance(IN int DeviceID, IN int OutNo, IN int UpperLimit, IN int LowerLimit, IN int Hystersys); // Set ABLE /// /// \brief SGIF_SetAbleMode AbleģʽÉ趨 /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param HeadNo ´«¸ÐÍ·±àºÅ /// \param AbleMode ģʽ /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetAbleMode(IN int DeviceID, IN int HeadNo, IN SGIF_ABLEMODE AbleMode); // Set ABLE Control Range /// /// \brief SGIF_SetAbleMinMax Able¿ØÖÆ·¶Î§É趨 /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param HeadNo ´«¸ÐÍ·±àºÅ /// \param Min ÏÂÏÞ /// \param Max ÉÏÏÞ /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetAbleMinMax(IN int DeviceID, IN int HeadNo, IN int Min, IN int Max); // Set Detection mode /// /// \brief SGIF_SetMeasureMode ²âÁ¿Ä£Ê½É趨 /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param HeadNo ´«¸ÐÍ·±àºÅ /// \MeasureMode ²âÁ¿Ä£Ê½ /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetMeasureMode(IN int DeviceID, IN int HeadNo, IN SGIF_MEASUREMODE MeasureMode); // Set Base point /// /// \brief SGIF_SetBasicPoint »ù×¼µãÉ趨 /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param HeadNo ´«¸ÐÍ·±àºÅ /// \param BasicPoint »ù×¼µã /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetBasicPoint(IN int DeviceID, IN int HeadNo, IN SGIF_BASICPOINT BasicPoint); // Set Number of Times of Alarm Processing /// /// \brief SGIF_SetNumAlarm ¾¯±¨ÊýÁ¿É趨 /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param HeadNo ´«¸ÐÍ·±àºÅ /// \param AlarmNum ¾¯±¨ÊýÁ¿ /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetNumAlarm(IN int DeviceID, IN int HeadNo, IN int AlarmNum); // Set Number of Times of Alarm Recovery /// /// \brief SGIF_SetNumRecovery »Ö¸´ÊýÁ¿É趨 /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param HeadNo ´«¸ÐÍ·±àºÅ /// \param RecoveryNum »Ö¸´´ÎÊý /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetNumRecovery(IN int DeviceID, IN int HeadNo, IN int RecoveryNum); // Set Alarm Level /// /// \brief SGIF_SetAlarmLevel ¾¯±¨¼¶±ðÉ趨 /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param HeadNo ´«¸ÐÍ·±àºÅ /// \param AlarmLevel ¾¯±¨¼¶±ð /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetAlarmLevel(IN int DeviceID, IN int HeadNo, IN int AlarmLevel); // Starting the ABLE Calibration /// /// \brief SGIF_AbleStart AbleУ׼¿ªÊ¼ /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param HeadNo ´«¸ÐÍ·±àºÅ /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_AbleStart(IN int DeviceID, IN int HeadNo); // Finishing the ABLE Calibration /// /// \brief SGIF_AbleStop AbleУ׼Íê³É /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_AbleStop(IN int DeviceID); // Stopping the ABLE Calibration /// /// \brief SGIF_AbleCancel AbleУ׼ֹͣ /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_AbleCancel(IN int DeviceID); // Set Mounting Mode /// /// \brief SGIF_SetReflectionMode °²×°Ä£Ê½É趨 /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param HeadNo ´«¸ÐÍ·±àºÅ /// \param ReflectionMode ·´Éäģʽ /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetReflectionMode(IN int DeviceID, IN int HeadNo, IN SGIF_REFLECTIONMODE ReflectionMode); // Set Mask /// /// \brief SGIF_SetMask ÆÁ±ÎÉ趨 /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param HeadNo ´«¸ÐÍ·±àºÅ /// \param OnOff ¿ª¹Ø /// \param HeadNo µãλ1 /// \param HeadNo µãλ2 /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetMask(IN int DeviceID, IN int HeadNo, IN BOOL OnOff, IN int Pos1, IN int Pos2); // Set Median /// /// \brief SGIF_SetMedian ÖÐλÊýÉ趨 /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param HeadNo ´«¸ÐÍ·±àºÅ /// \param Median ÖÐλÊý /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetMedian(IN int DeviceID, IN int HeadNo, IN SGIF_MEDIAN Median); // Set LASER CTRL group /// /// \brief SGIF_SetLaserCtrlGroup Laser Ctrl×éÉ趨 /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param HeadNo ´«¸ÐÍ·±àºÅ /// \param LaserCtrlGroup Laser Ctrl×é /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetLaserCtrlGroup(IN int DeviceID, IN int HeadNo, IN SGIF_LASER_CTRL_GROUP LaserCtrlGroup); // Set Mutual interference prevention group /// /// \brief SGIF_SetMutualInterferencePreventionGroup ·ÀÖ¹»¥Ïà¸ÉÈÅ×éÉ趨 /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param HeadNo ´«¸ÐÍ·±àºÅ /// \param Group ×é /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetMutualInterferencePreventionGroup(IN int DeviceID, IN int HeadNo, IN SGIF_MUTUAL_INTERFERENCE_PREVENTION_GROUP Group); // Set Calculation method /// /// \brief SGIF_SetCalcMethod ¼ÆË㷽ʽÉ趨 /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo Êä³öOUT±àºÅ /// \param CalcMethod ¼ÆËã·½·¨ /// \param HeadOutNo ´«¸ÐÍ·Êä³ö±àºÅ /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetCalcMethod(IN int DeviceID, IN int OutNo, IN SGIF_CALCMETHOD CalcMethod, IN int HeadOutNo); // Set Surface to be measured /// /// \brief SGIF_SetCalcTarget ²âÁ¿Ä¿±êÉ趨 /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo Êä³öOUT±àºÅ /// \param CalcTarget ¼ÆËã±êÇ© /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetCalcTarget(IN int DeviceID, IN int OutNo, IN SGIF_CALCTARGET CalcTarget); // Set OUT to be calculated (ADD, SUB) /// /// \brief SGIF_SetOutAddSub ´ý¼ÆËãµÄOUT(Add,Sub)É趨 /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo Êä³öOUT±àºÅ /// \param AddSub1 ´ý¼ÆËãµÄOUT /// \param AddSub2 ´ý¼ÆËãµÄOUT /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetOutAddSub(IN int DeviceID, IN int OutNo, IN int AddSub1, IN int AddSub2); // Set OUT to be calculated (AVE, MAX, MIN, P-P) /// /// \brief SGIF_SetOutOperation ´ý¼ÆËãµÄOUT(Ave,Max,Min,P-P)É趨 /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo Êä³öOUT±àºÅ /// \param TargetOut ¶à¸öOUT×éºÏ /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetOutOperation(IN int DeviceID, IN int OutNo, IN SGIF_OUTNO TargetOut); // Set Scaling /// /// \brief SGIF_SetScaling Ëõ·ÅÉ趨 /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo Êä³öOUT±àºÅ /// \param InputValue1 µã1µÄ²âÁ¿Öµ£¨ÊäÈëÖµ£©£¬´«ÓÐЧÊý×Ö£¨È¥µôСÊýµãºóµÄÕûÐΣ© /// \param OutputValue1 µã1µÄÏÔʾֵ£¨Êä³öÖµ£©£¬´«ÓÐЧÊý×Ö£¨È¥µôСÊýµãºóµÄÕûÐΣ© /// \param InputValue2 µã2µÄ²âÁ¿Öµ£¨ÊäÈëÖµ£©£¬´«ÓÐЧÊý×Ö£¨È¥µôСÊýµãºóµÄÕûÐΣ© /// \param OutputValue2 µã2µÄÏÔʾֵ£¨Êä³öÖµ£©£¬´«ÓÐЧÊý×Ö£¨È¥µôСÊýµãºóµÄÕûÐΣ© /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetScaling(IN int DeviceID, IN int OutNo, IN int InputValue1, IN int OutputValue1, IN int InputValue2, IN int OutputValue2); // Set Filter Mode /// /// \brief SGIF_SetFilter Â˲¨Æ÷É趨 /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo Êä³öOUT±àºÅ /// \param FilterMode Â˲¨Ä£Ê½ /// \param FilterPara Â˲¨²ÎÊý /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetFilter(IN int DeviceID, IN int OutNo, IN SGIF_FILTERMODE FilterMode, IN SGIF_FILTERPARA FilterPara); // Set Trigger Mode /// /// \brief SGIF_SetTriggerMode ´¥·¢Ä£Ê½É趨 /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo Êä³öOUT±àºÅ /// \param TriggerMode ´¥·¢Ä£Ê½ /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetTriggerMode(IN int DeviceID, IN int OutNo, IN SGIF_TRIGGERMODE TriggerMode); // Set Offset /// /// \brief SGIF_SetOffset Æ«ÒÆÉ趨 /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo Êä³öOUT±àºÅ /// \param Offset Æ«ÒÆÁ¿ /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetOffset(IN int DeviceID, IN int OutNo, IN int Offset); // Set Calculation Mode /// /// \brief SGIF_SetCalcMode ¼ì²âģʽ£¨²âÁ¿Ä£Ê½£©É趨 /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo Êä³öOUT±àºÅ /// \param CalcMode ¼ì²âģʽ±àºÅ /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetCalcMode(IN int DeviceID, IN int OutNo, IN SGIF_CALCMODE CalcMode); // Set Minimum Display Unit /// /// \brief SGIF_SetDisplayUnit É趨ÏÔʾµ¥Î»É趨 /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo Êä³öOUT±àºÅ /// \param DisplayUnit ÏÔʾµ¥Î» /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetDisplayUnit(IN int DeviceID, IN int OutNo, IN SGIF_DISPLAYUNIT DisplayUnit); // Set Synchronization /// /// \brief SGIF_SetSynchronization ͬ²½É趨 /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo Êä³öOUT±àºÅ /// \param OnOff ¿ª¹Ø /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetSynchronization(IN int DeviceID, IN int OutNo, IN BOOL OnOff); // Set Storage (OUT No. specification) /// /// \brief SGIF_SetStorageTarget ´æ´¢£¨OUT±àºÅ¹æ¸ñ£©É趨 /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo Êä³öOUT±àºÅ /// \param OnOff ¿ª¹Ø /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetStorageTarget(IN int DeviceID, IN int OutNo, IN BOOL OnOff); // Set Sampling Rate /// /// \brief SGIF_SetSamplingCycle ²ÉÑùÖÜÆÚÉ趨 /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param SamplingCycle ²ÉÑùÖÜÆÚ /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetSamplingCycle(IN int DeviceID, IN SGIF_SAMPLINGCYCLE SamplingCycle); // Set Mutual Interference Prevention /// /// \brief SGIF_SetMutualInterferencePrevention ·ÀÖ¹»¥Ïà¸ÉÈÅ×éÉ趨 /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OnOff ×éÉ趨 /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetMutualInterferencePrevention(IN int DeviceID, IN SGIF_MUTUAL_INTERFERENCE_PREVENTION OnOff); // Set Strobe Time /// /// \brief SGIF_SetStrobeTime ѡͨʱ¼äÉ趨 /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param StrobeTime ѡͨʱ¼ä /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetStrobeTime(IN int DeviceID, IN SGIF_STOROBETIME StrobeTime); // Set Data Storage /// /// \brief SGIF_SetDataStorage Êý¾Ý´æ´¢É趨 /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param NumStorage ´ý´æ´¢Êý¾ÝµÄ±àºÅ /// \param StorageCycle ´æ´¢ÖÜÆÚ /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetDataStorage(IN int DeviceID, IN int NumStorage, IN SGIF_STORAGECYCLE StorageCycle); // EncoderSetting /// /// \brief SGIF_SetRunningMode ÔËÐÐģʽÉèÖÃ(²»Ö§³ÖSCIÉ豸) /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param runningmode ÔËÐÐģʽ 0:OFF/1:¶¨Ê±/2:´¥·¢ /// \param CatchDirection ¼ì²â·½Ïò 0:Õý¸º¼ÆÊ±/1:Õý¼ÆÊ±/2:¸º¼ÆÊ± /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetRunningMode(IN int DeviceID, IN SGIF_EmRunningMode Runningmode, IN SGIF_EmDirection CatchDirection); // EncoderInputSetting /// /// \brief SGIF_SetEncoderMode ±àÂëÆ÷ÊäÈëģʽÉèÖÃ(²»Ö§³ÖSCIÉ豸) /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param Inputmode ÔËÐÐģʽ 0:1Ïà1µÝÔö/1:2Ïà1µÝÔö/2:2Ïà2µÝÔö,3:2Ïà4µÝÔö /// \param MinInputTime ×îСÊäÈëʱ¼ä /// \param TrigInterval ´¥·¢¼ä¸ô /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetEncoderMode(IN int DeviceID, IN SGIF_EmEncoderInput Inputmode,IN SGIF_EmInputTime InputTime,IN int TrigInterval); // SGIF_SetFormula /// /// \brief SGIF_SetFormula ÉèÖÃÅä·½ /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param filePath Å䷽·¾¶ /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// derive EXP RC WINAPI SGIF_SetFormula(IN int DeviceID, IN char* filePath ); // SGIF_SetFormula /// /// \brief SGIF_SetFormula ÉèÖÃÅä·½ /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param filePath Å䷽·¾¶ /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_DeriveFormula(IN int DeviceID, IN char* filePath); /////////////////////////////////////////////// // Setting confirmation commands // // Get Tolerance /// /// \brief SGIF_GetTolerance ¹«²îÉ趨»ñÈ¡ /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo Êä³öOUT±àºÅ /// \param UpperLimit ÉÏÏÞ£¬´«³öΪÓÐЧÊý×Ö£¨È¥µôСÊýµãºóµÄÕûÐΣ© /// \param LowerLimit ÏÂÏÞ£¬´«³öΪÓÐЧÊý×Ö£¨È¥µôСÊýµãºóµÄÕûÐΣ© /// \param Hysteresis Öͺ󣬴«³öΪÓÐЧÊý×Ö£¨È¥µôСÊýµãºóµÄÕûÐΣ© /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetTolerance(IN int DeviceID, IN int OutNo, OUT int * UpperLimit, OUT int * LowerLimit, OUT int * Hysteresis); // Get ABLE /// /// \brief SGIF_GetAbleMode AbleÉ趨»ñÈ¡ /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param HeadNo ´«¸ÐÍ·±àºÅ /// \param AbleMode Ableģʽ /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetAbleMode(IN int DeviceID, IN int HeadNo, OUT SGIF_ABLEMODE * AbleMode); // Get ABLE Control Range /// /// \brief SGIF_GetAbleMinMax Able¿ØÖÆ·¶Î§»ñÈ¡ /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param HeadNo ´«¸ÐÍ·±àºÅ /// \param Min ×îСֵ /// \param Max ×î´óÖµ /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetAbleMinMax(IN int DeviceID, IN int HeadNo, OUT int * Min, OUT int * Max); // Get Detection mode /// /// \brief SGIF_GetMeasureMode ²âÁ¿Ä£Ê½»ñÈ¡ /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param HeadNo ´«¸ÐÍ·±àºÅ /// \param MeasureMode ²âÁ¿Ä£Ê½ /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetMeasureMode(IN int DeviceID, IN int HeadNo, OUT SGIF_MEASUREMODE * MeasureMode); // Get Base point /// /// \brief SGIF_GetBasicPoint »ù×¼µã»ñÈ¡ /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param HeadNo ´«¸ÐÍ·±àºÅ /// \param BasicPoint »ù×¼µã /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetBasicPoint(IN int DeviceID, IN int HeadNo, OUT SGIF_BASICPOINT * BasicPoint); // Get Number of Times of Alarm Processing /// /// \brief SGIF_GetNumAlarm ¾¯±¨´¦Àí´ÎÊý»ñÈ¡ /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param HeadNo ´«¸ÐÍ·±àºÅ /// \param AlarmNum ¾¯±¨´ÎÊý /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetNumAlarm(IN int DeviceID, IN int HeadNo, OUT int * AlarmNum); // Get Number of Times of Alarm Recovery /// /// \brief SGIF_GetNumRecovery ¾¯±¨»Ö¸´´ÎÊý»ñÈ¡ /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param HeadNo ´«¸ÐÍ·±àºÅ /// \param RecoveryNum »Ö¸´´ÎÊý /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetNumRecovery(IN int DeviceID, IN int HeadNo, OUT int * RecoveryNum); // Get Alarm Level /// /// \brief SGIF_GetAlarmLevel ¾¯±¨¼¶±ð»ñÈ¡ /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param HeadNo ´«¸ÐÍ·±àºÅ /// \param AlarmLevel ¾¯±¨¼¶±ð /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetAlarmLevel(IN int DeviceID, IN int HeadNo, OUT int * AlarmLevel); // Get Mounting Mode /// /// \brief SGIF_GetReflectionMode °²×°Ä£Ê½»ñÈ¡ /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param HeadNo ´«¸ÐÍ·±àºÅ /// \param ReflectionMode ·´Éäģʽ /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetReflectionMode(IN int DeviceID, IN int HeadNo, OUT SGIF_REFLECTIONMODE * ReflectionMode); // Get Mask /// /// \brief SGIF_GetMask ÆÁ±ÎÉ趨»ñÈ¡ /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param HeadNo ´«¸ÐÍ·±àºÅ /// \param OnOff ¿ª¹Ø /// \param Pos1 λÖÃ1 /// \param Pos2 λÖÃ2 /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetMask(IN int DeviceID, IN int HeadNo, OUT BOOL * OnOff, OUT int * Pos1, OUT int * Pos2); // Get Median /// /// \brief SGIF_GetMedian ÖÐλÊý»ñÈ¡ /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param HeadNo ´«¸ÐÍ·±àºÅ /// \param Median ÖÐλÊý /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetMedian(IN int DeviceID, IN int HeadNo, OUT SGIF_MEDIAN * Median); // Get LASER CTRL group /// /// \brief SGIF_GetLaserCtrlGroup Laser Ctrl×é»ñÈ¡ /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param HeadNo ´«¸ÐÍ·±àºÅ /// \param LaserCtrlGroup Laser Ctrl×é /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetLaserCtrlGroup(IN int DeviceID, IN int HeadNo, OUT SGIF_LASER_CTRL_GROUP * LaserCtrlGroup); // Get Mutual interference prevention group /// /// \brief SGIF_GetMutualInterferencePreventionGroup ·ÀÖ¹»¥Ïà¸ÉÈÅ×é»ñÈ¡ /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param HeadNo ´«¸ÐÍ·±àºÅ /// \param Group ×é /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetMutualInterferencePreventionGroup(IN int DeviceID, IN int HeadNo, OUT SGIF_MUTUAL_INTERFERENCE_PREVENTION_GROUP * Group); // Get Calculation method /// /// \brief SGIF_GetCalcMethod ¼ÆË㷽ʽ»ñÈ¡ /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo Êä³öOUT±àºÅ /// \param CalcMethod ¼ÆËã·½·¨ /// \param HeadOutNo ´«¸ÐÍ·»òOUT±àºÅ /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetCalcMethod(IN int DeviceID, IN int OutNo, OUT SGIF_CALCMETHOD * CalcMethod, OUT int * HeadOutNo); // Get Surface to be measured /// /// \brief SGIF_GetCalcTarget ²âÁ¿Ä¿±ê»ñÈ¡ /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo Êä³öOUT±àºÅ /// \param CalcTarget ¼ÆËã±êÇ© /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetCalcTarget(IN int DeviceID, IN int OutNo, OUT SGIF_CALCTARGET * CalcTarget); // Get OUT to be calculated (ADD, SUB) /// /// \brief SGIF_GetOutAddSub ´ý¼ÆËãµÄOUT(Add,Sub)»ñÈ¡ /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo Êä³öOUT±àºÅ /// \param AddSub1 ´ý¼ÆËãµÄOUT±àºÅ1 /// \param AddSub2 ´ý¼ÆËãµÄOUT±àºÅ2 /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetOutAddSub(IN int DeviceID, IN int OutNo, OUT int * AddSub1, OUT int * AddSub2); // Get OUT to be calculated (AVE, MAX, MIN, P-P) /// /// \brief SGIF_GetOutOperation ´ý¼ÆËãµÄOUT(Ave,Max,Min,P-P)»ñÈ¡ /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo Êä³öOUT±àºÅ /// \param TargetOut ¶à¸öOUT»òHEAD×éºÏ /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetOutOperation(IN int DeviceID, IN int OutNo, OUT SGIF_OUTNO * TargetOut); // Get Scaling /// /// \brief SGIF_GetScaling Ëõ·ÅÉ趨»ñÈ¡ /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo Êä³öOUT±àºÅ /// \param InputValue1 µã1µÄ²âÁ¿Öµ£¨ÊäÈëÖµ£©£¬´«³öΪÓÐЧÊý×Ö£¨È¥µôСÊýµãºóµÄÕûÐΣ© /// \param OutputValue1 µã1µÄÏÔʾֵ£¨Êä³öÖµ£©£¬´«³öΪÓÐЧÊý×Ö£¨È¥µôСÊýµãºóµÄÕûÐΣ© /// \param InputValue2 µã2µÄ²âÁ¿Öµ£¨ÊäÈëÖµ£©£¬´«³öΪÓÐЧÊý×Ö£¨È¥µôСÊýµãºóµÄÕûÐΣ© /// \param OutputValue2 µã2µÄÏÔʾֵ£¨Êä³öÖµ£©£¬´«³öΪÓÐЧÊý×Ö£¨È¥µôСÊýµãºóµÄÕûÐΣ© /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetScaling(IN int DeviceID, IN int OutNo, OUT int * InputValue1, OUT int * OutputValue1, OUT int * InputValue2, OUT int * OutputValue2); // Get Filter Mode /// /// \brief SGIF_GetFilter Â˲¨Æ÷É趨»ñÈ¡ /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo Êä³öOUT±àºÅ /// \param FilterMode Â˲¨Æ÷ģʽ /// \param FilterPara Â˲¨²ÎÊý /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetFilter(IN int DeviceID, IN int OutNo, OUT SGIF_FILTERMODE * FilterMode, OUT SGIF_FILTERPARA * FilterPara); // Get Trigger Mode /// /// \brief SGIF_GetTriggerMode ´¥·¢Ä£Ê½»ñÈ¡ /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo Êä³öOUT±àºÅ /// \param TriggerMode ´¥·¢Ä£Ê½ /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetTriggerMode(IN int DeviceID, IN int OutNo, OUT SGIF_TRIGGERMODE * TriggerMode); // Get Offset /// /// \brief SGIF_GetOffset Æ«ÒÆ»ñÈ¡ /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo Êä³öOUT±àºÅ /// \param Offset Æ«ÒÆÁ¿ /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetOffset(IN int DeviceID, IN int OutNo, OUT int * Offset); // Get Calculation Mode /// /// \brief SGIF_GetCalcMode ¼ì²âģʽ£¨²âÁ¿Ä£Ê½£©»ñÈ¡ /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo Êä³öOUT±àºÅ /// \param CalcMode ²âÁ¿Ä£Ê½ /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetCalcMode(IN int DeviceID, IN int OutNo, OUT SGIF_CALCMODE * CalcMode); // Get Minimum Display Unit /// /// \brief SGIF_GetDisplayUnit ÏÔʾ×îСµ¥Î»»ñÈ¡ /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo Êä³öOUT±àºÅ /// \param DisplayUnit ÏÔʾ×îСµ¥Î» /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetDisplayUnit(IN int DeviceID, IN int OutNo, OUT SGIF_DISPLAYUNIT * DisplayUnit); // Get Synchronization /// /// \brief SGIF_GetSynchronization ͬ²½É趨»ñÈ¡ /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo Êä³öOUT±àºÅ /// \param OnOff ¿ª¹Ø /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetSynchronization(IN int DeviceID, IN int OutNo, OUT BOOL * OnOff); // Get Storage (OUT No. specification) /// /// \brief SGIF_GetStorageTarget ´æ´¢£¨OUT±àºÅÉ趨£©»ñÈ¡ /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo Êä³öOUT±àºÅ /// \param OnOff ¿ª¹Ø /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetStorageTarget(IN int DeviceID, IN int OutNo, OUT BOOL * OnOff); // Get Sampling Rate /// /// \brief SGIF_GetSamplingCycle ²ÉÑùÖÜÆÚ»ñÈ¡ /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param SamplingCycle ²ÉÑùÖÜÆÚ /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetSamplingCycle(IN int DeviceID, OUT SGIF_SAMPLINGCYCLE * SamplingCycle); // Get Mutual Interference Prevention /// /// \brief SGIF_GetMutualInterferencePrevention ·ÀÖ¹»¥Ïà¸ÉÈÅ»ñÈ¡ /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OnOff ¿ª¹Ø /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetMutualInterferencePrevention(IN int DeviceID, OUT SGIF_MUTUAL_INTERFERENCE_PREVENTION * OnOff); // Get Strobe Time /// /// \brief SGIF_GetStrobeTime ѡͨʱ¼ä»ñÈ¡ /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutputFormat Êä³öÐÎʽ /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetStrobeTime(IN int DeviceID, OUT SGIF_STOROBETIME * StrobeTime); // Get Data Storage /// /// \brief SGIF_GetDataStorage Êý¾Ý´æ´¢»ñÈ¡ /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param NumStorage ´ø´æ´¢Êý¾Ý±àºÅ /// \param StorageCycle ´æ´¢ÖÜÆÚ /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetDataStorage(IN int DeviceID, OUT int * NumStorage, OUT SGIF_STORAGECYCLE * StorageCycle); // Get Active head count /// /// \brief SGIF_GetNumOfUsedHeads Ö÷¶¯OUT¼ÆÊý»ñÈ¡ /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param NumOfUsedHeads Ö÷¶¯OUT/´«¸ÐÍ·¼ÆÊý /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetNumOfUsedHeads(IN int DeviceID, OUT int * NumOfUsedHeads); // Get Active OUT count /// /// \brief SGIF_GetNumOfUsedOut Ö÷¶¯´«¸ÐÍ·¼ÆÊý»ñÈ¡ /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param NumOfUsedHeads Ö÷¶¯OUT/´«¸ÐÍ·¼ÆÊý /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetNumOfUsedOut(IN int DeviceID, OUT int * NumOfUsedOut); // Get Active Running Time /// /// \brief SGIF_GetDeviceRuningTime »ñÈ¡Ïà»úÔËÐÐʱ³¤£¬µ¥Î»s /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param HeadNo 0:¿ØÖÆÆ÷£» 1-4£º´«¸ÐÍ·±àºÅ /// \param RuningTime ÔËÐÐʱ¼ä /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetDeviceRuningTime(IN int DeviceID, IN int HeadNo, OUT unsigned int * RuningTime); /////////////////////////////////////////////// // Other commands // // Opens the Ethernet device. /// /// \brief SGIF_OpenDeviceETHER ´ò¿ªÉè±¸ÍøÂçÁ¬½Ó /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OpenParam ÍøÂçÁ¬½Ó²ÎÊý /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_OpenDeviceETHER(IN int DeviceID, SGIF_OPENPARAM_ETHERNET * OpenParam,DWORD TIMEOUT=3); // Closes the currently open device. /// /// \brief SGIF_CloseDevice ¹Ø±ÕÉè±¸ÍøÂçÁ¬½Ó /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_CloseDevice(IN int DeviceID); /////////////////////////////////////////////// // Mode change commands // // Mode Switch /// /// \brief SGIF_SetMode ģʽÇл» /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param Mode ģʽ /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetMode(IN int DeviceID, IN SGIF_MODE Mode); EXP RC WINAPI SGIF_Refresh(IN int DeviceID); //////////////////////////////////////////////Ò»´Î»Øµ÷Ïà¹Ø/////////////////////////////////////// /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutBuffer Êý¾ÝÊý×é /// \param NumReceived ʵ¼Ê½ÓÊÕµÄÊý¾Ý¸öÊý /// typedef void(*SGIF_DataStorageOneTimeCallBack)(OUT int DeviceID); /////////////////////////////////////////////// /// \brief SGIF_SetOneDataStorage ×¢²áÒ»´Î»Øµ÷ /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param SGIF_BatchOneTimeCallBack »Øµ÷º¯Êý /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetOneDataStorage(IN int DeviceID, IN SGIF_DataStorageOneTimeCallBack CallFunc); ////////////////////////////////////////////////////////////////////////////////////////////// // Get encoder store value /// \brief SGIF_GetEncoderStoreValue±àÂëÆ÷Öµ´æ´¢Êý¾ÝÊä³ö(½öSCIÉ豸֧³Ö) /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo ±àÂëÆ÷±àºÅ /// \param NumOfBuffer »º³åÇø´óС£¨×î¶à¿É½ÓÊܶàÉÙ¸öÊý¾Ý£© /// \param OutBuffer Êý¾ÝÊý×é /// \param NumReceived ʵ¼Ê½ÓÊÕµÄÊý¾Ý¸öÊý /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetEncoderStoreValue(IN int DeviceID, IN int OutNo, IN int NumOfBuffer, OUT int * OutBuffer, OUT int *NumReceived); // Get encoder value /// \brief SGIF_GetEncoderCurrentValue ¶ÁÈ¡±àÂëÆ÷µ±Ç°Öµ(½öSCIÉ豸֧³Ö) /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo ±àÂëÆ÷±àºÅ(1-3) /// \param OutBuffer Êý¾ÝÖ¸Õë /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetEncoderCurrentValue(IN int DeviceID, IN int OutNo, OUT int * OutBuffer); // encoder Reset /// \brief SGIF_EncoderReset ±àÂëÆ÷ÖµÖÃÁã(½öSCIÉ豸֧³Ö) /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo ±àÂëÆ÷±àºÅ(1-3) /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_EncoderReset(IN int DeviceID, IN int OutNo); // Set Encoder Number /// \brief SGIF_SetEncoderNumber Ñ¡Ôñ±àÂëÆ÷(½öSCIÉ豸֧³Ö) /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo ±àÂëÆ÷±àºÅ(1-3) /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetEncoderNumber(IN int DeviceID, IN int OutNo); // Get encoder number /// \brief SGIF_GetEncoderNumber ¶ÁÈ¡ÉèÖõıàÂëÆ÷±àºÅ(½öSCIÉ豸֧³Ö) /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutBuffer Êý¾ÝÖ¸Õë /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetEncoderNumber(IN int DeviceID, OUT int * OutBuffer); //Set Encoder Parameters /// \brief SGIF_SetEncoderParametersÉèÖñàÂëÆ÷²ÎÊý(½öSCIÉ豸֧³Ö) /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo ±àÂëÆ÷±àºÅ(1-3) /// \param InputMode ÊäÈëģʽ£¨0-3£© /// \param InputTime ×îµÍÊäÈëʱ¼ä£¨100,200,500,1000,2000,5000,10000,20000£©(ns) /// \param interval ¼ä¸ô£¨1-10000£© /// \param OperatingMode ÔËÐÐģʽ£¨0-2£© /// \param DetectionDirection ¼ì²â·½Ïò£¨0-2£© /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetEncoderParameters(IN int DeviceID, IN int OutNo, IN int InputMode, IN int InputTime, IN int interval, IN int OperatingMode, IN int DetectionDirection); //Get Encoder Parameters /// \brief SGIF_GetEncoderParameters¶ÁÈ¡±àÂëÆ÷²ÎÊý(½öSCIÉ豸֧³Ö) /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo ±àÂëÆ÷±àºÅ(1-3) /// \param InputMode ÊäÈëģʽ£¨0-3£© /// \param InputTime ×îµÍÊäÈëʱ¼ä£¨100,200,500,1000,2000,5000,10000,20000£©(ns) /// \param interval ¼ä¸ô£¨1-10000£© /// \param OperatingMode ÔËÐÐģʽ£¨0-2£© /// \param DetectionDirection ¼ì²â·½Ïò£¨0-2£© /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetEncoderParameters(IN int DeviceID, IN int OutNo, OUT int * InputMode, OUT int * InputTime, OUT int * interval, OUT int * OperatingMode, OUT int * DetectionDirection); //Set Analog Output /// \brief SGIF_SetAnalogOutput ÉèÖÃÄ£ÄâÁ¿Êä³ö(½öSCIÉ豸֧³Ö) /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo Ä£ÄâÁ¿±àºÅ(1-3) /// \param OutputChannel Êä³öͨµÀ£¨0-3£© /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetAnalogOutput(IN int DeviceID, IN int OutNo, IN int OutputChannel); // Retrieve Analog Output Channel Number /// \brief SGIF_GetAnalogOutputChannel »ñȡģÄâÁ¿Êä³öͨµÀ±àºÅ(½öSCIÉ豸֧³Ö) /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo Ä£ÄâÁ¿±àºÅ(1-3) /// \param OutBuffer Êý¾ÝÖ¸Õë /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetAnalogOutputChannel(IN int DeviceID, IN int OutNo, OUT int * OutBuffer); //Set IO Digital Output /// \brief SGIF_SetIODigitalOutput ÉèÖÃIOÊý×ÖÊä³ö(½öSCIÉ豸֧³Ö) /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo Êý×ÖÊä³ö±àºÅ(1-4) /// \param Level Êä³öλÊý£¨0:OFF,1:HI,2:GO,3:LO,4:STROBE£© /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_SetIODigitalOutput(IN int DeviceID, IN int OutNo, IN int Level); // Retrieve IO Digital Output Channel Number /// \brief SGIF_GetIOOutputChannel »ñÈ¡IOÊý×ÖÁ¿Êä³öͨµÀ±àºÅ(½öSCIÉ豸֧³Ö) /// \param DeviceID É豸IDºÅ£¬·¶Î§Îª0-63. /// \param OutNo Êý×ÖÊä³ö±àºÅ(1-4) /// \param OutBuffer Êý¾ÝÖ¸Õë /// \return /// >0: ʧ°Ü. /// =0: ³É¹¦. /// EXP RC WINAPI SGIF_GetIOOutputChannel(IN int DeviceID, IN int OutNo, OUT int * OutBuffer); #ifdef __cplusplus } #endif