#pragma once #include /****************************************************** * 文件名 : 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; };