| | |
| | |  |
| | | Microsoft Visual Studio Solution File, Format Version 12.00 |
| | | # Visual Studio Version 16 |
| | | VisualStudioVersion = 16.0.31729.503 |
| | | # Visual Studio Version 17 |
| | | VisualStudioVersion = 17.13.35913.81 d17.13 |
| | | MinimumVisualStudioVersion = 10.0.40219.1 |
| | | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BEQLibrary", "BEQLibrary\BEQLibrary.vcxproj", "{8421CE64-06F9-48F4-A3F3-ACFB683C94D4}" |
| | | EndProject |
| | |
| | | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BoounionPLC", "BoounionPLC\BoounionPLC.vcxproj", "{6DC0600E-5588-4033-A281-3626A4F74B67}" |
| | | EndProject |
| | | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EAPSimulator", "EAPSimulator\EAPSimulator.vcxproj", "{9EA43050-B71C-47A7-AC90-F0D7A88C5F50}" |
| | | EndProject |
| | | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SGMeasurement", "SGMeasurement\SGMeasurement.vcxproj", "{F8087F20-3A3E-18F2-09E3-9C139642EB58}" |
| | | EndProject |
| | | Global |
| | | GlobalSection(SolutionConfigurationPlatforms) = preSolution |
| | |
| | | {9EA43050-B71C-47A7-AC90-F0D7A88C5F50}.Release|x64.Build.0 = Release|x64 |
| | | {9EA43050-B71C-47A7-AC90-F0D7A88C5F50}.Release|x86.ActiveCfg = Release|Win32 |
| | | {9EA43050-B71C-47A7-AC90-F0D7A88C5F50}.Release|x86.Build.0 = Release|Win32 |
| | | {F8087F20-3A3E-18F2-09E3-9C139642EB58}.Debug|x64.ActiveCfg = Debug|x64 |
| | | {F8087F20-3A3E-18F2-09E3-9C139642EB58}.Debug|x64.Build.0 = Debug|x64 |
| | | {F8087F20-3A3E-18F2-09E3-9C139642EB58}.Debug|x86.ActiveCfg = Debug|Win32 |
| | | {F8087F20-3A3E-18F2-09E3-9C139642EB58}.Debug|x86.Build.0 = Debug|Win32 |
| | | {F8087F20-3A3E-18F2-09E3-9C139642EB58}.Release|x64.ActiveCfg = Release|x64 |
| | | {F8087F20-3A3E-18F2-09E3-9C139642EB58}.Release|x64.Build.0 = Release|x64 |
| | | {F8087F20-3A3E-18F2-09E3-9C139642EB58}.Release|x86.ActiveCfg = Release|Win32 |
| | | {F8087F20-3A3E-18F2-09E3-9C139642EB58}.Release|x86.Build.0 = Release|Win32 |
| | | EndGlobalSection |
| | | GlobalSection(SolutionProperties) = preSolution |
| | | HideSolutionNode = FALSE |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | |
| | | #ifdef SGIF_EXPORTS |
| | | #define EXP __declspec(dllexport) |
| | | #else |
| | | #define EXP __declspec(dllimport) |
| | | #endif |
| | | |
| | | #include "Winsock2.h" |
| | | #include "Ws2tcpip.h" |
| | | |
| | | #include <stdlib.h> |
| | | #include <stdio.h> |
| | | #include <windows.h> |
| | | #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: æå. |
| | | ///4 |
| | | 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 |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | |
| | | #ifdef SGIF_EXPORTS |
| | | #define EXP __declspec(dllexport) |
| | | #else |
| | | #define EXP __declspec(dllimport) |
| | | #endif |
| | | |
| | | #include "Winsock2.h" |
| | | #include "Ws2tcpip.h" |
| | | |
| | | #include <stdlib.h> |
| | | #include <stdio.h> |
| | | #include <windows.h> |
| | | #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 |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | |  |
| | | // SGMeasurement.cpp: å®ä¹åºç¨ç¨åºçç±»è¡ä¸ºã |
| | | // |
| | | |
| | | #include "pch.h" |
| | | #include "framework.h" |
| | | #include "SGMeasurement.h" |
| | | #include "SGMeasurementDlg.h" |
| | | |
| | | #ifdef _DEBUG |
| | | #define new DEBUG_NEW |
| | | #endif |
| | | |
| | | |
| | | // CSGMeasurementApp |
| | | |
| | | BEGIN_MESSAGE_MAP(CSGMeasurementApp, CWinApp) |
| | | ON_COMMAND(ID_HELP, &CWinApp::OnHelp) |
| | | END_MESSAGE_MAP() |
| | | |
| | | |
| | | // CSGMeasurementApp æé |
| | | |
| | | CSGMeasurementApp::CSGMeasurementApp() |
| | | { |
| | | // æ¯æéæ°å¯å¨ç®¡çå¨ |
| | | m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART; |
| | | |
| | | // TODO: 卿¤å¤æ·»å æé 代ç ï¼ |
| | | // å°ææéè¦çåå§åæ¾ç½®å¨ InitInstance ä¸ |
| | | } |
| | | |
| | | |
| | | // å¯ä¸ç CSGMeasurementApp 对象 |
| | | |
| | | CSGMeasurementApp theApp; |
| | | |
| | | |
| | | // CSGMeasurementApp åå§å |
| | | |
| | | BOOL CSGMeasurementApp::InitInstance() |
| | | { |
| | | // 妿åºç¨ç¨åºåå¨ä»¥ä¸æ
åµï¼Windows XP ä¸éè¦ InitCommonControlsEx() |
| | | // ä½¿ç¨ ComCtl32.dll çæ¬ 6 ææ´é«çæ¬æ¥å¯ç¨å¯è§åæ¹å¼ï¼åéè¦ InitCommonControlsEx()ãå¦åï¼å°æ æ³å建çªå£ã |
| | | INITCOMMONCONTROLSEX InitCtrls; |
| | | InitCtrls.dwSize = sizeof(InitCtrls); |
| | | // å°å®è®¾ç½®ä¸ºå
æ¬ææè¦å¨åºç¨ç¨åºä¸ä½¿ç¨ç |
| | | // å
Œ
±æ§ä»¶ç±»ã |
| | | InitCtrls.dwICC = ICC_WIN95_CLASSES; |
| | | InitCommonControlsEx(&InitCtrls); |
| | | |
| | | CWinApp::InitInstance(); |
| | | |
| | | // åå§å MFC RichEdit æ§ä»¶ |
| | | AfxInitRichEdit2(); |
| | | |
| | | AfxEnableControlContainer(); |
| | | |
| | | // å建 shell 管çå¨ï¼ä»¥é²å¯¹è¯æ¡å
å« |
| | | // ä»»ä½ shell æ è§å¾æ§ä»¶æ shell å表è§å¾æ§ä»¶ã |
| | | CShellManager *pShellManager = new CShellManager; |
| | | |
| | | // æ¿æ´»âWindows Nativeâè§è§ç®¡çå¨ï¼ä»¥ä¾¿å¨ MFC æ§ä»¶ä¸å¯ç¨ä¸»é¢ |
| | | CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows)); |
| | | |
| | | // æ ååå§å |
| | | // 妿æªä½¿ç¨è¿äºåè½å¹¶å¸æåå° |
| | | // æç»å¯æ§è¡æä»¶ç大å°ï¼ååºç§»é¤ä¸å |
| | | // ä¸éè¦çç¹å®åå§åä¾ç¨ |
| | | // æ´æ¹ç¨äºåå¨è®¾ç½®ç注å表项 |
| | | // TODO: åºéå½ä¿®æ¹è¯¥åç¬¦ä¸²ï¼ |
| | | // ä¾å¦ä¿®æ¹ä¸ºå
¬å¸æç»ç»å |
| | | SetRegistryKey(_T("åºç¨ç¨åºå导çæçæ¬å°åºç¨ç¨åº")); |
| | | |
| | | CSGMeasurementDlg dlg; |
| | | m_pMainWnd = &dlg; |
| | | INT_PTR nResponse = dlg.DoModal(); |
| | | if (nResponse == IDOK) |
| | | { |
| | | // TODO:âç¡®å®âæ¥å
³éå¯¹è¯æ¡ç代ç |
| | | } |
| | | else if (nResponse == IDCANCEL) |
| | | { |
| | | // TODO:âåæ¶âæ¥å
³éå¯¹è¯æ¡ç代ç |
| | | } |
| | | else if (nResponse == -1) |
| | | { |
| | | TRACE(traceAppMsg, 0, "è¦å: å¯¹è¯æ¡å建失败ï¼åºç¨ç¨åºå°æå¤ç»æ¢ã\n"); |
| | | TRACE(traceAppMsg, 0, "è¦å: 妿æ¨å¨å¯¹è¯æ¡ä¸ä½¿ç¨ MFC æ§ä»¶ï¼åæ æ³ #define _AFX_NO_MFC_CONTROLS_IN_DIALOGSã\n"); |
| | | } |
| | | |
| | | // å é¤ä¸é¢å建ç shell 管çå¨ã |
| | | if (pShellManager != nullptr) |
| | | { |
| | | delete pShellManager; |
| | | } |
| | | |
| | | #if !defined(_AFXDLL) && !defined(_AFX_NO_MFC_CONTROLS_IN_DIALOGS) |
| | | ControlBarCleanUp(); |
| | | #endif |
| | | |
| | | // ç±äºå¯¹è¯æ¡å·²å
³éï¼æä»¥å°è¿å FALSE 以便éåºåºç¨ç¨åºï¼è䏿¯å¯å¨åºç¨ç¨åºçæ¶æ¯æ³µã |
| | | return FALSE; |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | |  |
| | | // SGMeasurement.h: PROJECT_NAME åºç¨ç¨åºç主头æä»¶ |
| | | // |
| | | |
| | | #pragma once |
| | | |
| | | #ifndef __AFXWIN_H__ |
| | | #error "å¨å
嫿¤æä»¶ä¹åå
å« 'pch.h' ä»¥çæ PCH" |
| | | #endif |
| | | |
| | | #include "resource.h" // ä¸»ç¬¦å· |
| | | |
| | | |
| | | // CSGMeasurementApp: |
| | | // æå
³æ¤ç±»çå®ç°ï¼è¯·åé
SGMeasurement.cpp |
| | | // |
| | | |
| | | class CSGMeasurementApp : public CWinApp |
| | | { |
| | | public: |
| | | CSGMeasurementApp(); |
| | | |
| | | // éå |
| | | public: |
| | | virtual BOOL InitInstance(); |
| | | |
| | | // å®ç° |
| | | |
| | | DECLARE_MESSAGE_MAP() |
| | | }; |
| | | |
| | | extern CSGMeasurementApp theApp; |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
| | | <ItemGroup Label="ProjectConfigurations"> |
| | | <ProjectConfiguration Include="Debug|Win32"> |
| | | <Configuration>Debug</Configuration> |
| | | <Platform>Win32</Platform> |
| | | </ProjectConfiguration> |
| | | <ProjectConfiguration Include="Release|Win32"> |
| | | <Configuration>Release</Configuration> |
| | | <Platform>Win32</Platform> |
| | | </ProjectConfiguration> |
| | | <ProjectConfiguration Include="Debug|x64"> |
| | | <Configuration>Debug</Configuration> |
| | | <Platform>x64</Platform> |
| | | </ProjectConfiguration> |
| | | <ProjectConfiguration Include="Release|x64"> |
| | | <Configuration>Release</Configuration> |
| | | <Platform>x64</Platform> |
| | | </ProjectConfiguration> |
| | | </ItemGroup> |
| | | <PropertyGroup Label="Globals"> |
| | | <VCProjectVersion>17.0</VCProjectVersion> |
| | | <ProjectGuid>{F8087F20-3A3E-18F2-09E3-9C139642EB58}</ProjectGuid> |
| | | <Keyword>MFCProj</Keyword> |
| | | <RootNamespace>SGMeasurement</RootNamespace> |
| | | <WindowsTargetPlatformVersion>10.0.22621.0</WindowsTargetPlatformVersion> |
| | | </PropertyGroup> |
| | | <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> |
| | | <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> |
| | | <ConfigurationType>Application</ConfigurationType> |
| | | <UseDebugLibraries>true</UseDebugLibraries> |
| | | <PlatformToolset>v141</PlatformToolset> |
| | | <CharacterSet>Unicode</CharacterSet> |
| | | <UseOfMfc>Dynamic</UseOfMfc> |
| | | </PropertyGroup> |
| | | <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> |
| | | <ConfigurationType>Application</ConfigurationType> |
| | | <UseDebugLibraries>false</UseDebugLibraries> |
| | | <PlatformToolset>v141</PlatformToolset> |
| | | <WholeProgramOptimization>true</WholeProgramOptimization> |
| | | <CharacterSet>Unicode</CharacterSet> |
| | | <UseOfMfc>Dynamic</UseOfMfc> |
| | | </PropertyGroup> |
| | | <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> |
| | | <ConfigurationType>Application</ConfigurationType> |
| | | <UseDebugLibraries>true</UseDebugLibraries> |
| | | <PlatformToolset>v141</PlatformToolset> |
| | | <CharacterSet>Unicode</CharacterSet> |
| | | <UseOfMfc>Dynamic</UseOfMfc> |
| | | </PropertyGroup> |
| | | <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> |
| | | <ConfigurationType>Application</ConfigurationType> |
| | | <UseDebugLibraries>false</UseDebugLibraries> |
| | | <PlatformToolset>v141</PlatformToolset> |
| | | <WholeProgramOptimization>true</WholeProgramOptimization> |
| | | <CharacterSet>Unicode</CharacterSet> |
| | | <UseOfMfc>Dynamic</UseOfMfc> |
| | | </PropertyGroup> |
| | | <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> |
| | | <ImportGroup Label="ExtensionSettings"> |
| | | </ImportGroup> |
| | | <ImportGroup Label="Shared"> |
| | | </ImportGroup> |
| | | <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> |
| | | <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> |
| | | </ImportGroup> |
| | | <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> |
| | | <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> |
| | | </ImportGroup> |
| | | <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> |
| | | <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> |
| | | </ImportGroup> |
| | | <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> |
| | | <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> |
| | | </ImportGroup> |
| | | <PropertyGroup Label="UserMacros" /> |
| | | <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> |
| | | <LinkIncremental>true</LinkIncremental> |
| | | </PropertyGroup> |
| | | <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> |
| | | <LinkIncremental>true</LinkIncremental> |
| | | </PropertyGroup> |
| | | <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> |
| | | <LinkIncremental>false</LinkIncremental> |
| | | </PropertyGroup> |
| | | <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> |
| | | <LinkIncremental>false</LinkIncremental> |
| | | </PropertyGroup> |
| | | <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> |
| | | <ClCompile> |
| | | <PrecompiledHeader>Use</PrecompiledHeader> |
| | | <WarningLevel>Level3</WarningLevel> |
| | | <SDLCheck>true</SDLCheck> |
| | | <PreprocessorDefinitions>_WINDOWS;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
| | | <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile> |
| | | <AdditionalIncludeDirectories>.\DLL\64bit;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> |
| | | </ClCompile> |
| | | <Link> |
| | | <SubSystem>Windows</SubSystem> |
| | | <AdditionalLibraryDirectories>.\DLL\64bit;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> |
| | | <AdditionalDependencies>SGIFPJ.lib;%(AdditionalDependencies)</AdditionalDependencies> |
| | | </Link> |
| | | <Midl> |
| | | <MkTypLibCompatible>false</MkTypLibCompatible> |
| | | <ValidateAllParameters>true</ValidateAllParameters> |
| | | <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
| | | </Midl> |
| | | <ResourceCompile> |
| | | <Culture>0x0804</Culture> |
| | | <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
| | | <AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> |
| | | </ResourceCompile> |
| | | </ItemDefinitionGroup> |
| | | <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> |
| | | <ClCompile> |
| | | <PrecompiledHeader>Use</PrecompiledHeader> |
| | | <WarningLevel>Level3</WarningLevel> |
| | | <SDLCheck>true</SDLCheck> |
| | | <PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
| | | <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile> |
| | | <AdditionalIncludeDirectories>.\DLL\32bit;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> |
| | | </ClCompile> |
| | | <Link> |
| | | <SubSystem>Windows</SubSystem> |
| | | <AdditionalLibraryDirectories>.\DLL\32bit;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> |
| | | <AdditionalDependencies>SGIFPJ.lib;%(AdditionalDependencies)</AdditionalDependencies> |
| | | </Link> |
| | | <Midl> |
| | | <MkTypLibCompatible>false</MkTypLibCompatible> |
| | | <ValidateAllParameters>true</ValidateAllParameters> |
| | | <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
| | | </Midl> |
| | | <ResourceCompile> |
| | | <Culture>0x0804</Culture> |
| | | <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
| | | <AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> |
| | | </ResourceCompile> |
| | | </ItemDefinitionGroup> |
| | | <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> |
| | | <ClCompile> |
| | | <PrecompiledHeader>Use</PrecompiledHeader> |
| | | <WarningLevel>Level3</WarningLevel> |
| | | <FunctionLevelLinking>true</FunctionLevelLinking> |
| | | <IntrinsicFunctions>true</IntrinsicFunctions> |
| | | <SDLCheck>true</SDLCheck> |
| | | <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
| | | <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile> |
| | | <AdditionalIncludeDirectories>.\DLL\32bit;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> |
| | | </ClCompile> |
| | | <Link> |
| | | <SubSystem>Windows</SubSystem> |
| | | <EnableCOMDATFolding>true</EnableCOMDATFolding> |
| | | <OptimizeReferences>true</OptimizeReferences> |
| | | <AdditionalLibraryDirectories>.\DLL\32bit;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> |
| | | <AdditionalDependencies>SGIFPJ.lib;%(AdditionalDependencies)</AdditionalDependencies> |
| | | </Link> |
| | | <Midl> |
| | | <MkTypLibCompatible>false</MkTypLibCompatible> |
| | | <ValidateAllParameters>true</ValidateAllParameters> |
| | | <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
| | | </Midl> |
| | | <ResourceCompile> |
| | | <Culture>0x0804</Culture> |
| | | <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
| | | <AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> |
| | | </ResourceCompile> |
| | | </ItemDefinitionGroup> |
| | | <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> |
| | | <ClCompile> |
| | | <PrecompiledHeader>Use</PrecompiledHeader> |
| | | <WarningLevel>Level3</WarningLevel> |
| | | <FunctionLevelLinking>true</FunctionLevelLinking> |
| | | <IntrinsicFunctions>true</IntrinsicFunctions> |
| | | <SDLCheck>true</SDLCheck> |
| | | <PreprocessorDefinitions>_WINDOWS;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
| | | <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile> |
| | | <AdditionalIncludeDirectories>.\DLL\64bit;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> |
| | | </ClCompile> |
| | | <Link> |
| | | <SubSystem>Windows</SubSystem> |
| | | <EnableCOMDATFolding>true</EnableCOMDATFolding> |
| | | <OptimizeReferences>true</OptimizeReferences> |
| | | <AdditionalLibraryDirectories>.\DLL\64bit;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> |
| | | <AdditionalDependencies>SGIFPJ.lib;%(AdditionalDependencies)</AdditionalDependencies> |
| | | </Link> |
| | | <Midl> |
| | | <MkTypLibCompatible>false</MkTypLibCompatible> |
| | | <ValidateAllParameters>true</ValidateAllParameters> |
| | | <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
| | | </Midl> |
| | | <ResourceCompile> |
| | | <Culture>0x0804</Culture> |
| | | <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
| | | <AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> |
| | | </ResourceCompile> |
| | | </ItemDefinitionGroup> |
| | | <ItemGroup> |
| | | <ClInclude Include="framework.h" /> |
| | | <ClInclude Include="pch.h" /> |
| | | <ClInclude Include="Resource.h" /> |
| | | <ClInclude Include="SGMeasurement.h" /> |
| | | <ClInclude Include="SGMeasurementDlg.h" /> |
| | | <ClInclude Include="targetver.h" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <ClCompile Include="pch.cpp"> |
| | | <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader> |
| | | <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader> |
| | | <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader> |
| | | <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader> |
| | | </ClCompile> |
| | | <ClCompile Include="SGMeasurement.cpp" /> |
| | | <ClCompile Include="SGMeasurementDlg.cpp" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <ResourceCompile Include="SGMeasurement.rc" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <None Include="res\SGMeasurement.rc2" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <Image Include="res\menu_close.ico" /> |
| | | <Image Include="res\menu_restore.ico" /> |
| | | <Image Include="res\SGMeasurement.ico" /> |
| | | </ItemGroup> |
| | | <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> |
| | | <ImportGroup Label="ExtensionTargets"> |
| | | </ImportGroup> |
| | | </Project> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
| | | <ItemGroup> |
| | | <Filter Include="æºæä»¶"> |
| | | <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> |
| | | <Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions> |
| | | </Filter> |
| | | <Filter Include="头æä»¶"> |
| | | <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> |
| | | <Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions> |
| | | </Filter> |
| | | <Filter Include="èµæºæä»¶"> |
| | | <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> |
| | | <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> |
| | | </Filter> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <ClInclude Include="SGMeasurement.h"> |
| | | <Filter>头æä»¶</Filter> |
| | | </ClInclude> |
| | | <ClInclude Include="SGMeasurementDlg.h"> |
| | | <Filter>头æä»¶</Filter> |
| | | </ClInclude> |
| | | <ClInclude Include="framework.h"> |
| | | <Filter>头æä»¶</Filter> |
| | | </ClInclude> |
| | | <ClInclude Include="targetver.h"> |
| | | <Filter>头æä»¶</Filter> |
| | | </ClInclude> |
| | | <ClInclude Include="Resource.h"> |
| | | <Filter>头æä»¶</Filter> |
| | | </ClInclude> |
| | | <ClInclude Include="pch.h"> |
| | | <Filter>头æä»¶</Filter> |
| | | </ClInclude> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <ClCompile Include="SGMeasurement.cpp"> |
| | | <Filter>æºæä»¶</Filter> |
| | | </ClCompile> |
| | | <ClCompile Include="SGMeasurementDlg.cpp"> |
| | | <Filter>æºæä»¶</Filter> |
| | | </ClCompile> |
| | | <ClCompile Include="pch.cpp"> |
| | | <Filter>æºæä»¶</Filter> |
| | | </ClCompile> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <ResourceCompile Include="SGMeasurement.rc"> |
| | | <Filter>èµæºæä»¶</Filter> |
| | | </ResourceCompile> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <None Include="res\SGMeasurement.rc2"> |
| | | <Filter>èµæºæä»¶</Filter> |
| | | </None> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <Image Include="res\SGMeasurement.ico"> |
| | | <Filter>èµæºæä»¶</Filter> |
| | | </Image> |
| | | <Image Include="res\menu_restore.ico"> |
| | | <Filter>èµæºæä»¶</Filter> |
| | | </Image> |
| | | <Image Include="res\menu_close.ico"> |
| | | <Filter>èµæºæä»¶</Filter> |
| | | </Image> |
| | | </ItemGroup> |
| | | </Project> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
| | | <PropertyGroup> |
| | | <RESOURCE_FILE>SGMeasurement.rc</RESOURCE_FILE> |
| | | </PropertyGroup> |
| | | </Project> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | |  |
| | | // SGMeasurementDlg.cpp: å®ç°æä»¶ |
| | | // |
| | | |
| | | #include "pch.h" |
| | | #include "framework.h" |
| | | #include "SGMeasurement.h" |
| | | #include "SGMeasurementDlg.h" |
| | | #include "afxdialogex.h" |
| | | #include "SGIF.h" |
| | | |
| | | #ifdef _DEBUG |
| | | #define new DEBUG_NEW |
| | | #endif |
| | | |
| | | #define DeviceID 0 |
| | | |
| | | // æç徿 ID 䏿¶æ¯å® |
| | | #define ID_TRAY_RESTORE 2001 // æ¢å¤çªå£ |
| | | #define ID_TRAY_EXIT 2002 // éåºç¨åº |
| | | #define WM_TRAY_ICON_NOTIFY (WM_USER + 1000) // æç徿 åè°æ¶æ¯ ID |
| | | |
| | | // æçæç¤ºææ¬å® |
| | | #define TRAY_ICON_TOOLTIP_TEXT _T("SGMeasurement") |
| | | |
| | | // æ¥å¿é¢è²å®å®ä¹ |
| | | #define LOG_COLOR_NORMAL RGB(0, 0, 0) // æ®éï¼é»è² |
| | | #define LOG_COLOR_SUCCESS RGB(0, 128, 0) // æåï¼ç»¿è² |
| | | #define LOG_COLOR_ERROR RGB(255, 0, 0) // é误ï¼çº¢è² |
| | | #define LOG_COLOR_WARNING RGB(255, 165, 0) // è¦åï¼æ©è² |
| | | #define LOG_COLOR_TIME RGB(0, 0, 255) // æ¶é´æ³ï¼èè² |
| | | |
| | | // 宿¶å¨ç¸å
³å®å®ä¹ |
| | | #define TIMER_INTERVAL_MS 500 |
| | | #define TIMER_ID_OUTPUT_UPDATE 1 |
| | | |
| | | class CAboutDlg : public CDialogEx |
| | | { |
| | | public: |
| | | CAboutDlg(); |
| | | |
| | | // å¯¹è¯æ¡æ°æ® |
| | | #ifdef AFX_DESIGN_TIME |
| | | enum { IDD = IDD_ABOUTBOX }; |
| | | #endif |
| | | |
| | | protected: |
| | | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV æ¯æ |
| | | |
| | | // å®ç° |
| | | protected: |
| | | DECLARE_MESSAGE_MAP() |
| | | }; |
| | | |
| | | CAboutDlg::CAboutDlg() : CDialogEx(IDD_ABOUTBOX) |
| | | { |
| | | } |
| | | |
| | | void CAboutDlg::DoDataExchange(CDataExchange* pDX) |
| | | { |
| | | CDialogEx::DoDataExchange(pDX); |
| | | } |
| | | |
| | | BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx) |
| | | END_MESSAGE_MAP() |
| | | |
| | | CSGMeasurementDlg::CSGMeasurementDlg(CWnd* pParent /*=nullptr*/) |
| | | : CDialogEx(IDD_SGMEASUREMENT_DIALOG, pParent) |
| | | , m_bConnected(false) |
| | | , m_bSaving(false) |
| | | , m_dOutValues{ 0.0, 0.0, 0.0, 0.0 } |
| | | , m_nUseTrigger(0) |
| | | , m_nSavePointCount(100000) |
| | | , m_fJumpThreshold(1.0f) |
| | | , m_nJumpWindow(3) |
| | | , m_nValleyMargin(0) |
| | | , m_nMinGlass1Count(10) |
| | | , m_nFixedCount(5) |
| | | , m_fMaxDelta(0.05f) |
| | | , m_nTrayIconID(0) |
| | | , m_bTrayIconCreated(FALSE) |
| | | , m_bExitingFromTray(FALSE) |
| | | { |
| | | m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); |
| | | } |
| | | |
| | | void CSGMeasurementDlg::DoDataExchange(CDataExchange* pDX) |
| | | { |
| | | CDialogEx::DoDataExchange(pDX); |
| | | DDX_Text(pDX, IDC_EDIT_OUT1, m_dOutValues[0]); |
| | | DDX_Text(pDX, IDC_EDIT_OUT2, m_dOutValues[1]); |
| | | DDX_Text(pDX, IDC_EDIT_OUT3, m_dOutValues[2]); |
| | | DDX_Text(pDX, IDC_EDIT_OUT4, m_dOutValues[3]); |
| | | DDX_Control(pDX, IDC_RICHEDIT_LOG, m_editLog); |
| | | DDX_Check(pDX, IDC_CHECK_USE_TRIGGER, m_nUseTrigger); |
| | | DDX_Control(pDX, IDC_COMBO_OUTPUT_PORT, m_comboOutputPort); |
| | | DDX_Text(pDX, IDC_EDIT_STORE_COUNT, m_nSavePointCount); |
| | | DDX_Text(pDX, IDC_EDIT_JUMP_WINDOW, m_nJumpWindow); |
| | | DDX_Text(pDX, IDC_EDIT_VALLEY_MARGIN, m_nValleyMargin); |
| | | DDX_Text(pDX, IDC_EDIT_MIN_GLASS_COUNT, m_nMinGlass1Count); |
| | | DDX_Text(pDX, IDC_EDIT_FIXED_COUNT, m_nFixedCount); |
| | | DDX_Text(pDX, IDC_EDIT_JUMP_THRESHOLD, m_fJumpThreshold); |
| | | DDX_Text(pDX, IDC_EDIT_MAX_DELTA, m_fMaxDelta); |
| | | } |
| | | |
| | | void CSGMeasurementDlg::ExitApplication() |
| | | { |
| | | // æå¼è®¾å¤è¿æ¥ï¼å¦å·²è¿æ¥ï¼ |
| | | if (m_bConnected) { |
| | | DisconnectFromDevice(); |
| | | } |
| | | |
| | | // å 餿ç徿 ï¼å¦å·²æ·»å ï¼ |
| | | if (m_bTrayIconCreated) { |
| | | Shell_NotifyIcon(NIM_DELETE, &m_trayIconData); |
| | | m_bTrayIconCreated = FALSE; |
| | | } |
| | | |
| | | DestroyWindow(); |
| | | CDialogEx::OnClose(); |
| | | } |
| | | |
| | | void CSGMeasurementDlg::UpdateControlStatus(BOOL bConnected, BOOL bStoring/* = FALSE*/) |
| | | { |
| | | // è¿æ¥æé®åæå¼æé®ç¶æäºæ¥ |
| | | GetDlgItem(IDC_BUTTON_CONNECT)->EnableWindow(!bConnected); |
| | | GetDlgItem(IDC_BUTTON_DISCONNECT)->EnableWindow(bConnected); |
| | | |
| | | // IPå°åè¾å
¥åªå
è®¸å¨æªè¿æ¥æ¶ä¿®æ¹ |
| | | GetDlgItem(IDC_IPADDRESS)->EnableWindow(!bConnected); |
| | | |
| | | // åå¨é
ç½®æ§ä»¶ä»
å¨å·²è¿æ¥ä¸æªå¼å§å卿¶å
许æä½ |
| | | BOOL bCanConfigure = bConnected && !bStoring; |
| | | /*GetDlgItem(IDC_CHECK_USE_TRIGGER)->EnableWindow(bCanConfigure);*/ |
| | | GetDlgItem(IDC_COMBO_OUTPUT_PORT)->EnableWindow(bCanConfigure); |
| | | GetDlgItem(IDC_EDIT_STORE_COUNT)->EnableWindow(bCanConfigure); |
| | | GetDlgItem(IDC_EDIT_JUMP_THRESHOLD)->EnableWindow(bCanConfigure); |
| | | GetDlgItem(IDC_EDIT_JUMP_WINDOW)->EnableWindow(bCanConfigure); |
| | | GetDlgItem(IDC_EDIT_VALLEY_MARGIN)->EnableWindow(bCanConfigure); |
| | | GetDlgItem(IDC_EDIT_MIN_GLASS_COUNT)->EnableWindow(bCanConfigure); |
| | | GetDlgItem(IDC_EDIT_FIXED_COUNT)->EnableWindow(bCanConfigure); |
| | | GetDlgItem(IDC_EDIT_MAX_DELTA)->EnableWindow(bCanConfigure); |
| | | |
| | | // åå¨ç¸å
³æé® |
| | | GetDlgItem(IDC_BUTTON_RECEIVE_FROM_CTRL)->EnableWindow(bCanConfigure); |
| | | GetDlgItem(IDC_BUTTON_SEND_TO_CTRL)->EnableWindow(bCanConfigure); |
| | | GetDlgItem(IDC_BUTTON_CLEAR_STORE)->EnableWindow(bCanConfigure); |
| | | GetDlgItem(IDC_BUTTON_START_STORE)->EnableWindow(bCanConfigure); |
| | | GetDlgItem(IDC_BUTTON_STOP_STORE)->EnableWindow(bStoring); |
| | | } |
| | | |
| | | void CSGMeasurementDlg::AppendLogLineBatchBegin() |
| | | { |
| | | m_editLog.SetRedraw(FALSE); |
| | | m_editLog.SetEventMask(0); // 鲿¢è§¦åä¸å¿
è¦çéç¥ |
| | | } |
| | | |
| | | void CSGMeasurementDlg::AppendLogLineBatchEnd() |
| | | { |
| | | m_editLog.SetRedraw(TRUE); |
| | | m_editLog.Invalidate(); // 强å¶éç» |
| | | m_editLog.SetEventMask(ENM_CHANGE | ENM_SELCHANGE); |
| | | } |
| | | |
| | | void CSGMeasurementDlg::TrimRichEditLineLimit(int nMaxLines) |
| | | { |
| | | int nLineCount = m_editLog.GetLineCount(); |
| | | if (nLineCount < nMaxLines) { |
| | | return; |
| | | } |
| | | |
| | | // è·åå¤ä½è¡çå符æ°èå´ |
| | | int charIndex = m_editLog.LineIndex(nMaxLines); |
| | | m_editLog.SetSel(0, charIndex); // éä¸å¤ä½å
容 |
| | | m_editLog.ReplaceSel(_T("")); // å é¤ |
| | | } |
| | | |
| | | void CSGMeasurementDlg::AppendLogLineRichStyled(const CString& content, COLORREF color /*= RGB(0, 0, 0)*/) |
| | | { |
| | | if (!::IsWindow(GetSafeHwnd()) || !::IsWindow(m_editLog.GetSafeHwnd())) { |
| | | return; |
| | | } |
| | | |
| | | // æ¶é´æ³ |
| | | CString strTimestamp; |
| | | CTime now = CTime::GetCurrentTime(); |
| | | strTimestamp.Format(_T("[%02d:%02d:%02d] "), now.GetHour(), now.GetMinute(), now.GetSecond()); |
| | | |
| | | // æå
¥ç¹ç§»å°æåï¼ä¹å¯ä»¥è®¾ä¸º 0 表示顶é¨ï¼ |
| | | m_editLog.SetSel(-1, -1); |
| | | |
| | | // æå
¥æ¶é´ï¼èè²ï¼ |
| | | CHARFORMAT2 cfTime = {}; |
| | | cfTime.cbSize = sizeof(cfTime); |
| | | cfTime.dwMask = CFM_COLOR; |
| | | cfTime.crTextColor = LOG_COLOR_TIME; |
| | | m_editLog.SetSelectionCharFormat(cfTime); |
| | | m_editLog.ReplaceSel(strTimestamp); |
| | | |
| | | // æå
¥æ¥å¿æ£æï¼ä¼ å
¥é¢è²ï¼ |
| | | CHARFORMAT2 cfMsg = {}; |
| | | cfMsg.cbSize = sizeof(cfMsg); |
| | | cfMsg.dwMask = CFM_COLOR; |
| | | cfMsg.crTextColor = color; |
| | | m_editLog.SetSelectionCharFormat(cfMsg); |
| | | m_editLog.ReplaceSel(content + _T("\r\n")); |
| | | |
| | | // éå¶æå¤§è¡æ° |
| | | TrimRichEditLineLimit(100); |
| | | } |
| | | |
| | | void CSGMeasurementDlg::HighlightAllMatches(const CString& strSearch, COLORREF clrHighlight/* = RGB(255, 165, 0)*/) |
| | | { |
| | | if (strSearch.IsEmpty()) { |
| | | return; |
| | | } |
| | | |
| | | long nStart = 0; |
| | | long nEnd = m_editLog.GetTextLength(); |
| | | FINDTEXTEX ft = { 0 }; |
| | | ft.chrg.cpMin = 0; |
| | | ft.chrg.cpMax = nEnd; |
| | | ft.lpstrText = strSearch.GetString(); |
| | | |
| | | // é«äº®å䏿¸
é¤å
¨æé¢è²ï¼é¿å
åå²å¤è²æ··æ· |
| | | while (m_editLog.FindText(FR_DOWN, &ft) != -1) { |
| | | m_editLog.SetSel(ft.chrgText.cpMin, ft.chrgText.cpMax); |
| | | |
| | | CHARFORMAT2 cf = {}; |
| | | cf.cbSize = sizeof(cf); |
| | | cf.dwMask = CFM_COLOR; |
| | | cf.crTextColor = clrHighlight; |
| | | m_editLog.SetSelectionCharFormat(cf); |
| | | |
| | | // 䏿¬¡æç´¢ä»åé¢å¼å§ |
| | | ft.chrg.cpMin = ft.chrgText.cpMax; |
| | | } |
| | | m_editLog.SetSel(-1, 0); |
| | | } |
| | | |
| | | void CSGMeasurementDlg::PrintSampleData(int nOutNo, const std::vector<float>& vecBuffer) |
| | | { |
| | | int nReceived = static_cast<int>(vecBuffer.size()); |
| | | if (vecBuffer.empty() || nReceived < 0) { |
| | | CString strError; |
| | | strError.Format(_T("OUT%d: æ¥æ¶æ°æ®ä¸ºç©ºææ æï¼æ æ³æå°ã"), nOutNo); |
| | | AppendLogLineRichStyled(strError, LOG_COLOR_WARNING); |
| | | return; |
| | | } |
| | | |
| | | CString strLine; |
| | | for (int i = 0; i < nReceived; ++i) { |
| | | CString strOne; |
| | | strOne.Format(_T("%10.3f "), vecBuffer[i]); |
| | | strLine += strOne; |
| | | |
| | | // æ¯ 7 个å¼è¾åºä¸è¡ |
| | | if ((i + 1) % 7 == 0 || i == nReceived - 1) { |
| | | AppendLogLineRichStyled(strLine, LOG_COLOR_NORMAL); |
| | | strLine.Empty(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | bool CSGMeasurementDlg::ConnectToDevice() |
| | | { |
| | | if (m_bConnected) { |
| | | AppendLogLineRichStyled(_T("设å¤å·²è¿æ¥ï¼è¯·å
æå¼è¿æ¥ã"), LOG_COLOR_WARNING); |
| | | return false; |
| | | } |
| | | |
| | | SGIF_OPENPARAM_ETHERNET stIpAddress = { 0 }; |
| | | |
| | | CIPAddressCtrl* pIPCtrl = (CIPAddressCtrl*)GetDlgItem(IDC_IPADDRESS); |
| | | if (!::IsWindow(pIPCtrl->GetSafeHwnd())) { |
| | | AppendLogLineRichStyled(_T("IP æ§ä»¶æ æï¼è¿æ¥å¤±è´¥ï¼"), LOG_COLOR_ERROR); |
| | | return false; |
| | | } |
| | | |
| | | pIPCtrl->GetAddress( |
| | | stIpAddress.IPAddress.S_un.S_un_b.s_b1, |
| | | stIpAddress.IPAddress.S_un.S_un_b.s_b2, |
| | | stIpAddress.IPAddress.S_un.S_un_b.s_b3, |
| | | stIpAddress.IPAddress.S_un.S_un_b.s_b4 |
| | | ); |
| | | |
| | | RC nRet = SGIF_OpenDeviceETHER(DeviceID, &stIpAddress); |
| | | if (nRet == RC_OK) { |
| | | AppendLogLineRichStyled(_T("æå¼è¿æ¥æåï¼"), LOG_COLOR_SUCCESS); |
| | | |
| | | m_bConnected = TRUE; |
| | | UpdateControlStatus(TRUE, FALSE); |
| | | SetTimer(TIMER_ID_OUTPUT_UPDATE, TIMER_INTERVAL_MS, nullptr); |
| | | return true; |
| | | } |
| | | else { |
| | | CString strError; |
| | | strError.Format(_T("æå¼è¿æ¥å¤±è´¥ï¼é误ç ï¼%#X"), nRet); |
| | | AppendLogLineRichStyled(strError, LOG_COLOR_ERROR); |
| | | |
| | | m_bConnected = FALSE; |
| | | UpdateControlStatus(FALSE, FALSE); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | bool CSGMeasurementDlg::DisconnectFromDevice() |
| | | { |
| | | if (!m_bConnected) { |
| | | AppendLogLineRichStyled(_T("è®¾å¤æªè¿æ¥ï¼æ éæå¼ã"), LOG_COLOR_WARNING); |
| | | return false; |
| | | } |
| | | |
| | | RC nRet = SGIF_CloseDevice(DeviceID); |
| | | if (nRet == RC_OK) { |
| | | if (m_bSaving) { |
| | | m_bSaving = FALSE; |
| | | nRet = SGIF_DataStorageStop(DeviceID); |
| | | if (nRet == RC_OK) { |
| | | AppendLogLineRichStyled(_T("æ°æ®åå¨å·²åæ¢ã"), LOG_COLOR_SUCCESS); |
| | | } |
| | | else { |
| | | CString strError; |
| | | strError.Format(_T("åæ¢æ°æ®åå¨å¤±è´¥ï¼é误ç ï¼%#X"), nRet); |
| | | AppendLogLineRichStyled(strError, LOG_COLOR_ERROR); |
| | | } |
| | | } |
| | | |
| | | AppendLogLineRichStyled(_T("æå¼è¿æ¥æåï¼"), LOG_COLOR_SUCCESS); |
| | | |
| | | m_bConnected = FALSE; |
| | | UpdateControlStatus(FALSE, FALSE); |
| | | KillTimer(TIMER_ID_OUTPUT_UPDATE); |
| | | return true; |
| | | } |
| | | else { |
| | | CString strError; |
| | | strError.Format(_T("æå¼è¿æ¥å¤±è´¥ï¼é误ç ï¼%#X"), nRet); |
| | | AppendLogLineRichStyled(strError, LOG_COLOR_ERROR); |
| | | |
| | | UpdateControlStatus(m_bConnected, m_bSaving); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | void CSGMeasurementDlg::CleanInvalidValuesInPlace(int nOutNo, std::vector<float>& vecData, float fInvalid/* = -999.0f*/) |
| | | { |
| | | // æ¾å°ç¬¬ä¸ä¸ªææå¼ |
| | | auto itStart = std::find_if(vecData.begin(), vecData.end(), [=](float v) { return v > fInvalid; }); |
| | | |
| | | // æ¾å°æåä¸ä¸ªææå¼ |
| | | auto itEnd = std::find_if(vecData.rbegin(), vecData.rend(), [=](float v) { return v > fInvalid; }).base(); |
| | | |
| | | // æ£æ¥æ¯å¦ææææ°æ® |
| | | if (itStart < itEnd) { |
| | | // å
è£è¾¹ |
| | | std::vector<float> vecTrimmed(itStart, itEnd); |
| | | |
| | | // åç§»é¤ä¸é´çæ æå¼ |
| | | auto itNewEnd = std::remove_if(vecTrimmed.begin(), vecTrimmed.end(), [=](float v) { return v == fInvalid; }); |
| | | vecTrimmed.erase(itNewEnd, vecTrimmed.end()); |
| | | |
| | | vecData = std::move(vecTrimmed); |
| | | |
| | | CString strLog; |
| | | strLog.Format(_T("OUT%d: å·²è£åªæ æè¾¹çæ°æ®ï¼å©ä½æææ°æ® %d 个ã"), nOutNo, static_cast<int>(vecData.size())); |
| | | AppendLogLineRichStyled(strLog, LOG_COLOR_NORMAL); |
| | | |
| | | if (vecData.size() < 20) { |
| | | AppendLogLineRichStyled(_T("è¦åï¼æææ°æ®éè¿å°ï¼å¯è½å½±ååç»å¤çã"), LOG_COLOR_WARNING); |
| | | } |
| | | else { |
| | | CString strInfo; |
| | | strInfo.Format(_T("OUT%d: æææ°æ®èå´ [%f, %f]"), nOutNo, *std::min_element(vecData.begin(), vecData.end()), *std::max_element(vecData.begin(), vecData.end())); |
| | | AppendLogLineRichStyled(strInfo, LOG_COLOR_NORMAL); |
| | | } |
| | | |
| | | PrintSampleData(nOutNo, vecData); |
| | | } |
| | | else { |
| | | vecData.clear(); |
| | | } |
| | | } |
| | | |
| | | bool CSGMeasurementDlg::SplitGlassSegments(int nOutNo, const std::vector<float>& vecData, std::vector<float>& vecGlass1, std::vector<float>& vecGlass2, float fJumpThreshold /*= 0.2f*/, int nWindow /*= 3*/, int nValleyMargin /*= 0*/, int nMinGlass1Count /*= 10*/) |
| | | { |
| | | const int n = static_cast<int>(vecData.size()); |
| | | if (n < 2 * nWindow + 1 + nMinGlass1Count) { |
| | | CString strError; |
| | | strError.Format(_T("OUT%d: æ°æ®éä¸è¶³ï¼è³å°éè¦ %d ä¸ªç¹æè½è¿è¡åå²ã"), nOutNo, 2 * nWindow + 1 + nMinGlass1Count); |
| | | AppendLogLineRichStyled(strError, LOG_COLOR_WARNING); |
| | | return false; |
| | | } |
| | | |
| | | int nValleyIdx = -1; |
| | | for (int i = nWindow; i < n - nWindow - nMinGlass1Count; ++i) { |
| | | float fDelta = std::fabs(vecData[i + nWindow] - vecData[i - nWindow]); |
| | | if (fDelta > fJumpThreshold) { |
| | | // æ¾ valley ç¹ï¼ç¨å¾®å¾åè·³å æ¥ä»¥é¿å¼è¾¹ç¼æå¨ï¼ |
| | | int nSearchStart = i + nWindow + 2; |
| | | int nSearchEnd = min(nSearchStart + 10, n); |
| | | |
| | | auto itValley = std::min_element(vecData.begin() + nSearchStart, vecData.begin() + nSearchEnd, |
| | | [](float a, float b) { |
| | | return (a > -900.0f && b > -900.0f) ? a < b : false; |
| | | }); |
| | | |
| | | if (itValley != vecData.begin() + nSearchEnd) { |
| | | nValleyIdx = static_cast<int>(std::distance(vecData.begin(), itValley)); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (nValleyIdx < 0 || nValleyIdx < nMinGlass1Count) { |
| | | AppendLogLineRichStyled(_T("æªæ¾å°åé valley ç¹ï¼æ valley 太é åã"), LOG_COLOR_WARNING); |
| | | return false; |
| | | } |
| | | |
| | | // ä» valley å¤å¼å§åå²ï¼æè
å¾ååç§» |
| | | int nCutStart = min(nValleyIdx + nValleyMargin, n); |
| | | vecGlass1.assign(vecData.begin(), vecData.begin() + nCutStart); |
| | | vecGlass2.assign(vecData.begin() + nCutStart, vecData.end()); |
| | | |
| | | int nGlass1Count = static_cast<int>(vecGlass1.size()); |
| | | int nGlass2Count = static_cast<int>(vecGlass2.size()); |
| | | |
| | | // æ¥å¿è¾åº |
| | | CString strLog; |
| | | strLog.Format(_T("OUT%d: å岿åï¼ç¬¬ä¸çç»çæ°æ®é %dï¼ç¬¬äºçç»çæ°æ®é %dã"), nOutNo, nGlass1Count, nGlass2Count); |
| | | AppendLogLineRichStyled(strLog, LOG_COLOR_SUCCESS); |
| | | |
| | | if (nGlass1Count < nMinGlass1Count) { |
| | | strLog.Format(_T("OUT%d: 第ä¸çç»çæ°æ®éè¿å°ï¼å¯è½å½±ååç»å¤çã"), nOutNo); |
| | | AppendLogLineRichStyled(strLog, LOG_COLOR_WARNING); |
| | | } |
| | | if (nGlass2Count < nMinGlass1Count) { |
| | | strLog.Format(_T("OUT%d: 第äºçç»çæ°æ®éè¿å°ï¼å¯è½å½±ååç»å¤çã"), nOutNo); |
| | | AppendLogLineRichStyled(strLog, LOG_COLOR_WARNING); |
| | | } |
| | | |
| | | AppendLogLineRichStyled(_T("第ä¸çç»çæ°æ®ï¼"), LOG_COLOR_NORMAL); |
| | | PrintSampleData(nOutNo, vecGlass1); |
| | | |
| | | AppendLogLineRichStyled(_T("第äºçç»çæ°æ®ï¼"), LOG_COLOR_NORMAL); |
| | | PrintSampleData(nOutNo, vecGlass2); |
| | | |
| | | return !vecGlass1.empty() && !vecGlass2.empty(); |
| | | } |
| | | |
| | | bool CSGMeasurementDlg::ExtractStableRegionFixed(int nOutNo, const std::vector<float>& vecIn, std::vector<float>& vecOut, int nFixedCount/* = 5*/, float fMaxDelta/* = 0.04f*/) |
| | | { |
| | | const int n = static_cast<int>(vecIn.size()); |
| | | if (n < nFixedCount) { |
| | | CString strError; |
| | | strError.Format(_T("OUT%d: æ°æ®éä¸è¶³ï¼è³å°éè¦ %d ä¸ªç¹æè½æå稳å®åºã"), nOutNo, nFixedCount); |
| | | return false; |
| | | } |
| | | |
| | | int nBestStart = -1; |
| | | float fBestRange = FLT_MAX; |
| | | |
| | | for (int i = 0; i <= n - nFixedCount; ++i) { |
| | | auto first = vecIn.begin() + i; |
| | | auto last = first + nFixedCount; |
| | | |
| | | float fMinVal = *std::min_element(first, last); |
| | | float fMaxVal = *std::max_element(first, last); |
| | | float fRange = fMaxVal - fMinVal; |
| | | |
| | | if (fRange <= fMaxDelta && fRange < fBestRange) { |
| | | fBestRange = fRange; |
| | | nBestStart = i; |
| | | } |
| | | } |
| | | |
| | | if (nBestStart < 0) { |
| | | return false; |
| | | } |
| | | |
| | | vecOut.assign(vecIn.begin() + nBestStart, vecIn.begin() + nBestStart + nFixedCount); |
| | | |
| | | CString strLog; |
| | | strLog.Format(_T("OUT%d: æå稳å®åºæåï¼èµ·å§ç¹ç´¢å¼ %dï¼èå´ %.3fã"), nOutNo, nBestStart, fBestRange); |
| | | AppendLogLineRichStyled(strLog, LOG_COLOR_SUCCESS); |
| | | |
| | | if (vecOut.size() < nFixedCount) { |
| | | CString strWarning; |
| | | strWarning.Format(_T("OUT%d: æåç稳å®åºæ°æ®éä¸è¶³ï¼å¯è½å½±ååç»å¤çã"), nOutNo); |
| | | AppendLogLineRichStyled(strWarning, LOG_COLOR_WARNING); |
| | | } |
| | | |
| | | // æå°æåç稳å®åºæ°æ® |
| | | AppendLogLineRichStyled(_T("æåç稳å®åºæ°æ®ï¼"), LOG_COLOR_NORMAL); |
| | | PrintSampleData(nOutNo, vecOut); |
| | | |
| | | return true; |
| | | } |
| | | |
| | | bool CSGMeasurementDlg::CalcGlassOffset(const std::vector<float>& vecGlass1, const std::vector<float>& vecGlass2, float& fAvg1, float& fAvg2, float& fOffset) |
| | | { |
| | | if (vecGlass1.empty() || vecGlass2.empty()) { |
| | | AppendLogLineRichStyled(_T("稳å®åºæ°æ®ä¸ºç©ºï¼æ æ³è®¡ç®å¹³åå¼ååç§»ã"), LOG_COLOR_WARNING); |
| | | return false; |
| | | } |
| | | |
| | | auto CalcAverage = [](const std::vector<float>& data) -> float { |
| | | float sum = std::accumulate(data.begin(), data.end(), 0.0f); |
| | | return sum / static_cast<float>(data.size()); |
| | | }; |
| | | |
| | | fAvg1 = CalcAverage(vecGlass1); |
| | | fAvg2 = CalcAverage(vecGlass2); |
| | | fOffset = std::fabs(fAvg2 - fAvg1); // 第äºç - 第ä¸ç |
| | | |
| | | CString strLog; |
| | | strLog.Format(_T("第ä¸çç»çå¹³åå¼: %.3fï¼ç¬¬äºçç»çå¹³åå¼: %.3fï¼åç§»é: %.3f"), fAvg1, fAvg2, fOffset); |
| | | AppendLogLineRichStyled(strLog, LOG_COLOR_SUCCESS); |
| | | |
| | | return true; |
| | | } |
| | | |
| | | BEGIN_MESSAGE_MAP(CSGMeasurementDlg, CDialogEx) |
| | | ON_WM_SYSCOMMAND() |
| | | ON_WM_PAINT() |
| | | ON_WM_QUERYDRAGICON() |
| | | ON_WM_TIMER() |
| | | ON_WM_MEASUREITEM() |
| | | ON_WM_DRAWITEM() |
| | | ON_WM_CLOSE() |
| | | ON_MESSAGE(WM_TRAY_ICON_NOTIFY, &CSGMeasurementDlg::OnTrayIconClick) |
| | | ON_COMMAND(ID_TRAY_RESTORE, &CSGMeasurementDlg::OnTrayRestore) |
| | | ON_COMMAND(ID_TRAY_EXIT, &CSGMeasurementDlg::OnTrayExit) |
| | | ON_BN_CLICKED(IDC_BUTTON_CONNECT, &CSGMeasurementDlg::OnBnClickedButtonConnect) |
| | | ON_BN_CLICKED(IDC_BUTTON_DISCONNECT, &CSGMeasurementDlg::OnBnClickedButtonDisconnect) |
| | | ON_BN_CLICKED(IDC_BUTTON_RECEIVE_FROM_CTRL, &CSGMeasurementDlg::OnBnClickedButtonReceiveFromCtrl) |
| | | ON_BN_CLICKED(IDC_BUTTON_SEND_TO_CTRL, &CSGMeasurementDlg::OnBnClickedButtonSendToCtrl) |
| | | ON_BN_CLICKED(IDC_BUTTON_CLEAR_STORE, &CSGMeasurementDlg::OnBnClickedButtonClearStore) |
| | | ON_BN_CLICKED(IDC_BUTTON_START_STORE, &CSGMeasurementDlg::OnBnClickedButtonStartStore) |
| | | ON_BN_CLICKED(IDC_BUTTON_STOP_STORE, &CSGMeasurementDlg::OnBnClickedButtonStopStore) |
| | | ON_BN_CLICKED(IDC_BUTTON_CLEAR_LOG, &CSGMeasurementDlg::OnBnClickedButtonClearLog) |
| | | END_MESSAGE_MAP() |
| | | |
| | | BOOL CSGMeasurementDlg::OnInitDialog() |
| | | { |
| | | CDialogEx::OnInitDialog(); |
| | | |
| | | // å°âå
³äº...âèå项添å å°ç³»ç»èåä¸ã |
| | | |
| | | // IDM_ABOUTBOX å¿
é¡»å¨ç³»ç»å½ä»¤èå´å
ã |
| | | ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); |
| | | ASSERT(IDM_ABOUTBOX < 0xF000); |
| | | |
| | | CMenu* pSysMenu = GetSystemMenu(FALSE); |
| | | if (pSysMenu != nullptr) |
| | | { |
| | | BOOL bNameValid; |
| | | CString strAboutMenu; |
| | | bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX); |
| | | ASSERT(bNameValid); |
| | | if (!strAboutMenu.IsEmpty()) |
| | | { |
| | | pSysMenu->AppendMenu(MF_SEPARATOR); |
| | | pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); |
| | | } |
| | | } |
| | | |
| | | // 设置æ¤å¯¹è¯æ¡ç徿 ã å½åºç¨ç¨åºä¸»çªå£ä¸æ¯å¯¹è¯æ¡æ¶ï¼æ¡æ¶å°èªå¨ |
| | | // æ§è¡æ¤æä½ |
| | | SetIcon(m_hIcon, TRUE); // è®¾ç½®å¤§å¾æ |
| | | SetIcon(m_hIcon, FALSE); // 设置å°å¾æ |
| | | |
| | | // TODO: 卿¤æ·»å é¢å¤çåå§å代ç |
| | | UpdateData(FALSE); |
| | | UpdateControlStatus(FALSE, FALSE); |
| | | |
| | | // æç徿 åå§å |
| | | m_trayIconData.cbSize = sizeof(NOTIFYICONDATA); // 设置æç徿 æ°æ®ç»æçå¤§å° |
| | | m_trayIconData.hWnd = m_hWnd; // 设置çªå£å¥æ |
| | | m_trayIconData.uID = m_nTrayIconID; // 设置æç徿 ID |
| | | m_trayIconData.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP; // 设置æç徿 çæ å¿ï¼å¾æ ãæ¶æ¯ãæç¤ºææ¬ï¼ |
| | | m_trayIconData.uCallbackMessage = WM_TRAY_ICON_NOTIFY; // 设置åè°æ¶æ¯ WM_TRAY_ICON_NOTIFY |
| | | m_trayIconData.hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); // å è½½æç徿 |
| | | lstrcpy(m_trayIconData.szTip, TRAY_ICON_TOOLTIP_TEXT); // 设置æçæç¤ºææ¬ |
| | | |
| | | // æ·»å æç徿 |
| | | Shell_NotifyIcon(NIM_ADD, &m_trayIconData); |
| | | m_bTrayIconCreated = TRUE; |
| | | |
| | | for (int i = 0; i < 4; i++) { |
| | | CString str; |
| | | str.Format(_T("OUT%d"), i + 1); |
| | | m_comboOutputPort.AddString(str); |
| | | } |
| | | m_comboOutputPort.SetCurSel(0); |
| | | |
| | | // åå§åIPå°åæ§ä»¶ï¼è®¾ç½®ä¸ºé»è®¤IPå°å |
| | | ((CIPAddressCtrl*)GetDlgItem(IDC_IPADDRESS))->SetAddress(192, 168, 0, 10); |
| | | |
| | | // åå§åæ¥å¿æ¡ |
| | | AppendLogLineRichStyled(_T("åå¤å°±ç»ª..."), LOG_COLOR_SUCCESS); |
| | | |
| | | return TRUE; // é¤éå°ç¦ç¹è®¾ç½®å°æ§ä»¶ï¼å¦åè¿å TRUE |
| | | } |
| | | |
| | | void CSGMeasurementDlg::OnSysCommand(UINT nID, LPARAM lParam) |
| | | { |
| | | if ((nID & 0xFFF0) == IDM_ABOUTBOX) |
| | | { |
| | | CAboutDlg dlgAbout; |
| | | dlgAbout.DoModal(); |
| | | } |
| | | else |
| | | { |
| | | CDialogEx::OnSysCommand(nID, lParam); |
| | | } |
| | | } |
| | | |
| | | void CSGMeasurementDlg::OnPaint() |
| | | { |
| | | if (IsIconic()) { |
| | | CPaintDC dc(this); |
| | | |
| | | SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0); |
| | | |
| | | // ä½¿å¾æ å¨å·¥ä½åºç©å½¢ä¸å±
ä¸ |
| | | int cxIcon = GetSystemMetrics(SM_CXICON); |
| | | int cyIcon = GetSystemMetrics(SM_CYICON); |
| | | CRect rect; |
| | | GetClientRect(&rect); |
| | | int x = (rect.Width() - cxIcon + 1) / 2; |
| | | int y = (rect.Height() - cyIcon + 1) / 2; |
| | | |
| | | // ç»å¶å¾æ |
| | | dc.DrawIcon(x, y, m_hIcon); |
| | | } |
| | | else { |
| | | CDialogEx::OnPaint(); |
| | | } |
| | | } |
| | | |
| | | //å½ç¨æ·æå¨æå°åçªå£æ¶ç³»ç»è°ç¨æ¤å½æ°åå¾å
æ æ¾ç¤ºã |
| | | HCURSOR CSGMeasurementDlg::OnQueryDragIcon() |
| | | { |
| | | return static_cast<HCURSOR>(m_hIcon); |
| | | } |
| | | |
| | | void CSGMeasurementDlg::OnTimer(UINT_PTR nIDEvent) |
| | | { |
| | | // TODO: 卿¤æ·»å æ¶æ¯å¤çç¨åºä»£ç å/æè°ç¨é»è®¤å¼ |
| | | if (nIDEvent == TIMER_ID_OUTPUT_UPDATE) { |
| | | SGIF_FLOATVALUE_OUT value[4] = { 0 }; |
| | | RC nRet = SGIF_GetCalcDataALL(DeviceID, value); |
| | | if (nRet == RC_OK) { |
| | | for (int i = 0; i < 4; ++i) { |
| | | m_dOutValues[i] = value[i].Value; |
| | | } |
| | | |
| | | // æ´æ°ç»å®æ§ä»¶ |
| | | UpdateData(FALSE); |
| | | } |
| | | else { |
| | | CString strError; |
| | | strError.Format(_T("è·åæµéå¼å¤±è´¥ï¼é误ç ï¼%#X"), nRet); |
| | | AppendLogLineRichStyled(strError, LOG_COLOR_ERROR); |
| | | } |
| | | } |
| | | |
| | | CDialogEx::OnTimer(nIDEvent); |
| | | } |
| | | |
| | | void CSGMeasurementDlg::OnMeasureItem(int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct) |
| | | { |
| | | if (lpMeasureItemStruct->CtlType == ODT_MENU) { |
| | | lpMeasureItemStruct->itemHeight = 24; |
| | | lpMeasureItemStruct->itemWidth = 140; |
| | | } |
| | | } |
| | | |
| | | void CSGMeasurementDlg::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct) |
| | | { |
| | | if (lpDrawItemStruct->CtlType != ODT_MENU) { |
| | | return; |
| | | } |
| | | |
| | | CDC* pDC = CDC::FromHandle(lpDrawItemStruct->hDC); |
| | | CRect rc = lpDrawItemStruct->rcItem; |
| | | UINT id = lpDrawItemStruct->itemID; |
| | | |
| | | // èæ¯ |
| | | COLORREF bgColor = (lpDrawItemStruct->itemState & ODS_SELECTED) ? RGB(200, 220, 255) : RGB(255, 255, 255); |
| | | pDC->FillSolidRect(rc, bgColor); |
| | | |
| | | // 徿 |
| | | HICON hIcon = nullptr; |
| | | if (id == ID_TRAY_RESTORE) { |
| | | hIcon = AfxGetApp()->LoadIcon(IDI_ICON_RESTORE); |
| | | } |
| | | |
| | | if (id == ID_TRAY_EXIT) { |
| | | hIcon = AfxGetApp()->LoadIcon(IDI_ICON_EXIT); |
| | | } |
| | | |
| | | if (hIcon) { |
| | | DrawIconEx(pDC->GetSafeHdc(), rc.left + 4, rc.top + 4, hIcon, 16, 16, 0, NULL, DI_NORMAL); |
| | | } |
| | | |
| | | // ææ¬ |
| | | CString str; |
| | | if (id == ID_TRAY_RESTORE) { |
| | | str = _T("æ¢å¤çé¢"); |
| | | } |
| | | |
| | | if (id == ID_TRAY_EXIT) { |
| | | str = _T("éåºç¨åº"); |
| | | } |
| | | |
| | | pDC->SetBkMode(TRANSPARENT); |
| | | pDC->SetTextColor(RGB(0, 0, 0)); |
| | | pDC->DrawText(str, CRect(rc.left + 28, rc.top, rc.right, rc.bottom), DT_SINGLELINE | DT_VCENTER | DT_LEFT); |
| | | } |
| | | |
| | | void CSGMeasurementDlg::OnClose() |
| | | { |
| | | // TODO: 卿¤æ·»å æ¶æ¯å¤çç¨åºä»£ç å/æè°ç¨é»è®¤å¼ |
| | | if (m_bExitingFromTray) { |
| | | // 仿çéåºæµç¨ |
| | | ExitApplication(); |
| | | } |
| | | else { |
| | | // æ£å¸¸å
³éæé® |
| | | int nResult = AfxMessageBox(_T("æ¯å¦æå°åå°æçï¼"), MB_YESNO | MB_ICONQUESTION); |
| | | if (nResult == IDYES) { |
| | | ShowWindow(SW_HIDE); |
| | | } |
| | | else { |
| | | ExitApplication(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | LRESULT CSGMeasurementDlg::OnTrayIconClick(WPARAM wParam, LPARAM lParam) { |
| | | if (wParam == m_nTrayIconID) { |
| | | if (LOWORD(lParam) == WM_LBUTTONUP) { |
| | | // å·¦é®ç¹å»æ¢å¤çªå£ |
| | | ShowWindow(SW_SHOW); |
| | | SetForegroundWindow(); |
| | | } |
| | | else if (LOWORD(lParam) == WM_RBUTTONUP) { |
| | | // å³é®ç¹å»å¼¹åºèå |
| | | CMenu menu; |
| | | menu.CreatePopupMenu(); |
| | | menu.AppendMenu(MF_OWNERDRAW, ID_TRAY_RESTORE, (LPCTSTR)ID_TRAY_RESTORE); |
| | | menu.AppendMenu(MF_OWNERDRAW, ID_TRAY_EXIT, (LPCTSTR)ID_TRAY_EXIT); |
| | | |
| | | // å è½½å¾æ |
| | | HICON hIconRestore = (HICON)::LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_ICON_RESTORE), IMAGE_ICON, 16, 16, LR_SHARED); |
| | | HICON hIconExit = (HICON)::LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_ICON_EXIT), IMAGE_ICON, 16, 16, LR_SHARED); |
| | | |
| | | // è®¾ç½®å¾æ å°èå项 |
| | | MENUITEMINFO mii = { sizeof(MENUITEMINFO) }; |
| | | mii.fMask = MIIM_BITMAP; |
| | | |
| | | // æ¢å¤èå项徿 |
| | | mii.hbmpItem = HBMMENU_CALLBACK; |
| | | menu.SetMenuItemInfo(ID_TRAY_RESTORE, &mii); |
| | | |
| | | // éåºèå项徿 |
| | | mii.hbmpItem = HBMMENU_CALLBACK; |
| | | menu.SetMenuItemInfo(ID_TRAY_EXIT, &mii); |
| | | |
| | | // è·åé¼ æ å½åä½ç½®ï¼å¹¶æ¾ç¤ºèå |
| | | POINT pt; |
| | | GetCursorPos(&pt); |
| | | SetForegroundWindow(); |
| | | menu.TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, pt.x, pt.y, this); |
| | | } |
| | | } |
| | | return 0; |
| | | } |
| | | |
| | | void CSGMeasurementDlg::OnTrayRestore() |
| | | { |
| | | ShowWindow(SW_SHOW); // æ¢å¤çªå£ |
| | | SetForegroundWindow(); // å°çªå£ç½®äºå端 |
| | | } |
| | | |
| | | void CSGMeasurementDlg::OnTrayExit() |
| | | { |
| | | // 仿ç徿 èåéæ©âéåºç¨åºâ |
| | | if (AfxMessageBox(_T("ç¡®å®è¦éåºç¨åºåï¼"), MB_YESNO | MB_ICONQUESTION) == IDYES) { |
| | | m_bExitingFromTray = TRUE; |
| | | PostMessage(WM_CLOSE); |
| | | } |
| | | } |
| | | |
| | | void CSGMeasurementDlg::OnBnClickedButtonConnect() |
| | | { |
| | | // TODO: 卿¤æ·»å æ§ä»¶éç¥å¤çç¨åºä»£ç |
| | | ConnectToDevice(); |
| | | } |
| | | |
| | | void CSGMeasurementDlg::OnBnClickedButtonDisconnect() |
| | | { |
| | | // TODO: 卿¤æ·»å æ§ä»¶éç¥å¤çç¨åºä»£ç |
| | | DisconnectFromDevice(); |
| | | } |
| | | |
| | | void CSGMeasurementDlg::OnBnClickedButtonReceiveFromCtrl() |
| | | { |
| | | // TODO: 卿¤æ·»å æ§ä»¶éç¥å¤çç¨åºä»£ç |
| | | if (!m_bConnected) { |
| | | AppendLogLineRichStyled(_T("è®¾å¤æªè¿æ¥ï¼è¯·å
è¿æ¥è®¾å¤ã"), LOG_COLOR_WARNING); |
| | | return; |
| | | } |
| | | } |
| | | |
| | | void CSGMeasurementDlg::OnBnClickedButtonSendToCtrl() |
| | | { |
| | | // TODO: 卿¤æ·»å æ§ä»¶éç¥å¤çç¨åºä»£ç |
| | | if (!m_bConnected) { |
| | | AppendLogLineRichStyled(_T("è®¾å¤æªè¿æ¥ï¼è¯·å
è¿æ¥è®¾å¤ã"), LOG_COLOR_WARNING); |
| | | return; |
| | | } |
| | | } |
| | | |
| | | void CSGMeasurementDlg::OnBnClickedButtonClearStore() |
| | | { |
| | | // TODO: 卿¤æ·»å æ§ä»¶éç¥å¤çç¨åºä»£ç |
| | | if (!m_bConnected) { |
| | | AppendLogLineRichStyled(_T("è®¾å¤æªè¿æ¥ï¼è¯·å
è¿æ¥è®¾å¤ã"), LOG_COLOR_WARNING); |
| | | return; |
| | | } |
| | | |
| | | if (m_bSaving) { |
| | | AppendLogLineRichStyled(_T("æ°æ®å卿£å¨è¿è¡ä¸ï¼è¯·å
忢åå¨ã"), LOG_COLOR_WARNING); |
| | | return; |
| | | } |
| | | |
| | | RC nRet = SGIF_DataStorageInit(DeviceID); |
| | | if (nRet == RC_OK) { |
| | | AppendLogLineRichStyled(_T("æ°æ®åå¨å·²æ¸
é¤ã"), LOG_COLOR_SUCCESS); |
| | | } |
| | | else { |
| | | CString strError; |
| | | strError.Format(_T("æ¸
餿°æ®åå¨å¤±è´¥ï¼é误ç ï¼%#X"), nRet); |
| | | AppendLogLineRichStyled(strError, LOG_COLOR_ERROR); |
| | | } |
| | | } |
| | | |
| | | void CSGMeasurementDlg::OnBnClickedButtonStartStore() |
| | | { |
| | | // TODO: 卿¤æ·»å æ§ä»¶éç¥å¤çç¨åºä»£ç |
| | | if (m_bSaving) { |
| | | AppendLogLineRichStyled(_T("æ°æ®åå¨å·²å¨è¿è¡ä¸ï¼è¯·å
忢åå¨ã"), LOG_COLOR_WARNING); |
| | | return; |
| | | } |
| | | |
| | | RC nRet = SGIF_DataStorageStart(DeviceID); |
| | | if (nRet == RC_OK) { |
| | | m_bSaving = TRUE; |
| | | AppendLogLineRichStyled(_T("æ°æ®åå¨å·²å¼å§ã"), LOG_COLOR_SUCCESS); |
| | | } |
| | | else { |
| | | CString strError; |
| | | strError.Format(_T("å¼å§æ°æ®åå¨å¤±è´¥ï¼é误ç ï¼%#X"), nRet); |
| | | AppendLogLineRichStyled(strError, LOG_COLOR_ERROR); |
| | | } |
| | | |
| | | UpdateControlStatus(m_bConnected, m_bSaving); |
| | | } |
| | | |
| | | void CSGMeasurementDlg::OnBnClickedButtonStopStore() |
| | | { |
| | | // TODO: 卿¤æ·»å æ§ä»¶éç¥å¤çç¨åºä»£ç |
| | | UpdateData(TRUE); |
| | | |
| | | if (!m_bSaving) { |
| | | AppendLogLineRichStyled(_T("æ°æ®å卿ªå¨è¿è¡ä¸ï¼è¯·å
å¼å§åå¨ã"), LOG_COLOR_WARNING); |
| | | return; |
| | | } |
| | | |
| | | RC nRet = SGIF_DataStorageStop(DeviceID); |
| | | if (nRet == RC_OK) { |
| | | m_bSaving = FALSE; |
| | | AppendLogLineRichStyled(_T("æ°æ®åå¨å·²åæ¢ã"), LOG_COLOR_SUCCESS); |
| | | |
| | | if (m_nUseTrigger) { |
| | | UpdateControlStatus(m_bConnected, m_bSaving); |
| | | AfxMessageBox(_T("å½åæ¯ç¡¬è§¦å模å¼ï¼è¯·æ£æ¥è§¦åå¨ç¶æã"), MB_ICONINFORMATION); |
| | | return; |
| | | } |
| | | |
| | | int nReceived = 0; |
| | | std::vector<float> vecBuffer(m_nSavePointCount, 0.0f); |
| | | |
| | | int nSel = m_comboOutputPort.GetCurSel(); |
| | | if (CB_ERR == nSel) { |
| | | AppendLogLineRichStyled(_T("è¯·éæ©ä¸ä¸ªææçè¾åºç«¯å£ã"), LOG_COLOR_WARNING); |
| | | return; |
| | | } |
| | | |
| | | int nOutNo = nSel + 1; |
| | | nRet = SGIF_DataStorageGetData(DeviceID, nOutNo, m_nSavePointCount, vecBuffer.data(), &nReceived); |
| | | |
| | | CString strLog; |
| | | if (nRet == RC_OK) { |
| | | vecBuffer.resize(nReceived); |
| | | CleanInvalidValuesInPlace(nOutNo, vecBuffer); |
| | | |
| | | std::vector<float> vecGlass1, vecGlass2; |
| | | if (SplitGlassSegments(nOutNo, vecBuffer, vecGlass1, vecGlass2, m_fJumpThreshold, m_nJumpWindow, m_nValleyMargin, m_nMinGlass1Count)) { |
| | | |
| | | std::vector<float> vecStableGlass1, vecStableGlass2; |
| | | bool bStable1 = ExtractStableRegionFixed(nOutNo, vecGlass1, vecStableGlass1, m_nFixedCount, m_fMaxDelta); |
| | | bool bStable2 = ExtractStableRegionFixed(nOutNo, vecGlass2, vecStableGlass2, m_nFixedCount, m_fMaxDelta); |
| | | |
| | | float fAvg1 = 0.0f, fAvg2 = 0.0f, fOffset = 0.0f; |
| | | if (bStable1 && bStable2) { |
| | | AppendLogLineRichStyled(_T("æåæåå°ä¸¤çç»çç稳å®åºæ°æ®ã"), LOG_COLOR_SUCCESS); |
| | | CalcGlassOffset(vecStableGlass1, vecStableGlass2, fAvg1, fAvg2, fOffset); |
| | | } |
| | | else { |
| | | AppendLogLineRichStyled(_T("æªè½æåå°ç¨³å®åºæ°æ®ï¼æ æ³æ£å¸¸è®¡ç®åç§»ã"), LOG_COLOR_WARNING); |
| | | CalcGlassOffset(vecGlass1, vecGlass2, fAvg1, fAvg2, fOffset); |
| | | } |
| | | } |
| | | else { |
| | | AppendLogLineRichStyled(_T("æªè½è¯å«åºä¸¤çç»ççæ°æ®ã"), LOG_COLOR_WARNING); |
| | | } |
| | | } |
| | | else { |
| | | strLog.Format(_T("读å OUT%d æ°æ®å¤±è´¥ï¼é误ç ï¼%#X"), nOutNo, nRet); |
| | | AppendLogLineRichStyled(strLog, LOG_COLOR_ERROR); |
| | | } |
| | | } |
| | | else { |
| | | CString strError; |
| | | strError.Format(_T("åæ¢æ°æ®åå¨å¤±è´¥ï¼é误ç ï¼%#X"), nRet); |
| | | AppendLogLineRichStyled(strError, LOG_COLOR_ERROR); |
| | | } |
| | | |
| | | UpdateControlStatus(m_bConnected, m_bSaving); |
| | | } |
| | | |
| | | void CSGMeasurementDlg::OnBnClickedButtonClearLog() |
| | | { |
| | | // TODO: 卿¤æ·»å æ§ä»¶éç¥å¤çç¨åºä»£ç |
| | | if (::IsWindow(m_editLog.GetSafeHwnd())) { |
| | | m_editLog.SetWindowText(_T("")); |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | |  |
| | | // SGMeasurementDlg.h: 头æä»¶ |
| | | // |
| | | |
| | | #pragma once |
| | | #include <vector> |
| | | #include <numeric> |
| | | #include <algorithm> |
| | | |
| | | // CSGMeasurementDlg å¯¹è¯æ¡ |
| | | class CSGMeasurementDlg : public CDialogEx |
| | | { |
| | | // æé |
| | | public: |
| | | CSGMeasurementDlg(CWnd* pParent = nullptr); // æ åæé 彿° |
| | | |
| | | // å¯¹è¯æ¡æ°æ® |
| | | #ifdef AFX_DESIGN_TIME |
| | | enum { IDD = IDD_SGMEASUREMENT_DIALOG }; |
| | | #endif |
| | | |
| | | protected: |
| | | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV æ¯æ |
| | | |
| | | // å®ç° |
| | | protected: |
| | | HICON m_hIcon; |
| | | |
| | | // çæçæ¶æ¯æ å°å½æ° |
| | | virtual BOOL OnInitDialog(); |
| | | afx_msg void OnSysCommand(UINT nID, LPARAM lParam); |
| | | afx_msg void OnPaint(); |
| | | afx_msg HCURSOR OnQueryDragIcon(); |
| | | afx_msg void OnTimer(UINT_PTR nIDEvent); |
| | | afx_msg void OnMeasureItem(int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct); |
| | | afx_msg void OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct); |
| | | afx_msg void OnClose(); |
| | | afx_msg LRESULT OnTrayIconClick(WPARAM wParam, LPARAM lParam); |
| | | afx_msg void OnTrayRestore(); |
| | | afx_msg void OnTrayExit(); |
| | | afx_msg void OnBnClickedButtonConnect(); |
| | | afx_msg void OnBnClickedButtonDisconnect(); |
| | | afx_msg void OnBnClickedButtonReceiveFromCtrl(); |
| | | afx_msg void OnBnClickedButtonSendToCtrl(); |
| | | afx_msg void OnBnClickedButtonClearStore(); |
| | | afx_msg void OnBnClickedButtonStartStore(); |
| | | afx_msg void OnBnClickedButtonStopStore(); |
| | | afx_msg void OnBnClickedButtonClearLog(); |
| | | DECLARE_MESSAGE_MAP() |
| | | |
| | | private: |
| | | void ExitApplication(); |
| | | |
| | | /** |
| | | * @brief æ´æ°ç颿§ä»¶çå¯ç¨ç¶æã |
| | | * |
| | | * æ ¹æ®è®¾å¤è¿æ¥ç¶æ `bConnected` ååå¨ç¶æ `bStoring` 卿æ§å¶çé¢ä¸æé®ã |
| | | * ç¼è¾æ¡ã䏿æ¡çæ§ä»¶çå¯ç¨/ç¦ç¨ç¶æã |
| | | * |
| | | * @param bConnected 设å¤å½åæ¯å¦å·²è¿æ¥ï¼TRUE è¡¨ç¤ºå·²è¿æ¥ï¼FALSE 表示æªè¿æ¥ã |
| | | * @param bStoring å½åæ¯å¦æ£å¨è¿è¡æ°æ®åå¨ï¼TRUE 表示æ£å¨åå¨ã |
| | | */ |
| | | void UpdateControlStatus(BOOL bConnected, BOOL bStoring = FALSE); |
| | | |
| | | /** |
| | | * @brief å¯å¨æ¹éæ¥å¿è¿½å ï¼æåèªå¨æ»å¨ï¼æé«æ§è½ã |
| | | */ |
| | | void AppendLogLineBatchBegin(); |
| | | |
| | | /** |
| | | * @brief ç»ææ¹éæ¥å¿è¿½å ï¼æ¢å¤èªå¨æ»å¨å¹¶å·æ°æ¾ç¤ºã |
| | | */ |
| | | void AppendLogLineBatchEnd(); |
| | | |
| | | /** |
| | | * @brief éå¶å¯ææ¬æ¡ä¸çæå¤§è¡æ°ï¼é¿å
æ¥å¿è¿å¤å¯¼è´æ§è½é®é¢ã |
| | | * |
| | | * @param maxLines æå¤§ä¿ççè¡æ°ï¼é»è®¤å¼ä¸º 100ã |
| | | */ |
| | | void TrimRichEditLineLimit(int maxLines = 100); |
| | | |
| | | /** |
| | | * @brief 忥å¿çªå£è¿½å 䏿¡å¸¦é¢è²æ ·å¼çæ¥å¿è¡ã |
| | | * |
| | | * @param content æ¥å¿å
容ã |
| | | * @param color åä½é¢è²ï¼é»è®¤ä¸ºé»è²ã |
| | | */ |
| | | void AppendLogLineRichStyled(const CString& content, COLORREF color = RGB(0, 0, 0)); |
| | | |
| | | /** |
| | | * @brief é«äº®æ¥å¿ä¸ææå¹é
æå®å符串çé¨åã |
| | | * |
| | | * @param strSearch è¦å¹é
çå符串ã |
| | | * @param clrHighlight é«äº®é¢è²ï¼é»è®¤ä¸ºæ©è²ï¼RGB(255, 165, 0)ï¼ã |
| | | */ |
| | | void HighlightAllMatches(const CString& strSearch, COLORREF clrHighlight = RGB(255, 165, 0)); |
| | | |
| | | /** |
| | | * @brief ä»¥æ ¼å¼åæ¹å¼è¾åºæå®ééçæµéæ°æ®æ ·æ¬å°æ¥å¿ã |
| | | * |
| | | * æ¯è¡è¾åºåºå®æ°éï¼å¦ 7ï¼ä¸ªæµ®ç¹æ°æ®ï¼å¸¦æ¶é´æ³ãééç¼å·æ è¯ï¼ä¾¿äºè°è¯æ¥çã |
| | | * |
| | | * @param nOutNo è¾åºç«¯å£ç¼å·ï¼ç¨äºæ è¯æ¥å¿æ¥æºï¼å¦ OUT1ãOUT2 çã |
| | | * @param vecBuffer æµéæ°æ®ç¼åï¼å°è¢«éè¡æå°å°æ¥å¿ä¸ã |
| | | */ |
| | | void PrintSampleData(int nOutNo, const std::vector<float>& vecBuffer); |
| | | |
| | | /** |
| | | * @brief å°è¯è¿æ¥å°æµé设å¤ã |
| | | * |
| | | * @return true è¡¨ç¤ºè¿æ¥æåï¼false è¡¨ç¤ºè¿æ¥å¤±è´¥ã |
| | | */ |
| | | bool ConnectToDevice(); |
| | | |
| | | /** |
| | | * @brief æå¼ä¸æµé设å¤çè¿æ¥ã |
| | | * |
| | | * @return true 表示æå¼æåï¼false 表示æå¼å¤±è´¥ã |
| | | */ |
| | | bool DisconnectFromDevice(); |
| | | |
| | | /** |
| | | * @brief åå°æ¸
餿 æå¼ï¼å¦ -999.0fï¼å¹¶æ´æ°æ°æ®ã |
| | | * |
| | | * @param nOutNo è¾åºééç¼å·ï¼ç¨äºæ¥å¿è®°å½ã |
| | | * @param vecData è¾å
¥è¾åºæ°æ®å®¹å¨ï¼å
é¨å°è¢«å°±å°è£åªã |
| | | * @param fInvalid æ æå¼ç夿éå¼ï¼é»è®¤å¼ä¸º -999.0fã |
| | | */ |
| | | void CleanInvalidValuesInPlace(int nOutNo, std::vector<float>& vecData, float fInvalid = -999.0f); |
| | | |
| | | /** |
| | | * @brief å°æææ°æ®åå²æä¸¤æ®µç»çæ°æ®ï¼Glass1 ä¸ Glass2ï¼ã |
| | | * |
| | | * @param nOutNo è¾åºééç¼å·ï¼ç¨äºæ¥å¿è®°å½ã |
| | | * @param validData è¾å
¥çæææ°æ®ï¼åºå·²è£åªè¾¹çï¼ã |
| | | * @param vecGlass1 è¾åºç¬¬ä¸æ®µç»çæ°æ®ã |
| | | * @param vecGlass2 è¾åºç¬¬äºæ®µç»çæ°æ®ã |
| | | * @param fJumpThreshold è·³åéå¼ï¼ç¨äºæ£æµæ°æ®çææ¾æç¹ã |
| | | * @param nWindow è·³å夿çååçªå£å®½åº¦ã |
| | | * @param nValleyMargin valley ç¹ä¹åå¤å°ä¸ªç¹ä½ä¸ºå®é
åå²ç¹ã |
| | | * @param nMinGlass1Count ç¬¬ä¸æ®µæå°ææç¹æ°éå¶ã |
| | | * |
| | | * @return true 表示å岿åï¼false 表示失败ï¼ä¾å¦æ°æ®ä¸è¶³ææ ææ¾è·³åï¼ã |
| | | */ |
| | | bool SplitGlassSegments(int nOutNo, const std::vector<float>& validData, |
| | | std::vector<float>& vecGlass1, std::vector<float>& vecGlass2, |
| | | float fJumpThreshold = 1.0f, int nWindow = 3, int nValleyMargin = 0, |
| | | int nMinGlass1Count = 10); |
| | | |
| | | /** |
| | | * @brief ä»è¾å
¥æ°æ®ä¸æåä¸ä¸ªåºå®é¿åº¦ç稳å®åºé´ã |
| | | * |
| | | * @param nOutNo è¾åºééç¼å·ï¼ç¨äºæ¥å¿è®°å½ã |
| | | * @param vecIn è¾å
¥åå§æ°æ®ã |
| | | * @param vecOut è¾åºæåç稳å®åºåæ°æ®ã |
| | | * @param nFixedCount 稳å®åºåçç¹æ°è¦æ±ï¼å¿
é¡»åºå®æ°éï¼ã |
| | | * @param fMaxDelta å
许çæå¤§æ³¢å¨èå´ï¼æå¤§å¼ - æå°å¼ï¼ã |
| | | * |
| | | * @return true 表示æåæ¾å°ç¨³å®åºé´ï¼false è¡¨ç¤ºæªæ¾å°ã |
| | | */ |
| | | bool ExtractStableRegionFixed(int nOutNo, |
| | | const std::vector<float>& vecIn, |
| | | std::vector<float>& vecOut, |
| | | int nFixedCount = 5, float fMaxDelta = 0.05f); |
| | | |
| | | /** |
| | | * @brief 计ç®ä¸¤çç»ç稳å®åºåçå¹³åå¼ååç§»éã |
| | | * |
| | | * @param vecGlass1 ç¬¬ä¸æ®µç¨³å®æ°æ®ã |
| | | * @param vecGlass2 ç¬¬äºæ®µç¨³å®æ°æ®ã |
| | | * @param fAvg1 è¿åç¬¬ä¸æ®µçå¹³åå¼ã |
| | | * @param fAvg2 è¿åç¬¬äºæ®µçå¹³åå¼ã |
| | | * @param fOffset è¿å两段çåç§»å¼ï¼ç»å¯¹å¼å·®ï¼ã |
| | | * |
| | | * @return true è¡¨ç¤ºè®¡ç®æåï¼false 表示è¾å
¥æ æï¼å¦ç©ºæ°æ®ï¼ã |
| | | */ |
| | | bool CalcGlassOffset(const std::vector<float>& vecGlass1, |
| | | const std::vector<float>& vecGlass2, |
| | | float& fAvg1, float& fAvg2, float& fOffset); |
| | | |
| | | // === ç³»ç»ç¶æä¸è¿è¡æ°æ® === |
| | | |
| | | /** |
| | | * @brief å½åæ¯å¦å·²è¿æ¥å°ä¼ æå¨æ§å¶å¨ |
| | | */ |
| | | bool m_bConnected; |
| | | |
| | | /** |
| | | * @brief å½åæ¯å¦æ£å¨è¿è¡æ°æ®åå¨ |
| | | */ |
| | | bool m_bSaving; |
| | | |
| | | /** |
| | | * @brief å个è¾åºç«¯å£çå½å计ç®ç»æï¼å¦åç§»éæå度çï¼ |
| | | */ |
| | | double m_dOutValues[4]; |
| | | |
| | | // === åå¨è®¾ç½®ç¸å
³ === |
| | | |
| | | /** |
| | | * @brief æ¯å¦ä½¿ç¨ç¡¬ä»¶è§¦åä¿¡å·ï¼0=å¦ï¼1=æ¯ï¼ |
| | | */ |
| | | int m_nUseTrigger; |
| | | |
| | | /** |
| | | * @brief æ¯æ¬¡ééçæ°æ®ç¹æ°é |
| | | */ |
| | | int m_nSavePointCount; |
| | | |
| | | /** |
| | | * @brief è¾åºç«¯å£éæ©ä¸ææ¡æ§ä»¶ï¼ç¨äºè®¾ç½®éé端å£ï¼ |
| | | */ |
| | | CComboBox m_comboOutputPort; |
| | | |
| | | // === è·³åæ£æµä¸ç»çè¯å«åæ°ï¼SplitGlassSegments 使ç¨ï¼ === |
| | | |
| | | /** |
| | | * @brief è·³åéå¼ï¼ä¾å¦ 0.2mmï¼ï¼ç¨äºæ£æµä¸¤çç»çä¹é´çé«åº¦è·³å |
| | | */ |
| | | float m_fJumpThreshold; |
| | | |
| | | /** |
| | | * @brief è·³åæ£æµçªå£å宽度ï¼ç¨äºå·®å计ç®ï¼ |
| | | */ |
| | | int m_nJumpWindow; |
| | | |
| | | /** |
| | | * @brief valley ç¹å³ç§»çåç§»éï¼ç¨äºæç»ç¡®å®åå²ç¹ |
| | | */ |
| | | int m_nValleyMargin; |
| | | |
| | | /** |
| | | * @brief 第ä¸çç»çæå°æéçæ°æ®ç¹æ° |
| | | */ |
| | | int m_nMinGlass1Count; |
| | | |
| | | // === 稳å®åºåæååæ°ï¼ExtractStableRegionFixed 使ç¨ï¼ === |
| | | |
| | | /** |
| | | * @brief æ¯æ®µç¨³å®åºåè¦æåçåºå®æ°æ®ç¹æ° |
| | | */ |
| | | int m_nFixedCount; |
| | | |
| | | /** |
| | | * @brief æå¤§å
许波å¨èå´ï¼ä¾å¦ 0.05mmï¼ï¼å¤ææ¯å¦ä¸ºâ稳å®âåºå |
| | | */ |
| | | float m_fMaxDelta; |
| | | |
| | | // === æ¥å¿æ§ä»¶ === |
| | | |
| | | /** |
| | | * @brief å¯ææ¬æ§ä»¶ï¼ç¨äºè¾åºå¸¦é¢è²çæ¥å¿ä¿¡æ¯ |
| | | */ |
| | | CRichEditCtrl m_editLog; |
| | | |
| | | // === æç徿 管ç === |
| | | |
| | | /** |
| | | * @brief æç徿 ç¸å
³æ°æ®ç»æï¼NOTIFYICONDATAï¼ |
| | | */ |
| | | NOTIFYICONDATA m_trayIconData; |
| | | |
| | | /** |
| | | * @brief æç徿 çå¯ä¸ ID |
| | | */ |
| | | UINT m_nTrayIconID; |
| | | |
| | | /** |
| | | * @brief æ è®°æç徿 æ¯å¦å·²æåå建 |
| | | */ |
| | | BOOL m_bTrayIconCreated; |
| | | |
| | | /** |
| | | * @brief æ è®°ç¨åºæ¯å¦éè¿æç徿 éåº |
| | | */ |
| | | BOOL m_bExitingFromTray; |
| | | }; |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | #pragma once |
| | | |
| | | #ifndef VC_EXTRALEAN |
| | | #define VC_EXTRALEAN // ä» Windows 头䏿餿å°ä½¿ç¨çèµæ |
| | | #endif |
| | | |
| | | #include "targetver.h" |
| | | |
| | | #define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // æäº CString æé 彿°å°æ¯æ¾å¼ç |
| | | |
| | | // å
³é MFC çä¸äºå¸¸è§ä¸ç»å¸¸å¯æ¾å¿å¿½ç¥çéèè¦åæ¶æ¯ |
| | | #define _AFX_ALL_WARNINGS |
| | | |
| | | #include <afxwin.h> // MFC æ ¸å¿ç»ä»¶åæ åç»ä»¶ |
| | | #include <afxext.h> // MFC æ©å± |
| | | |
| | | |
| | | #include <afxdisp.h> // MFC èªå¨åç±» |
| | | |
| | | |
| | | |
| | | #ifndef _AFX_NO_OLE_SUPPORT |
| | | #include <afxdtctl.h> // MFC 对 Internet Explorer 4 å
Œ
±æ§ä»¶çæ¯æ |
| | | #endif |
| | | #ifndef _AFX_NO_AFXCMN_SUPPORT |
| | | #include <afxcmn.h> // MFC 对 Windows å
Œ
±æ§ä»¶çæ¯æ |
| | | #endif // _AFX_NO_AFXCMN_SUPPORT |
| | | |
| | | #include <afxcontrolbars.h> // MFC æ¯æåè½åºåæ§å¶æ¡ |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | #ifdef _UNICODE |
| | | #if defined _M_IX86 |
| | | #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"") |
| | | #elif defined _M_X64 |
| | | #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"") |
| | | #else |
| | | #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"") |
| | | #endif |
| | | #endif |
| | | |
| | | |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | // pch.cpp: ä¸é¢ç¼è¯æ 头对åºçæºæä»¶ |
| | | |
| | | #include "pch.h" |
| | | |
| | | // å½ä½¿ç¨é¢ç¼è¯ç头æ¶ï¼éè¦ä½¿ç¨æ¤æºæä»¶ï¼ç¼è¯æè½æåã |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | // pch.h: è¿æ¯é¢ç¼è¯æ 头æä»¶ã |
| | | // 䏿¹ååºçæä»¶ä»
ç¼è¯ä¸æ¬¡ï¼æé«äºå°æ¥çæççææ§è½ã |
| | | // è¿è¿å°å½±å IntelliSense æ§è½ï¼å
æ¬ä»£ç 宿å许å¤ä»£ç æµè§åè½ã |
| | | // 使¯ï¼å¦ææ¤å¤ååºçæä»¶ä¸çä»»ä½ä¸ä¸ªå¨çæä¹é´ææ´æ°ï¼å®ä»¬å
¨é¨é½å°è¢«éæ°ç¼è¯ã |
| | | // 请å¿å¨æ¤å¤æ·»å è¦é¢ç¹æ´æ°çæä»¶ï¼è¿å°ä½¿å¾æ§è½ä¼å¿æ æã |
| | | |
| | | #ifndef PCH_H |
| | | #define PCH_H |
| | | |
| | | // æ·»å è¦å¨æ¤å¤é¢ç¼è¯çæ 头 |
| | | #include "framework.h" |
| | | |
| | | #endif //PCH_H |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | //{{NO_DEPENDENCIES}} |
| | | // Microsoft Visual C++ çæçå
嫿件ã |
| | | // ä¾ SGMeasurement.rc ä½¿ç¨ |
| | | // |
| | | #define IDM_ABOUTBOX 0x0010 |
| | | #define IDD_ABOUTBOX 100 |
| | | #define IDS_ABOUTBOX 101 |
| | | #define IDD_SGMEASUREMENT_DIALOG 102 |
| | | #define IDR_MAINFRAME 128 |
| | | #define IDI_ICON_RESTORE 130 |
| | | #define IDI_ICON_EXIT 131 |
| | | #define IDC_IPADDRESS 1000 |
| | | #define IDC_BUTTON_CONNECT 1001 |
| | | #define IDC_BUTTON_DISCONNECT 1002 |
| | | #define IDC_EDIT_OUT1 1003 |
| | | #define IDC_EDIT_OUT2 1004 |
| | | #define IDC_EDIT_OUT3 1005 |
| | | #define IDC_EDIT_OUT4 1006 |
| | | #define IDC_CHECK_USE_TRIGGER 1007 |
| | | #define IDC_EDIT_STORE_COUNT 1008 |
| | | #define IDC_COMBO_OUTPUT_PORT 1009 |
| | | #define IDC_BUTTON_START_STORE 1010 |
| | | #define IDC_BUTTON_STOP_STORE 1011 |
| | | #define IDC_BUTTON_CLEAR_STORE 1012 |
| | | #define IDC_BUTTON_RECEIVE_FROM_CTRL 1013 |
| | | #define IDC_BUTTON_SEND_TO_CTRL 1014 |
| | | #define IDC_RICHEDIT_LOG 1015 |
| | | #define IDC_BUTTON_CLEAR_LOG 1016 |
| | | #define IDC_EDIT_JUMP_THRESHOLD 1017 |
| | | #define IDC_EDIT_JUMP_WINDOW 1018 |
| | | #define IDC_EDIT_VALLEY_MARGIN 1019 |
| | | #define IDC_EDIT_MIN_GLASS_COUNT 1020 |
| | | #define IDC_EDIT_FIXED_COUNT 1021 |
| | | #define IDC_EDIT_MAX_DELTA 1022 |
| | | |
| | | // Next default values for new objects |
| | | // |
| | | #ifdef APSTUDIO_INVOKED |
| | | #ifndef APSTUDIO_READONLY_SYMBOLS |
| | | #define _APS_NEXT_RESOURCE_VALUE 132 |
| | | #define _APS_NEXT_COMMAND_VALUE 32771 |
| | | #define _APS_NEXT_CONTROL_VALUE 1023 |
| | | #define _APS_NEXT_SYMED_VALUE 101 |
| | | #endif |
| | | #endif |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | #pragma once |
| | | |
| | | // å
æ¬ SDKDDKVer.h å°å®ä¹å¯ç¨çæé«çæ¬ç Windows å¹³å°ã |
| | | |
| | | //妿è¦ä¸ºä»¥åç Windows å¹³å°çæåºç¨ç¨åºï¼è¯·å
æ¬ WinSDKVer.hï¼å¹¶ |
| | | // å° _WIN32_WINNT å®è®¾ç½®ä¸ºè¦æ¯æçå¹³å°ï¼ç¶ååå
æ¬ SDKDDKVer.hã |
| | | |
| | | #include <SDKDDKVer.h> |