Files
HPPA/JinspSpectralmeterControl/ZZ_Types.h
tangchao0503 cb5a74f576 add:
山地所贡嘎山,部分完成:(1)右下角添加控制is11的界面(2)添加is11(鉴知)控制库
2026-07-01 23:16:14 +08:00

359 lines
9.9 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//////////////////////////////////////////////////////////////////////////
//类型说明文件
//////////////////////////////////////////////////////////////////////////
#pragma once
#include <string>
#include <QTime>
#define MAX_DEVICENUMBER_FS 2
#define MAX_LINEARSHUTTER_POSITION 12
#define ZZ_Enum2String(x) #x
#pragma pack(1)//结构体按照1字节对齐存储
namespace ZZ_MISCDEF
{
typedef unsigned char ZZ_U8;
typedef unsigned short int ZZ_U16;
typedef unsigned int ZZ_U32;
typedef int ZZ_S32;
namespace IRIS
{
//Fiber Spectrometer
namespace FS
{
typedef struct tagDataFrame
{
ZZ_U32 usExposureTimeInMS;
ZZ_S32 lData[4096];
float fTemperature = 0;
double dTimes = 0;
}DataFrame;
typedef struct coeffs//tc添加-----------------------
{
ZZ_U32 coeffsCounter;
double coeffs[100];
}coeffsFrame;
typedef struct tagDeviceInfo
{
std::string strPN;
std::string strSN;
}DeviceInfo;
typedef struct tagDeviceAttribute
{
int iPixels;
int iMaxIntegrationTimeInMS;
int iMinIntegrationTimeInMS;
float fWaveLengthInNM[4096];
}DeviceAttribute;
// inline DataFrame GetIndex(DataFrame dfDark, DataFrame dfSignal)
// {
//
// }
}
enum DeviceModel
{
OSIFAlpha=0,
OSIFBeta,
ISIF,
IS1,
IS2
};
inline std::string GetDeviceModelName(int iModel)
{
switch (iModel)
{
case DeviceModel::OSIFAlpha: return "OSIFAlpha"; break;
case DeviceModel::OSIFBeta: return "OSIFBeta"; break;
case DeviceModel::ISIF: return "ISIF"; break;
case DeviceModel::IS1: return "IS1"; break;
case DeviceModel::IS2: return "IS2"; break;
default: return "error"; break;
}
}
inline int GetIndex(std::string strDeviceModelName)
{
if (strDeviceModelName == "OSIFAlpha")
{
return DeviceModel::OSIFAlpha;
}
else if (strDeviceModelName == "OSIFBeta")
{
return DeviceModel::OSIFBeta;
}
else if (strDeviceModelName == "ISIF")
{
return DeviceModel::ISIF;
}
else if (strDeviceModelName == "IS1")
{
return DeviceModel::IS1;
}
else if (strDeviceModelName == "IS2")
{
return DeviceModel::IS2;
}
else
{
return -1;
}
}
};
//ATP????×???
namespace ATP
{
const int MAX_SPECTRUM_SIZE = 4096;
const int GET_MODULECIRCUIT_TEMP = 0x01;
const int GET_PN_NUMBER = 0x03;
const int GET_SN_NUMBER = 0x04;
const int GET_MANUFACTURE_DATA = 0x06;
const int GET_MANUFACTURE_INFO = 0x09;
const int GET_PIXEL_LENGTH = 0x0a;
const int GET_TEC_TEMP = 0x13;
const int SET_TEC_TEMP = 0x12;
const int GET_OPTICS_TEMP = 0x35;
const int GET_CIRCUITBOARD_TEMP = 0x36;
const int SET_INTEGRATION_TIME = 0x14;
const int GET_INTEGRATION_TIME = 0x41;
const int GET_MAX_INTEGRATION_TIME = 0x42;
const int GET_MIN_INTEGRATION_TIME = 0x43;
const int ASYNC_COLLECT_DARK = 0x23;
const int ASYNC_START_COLLECTION = 0x16;
const int ASYNC_READ_DATA = 0x17;
const int SET_AVERAGE_NUMBER = 0x28;
const int SYNC_GET_DATA = 0x1e;
const int SYNC_GET_DARK = 0x2f;
const int EXTERNAL_TRIGGER_ENABLE = 0x1f;
const int SET_XENON_LAMP_DELAY_TIME = 0x24;
const int GET_WAVELENGTH_CALIBRATION_COEF = 0x55;
const int GET_STAT_LAMPOUT = 0x60;
const int SET_GPIO = 0x61;
//const int SYNCHRONIZATION_GET_DARK = 0x23
//////////////////////////////////////////////////////////////////////////device
enum Model
{
ATP1010 = 0,
ATP6500
};
//???????è??
typedef struct tagATPDataFrame
{
unsigned short usExposureTime;
ZZ_U16 usData[4096];
float fTemperature;
double dTimes = 0;
}ATPDataFrame;
//?è±??????è??
typedef struct tagATPDeviceInfo
{
std::string strPN;
std::string strSN;
}ATPDeviceInfo;
//?è±????÷?è??
typedef struct tagATPDeviceAttribute
{
int iPixels;
int iMaxIntegrationTime;
int iMinIntegrationTime;
float fWaveLength[4096];
}ATPDeviceAttribute;
//////////////////////////////////////////////////////////////////////////config file
}
//????????
namespace ZZ_RUNPARAMS
{
typedef struct tagErrorInfo
{
int iDataTransferErr = -1000;
float fTecTempErr = -1000;
int iShutterErr = -1000;
float fChassisTempErr = -1000;
}ErrInfo;
typedef struct tagFiberSpecContext
{
ZZ_U8 ucDeviceNumber;
ZZ_U8 ucDeviceModel[MAX_DEVICENUMBER_FS];
std::string strInterface[MAX_DEVICENUMBER_FS];
std::string strSN[MAX_DEVICENUMBER_FS];
long lDepth[MAX_DEVICENUMBER_FS];
float fMinFactor[MAX_DEVICENUMBER_FS];
float fMaxFactor[MAX_DEVICENUMBER_FS];
ZZ_U16 usPixels[MAX_DEVICENUMBER_FS];
float fWavelength[MAX_DEVICENUMBER_FS][4096];
}FSContext;
typedef struct tagLinearShutterContext
{
std::string strInterface;
ZZ_U8 ucProtocolType;
ZZ_U8 ucCmdID;
}LSContext;
typedef struct tagAcquisitionTimeSettings
{
QTime qtStartTime;
QTime qtStopTime;
QTime qtInterval;
}AcqTimeSettings;
typedef struct tagAcquisitionPositionSettings
{
int iTotalPosition;
int iPosition[MAX_LINEARSHUTTER_POSITION];
}AcqPosSettings;
typedef struct tagRunTimeGrabberParams
{
LSContext lscParam;
FSContext fscParams;
AcqTimeSettings atsParams;
AcqPosSettings apsParams;
}RunTimeGrabberParams;
typedef struct tagATPCalibrationSettings
{
//Up0 Down1,2,3
QString qsISIF_CalibrationFilePath[4];
QString qsIS1_CalibrationFilePath[4];
}ATPCalibrationSettings;
}
//?????????????á??
namespace ZZ_DATAFILE
{
typedef struct tagEnvironmentalContext
{
QString qstrUTCDateTime;
QString qstrLocation;
QString qstrGPS_Longtitude;
QString qstrGPS_Latitude;
QString qstrGPS_Altitude;
QString qstrGPS_North;
QString qstrCaseTemperature;
QString qstrCaseHumidity;
QString qstrDEV_SN;
}EContext;
typedef struct tagManmadeEnviromentalContext
{
QString qstrOriFileName;
QString qstrInstallationTime;
QString qstrISIFCalibrationTime;
QString qstrIS1CalibrationTime;
QString qstrNameOfMaintenanceStaff;
QString qstrPhoneNumberOfMaintenanceStaff;
QString qstrDownloadUserID;
QString qstrDownlaodAddress;
QString qstrHTTPServer;
}MEContext;
typedef struct tagIS1Information
{
QString qstrSN_ATP;
QString qstrSN_IRIS;
QString qstrCalFile_U0;
QString qstrCalFile_D1;
QString qstrCalFile_D2;
QString qstrCalFile_D3;
int iPixelCount;
int iExposureTimeInMS_U0;
int iExposureTimeInMS_D1;
int iExposureTimeInMS_D2;
int iExposureTimeInMS_D3;
float fTemperature_U0;
float fTemperature_D1;
float fTemperature_D2;
float fTemperature_D3;
}IS1Info;
typedef struct tagISIFInformation
{
QString qstrSN_ATP;
QString qstrSN_IRIS;
QString qstrCalFile_U0;
QString qstrCalFile_D1;
QString qstrCalFile_D2;
QString qstrCalFile_D3;
int iPixelCount;
int iExposureTimeInMS_U0;
int iExposureTimeInMS_D1;
int iExposureTimeInMS_D2;
int iExposureTimeInMS_D3;
float fTemperature_U0;
float fTemperature_D1;
float fTemperature_D2;
float fTemperature_D3;
}ISIFInfo;
typedef struct tagATPDataHeader
{
}ATPDataHeader;
typedef struct tagCalibrationFrame
{
ZZ_U32 uiExposureTimeInMS;
float fTemperature;
int iPixels;
float fWaveLength[4096] = { 0 };
double dCal_Gain[4096] = { 0 };
double dCal_Offset[4096] = { 0 };
}CalFrame;
typedef struct tagCalDataFrame
{
ZZ_U32 usExposureTimeInMS;
float fTemperature = 0;
int iPixels;
float fData[4096];
QString qstrGrabDate;
}CalDataFrame;
}
//misc detector
namespace MISC_DETECTOR
{
typedef struct tagHumitureDeviceInfo
{
QString qstrInterfaceName;
}HumitureDeviceInfo;
}
};
#pragma pack()//恢复默认内存对齐按照8字节