Files
TowerOptoSifAndSpectral/othersoft/shuttercali/source_rlx/sensor/SensorBase.h

133 lines
3.6 KiB
C++

#pragma once
#include <QObject>
/******************************************************
* 文件名 : SensorBase.cpp
* 类名 : 设备基类
* 作用 :
* 作者 : xin
* 邮箱 : renlixin@iris-rs.cn
* 日期 : 2021-1-15
********************************************************
* *
* _ooOoo_ *
* o8888888o *
* 88" . "88 *
* (| -_- |) *
* O\ = /O *
* ____/`---'\____ *
* .' \\| |// `. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' | | *
* \ .-\__ `-` ___/-. / *
* ___`. .' /--.--\ `. . __ *
* ."" '< `.___\_<|>_/___.' >'"". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `-. \_ __\ /__ _/ .-` / / *
* ======`-.____`-.___\_____/___.-`____.-'====== *
* `=---=' *
* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ *
* 佛祖保佑 长发永存 *
* *
********************************************************/
///一组数据 可以delete
enum emDataType
{
DNVALUE=1,
REFVALUE=2,
DARKNESS=3
};
struct STROnePlot
{
long BandNum;
float *Plot;
bool isInit;
float temp;
float shutter;
QStringList wavelenthlist;
long maxDNvalue;
bool hasDarkCorrect;
emDataType DataType;
STROnePlot() {
BandNum = 0;
isInit = false;
hasDarkCorrect = false;
Plot = nullptr;
DataType = DNVALUE;
}
~STROnePlot() {
if (!isInit)
{
delete[] Plot;
isInit = false;
}
}
};
struct STRSensorInfo
{
QString SensorName;
long maxValue;
long BandNum;
QString WavelenthStr;
QStringList wavelenthlist;
//double *wavelenth;
bool isSensorInit;
QString serialnumber;
};
class SensorBase : public QObject
{
Q_OBJECT
public:
SensorBase();
virtual ~SensorBase();
//************************************
// Method: 初始化传感器
// FullName: SensorBase::initSensor
// Access: virtual public
// Returns: void
// Qualifier:
//************************************
virtual bool initSensor(int id=0)=0;
//************************************
// Method: Settingshuttertime 设置积分时间
// FullName: SensorBase::Settingshuttertime
// Access: virtual public
// Returns: void
// Qualifier:
// Parameter: int msc
//************************************
virtual void Settingshuttertime(float msc)=0;
//************************************
// Method: SettingTemprature 设置温度
// FullName: SensorBase::SettingTemprature
// Access: virtual public
// Returns: void
// Qualifier:
// Parameter: float temp
//************************************
virtual void SettingTemprature(float temp)=0;
virtual float GettingTempratrue() = 0;
virtual STRSensorInfo GetSensorInfo()=0;
virtual void SettingShutterOpen(bool isopen)=0;
virtual void SettingSwitchShutter(bool isright)=0;
virtual void GetOnePlot(STROnePlot &OnePlot,bool Dark=false)=0;
virtual void CloseSensor()=0;
virtual void GetOneDark(STROnePlot &darkplot) = 0;
QString SensorType;
int Sensorid;
STRSensorInfo SensorInfo;
STROnePlot DarkNess;
};