新增STIL CCS-PRIMA激光测试功能。
This commit is contained in:
@@ -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_
|
||||
Reference in New Issue
Block a user