Files
AutomatedCheckingSystem_ATP/ATPControl_General.h
2022-05-16 18:00:14 +08:00

62 lines
1.8 KiB
C++

#pragma once
#include "pch.h"
#include "Driver_app.h"
#include "ZZ_Math.h"
typedef struct tagATPDataFrame
{
USHORT usExposureTime;
int iData[4096];
float fTemperature;
double dTimes = 0;
//float fWaveLength[2048];
//////////////////////////////////////////////////////////////////////////
}ATPDataFrame;
class CATPControl_General
{
public:
CATPControl_General();
virtual ~CATPControl_General();
public:
spectrum_device_info m_stuDeviceInfo_ATP;
float *m_pfWaveLength;
int m_iAttribute;
int m_iPixels;
UINT m_uiStartPixel, m_uiEndPixel;
int m_iExposureTimeInMS;
public:
int ATPInitialize(USHORT usIndex);
int ATPClose();
int SingleShot(ATPDataFrame &dfData);
int SingleShotDark(ATPDataFrame &dfData);
int SingleShotDeducted(ATPDataFrame &dfData);
int SetPixels(int iPixels);
int SetExposureTime(int iExposureTimeInMS);
int GetWaveLength(float *pfWaveLength);
int GetAttribute();
int GetDeviceListInfo(CComboBox *pcboDeviceList, CString &cstrSN); //use type name to enum
int GetDeviceTemperature(float &fTemperature);
int WavelengthToPixelIndex(float fStartWavelength,float fEndWavelength,UINT &uiStartPixel,UINT &uiEndPixel);
int Test();//do not call
//////////////////////////////////////////////////////////////////////////
public:
int SetDownwellingSunlightIndexRange(UINT uiStartPixel, UINT uiEndPixel);
int GetDownwellingSunlightIndex(UINT uiIndex);
//////////////////////////////////////////////////////////////////////////
int PerformAutoExposure(float fMinScaleFactor,float fMaxScaleFactor, float &fPredictedExposureTime);
public:
int CheckRange(float fFactor, ATPDataFrame &dfData);
void SubATPDataFrame(ATPDataFrame& dfLeft, ATPDataFrame const dfRight);
void SubATPDataFrame(ATPDataFrame const dfLeft, ATPDataFrame const dfRight, ATPDataFrame& dfResult);
};