330 lines
14 KiB
C
330 lines
14 KiB
C
#ifndef LKIF_INCLUDED
|
|
#define LKIF_INCLUDED
|
|
|
|
#ifdef I_AM_LKIF
|
|
#define EXP __declspec(dllexport)
|
|
#else
|
|
#define EXP __declspec(dllimport)
|
|
#endif
|
|
|
|
extern "C"
|
|
{
|
|
// Measurement value structures
|
|
typedef enum {
|
|
LKIF_FLOATRESULT_VALID, // valid data
|
|
LKIF_FLOATRESULT_RANGEOVER_P, // over range at positive (+) side
|
|
LKIF_FLOATRESULT_RANGEOVER_N, // over range at negative (-) side
|
|
LKIF_FLOATRESULT_WAITING, // comparator result
|
|
} LKIF_FLOATRESULT;
|
|
|
|
typedef struct {
|
|
LKIF_FLOATRESULT FloatResult; // valid or invalid data
|
|
float Value; // measurement value during LKIF_FLOATRESULT_VALID.
|
|
// Any other times will return an invalid value
|
|
} LKIF_FLOATVALUE;
|
|
///////////////////////////////////////////////
|
|
// Measurement Control Command
|
|
//
|
|
// Measurement Value Output
|
|
EXP BOOL WINAPI LKIF_GetCalcData(OUT LKIF_FLOATVALUE *CalcData1,OUT LKIF_FLOATVALUE *CalcData2);
|
|
// Timing ON/OFF
|
|
EXP BOOL WINAPI LKIF_SetTiming(IN int OutNo,IN BOOL IsOn);
|
|
// Auto-zero ON/OFF
|
|
EXP BOOL WINAPI LKIF_SetZero(IN int OutNo,IN BOOL IsOn);
|
|
// Reset
|
|
EXP BOOL WINAPI LKIF_SetReset(IN int OutNo);
|
|
// Panel Lock
|
|
EXP BOOL WINAPI LKIF_SetPanelLock(IN BOOL IsLock);
|
|
// Program Change
|
|
EXP BOOL WINAPI LKIF_SetProgramNo(IN int ProgramNo);
|
|
// Program Check
|
|
EXP BOOL WINAPI LKIF_GetProgramNo(OUT int *ProgramNo);
|
|
// Statistical Results Output
|
|
typedef struct {
|
|
LKIF_FLOATVALUE ToleUpper; // tolerance upper limit
|
|
LKIF_FLOATVALUE ToleLower; // tolerance lower limit
|
|
LKIF_FLOATVALUE AverageValue; // average value
|
|
LKIF_FLOATVALUE MaxValue; // maximum value
|
|
LKIF_FLOATVALUE MinValue; // minimum value
|
|
LKIF_FLOATVALUE DifValue; // maximum value - minimum value
|
|
LKIF_FLOATVALUE SdValue; // standard deviation
|
|
LONG DataCnt; // number of all data
|
|
LONG HighDataCnt; // number of tolerance High data
|
|
LONG GoDataCnt; // number of tolerance Go data
|
|
LONG LowDataCnt; // number of tolerance Low data
|
|
} LKIF_FIGUREDATA;
|
|
EXP BOOL WINAPI LKIF_GetFigureData(IN int OutNo,OUT LKIF_FIGUREDATA *FigureData);
|
|
// Clearing Statistics
|
|
EXP BOOL WINAPI LKIF_ClearFigureData(void);
|
|
// Starting the Data Storage
|
|
EXP BOOL WINAPI LKIF_DataStorageStart(void);
|
|
// Stopping the Data Storage
|
|
EXP BOOL WINAPI LKIF_DataStorageStop(void);
|
|
// Initializing the Data Storage
|
|
EXP BOOL WINAPI LKIF_DataStorageInit(void);
|
|
// Outputting the Data Storage
|
|
EXP BOOL WINAPI LKIF_DataStorageGetData(IN int OutNo,IN int NumOutBuffer,OUT LKIF_FLOATVALUE *OutBuffer,OUT int *NumReceived);
|
|
// Data Storage Accumulation Status Output
|
|
EXP BOOL WINAPI LKIF_DataStorageGetStatus(IN int OutNo,OUT BOOL *IsStorage,OUT int *NumStorageData);
|
|
// Receive Light Waveform
|
|
EXP BOOL WINAPI LKIF_GetLight(IN int HeadNo,IN int PeekNo,OUT int *MeasurePosition,OUT int *NumReaded,OUT BYTE *Value);
|
|
|
|
///////////////////////////////////////////////
|
|
// Change Parameter Command
|
|
//
|
|
// Display Panel Switch
|
|
EXP BOOL WINAPI LKIF_SetPanel(IN int OutNo);
|
|
// Set Tolerance
|
|
EXP BOOL WINAPI LKIF_SetTolerance(IN int OutNo,IN int UpperLimit,IN int LowerLimit,IN int Hysteresis);
|
|
// Set ABLE
|
|
typedef enum {
|
|
LKIF_ABLEMODE_AUTO, // automatic
|
|
LKIF_ABLEMODE_MANUAL, // manual
|
|
} LKIF_ABLEMODE;
|
|
EXP BOOL WINAPI LKIF_SetAbleMode(IN int HeadNo,IN LKIF_ABLEMODE AbleMode);
|
|
// Set ABLE Control Range
|
|
EXP BOOL WINAPI LKIF_SetAbleMinMax(IN int HeadNo,IN int Min,IN int Max);
|
|
// Set Measurement Mode
|
|
typedef enum {
|
|
LKIF_MEASUREMODE_NORMAL, // normal
|
|
LKIF_MEASUREMODE_HALF_T, // translucent object
|
|
LKIF_MEASUREMDOE_TRAN_1, // transparent object
|
|
LKIF_MEASUREMODE_TRAN_2, // transparent object 2
|
|
LKIF_MEASUREMODE_MRS, // multireflective object
|
|
} LKIF_MEASUREMODE;
|
|
EXP BOOL WINAPI LKIF_SetMeasureMode(IN int HeadNo,IN LKIF_MEASUREMODE MeasureMode);
|
|
// Set Number of Times of Alarm Processing
|
|
EXP BOOL WINAPI LKIF_SetNumAlarm(IN int HeadNo,IN int NumAlarm);
|
|
// Set Alarm Level
|
|
EXP BOOL WINAPI LKIF_SetAlarmLevel(IN int HeadNo,IN int AlarmLevel);
|
|
// Starting the ABLE Calibration
|
|
EXP BOOL WINAPI LKIF_AbleStart(IN int HeadNo);
|
|
// Finishing the ABLE Calibration
|
|
EXP BOOL WINAPI LKIF_AbleStop(void);
|
|
// Stopping the ABLE Calibration
|
|
EXP BOOL WINAPI LKIF_AbleCancel(void);
|
|
// Set Mounting Mode
|
|
typedef enum {
|
|
LKIF_REFLECTIONMODE_DIFFUSION, // diffuse reflection
|
|
LKIF_REFLECTIONMODE_MIRROR, // specular reflection
|
|
} LKIF_REFLECTIONMODE;
|
|
EXP BOOL WINAPI LKIF_SetReflectionMode(IN int HeadNo,IN LKIF_REFLECTIONMODE ReflectionMode);
|
|
// Set Calculation Method
|
|
typedef enum {
|
|
LKIF_CALCMETHOD_HEADA, // head A
|
|
LKIF_CALCMETHOD_HEADB, // head B
|
|
LKIF_CALCMETHOD_HEAD_HEADA_PLUS_HEADB, // head A+head B
|
|
LKIF_CALCMETHOD_HEAD_HEADA_MINUS_HEADB, // head A-head B
|
|
LKIF_CALCMETHOD_HEAD_HEADA_TRANSPARENT, // head A transparent object
|
|
LKIF_CALCMETHOD_HEAD_HEADB_TRANSPARENT, // head B transparent object
|
|
} LKIF_CALCMETHOD;
|
|
// Measurement target
|
|
typedef enum {
|
|
LKIF_CALCTARGET_PEAK_1, // peak 1
|
|
LKIF_CALCTARGET_PEAK_2, // peak 2
|
|
LKIF_CALCTARGET_PEAK_3, // peak 3
|
|
LKIF_CALCTARGET_PEAK_4, // peak 4
|
|
LKIF_CALCTARGET_PEAK_1_2, // peak 1-peak 2
|
|
LKIF_CALCTARGET_PEAK_1_3, // peak 1-peak 3
|
|
LKIF_CALCTARGET_PEAK_1_4, // peak 1-peak 4
|
|
LKIF_CALCTARGET_PEAK_2_3, // peak 2-peak 3
|
|
LKIF_CALCTARGET_PEAK_2_4, // peak 2-peak 4
|
|
LKIF_CALCTARGET_PEAK_3_4, // peak 3-peak 4
|
|
} LKIF_CALCTARGET;
|
|
EXP BOOL WINAPI LKIF_SetCalcMethod(IN int OutNo,IN LKIF_CALCMETHOD CalcMethod,LKIF_CALCTARGET CalcTarget);
|
|
// Set Scaling
|
|
EXP BOOL WINAPI LKIF_SetScaling(IN int OutNo,IN int HeadNo,IN int InputValue1,IN int OutputValue1,IN int InputValue2,IN int OutputValue2);
|
|
// Set Filter Mode
|
|
typedef enum {
|
|
LKIF_FILTERMODE_MOVING_AVERAGE, // moving average
|
|
LKIF_FILTERMODE_LOWPASS, // low pass filter
|
|
LKIF_FILTERMODE_HIGHPASS, // high pass filter
|
|
} LKIF_FILTERMODE;
|
|
EXP BOOL WINAPI LKIF_SetFilterMode(IN int OutNo,OUT LKIF_FILTERMODE FilterMode);
|
|
// Set Number of Times for Averaging
|
|
typedef enum {
|
|
LKIF_AVERAGE_1, // 1 time
|
|
LKIF_AVERAGE_4, //
|
|
LKIF_AVERAGE_16, //
|
|
LKIF_AVERAGE_64, //
|
|
LKIF_AVERAGE_256, //
|
|
LKIF_AVERAGE_1024, //
|
|
LKIF_AVERAGE_4096, //
|
|
LKIF_AVERAGE_16384, //
|
|
LKIF_AVERAGE_65536, //
|
|
LKIF_AVERAGE_262144, // 262144 times
|
|
} LKIF_AVERAGE;
|
|
EXP BOOL WINAPI LKIF_SetAverage(IN int OutNo,IN LKIF_AVERAGE Average);
|
|
// Set Cutoff Frequency
|
|
typedef enum {
|
|
LKIF_CUTOFFFREQUENCY_1000, // 1000Hz
|
|
LKIF_CUTOFFFREQUENCY_300, // 300Hz
|
|
LKIF_CUTOFFFREQUENCY_100, // 100Hz
|
|
LKIF_CUTOFFFREQUENCY_30, // 30Hz
|
|
LKIF_CUTOFFFREQUENCY_10, // 10Hz
|
|
LKIF_CUTOFFFREQUENCY_3, // 3Hz
|
|
LKIF_CUTOFFFREQUENCY_1, // 1Hz
|
|
LKIF_CUTOFFFREQUENCY_0_3, // 0.3Hz
|
|
LKIF_CUTOFFFREQUENCY_0_1, // 0.1Hz
|
|
} LKIF_CUTOFFFREQUENCY;
|
|
EXP BOOL WINAPI LKIF_SetCutOffFrequency(IN int OutNo,IN LKIF_CUTOFFFREQUENCY CutOffFrequency);
|
|
// Set Trigger Mode
|
|
typedef enum {
|
|
LKIF_TRIGGERMODE_EXT1, // external trigger 1
|
|
LKIF_TRIGGERMODE_EXT2, // external trigger 2
|
|
} LKIF_TRIGGERMODE;
|
|
EXP BOOL WINAPI LKIF_SetTriggerMode(IN int OutNo,IN LKIF_TRIGGERMODE TriggerMode);
|
|
// Set Offset
|
|
EXP BOOL WINAPI LKIF_SetOffset(IN int OutNo,IN int Offset);
|
|
// Set Analog Output Scaling
|
|
EXP BOOL WINAPI LKIF_SetAnalogScaling(IN int OutNo,IN int InputValue1,IN int OutputVoltage1,IN int InputValue2,IN int OutputVoltage2);
|
|
// Set Calculation Mode
|
|
typedef enum {
|
|
LKIF_CALCMODE_NORMAL, // normal
|
|
LKIF_CALCMODE_PEAKHOLD, // peak hold
|
|
LKIF_CALCMODE_BOTTOMHOLD, // bottom hold
|
|
LKIF_CALCMODE_PEAKTOPEAKHOLD, // peak-to-peak hold
|
|
LKIF_CALCMODE_SAMPLEHOLD, // sample hold
|
|
LKIF_CALCMODE_AVERAGEHOLD, // average hold
|
|
} LKIF_CALCMODE;
|
|
EXP BOOL WINAPI LKIF_SetCalcMode(IN int OutNo,IN LKIF_CALCMODE CalcMode);
|
|
// Set Minimum Display Unit
|
|
typedef enum {
|
|
LKIF_DISPLAYUNIT_0000_01MM, // 0.01mm
|
|
LKIF_DISPLAYUNIT_000_001MM, // 0.001mm
|
|
LKIF_DISPLAYUNIT_00_0001MM, // 0.0001mm
|
|
LKIF_DISPLAYUNIT_0_00001MM, // 0.00001mm
|
|
LKIF_DISPLAYUNIT_00000_1UM, // 0.1um
|
|
LKIF_DISPLAYUNIT_0000_01UM, // 0.01um
|
|
} LKIF_DISPLAYUNIT;
|
|
EXP BOOL WINAPI LKIF_SetDisplayUnit(IN int OutNo,IN LKIF_DISPLAYUNIT DisplayUnit);
|
|
// Set Analog-Through
|
|
EXP BOOL WINAPI LKIF_SetAnalogThrough(IN int OutNo,IN BOOL IsOn);
|
|
// Set Data Storage
|
|
typedef enum {
|
|
LKIF_TARGETOUT_NONE, // no target OUT
|
|
LKIF_TARGETOUT_OUT1, // OUT1
|
|
LKIF_TARGETOUT_OUT2, // OUT2
|
|
LKIF_TARGETOUT_BOTH, // OUT1 and OUT2
|
|
} LKIF_TARGETOUT;
|
|
typedef enum {
|
|
LKIF_STORAGECYCLE_1, // sampling rate x 1
|
|
LKIF_STORAGECYCLE_2, // sampling rate x 2
|
|
LKIF_STORAGECYCLE_5, // sampling rate x 5
|
|
LKIF_STORAGECYCLE_10, // sampling rate x 10
|
|
LKIF_STORAGECYCLE_20, // sampling rate x 20
|
|
LKIF_STORAGECYCLE_50, // sampling rate x 50
|
|
LKIF_STORAGECYCLE_100, // sampling rate x 100
|
|
LKIF_STORAGECYCLE_200, // sampling rate x 200
|
|
LKIF_STORAGECYCLE_500, // sampling rate x 500
|
|
LKIF_STORAGECYCLE_1000, // sampling rate x 1000
|
|
} LKIF_STORAGECYCLE;
|
|
EXP BOOL WINAPI LKIF_SetDataStorage(IN LKIF_TARGETOUT TargetOut,IN int NumStorage,IN LKIF_STORAGECYCLE StorageCycle);
|
|
// Set Sampling Rate
|
|
typedef enum {
|
|
LKIF_SAMPLINGCYCLE_20USEC, // 20us
|
|
LKIF_SAMPLINGCYCLE_50USEC, // 50us
|
|
LKIF_SAMPLINGCYCLE_100USEC, // 100us
|
|
LKIF_SAMPLINGCYCLE_200USEC, // 200us
|
|
LKIF_SAMPLINGCYCLE_500USEC, // 500us
|
|
LKIF_SAMPLINGCYCLE_1MSEC, // 1ms
|
|
} LKIF_SAMPLINGCYCLE;
|
|
EXP BOOL WINAPI LKIF_SetSamplingCycle(IN LKIF_SAMPLINGCYCLE SamplingCycle);
|
|
// Set Mutual Interference Prevention
|
|
EXP BOOL WINAPI LKIF_SetMutualInterferencePrevention(IN BOOL IsOn);
|
|
// Set Timing Synchronization
|
|
typedef enum {
|
|
LKIF_SYNCHRONIZATION_ASYNCHRONOUS, // asynchronous
|
|
LKIF_SYNCHRONIZATION_SYNCHRONIZED, // synchronous
|
|
} LKIF_SYNCHRONIZATION;
|
|
EXP BOOL WINAPI LKIF_SetTimingSynchronization(IN LKIF_SYNCHRONIZATION Synchronization);
|
|
// Set Comparator Output Format
|
|
typedef enum {
|
|
LKIF_TOLERANCE_COMPARATOR_OUTPUT_FORMAT_NORMAL, // normal
|
|
LKIF_TOLERANCE_COMPARATOR_OUTPUT_FORMAT_HOLD, // hold
|
|
LKIF_TOLERANCE_COMPARATOR_OUTPUT_FORMAT_OFF_DELAY, // off-delay
|
|
} LKIF_TOLERANCE_COMPARATOR_OUTPUT_FORMAT;
|
|
EXP BOOL WINAPI LKIF_SetToleranceComparatorOutputFormat(IN LKIF_TOLERANCE_COMPARATOR_OUTPUT_FORMAT ToleranceComparatorOutputFormat);
|
|
// Set Strobe Time
|
|
typedef enum {
|
|
LKIF_STOROBETIME_2MS, // 2ms
|
|
LKIF_STOROBETIME_5MS, // 5ms
|
|
LKIF_STOROBETIME_10MS, // 10ms
|
|
LKIF_STOROBETIME_20MS, // 20ms
|
|
} LKIF_STOROBETIME;
|
|
EXP BOOL WINAPI LKIF_SetStorobeTime(IN LKIF_STOROBETIME StorobeTime);
|
|
///////////////////////////////////////////////
|
|
// Check Parameter Command
|
|
//
|
|
// Display Panel Check
|
|
EXP BOOL WINAPI LKIF_GetPanel(OUT int *OutNo);
|
|
// Get Tolerance
|
|
EXP BOOL WINAPI LKIF_GetTolerance(IN int OutNo,OUT int *UpperLimit,OUT int *LowerLimit,OUT int *Hysteresis);
|
|
// Get ABLE
|
|
EXP BOOL WINAPI LKIF_GetAbleMode(IN int HeadNo,OUT LKIF_ABLEMODE *AbleMode);
|
|
// ABLE Control Range
|
|
EXP BOOL WINAPI LKIF_GetAbleMinMax(IN int HeadNo,OUT int *Min,OUT int *Max);
|
|
// Get Measurement Mode
|
|
EXP BOOL WINAPI LKIF_GetMeasureMode(IN int HeadNo,OUT LKIF_MEASUREMODE *MeasureMode);
|
|
// Get Number of Times of Alarm Processing
|
|
EXP BOOL WINAPI LKIF_GetNumAlarm(IN int HeadNo,OUT int *NumAlarm);
|
|
// Get Alarm Level
|
|
EXP BOOL WINAPI LKIF_GetAlarmLevel(IN int HeadNo,OUT int *AlarmLevel);
|
|
// Get Mounting Mode
|
|
EXP BOOL WINAPI LKIF_GetReflectionMode(IN int HeadNo,OUT LKIF_REFLECTIONMODE *ReflectionMode);
|
|
// Get Calculation Method
|
|
EXP BOOL WINAPI LKIF_GetCalcMethod(IN int OutNo,OUT LKIF_CALCMETHOD *CalcMethod,LKIF_CALCTARGET *CalcTarget);
|
|
// Get Scaling
|
|
EXP BOOL WINAPI LKIF_GetScaling(IN int OutNo,IN int HeadNo,OUT int *InputValue1,OUT int *OutputValue1,OUT int *InputValue2,OUT int *OutputValue2);
|
|
// Get Filter Mode
|
|
EXP BOOL WINAPI LKIF_GetFilterMode(IN int OutNo,OUT LKIF_FILTERMODE *FilterMode);
|
|
// Get Number of Times for Averaging
|
|
EXP BOOL WINAPI LKIF_GetAverage(IN int OutNo,OUT LKIF_AVERAGE *Average);
|
|
// Get Cutoff Frequency
|
|
EXP BOOL WINAPI LKIF_GetCutOffFrequency(IN int OutNo,OUT LKIF_CUTOFFFREQUENCY *CutOffFrequency);
|
|
// Get Trigger Mode
|
|
EXP BOOL WINAPI LKIF_GetTriggerMode(IN int OutNo,OUT LKIF_TRIGGERMODE *TriggerMode);
|
|
// Get Offset
|
|
EXP BOOL WINAPI LKIF_GetOffset(IN int OutNo,IN int *Offset);
|
|
// Get Analog Output Scaling
|
|
EXP BOOL WINAPI LKIF_GetAnalogScaling(IN int OutNo,OUT int *InputValue1,OUT int *OutputVoltage1,OUT int *InputValue2,OUT int *OutputVoltage2);
|
|
// Get Calculation Mode
|
|
EXP BOOL WINAPI LKIF_GetCalcMode(IN int OutNo,OUT LKIF_CALCMODE *CalcMode);
|
|
// Get Minimum Display Unit
|
|
EXP BOOL WINAPI LKIF_GetDisplayUnit(IN int OutNo,OUT LKIF_DISPLAYUNIT *DisplayUnit);
|
|
// Analog-Through
|
|
EXP BOOL WINAPI LKIF_GetAnalogThrough(IN int OutNo,OUT BOOL *IsOn);
|
|
// Get Data Storage
|
|
EXP BOOL WINAPI LKIF_GetDataStorage(IN LKIF_TARGETOUT *TargetOut,OUT int *NumStorage,OUT LKIF_STORAGECYCLE *StorageCycle);
|
|
// Get Sampling Rate
|
|
EXP BOOL WINAPI LKIF_GetSamplingCycle(OUT LKIF_SAMPLINGCYCLE *SamplingCycle);
|
|
// Get Mutual Interference Prevention
|
|
EXP BOOL WINAPI LKIF_GetMutualInterferencePrevention(OUT BOOL *IsOn);
|
|
// Get Timing Synchronization
|
|
EXP BOOL WINAPI LKIF_GetTimingSynchronization(OUT LKIF_SYNCHRONIZATION *Synchronization);
|
|
// Get Comparator Output Format
|
|
EXP BOOL WINAPI LKIF_GetToleranceComparatorOutputFormat(OUT LKIF_TOLERANCE_COMPARATOR_OUTPUT_FORMAT *ToleranceComparatorOutputFormat);
|
|
// Get Strobe Time
|
|
EXP BOOL WINAPI LKIF_GetStorobeTime(OUT LKIF_STOROBETIME *StorobeTime);
|
|
///////////////////////////////////////////////
|
|
// Mode Change Command
|
|
//
|
|
// Mode Switch
|
|
typedef enum {
|
|
LKIF_MODE_NORMAL, // normal mode
|
|
LKIF_MODE_COMMUNICATION, // setting mode
|
|
} LKIF_MODE;
|
|
EXP BOOL WINAPI LKIF_SetMode(IN LKIF_MODE Mode);
|
|
///////////////////////////////////////////////
|
|
// USB Setting Command
|
|
//
|
|
#define USBPORTNO_MIN 1
|
|
#define USBPORTNO_MAX 13
|
|
// Enumerate Port Number Function (array of 13 ports)
|
|
EXP BOOL WINAPI LKIF_EnumPortNo(BOOL IsValidPortNo[USBPORTNO_MAX]);
|
|
// Set Port Number Function (1 to 13)
|
|
EXP BOOL WINAPI LKIF_SetPortNo(int PortNo);
|
|
|
|
} // extern "C"
|
|
|
|
#endif // LKIF_INCLUDED
|