新增STIL CCS-PRIMA激光测试功能。
This commit is contained in:
@@ -0,0 +1,936 @@
|
||||
|
||||
|
||||
//COLORIMETRY FUNCTIONS
|
||||
|
||||
/*
|
||||
Acquisition functions
|
||||
Configure the device in the acquisition mode (XYZ,RGB) and start acquiring data
|
||||
Any float array parameter is optional and can be set to NULL
|
||||
|
||||
======================================
|
||||
= Acquisition functions parameters =
|
||||
======================================
|
||||
SensorID : device ID
|
||||
Parameters : Acquire parameter
|
||||
|
||||
pArrayColorDiff : ???
|
||||
pArraySpectralDiff : ???
|
||||
pArrayConformity : ???
|
||||
pArrayCounter : This array will be filled with an incremented value ranging from 0 to 1200
|
||||
|
||||
Parameters 3,4 and 5 will be filled according to the mode (XYZ,Yxy,RGB...)
|
||||
|
||||
Mode description :
|
||||
XYZ : ???
|
||||
Yxy : ???
|
||||
RGB : ???
|
||||
Lab : ???
|
||||
Luv : ???
|
||||
Lch_ab : ???
|
||||
W : ???
|
||||
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn short MCHR_GetXYZ (MCHR_ID SensorID,MCHR_tyAcqParam Parameters, PFLOAT *pArrayDataX,PFLOAT*pArrayDataY,PFLOAT*pArrayDataZ,PFLOAT*pArrayColorDiff,PFLOAT*pArraySpectralDiff,PFLOAT*pArrayConformity,PFLOAT*pArrayCounter);
|
||||
\if FR
|
||||
\brief Récupère les données colorimétriques CIEXYZ.
|
||||
\else
|
||||
\brief Get the colorometric data CIEXYZ.
|
||||
\endif
|
||||
\details
|
||||
\if FR
|
||||
\param [in] MCHR_ID SensorID : ID du coffret.
|
||||
\param [out] MCHR_tyAcqParam Parameters?
|
||||
\param [out] PFLOAT*pArrayDataX : Data X
|
||||
\param [out] PFLOAT*pArrayDataY? : Data Y
|
||||
\param [out] PFLOAT*pArrayDataZ : Data Z
|
||||
\param [out] PFLOAT*pArrayColorDiff ? Method to calculate the difference of the color
|
||||
\param [out] PFLOAT*pArraySpectralDiff : Method to calculate the difference of spectral
|
||||
\param [out] PFLOAT*pArrayConformity : Tolerance to eliminate the sample no accordance.
|
||||
\param [out] PFLOAT*pArrayCounter : Count the number of acquisitions
|
||||
\return short : un code d'erreur \link MCHR_ERROR MCHR_ERROR \endlink.
|
||||
\else
|
||||
\param [in] MCHR_ID SensorID : ID of the device.
|
||||
\param [out] MCHR_tyAcqParam Parameters?
|
||||
\param [out] PFLOAT*pArrayDataX : Data X
|
||||
\param [out] PFLOAT*pArrayDataY? : Data Y
|
||||
\param [out] PFLOAT*pArrayDataZ : Data Z
|
||||
\param [out] PFLOAT*pArrayColorDiff ? Method to calculate the difference of the color
|
||||
\param [out] PFLOAT*pArraySpectralDiff : Method to calculate the difference of spectral
|
||||
\param [out] PFLOAT*pArrayConformity : Tolerance to eliminate the sample no accordance.
|
||||
\param [out] PFLOAT*pArrayCounter : Count the number of acquisitions
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
\endif
|
||||
\see MCHR_GetErrorDescription
|
||||
*/
|
||||
DLL_CHR_API short MCHR_GetXYZ (MCHR_ID SensorID,MCHR_tyAcqParam Parameters, PFLOAT *pArrayDataX,PFLOAT*pArrayDataY,PFLOAT*pArrayDataZ,PFLOAT*pArrayColorDiff,PFLOAT*pArraySpectralDiff,PFLOAT*pArrayConformity,PFLOAT*pArrayCounter);
|
||||
|
||||
/*!
|
||||
\fn short MCHR_GetYxy (MCHR_ID SensorID,MCHR_tyAcqParam Parameters, PFLOAT *pArrayDataY,PFLOAT*pArrayDatax,PFLOAT*pArrayDatay,PFLOAT*pArrayColorDiff,PFLOAT*pArraySpectralDiff,PFLOAT*pArrayConformity,PFLOAT*pArrayCounter);
|
||||
\if FR
|
||||
\brief Récupère les données colorimétriques CIEYxy.
|
||||
\else
|
||||
\brief Get the colorometric data CIEYxy.
|
||||
\endif
|
||||
\details
|
||||
\if FR
|
||||
\param [in] MCHR_ID SensorID : ID du coffret.
|
||||
\param [out] MCHR_tyAcqParam Parameters?
|
||||
\param [out] PFLOAT*pArrayDataY : Data Y
|
||||
\param [out] PFLOAT*pArrayDatax : Data x
|
||||
\param [out] PFLOAT*pArrayDatay : Data y
|
||||
\param [out] PFLOAT*pArrayColorDiff ? Method to calculate the difference of the color
|
||||
\param [out] PFLOAT*pArraySpectralDiff : Method to calculate the difference of spectral
|
||||
\param [out] PFLOAT*pArrayConformity : Tolerance to eliminate the sample no accordance.
|
||||
\param [out] PFLOAT*pArrayCounter : Count the number of acquisitions
|
||||
\return short : un code d'erreur \link MCHR_ERROR MCHR_ERROR \endlink.
|
||||
\else
|
||||
\param [in] MCHR_ID SensorID : ID of the device.
|
||||
\param [out] MCHR_tyAcqParam Parameters?
|
||||
\param [out] PFLOAT*pArrayDataY : Data Y
|
||||
\param [out] PFLOAT*pArrayDatax : Data x
|
||||
\param [out] PFLOAT*pArrayDatay : Data y
|
||||
\param [out] PFLOAT*pArrayColorDiff ? Method to calculate the difference of the color
|
||||
\param [out] PFLOAT*pArraySpectralDiff : Method to calculate the difference of spectral
|
||||
\param [out] PFLOAT*pArrayConformity : Tolerance to eliminate the sample no accordance.
|
||||
\param [out] PFLOAT*pArrayCounter : Count the number of acquisitions
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
\endif
|
||||
\see MCHR_GetErrorDescription
|
||||
*/
|
||||
DLL_CHR_API short MCHR_GetYxy (MCHR_ID SensorID,MCHR_tyAcqParam Parameters, PFLOAT *pArrayDataY,PFLOAT*pArrayDataX,PFLOAT*pArrayDatay,PFLOAT*pArrayColorDiff,PFLOAT*pArraySpectralDiff,PFLOAT*pArrayConformity,PFLOAT*pArrayCounter);
|
||||
|
||||
/*!
|
||||
\fn short MCHR_GetRGB (MCHR_ID SensorID,MCHR_tyAcqParam Parameters, PFLOAT *pArrayDataR,PFLOAT*pArrayDataG,PFLOAT*pArrayDataB,PFLOAT*pArrayColorDiff,PFLOAT*pArraySpectralDiff,PFLOAT*pArrayConformity,PFLOAT*pArrayCounter);
|
||||
\if FR
|
||||
\brief Récupère les données colorimétriques sRVB.
|
||||
\else
|
||||
\brief Get the colorometric data sRVB.
|
||||
\endif
|
||||
\details
|
||||
\if FR
|
||||
\param [in] MCHR_ID SensorID : ID du coffret.
|
||||
\param [out] MCHR_tyAcqParam Parameters?
|
||||
\param [out] PFLOAT*pArrayDataR : Data R
|
||||
\param [out] PFLOAT*pArrayDataG : Data V
|
||||
\param [out] PFLOAT*pArrayDataB : Data B
|
||||
\param [out] PFLOAT*pArrayColorDiff ? Method to calculate the difference of the color
|
||||
\param [out] PFLOAT*pArraySpectralDiff : Method to calculate the difference of spectral
|
||||
\param [out] PFLOAT*pArrayConformity : Tolerance to eliminate the sample no accordance.
|
||||
\param [out] PFLOAT*pArrayCounter : Count the number of acquisitions
|
||||
\return short : un code d'erreur \link MCHR_ERROR MCHR_ERROR \endlink.
|
||||
\else
|
||||
\param [in] MCHR_ID SensorID : ID of the device.
|
||||
\param [out] MCHR_tyAcqParam Parameters?
|
||||
\param [out] PFLOAT*pArrayDataR : Data R
|
||||
\param [out] PFLOAT*pArrayDataG : Data V
|
||||
\param [out] PFLOAT*pArrayDataB : Data B
|
||||
\param [out] PFLOAT*pArrayColorDiff ? Method to calculate the difference of the color
|
||||
\param [out] PFLOAT*pArraySpectralDiff : Method to calculate the difference of spectral
|
||||
\param [out] PFLOAT*pArrayConformity : Tolerance to eliminate the sample no accordance.
|
||||
\param [out] PFLOAT*pArrayCounter : Count the number of acquisitions
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
\endif
|
||||
\see MCHR_GetErrorDescription
|
||||
*/
|
||||
DLL_CHR_API short MCHR_GetRGB (MCHR_ID SensorID,MCHR_tyAcqParam Parameters, PFLOAT *pArrayDataR,PFLOAT*pArrayDataG,PFLOAT*pArrayDataB,PFLOAT*pArrayColorDiff,PFLOAT*pArraySpectralDiff,PFLOAT*pArrayConformity,PFLOAT*pArrayCounter);
|
||||
|
||||
/*!
|
||||
\fn short MCHR_GetLab (MCHR_ID SensorID,MCHR_tyAcqParam Parameters, PFLOAT *pArrayDataL,PFLOAT*pArrayDataa,PFLOAT*pArrayDatab,PFLOAT*pArrayColorDiff,PFLOAT*pArraySpectralDiff,PFLOAT*pArrayConformity,PFLOAT*pArrayCounter);
|
||||
\if FR
|
||||
\brief Récupère les données colorimétriques CIELab.
|
||||
\else
|
||||
\brief Get the colorometric data CIELab.
|
||||
\endif
|
||||
\details
|
||||
\if FR
|
||||
\param [in] MCHR_ID SensorID : ID du coffret.
|
||||
\param [out] MCHR_tyAcqParam Parameters?
|
||||
\param [out] PFLOAT*pArrayDataL : Data L
|
||||
\param [out] PFLOAT*pArrayDataa : Data a
|
||||
\param [out] PFLOAT*pArrayDatab : Data b
|
||||
\param [out] PFLOAT*pArrayColorDiff ? Method to calculate the difference of the color
|
||||
\param [out] PFLOAT*pArraySpectralDiff : Method to calculate the difference of spectral
|
||||
\param [out] PFLOAT*pArrayConformity : Tolerance to eliminate the sample no accordance.
|
||||
\param [out] PFLOAT*pArrayCounter : Count the number of acquisitions
|
||||
\return short : un code d'erreur \link MCHR_ERROR MCHR_ERROR \endlink.
|
||||
\else
|
||||
\param [in] MCHR_ID SensorID : ID of the device.
|
||||
\param [out] MCHR_tyAcqParam Parameters?
|
||||
\param [out] PFLOAT*pArrayDataL : Data L
|
||||
\param [out] PFLOAT*pArrayDataa : Data a
|
||||
\param [out] PFLOAT*pArrayDatab : Data b
|
||||
\param [out] PFLOAT*pArrayColorDiff ? Method to calculate the difference of the color
|
||||
\param [out] PFLOAT*pArraySpectralDiff : Method to calculate the difference of spectral
|
||||
\param [out] PFLOAT*pArrayConformity : Tolerance to eliminate the sample no accordance.
|
||||
\param [out] PFLOAT*pArrayCounter : Count the number of acquisitions
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
\endif
|
||||
\see MCHR_GetErrorDescription
|
||||
*/
|
||||
DLL_CHR_API short MCHR_GetLab (MCHR_ID SensorID,MCHR_tyAcqParam Parameters, PFLOAT *pArrayDataL,PFLOAT*pArrayDataa,PFLOAT*pArrayDatab,PFLOAT*pArrayColorDiff,PFLOAT*pArraySpectralDiff,PFLOAT*pArrayConformity,PFLOAT*pArrayCounter);
|
||||
|
||||
/*!
|
||||
\fn short MCHR_GetLuv (MCHR_ID SensorID,MCHR_tyAcqParam Parameters, PFLOAT *pArrayDataL,PFLOAT*pArrayDatau,PFLOAT*pArrayDatav,PFLOAT*pArrayColorDiff,PFLOAT*pArraySpectralDiff,PFLOAT*pArrayConformity,PFLOAT*pArrayCounter);
|
||||
\if FR
|
||||
\brief Récupère les données colorimétriques CIELuv.
|
||||
\else
|
||||
\brief Get the colorometric data CIELuv.
|
||||
\endif
|
||||
\details
|
||||
\if FR
|
||||
\param [in] MCHR_ID SensorID : ID du coffret.
|
||||
\param [out] MCHR_tyAcqParam Parameters?
|
||||
\param [out] PFLOAT*pArrayDataL : Data L
|
||||
\param [out] PFLOAT*pArrayDatau : Data u
|
||||
\param [out] PFLOAT*pArrayDatav : Data v
|
||||
\param [out] PFLOAT*pArrayColorDiff ? Method to calculate the difference of the color
|
||||
\param [out] PFLOAT*pArraySpectralDiff : Method to calculate the difference of spectral
|
||||
\param [out] PFLOAT*pArrayConformity : Tolerance to eliminate the sample no accordance.
|
||||
\param [out] PFLOAT*pArrayCounter : Count the number of acquisitions
|
||||
\return short : un code d'erreur \link MCHR_ERROR MCHR_ERROR \endlink.
|
||||
\else
|
||||
\param [in] MCHR_ID SensorID : ID of the device.
|
||||
\param [out] MCHR_tyAcqParam Parameters?
|
||||
\param [out] PFLOAT*pArrayDataL : Data L
|
||||
\param [out] PFLOAT*pArrayDatau : Data u
|
||||
\param [out] PFLOAT*pArrayDatav : Data v
|
||||
\param [out] PFLOAT*pArrayColorDiff ? Method to calculate the difference of the color
|
||||
\param [out] PFLOAT*pArraySpectralDiff : Method to calculate the difference of spectral
|
||||
\param [out] PFLOAT*pArrayConformity : Tolerance to eliminate the sample no accordance.
|
||||
\param [out] PFLOAT*pArrayCounter : Count the number of acquisitions
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
\endif
|
||||
\see MCHR_GetErrorDescription
|
||||
*/
|
||||
DLL_CHR_API short MCHR_GetLuv (MCHR_ID SensorID,MCHR_tyAcqParam Parameters, PFLOAT *pArrayDataL,PFLOAT*pArrayDatau,PFLOAT*pArrayDatav,PFLOAT*pArrayColorDiff,PFLOAT*pArraySpectralDiff,PFLOAT*pArrayConformity,PFLOAT*pArrayCounter);
|
||||
|
||||
/*!
|
||||
\fn short MCHR_GetLch_ab (MCHR_ID SensorID,MCHR_tyAcqParam Parameters, PFLOAT *pArrayDataLch,PFLOAT*pArrayData,PFLOAT*pArrayDatab,PFLOAT*pArrayColorDiff,PFLOAT*pArraySpectralDiff,PFLOAT*pArrayConformity,PFLOAT*pArrayCounter);
|
||||
\if FR
|
||||
\brief Récupère les données colorimétriques CIELch.
|
||||
\else
|
||||
\brief Get the colorometric data CIELch.
|
||||
\endif
|
||||
\details
|
||||
\if FR
|
||||
\param [in] MCHR_ID SensorID : ID du coffret.
|
||||
\param [out] MCHR_tyAcqParam Parameters?
|
||||
\param [out] PFLOAT*pArrayDataLch : Data Lch
|
||||
\param [out] PFLOAT*pArrayDataa : Data a
|
||||
\param [out] PFLOAT*pArrayDatab : Data b
|
||||
\param [out] PFLOAT*pArrayColorDiff ? Method to calculate the difference of the color
|
||||
\param [out] PFLOAT*pArraySpectralDiff : Method to calculate the difference of spectral
|
||||
\param [out] PFLOAT*pArrayConformity : Tolerance to eliminate the sample no accordance.
|
||||
\param [out] PFLOAT*pArrayCounter : Count the number of acquisitions
|
||||
\return short : un code d'erreur \link MCHR_ERROR MCHR_ERROR \endlink.
|
||||
\else
|
||||
\param [in] MCHR_ID SensorID : ID of the device.
|
||||
\param [out] MCHR_tyAcqParam Parameters?
|
||||
\param [out] PFLOAT*pArrayDataLch : Data Lch
|
||||
\param [out] PFLOAT*pArrayDataa : Data a
|
||||
\param [out] PFLOAT*pArrayDatab : Data b
|
||||
\param [out] PFLOAT*pArrayColorDiff ? Method to calculate the difference of the color
|
||||
\param [out] PFLOAT*pArraySpectralDiff : Method to calculate the difference of spectral
|
||||
\param [out] PFLOAT*pArrayConformity : Tolerance to eliminate the sample no accordance.
|
||||
\param [out] PFLOAT*pArrayCounter : Count the number of acquisitions
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
\endif
|
||||
\see MCHR_GetErrorDescription
|
||||
*/
|
||||
DLL_CHR_API short MCHR_GetLch_ab (MCHR_ID SensorID,MCHR_tyAcqParam Parameters, PFLOAT *pArrayDataLch,PFLOAT*pArrayData,PFLOAT*pArrayDatab,PFLOAT*pArrayColorDiff,PFLOAT*pArraySpectralDiff,PFLOAT*pArrayConformity,PFLOAT*pArrayCounter);
|
||||
|
||||
/*!
|
||||
\fn short MCHR_GetW (MCHR_ID SensorID,MCHR_tyAcqParam Parameters, PFLOAT *pArrayDataW,PFLOAT*pArrayColorDiff,PFLOAT*pArraySpectralDiff,PFLOAT*pArrayConformity,PFLOAT*pArrayCounter);
|
||||
\if FR
|
||||
\brief Récupère l'indice de blancheur CIE W
|
||||
\brief Get the colorometric data CIE W
|
||||
\endif
|
||||
\details
|
||||
\if FR
|
||||
\param [in] MCHR_ID SensorID : ID du coffret.
|
||||
\param [out] MCHR_tyAcqParam Parameters?
|
||||
\param [out] PFLOAT*pArrayDataW : Value of the whiteref
|
||||
\param [out] PFLOAT*pArrayColorDiff ? Method to calculate the difference of the color
|
||||
\param [out] PFLOAT*pArraySpectralDiff : Method to calculate the difference of spectral
|
||||
\param [out] PFLOAT*pArrayConformity : Tolerance to eliminate the sample no accordance.
|
||||
\param [out] PFLOAT*pArrayCounter : Count the number of acquisitions
|
||||
\return short : un code d'erreur \link MCHR_ERROR MCHR_ERROR \endlink.
|
||||
\else
|
||||
\param [in] MCHR_ID SensorID : ID of the device.
|
||||
\param [out] MCHR_tyAcqParam Parameters?
|
||||
\param [out] PFLOAT*pArrayDataW : Data W
|
||||
\param [out] PFLOAT*pArrayColorDiff ? Method to calculate the difference of the color
|
||||
\param [out] PFLOAT*pArraySpectralDiff : Method to calculate the difference of spectral
|
||||
\param [out] PFLOAT*pArrayConformity : Tolerance to eliminate the sample no accordance.
|
||||
\param [out] PFLOAT*pArrayCounter : Count the number of acquisitions
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
\endif
|
||||
\see MCHR_GetErrorDescription
|
||||
*/
|
||||
DLL_CHR_API short MCHR_GetW (MCHR_ID SensorID,MCHR_tyAcqParam Parameters, PFLOAT *pArrayDataW,PFLOAT*pArrayColorDiff,PFLOAT*pArraySpectralDiff,PFLOAT*pArrayConformity,PFLOAT*pArrayCounter);
|
||||
|
||||
/*!
|
||||
\fn short MCHR_GetFirstPixel(MCHR_ID SensorID,long *piFps)
|
||||
\if FR
|
||||
\brief Fonction detection du premier pixel.
|
||||
\else
|
||||
\brief Function Get First pixel.
|
||||
\endif
|
||||
\details
|
||||
\if FR
|
||||
\param [in] MCHR_ID SensorID : ID du coffret.
|
||||
\param [out] long *piFps : Premier pixel detecte
|
||||
\return short : un code d'erreur \link MCHR_ERROR MCHR_ERROR \endlink.
|
||||
\else
|
||||
\param [in] MCHR_ID SensorID : ID of the device.
|
||||
\param [out] long *piFps : First detected pixel
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
\endif
|
||||
\see MCHR_GetErrorDescription
|
||||
*/
|
||||
|
||||
DLL_CHR_API short MCHR_GetFirstPixel(MCHR_ID SensorID,long *piFps);
|
||||
|
||||
/*!
|
||||
\fn short MCHR_SetFirstPixel(MCHR_ID SensorID,long iFps)
|
||||
\if FR
|
||||
\brief Fonction de parametrage du premier pixel.
|
||||
\else
|
||||
\brief Function Set First pixel.
|
||||
\endif
|
||||
\details
|
||||
\if FR
|
||||
\param [in] MCHR_ID SensorID : ID du coffret.
|
||||
\param [in] long iFps : Premier pixel detecte
|
||||
\return short : un code d'erreur \link MCHR_ERROR MCHR_ERROR \endlink.
|
||||
\else
|
||||
\param [in] MCHR_ID SensorID : ID of the device.
|
||||
\param [in] long iFps : First detected pixel
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
\endif
|
||||
\see MCHR_GetErrorDescription
|
||||
*/
|
||||
|
||||
DLL_CHR_API short MCHR_SetFirstPixel(MCHR_ID SensorID,long iFps);
|
||||
|
||||
/*
|
||||
Number of pixels returned in the taken in account for result
|
||||
To retreive the spectrums when using MCHR_SetSpectrumBuffer, buffer size must be equal to the NumberOfPixels
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn short MCHR_GetNumberOfPixels(MCHR_ID SensorID,long *piFps);
|
||||
\if FR
|
||||
\brief Recupere le nombre de pixel pour definir un spectre.
|
||||
\else
|
||||
\brief Get the number of pixels to define a spectral.
|
||||
\endif
|
||||
\details
|
||||
\if FR
|
||||
\param [in] MCHR_ID SensorID : ID du coffret.
|
||||
\param [in] long *piFps : Nombre de pixels.
|
||||
\return short : un code d'erreur \link MCHR_ERROR MCHR_ERROR \endlink.
|
||||
\else
|
||||
\param [in] MCHR_ID SensorID : ID of the device.
|
||||
\param [in] long *piFps : Numbers of pixels.
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
\endif
|
||||
\see MCHR_GetErrorDescription
|
||||
*/
|
||||
DLL_CHR_API short MCHR_GetNumberOfPixels(MCHR_ID SensorID,long *piFps);
|
||||
|
||||
/*!
|
||||
\fn short MCHR_SetNumberOfPixels(MCHR_ID SensorID,long iFps);
|
||||
\if FR
|
||||
\brief Parametre le nombre de pixel pour definir un spectre.
|
||||
\else
|
||||
\brief Set the number of pixels to define a spectral.
|
||||
\endif
|
||||
\details
|
||||
\if FR
|
||||
\param [in] MCHR_ID SensorID : ID du coffret.
|
||||
\param [in] long *piFps : Nombre de pixels.
|
||||
\return short : un code d'erreur \link MCHR_ERROR MCHR_ERROR \endlink.
|
||||
\else
|
||||
\param [in] MCHR_ID SensorID : ID of the device.
|
||||
\param [in] long *piFps : Numbers of pixels.
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
\endif
|
||||
\see MCHR_GetErrorDescription
|
||||
*/
|
||||
DLL_CHR_API short MCHR_SetNumberOfPixels(MCHR_ID SensorID,long iFps);
|
||||
|
||||
/*!
|
||||
\fn short MCHR_GetSampling(MCHR_ID SensorID,long *piSampling);
|
||||
\if FR
|
||||
\brief Recupere le pas d'échantillonage du spectre.
|
||||
\else
|
||||
\brief Get the spectral sampling
|
||||
\endif
|
||||
\details
|
||||
\if FR
|
||||
\param [in] MCHR_ID SensorID : ID du coffret.
|
||||
\param [in] long *piSampling :
|
||||
\return short : un code d'erreur \link MCHR_ERROR MCHR_ERROR \endlink.
|
||||
\else
|
||||
\param [in] MCHR_ID SensorID : ID of the device.
|
||||
\param [in] long *piSampling : Spectral sampling ( nothing, 1nm, 5nm, 10nm).
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
\endif
|
||||
\see MCHR_GetErrorDescription
|
||||
*/
|
||||
DLL_CHR_API short MCHR_GetSampling(MCHR_ID SensorID,long *piSampling);
|
||||
|
||||
/*!
|
||||
\fn short MCHR_SetSampling(MCHR_ID SensorID,long iSampling);
|
||||
\if FR
|
||||
\brief Parametre le pas d'échantillonage du spectre.
|
||||
\else
|
||||
\brief Set the spectral sampling
|
||||
\endif
|
||||
\details
|
||||
\if FR
|
||||
\param [in] MCHR_ID SensorID : ID du coffret.
|
||||
\param [in] long *piSampling :
|
||||
\return short : un code d'erreur \link MCHR_ERROR MCHR_ERROR \endlink.
|
||||
\else
|
||||
\param [in] MCHR_ID SensorID : ID of the device.
|
||||
\param [in] long *piSampling : Spectral sampling ( nothing, 1nm, 5nm, 10nm).
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
\endif
|
||||
\see MCHR_GetErrorDescription
|
||||
*/
|
||||
DLL_CHR_API short MCHR_SetSampling(MCHR_ID SensorID,long iSampling);
|
||||
|
||||
/*!
|
||||
\fn short MCHR_GetMaximumNumberPixel(MCHR_ID SensorID,long *piMax);
|
||||
\if FR
|
||||
\brief Obtient le nombre maximum de pixels.
|
||||
\else
|
||||
\brief Get the the maximum numbers of pixels
|
||||
\endif
|
||||
\details
|
||||
\if FR
|
||||
\param [in] MCHR_ID SensorID : ID du coffret.
|
||||
\param [in] long *piMax :
|
||||
\return short : un code d'erreur \link MCHR_ERROR MCHR_ERROR \endlink.
|
||||
\else
|
||||
\param [in] MCHR_ID SensorID : ID of the device.
|
||||
\param [in] long *piMax : Maximum Numbers of pixels.
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
\endif
|
||||
\see MCHR_GetErrorDescription
|
||||
*/
|
||||
DLL_CHR_API short MCHR_GetMaximumNumberPixel(MCHR_ID SensorID,long *piMax);
|
||||
|
||||
/*!
|
||||
\fn short MCHR_SetMaximumNumberPixel(MCHR_ID SensorID,long *piMax);
|
||||
\if FR
|
||||
\brief PAramétre le nombre maximum de pixels.
|
||||
\else
|
||||
\brief Set the the maximum numbers of pixels
|
||||
\endif
|
||||
\details
|
||||
\if FR
|
||||
\param [in] MCHR_ID SensorID : ID du coffret.
|
||||
\param [in] long iMax :
|
||||
\return short : un code d'erreur \link MCHR_ERROR MCHR_ERROR \endlink.
|
||||
\else
|
||||
\param [in] MCHR_ID SensorID : ID of the device.
|
||||
\param [in] long iMax : Maximum Numbers of pixels.
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
\endif
|
||||
\see MCHR_GetErrorDescription
|
||||
*/
|
||||
DLL_CHR_API short MCHR_SetMaximumNumberPixel(MCHR_ID SensorID,long iMax);
|
||||
|
||||
/*!
|
||||
\fn short MCHR_GetMinimumNumberPixel(MCHR_ID SensorID,long *piMin);
|
||||
\if FR
|
||||
\brief Obtient le nombre minimum de pixels.
|
||||
\else
|
||||
\brief Get the the minimum numbers of pixels
|
||||
\endif
|
||||
\details
|
||||
\if FR
|
||||
\param [in] MCHR_ID SensorID : ID du coffret.
|
||||
\param [in] long *piMin :
|
||||
\return short : un code d'erreur \link MCHR_ERROR MCHR_ERROR \endlink.
|
||||
\else
|
||||
\param [in] MCHR_ID SensorID : ID of the device.
|
||||
\param [in] long *piMins : Maximum Numbers of pixels.
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
\endif
|
||||
\see MCHR_GetErrorDescription
|
||||
*/
|
||||
DLL_CHR_API short MCHR_GetMinimumNumberPixel(MCHR_ID SensorID,long *piMin);
|
||||
|
||||
/*!
|
||||
\fn short MCHR_SetMinimumNumberPixel(MCHR_ID SensorID,long iMin);
|
||||
\if FR
|
||||
\brief Parametre le nombre minmum de pixels.
|
||||
\else
|
||||
\brief Set the the minimum numbers of pixels
|
||||
\endif
|
||||
\details
|
||||
\if FR
|
||||
\param [in] MCHR_ID SensorID : ID du coffret.
|
||||
\param [in] long iMin :
|
||||
\return short : un code d'erreur \link MCHR_ERROR MCHR_ERROR \endlink.
|
||||
\else
|
||||
\param [in] MCHR_ID SensorID : ID of the device.
|
||||
\param [in] long iMin : Minimum Numbers of pixels.
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
\endif
|
||||
\see MCHR_GetErrorDescription
|
||||
*/
|
||||
DLL_CHR_API short MCHR_SetMinimumNumberPixel(MCHR_ID SensorID,long iMin);
|
||||
|
||||
/*!
|
||||
\fn short MCHR_GetRealTimeSignalType(MCHR_ID SensorID,enRealTimeSignalType *);
|
||||
\if FR
|
||||
\brief Obtient le type de signal export?(brut ou trait?, le signal trait?correspond ?la réflectance de l’échantillon.
|
||||
\else
|
||||
\brief Get the type of signal exported (raw or processed), the processed signal is equivalent to the reflectance of the sample.
|
||||
\endif
|
||||
\details
|
||||
\if FR
|
||||
\param [in] MCHR_ID SensorID : ID du coffret.
|
||||
\param enRealTimeSignalType :
|
||||
\return short : un code d'erreur \link MCHR_ERROR MCHR_ERROR \endlink.
|
||||
\else
|
||||
\param [in] MCHR_ID SensorID : ID of the device.
|
||||
\param enRealTimeSignalType : type of signal
|
||||
\arg \c RT_NO_SIGNAL,
|
||||
\arg \c RT_RAW_SIGNAL,
|
||||
\arg \c RT_PRETRAITED_SIGNAL,
|
||||
\aeg \c NBR_MAX_RT_SIGNAL_TYPE,
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
\endif
|
||||
\see MCHR_GetErrorDescription
|
||||
*/
|
||||
DLL_CHR_API short MCHR_GetRealTimeSignalType(MCHR_ID SensorID,enRealTimeSignalType *pRealTimeSignalType);
|
||||
|
||||
/*!
|
||||
\fn short MCHR_SetRealTimeSignalType(MCHR_ID SensorID,enRealTimeSignalType);
|
||||
\if FR
|
||||
\brief Parametre le type de signal export?(brut ou trait?, le signal trait?correspond ?la réflectance de l’échantillon.
|
||||
\else
|
||||
\brief Set the type of signal exported (raw or processed), the processed signal is equivalent to the reflectance of the sample.
|
||||
\endif
|
||||
\details
|
||||
\if FR
|
||||
\param [in] MCHR_ID SensorID : ID du coffret.
|
||||
\param enRealTimeSignalType :
|
||||
\return short : un code d'erreur \link MCHR_ERROR MCHR_ERROR \endlink.
|
||||
\else
|
||||
\param [in] MCHR_ID SensorID : ID of the device.
|
||||
\param enRealTimeSignalType : type of signal
|
||||
\arg \c RT_NO_SIGNAL,
|
||||
\arg \c RT_RAW_SIGNAL,
|
||||
\arg \c RT_PRETRAITED_SIGNAL,
|
||||
\aeg \c NBR_MAX_RT_SIGNAL_TYPE,
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
\endif
|
||||
\see MCHR_GetErrorDescription
|
||||
*/
|
||||
DLL_CHR_API short MCHR_SetRealTimeSignalType(MCHR_ID SensorID, enRealTimeSignalType realTimeSignalType);
|
||||
|
||||
/*!
|
||||
\fn short MCHR_MeasureTarget(MCHR_ID SensorID);
|
||||
\if FR
|
||||
\brief
|
||||
\else
|
||||
\brief Function to read the mesure of the target
|
||||
\endif
|
||||
\details
|
||||
\if FR
|
||||
\param [in] MCHR_ID SensorID : ID du coffret.
|
||||
\else
|
||||
\param [in] MCHR_ID SensorID : ID of the device.
|
||||
\endif
|
||||
*/
|
||||
DLL_CHR_API short MCHR_MeasureTarget(MCHR_ID SensorID);
|
||||
|
||||
/*!
|
||||
\fn short MCHR_GetReferenceCoordinate (MCHR_ID SensorID, PFLOAT pfX, PFLOAT pfY, PFLOAT pfZ);
|
||||
\if FR
|
||||
\brief Obtient les coordonnées colorimétriques de la cible
|
||||
\else
|
||||
\brief Get the target colorimetric coordinates.
|
||||
\endif
|
||||
\details
|
||||
\if FR
|
||||
\param [in] MCHR_ID SensorID : ID du coffret.
|
||||
\param PFLOAT pfX : Pointer to an array of target colorimetric coordinate X.
|
||||
\param PFLOAT pfY : Pointer to an array of target colorimetric coordinate Y.
|
||||
\param PFLOAT pfZ : Pointer to an array of target colorimetric coordinate Z.
|
||||
\return short : un code d'erreur \link MCHR_ERROR MCHR_ERROR \endlink.
|
||||
\else
|
||||
\param [in] MCHR_ID SensorID : ID of the device.
|
||||
\param PFLOAT pfX : Pointer to an array of target colorimetric coordinate X.
|
||||
\param PFLOAT pfY : Pointer to an array of target colorimetric coordinate Y.
|
||||
\param PFLOAT pfZ : Pointer to an array of target colorimetric coordinate Z.
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
\endif
|
||||
\see MCHR_GetErrorDescription
|
||||
*/
|
||||
DLL_CHR_API short MCHR_GetReferenceCoordinate (MCHR_ID SensorID, PFLOAT pfX, PFLOAT pfY, PFLOAT pfZ);
|
||||
|
||||
/*!
|
||||
\fn short MCHR_GetIlluminantCoordinate (MCHR_ID SensorID, PFLOAT pfX, PFLOAT pfY, PFLOAT pfZ);
|
||||
\if FR
|
||||
\brief Obtient les coordonnées colorimétriques de l'illuminant
|
||||
\else
|
||||
\brief Get the illuminant colorimetric coordinates
|
||||
\endif
|
||||
\details
|
||||
\if FR
|
||||
\param [in] MCHR_ID SensorID : ID du coffret.
|
||||
\param PFLOAT pfX :
|
||||
\param PFLOAT pfY :
|
||||
\param PFLOAT pfZ :
|
||||
\return short : un code d'erreur \link MCHR_ERROR MCHR_ERROR \endlink.
|
||||
\else
|
||||
\param [in] MCHR_ID SensorID : ID of the device.
|
||||
\param PFLOAT pfX : Pointer to an array of target colorimetric coordinate X.
|
||||
\param PFLOAT pfY : Pointer to an array of target colorimetric coordinate Y.
|
||||
\param PFLOAT pfZ : Pointer to an array of target colorimetric coordinate Z.
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
\endif
|
||||
\see MCHR_GetErrorDescription
|
||||
*/
|
||||
DLL_CHR_API short MCHR_GetIlluminantCoordinate (MCHR_ID SensorID, PFLOAT pfX, PFLOAT pfY, PFLOAT pfZ);
|
||||
|
||||
/*!
|
||||
\fn short MCHR_SetIlluminants (MCHR_ID SensorID, enIlluminant);
|
||||
\if FR
|
||||
\brief Configure l'illuminant CIE ?utiliser pour le calcul des coordonnées colorimétriques.
|
||||
\else
|
||||
\brief Set the CIE illuminant to calculate of colorimetrics coordinates.
|
||||
\endif
|
||||
\details
|
||||
\if FR
|
||||
\param [in] MCHR_ID SensorID : ID du coffret.
|
||||
\param enIlluminant :
|
||||
\arg \c A.
|
||||
\arg \c C.
|
||||
\aeg \c D.
|
||||
\arg \c F.
|
||||
\return short : un code d'erreur \link MCHR_ERROR MCHR_ERROR \endlink.
|
||||
\else
|
||||
\param [in] MCHR_ID SensorID : ID of the device.
|
||||
\param enIlluminant :
|
||||
\arg \c A.
|
||||
\arg \c C.
|
||||
\aeg \c D.
|
||||
\arg \c F.
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
\endif
|
||||
\see MCHR_GetErrorDescription
|
||||
*/
|
||||
DLL_CHR_API short MCHR_SetIlluminants (MCHR_ID SensorID, enIlluminant );
|
||||
|
||||
/*!
|
||||
\fn short MCHR_GetIlluminants (MCHR_ID SensorID, enIlluminant *);
|
||||
\if FR
|
||||
\brief Obtient l'illuminant CIE ?utiliser pour le calcul des coordonnées colorimétriques.
|
||||
\else
|
||||
\brief Get the CIE illuminant to calculate of colorimetrics coordinates.
|
||||
\endif
|
||||
\details
|
||||
\if FR
|
||||
\param [in] MCHR_ID SensorID : ID du coffret.
|
||||
\param enIlluminant :
|
||||
\arg \c A.
|
||||
\arg \c C.
|
||||
\aeg \c D.
|
||||
\arg \c F.
|
||||
\return short : un code d'erreur \link MCHR_ERROR MCHR_ERROR \endlink.
|
||||
\else
|
||||
\param [in] MCHR_ID SensorID : ID of the device.
|
||||
\param enIlluminant : Choice of illuminant
|
||||
\arg \c A.
|
||||
\arg \c C.
|
||||
\aeg \c D.
|
||||
\arg \c F.
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
\endif
|
||||
\see MCHR_GetErrorDescription
|
||||
*/
|
||||
DLL_CHR_API short MCHR_GetIlluminants (MCHR_ID SensorID, enIlluminant *);
|
||||
|
||||
/*!
|
||||
\fn short MCHR_SetObserver (MCHR_ID SensorID, enObservateur);
|
||||
\if FR
|
||||
\brief Configure l’observateur standard CIE ?utiliser pour le calcul des coordonnées colorimétriques.
|
||||
\else
|
||||
\brief Set the standart observer to calculate the colorimetrics coordinates.
|
||||
\endif
|
||||
\details
|
||||
\if FR
|
||||
\param [in] MCHR_ID SensorID : ID du coffret.
|
||||
\param enObservateur :
|
||||
\arg \c OBS_CIE1931 : CIE1931 (2?,
|
||||
\arg \c OBS_CIE1964 : CIE1964 (10?.
|
||||
\return short : un code d'erreur \link MCHR_ERROR MCHR_ERROR \endlink.
|
||||
\else
|
||||
\param [in] MCHR_ID SensorID : ID of the device.
|
||||
\param enObservateur : Value of observer
|
||||
\arg \c OBS_CIE1931 : CIE1931 (2?,
|
||||
\arg \c OBS_CIE1964 : CIE1964 (10?.
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
\endif
|
||||
\see MCHR_GetErrorDescription
|
||||
*/
|
||||
DLL_CHR_API short MCHR_SetObserver (MCHR_ID SensorID, enObservateur);
|
||||
|
||||
/*!
|
||||
\fn short MCHR_GetObserver (MCHR_ID SensorID, enObservateur*);
|
||||
\if FR
|
||||
\brief Obtient l’observateur standard CIE ?utiliser pour le calcul des coordonnées colorimétriques.
|
||||
\else
|
||||
\brief Get the standart observer to calculate the colorimetrics coordinates.
|
||||
\endif
|
||||
\details
|
||||
\if FR
|
||||
\param [in] MCHR_ID SensorID : ID du coffret.
|
||||
\param enObservateur :
|
||||
\arg \c OBS_CIE1931 : CIE1931 (2?,
|
||||
\arg \c OBS_CIE1964 : CIE1964 (10?.
|
||||
\return short : un code d'erreur \link MCHR_ERROR MCHR_ERROR \endlink.
|
||||
\else
|
||||
\param [in] MCHR_ID SensorID : ID of the device.
|
||||
\param enObservateur : Value of observer
|
||||
\arg \c OBS_CIE1931 : CIE1931 (2?,
|
||||
\arg \c OBS_CIE1964 : CIE1964 (10?
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
\endif
|
||||
\see MCHR_GetErrorDescription
|
||||
*/
|
||||
DLL_CHR_API short MCHR_GetObserver (MCHR_ID SensorID, enObservateur*);
|
||||
|
||||
/*!
|
||||
\fn short MCHR_SetColorIndicator (MCHR_ID SensorID, enIndiceCouleur);
|
||||
\if FR
|
||||
\brief Configure le calcul des différences de couleur (coordonnées colorimétriques).
|
||||
\else
|
||||
\brief Set the value to calculate the color difference.
|
||||
\endif
|
||||
\details
|
||||
\if FR
|
||||
\param [in] MCHR_ID SensorID : ID du coffret.
|
||||
\param enIndiceCouleur :
|
||||
\arg \c IND_COLOR_Eab : delta Eab,
|
||||
\arg \c IND_COLOR_E2000 : delta E2000,
|
||||
\arg \c IND_COLOR_CMC : CMC,
|
||||
\return short : un code d'erreur \link MCHR_ERROR MCHR_ERROR \endlink.
|
||||
\else
|
||||
\param [in] MCHR_ID SensorID : ID of the device.
|
||||
\param enIndiceCouleur : Value of calculation
|
||||
\arg \c IND_COLOR_Eab : delta Eab,
|
||||
\arg \c IND_COLOR_E2000 : delta E2000,
|
||||
\arg \c IND_COLOR_CMC : CMC,
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
\endif
|
||||
\see MCHR_GetErrorDescription
|
||||
*/
|
||||
DLL_CHR_API short MCHR_SetColorIndicator (MCHR_ID SensorID, enIndiceCouleur);
|
||||
|
||||
/*!
|
||||
\fn short MCHR_GetColorIndicator (MCHR_ID SensorID, enIndiceCouleur*);
|
||||
\if FR
|
||||
\brief Obtient le calcul des différences de couleur (coordonnées colorimétriques).
|
||||
\else
|
||||
\brief Get the value to calculate the color difference.
|
||||
\endif
|
||||
\details
|
||||
\if FR
|
||||
\param [in] MCHR_ID SensorID : ID du coffret.
|
||||
\param enIndiceCouleur :
|
||||
\arg \c IND_COLOR_Eab : delta Eab,
|
||||
\arg \c IND_COLOR_E2000 : delta E2000,
|
||||
\arg \c IND_COLOR_CMC : CMC,
|
||||
\return short : un code d'erreur \link MCHR_ERROR MCHR_ERROR \endlink.
|
||||
\else
|
||||
\param [in] MCHR_ID SensorID : ID of the device.
|
||||
\param enIndiceCouleur : Value of calculation
|
||||
\arg \c IND_COLOR_Eab : delta Eab,
|
||||
\arg \c IND_COLOR_E2000 : delta E2000,
|
||||
\arg \c IND_COLOR_CMC : CMC,
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
\endif
|
||||
\see MCHR_GetErrorDescription
|
||||
*/
|
||||
DLL_CHR_API short MCHR_GetColorIndicator (MCHR_ID SensorID, enIndiceCouleur*);
|
||||
|
||||
/*!
|
||||
\fn short MCHR_SetSpectralIndicator (MCHR_ID SensorID, enIndiceSpectre);
|
||||
\if FR
|
||||
\brief Configure le calcul des différences de spectre.
|
||||
\else
|
||||
\brief Set the value to calculate the spectral difference.
|
||||
\endif
|
||||
\details
|
||||
\if FR
|
||||
\param [in] MCHR_ID SensorID : ID du coffret.
|
||||
\param enIndiceSpectre :
|
||||
\arg \c IND_SPECTRE_RMS : RootMeanSquar,
|
||||
\arg \c IND_SPECTRE_GFC : Goodness-Fitness Coefficient,
|
||||
\return short : un code d'erreur \link MCHR_ERROR MCHR_ERROR \endlink.
|
||||
\else
|
||||
\param [in] MCHR_ID SensorID : ID of the device.
|
||||
\param enIndiceSpectre : Value of calculation
|
||||
\arg \c IND_SPECTRE_RMS : RootMeanSquar,
|
||||
\arg \c IND_SPECTRE_GFC : Goodness-Fitness Coefficient,
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
\endif
|
||||
\see MCHR_GetErrorDescription
|
||||
*/
|
||||
DLL_CHR_API short MCHR_SetSpectralIndicator (MCHR_ID SensorID, enIndiceSpectre);
|
||||
|
||||
/*!
|
||||
\fn short MCHR_GetSpectralIndicator (MCHR_ID SensorID, enIndiceSpectre*);
|
||||
\if FR
|
||||
\brief Obtient le calcul des différences de spectre.
|
||||
\else
|
||||
\brief Set the value to calculate the spectral difference.
|
||||
\endif
|
||||
\details
|
||||
\if FR
|
||||
\param [in] MCHR_ID SensorID : ID du coffret.
|
||||
\param enIndiceSpectre :
|
||||
\arg \c IND_SPECTRE_RMS : RootMeanSquar,
|
||||
\arg \c IND_SPECTRE_GFC : Goodness-Fitness Coefficient,
|
||||
\return short : un code d'erreur \link MCHR_ERROR MCHR_ERROR \endlink.
|
||||
\else
|
||||
\param [in] MCHR_ID SensorID : ID of the device.
|
||||
\param enIndiceSpectre : Value of calculation
|
||||
\arg \c IND_SPECTRE_RMS : RootMeanSquar,
|
||||
\arg \c IND_SPECTRE_GFC : Goodness-Fitness Coefficient,
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
\endif
|
||||
\see MCHR_GetErrorDescription
|
||||
*/
|
||||
DLL_CHR_API short MCHR_GetSpectralIndicator (MCHR_ID SensorID, enIndiceSpectre*);
|
||||
|
||||
/*!
|
||||
\fn short MCHR_SetColorDifferenceMode (MCHR_ID SensorID, enTypeConformite);
|
||||
\if FR
|
||||
\brief Configure le type de calcul des différences entre mesure courante et mesure cible. Les deux types disponibles sont soit une différence de couleur ou de spectre.
|
||||
\else
|
||||
\brief Set the calculation type of difference between current measurement and target measurement.
|
||||
\details
|
||||
\if FR
|
||||
\param [in] MCHR_ID SensorID : ID du coffret.
|
||||
\param enIndiceSpectre :
|
||||
\arg \c CONFORMITE_DESACTIVE,
|
||||
\arg \c CONFORMITE_COULEUR,
|
||||
\arg \c CONFORMITE_SPECTRE,
|
||||
\return short : un code d'erreur \link MCHR_ERROR MCHR_ERROR \endlink.
|
||||
\else
|
||||
\param [in] MCHR_ID SensorID : ID of the device.
|
||||
\param enIndiceSpectre : Value of calculation
|
||||
\arg \c CONFORMITE_DESACTIVE,
|
||||
\arg \c CONFORMITE_COULEUR,
|
||||
\arg \c CONFORMITE_SPECTRE,
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
\endif
|
||||
\see MCHR_GetErrorDescription
|
||||
*/
|
||||
DLL_CHR_API short MCHR_SetColorDifferenceMode (MCHR_ID SensorID, enTypeConformite);
|
||||
|
||||
/*!
|
||||
\fn short MCHR_GetColorDifferenceMode (MCHR_ID SensorID, enTypeConformite*);
|
||||
\if FR
|
||||
\brief Configure le type de calcul des différences entre mesure courante et mesure cible. Les deux types disponibles sont soit une différence de couleur ou de spectre.
|
||||
\else
|
||||
\brief Get the calculation type of difference between current measurement and target measurement.
|
||||
\details
|
||||
\if FR
|
||||
\param [in] MCHR_ID SensorID : ID du coffret.
|
||||
\param enIndiceSpectre :
|
||||
\arg \c CONFORMITE_DESACTIVE,
|
||||
\arg \c CONFORMITE_COULEUR,
|
||||
\arg \c CONFORMITE_SPECTRE,
|
||||
\return short : un code d'erreur \link MCHR_ERROR MCHR_ERROR \endlink.
|
||||
\else
|
||||
\param [in] MCHR_ID SensorID : ID of the device.
|
||||
\param enIndiceSpectre : Value of calculation
|
||||
\arg \c CONFORMITE_DESACTIVE,
|
||||
\arg \c CONFORMITE_COULEUR,
|
||||
\arg \c CONFORMITE_SPECTRE,
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
\endif
|
||||
\see MCHR_GetErrorDescription
|
||||
*/
|
||||
DLL_CHR_API short MCHR_GetColorDifferenceMode (MCHR_ID SensorID, enTypeConformite*);
|
||||
|
||||
/*!
|
||||
\fn short MCHR_SetColorTolerance (MCHR_ID SensorID, double);
|
||||
\if FR
|
||||
\brief Configure la valeur de tolérance d’un calcul de différence entre spectres ou coordonnées colorimétriques.
|
||||
\else
|
||||
\brief Set the tolerance value of calculation berween spectral or colorimetrics coordinates.
|
||||
\details
|
||||
\if FR
|
||||
\param [in] MCHR_ID SensorID : ID du coffret.
|
||||
\return short : un code d'erreur \link MCHR_ERROR MCHR_ERROR \endlink.
|
||||
\else
|
||||
\param [in] MCHR_ID SensorID : ID of the device.
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
\endif
|
||||
\see MCHR_GetErrorDescription
|
||||
*/
|
||||
DLL_CHR_API short MCHR_SetColorTolerance (MCHR_ID SensorID, double);
|
||||
|
||||
/*!
|
||||
\fn short MCHR_GetColorTolerance (MCHR_ID SensorID, double*);
|
||||
\if FR
|
||||
\brief Configure la valeur de tolérance d’un calcul de différence entre spectres ou coordonnées colorimétriques.
|
||||
\else
|
||||
\brief Get the tolerance value of calculation berween spectral or colorimetrics coordinates.
|
||||
\details
|
||||
\if FR
|
||||
\param [in] MCHR_ID SensorID : ID du coffret.
|
||||
\return short : un code d'erreur \link MCHR_ERROR MCHR_ERROR \endlink.
|
||||
\else
|
||||
\param [in] MCHR_ID SensorID : ID of the device.
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
\endif
|
||||
\see MCHR_GetErrorDescription
|
||||
*/
|
||||
DLL_CHR_API short MCHR_GetColorTolerance (MCHR_ID SensorID, double*);
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
Use this function to specify a buffer receiving the spectrums
|
||||
ppSpectrumBuffer is a pointer to a pointer array of the size of the buffer_number
|
||||
Each of this buffer is pointing to an array of pointer. Each of them point to an array of WORD, which size is specified in wSpectroSize
|
||||
The size should be equals to the value returned by SPECTRO_GetNumberOfPixels()
|
||||
For an example, please have a look at the SpectroSample, "DAcquisition.cpp"
|
||||
|
||||
ppSpectrumBuffer
|
||||
|
|
||||
[*][*][*][*][*][*][*][*] ... (buffer number)
|
||||
/|\
|
||||
\
|
||||
[*][*][*]... (buffer length)
|
||||
/|\
|
||||
\
|
||||
[WORD][WORD][WORD][WORD][WORD][WORD][WORD][WORD]... buffer size
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn short MCHR_SetSpectrumBuffer (MCHR_ID SensorID, double*);
|
||||
\if FR
|
||||
\brief PRIVE
|
||||
\else
|
||||
\brief PRIVATE
|
||||
*/
|
||||
DLL_CHR_API short MCHR_SetSpectrumBuffer(MCHR_ID SensorID,WORD***ppSpectrumBuffer,WORD wSpectroSize);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,545 @@
|
||||
/************************************************************************/
|
||||
/* STIL * Software Departement */
|
||||
/*----------------------------------------------------------------------*/
|
||||
/* */
|
||||
/* MchrDefine.h */
|
||||
/* */
|
||||
/*----------------------------------------------------------------------*/
|
||||
/* Project .................................. CHR DLL */
|
||||
/* Reference documents */
|
||||
/* Programming Language ................. Visual C++ v6.0 */
|
||||
/* Starting date ................... 16/01/2003 */
|
||||
/* Date of last update ............. */
|
||||
/* Author(s)................................. DMO */
|
||||
/* Required Files .........................none */
|
||||
/* Required hardware .................... PC Pentium 350 Mhz */
|
||||
/* Prefix ........... MCHR_ */
|
||||
/*----------------------------------------------------------------------*/
|
||||
/* This HEADER file defines constants */
|
||||
/* */
|
||||
/* */
|
||||
/*----------------------------------------------------------------------*/
|
||||
/* V? | Date |AUTHOR| COMMENTS */
|
||||
/*-------+---------- +--------------------------------------------------*/
|
||||
/* 01 | 05 Sept 03| DMO | Initial version */
|
||||
/* 02 | 18 Nov 05| DMO | Ethernet, XE, download */
|
||||
/* 03 | 07 Mar. 08| RSA | Max number devices set to 8 */
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
#ifndef MCHRDEFINE_H
|
||||
#define MCHRDEFINE_H
|
||||
|
||||
|
||||
#if defined(_cplusplus) || defined(__cplusplus)
|
||||
extern "C" {
|
||||
#endif /* _cplusplus */
|
||||
|
||||
/*!
|
||||
\def MCHR_MAX_SENSOR
|
||||
\if FR
|
||||
Nombre maximum de capteur pouvant être gere par la DLL
|
||||
\else
|
||||
Maximum number of sensors that can be handled by the DLL
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_MAX_SENSOR 16
|
||||
|
||||
/*!
|
||||
\def MCHR_MAX_REFRACTIVE_INDEX
|
||||
\if FR
|
||||
Nombre maximum de d'indice de refraction pouvant être gere par un capteur
|
||||
\else
|
||||
Maximum number of refractive indexes that can be handled by a sensor
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_MAX_REFRACTIVE_INDEX 8
|
||||
|
||||
/*!
|
||||
\def MCHR_USB_DEVICE_NAME_LENGTH
|
||||
\if FR
|
||||
Taille max du nom de peripherique USB
|
||||
\else
|
||||
Max length of Usb device name
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_USB_DEVICE_NAME_LENGTH 50
|
||||
|
||||
/*!
|
||||
\def MCHR_MAX_DIGITAL_DATA
|
||||
\if FR
|
||||
Nombre de donnees max mesurees par un capteur
|
||||
\else
|
||||
Max number of data measured at each physical point
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_MAX_DIGITAL_DATA 16
|
||||
|
||||
/*!
|
||||
\def MCHR_ANALOG_OUTPUT_NUMBER
|
||||
\if FR
|
||||
Nombre de sorties analogique max d'un capteur
|
||||
\else
|
||||
Max number of analog outputs for a sensor
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ANALOG_OUTPUT_NUMBER 2
|
||||
|
||||
/*!
|
||||
\def MCHR_MAX_ENCODER
|
||||
\if FR
|
||||
Nombre de codeur max pour un capteur
|
||||
\else
|
||||
Max number of encoders for a sensor
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_MAX_ENCODER 3
|
||||
|
||||
/*!
|
||||
\def MCHR_MAX_PEN_CHR_150
|
||||
\if FR
|
||||
Nombre de crayon max dans un CHR-150.
|
||||
\else
|
||||
Max number of opticals pens ( = calibration tables) by CHR 150
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_MAX_PEN_CHR_150 6
|
||||
/*!
|
||||
\def MCHR_MAX_PEN_CHR_450
|
||||
\if FR
|
||||
Nombre de crayon max dans un CHR-450.
|
||||
\else
|
||||
Max number of opticals pens ( = calibration tables) by CHR 450
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_MAX_PEN_CHR_450 6
|
||||
/*!
|
||||
\def MCHR_MAX_PEN_CHR_XE
|
||||
\if FR
|
||||
Nombre de crayon max dans un CHR-XE.
|
||||
\else
|
||||
Max number of opticals pens ( = calibration tables) by CHR XE
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_MAX_PEN_CHR_XE 6
|
||||
/*!
|
||||
\def MCHR_MAX_PEN_CHR_XE_E
|
||||
\if FR
|
||||
Nombre de crayon max dans un CHR-XE.
|
||||
\else
|
||||
Max number of opticals pens ( = calibration tables) by CHR XE
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_MAX_PEN_CHR_XE_E 20
|
||||
/*!
|
||||
\def MCHR_MAX_PEN_CCS_ALPHA
|
||||
\if FR
|
||||
Nombre de crayon max dans un CCS ALPHA.
|
||||
\else
|
||||
Max number of opticals pens ( = calibration tables) by CCS ALPHA
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_MAX_PEN_CCS_ALPHA 20
|
||||
/*!
|
||||
\def MCHR_MAX_PEN_CCS_PRIMA
|
||||
\if FR
|
||||
Nombre de crayon max dans un CCS PRIMA.
|
||||
\else
|
||||
Max number of opticals pens ( = calibration tables) by CCS PRIMA.
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_MAX_PEN_CCS_PRIMA 20
|
||||
/*!
|
||||
\def MCHR_MAX_PEN_CCS_OPTIMA
|
||||
\if FR
|
||||
Nombre de crayon max dans un CCS OPTIMA.
|
||||
\else
|
||||
Max number of opticals pens ( = calibration tables) by CCS OPTIMA
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_MAX_PEN_CCS_OPTIMA 20
|
||||
/*!
|
||||
\def MCHR_MAX_PEN_CCS_ULTIMA
|
||||
\if FR
|
||||
Nombre de crayon max dans un CCS ULTIMA.
|
||||
\else
|
||||
Max number of opticals pens ( = calibration tables) by CCS ULTIMA
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_MAX_PEN_CCS_ULTIMA 20
|
||||
/*!
|
||||
\def MCHR_MAX_PEN_CCS_INITIAL
|
||||
\if FR
|
||||
Nombre de crayon max dans un CCS INITIAL.
|
||||
\else
|
||||
Max number of opticals pens ( = calibration tables) by CCS INITIAL.
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_MAX_PEN_CCS_INITIAL 1
|
||||
/*!
|
||||
\def MCHR_MAX_PEN_TRIO
|
||||
\if FR
|
||||
Nombre de crayon max dans un TRIO.
|
||||
\else
|
||||
Max number of opticals pens ( = calibration tables) by TRIO.
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_MAX_PEN_TRIO 20
|
||||
/*!
|
||||
\def MCHR_MAX_PEN_RUBY
|
||||
\if FR
|
||||
Nombre de crayon max dans un RUBY.
|
||||
\else
|
||||
Max number of opticals pens ( = calibration tables) by RUBY
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_MAX_PEN_RUBY 20
|
||||
/*!
|
||||
\def MCHR_MAX_PEN_CHR
|
||||
\if FR
|
||||
Nombre de crayon max dans un CHR.
|
||||
\else
|
||||
Max number of opticals pens ( = calibration tables) by CHR.
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_MAX_PEN_CHR MCHR_MAX_PEN_CHR_150
|
||||
/*!
|
||||
\def MCHR_MAX_EXPOSURE_CHR_150
|
||||
\if FR
|
||||
Definition du temps d'exposition MAXIMUM pour un capteur.
|
||||
\warning Fonction non autorisee pour le CHR 150.
|
||||
\else
|
||||
MAXIMUM exposure time in microsec for a sensor.
|
||||
\warning COMMAND NOT AUTHORIZED for CHR 150.
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_MAX_EXPOSURE_CHR_150 0 /* Non applicable sur CHR-150 */
|
||||
/* Command not authorized for CHR 150 */
|
||||
/*!
|
||||
\def MCHR_MIN_EXPOSURE_CHR_150
|
||||
\if FR
|
||||
Definition du temps d'exposition MINIMUM pour un capteur.
|
||||
\warning Fonction non autorisee pour le CHR 150.
|
||||
\else
|
||||
MINIMUM exposure time in microsec for a sensor.
|
||||
\warning COMMAND NOT AUTHORIZED for CHR 150.
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_MIN_EXPOSURE_CHR_150 0 /* Non applicable sur CHR-150 */
|
||||
/* Command not authorized for CHR 150 */
|
||||
/*!
|
||||
\def MCHR_MAX_EXPOSURE_CHR_450
|
||||
\if FR
|
||||
Definition du temps d'exposition MAXIMUM pour un CHR 450 <br>
|
||||
30000 correspond ?la fréquence 33Hz.
|
||||
\else
|
||||
MAXIMUM exposure time in microsec for CHR 450. <br>
|
||||
30000 correspond to the frequency 33Hz.
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_MAX_EXPOSURE_CHR_450 30000 /* Correspond ?la Freq 33Hhz */
|
||||
/* Corresponds to 33Hz */
|
||||
/*!
|
||||
\def MCHR_MIN_EXPOSURE_CHR_450
|
||||
\if FR
|
||||
Definition du temps d'exposition MINIMUM pour un CHR 450.
|
||||
250 correspond ?la fréquence 4 KHz.
|
||||
\else
|
||||
MINIMUM exposure time in microsec for CHR 450.
|
||||
250 correspond to the frequency 4 kHz.
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_MIN_EXPOSURE_CHR_450 250 /* Correspond la freq 4Khz */
|
||||
/* Corresponds to 4KHz */
|
||||
/*!
|
||||
\def MCHR_MAX_EXPOSURE_CHR_XE
|
||||
\if FR
|
||||
Definition du temps d'exposition MAXIMUM pour un CHR XE <br>
|
||||
30000 correspond ?la fréquence 33Hz.
|
||||
\else
|
||||
MAXIMUM exposure time in microsec for CHR XE <br>
|
||||
30000 correspond to the frequency 33Hz.
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_MAX_EXPOSURE_CHR_XE 30000 /* Correspond ?la Freq 33Hhz */
|
||||
/* Corresponds to 33Hz */
|
||||
/*!
|
||||
\def MCHR_MIN_EXPOSURE_CHR_XE
|
||||
\if FR
|
||||
Definition du temps d'exposition MINIMUM pour un CHR XE.
|
||||
100 correspond ?la fréquence 10 KHz.
|
||||
\else
|
||||
MINIMUM exposure time in microsec for CHR XE.
|
||||
100 correspond to the frequency 10 kHz.
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_MIN_EXPOSURE_CHR_XE 100 /* Correspond la freq 10Khz */
|
||||
/* Corresponds to 10KHz */
|
||||
/*!
|
||||
\def MCHR_MAX_EXPOSURE_CHR_XE_E
|
||||
\if FR
|
||||
Definition du temps d'exposition MAXIMUM pour un CHR XE_E <br>
|
||||
30000 correspond ?la fréquence 33 Hz.
|
||||
\else
|
||||
MAXIMUM exposure time in microsec for CHR XE_E. <br>
|
||||
30000 correspond to the frequency 33 Hz.
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_MAX_EXPOSURE_CHR_XE_E 30000 /* Correspond ?la Freq 33Hhz */
|
||||
/* Corresponds to 33Hz */
|
||||
/*!
|
||||
\def MCHR_MIN_EXPOSURE_XE_E
|
||||
\if FR
|
||||
Definition du temps d'exposition MINIMUM pour un CHR XE_E.
|
||||
32 correspond ?la fréquence 31,250 Khz.
|
||||
\else
|
||||
MINIMUM exposure time in microsec for CHR XE_E.
|
||||
32 correspond to the frequency 31,250 Khz.
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_MIN_EXPOSURE_CHR_XE_E 32 /* Correspond la freq 31Khz250 */
|
||||
/* Corresponds to 31250 Hz */
|
||||
/*!
|
||||
\def MCHR_MAX_EXPOSURE_CCS_ALPHA
|
||||
\if FR
|
||||
Definition du temps d'exposition MAXIMUM pour un CCS ALPHA <br>
|
||||
25000 correspond ?la fréquence 40 Hz.
|
||||
\else
|
||||
MAXIMUM exposure time in microsec for CCS ALPHA. <br>
|
||||
25000 correspond to the frequency 40 Hz.
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_MAX_EXPOSURE_CCS_ALPHA 25000 /* Correspond ?la Freq 40 Hz */
|
||||
/* Corresponds to 40 Hz */
|
||||
/*!
|
||||
\def MCHR_MIN_EXPOSURE_CCS_ALPHA
|
||||
\if FR
|
||||
Definition du temps d'exposition MINIMUM pour un CCS ALPHA.
|
||||
500 correspond ?la fréquence 2 KHz.
|
||||
\else
|
||||
MINIMUM exposure time in microsec for CHR CCS ALPHA.
|
||||
500 correspond to the frequency 2 kHz.
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_MIN_EXPOSURE_CCS_ALPHA 500 /* Correspond la freq 2Khz */
|
||||
/* Corresponds to 2000 Hz */
|
||||
/*!
|
||||
\def MCHR_MAX_EXPOSURE_CCS_INITIAL
|
||||
\if FR
|
||||
Definition du temps d'exposition MAXIMUM pour un CCS INITIAL <br>
|
||||
10000 correspond ?la fréquence 100 Hz.
|
||||
\else
|
||||
MAXIMUM exposure time in microsec for CHR CCS INITIAL. <br>
|
||||
10000 correspond to the frequency 100 Hz.
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_MAX_EXPOSURE_CCS_INITIAL 10000 /* Correspond ?la Freq 100Hhz */
|
||||
/* Corresponds to 100Hz */
|
||||
/*!
|
||||
\def MCHR_MIN_EXPOSURE_CCS_INITIAL
|
||||
\if FR
|
||||
Definition du temps d'exposition MINIMUM pour un CCS INITIAL.
|
||||
500 correspond ?la fréquence 2 KHz.
|
||||
\else
|
||||
MINIMUM exposure time in microsec for CHR CCS INITIAL.
|
||||
500 correspond to the frequency 2 kHz.
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_MIN_EXPOSURE_CCS_INITIAL 500 /* Correspond la freq 2Khz */
|
||||
/* Corresponds to 2000 Hz */
|
||||
/*!
|
||||
\def MCHR_MAX_EXPOSURE_CCS_PRIMA
|
||||
\if FR
|
||||
Definition du temps d'exposition MAXIMUM pour un CCS PRIMA <br>
|
||||
10000 correspond ?la fréquence 100Hz.
|
||||
\else
|
||||
MAXIMUM exposure time in microsec for CCS PRIMA. <br>
|
||||
10000 correspond to the frequency 100Hz.
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_MAX_EXPOSURE_CCS_PRIMA 10000 /* Correspond ?la Freq 100Hhz */
|
||||
/* Corresponds to 100Hz */
|
||||
/*!
|
||||
\def MCHR_MIN_EXPOSURE_CCS_PRIMA
|
||||
\if FR
|
||||
Definition du temps d'exposition MINIMUM pour un CCS PRIMA.
|
||||
500 correspond ?la fréquence 2 KHz.
|
||||
\else
|
||||
MINIMUM exposure time in microsec for CCS PRIMA.
|
||||
500 correspond to the frequency 2 kHz.
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_MIN_EXPOSURE_CCS_PRIMA 500 /* Correspond la freq 2Khz */
|
||||
/* Corresponds to 2000 Hz */
|
||||
/*!
|
||||
\def MCHR_MAX_EXPOSURE_CCS_OPTIMA
|
||||
\if FR
|
||||
Definition du temps d'exposition MAXIMUM pour un CCS_OPTIMA <br>
|
||||
10000 correspond ?la fréquence 100Hz.
|
||||
\else
|
||||
MAXIMUM exposure time in microsec for CCS_OPTIMA. <br>
|
||||
10000 correspond to the frequency 100Hz.
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_MAX_EXPOSURE_CCS_OPTIMA 10000 /* Correspond ?la Freq 100Hhz */
|
||||
/* Corresponds to 100Hz */
|
||||
/*!
|
||||
\def MCHR_MIN_EXPOSURE_CCS_OPTIMA
|
||||
\if FR
|
||||
Definition du temps d'exposition MINIMUM pour un CCS OPTIMA.
|
||||
200 correspond ?la fréquence 5 KHz.
|
||||
\else
|
||||
MINIMUM exposure time in microsec for CCS OPTIMA.
|
||||
200 correspond to the frequency 4 kHz.
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_MIN_EXPOSURE_CCS_OPTIMA 200 /* Correspond la freq 5000 hz */
|
||||
/* Corresponds to 5 kHz */
|
||||
/*!
|
||||
\def MCHR_MAX_EXPOSURE_CCS_ULTIMA
|
||||
\if FR
|
||||
Definition du temps d'exposition MAXIMUM pour un CCS ULTIMA<br>
|
||||
10000 correspond ?la fréquence 100Hz.
|
||||
\else
|
||||
MAXIMUM exposure time in microsec for CCS ULTIMA. <br>
|
||||
10000 correspond to the frequency 100Hz.
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_MAX_EXPOSURE_CCS_ULTIMA 10000 /* Correspond ?la Freq 100Hhz */
|
||||
/* Corresponds to 100Hz */
|
||||
/*!
|
||||
\def MCHR_MIN_EXPOSURE_CCS_ULTIMA
|
||||
\if FR
|
||||
Definition du temps d'exposition MINIMUM pour un CCS ULTIMA.
|
||||
32 correspond ?la fréquence 31,250 KHz.
|
||||
\else
|
||||
MINIMUM exposure time in microsec for CCS ULTIMA.
|
||||
32 correspond to the frequency 31,250 kHz.
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_MIN_EXPOSURE_CCS_ULTIMA 32 /* Correspond la freq 31250 hz */
|
||||
/* Corresponds to 31250 Hz */
|
||||
/*!
|
||||
\def MCHR_MAX_EXPOSURE_TRIO
|
||||
\if FR
|
||||
Definition du temps d'exposition MAXIMUM pour un TRIO <br>
|
||||
25000 correspond ?la fréquence 40Hz.
|
||||
\else
|
||||
MAXIMUM exposure time in microsec for TRIO. <br>
|
||||
25000 correspond to the frequency 40Hz.
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_MAX_EXPOSURE_TRIO 25000 /* Correspond ?la Freq 40Hz */
|
||||
/*!
|
||||
\def MCHR_MIN_EXPOSURE_TRIO
|
||||
\if FR
|
||||
Definition du temps d'exposition MINIMUM pour un TRIO.
|
||||
500 correspond ?la fréquence 2 KHz.
|
||||
\else
|
||||
MINIMUM exposure time in microsec for TRIO.
|
||||
500 correspond to the frequency 2 kHz.
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_MIN_EXPOSURE_TRIO 500 /* Correspond ?la Freq 2000Hhz */
|
||||
/*!
|
||||
\def MCHR_MAX_EXPOSURE_RUBY
|
||||
\if FR
|
||||
Definition du temps d'exposition MAXIMUM pour un RUBY
|
||||
\else
|
||||
MAXIMUM exposure time in microsec for RUBY.
|
||||
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_MAX_EXPOSURE_RUBY 250000L /* Correspond ?la Freq 100Hhz */
|
||||
/*!
|
||||
\def MCHR_MIN_EXPOSURE_CHR_450
|
||||
\if FR
|
||||
Definition du temps d'exposition MINIMUM pour un RUBY.
|
||||
500 correspond ?la fréquence 2 KHz.
|
||||
\else
|
||||
MINIMUM exposure time in microsec for RUBY.
|
||||
500 correspond to the frequency 2 kHz.
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_MIN_EXPOSURE_RUBY 500 /* Correspond ?la Freq 2Khz */
|
||||
|
||||
/*!
|
||||
\def MCHR_NO_PEN
|
||||
\if FR
|
||||
Identificateur d'absence de crayon configure
|
||||
\else
|
||||
Full scale value attributed to undefined calibration table
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_NO_PEN 999
|
||||
|
||||
/*!
|
||||
\def MCHR_NOT_FREQ_MIN
|
||||
\if FR
|
||||
Identificateur d'absence de Frequence min du Dark
|
||||
\else
|
||||
Dark min frequency value attributed to undefined Dark
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_NOT_FREQ_MIN 999
|
||||
|
||||
/*!
|
||||
\def enum MCHR_STATUS
|
||||
\if FR
|
||||
Definition des etats de l'objet Capteur
|
||||
\else
|
||||
Definition of possible states of the CHR
|
||||
\endif
|
||||
*/
|
||||
enum MCHR_STATUS
|
||||
{
|
||||
/*! \brief not initialized */
|
||||
MCHR_STATUS_NOT_INITIALIZED=1, //not initialized
|
||||
/*! \brief initialized */
|
||||
MCHR_STATUS_INITIALIZED, //initialized
|
||||
/*! \brief initialization failed */
|
||||
MCHR_STATUS_INIT_FAILED, //initialization failed
|
||||
/*! \brief waiting for command */
|
||||
MCHR_STATUS_WAIT_COMMAND, //waiting for command
|
||||
/*! \brief not initialized */
|
||||
MCHR_STATUS_COMMAND_IN_PROGRESS, //command processing in progress
|
||||
/*! \brief finite acquisition in progress */
|
||||
MCHR_STATUS_ACQUISITION_IN_PROGRESS, //finite acquisition in progress
|
||||
/*! \brief finite acquisition in progress */
|
||||
MCHR_STATUS_CONTINUOUS_ACQ_IN_PROGRESS, //continuous acquisition in progress
|
||||
/*! \brief Acquisition-abort in progress */
|
||||
MCHR_STATUS_STOP_ACQ_IN_PROGRESS, //Acquisition-abort in progress
|
||||
/*! \brief communication failed */
|
||||
MCHR_STATUS_COM_FAILED, //communication failed
|
||||
/*! \brief Sensor already in use by another instance */
|
||||
MCHR_STATUS_ALREADY_IN_USE, // Sensor already in use by another instance
|
||||
|
||||
};
|
||||
|
||||
/*!
|
||||
\def enum enSpectrumAcquisitionResult
|
||||
\if FR
|
||||
Definition des etats de l'objet de l'acquisition du spectre
|
||||
\else
|
||||
Definition of possible states of the spectrum acquisition
|
||||
\endif
|
||||
*/
|
||||
enum enSpectrumAcquisitionResult
|
||||
{
|
||||
/*! \brief data present */
|
||||
SPECTRUM_ACQUISITION_DATA_READY,
|
||||
/*! \brief no data present */
|
||||
SPECTRUM_ACQUISITION_BUFFER_EMPTY,
|
||||
/*! \brief error */
|
||||
SPECTRUM_ACQUISITION_ERROR,
|
||||
/*! \brief timeout */
|
||||
SPECTRUM_ACQUISITION_TIMEOUT,
|
||||
};
|
||||
|
||||
|
||||
// Other declarations
|
||||
#define MAX_NAME_LENGTH 128
|
||||
|
||||
#if defined(_cplusplus) || defined(__cplusplus)
|
||||
}
|
||||
#endif /* _cplusplus */
|
||||
#endif
|
||||
@@ -0,0 +1,754 @@
|
||||
/*************************************************************************/
|
||||
/* STIL * Software Departement */
|
||||
/*----------------------------------------------------------------------*/
|
||||
/* */
|
||||
/* MchrError.h */
|
||||
/* */
|
||||
/*----------------------------------------------------------------------*/
|
||||
/* Project .................................. CHR DLL */
|
||||
/* Reference documents "Specification DLL CHR-150"*/
|
||||
/* Programming Language ................. Visual C++ v6.0 */
|
||||
/* Starting date ................... 16/01/2003 */
|
||||
/* Date of last update ............. */
|
||||
/* Author(s)................................. DMO */
|
||||
/* Required Files .........................none */
|
||||
/* Required hardware .................... PC Pentium 350 Mhz */
|
||||
/* Prefix ........... MCHR_ */
|
||||
/*----------------------------------------------------------------------*/
|
||||
/* This HEADER file defines the errors returned by the */
|
||||
/* "MCHR_GetLastError" function and other DLL functions */
|
||||
/* */
|
||||
/* */
|
||||
/*----------------------------------------------------------------------*/
|
||||
/* V? | Date |AUTHOR| COMMENTS */
|
||||
/*-------+---------- +--------------------------------------------------*/
|
||||
/* 01 | 16 Janu 03| DMO | Initial version */
|
||||
/* 02 | 18 Nov 05| DMO | Ethernet, XE, Downloads */
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
#ifndef DEFINEERROR_H
|
||||
#define DEFINEERROR_H
|
||||
|
||||
|
||||
#if defined(_cplusplus) || defined(__cplusplus)
|
||||
extern "C" {
|
||||
#endif /* _cplusplus */
|
||||
|
||||
/*
|
||||
ERREURS RETOURNEES PAR LES FONCTIONS DE LA DLL
|
||||
INTERPRETATION OF ERRORS RETURNED BY THE DLL FUNCTIONS
|
||||
*/
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR
|
||||
\if FR
|
||||
La fonction est sortie en erreur, utilisez \link MCHR_GetLastError MCHR_GetLastError \endlink pour en connaitre son origine
|
||||
\else
|
||||
The function is in error, call \link MCHR_GetLastError MCHR_GetLastError \endlink to know the origin of the error
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR 0
|
||||
/*!
|
||||
\def MCHR_ERROR_NONE
|
||||
\if FR
|
||||
Pas d'erreur, la fonction s'est correctement exécutée
|
||||
\else
|
||||
No ERROR, the function is OK.
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_NONE 1
|
||||
/*!
|
||||
\def MCHR_ERROR_CODE
|
||||
\if FR
|
||||
Début du codage des types d'erreur.
|
||||
\else
|
||||
Starting of ERROR CODE
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_CODE 0xf000
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_NOT_CONNECTED
|
||||
\if FR
|
||||
Problème de communication avec le CHR
|
||||
\else
|
||||
Error encountered when trying to communicate with the CHR
|
||||
\endif
|
||||
*/
|
||||
|
||||
#define MCHR_ERROR_NOT_CONNECTED (MCHR_ERROR_CODE + 0x01)
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_SERIAL_PORT
|
||||
\if FR
|
||||
La fonction a rencontre un problème pour initialiser le port serie (IdSerialPort > 0) specifie.
|
||||
\else
|
||||
Error encountered when trying to initialize the specified COM PORT (IdSerialPort > 0)
|
||||
\endif
|
||||
*/
|
||||
|
||||
#define MCHR_ERROR_SERIAL_PORT (MCHR_ERROR_CODE + 0x03)
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_READ_CONFIG_FILE
|
||||
\if FR
|
||||
Un problème est survenu lors de la lecture du fichier de configuration specifie.
|
||||
\else
|
||||
Error encountered when trying to read the specified confoguration file
|
||||
\endif
|
||||
*/
|
||||
|
||||
#define MCHR_ERROR_READ_CONFIG_FILE (MCHR_ERROR_CODE + 0x04)
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_WRITE_CONFIG_FILE
|
||||
\if FR
|
||||
Un problème est survenu lors de l'ecriture du fichier de configuration specifie.
|
||||
\else
|
||||
Error encountered when trying to write the specified configuration file
|
||||
\endif
|
||||
*/
|
||||
|
||||
#define MCHR_ERROR_WRITE_CONFIG_FILE (MCHR_ERROR_CODE + 0x05)
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_RECEIVE_CONFIG_CHR
|
||||
\if FR
|
||||
Un problème est survenu lors de la recuperation de la configuration du CHR.
|
||||
\else
|
||||
Error encountered when trying to get the CHR configuration
|
||||
\endif
|
||||
*/
|
||||
|
||||
#define MCHR_ERROR_RECEIVE_CONFIG_CHR (MCHR_ERROR_CODE + 0x06)
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_SEND_CONFIG_CHR
|
||||
\if FR
|
||||
Un problème est survenu lors de la transmission de la configuration du CHR.
|
||||
\else
|
||||
Error encountered during CHR configuration transmission
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_SEND_CONFIG_CHR (MCHR_ERROR_CODE + 0x07)
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_NAME_ALREADY_EXIST
|
||||
\if FR
|
||||
Le nom du CHR recherche existe dej?dans la liste des CHR initialises.
|
||||
\else
|
||||
The name of the specified CHR exist already in the list of initialized CHR
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_NAME_ALREADY_EXIST (MCHR_ERROR_CODE + 0x08)
|
||||
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_ADD_SENSOR
|
||||
\if FR
|
||||
Il y a une erreur lors de l'ajout du capteur.
|
||||
\else
|
||||
Error while adding a new CHR
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_ADD_SENSOR (MCHR_ERROR_CODE + 0x09)
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_UNKNOWN_SENSOR
|
||||
\if FR
|
||||
Le CHR n'existe pas dans la liste des CHR initialises.
|
||||
\else
|
||||
The specified CHR does not exist in the list of initialized CHR
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_UNKNOWN_SENSOR (MCHR_ERROR_CODE + 0x0a)
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_NO_SENSOR_CONNECTED
|
||||
\if FR
|
||||
Pas de capteur CHR connecte.
|
||||
\else
|
||||
No CHR is currently connected
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_NO_SENSOR_CONNECTED (MCHR_ERROR_CODE + 0x0b)
|
||||
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_PARAM_NOT_VALID
|
||||
\if FR
|
||||
Le paramètre de la fonction demandee n'est pas valide.
|
||||
\else
|
||||
Invalid argument for the required function
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_PARAM_NOT_VALID (MCHR_ERROR_CODE + 0x0c)
|
||||
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_DIALOG_CHR
|
||||
\if FR
|
||||
Une erreur de dialogue est apparue lors d'un echange avec le CHR.
|
||||
\else
|
||||
Dialog error encountered while communicationg with the CHR
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_DIALOG_CHR (MCHR_ERROR_CODE + 0x0d)
|
||||
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_START_RECEP_THREAD
|
||||
\if FR
|
||||
Une erreur s'est produite lors de l'initialisation du thread de reception.
|
||||
\else
|
||||
Error encountered while initializing the Reception Thread
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_START_RECEP_THREAD (MCHR_ERROR_CODE + 0x0e)
|
||||
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_NOTHING_TO_ABORT
|
||||
\if FR
|
||||
S'il n'y a aucune commande ?arrêter.
|
||||
\else
|
||||
No command is being executed while "Abort" command is received
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_NOTHING_TO_ABORT (MCHR_ERROR_CODE + 0x0f)
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_ABORT_COMMAND
|
||||
\if FR
|
||||
Si impossible d'arrêter une commande.
|
||||
\else
|
||||
Abort command failed
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_ABORT_COMMAND (MCHR_ERROR_CODE + 0x10)
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_DLL_NOT_ACTIVE
|
||||
\if FR
|
||||
Si la DLL n'a pas ete initialisee et activee.
|
||||
\else
|
||||
The DLL has not been initialized and activated
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_DLL_NOT_ACTIVE (MCHR_ERROR_CODE + 0x11)
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_CHR_BUSY
|
||||
\if FR
|
||||
Si la DLL est dej?occupee ?traiter une commande.
|
||||
\else
|
||||
The DLL is busy executing a previous command
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_CHR_BUSY (MCHR_ERROR_CODE + 0x12)
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_SCANRATE_TOO_HIGH
|
||||
\if FR
|
||||
La Frequence de mesure est trop elevee pour transmettre all required data.
|
||||
\else
|
||||
The acquisition rate is too high, impossible to transmit all requested data at this rate
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_SCANRATE_TOO_HIGH (MCHR_ERROR_CODE + 0x13)
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_ONLY_CHR450_FUNCTION
|
||||
\if FR
|
||||
La fonction demande n'est valide que pour un CHR-450.
|
||||
\else
|
||||
The specified function is autorized for CHR 450 only, the current CHR is not a 450
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_ONLY_CHR450_FUNCTION (MCHR_ERROR_CODE + 0x14)
|
||||
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_ACQUISTION_STOPPED
|
||||
\if FR
|
||||
Erreur de la fonction car il n'y a pas d'acquisition en cours.
|
||||
\else
|
||||
No acquisition is currently in progress
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_ACQUISITION_STOPPED (MCHR_ERROR_CODE + 0x15)
|
||||
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_INTERNAL_FUNCTION
|
||||
\if FR
|
||||
Erreur interne de la fonction.
|
||||
\else
|
||||
Unspecified error during function execution
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_INTERNAL_FUNCTION (MCHR_ERROR_CODE + 0x16)
|
||||
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_NOT_IN_INTERFEROMETRIC_MODE
|
||||
\if FR
|
||||
Erreur de la fonction car le CHR n'est pas en mode interferometrique.
|
||||
\else
|
||||
The specified function is autorized on interferometric mode only, the CHR is not in this mode
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_NOT_IN_INTERFEROMETRIC_MODE (MCHR_ERROR_CODE + 0x17)
|
||||
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_DARK_NOT_VALID
|
||||
\if FR
|
||||
Erreur lors de la commande Fast Dark.
|
||||
\else
|
||||
Error during "Fast Dark" command execution
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_DARK_NOT_VALID (MCHR_ERROR_CODE + 0x18)
|
||||
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_INTERFEROMETRIC_MODE_NOT_AUTHORIZED
|
||||
\if FR
|
||||
Le mode Interferometrique n'est pas autorise sur ce capteur.
|
||||
\else
|
||||
The interferometric mode is not authorized with this sensor
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_INTERFEROMETRIC_MODE_NOT_AUTHORIZED (MCHR_ERROR_CODE + 0x19)
|
||||
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_NOT_VALID_CHR_CMD
|
||||
\if FR
|
||||
La commande envoye sur le capteur n'est pas valide.
|
||||
\else
|
||||
The command is not authorized for the current sensor type
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_NOT_VALID_CHR_CMD (MCHR_ERROR_CODE + 0x1a)
|
||||
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_READ_CALIBRATION_FILE
|
||||
\if FR
|
||||
Un problème est survenu lors de la lecture du fichier de calibration.
|
||||
\else
|
||||
Impossible to read calibration file
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_READ_CALIBRATION_FILE (MCHR_ERROR_CODE + 0x1b)
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_SEND_CALIBRATION_TABLE
|
||||
\if FR
|
||||
Un problème est survenu lors de l'envoi de la table de calibration vers le capteur specifie.
|
||||
\else
|
||||
Impossible to send the calibration file
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_SEND_CALIBRATION_TABLE (MCHR_ERROR_CODE + 0x1c)
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_IP_ADDRESS
|
||||
\if FR
|
||||
L'adresse IP specifie n'est pas valide.
|
||||
\else
|
||||
Illegal IP address
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_IP_ADDRESS (MCHR_ERROR_CODE + 0x1d)
|
||||
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_BUFFER_FULL
|
||||
\if FR
|
||||
Les buffers de receptions sont plein, Cadence de lecture trop lente.
|
||||
\else
|
||||
Reception buffer overflow, reading rate is too slow
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_BUFFER_FULL (MCHR_ERROR_CODE + 0x1e)
|
||||
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_TRIGGER_TYPE
|
||||
\if FR
|
||||
Le mode de trigger demande n'existe pas.
|
||||
\else
|
||||
Unrecognized trigger type
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_TRIGGER_TYPE (MCHR_ERROR_CODE + 0x1f)
|
||||
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_READ_FIRMWARE_FILE
|
||||
\if FR
|
||||
Erreur de lecture du fichier firmware.
|
||||
\else
|
||||
Impossible to read the firmware file
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_READ_FIRMWARE_FILE (MCHR_ERROR_CODE + 0x20)
|
||||
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_READ_ADDITIONAL_FILE
|
||||
\if FR
|
||||
Erreur de lecture du fichier menu.
|
||||
\else
|
||||
Impossible to read the menu file
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_READ_ADDITIONAL_FILE (MCHR_ERROR_CODE + 0x21)
|
||||
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_SEND_FIRMWARE_FILE
|
||||
\if FR
|
||||
Erreur d'envoi du fichier firmware.
|
||||
\else
|
||||
Impossible to send the firmware file
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_SEND_FIRMWARE_FILE (MCHR_ERROR_CODE + 0x22)
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_SEND_ADDITIONAL_FILE
|
||||
\if FR
|
||||
Erreur d'envoi du fichier menu.
|
||||
\else
|
||||
Impossible to send the menu file
|
||||
\endif
|
||||
*/
|
||||
|
||||
#define MCHR_ERROR_SEND_ADDITIONAL_FILE (MCHR_ERROR_CODE + 0x23)
|
||||
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_RUN_FIRMWARE
|
||||
\if FR
|
||||
Une erreur est survenue lors de l'execution de la nouvelle version du firmware.
|
||||
\else
|
||||
Error while trying to run the new firmware version
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_RUN_FIRMWARE (MCHR_ERROR_CODE + 0x24)
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_SAVE_FIRMWARE
|
||||
\if FR
|
||||
Erreur de sauvegarde du firmware.
|
||||
\else
|
||||
Error while trying to save the new firmware version
|
||||
\endif
|
||||
*/
|
||||
|
||||
#define MCHR_ERROR_SAVE_FIRMWARE (MCHR_ERROR_CODE + 0x25)
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_RESTART_CHR
|
||||
\if FR
|
||||
Erreur de redemarrage apres sauvegarde du firmware.
|
||||
\else
|
||||
Error while trying restart the sensor after saving the new firmware version
|
||||
\endif
|
||||
*/
|
||||
|
||||
#define MCHR_ERROR_RESTART_CHR (MCHR_ERROR_CODE + 0x26)
|
||||
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_ONLY_CHR150_FUNCTION
|
||||
\if FR
|
||||
La fonction demande n'est valide que pour un CHR-150.
|
||||
\else
|
||||
The specified function is autorized for CHR 150 only, the current CHR is not a 150
|
||||
\endif
|
||||
*/
|
||||
|
||||
#define MCHR_ERROR_ONLY_CHR150_FUNCTION (MCHR_ERROR_CODE + 0x27) /* La fonction demande n'est valide que pour un CHR-150 */
|
||||
/* The specified function is autorized for CHR 150 only, the current CHR is not a 150 */
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_ONLY_CCS_FUNCTION
|
||||
\if FR
|
||||
La fonction demande n'est valide que pour un CCS.
|
||||
\else
|
||||
The specified function is autorized for CCS only, the current CHR is not a 150
|
||||
\endif
|
||||
*/
|
||||
|
||||
#define MCHR_ERROR_ONLY_CCS_FUNCTION (MCHR_ERROR_CODE + 0x28)
|
||||
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_NO_TRANSMITTED_DATA
|
||||
\if FR
|
||||
Aucune donnee n'est configuree sur la sortie numerique utilisee.
|
||||
\else
|
||||
No data item is configured to be transmitted on current digital output channel
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_NO_TRANSMITTED_DATA (MCHR_ERROR_CODE + 0x29)
|
||||
|
||||
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_ETHERNET_NOT_SUPPORTED
|
||||
\if FR
|
||||
La Liaison Ethernet n'est pas supporte sur ce capteur.
|
||||
\else
|
||||
The Ethernet link is not supported on this sensor
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_ETHERNET_NOT_SUPPORTED (MCHR_ERROR_CODE + 0x2a)
|
||||
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_SEND_SERIAL_NUMBER
|
||||
\if FR
|
||||
L'envoi du numero de serie ?echoue.
|
||||
\else
|
||||
Failed to send Serial Number
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_SEND_SERIAL_NUMBER (MCHR_ERROR_CODE + 0x2b)
|
||||
|
||||
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_ONLY_ILB_FUNCTION
|
||||
\if FR
|
||||
La fonction demande n'est valide que pour un capteur ILB.
|
||||
\else
|
||||
The specified function is autorized for an ILB sensor
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_ONLY_ILB_FUNCTION (MCHR_ERROR_CODE + 0x2c)
|
||||
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_FUNCTION_NOT_AVAILABLE
|
||||
\if FR
|
||||
La fonction demande n'est pas disponible sur le capteur.
|
||||
\else
|
||||
The specified function is not available on the device
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_FUNCTION_NOT_AVAILABLE (MCHR_ERROR_CODE + 0x2d)
|
||||
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_FREQUENCY_TOO_HIGH
|
||||
\if FR
|
||||
La frequence est trop elevee.
|
||||
\else
|
||||
Frequency too high
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_FREQUENCY_TOO_HIGH (MCHR_ERROR_CODE + 0x2e)
|
||||
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_FREQUENCY_TOO_LOW
|
||||
\if FR
|
||||
La frequence est trop basse.
|
||||
\else
|
||||
Frequency too low
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_FREQUENCY_TOO_LOW (MCHR_ERROR_CODE + 0x2f)
|
||||
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_WHITE_TOO_HIGH
|
||||
\if FR
|
||||
Erreur lors de la commande d'acquisition du Blanc : le signal est trop haut.
|
||||
\else
|
||||
Error during "White Acquisition" command execution : the signal is too High
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_WHITE_TOO_HIGH (MCHR_ERROR_CODE + 0x3a)
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_WHITE_TOO_LOW
|
||||
\if FR
|
||||
Erreur lors de la commande d'acquisition du Blanc : le signal est trop bas.
|
||||
\else
|
||||
Error during "White Acquisition" command execution : the signal is too low
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_WHITE_TOO_LOW (MCHR_ERROR_CODE + 0x3b)
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_WHITE_SATURED
|
||||
\if FR
|
||||
Erreur lors de la commande d'acquisition du Blanc : le signal est sature.
|
||||
\else
|
||||
Error during "White Acquisition" command execution : the signal is satured
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_WHITE_SATURED (MCHR_ERROR_CODE + 0x3c)
|
||||
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_ONLY_ETHERNET_CONNECTION
|
||||
\if FR
|
||||
La fonction demande n'est valide que pour une connection Ethernet.
|
||||
\else
|
||||
The function is avalaible only for an ethernet connection
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_ONLY_ETHERNET_CONNECTION (MCHR_ERROR_CODE + 0x3d)
|
||||
|
||||
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_ILB_PARAM
|
||||
\if FR
|
||||
Probleme dans l'envoi / reception de parametres ILB.
|
||||
\else
|
||||
Error during setting / getting ILB parameters
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_ILB_PARAM (MCHR_ERROR_CODE + 0x3e)
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_NOT_CHR150_FUNCTION
|
||||
\if FR
|
||||
La fonction demande n'est pas valide pour un CHR-150.
|
||||
\else
|
||||
The specified function is unautorized for CHR 150
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_NOT_CHR150_FUNCTION (MCHR_ERROR_CODE + 0x3f) /* La fonction demande n'est valide que pour un CHR-150 */
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_TO_START_WHITE_REF_ACQ
|
||||
\if FR
|
||||
Erreur de lancement de l'acquisition du whiteRef
|
||||
\else
|
||||
Failure to start the acquisition of WhiteRef
|
||||
\endif
|
||||
*/
|
||||
|
||||
#define MCHR_ERROR_TO_START_WHITE_REF_ACQ (MCHR_ERROR_CODE + 0x40) /* La fonction demande n'est valide que pour un CHR-150 */
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_TO_STOP_WHITE_REF_ACQ
|
||||
\if FR
|
||||
Erreur d'arrêt de l'acquisition du whiteRef
|
||||
\else
|
||||
Failure to stop the acquisition of WhiteRef
|
||||
\endif
|
||||
*/
|
||||
|
||||
#define MCHR_ERROR_TO_STOP_WHITE_REF_ACQ (MCHR_ERROR_CODE + 0x41) /* La fonction demande n'est valide que pour un CHR-150 */
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_TO_STOP_WHITE_REF_ACQ
|
||||
\if FR
|
||||
Erreur Autorisation d'accès
|
||||
\else
|
||||
Failure Permission access
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_UNAUTHORIZED_ACCESS (MCHR_ERROR_CODE + 0x42) /* Permission access */
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_FREQ_SMALLER_THAN_MIN_DARK_FREQ
|
||||
\if FR
|
||||
Erreur fréquence du scanrate en dessous de la fréquence du dark minimum
|
||||
\else
|
||||
Failure the resquested frequency is smaller then the min dark frequency
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_FREQ_SMALLER_THAN_MIN_DARK_FREQ (MCHR_ERROR_CODE + 0x43)
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_SENSOR_ALREADY_IN_USE
|
||||
\if FR
|
||||
Le capteur est déj?utilis?par une autre instance ou processus.
|
||||
\else
|
||||
The sensor is already in use with another instance or process.
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_SENSOR_ALREADY_IN_USE (MCHR_ERROR_CODE + 0x44)
|
||||
|
||||
|
||||
|
||||
/*!
|
||||
\def MCHR_ERROR_UNKNOWN
|
||||
\if FR
|
||||
Erreur inconue.
|
||||
\else
|
||||
Unknown error
|
||||
\endif
|
||||
*/
|
||||
#define MCHR_ERROR_UNKNOWN (MCHR_ERROR_CODE + 0x0100)
|
||||
|
||||
/* ------------------------------------------------------------------- */
|
||||
|
||||
#if defined(_cplusplus) || defined(__cplusplus)
|
||||
}
|
||||
#endif /* _cplusplus */
|
||||
|
||||
#endif
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,281 @@
|
||||
/*********************************************************
|
||||
** White light interferometry functions **
|
||||
*********************************************************/
|
||||
/*!
|
||||
\fn short MCHR_GetSAWLINumberOfLayer(MCHR_ID SensorID, long *piNbLayers)
|
||||
\if FR
|
||||
\brief Fonction permettant de recuperer le nombre de couches mesurable en mode ILB (SAWLI).
|
||||
\warning Seulement pour les coffrets ILB (SAWLI).
|
||||
\else
|
||||
\brief Function getting number of layers measurable in SAWLI mode.
|
||||
\warning Only for SAWLI Controllers.
|
||||
\endif
|
||||
\details
|
||||
\if FR
|
||||
\param [in] MCHR_ID SensorID : ID du coffret.
|
||||
\param [out] long *piNbLayers : Nombre de couche mesurable.
|
||||
\return short : un code d'erreur MCHR_ERROR.
|
||||
\else
|
||||
\param [in] MCHR_ID SensorID : ID of the device.
|
||||
\param [out] long *piNbLayers : Number of SAWLI measurable layers.
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
\endif
|
||||
|
||||
*/
|
||||
DLL_CHR_API short MCHR_GetSAWLINumberOfLayer(MCHR_ID SensorID, long *piNbLayers);
|
||||
|
||||
/*!
|
||||
\fn short MCHR_SetSAWLINumberOfLayer(MCHR_ID SensorID, long iNbLayers)
|
||||
\if FR
|
||||
\brief Fonction permettant de paramétrer le nombre de couches mesurable en mode ILB (SAWLI).
|
||||
\warning Seulement pour les coffrets ILB (SAWLI).
|
||||
\else
|
||||
\brief Function setting number of layers measurable in SAWLI mode.
|
||||
\warning Only for SAWLI Controllers.
|
||||
\endif
|
||||
\details
|
||||
\if FR
|
||||
\param [in] MCHR_ID SensorID : ID du coffret.
|
||||
\param [in] long iNbLayers : Nombre de couche mesurable.
|
||||
\return short : un code d'erreur MCHR_ERROR.
|
||||
\else
|
||||
\param [in] MCHR_ID SensorID : ID of the device.
|
||||
\param [in] long piNbLayers : Number of SAWLI measurable layers.
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
\endif
|
||||
*/
|
||||
DLL_CHR_API short MCHR_SetSAWLINumberOfLayer(MCHR_ID SensorID, long iNbLayers);
|
||||
|
||||
/*!
|
||||
\fn short MCHR_GetSAWLISmoothing(MCHR_ID SensorID, long *piSmoothing)
|
||||
\if FR
|
||||
\brief Fonction permettant de recuperer le lissage du signal en mode ILB (SAWLI).
|
||||
\warning Seulement pour les coffrets ILB (SAWLI).
|
||||
\else
|
||||
\brief Function getting smoothing value in SAWLI mode.
|
||||
\warning Only for SAWLI Controllers.
|
||||
\endif
|
||||
\details
|
||||
\if FR
|
||||
\param [long] MCHR_ID SensorID : ID du coffret.
|
||||
\param [out] long *iSmoothing : Largeur du lissage.
|
||||
\return short : un code d'erreur MCHR_ERROR.
|
||||
\else
|
||||
\param [long] MCHR_ID SensorID : ID of the device.
|
||||
\param [out] long *iSmoothing : Smoothing width.
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
\endif
|
||||
*/
|
||||
DLL_CHR_API short MCHR_GetSAWLISmoothing(MCHR_ID SensorID, long *piSmoothing);
|
||||
|
||||
/*!
|
||||
\fn short MCHR_SetSAWLISmoothing(MCHR_ID SensorID, long iSmoothing)
|
||||
\if FR
|
||||
\brief Fonction permettant de parametrer le lissage du signal en mode ILB (SAWLI).
|
||||
\warning Seulement pour les coffrets ILB (SAWLI).
|
||||
\else
|
||||
\brief Function setting smoothing value in SAWLI mode.
|
||||
\warning Only for SAWLI Controllers.
|
||||
\endif
|
||||
\details
|
||||
\if FR
|
||||
\param [in] MCHR_ID SensorID : ID du coffret.
|
||||
\param [in] long iSmoothing : Largeur du lissage.
|
||||
\return short : un code d'erreur MCHR_ERROR.
|
||||
\else
|
||||
\param [in] MCHR_ID SensorID : ID of the device.
|
||||
\param [in] long iSmoothing : Smoothing width.
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
\endif
|
||||
*/
|
||||
DLL_CHR_API short MCHR_SetSAWLISmoothing(MCHR_ID SensorID, long iSmoothing);
|
||||
|
||||
//These 4 functions helps you define the measurement range
|
||||
// en micron
|
||||
|
||||
/*!
|
||||
\fn short MCHR_GetSAWLIMinThickness(MCHR_ID SensorId, long *piThickness)
|
||||
\if FR
|
||||
\brief Get the minimal value (threshold) of thickness to detect
|
||||
\warning Seulement pour les coffrets ILB (SAWLI).
|
||||
\else
|
||||
\brief Get the minimal value (threshold) of thickness to detect
|
||||
\warning Only for SAWLI Controllers.
|
||||
\endif
|
||||
\details
|
||||
\if FR
|
||||
\param [in] MCHR_ID SensorID: Sensor Identifier
|
||||
\param [in] long piThickness: pointer to the Min thickness threshold.
|
||||
\else
|
||||
\param [in] MCHR_ID SensorID: Sensor Identifier
|
||||
\param [in] long piThickness: pointer to the Min thickness threshold.
|
||||
\endif
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
*/
|
||||
DLL_CHR_API short MCHR_GetSAWLIMinThickness(MCHR_ID SensorID,long *piThickness);
|
||||
|
||||
/*!
|
||||
\fn short MCHR_SetSAWLIMinThickness(MCHR_ID SensorId, long iThickness)
|
||||
\if FR
|
||||
\brief Set the minimal value (threshold) of thickness to detect
|
||||
\warning Seulement pour les coffrets ILB (SAWLI).
|
||||
\else
|
||||
\brief Set the minimal value (threshold) of thickness to detect
|
||||
\warning Only for SAWLI Controllers.
|
||||
\endif
|
||||
\details
|
||||
\if FR
|
||||
\param [in] MCHR_ID SensorID: Sensor Identifier
|
||||
\param [in] long iThickness: Min thickness threshold, in µm.
|
||||
\else
|
||||
\param [in] MCHR_ID SensorID: Sensor Identifier
|
||||
\param [in] long iThickness: Min thickness threshold, in µm.
|
||||
\endif
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
*/
|
||||
DLL_CHR_API short MCHR_SetSAWLIMinThickness(MCHR_ID SensorID, long iThickness);
|
||||
|
||||
/*!
|
||||
\fn short MCHR_GetSAWLIMaxThickness(MCHR_ID SensorId, long *piThickness)
|
||||
\if FR
|
||||
\brief Get the maximal value (threshold) of thickness to detect
|
||||
\warning Seulement pour les coffrets ILB (SAWLI).
|
||||
\else
|
||||
\brief Get the maximal value (threshold) of thickness to detect
|
||||
\warning Only for SAWLI Controllers.
|
||||
\endif
|
||||
\details
|
||||
\if FR
|
||||
\param MCHR_ID SensorID: Sensor Identifier
|
||||
\param long *piThickness: pointer to the Max thickness threshold.
|
||||
\else
|
||||
\param MCHR_ID SensorID: Sensor Identifier
|
||||
\param long *piThickness: pointer to the Max thickness threshold.
|
||||
\endif
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
*/
|
||||
DLL_CHR_API short MCHR_GetSAWLIMaxThickness(MCHR_ID SensorID, long *piThickness);
|
||||
|
||||
/*!
|
||||
\fn short MCHR_SetSAWLIMaxThickness(MCHR_ID SensorId, long iThickness)
|
||||
\if FR
|
||||
\brief Set the maximal value (threshold) of thickness to detect
|
||||
\warning Seulement pour les coffrets ILB (SAWLI).
|
||||
\else
|
||||
\brief Set the maximal value (threshold) of thickness to detect
|
||||
\warning Only for SAWLI Controllers.
|
||||
\endif
|
||||
\details
|
||||
\if FR
|
||||
\param [in] MCHR_ID SensorID: Sensor Identifier
|
||||
\param [in] long iThickness: Max thickness threshold, in µm.
|
||||
\else
|
||||
\param [in] MCHR_ID SensorID: Sensor Identifier
|
||||
\param [in] long iThickness: Max thickness threshold, in µm.
|
||||
\endif
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
|
||||
*/
|
||||
DLL_CHR_API short MCHR_SetSAWLIMaxThickness(MCHR_ID SensorID, long iThickness);
|
||||
|
||||
//Indices de refraction en mode ILB mode
|
||||
//Refractive index used in the SAWLI mode
|
||||
|
||||
/*!
|
||||
\fn short MCHR_GetSAWLIRefractiveIndex(MCHR_ID SensorID,double *dRefractiveIndex);
|
||||
\if FR
|
||||
\brief Obtient l'indidice de refraction en mode interferometrique.
|
||||
\warning Seulement pour les coffrets ILB (SAWLI).
|
||||
\else
|
||||
\brief Get the refractive index in Interferometric mode.
|
||||
\warning Only for SAWLI Controllers.
|
||||
\endif
|
||||
\details
|
||||
\if FR
|
||||
\param [in] MCHR_ID SensorID: Sensor Identifier
|
||||
\param [in] double *dRefractiveIndex : Indice de refraction
|
||||
\else
|
||||
\param [in] MCHR_ID SensorID: Sensor Identifier
|
||||
\param [in] double *dRefractiveIndex : Index of refractive
|
||||
\endif
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
*/
|
||||
DLL_CHR_API short MCHR_GetSAWLIRefractiveIndex(MCHR_ID SensorID,double *dRefractiveIndex);
|
||||
|
||||
/*!
|
||||
\fn short MCHR_SetSAWLIRefractiveIndex(MCHR_ID SensorID,double dRefractiveIndex);
|
||||
\if FR
|
||||
\brief Configure l'indidice de refraction en mode interferometrique.
|
||||
\warning Seulement pour les coffrets ILB (SAWLI).
|
||||
\else
|
||||
\brief Set the refractive index in Interferometric mode.
|
||||
\warning Only for SAWLI Controllers.
|
||||
\endif
|
||||
\details
|
||||
\if FR
|
||||
\param SensorID: Sensor Identifier
|
||||
\param dRefractiveIndex : Indice de refraction
|
||||
\else
|
||||
\param SensorID: Sensor Identifier
|
||||
\param dRefractiveIndex : Index of refractive
|
||||
\endif
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
*/
|
||||
DLL_CHR_API short MCHR_SetSAWLIRefractiveIndex(MCHR_ID SensorID,double dRefractiveIndex);
|
||||
|
||||
/*
|
||||
Fonction d'acquisition d'une sequence de points en mode interferometrique avec capteur MTS-DUO
|
||||
Acquisition function for the Interferometric mode
|
||||
voir le .cpp correspondant pour plus d'info lors de la redaction de la doc
|
||||
*/
|
||||
/*!
|
||||
\fn short MCHR_GetInterferometricThicknessSAWLI ( MCHR_ID SensorID, MCHR_tyAcqParam Parameters,
|
||||
PFLOAT *pArrayThickness1, PFLOAT *pArrayThickness2, PFLOAT *pArrayThickness3,
|
||||
PFLOAT *pArrayQuality1, PFLOAT *pArrayQuality2, PFLOAT *pArrayQuality3,
|
||||
PFLOAT *pArrayIntensity,PFLOAT *pNbThickness,PFLOAT *pCounter,PFLOAT *pState);
|
||||
\if FR
|
||||
\brief Acquisition function for the Specral Interferometric (SAWLI) Thickness mode.<br>
|
||||
\brief Note: in Distance mode set the number of layer to 1, and the refractive index to 1.0.<br>
|
||||
\brief The Distance Data may be comuted from the air gap thickness using the following raelation:<br>
|
||||
\brief Distance = 160µm ?Thickness1.
|
||||
\warning Seulement pour les coffrets ILB (SAWLI).
|
||||
\else
|
||||
\brief Acquisition function for the Specral Interferometric (SAWLI) Thickness mode.<br>
|
||||
\brief Note: in Distance mode set the number of layer to 1, and the refractive index to 1.0.<br>
|
||||
\brief The Distance Data may be comuted from the air gap thickness using the following raelation:<br>
|
||||
\brief Distance = 160µm ?Thickness1.
|
||||
\brief This function is destined to STIL-DUO in the interferometric mode
|
||||
\warning Only for SAWLI Controllers.
|
||||
\endif
|
||||
\details
|
||||
\if FR
|
||||
\param SensorID: Sensor Identifier
|
||||
\param iThickness: Max thickness threshold, in µm.
|
||||
\else
|
||||
\param SensorID : Sensor Identifier
|
||||
\param pThickness1 : a pointer to the Thickness1 data buffers.
|
||||
\param pThickness2 : a pointer to the Thickness2 data buffers.
|
||||
\param pThickness3 : a pointer to the Thickness3 data buffers
|
||||
\param pQuality1 : a pointer to the Quality1 data buffers
|
||||
\param pQuality2 : a pointer to the Quality2 data buffers
|
||||
\param pQuality3 : a pointer to the Quality3 data buffers
|
||||
\param pIntensity : a pointer to the Intensity data buffers
|
||||
\param pNbThickness : a pointer to the Number Of Thicknesses data Buffers
|
||||
\param pCounter : a pointer to the Counter data Buffers
|
||||
\param pState : a pointer to the State Data buffer
|
||||
\endif
|
||||
\if FR
|
||||
\par Capteurs Compatibles : STIL DUO en mode de mesure SAWLI interfermotric.
|
||||
\else
|
||||
\par Compatibles Sensors : STIL DUO in the SAWLI interfermotric measuring modes.
|
||||
\endif
|
||||
\return short : A \link MCHR_ERROR MCHR_ERROR \endlink code.
|
||||
*/
|
||||
DLL_CHR_API short MCHR_GetInterferometricThicknessSAWLI (MCHR_ID SensorID, MCHR_tyAcqParam Parameters,
|
||||
PFLOAT *pArrayThickness1, PFLOAT *pArrayThickness2, PFLOAT *pArrayThickness3,
|
||||
PFLOAT *pArrayQuality1, PFLOAT *pArrayQuality2, PFLOAT *pArrayQuality3,
|
||||
PFLOAT *pArrayIntensity,PFLOAT *pNbThickness,PFLOAT *pCounter,PFLOAT *pState);
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,86 @@
|
||||
#if !defined(AFX_ACQUISITION_EASY_H_INCLUDED_)
|
||||
#define AFX_ACQUISITION_EASY_H_INCLUDED_
|
||||
|
||||
#include "afxmt.h"
|
||||
#include "windows.h"
|
||||
#include "MchrType.h"
|
||||
#include "MchrDefine.h"
|
||||
#include "MchrError.h"
|
||||
#include "Mchr.h"
|
||||
#include "cAcqEasyType.h"
|
||||
|
||||
class cAcqEasy
|
||||
{
|
||||
private:
|
||||
HANDLE hThread;
|
||||
static DWORD WINAPI ProcessThread (LPVOID lpArg);
|
||||
DWORD ProcessThread(void);
|
||||
HANDLE m_OnEvent[EVENT_ACQ_EASY_NUMBER];
|
||||
HANDLE m_OnEventAcquisition[EVENT_ACQUISITION_NUMBER];
|
||||
MCHR_tyAcqParam m_acqParam;
|
||||
sAcqEasyParam m_acqEasyParam;
|
||||
bool m_IsDataAcquisitionStarting;
|
||||
bool m_IsSpectrumAcquisitionStarting;
|
||||
MCHR_ID m_chr_id;
|
||||
short m_status_acquisition;
|
||||
char m_status_message[MAX_CHAR];
|
||||
int m_number_of_buffer_to_read;
|
||||
int m_current_index_of_buffer_to_read;
|
||||
long m_measure_index;
|
||||
HANDLE m_end_acq_event;
|
||||
HANDLE m_status_event;
|
||||
float **m_ppAcqBuffer[ID_BUFFER_MAX]; //data buffers
|
||||
DWORD **m_ppEncoderBuffer[ID_BUFFER_ENCODER_MAX]; //encoders buffers
|
||||
float **m_ppAutoAdaptativeBuffer; //auto adaptative buffers
|
||||
bool m_IsCreateAcqBuffer;
|
||||
|
||||
CCriticalSection criticalBuffer;
|
||||
|
||||
void _CreateAcqBuffer(int NumberOfBuffers, int BufferLength);
|
||||
void _ReleaseAcqBuffer(int NumberOfBuffers);
|
||||
|
||||
//try to determine and set the sensor mode and digital output
|
||||
bool _SetSensorModeAndDigitalOutput(sAcqEasyParam *pAcqEasyParam);
|
||||
|
||||
public:
|
||||
cAcqEasy(MCHR_ID SensorID);
|
||||
~cAcqEasy();
|
||||
|
||||
//start spectrum acquisition
|
||||
bool StartSpectrumAcquisition(unsigned short **ppSpectrum, unsigned short *pFirstUsablePixel, unsigned short *pBufferSize);
|
||||
//stop spectrum acquisition
|
||||
bool StopSpectrumAcquisition(unsigned short **ppSpectrum);
|
||||
//read spectrum acquisition
|
||||
bool GetSpectrumAcquisition(unsigned short *pSpectrum, unsigned short DataSize, unsigned short *pCounter, enSpectrumAcquisitionResult *pSpectrumAcquisitionResult, int timeout);
|
||||
|
||||
|
||||
//start acquisition with acquisition parameters
|
||||
bool StartAcquisition(sAcqEasyParam acqEasyParam);
|
||||
//stop acquisition
|
||||
bool StopAcquisition();
|
||||
//select your own acquisition event
|
||||
void SetAcqEvent(HANDLE endAcqEvent) { m_end_acq_event = endAcqEvent; };
|
||||
//select your own status event
|
||||
void SetStatusEvent(HANDLE statusEvent) { m_status_event = statusEvent; };
|
||||
|
||||
void SetSensorId(MCHR_ID Id) { m_chr_id = Id; }
|
||||
MCHR_ID GetSensorId(void) { return (m_chr_id); }
|
||||
bool GetAltitudeAcquisitionData(PFLOAT pArrayAltitude, PFLOAT pArrayIntensity, PFLOAT pArrayCounter, PFLOAT pArrayBarycenter, PFLOAT pArrayStatus, int* pCount);
|
||||
bool GetThicknessAcquisitionData(PFLOAT pArrayThickness, PFLOAT pArrayDistance1, PFLOAT pArrayIntensity1, PFLOAT pArrayBarycenter1, PFLOAT pArrayDistance2, PFLOAT pArrayIntensity2, PFLOAT pArrayBarycenter2, PFLOAT pArrayStatus, PFLOAT pArrayCounter, int* pDataCount);
|
||||
bool GetDepthAcquisitionData(PFLOAT pArrayDepth, PFLOAT pArrayIntensity, PFLOAT pArrayCounter, PFLOAT pArrayBarycenter, PFLOAT pArrayStatus, int* pDataCount);
|
||||
bool GetInterferometricThicknessAcquisitionData(PFLOAT pArrayThickness1, PFLOAT pArrayThickness2, PFLOAT pArrayThickness3, PFLOAT pArrayQuality1, PFLOAT pArrayQuality2, PFLOAT pArrayQuality3, PFLOAT pArrayIntensity, int* pDataCount);
|
||||
bool GetInterferometricThicknessSAWLIAcquisitionData(PFLOAT pArrayThickness1, PFLOAT pArrayThickness2, PFLOAT pArrayThickness3, PFLOAT pArrayQuality1, PFLOAT pArrayQuality2, PFLOAT pArrayQuality3, PFLOAT pArrayIntensity, PFLOAT pArrayThickness, PFLOAT pArrayCounter, PFLOAT pArrayStatus, int* pDataCount);
|
||||
bool GetEncoderData(PDWORD pArrayEncoder1, PDWORD pArrayEncoder2, PDWORD pArrayEncoder3);
|
||||
bool GetAutoAdaptativeData(PFLOAT pArrayAutoAdaptative);
|
||||
bool GetTransmittedData_ChrDistance(PFLOAT pArrayDistance, PFLOAT pArrayIntensity, PFLOAT pArrayBarycenter, int* pDataCount);
|
||||
bool GetTransmittedData_ChrThickness(PFLOAT pArrayThickness, PFLOAT pArrayDistance1, PFLOAT pArrayDistance2, PFLOAT pArrayIntensity1, PFLOAT pArrayIntensity2, PFLOAT pArrayBarycenter1, PFLOAT pArrayBarycenter2, int* pDataCount);
|
||||
bool GetTransmittedData_CcsDistance(PFLOAT pArrayDistance, PFLOAT pArrayAutoAdaptativeModeData, PFLOAT pArrayIntensity, PFLOAT pArrayBarycenter, PFLOAT pArrayStatus, PFLOAT pArrayCounter, PDWORD pArrayEncoder1, PDWORD pArrayEncoder2, PDWORD pArrayEncoder3, int* pDataCount);
|
||||
bool GetTransmittedData_CcsThickness(PFLOAT pArrayThickness, PFLOAT pArrayDistance1, PFLOAT pArrayDistance2, PFLOAT pArrayAutoAdaptativeModeData, PFLOAT pArrayIntensity1, PFLOAT pArrayIntensity2, PFLOAT pArrayBaryCenter1, PFLOAT pArrayBaryCenter2, PFLOAT pArrayStatus, PFLOAT pArrayCounter, PDWORD pArrayEncoder1, PDWORD pArrayEncoder2, PDWORD pArrayEncoder3, int* pDataCount);
|
||||
bool GetTransmittedData_DuoDistance(PFLOAT pArrayDistance, PFLOAT pArrayIntensity, PFLOAT pArrayCounter, PFLOAT pArrayBarycenter, PFLOAT pArrayStatus, int* pDataCount);
|
||||
bool GetTransmittedData_DuoThickness(PFLOAT pArrayThickness, PFLOAT pArrayDistance1, PFLOAT pArrayDistance2, PFLOAT pArrayCounter, PFLOAT pArrayIntensity1, PFLOAT pArrayIntensity2, PFLOAT pArrayBaryCenter1, PFLOAT pArrayBaryCenter2, PFLOAT pArrayStatus, int* pDataCount);
|
||||
bool GetTransmittedData_DuoSawliDistance(PFLOAT pArrayDistance, PFLOAT pArrayQuality, PFLOAT pArrayIntensity, PFLOAT pArrayCounter, PFLOAT pArrayStatus, int* pDataCount);
|
||||
bool GetTransmittedData_DuoSawliThickness(PFLOAT pArrayThickness1, PFLOAT pArrayThickness2, PFLOAT pArrayThickness3, PFLOAT pArrayQuality1, PFLOAT pArrayQuality2, PFLOAT pArrayQuality3, PFLOAT pArrayIntensity, PFLOAT pArrayNbThickness, PFLOAT pArrayCounter, PFLOAT pArrayStatus, int* pDataCount);
|
||||
short GetStatusAcquisition(char *pMessage);
|
||||
};
|
||||
|
||||
#endif //AFX_ACQUISITION_EASY_H_INCLUDED_
|
||||
@@ -0,0 +1,402 @@
|
||||
#if !defined(AFX_ACQUISITION_EASY_TYPE_H_INCLUDED_)
|
||||
#define AFX_ACQUISITION_EASY_TYPE_H_INCLUDED_
|
||||
|
||||
#include "afxmt.h"
|
||||
|
||||
#define MAX_CHAR 256
|
||||
|
||||
//do not change the order of data
|
||||
#define EVENT_ACQ_EASY_KILL_THREAD 0
|
||||
#define EVENT_ACQ_EASY_KILL_THREAD_DO 1
|
||||
#define EVENT_ACQ_EASY_NUMBER 2
|
||||
|
||||
//do not change the order of data
|
||||
#define EVENT_ACQUIRE_N_POINTS 0
|
||||
#define EVENT_END_BUFFER 1
|
||||
#define EVENT_END_MEASUREMENT 2
|
||||
#define EVENT_END_ACQUIRE 3
|
||||
#define EVENT_STARTING_ACQUISITION 4
|
||||
#define EVENT_ACQUISITION_NUMBER 5
|
||||
|
||||
//do not change the order of data
|
||||
//for eMCHR_GetThicknessMeasurement
|
||||
#define ID_BUFFER_THICKNESS_THICKNESS 0
|
||||
#define ID_BUFFER_THICKNESS_DISTANCE1 1
|
||||
#define ID_BUFFER_THICKNESS_DISTANCE2 2
|
||||
#define ID_BUFFER_THICKNESS_INTENSITY1 3
|
||||
#define ID_BUFFER_THICKNESS_INTENSITY2 4
|
||||
#define ID_BUFFER_THICKNESS_BARYCENTER1 5
|
||||
#define ID_BUFFER_THICKNESS_BARYCENTER2 6
|
||||
#define ID_BUFFER_THICKNESS_STATUS 7
|
||||
#define ID_BUFFER_THICKNESS_COUNTER 8
|
||||
#define ID_BUFFER_THICKNESS_MEASUREMENT_MAX 9 //number of max buffers for MCHR_GetThicknessMeasurement
|
||||
|
||||
//for eMCHR_GetAltitudeMeasurement
|
||||
#define ID_BUFFER_ALTITUDE_ALTITUDE 0
|
||||
#define ID_BUFFER_ALTITUDE_INTENSITY 1
|
||||
#define ID_BUFFER_ALTITUDE_COUNTER 2
|
||||
#define ID_BUFFER_ALTITUDE_BARYCENTER 3
|
||||
#define ID_BUFFER_ALTITUDE_STATUS 4
|
||||
#define ID_BUFFER_ALTITUDE_MEASUREMENT_MAX 5 //number of max buffers for MCHR_GetAltitudeMeasurement
|
||||
|
||||
//for eMCHR_GetDepthMeasurement
|
||||
#define ID_BUFFER_DEPTH_DEPTH 0
|
||||
#define ID_BUFFER_DEPTH_INTENSITY 1
|
||||
#define ID_BUFFER_DEPTH_COUNTER 2
|
||||
#define ID_BUFFER_DEPTH_BARYCENTER 3
|
||||
#define ID_BUFFER_DEPTH_STATUS 4
|
||||
#define ID_BUFFER_DEPTH_MEASUREMENT_MAX 5 //number of max buffers for MCHR_GetDepthMeasurement
|
||||
|
||||
//for eMCHR_GetTransmittedDataMeasurement
|
||||
#define ID_BUFFER_CHR_DISTANCE_DISTANCE 0
|
||||
#define ID_BUFFER_CHR_DISTANCE_INTENSITY 3
|
||||
#define ID_BUFFER_CHR_DISTANCE_COUNTER 5
|
||||
#define ID_BUFFER_CHR_DISTANCE_BARYCENTER 6
|
||||
#define ID_BUFFER_CHR_DISTANCE_STATUS 7
|
||||
#define ID_BUFFER_CHR_DISTANCE_MEASUREMENT_MAX 8
|
||||
|
||||
#define ID_BUFFER_CHR_THICKNESS_THICKNESS 0
|
||||
#define ID_BUFFER_CHR_THICKNESS_DISTANCE1 1
|
||||
#define ID_BUFFER_CHR_THICKNESS_DISTANCE2 2
|
||||
#define ID_BUFFER_CHR_THICKNESS_STATUS 3
|
||||
#define ID_BUFFER_CHR_THICKNESS_INTENSITY1 4
|
||||
#define ID_BUFFER_CHR_THICKNESS_INTENSITY2 5
|
||||
#define ID_BUFFER_CHR_THICKNESS_BARYCENTER1 6
|
||||
#define ID_BUFFER_CHR_THICKNESS_BARYCENTER2 7
|
||||
#define ID_BUFFER_CHR_THICKNESS_MEASUREMENT_MAX 8
|
||||
|
||||
#define ID_BUFFER_CCS_DISTANCE_DISTANCE_MSB 0
|
||||
#define ID_BUFFER_CCS_DISTANCE_DISTANCE_LSB 1
|
||||
#define ID_BUFFER_CCS_DISTANCE_AUTO_ADAPTATIVE_MODE 2
|
||||
#define ID_BUFFER_CCS_DISTANCE_INTENSITY 3
|
||||
#define ID_BUFFER_CCS_DISTANCE_BARYCENTER 6
|
||||
#define ID_BUFFER_CCS_DISTANCE_STATUS 8
|
||||
#define ID_BUFFER_CCS_DISTANCE_COUNTER 9
|
||||
#define ID_BUFFER_CCS_DISTANCE_ENCODER1_MSB 10
|
||||
#define ID_BUFFER_CCS_DISTANCE_ENCODER1_LSB 11
|
||||
#define ID_BUFFER_CCS_DISTANCE_ENCODER2_MSB 12
|
||||
#define ID_BUFFER_CCS_DISTANCE_ENCODER2_LSB 13
|
||||
#define ID_BUFFER_CCS_DISTANCE_ENCODER3_MSB 14
|
||||
#define ID_BUFFER_CCS_DISTANCE_ENCODER3_LSB 15
|
||||
#define ID_BUFFER_CCS_DISTANCE_MEASUREMENT_MAX 16
|
||||
|
||||
#define ID_BUFFER_CCS_THICKNESS_THICKNESS 0
|
||||
#define ID_BUFFER_CCS_THICKNESS_DISTANCE1 1
|
||||
#define ID_BUFFER_CCS_THICKNESS_DISTANCE2 2
|
||||
#define ID_BUFFER_CCS_THICKNESS_AUTO_ADAPTATIVE_MODE 3
|
||||
#define ID_BUFFER_CCS_THICKNESS_INTENSITY1 4
|
||||
#define ID_BUFFER_CCS_THICKNESS_INTENSITY2 5
|
||||
#define ID_BUFFER_CCS_THICKNESS_BARYCENTER1 6
|
||||
#define ID_BUFFER_CCS_THICKNESS_BARYCENTER2 7
|
||||
#define ID_BUFFER_CCS_THICKNESS_STATUS 8
|
||||
#define ID_BUFFER_CCS_THICKNESS_COUNTER 9
|
||||
#define ID_BUFFER_CCS_THICKNESS_ENCODER1_MSB 10
|
||||
#define ID_BUFFER_CCS_THICKNESS_ENCODER1_LSB 11
|
||||
#define ID_BUFFER_CCS_THICKNESS_ENCODER2_MSB 12
|
||||
#define ID_BUFFER_CCS_THICKNESS_ENCODER2_LSB 13
|
||||
#define ID_BUFFER_CCS_THICKNESS_ENCODER3_MSB 14
|
||||
#define ID_BUFFER_CCS_THICKNESS_ENCODER3_LSB 15
|
||||
#define ID_BUFFER_CCS_THICKNESS_MEASUREMENT_MAX 16
|
||||
|
||||
#define ID_BUFFER_DUO_DISTANCE_DISTANCE_MSB 0
|
||||
#define ID_BUFFER_DUO_DISTANCE_DISTANCE_LSB 1
|
||||
#define ID_BUFFER_DUO_DISTANCE_INTENSITY 3
|
||||
#define ID_BUFFER_DUO_DISTANCE_COUNTER 5
|
||||
#define ID_BUFFER_DUO_DISTANCE_BARYCENTER 6
|
||||
#define ID_BUFFER_DUO_DISTANCE_STATUS 9
|
||||
#define ID_BUFFER_DUO_DISTANCE_MEASUREMENT_MAX 10
|
||||
|
||||
#define ID_BUFFER_DUO_THICKNESS_THICKNESS 0
|
||||
#define ID_BUFFER_DUO_THICKNESS_DISTANCE1 1
|
||||
#define ID_BUFFER_DUO_THICKNESS_DISTANCE2 2
|
||||
#define ID_BUFFER_DUO_THICKNESS_COUNTER 3
|
||||
#define ID_BUFFER_DUO_THICKNESS_INTENSITY1 4
|
||||
#define ID_BUFFER_DUO_THICKNESS_INTENSITY2 5
|
||||
#define ID_BUFFER_DUO_THICKNESS_BARYCENTER1 6
|
||||
#define ID_BUFFER_DUO_THICKNESS_BARYCENTER2 7
|
||||
#define ID_BUFFER_DUO_THICKNESS_STATUS 9
|
||||
#define ID_BUFFER_DUO_THICKNESS_MEASUREMENT_MAX 10
|
||||
|
||||
#define ID_BUFFER_DUO_SAWLI_DISTANCE_DISTANCE_MSB 0
|
||||
#define ID_BUFFER_DUO_SAWLI_DISTANCE_DISTANCE_LSB 1
|
||||
#define ID_BUFFER_DUO_SAWLI_DISTANCE_QUALITY 6
|
||||
#define ID_BUFFER_DUO_SAWLI_DISTANCE_INTENSITY 9
|
||||
#define ID_BUFFER_DUO_SAWLI_DISTANCE_COUNTER 11
|
||||
#define ID_BUFFER_DUO_SAWLI_DISTANCE_STATUS 15
|
||||
#define ID_BUFFER_DUO_SAWLI_DISTANCE_MEASUREMENT_MAX 16
|
||||
|
||||
#define ID_BUFFER_DUO_SAWLI_THICKNESS_THICKNESS1_MSB 0
|
||||
#define ID_BUFFER_DUO_SAWLI_THICKNESS_THICKNESS1_LSB 1
|
||||
#define ID_BUFFER_DUO_SAWLI_THICKNESS_THICKNESS2_MSB 2
|
||||
#define ID_BUFFER_DUO_SAWLI_THICKNESS_THICKNESS2_LSB 3
|
||||
#define ID_BUFFER_DUO_SAWLI_THICKNESS_THICKNESS3_MSB 4
|
||||
#define ID_BUFFER_DUO_SAWLI_THICKNESS_THICKNESS3_LSB 5
|
||||
#define ID_BUFFER_DUO_SAWLI_THICKNESS_QUALITY1 6
|
||||
#define ID_BUFFER_DUO_SAWLI_THICKNESS_QUALITY2 7
|
||||
#define ID_BUFFER_DUO_SAWLI_THICKNESS_QUALITY3 8
|
||||
#define ID_BUFFER_DUO_SAWLI_THICKNESS_INTENSITY 9
|
||||
#define ID_BUFFER_DUO_SAWLI_THICKNESS_NB_THICKNESS 10
|
||||
#define ID_BUFFER_DUO_SAWLI_THICKNESS_COUNTER 11
|
||||
#define ID_BUFFER_DUO_SAWLI_THICKNESS_STATUS 15
|
||||
#define ID_BUFFER_DUO_SAWLI_THICKNESS_MEASUREMENT_MAX 16
|
||||
|
||||
#define ID_BUFFER_INTERFEROMETRIC_THICKNESS_SAWLI_THICKNESS1 0
|
||||
#define ID_BUFFER_INTERFEROMETRIC_THICKNESS_SAWLI_THICKNESS2 1
|
||||
#define ID_BUFFER_INTERFEROMETRIC_THICKNESS_SAWLI_THICKNESS3 2
|
||||
#define ID_BUFFER_INTERFEROMETRIC_THICKNESS_SAWLI_QUALITY1 4
|
||||
#define ID_BUFFER_INTERFEROMETRIC_THICKNESS_SAWLI_QUALITY2 5
|
||||
#define ID_BUFFER_INTERFEROMETRIC_THICKNESS_SAWLI_QUALITY3 6
|
||||
#define ID_BUFFER_INTERFEROMETRIC_THICKNESS_SAWLI_INTENSITY 7
|
||||
#define ID_BUFFER_INTERFEROMETRIC_THICKNESS_SAWLI_THICKNESS 8
|
||||
#define ID_BUFFER_INTERFEROMETRIC_THICKNESS_SAWLI_COUNTER 9
|
||||
#define ID_BUFFER_INTERFEROMETRIC_THICKNESS_SAWLI_STATUS 10
|
||||
#define ID_BUFFER_INTERFEROMETRIC_THICKNESS_SAWLI_MEASUREMENT_MAX 11
|
||||
|
||||
#define ID_BUFFER_INTERFEROMETRIC_THICKNESS_THICKNESS1 0
|
||||
#define ID_BUFFER_INTERFEROMETRIC_THICKNESS_THICKNESS2 1
|
||||
#define ID_BUFFER_INTERFEROMETRIC_THICKNESS_THICKNESS3 2
|
||||
#define ID_BUFFER_INTERFEROMETRIC_THICKNESS_QUALITY1 3
|
||||
#define ID_BUFFER_INTERFEROMETRIC_THICKNESS_QUALITY2 4
|
||||
#define ID_BUFFER_INTERFEROMETRIC_THICKNESS_QUALITY3 5
|
||||
#define ID_BUFFER_INTERFEROMETRIC_THICKNESS_INTENSITY 6
|
||||
#define ID_BUFFER_INTERFEROMETRIC_THICKNESS_MEASUREMENT_MAX 7
|
||||
|
||||
|
||||
//for (MCHR_SetEncoderBuffer)
|
||||
#define ID_BUFFER_ENCODER_1 0
|
||||
#define ID_BUFFER_ENCODER_2 1
|
||||
#define ID_BUFFER_ENCODER_3 2
|
||||
#define ID_BUFFER_ENCODER_MAX 3 //number of total buffers for each encoder
|
||||
|
||||
#define ID_BUFFER_MAX 16 //number of total buffers for each acquisition function
|
||||
#define MAX_BUFFER_NUMBER 5000 //number of max buffer number
|
||||
|
||||
#define STATUS_NO_ERROR 0
|
||||
#define STATUS_TIMEOUT_ERROR 1
|
||||
#define STATUS_PARAM_ERROR 2
|
||||
#define STATUS_ACQ_ERROR 3
|
||||
#define STATUS_EVENT_ERROR 4
|
||||
#define STATUS_NO_DATA 5
|
||||
#define STATUS_MCHR_FUNCTION 6
|
||||
|
||||
enum eAcqEasyFunc{eMCHR_GetThicknessMeasurement, eMCHR_GetAltitudeMeasurement, eMCHR_GetDepthMeasurement, eMCHR_GetTransmittedDataMeasurement, eMCHR_GetInterferometricThickness, eMCHR_GetInterferometricThicknessSAWLI};
|
||||
|
||||
typedef struct
|
||||
{
|
||||
bool Thickness; //Enabled the acquisition Thickness
|
||||
bool Distance1; //Enabled the acquisition Distance 1
|
||||
bool Distance2; //Enabled the acquisition Distance 2
|
||||
bool Intensity1; //Enabled the acquisition Intensity 1
|
||||
bool Intensity2; //Enabled the acquisition Intensity 2
|
||||
bool BaryCenter1; //Enabled the acquisition BaryCenter 1
|
||||
bool BaryCenter2; //Enabled the acquisition BaryCenter 2
|
||||
bool Status; //Enabled the acquisition Status
|
||||
bool Counter; //Enabled the acquisition Counter
|
||||
} sEnableBufferThickness;
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
bool Altitude; //Enabled the acquisition Altitude
|
||||
bool Intensity; //Enabled the acquisition Intensity
|
||||
bool Counter; //Enabled the acquisition Counter
|
||||
bool BaryCenter; //Enabled the acquisition BaryCenter
|
||||
bool Status; //Enabled the acquisition Status
|
||||
} sEnableBufferAltitude;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
bool Depth; //Enabled the acquisition Depth
|
||||
bool Intensity; //Enabled the acquisition Intensity
|
||||
bool Counter; //Enabled the acquisition Counter
|
||||
bool BaryCenter; //Enabled the acquisition BaryCenter
|
||||
bool Status; //Enabled the acquisition Status
|
||||
} sEnableBufferDepth;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
bool Distance; //Enabled the acquisition Distance
|
||||
bool Intensity; //Enabled the acquisition Intensity
|
||||
bool Counter; //Enabled the acquisition Counter
|
||||
bool BaryCenter; //Enabled the acquisition BaryCenter
|
||||
bool Status; //Enabled the acquisition Status
|
||||
} sChrDistance;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
bool Thickness; //Enabled the acquisition Thickness
|
||||
bool Distance1; //Enabled the acquisition Distance1
|
||||
bool Distance2; //Enabled the acquisition Distance2
|
||||
bool Status; //Enabled the acquisition Status
|
||||
bool Intensity1; //Enabled the acquisition Intensity1
|
||||
bool Intensity2; //Enabled the acquisition Intensity2
|
||||
bool BaryCenter1; //Enabled the acquisition Barycenter1
|
||||
bool BaryCenter2; //Enabled the acquisition Barycenter2
|
||||
} sChrThickness;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
bool Distance; //Enabled the acquisition Distance
|
||||
bool AutoAdaptativeModeData; //Enabled the acquisition AutoAdaptativeModeData
|
||||
bool Intensity; //Enabled the acquisition Intensity
|
||||
bool BaryCenter; //Enabled the acquisition Barycenter
|
||||
bool Status; //Enabled the acquisition Status
|
||||
bool Counter; //Enabled the acquisition Counter
|
||||
bool Encoder1; //Enabled the acquisition Encoder1
|
||||
bool Encoder2; //Enabled the acquisition Encoder2
|
||||
bool Encoder3; //Enabled the acquisition Encoder3
|
||||
} sCcsDistance;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
bool Thickness; //Enabled the acquisition Thickness
|
||||
bool Distance1; //Enabled the acquisition Distance1
|
||||
bool Distance2; //Enabled the acquisition Distance2
|
||||
bool AutoAdaptativeModeData; //Enabled the acquisition AutoAdaptativeModeData
|
||||
bool Intensity1; //Enabled the acquisition Intensity1
|
||||
bool Intensity2; //Enabled the acquisition Intensity2
|
||||
bool BaryCenter1; //Enabled the acquisition Barycenter1
|
||||
bool BaryCenter2; //Enabled the acquisition Barycenter2
|
||||
bool Status; //Enabled the acquisition Status
|
||||
bool Counter; //Enabled the acquisition Counter
|
||||
bool Encoder1; //Enabled the acquisition Encoder1
|
||||
bool Encoder2; //Enabled the acquisition Encoder2
|
||||
bool Encoder3; //Enabled the acquisition Encoder3
|
||||
} sCcsThickness;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
bool Distance; //Enabled the acquisition Distance
|
||||
bool Intensity; //Enabled the acquisition Intensity
|
||||
bool Counter; //Enabled the acquisition Counter
|
||||
bool BaryCenter; //Enabled the acquisition Barycenter
|
||||
bool Status; //Enabled the acquisition Status
|
||||
} sDuoDistance;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
bool Thickness; //Enabled the acquisition Thickness
|
||||
bool Distance1; //Enabled the acquisition Distance1
|
||||
bool Distance2; //Enabled the acquisition Distance2
|
||||
bool Counter; //Enabled the acquisition Counter
|
||||
bool Intensity1; //Enabled the acquisition Intensity1
|
||||
bool Intensity2; //Enabled the acquisition Intensity2
|
||||
bool BaryCenter1; //Enabled the acquisition Barycenter1
|
||||
bool BaryCenter2; //Enabled the acquisition Barycenter2
|
||||
bool Status; //Enabled the acquisition Status
|
||||
} sDuoThickness;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
bool Distance; //Enabled the acquisition Distance
|
||||
bool Quality; //Enabled the acquisition Quality
|
||||
bool Intensity; //Enabled the acquisition Intensity
|
||||
bool Counter; //Enabled the acquisition Counter
|
||||
bool Status; //Enabled the acquisition Status
|
||||
} sDuoSawliDistance;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
bool Thickness1; //Enabled the acquisition Thickness1
|
||||
bool Thickness2; //Enabled the acquisition Thickness2
|
||||
bool Thickness3; //Enabled the acquisition Thickness3
|
||||
bool Quality1; //Enabled the acquisition Quality1
|
||||
bool Quality2; //Enabled the acquisition Quality2
|
||||
bool Quality3; //Enabled the acquisition Quality3
|
||||
bool Intensity; //Enabled the acquisition Intensity
|
||||
bool NbThickness; //Enabled the acquisition NbThickness
|
||||
bool Counter; //Enabled the acquisition Counter
|
||||
bool Status; //Enabled the acquisition Status
|
||||
} sDuoSawliThickness;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
bool Thickness1;
|
||||
bool Thickness2;
|
||||
bool Thickness3;
|
||||
bool Quality1;
|
||||
bool Quality2;
|
||||
bool Quality3;
|
||||
bool Intensity;
|
||||
} sEnableBufferInterferometricThickness;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
bool Thickness1;
|
||||
bool Thickness2;
|
||||
bool Thickness3;
|
||||
bool Quality1;
|
||||
bool Quality2;
|
||||
bool Quality3;
|
||||
bool Intensity;
|
||||
bool Thickness;
|
||||
bool Status;
|
||||
bool Counter;
|
||||
} sEnableBufferInterferometricThicknessSAWLI;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
sChrDistance ChrDistance; //Enabled the acquisition ChrDistance
|
||||
sChrThickness ChrThickness; //Enabled the acquisition ChrThickness
|
||||
sCcsDistance CcsDistance; //Enabled the acquisition CcsDistance
|
||||
sCcsThickness CcsThickness; //Enabled the acquisition CcsThickness
|
||||
sDuoDistance DuoDistance; //Enabled the acquisition DuoDistance
|
||||
sDuoThickness DuoThickness; //Enabled the acquisition DuoThickness
|
||||
sDuoSawliDistance DuoSawliDistance; //Enabled the acquisition DuoSawliDistance
|
||||
sDuoSawliThickness DuoSawliThickness; //Enabled the acquisition DuoSawliThickness
|
||||
} sEnableBufferTransmittedData;
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
bool Encoder1; //Enabled the acquisition Encoder 1
|
||||
bool Encoder2; //Enabled the acquisition Encoder 2
|
||||
bool Encoder3; //Enabled the acquisition Encoder 3
|
||||
} sEnableBufferEncoder;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
bool Enable; //This parameter activates or deactivates Trigger mode (if Trigger mode is active acquisition will wait for a "Trigger in" signal to start, otherwise acquisition starts immediately).
|
||||
enTriggerType Type; //This parameter indicates the trigger mode (TRG /TRE/TRN/ TRS)
|
||||
enLevelEdgeFlag Level; //This parameter is significant only if TriggerFlag is set to “TRUE?and only for CCS and STIL-INITIAL sensors. It indicates which edge of the Sync-In signal pulse is active (for TRG, TRE, and TRS) or which state of this signal is active (for TRN). Authorized values are: MCHR_FALLING_EDGE, MCHR_RISING_EDGE, MCHR_LOW_LEVEL, MCHR_HIGH_LEVEL.
|
||||
} sTriggerParameters;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
//if the user wants to wait for an event type "EventEndBuffer"
|
||||
EV_END_BUFFER = 0,
|
||||
//if the user wants to wait for an event type "EventAcquire_n_Points"
|
||||
EV_ACQUIRE_N_POINTS,
|
||||
//if the user wants to wait for an event type "EventEndMeasurements"
|
||||
EV_END_MEASUREMENTS,
|
||||
//if the user wants to wait for an event type "EventEndAcquire"
|
||||
EV_END_ACQUIRE
|
||||
} evTypeEvents;
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
eAcqEasyFunc typeAcquisition; //type of function to use
|
||||
sEnableBufferThickness EnableBufferThickness; //Enabled the acquisition Thickness (eMCHR_GetThicknessMeasurement)
|
||||
sEnableBufferAltitude EnableBufferAltitude; //Enabled the acquisition Altitude (eMCHR_GetAltitudeMeasurement)
|
||||
sEnableBufferDepth EnableBufferDepth; //Enabled the acquisition Depth (eMCHR_GetDepthMeasurement)
|
||||
sEnableBufferTransmittedData EnableBufferTransmittedData; //Enabled the acquisition TransmittedData (eMCHR_GetTransmittedDataMeasurement)
|
||||
sEnableBufferEncoder EnableBufferEncoder; //Enabled the acquisition Encoder
|
||||
sEnableBufferInterferometricThickness EnableBufferInterferometricThickness; //Enabled the acquisition InterferometricThickness
|
||||
sEnableBufferInterferometricThicknessSAWLI EnableBufferInterferometricThicknessSAWLI; //Enabled the acquisition InterferometricThicknessSAWLI
|
||||
bool EnableBufferAutoAdaptive; //Enabled the acquisition AutoAdaptive
|
||||
WORD NumberOfBuffers; //The number of buffers per data type for receiving the measured data (Should be greater than or equal to 1).
|
||||
DWORD BufferLength; //Size of the buffers for receiving the measured data (in words: one word=data for one measured point)
|
||||
WORD TimeoutAcquisition; //timeout for acquisition delay in ms
|
||||
DWORD NumberOfPoints; //Number of point to measure. If this parameters is set to 0, measurement will be continuous (i.e. will last forever or until stopped by the user) and no event " EventEndMeasurement" will be generated
|
||||
DWORD NumberPointsTRE; //Number of points for TRE mode: This parameter indicates the number of points to acquire after each Sync-in pulse.
|
||||
enChrType SensorType; //Controller types(MCHR_CCS_PRIMA, MCHR_DUO, ...) used only for eMCHR_GetTransmittedDataMeasurement
|
||||
enMeasureMode SensorMode; //Measuring modes(MCHR_DISTANCE_MODE, MCHR_THICKNESS_MODE, ...) used only for eMCHR_GetTransmittedDataMeasurement
|
||||
evTypeEvents TypeEvent; //The event that the user wants to wait.
|
||||
sTriggerParameters Trigger;
|
||||
unsigned short Frequency;
|
||||
} sAcqEasyParam;
|
||||
|
||||
|
||||
|
||||
#endif //AFX_ACQUISITION_EASY_H_INCLUDED_
|
||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -0,0 +1,591 @@
|
||||
#include "StdAfx.h"
|
||||
#include "Common\inc\cAcqEasy.h"
|
||||
#include "STIL_CCS_PRIMA_Laser.h"
|
||||
|
||||
CSTIL_CCS_PRIMA_Laser::CSTIL_CCS_PRIMA_Laser()
|
||||
{
|
||||
m_SensorId = 0;
|
||||
m_ErrorCode = SPARKSHI_ERROR_NONE;
|
||||
m_pAcqEasy = NULL;
|
||||
m_ScanRate = MCHR_SCAN_RATE_CCS_PRIMA_1000HZ;
|
||||
m_NumberOfPointTRE = 1;
|
||||
m_evAcquisition = NULL;
|
||||
m_pThickness = NULL;
|
||||
m_pDistance1 = NULL;
|
||||
m_pIntensity1 = NULL;
|
||||
m_pDistance2 = NULL;
|
||||
m_pIntensity2 = NULL;
|
||||
}
|
||||
|
||||
CSTIL_CCS_PRIMA_Laser::~CSTIL_CCS_PRIMA_Laser(void)
|
||||
{
|
||||
if (m_SensorId != 0)
|
||||
{
|
||||
CloseCom ();
|
||||
}
|
||||
}
|
||||
//================================================================
|
||||
BOOL CSTIL_CCS_PRIMA_Laser::Init(int _Mode)
|
||||
{
|
||||
BOOL bStatus(FALSE);
|
||||
switch(_Mode)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
if (OpenCom(MCHR_USB_CONNECTION))
|
||||
{
|
||||
double refractiveIndex(0.0);
|
||||
if (GetRefractiveIndex (refractiveIndex) == SPARKSHI_ERROR)
|
||||
refractiveIndex = 999.0;
|
||||
bStatus=TRUE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
return bStatus;
|
||||
}
|
||||
//================================================================
|
||||
BOOL CSTIL_CCS_PRIMA_Laser::Exit()
|
||||
{
|
||||
BOOL bStatus(FALSE);
|
||||
bStatus=ReleaseAcquisition();
|
||||
if (m_SensorId != 0)
|
||||
{
|
||||
CloseCom ();
|
||||
}
|
||||
return bStatus;
|
||||
}
|
||||
//================================================================
|
||||
BOOL CSTIL_CCS_PRIMA_Laser::SetMeasureMode(int _MeasureMode)
|
||||
{
|
||||
BOOL bStatus(FALSE);
|
||||
switch(_MeasureMode)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
double refractiveIndex = 1.51;
|
||||
SetRefractiveIndex (refractiveIndex);
|
||||
int numberOfPointTRE(1);
|
||||
numberOfPointTRE=5;
|
||||
InitAcquisition (eMCHR_GetThicknessMeasurement, MCHR_TYPE_TRE, numberOfPointTRE);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
return bStatus;
|
||||
}
|
||||
//================================================================
|
||||
BOOL CSTIL_CCS_PRIMA_Laser::GetDistance(double &_dDis1, double &_dDis2)
|
||||
{
|
||||
BOOL bStatus(FALSE);
|
||||
double dbThickness(0.0),dblDistance1(0.0),dblDistance2(0.0),dblIntensity1(0.0),dblIntensity2(0.0);
|
||||
bool bSoftTrigger(true);
|
||||
bStatus=GetThicknessValue(dbThickness,dblDistance1,dblDistance2,dblIntensity1,dblIntensity2,bSoftTrigger);
|
||||
_dDis1=dblDistance1;
|
||||
_dDis2=dblDistance2;
|
||||
return bStatus;
|
||||
}
|
||||
|
||||
BOOL CSTIL_CCS_PRIMA_Laser::GetThicknessAllData(double &dbThickness, double &dblDistance1, double &dblDistance2, double &dblIntensity1, double &dblIntensity2)
|
||||
{
|
||||
BOOL bStatus(FALSE);
|
||||
bool bSoftTrigger(true);
|
||||
bStatus=GetThicknessValue(dbThickness,dblDistance1,dblDistance2,dblIntensity1,dblIntensity2,bSoftTrigger);
|
||||
return bStatus;
|
||||
}
|
||||
BOOL CSTIL_CCS_PRIMA_Laser::InitChrLib()
|
||||
{
|
||||
char szVersion[MAX_CHAR];
|
||||
|
||||
//DLL initialization
|
||||
if (!MCHR_Init())
|
||||
{
|
||||
TRACE("Error : InitChrLib() : DLL Initialization failed.\n");
|
||||
return(FALSE);
|
||||
}
|
||||
//Reading the version number of the DLL
|
||||
memset(szVersion, 0, MAX_CHAR);
|
||||
if (MCHR_GetVersion (szVersion, sizeof(szVersion)) != MCHR_ERROR_NONE)
|
||||
{
|
||||
TRACE("Error : InitChrLib() : MCHR_GetVersion\n");
|
||||
return(FALSE);
|
||||
}
|
||||
TRACE1("DLL CHR V%s\n", szVersion);
|
||||
return(TRUE);
|
||||
}
|
||||
|
||||
BOOL CSTIL_CCS_PRIMA_Laser::OpenCom (enChrConnection connectionType, int comPort, int baudrate)
|
||||
{
|
||||
TRACE ("Init Chr Lib\n");
|
||||
m_ErrorCode = SPARKSHI_ERROR_NONE;
|
||||
m_nBaudrate = static_cast<WORD>(baudrate);
|
||||
m_nComIndex = static_cast<WORD>(comPort);
|
||||
|
||||
if (InitChrLib())
|
||||
{
|
||||
//open sensor
|
||||
TRACE ("Open Sensor (please wait)\n");
|
||||
|
||||
memset(m_szSensorName, 0, sizeof(m_szSensorName));
|
||||
if (connectionType == MCHR_SERIAL_CONNECTION)
|
||||
{
|
||||
m_SensorId = MCHR_OpenSerialChr ("", MCHR_CCS_PRIMA, m_nComIndex, m_nBaudrate, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_SensorId = MCHR_OpenUsbChr ("", MCHR_CCS_PRIMA, NULL, NULL, NULL);
|
||||
}
|
||||
if (m_SensorId != 0)
|
||||
{
|
||||
MCHR_GetSensorName(m_SensorId, m_szSensorName);
|
||||
TRACE2("%s Sensor Open: SensorID = %d\n", m_szSensorName, m_SensorId);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_ErrorCode = MCHR_GetLastError(NULL);
|
||||
TRACE1("Error : OpenSensor() : Sensor Open failed : 0x%X\n", m_ErrorCode);
|
||||
}
|
||||
if (m_ErrorCode == SPARKSHI_ERROR_NONE)
|
||||
{
|
||||
// Initialize Sensor with custom configuration
|
||||
if (MCHR_SetScanRate (m_SensorId, m_ScanRate) == MCHR_ERROR)
|
||||
m_ErrorCode = MCHR_GetLastError(m_SensorId);
|
||||
else
|
||||
//set averaging = 1 for acquisition
|
||||
if(MCHR_SetAveraging (m_SensorId, 1) == MCHR_ERROR)
|
||||
{
|
||||
m_ErrorCode = MCHR_GetLastError(m_SensorId);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
m_ErrorCode = SPARKSHI_ERROR_INIT_DLL_CHR;
|
||||
|
||||
if (m_ErrorCode == SPARKSHI_ERROR_NONE)
|
||||
{
|
||||
return(TRUE);
|
||||
}
|
||||
else
|
||||
{
|
||||
return(FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------------------
|
||||
BOOL CSTIL_CCS_PRIMA_Laser::CreateEvents(cAcqEasy *pAcquisitionEasy, HANDLE *pAcquisitionEvent)
|
||||
{
|
||||
m_ErrorCode = SPARKSHI_ERROR_NONE;
|
||||
if (pAcquisitionEasy == NULL)
|
||||
{
|
||||
TRACE("Error : CreateEvents() : Bad parameter (pAcquisitionEasy)\n");
|
||||
m_ErrorCode = SPARKSHI_ERROR_CREATE_EVENT;
|
||||
return(FALSE);
|
||||
}
|
||||
*pAcquisitionEvent = CreateEvent(NULL,FALSE,FALSE,NULL);
|
||||
if (*pAcquisitionEvent != NULL)
|
||||
{
|
||||
if (pAcquisitionEasy != NULL)
|
||||
{
|
||||
pAcquisitionEasy->SetAcqEvent(*pAcquisitionEvent);
|
||||
return(TRUE);
|
||||
}
|
||||
}
|
||||
m_ErrorCode = SPARKSHI_ERROR_CREATE_EVENT;
|
||||
return (FALSE);
|
||||
}
|
||||
//-----------------------------------------------------------------------------------------
|
||||
BOOL CSTIL_CCS_PRIMA_Laser::ReleaseEvents(HANDLE *pAcquisitionEvent)
|
||||
{
|
||||
if (*pAcquisitionEvent != NULL)
|
||||
{
|
||||
CloseHandle(*pAcquisitionEvent);
|
||||
*pAcquisitionEvent = NULL;
|
||||
}
|
||||
return (TRUE);
|
||||
}
|
||||
|
||||
|
||||
BOOL CSTIL_CCS_PRIMA_Laser::InitAcquisition (eAcqEasyFunc selectedFunction, enTriggerType selectedTrigger, int numberOfPointTRE)
|
||||
{
|
||||
DWORD readLong;
|
||||
|
||||
m_ErrorCode = SPARKSHI_ERROR_NONE;
|
||||
if(m_pAcqEasy)
|
||||
{
|
||||
ReleaseAcquisition();
|
||||
}
|
||||
//create cAcqEasy class
|
||||
m_pAcqEasy = new cAcqEasy(m_SensorId);
|
||||
if (CreateEvents(m_pAcqEasy, &m_evAcquisition))
|
||||
{
|
||||
m_NumberOfPointTRE = numberOfPointTRE;
|
||||
//set acquisition parameters
|
||||
ZeroMemory(&m_acqEasyParam, sizeof(sAcqEasyParam));
|
||||
// Set number of points for TRE mode (should be > 0)
|
||||
m_acqEasyParam.NumberPointsTRE = m_NumberOfPointTRE;
|
||||
// Set buffer size (should be > 0)
|
||||
m_acqEasyParam.BufferLength = m_NumberOfPointTRE;
|
||||
// Set number of acquisition buffers per data (should be > 0)
|
||||
m_acqEasyParam.NumberOfBuffers = 10;
|
||||
//set timeout acquisition : should be reasonable time for tigger pulse to arrive. it depends on the application.
|
||||
//minimum value should be at least = (((averaging / rate) * NUMBER_POINTS_TRE) * 1000) + 20
|
||||
m_acqEasyParam.TimeoutAcquisition = 1000;
|
||||
//set controller type
|
||||
m_acqEasyParam.SensorType = MCHR_CCS_PRIMA;
|
||||
//event type (here end of each buffer)
|
||||
m_acqEasyParam.TypeEvent = EV_END_BUFFER;
|
||||
//trigger settings
|
||||
m_acqEasyParam.Trigger.Enable = true;
|
||||
m_acqEasyParam.Trigger.Type = selectedTrigger;
|
||||
m_acqEasyParam.Trigger.Level = MCHR_RISING_EDGE;
|
||||
//Set frenquency
|
||||
m_acqEasyParam.Frequency = static_cast<unsigned short>(m_ScanRate);
|
||||
|
||||
|
||||
if (MCHR_GetFullScaleEx (m_SensorId, &readLong) == MCHR_ERROR_NONE)
|
||||
m_nCurrentFullScale = readLong;
|
||||
else
|
||||
m_nCurrentFullScale = 999;
|
||||
|
||||
//set name of acquisition function used
|
||||
m_acqEasyParam.typeAcquisition = selectedFunction;
|
||||
switch (selectedFunction)
|
||||
{
|
||||
case eMCHR_GetDepthMeasurement :
|
||||
//set Distance and intensity buffering enabled
|
||||
m_acqEasyParam.EnableBufferDepth.Depth = true;
|
||||
m_acqEasyParam.EnableBufferDepth.Intensity = true;
|
||||
|
||||
// Allocate data for acquisition buffer
|
||||
m_pDistance1 = new float[m_NumberOfPointTRE];
|
||||
m_pIntensity1 = new float[m_NumberOfPointTRE];
|
||||
break;
|
||||
|
||||
case eMCHR_GetThicknessMeasurement :
|
||||
//set thickness, Distances, intensities buffering enabled
|
||||
m_acqEasyParam.EnableBufferThickness.Thickness = true;
|
||||
m_acqEasyParam.EnableBufferThickness.Distance1 = true;
|
||||
m_acqEasyParam.EnableBufferThickness.Distance2 = true;
|
||||
m_acqEasyParam.EnableBufferThickness.Intensity1 = true;
|
||||
m_acqEasyParam.EnableBufferThickness.Intensity2 = true;
|
||||
|
||||
// Allocate data for acquisition buffer
|
||||
m_pThickness = new float[m_NumberOfPointTRE];
|
||||
m_pDistance1 = new float[m_NumberOfPointTRE];
|
||||
m_pDistance2 = new float[m_NumberOfPointTRE];
|
||||
m_pIntensity1 = new float[m_NumberOfPointTRE];
|
||||
m_pIntensity2 = new float[m_NumberOfPointTRE];
|
||||
MCHR_InvertDistance (m_SensorId, FALSE);
|
||||
break;
|
||||
|
||||
default :
|
||||
TRACE1("Error : StartAcquisition() : Function (%d) not implemented!\n", selectedFunction);
|
||||
return (FALSE);
|
||||
|
||||
}
|
||||
|
||||
|
||||
//start acquisition
|
||||
TRACE ("Start Acquisition\n");
|
||||
if (!m_pAcqEasy->StartAcquisition(m_acqEasyParam))
|
||||
{
|
||||
m_ErrorCode = MCHR_GetLastError(m_SensorId);
|
||||
TRACE("Error : StartAcquisition() : Error code : 0x%X\n", m_ErrorCode);
|
||||
return (FALSE);
|
||||
}
|
||||
}
|
||||
else
|
||||
return (FALSE);
|
||||
return (TRUE);
|
||||
}
|
||||
|
||||
|
||||
BOOL CSTIL_CCS_PRIMA_Laser::ReleaseAcquisition ()
|
||||
{
|
||||
if (m_pAcqEasy)
|
||||
{
|
||||
m_pAcqEasy->StopAcquisition();
|
||||
ReleaseEvents (&m_evAcquisition);
|
||||
}
|
||||
|
||||
if (m_pThickness)
|
||||
{
|
||||
delete [] m_pThickness;
|
||||
m_pThickness = NULL;
|
||||
}
|
||||
if (m_pDistance1)
|
||||
{
|
||||
delete [] m_pDistance1;
|
||||
m_pDistance1 = NULL;
|
||||
}
|
||||
if (m_pIntensity1)
|
||||
{
|
||||
delete [] m_pIntensity1;
|
||||
m_pIntensity1 = NULL;
|
||||
}
|
||||
if (m_pDistance2)
|
||||
{
|
||||
delete [] m_pDistance2;
|
||||
m_pDistance2 = NULL;
|
||||
}
|
||||
if (m_pIntensity2)
|
||||
{
|
||||
delete [] m_pIntensity2;
|
||||
m_pIntensity2 = NULL;
|
||||
}
|
||||
if (m_pAcqEasy)
|
||||
{
|
||||
delete m_pAcqEasy;
|
||||
m_pAcqEasy = NULL;
|
||||
}
|
||||
return (TRUE);
|
||||
}
|
||||
|
||||
WORD CSTIL_CCS_PRIMA_Laser::GetLastError ()
|
||||
{
|
||||
return(m_ErrorCode);
|
||||
}
|
||||
|
||||
BOOL CSTIL_CCS_PRIMA_Laser::CloseCom ()
|
||||
{
|
||||
m_ErrorCode = SPARKSHI_ERROR_NONE;
|
||||
if (m_SensorId != 0)
|
||||
{
|
||||
if (MCHR_CloseChr (m_SensorId) == MCHR_ERROR_NONE)
|
||||
{
|
||||
m_SensorId = 0;
|
||||
return (TRUE);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_ErrorCode = MCHR_GetLastError (m_SensorId);
|
||||
return(FALSE);
|
||||
}
|
||||
MCHR_Release();
|
||||
}
|
||||
else
|
||||
{
|
||||
m_ErrorCode = SPARKSHI_ERROR_SENSOR_NOT_CONNECTED;
|
||||
return(FALSE);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
BOOL CSTIL_CCS_PRIMA_Laser::GetDistanceValue(double &dblDistance, double &dblIntensity, bool bSoftTrigger)
|
||||
{
|
||||
int DataCount = 0;
|
||||
m_ErrorCode = SPARKSHI_ERROR_NONE;
|
||||
if (m_pAcqEasy == NULL)
|
||||
{
|
||||
TRACE("Error : Process() : Bad parameter (pAcquisitionEasy)\n");
|
||||
m_ErrorCode = SPARKSHI_ERROR_INVALID_PARAM;
|
||||
return(SPARKSHI_ERROR);
|
||||
}
|
||||
if (m_evAcquisition == NULL)
|
||||
{
|
||||
TRACE("Error : Process() : Bad parameter (AcquisitionEvent)\n");
|
||||
m_ErrorCode = SPARKSHI_ERROR_INVALID_PARAM;
|
||||
return(SPARKSHI_ERROR);
|
||||
}
|
||||
|
||||
if (m_pDistance1 == NULL)
|
||||
{
|
||||
TRACE("Error : Process() : Bad parameter (Distance1 pointer)\n");
|
||||
m_ErrorCode = SPARKSHI_ERROR_INVALID_PARAM;
|
||||
return(SPARKSHI_ERROR);
|
||||
}
|
||||
|
||||
if (m_pIntensity1 == NULL)
|
||||
{
|
||||
TRACE("Error : Process() : Bad parameter (m_pIntensity1 pointer)\n");
|
||||
m_ErrorCode = SPARKSHI_ERROR_INVALID_PARAM;
|
||||
return(SPARKSHI_ERROR);
|
||||
}
|
||||
|
||||
if (m_NumberOfPointTRE > 0)
|
||||
{
|
||||
// Software trigger
|
||||
if (bSoftTrigger)
|
||||
{
|
||||
char cmd[MAX_PATH] = "STR";
|
||||
char resp[MAX_PATH];
|
||||
MCHR_SendCommand (m_SensorId, cmd, resp);
|
||||
//MCHR_StartAcquisition (m_SensorId);
|
||||
}
|
||||
if (WaitForSingleObject(m_evAcquisition, m_acqEasyParam.TimeoutAcquisition) == WAIT_OBJECT_0)
|
||||
{
|
||||
if (!m_pAcqEasy->GetDepthAcquisitionData(m_pDistance1, m_pIntensity1, NULL, NULL, NULL, &DataCount))
|
||||
{
|
||||
TRACE("Error : Process() GetAltitudeAcquisitionData : Error\n");
|
||||
m_ErrorCode = m_pAcqEasy->GetStatusAcquisition(NULL);
|
||||
return (SPARKSHI_ERROR);
|
||||
}
|
||||
if (DataCount > 0)
|
||||
{
|
||||
dblDistance = (double) m_pDistance1[0];
|
||||
dblIntensity = (double) m_pIntensity1[0];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//TRACE("Error : Process() GetAltitudeAcquisitionData : Timeout\n");
|
||||
m_ErrorCode = SPARKSHI_ERROR_TIMEOUT;
|
||||
}
|
||||
}
|
||||
else
|
||||
m_ErrorCode = SPARKSHI_ERROR_INVALID_PARAM;
|
||||
if (m_ErrorCode != SPARKSHI_ERROR_NONE)
|
||||
return(SPARKSHI_ERROR);
|
||||
else
|
||||
return (SPARKSHI_ERROR_NONE);
|
||||
|
||||
}
|
||||
|
||||
BOOL CSTIL_CCS_PRIMA_Laser::GetThicknessValue(double &dblThickness, double &dblDistance1, double &dblDistance2, double &dblIntensity1, double &dblIntensity2, bool bSoftTrigger)
|
||||
{
|
||||
int DataCount = 0;
|
||||
m_ErrorCode = SPARKSHI_ERROR_NONE;
|
||||
if (m_pAcqEasy == NULL)
|
||||
{
|
||||
TRACE("Error : Process() : Bad parameter (pAcquisitionEasy)\n");
|
||||
m_ErrorCode = SPARKSHI_ERROR_INVALID_PARAM;
|
||||
return(SPARKSHI_ERROR);
|
||||
}
|
||||
if (m_evAcquisition == NULL)
|
||||
{
|
||||
TRACE("Error : Process() : Bad parameter (AcquisitionEvent)\n");
|
||||
m_ErrorCode = SPARKSHI_ERROR_INVALID_PARAM;
|
||||
return(SPARKSHI_ERROR);
|
||||
}
|
||||
|
||||
if (m_pThickness == NULL)
|
||||
{
|
||||
TRACE("Error : Process() : Bad parameter (Thickness pointer)\n");
|
||||
m_ErrorCode = SPARKSHI_ERROR_INVALID_PARAM;
|
||||
return(SPARKSHI_ERROR);
|
||||
}
|
||||
|
||||
|
||||
if (m_pDistance1 == NULL)
|
||||
{
|
||||
TRACE("Error : Process() : Bad parameter (Distance1 pointer)\n");
|
||||
m_ErrorCode = SPARKSHI_ERROR_INVALID_PARAM;
|
||||
return(SPARKSHI_ERROR);
|
||||
}
|
||||
|
||||
if (m_pIntensity1 == NULL)
|
||||
{
|
||||
TRACE("Error : Process() : Bad parameter (m_pIntensity1 pointer)\n");
|
||||
m_ErrorCode = SPARKSHI_ERROR_INVALID_PARAM;
|
||||
return(SPARKSHI_ERROR);
|
||||
}
|
||||
if (m_pDistance2 == NULL)
|
||||
{
|
||||
TRACE("Error : Process() : Bad parameter (Distance2 pointer)\n");
|
||||
m_ErrorCode = SPARKSHI_ERROR_INVALID_PARAM;
|
||||
return(SPARKSHI_ERROR);
|
||||
}
|
||||
|
||||
if (m_pIntensity2 == NULL)
|
||||
{
|
||||
TRACE("Error : Process() : Bad parameter (m_pIntensity2 pointer)\n");
|
||||
m_ErrorCode = SPARKSHI_ERROR_INVALID_PARAM;
|
||||
return(SPARKSHI_ERROR);
|
||||
}
|
||||
|
||||
if (m_NumberOfPointTRE > 0)
|
||||
{
|
||||
// Software trigger
|
||||
if (bSoftTrigger)
|
||||
{
|
||||
char cmd[MAX_PATH] = "STR";
|
||||
char resp[MAX_PATH];
|
||||
MCHR_SendCommand (m_SensorId, cmd, resp);
|
||||
//MCHR_StartAcquisition (m_SensorId);
|
||||
}
|
||||
if (WaitForSingleObject(m_evAcquisition, m_acqEasyParam.TimeoutAcquisition) == WAIT_OBJECT_0)
|
||||
{
|
||||
if (!m_pAcqEasy->GetThicknessAcquisitionData (m_pThickness, m_pDistance1, m_pIntensity1, NULL, m_pDistance2, m_pIntensity2, NULL, NULL, NULL, &DataCount))
|
||||
{
|
||||
TRACE("Error : Process() GetThicknessValue : Error\n");
|
||||
m_ErrorCode = m_pAcqEasy->GetStatusAcquisition(NULL);
|
||||
return (SPARKSHI_ERROR);
|
||||
}
|
||||
dblThickness=0.0;
|
||||
dblDistance1=0.0;
|
||||
dblIntensity1=0.0;
|
||||
dblDistance2=0.0;
|
||||
dblIntensity2=0.0;
|
||||
if (DataCount > 0)
|
||||
{
|
||||
for (int i=0;i<DataCount;i++)
|
||||
{
|
||||
dblThickness += (double)m_pThickness[0];
|
||||
dblDistance1 += (double) m_pDistance1[0];
|
||||
dblIntensity1 += (double) m_pIntensity1[0];
|
||||
dblDistance2 += (double) m_pDistance2[0];
|
||||
dblIntensity2 += (double) m_pIntensity2[0];
|
||||
}
|
||||
dblThickness/=(double)DataCount;
|
||||
dblDistance1/=(double)DataCount;
|
||||
dblIntensity1/=(double)DataCount;
|
||||
dblDistance2/=(double)DataCount;
|
||||
dblIntensity2/=(double)DataCount;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//TRACE("Error : Process() GetDistanceAcquisitionData : Timeout\n");
|
||||
m_ErrorCode = SPARKSHI_ERROR_TIMEOUT;
|
||||
}
|
||||
}
|
||||
else
|
||||
m_ErrorCode = SPARKSHI_ERROR_INVALID_PARAM;
|
||||
if (m_ErrorCode != SPARKSHI_ERROR_NONE)
|
||||
return(SPARKSHI_ERROR);
|
||||
else
|
||||
return (SPARKSHI_ERROR_NONE);
|
||||
|
||||
}
|
||||
|
||||
|
||||
BOOL CSTIL_CCS_PRIMA_Laser::SetRefractiveIndex (double indice)
|
||||
{
|
||||
if (MCHR_SetRefractiveIndex (m_SensorId, (float) indice) == MCHR_ERROR)
|
||||
{
|
||||
m_ErrorCode = MCHR_GetLastError (m_SensorId);
|
||||
return (SPARKSHI_ERROR);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_RefractiveIndex = (float) indice;
|
||||
return (SPARKSHI_ERROR_NONE);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
BOOL CSTIL_CCS_PRIMA_Laser::GetRefractiveIndex (double &indice)
|
||||
{
|
||||
float convParam = (float) indice;
|
||||
if (MCHR_GetRefractiveIndex (m_SensorId, &convParam) == MCHR_ERROR)
|
||||
{
|
||||
m_ErrorCode = MCHR_GetLastError (m_SensorId);
|
||||
return (SPARKSHI_ERROR);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_RefractiveIndex = convParam;
|
||||
indice = convParam;
|
||||
return (SPARKSHI_ERROR_NONE);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
#ifndef STIL_CCS_PRIMA_LASER_H_INCLUDED_
|
||||
#define STIL_CCS_PRIMA_LASER_H_INCLUDED_
|
||||
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
|
||||
#define SPARKSHI_ERROR_CODE 0xe000
|
||||
|
||||
#define SPARKSHI_ERROR 0
|
||||
#define SPARKSHI_ERROR_NONE 1
|
||||
#define SPARKSHI_ERROR_INIT_DLL_CHR (SPARKSHI_ERROR_CODE + 0x01)
|
||||
#define SPARKSHI_ERROR_SENSOR_NOT_CONNECTED (SPARKSHI_ERROR_CODE + 0x02)
|
||||
#define SPARKSHI_ERROR_CREATE_EVENT (SPARKSHI_ERROR_CODE + 0x03)
|
||||
#define SPARKSHI_ERROR_INVALID_PARAM (SPARKSHI_ERROR_CODE + 0x04)
|
||||
#define SPARKSHI_ERROR_TIMEOUT (SPARKSHI_ERROR_CODE + 0x05)
|
||||
|
||||
class CSTIL_CCS_PRIMA_Laser
|
||||
{
|
||||
public:
|
||||
CSTIL_CCS_PRIMA_Laser();
|
||||
~CSTIL_CCS_PRIMA_Laser(void);
|
||||
BOOL Init(int _Mode=0);
|
||||
BOOL Exit();
|
||||
BOOL SetMeasureMode(int _MeasureMode=0);
|
||||
BOOL GetDistance(double &dblDistance1, double &dblDistance2);
|
||||
BOOL GetThicknessAllData(double &dbThickness, double &dblDistance1, double &dblDistance2, double &dblIntensity1, double &dblIntensity2);
|
||||
private :
|
||||
BOOL InitChrLib();
|
||||
|
||||
// Open connection on your controller with MCHR_SERIAL_CONNECTION or MCHR_USB_CONNECTION
|
||||
// if MCHR_SERIAL_CONNECTION you can to change the baudrate value and serial port number
|
||||
BOOL OpenCom (enChrConnection connectionType, int comPort = 1, int baudrate = 115200);
|
||||
// If function return an error, get the last code value with this function
|
||||
WORD GetLastError ();
|
||||
// Close the controller connection
|
||||
BOOL CloseCom ();
|
||||
// Initialize controller and DLL_CHR to process data acquisition
|
||||
BOOL InitAcquisition (eAcqEasyFunc selectedFunction, enTriggerType selectedTrigger, int numberTRE);
|
||||
// Proper Stop acquisition function
|
||||
BOOL ReleaseAcquisition ();
|
||||
// Wait hardware trigger or start Software trigger and read datas values
|
||||
BOOL GetDistanceValue(double &dbDistance, double &nIntensity, bool bSoftTrigger = true);
|
||||
BOOL GetThicknessValue(double &dbThickness, double &dblDistance1, double &dblDistance2, double &dblIntensity1, double &dblIntensity2, bool bSoftTrigger = true);
|
||||
|
||||
BOOL SetRefractiveIndex (double indice);
|
||||
BOOL GetRefractiveIndex (double &indice);
|
||||
private :
|
||||
BOOL CreateEvents(cAcqEasy *pAcquisitionEasy, HANDLE *pAcquisitionEvent);
|
||||
BOOL ReleaseEvents(HANDLE *pAcquisitionEvent);
|
||||
|
||||
private :
|
||||
MCHR_ID m_SensorId;
|
||||
char m_szSensorName[MAX_PATH];
|
||||
enTriggerType m_nTrigger;
|
||||
WORD m_nComIndex;
|
||||
WORD m_nBaudrate;
|
||||
int m_nCurrentFullScale;
|
||||
WORD m_ScanRate;
|
||||
float m_RefractiveIndex;
|
||||
WORD m_ErrorCode;
|
||||
//Acquisition parameters
|
||||
sAcqEasyParam m_acqEasyParam;
|
||||
int m_NumberOfPointTRE;
|
||||
//User Event
|
||||
HANDLE m_evAcquisition;
|
||||
|
||||
|
||||
cAcqEasy * m_pAcqEasy;
|
||||
float *m_pThickness;
|
||||
float *m_pDistance1;
|
||||
float *m_pDistance2;
|
||||
float *m_pIntensity1;
|
||||
float *m_pIntensity2;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -16,7 +16,7 @@
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// 中文(简体,中国) resources
|
||||
// Chinese (Simplified, PRC) resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
|
||||
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
|
||||
@@ -410,21 +410,22 @@ BEGIN
|
||||
CONTROL "TC4000ÊÓÆµ¿¨",IDC_RADIO_VIDEOCARD_TC4000,"Button",BS_AUTORADIOBUTTON,24,80,69,10
|
||||
CONTROL "IP Camera",IDC_RADIO_SO7_IP_CAMERA,"Button",BS_AUTORADIOBUTTON,24,96,62,10
|
||||
CONTROL "USB Camera",IDC_RADIO_SO7_USB_CAMERA,"Button",BS_AUTORADIOBUTTON,24,112,62,10
|
||||
CONTROL "控制器(USB)",IDC_RADIO_CONTROLLER,"Button",BS_AUTORADIOBUTTON,195,31,69,10
|
||||
CONTROL "控制器(RS232)",IDC_RADIO__SO7_RS232,"Button",BS_AUTORADIOBUTTON,195,63,77,10
|
||||
CONTROL "LK_G¼¤¹â",IDC_RADIO_KEYENCE_LASER,"Button",BS_AUTORADIOBUTTON,100,32,76,10
|
||||
CONTROL "LK_H¼¤¹â(USB)",IDC_RADIO_KEYENCE_LASER_LK_H,"Button",BS_AUTORADIOBUTTON,100,48,76,10
|
||||
CONTROL "LK_H¼¤¹â(ETHERNET)",IDC_RADIO_KEYENCE_LASER_LKH_ETHERNET,
|
||||
"Button",BS_AUTORADIOBUTTON,100,64,85,10
|
||||
CONTROL "LJ_G¼¤¹â",IDC_RADIO_KEYENCE_LASER3,"Button",BS_AUTORADIOBUTTON,100,80,76,10
|
||||
CONTROL "ART PCI8822",IDC_RADIO_ART_PCI8622,"Button",BS_AUTORADIOBUTTON,100,96,76,10
|
||||
CONTROL "STIL CCS-PRIMA",IDC_RADIO_ERT_CCS_PRIMA,"Button",BS_AUTORADIOBUTTON,100,112,76,10
|
||||
CONTROL "控制器(USB)",IDC_RADIO_CONTROLLER,"Button",BS_AUTORADIOBUTTON,195,31,69,10
|
||||
CONTROL "控制器(USB R)",IDC_RADIO_CONTROLLER2,"Button",BS_AUTORADIOBUTTON,195,47,75,10
|
||||
CONTROL "控制器(RS232)",IDC_RADIO__SO7_RS232,"Button",BS_AUTORADIOBUTTON,195,63,77,10
|
||||
CONTROL "Verifcation algorithm",IDC_RADIO_SO7_VERIFICATION_ALGORITHM,
|
||||
"Button",BS_AUTORADIOBUTTON | NOT WS_VISIBLE,8,139,81,10
|
||||
CONTROL "Image.dll",IDC_RADIO_TEST_IMAGE_DLL,"Button",BS_AUTORADIOBUTTON | NOT WS_VISIBLE,7,139,45,10
|
||||
DEFPUSHBUTTON "OK",IDOK,145,142,50,14
|
||||
PUSHBUTTON "Cancel",IDCANCEL,225,142,50,14
|
||||
GROUPBOX "²âÊÔÑ¡Ïî",IDC_STATIC,10,8,265,123
|
||||
CONTROL "控制器(USB R)",IDC_RADIO_CONTROLLER2,"Button",BS_AUTORADIOBUTTON,195,47,75,10
|
||||
CONTROL "ART PCI8822",IDC_RADIO_ART_PCI8622,"Button",BS_AUTORADIOBUTTON,100,96,76,10
|
||||
END
|
||||
|
||||
IDD_SO7_VIDEOCARD_SDK3000 DIALOGEX 0, 0, 488, 316
|
||||
@@ -1556,12 +1557,12 @@ IDB_BITMAP_Z_DOWN BITMAP "res\\bmp\\Z_DOWN.bmp"
|
||||
IDB_BITMAP_Z_UP BITMAP "res\\bmp\\Z_UP.bmp"
|
||||
IDB_BITMAP_X_LEFT BITMAP "res\\bmp\\X_LEFT.BMP"
|
||||
IDB_BITMAP_X_RIGHT BITMAP "res\\bmp\\X_RIGHT.bmp"
|
||||
#endif // 中文(简体,中国) resources
|
||||
#endif // Chinese (Simplified, PRC) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// 英语(美国) resources
|
||||
// English (United States) resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
@@ -2279,6 +2280,30 @@ BEGIN
|
||||
EDITTEXT IDC_EDIT_TEST_KEYENCE_SETFOCUS,7,317,40,14,ES_AUTOHSCROLL | NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_STIL_CCS_PRIMA DIALOGEX 0, 0, 450, 337
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "STIL CCS - PRIMA"
|
||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||
BEGIN
|
||||
EDITTEXT IDC_EDIT_STIL_INTERVAL,287,39,40,14,ES_RIGHT | ES_AUTOHSCROLL
|
||||
CONTROL "Continuous",IDC_CHECK_STIL_CONTINUE_GET_DATA,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,288,64,52,10
|
||||
PUSHBUTTON "Get Data",IDC_BUTTON_STIL_GET_DATA,356,38,66,38
|
||||
PUSHBUTTON "Clear All",IDC_BUTTON_STIL_CLEAR_LOG,403,187,37,20
|
||||
PUSHBUTTON "Exit",IDCANCEL,394,317,50,14
|
||||
EDITTEXT IDC_EDIT_STIL_LASER_VALUE1,132,31,98,26,ES_CENTER | ES_AUTOHSCROLL
|
||||
EDITTEXT IDC_EDIT_STIL_LASER_VALUE2,132,65,98,26,ES_CENTER | ES_AUTOHSCROLL
|
||||
EDITTEXT IDC_EDIT_STIL_MESSAGE,26,113,370,177,ES_MULTILINE | ES_AUTOVSCROLL | ES_WANTRETURN | WS_VSCROLL
|
||||
LTEXT "Interval",-1,259,41,26,8
|
||||
LTEXT "ms",-1,333,41,10,8
|
||||
GROUPBOX "Get Data",-1,255,22,95,74
|
||||
GROUPBOX "Readout",-1,86,20,163,76
|
||||
LTEXT "Dis1",-1,98,41,14,8
|
||||
LTEXT "Dis2",-1,97,70,14,8
|
||||
PUSHBUTTON "Init",IDC_BUTTON_STIL_LASER_INIT,27,24,50,24
|
||||
PUSHBUTTON "Exit",IDC_BUTTON_STIL_LASER_EXIT,27,78,50,24
|
||||
PUSHBUTTON "Set Measure Mode",IDC_BUTTON_STIL_LASER_SET_MODE,27,51,50,24,BS_MULTILINE
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
@@ -2407,6 +2432,14 @@ BEGIN
|
||||
TOPMARGIN, 11
|
||||
BOTTOMMARGIN, 331
|
||||
END
|
||||
|
||||
IDD_DIALOG_STIL_CCS_PRIMA, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 444
|
||||
TOPMARGIN, 11
|
||||
BOTTOMMARGIN, 331
|
||||
END
|
||||
END
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
@@ -2504,7 +2537,7 @@ BEGIN
|
||||
IDS_SO7_ABOUTBOX "&About Utility for SO7..."
|
||||
END
|
||||
|
||||
#endif // 英语(美国) resources
|
||||
#endif // English (United States) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,174 @@
|
||||
// STIL_CCS_PRIMA_Dlg.cpp : implementation file
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "resource.h"
|
||||
#include "..\..\..\STIL\Common\inc\cAcqEasy.h"
|
||||
#include "..\..\..\STIL\STIL_CCS_PRIMA_Laser.h"
|
||||
#include "STIL_CCS_PRIMA_Dlg.h"
|
||||
#include "afxdialogex.h"
|
||||
|
||||
extern CSTIL_CCS_PRIMA_Laser* g_pSTIL_CCS_PRIMA;
|
||||
|
||||
// CSTIL_CCS_PRIMA_Dlg dialog
|
||||
|
||||
IMPLEMENT_DYNAMIC(CSTIL_CCS_PRIMA_Dlg, CDialogEx)
|
||||
|
||||
CSTIL_CCS_PRIMA_Dlg::CSTIL_CCS_PRIMA_Dlg(CWnd* pParent /*=NULL*/)
|
||||
: CDialogEx(CSTIL_CCS_PRIMA_Dlg::IDD, pParent)
|
||||
{
|
||||
m_dDis1=0.0;
|
||||
m_dDis2=0.0;
|
||||
m_dIntensity1=0.0;
|
||||
m_dIntensity2=0.0;
|
||||
m_dThickness=0.0;
|
||||
m_BTN_StartGetData=FALSE;
|
||||
m_Timer1Interval=100;
|
||||
}
|
||||
|
||||
CSTIL_CCS_PRIMA_Dlg::~CSTIL_CCS_PRIMA_Dlg()
|
||||
{
|
||||
}
|
||||
|
||||
void CSTIL_CCS_PRIMA_Dlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
DDX_Control(pDX, IDC_EDIT_STIL_MESSAGE, m_edMsg);
|
||||
CDialogEx::DoDataExchange(pDX);
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CSTIL_CCS_PRIMA_Dlg, CDialogEx)
|
||||
ON_WM_TIMER()
|
||||
ON_BN_CLICKED(IDC_BUTTON_STIL_GET_DATA, &CSTIL_CCS_PRIMA_Dlg::OnBnClickedButtonStilGetData)
|
||||
ON_BN_CLICKED(IDC_BUTTON_STIL_LASER_INIT, &CSTIL_CCS_PRIMA_Dlg::OnBnClickedButtonStilLaserInit)
|
||||
ON_BN_CLICKED(IDC_BUTTON_STIL_LASER_EXIT, &CSTIL_CCS_PRIMA_Dlg::OnBnClickedButtonStilLaserExit)
|
||||
ON_BN_CLICKED(IDC_BUTTON_STIL_LASER_SET_MODE, &CSTIL_CCS_PRIMA_Dlg::OnBnClickedButtonStilLaserSetMode)
|
||||
ON_BN_CLICKED(IDCANCEL, &CSTIL_CCS_PRIMA_Dlg::OnBnClickedCancel)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// CSTIL_CCS_PRIMA_Dlg message handlers
|
||||
BOOL CSTIL_CCS_PRIMA_Dlg::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
((CButton*)(GetDlgItem(IDC_EDIT_STIL_INTERVAL)))->SetWindowText(_T("100"));
|
||||
|
||||
return TRUE; // return TRUE unless you set the focus to a control
|
||||
}
|
||||
|
||||
void CSTIL_CCS_PRIMA_Dlg::OnBnClickedButtonStilGetData()
|
||||
{
|
||||
if (((CButton*)(GetDlgItem(IDC_CHECK_STIL_CONTINUE_GET_DATA)))->GetCheck())
|
||||
{
|
||||
if (m_BTN_StartGetData)
|
||||
{
|
||||
KillTimer(1);
|
||||
m_BTN_StartGetData=FALSE;
|
||||
((CButton*)GetDlgItem(IDC_BUTTON_STIL_GET_DATA))->SetWindowTextW(_T("Get Data"));
|
||||
}
|
||||
else
|
||||
{
|
||||
UpdateData(TRUE);
|
||||
USES_CONVERSION;
|
||||
CString str(_T(""));
|
||||
GetDlgItem(IDC_EDIT_STIL_INTERVAL)->GetWindowText(str);
|
||||
const char* cTempValue=T2A(str);
|
||||
m_Timer1Interval = atoi(cTempValue);
|
||||
m_BTN_StartGetData=TRUE;
|
||||
SetTimer(1,m_Timer1Interval,NULL);
|
||||
((CButton*)GetDlgItem(IDC_BUTTON_STIL_GET_DATA))->SetWindowTextW(_T("STOP"));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
g_pSTIL_CCS_PRIMA->GetDistance(m_dDis1,m_dDis2);
|
||||
Show_Get_Data();
|
||||
}
|
||||
GetDlgItem(IDC_EDIT_STIL_MESSAGE)->SetFocus();
|
||||
}
|
||||
|
||||
|
||||
void CSTIL_CCS_PRIMA_Dlg::OnBnClickedButtonStilLaserInit()
|
||||
{
|
||||
g_pSTIL_CCS_PRIMA->Init();
|
||||
}
|
||||
|
||||
|
||||
void CSTIL_CCS_PRIMA_Dlg::OnBnClickedButtonStilLaserSetMode()
|
||||
{
|
||||
g_pSTIL_CCS_PRIMA->SetMeasureMode();
|
||||
}
|
||||
void CSTIL_CCS_PRIMA_Dlg::OnBnClickedButtonStilLaserExit()
|
||||
{
|
||||
g_pSTIL_CCS_PRIMA->Exit();
|
||||
|
||||
}
|
||||
void CSTIL_CCS_PRIMA_Dlg::Show_Get_Data()
|
||||
{
|
||||
m_csMsg.Format(_T("%.4f"),m_dDis1);
|
||||
GetDlgItem(IDC_EDIT_STIL_LASER_VALUE1)->SetWindowText(m_csMsg);
|
||||
m_csMsg.Format(_T("%.4f"),m_dDis2);
|
||||
GetDlgItem(IDC_EDIT_STIL_LASER_VALUE2)->SetWindowText(m_csMsg);
|
||||
}
|
||||
|
||||
//=====================================================================================
|
||||
//Print message on edit control
|
||||
void CSTIL_CCS_PRIMA_Dlg::OutputWithScroll(const CString &strNewText,CEdit &edtOutput)
|
||||
{
|
||||
CString strOutput;
|
||||
edtOutput.GetWindowText(strOutput);
|
||||
strOutput += strNewText;
|
||||
if ("\r\n" != strOutput.Right(2))
|
||||
{
|
||||
strOutput += "\r\n";
|
||||
}
|
||||
|
||||
int iCount = strOutput.GetLength();
|
||||
|
||||
edtOutput.SetRedraw(FALSE);
|
||||
edtOutput.SetWindowText(strOutput);
|
||||
int iLine = edtOutput.GetLineCount();
|
||||
edtOutput.LineScroll(iLine, 0);
|
||||
edtOutput.SetSel(iCount, iCount);
|
||||
edtOutput.SetRedraw(TRUE);
|
||||
}
|
||||
|
||||
//================================================================================================
|
||||
void CSTIL_CCS_PRIMA_Dlg::OnTimer(UINT_PTR nIDEvent)
|
||||
{
|
||||
switch(nIDEvent)
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
g_pSTIL_CCS_PRIMA->GetThicknessAllData(m_dThickness,m_dDis1,m_dDis2,m_dIntensity1,m_dIntensity2);
|
||||
m_csMsg.Format(_T("Thick:%.4f,Dis1:%.4f,Dis2:%.4f,Int1:%.4f,Int2:%.4f\n"),m_dThickness,m_dDis1,m_dDis2,m_dIntensity1,m_dIntensity2);
|
||||
OutputWithScroll(m_csMsg,m_edMsg);
|
||||
}
|
||||
break;
|
||||
}
|
||||
CDialog::OnTimer(nIDEvent);
|
||||
}
|
||||
//================================================================================================
|
||||
BOOL CSTIL_CCS_PRIMA_Dlg::PreTranslateMessage(MSG* pMsg)
|
||||
{
|
||||
if(pMsg->message==WM_KEYDOWN)
|
||||
{
|
||||
if (pMsg->wParam==VK_SPACE)
|
||||
{
|
||||
OnBnClickedButtonStilGetData();
|
||||
}
|
||||
else if(pMsg->wParam==VK_RETURN || pMsg->wParam==VK_ESCAPE)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
return CDialog::PreTranslateMessage(pMsg);
|
||||
}
|
||||
|
||||
|
||||
|
||||
void CSTIL_CCS_PRIMA_Dlg::OnBnClickedCancel()
|
||||
{
|
||||
g_pSTIL_CCS_PRIMA->Exit();
|
||||
CDialogEx::OnCancel();
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
#pragma once
|
||||
|
||||
|
||||
// CSTIL_CCS_PRIMA_Dlg dialog
|
||||
|
||||
class CSTIL_CCS_PRIMA_Dlg : public CDialogEx
|
||||
{
|
||||
DECLARE_DYNAMIC(CSTIL_CCS_PRIMA_Dlg)
|
||||
|
||||
public:
|
||||
CSTIL_CCS_PRIMA_Dlg(CWnd* pParent = NULL); // standard constructor
|
||||
virtual ~CSTIL_CCS_PRIMA_Dlg();
|
||||
|
||||
// Dialog Data
|
||||
enum { IDD = IDD_DIALOG_STIL_CCS_PRIMA };
|
||||
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
||||
virtual BOOL OnInitDialog();
|
||||
|
||||
DECLARE_MESSAGE_MAP()
|
||||
private:
|
||||
CEdit m_edMsg;
|
||||
CString m_csMsg;
|
||||
void OutputWithScroll(const CString &strNewText,CEdit &edtOutput);
|
||||
void Show_Get_Data();
|
||||
double m_dDis1;
|
||||
double m_dDis2;
|
||||
double m_dIntensity1;
|
||||
double m_dIntensity2;
|
||||
double m_dThickness;
|
||||
int m_Timer1Interval;
|
||||
BOOL m_BTN_StartGetData;
|
||||
|
||||
public:
|
||||
afx_msg BOOL PreTranslateMessage(MSG* pMsg);
|
||||
afx_msg void OnTimer(UINT_PTR nIDEvent);
|
||||
afx_msg void OnBnClickedButtonStilGetData();
|
||||
afx_msg void OnBnClickedButtonStilLaserInit();
|
||||
afx_msg void OnBnClickedButtonStilLaserExit();
|
||||
afx_msg void OnBnClickedButtonStilLaserSetMode();
|
||||
afx_msg void OnBnClickedCancel();
|
||||
};
|
||||
@@ -23,6 +23,9 @@
|
||||
#include "Videocard_TC4000.h"
|
||||
#include "..\..\..\Videocard\SV4000E\SV4000E.h"
|
||||
#include "Videocard_SV4000E.h"
|
||||
#include "..\..\..\STIL\Common\inc\cAcqEasy.h"
|
||||
#include "..\..\..\STIL\STIL_CCS_PRIMA_Laser.h"
|
||||
#include "STIL_CCS_PRIMA_Dlg.h"
|
||||
#endif //_RELEASE_FULL_VERSION
|
||||
|
||||
#include "SO7_UtilDlg.h"
|
||||
@@ -66,6 +69,7 @@ CEF8000_Interface* m_pEF8000_Interface=NULL;
|
||||
CXBOXController* XBoxPlayer =NULL;
|
||||
|
||||
CART_PCI8622* m_pART_PCI8622=NULL;
|
||||
CSTIL_CCS_PRIMA_Laser* g_pSTIL_CCS_PRIMA=NULL;
|
||||
// CSo7_Option dialog
|
||||
|
||||
IMPLEMENT_DYNAMIC(CSo7_Option, CDialog)
|
||||
@@ -147,6 +151,7 @@ BOOL CSo7_Option::OnInitDialog()
|
||||
((CButton *)GetDlgItem(IDC_RADIO_SO7_VERIFICATION_ALGORITHM))->EnableWindow(FALSE);
|
||||
((CButton *)GetDlgItem(IDC_RADIO_TEST_IMAGE_DLL))->EnableWindow(FALSE);
|
||||
((CButton *)GetDlgItem(IDC_RADIO_ART_PCI8622))->EnableWindow(FALSE);
|
||||
((CButton *)GetDlgItem(IDC_RADIO_ERT_CCS_PRIMA))->EnableWindow(FALSE);
|
||||
#endif
|
||||
|
||||
#ifdef _RELEASE_ONLY_ONE_FUNCTION
|
||||
@@ -346,6 +351,22 @@ void CSo7_Option::OnBnClickedOk()
|
||||
delete m_pART_PCI8622;
|
||||
m_pART_PCI8622=NULL;
|
||||
}
|
||||
else if(((CButton *)GetDlgItem(IDC_RADIO_ERT_CCS_PRIMA))->GetCheck())
|
||||
{
|
||||
#ifdef _RELEASE_FULL_VERSION
|
||||
if (!g_pSTIL_CCS_PRIMA)
|
||||
{
|
||||
g_pSTIL_CCS_PRIMA=new CSTIL_CCS_PRIMA_Laser();
|
||||
}
|
||||
CSTIL_CCS_PRIMA_Dlg* pSTIL_CCS_PRIMA_Dlg=new CSTIL_CCS_PRIMA_Dlg();
|
||||
pSTIL_CCS_PRIMA_Dlg->DoModal();
|
||||
delete pSTIL_CCS_PRIMA_Dlg;
|
||||
pSTIL_CCS_PRIMA_Dlg=nullptr;
|
||||
|
||||
delete g_pSTIL_CCS_PRIMA;
|
||||
g_pSTIL_CCS_PRIMA=NULL;
|
||||
#endif //_RELEASE_FULL_VERSION
|
||||
}
|
||||
else if (((CButton *)GetDlgItem(IDC_RADIO_VIDEOCARD_SDK3000))->GetCheck())
|
||||
{
|
||||
#ifdef _RELEASE_FULL_VERSION
|
||||
|
||||
@@ -145,7 +145,7 @@
|
||||
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>..\..\..\..\..\..\..\ThirdParty\UsbSupport\LibUsb_Win\Lib\Msvc\libusb.lib;..\..\..\Videocard\SDK3000\sdk3000_7130.lib;..\..\..\Videocard\TC4000\Sa7134Capture.lib;..\..\..\Videocard\SV4000E\dataAcq.lib;..\..\..\Videocard\SV4000E\DXMediaCap.lib;..\..\..\ART\PCI8622_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>..\..\..\..\..\..\..\ThirdParty\UsbSupport\LibUsb_Win\Lib\Msvc\libusb.lib;..\..\..\Videocard\SDK3000\sdk3000_7130.lib;..\..\..\Videocard\TC4000\Sa7134Capture.lib;..\..\..\Videocard\SV4000E\dataAcq.lib;..\..\..\Videocard\SV4000E\DXMediaCap.lib;..\..\..\ART\PCI8622_32.lib;..\..\..\STIL\Dll_chr.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
@@ -206,7 +206,7 @@
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<AdditionalDependencies>..\..\..\..\..\..\..\ThirdParty\UsbSupport\LibUsb_Win\Lib\Msvc\libusb.lib;..\..\..\Videocard\SDK3000\sdk3000_7130.lib;..\..\..\Videocard\SV2000E\dataAcq.lib;..\..\..\Videocard\SV2000E\DXMediaCap.lib;..\..\..\Videocard\TC4000\Sa7134Capture.lib;..\..\..\ART\PCI8622_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>..\..\..\..\..\..\..\ThirdParty\UsbSupport\LibUsb_Win\Lib\Msvc\libusb.lib;..\..\..\Videocard\SDK3000\sdk3000_7130.lib;..\..\..\Videocard\SV2000E\dataAcq.lib;..\..\..\Videocard\SV2000E\DXMediaCap.lib;..\..\..\Videocard\TC4000\Sa7134Capture.lib;..\..\..\ART\PCI8622_32.lib;..\..\..\STIL\Dll_chr.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseSO7|Win32'">
|
||||
@@ -323,6 +323,8 @@
|
||||
<ClCompile Include="..\..\..\SevenOcean\So7_Interface.cpp" />
|
||||
<ClCompile Include="..\..\..\SevenOcean\SO7_Proto.cpp" />
|
||||
<ClCompile Include="..\..\..\SevenOcean\SO7_Proto_Aux.cpp" />
|
||||
<ClCompile Include="..\..\..\STIL\Common\src\cAcqEasy.cpp" />
|
||||
<ClCompile Include="..\..\..\STIL\STIL_CCS_PRIMA_Laser.cpp" />
|
||||
<ClCompile Include="..\..\..\Tesa\TesaStarE.cpp" />
|
||||
<ClCompile Include="..\LOGGER.CPP" />
|
||||
<ClCompile Include="..\Proto_Util.cpp" />
|
||||
@@ -375,6 +377,7 @@
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='ReleaseSO7|x64'">Create</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="STIL_CCS_PRIMA_Dlg.cpp" />
|
||||
<ClCompile Include="TestTesaStarEDialog.cpp" />
|
||||
<ClCompile Include="Videocard_SDK3000.cpp" />
|
||||
<ClCompile Include="Videocard_SV2000E.cpp" />
|
||||
@@ -409,6 +412,7 @@
|
||||
<ClInclude Include="..\..\..\SevenOcean\So7_Interface.h" />
|
||||
<ClInclude Include="..\..\..\SevenOcean\SO7_Proto.h" />
|
||||
<ClInclude Include="..\..\..\SevenOcean\SO7_Proto_Aux.h" />
|
||||
<ClInclude Include="..\..\..\STIL\STIL_CCS_PRIMA_Laser.h" />
|
||||
<ClInclude Include="..\..\..\Tesa\TesaStarE.h" />
|
||||
<ClInclude Include="..\..\..\Videocard\SDK3000\sdk3000_7130.h" />
|
||||
<ClInclude Include="..\Proto_Util.h" />
|
||||
@@ -456,6 +460,7 @@
|
||||
<ClInclude Include="So7_XBoxController.h" />
|
||||
<ClInclude Include="STATUS_MOTION.H" />
|
||||
<ClInclude Include="stdafx.h" />
|
||||
<ClInclude Include="STIL_CCS_PRIMA_Dlg.h" />
|
||||
<ClInclude Include="targetver.h" />
|
||||
<ClInclude Include="TestTesaStarEDialog.h" />
|
||||
<ClInclude Include="VideoCardDefine.h" />
|
||||
|
||||
@@ -208,6 +208,15 @@
|
||||
<ClCompile Include="So7_Art_PCI8622.cpp">
|
||||
<Filter>Sources Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="STIL_CCS_PRIMA_Dlg.cpp">
|
||||
<Filter>Sources Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\STIL\STIL_CCS_PRIMA_Laser.cpp">
|
||||
<Filter>Sources Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\STIL\Common\src\cAcqEasy.cpp">
|
||||
<Filter>Sources Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="CaptureDataDlg.h">
|
||||
@@ -453,6 +462,12 @@
|
||||
<ClInclude Include="So7_Art_PCI8622.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="STIL_CCS_PRIMA_Dlg.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\STIL\STIL_CCS_PRIMA_Laser.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="ReadMe.txt" />
|
||||
|
||||
@@ -653,6 +653,7 @@
|
||||
#define IDC_BUTTON_TESA_STAR_STOP_MACHINE 1542
|
||||
#define IDC_BUTTON_SO7_MOTION_CONFIG_OK 1542
|
||||
#define IDC_BTN_KEYENCE_LKG5000_ETHERNET_READOUT1 1542
|
||||
#define IDC_BUTTON_STIL_LASER_EXIT 1542
|
||||
#define IDC_BUTTON_STOP_SAMPLE_SCURVE 1543
|
||||
#define IDC_BTN_KEYENCE_LKG5000_ETHERNET_READOUT2 1543
|
||||
#define IDC_BUTTON_SO7_MOTION_CONFIG_OK2 1543
|
||||
@@ -721,6 +722,7 @@
|
||||
#define IDC_RADIO_MACHINE_KEYENCE_TM3000 1592
|
||||
#define IDC_RADIO_ART_PCI8622 1592
|
||||
#define IDC_BUTTON_GET_SCAN_DATA_KEYENCE_LK_HLASER 1593
|
||||
#define IDC_RADIO_ERT_CCS_PRIMA 1593
|
||||
#define IDC_RADIO_KEYENCE_LASER_LK_H 1594
|
||||
#define IDC_RADIO_TEST_IMAGE_DLL 1595
|
||||
#define IDC_BUTTON_IMAGEDLL_PAUSE_AND_GET_SCAN_LASER_DATA 1596
|
||||
@@ -853,6 +855,7 @@
|
||||
#define IDD_DIALOG_KEYENCE_LKG5000 1719
|
||||
#define IDD_SO7_UTIL_SETUP_SO7_CONFIG_MOTION 1720
|
||||
#define IDD_SO7_ART_PCI8622 1721
|
||||
#define IDD_DIALOG_STIL_CCS_PRIMA 1722
|
||||
#define IDC_RADIO_SPEED_SLOW 1770
|
||||
#define IDC_RADIO_SCALE 1772
|
||||
#define IDC_EDIT_SPEED_X 1773
|
||||
@@ -883,8 +886,11 @@
|
||||
#define IDC_BUTTON_SO7_MOVETO_CLEAR_ALL_LOG 1794
|
||||
#define IDC_BUTTON_SO7_MOTION_CONFIG_CANCEL 1794
|
||||
#define IDC_BTN_KEYENCE_LKG5000_ETHERNET_CONNECT1 1794
|
||||
#define IDC_BUTTON_STIL_LASER_INIT 1794
|
||||
#define IDC_COMBO_RWDATA_ADDR 1795
|
||||
#define IDC_BTN_KEYENCE_LKG5000_ETHERNET_CONNECT2 1795
|
||||
#define IDC_BUTTON_STIL_LASER_INIT2 1795
|
||||
#define IDC_BUTTON_STIL_LASER_SET_MODE 1795
|
||||
#define IDC_EDIT_MOTION_SPEEDY 1796
|
||||
#define IDC_COMBO_OUTPORT_NUMBER 1796
|
||||
#define IDC_EDIT4 1797
|
||||
@@ -988,6 +994,13 @@
|
||||
#define IDC_BUTTON_SO7_TRIGPULSE_READ_PARA 1855
|
||||
#define IDC_BUTTON4 1856
|
||||
#define IDC_BUTTON_SET_SCALE_COEFFICIENT 1856
|
||||
#define IDC_BUTTON_STIL_GET_DATA 1857
|
||||
#define IDC_EDIT_STIL_INTERVAL 1858
|
||||
#define IDC_CHECK_STIL_CONTINUE_GET_DATA 1859
|
||||
#define IDC_EDIT_STIL_LASER_VALUE2 1860
|
||||
#define IDC_EDIT_STIL_LASER_VALUE1 1861
|
||||
#define IDC_EDIT_STIL_MESSAGE 1862
|
||||
#define IDC_BUTTON_STIL_CLEAR_LOG 1863
|
||||
#define IDC_BUTTON_DIY_EXIT_BUTTON 32740
|
||||
#define ID_EDIT_SO7_CONFIG_MOTION 32741
|
||||
|
||||
@@ -997,7 +1010,7 @@
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 191
|
||||
#define _APS_NEXT_COMMAND_VALUE 32771
|
||||
#define _APS_NEXT_CONTROL_VALUE 1857
|
||||
#define _APS_NEXT_CONTROL_VALUE 1864
|
||||
#define _APS_NEXT_SYMED_VALUE 104
|
||||
#endif
|
||||
#endif
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user