582 lines
12 KiB
C++
582 lines
12 KiB
C++
#ifndef _ANALYZESPECTURMEXPORT_H_
|
||
#define _ANALYZESPECTURMEXPORT_H_
|
||
|
||
#ifdef ANALYZESPECTURM_EXPORTS
|
||
#define ANALYZESPECTURM_API(type) __declspec(dllexport) type __stdcall
|
||
#else
|
||
#define ANALYZESPECTURM_API(type) __declspec(dllimport) type __stdcall
|
||
#endif
|
||
|
||
#include "NuclideLibraryDefine.h"
|
||
#include "PeakInfoDefine.h"
|
||
|
||
#define MSS_SPECTURMDATA_MAXSIZE 65536
|
||
|
||
#pragma pack(push,1)
|
||
|
||
//s - Peak fails shape tests.
|
||
//D - Peak area deconvoluted.
|
||
//M - Peak is close to a library peak.
|
||
|
||
|
||
enum ePeakUseFlag
|
||
{
|
||
ePUF_PEAK_FAILED_SHAPE_TEST,
|
||
ePUF_PEAK_DECONVOLUTED,
|
||
ePUF_PEAK_FIT_NUCLIDE,
|
||
ePUF_PEAK_SMALL_POS,
|
||
|
||
|
||
eNF_ACTIVITY_AVG_CALC = 16,
|
||
eNF_PEAK_TOO_WIDE,
|
||
eNF_PEAK_MULT_AREA_NEG,
|
||
eNF_PEAK_TOO_NARROW,
|
||
eNF_PEAK_FWH25M_WIDE,
|
||
eNF_PEAK_FAILED_SENS_TEST,
|
||
eNF_PEAK_IDTY_FIRST_PEAK_FIALED,
|
||
eNF_LARGE_INCALC_ACTIVITY,
|
||
eNF_SMALL_INCALC_ACTIVITY,
|
||
eNF_PEAK_OUTSIDE_ANS_ENERGY_RANGE,
|
||
eNF_PEAK_CENTROID_IS_NOT_CLOSE_TO_LIB,
|
||
eNF_PEAK_BACKGROUND_COR,
|
||
};
|
||
|
||
|
||
#define IS_POS_CHECKED(flag,pos) ( (flag & (1 << pos)) == (1 << pos) )
|
||
|
||
#define SET_SHAPE_CHECK_FAILED(flag) (flag |= (1 << ePUF_PEAK_FAILED_SHAPE_TEST))
|
||
#define SET_SHAPE_CHECK_SUCCESS(flag) (flag &= ~(1 << ePUF_PEAK_FAILED_SHAPE_TEST))
|
||
|
||
#define SET_PEAK_DECONVOLUTED(flag) (flag |= (1 << ePUF_PEAK_DECONVOLUTED))
|
||
#define RESET_PEAK_DECONVOLUTED(flag) (flag &=~(1 << ePUF_PEAK_DECONVOLUTED))
|
||
|
||
#define SET_PEAK_FIT_NUCLIDE(flag) (flag |= (1 << ePUF_PEAK_FIT_NUCLIDE))
|
||
#define RESET_PEAK_FIT_NUCLIDE(flag) (flag &=~(1 << ePUF_PEAK_FIT_NUCLIDE))
|
||
#define IS_PEAK_FIT_NUCLIDE(flag) IS_POS_CHECKED( flag,ePUF_PEAK_FIT_NUCLIDE)
|
||
|
||
#define SET_PEAK_SMALL(flag) (flag |= (1 << ePUF_PEAK_SMALL_POS))
|
||
#define RESET_PEAK_SMALL(flag) (flag &=~(1 << ePUF_PEAK_SMALL_POS))
|
||
#define IS_PEAK_SMALL(flag) IS_POS_CHECKED( flag,ePUF_PEAK_SMALL_POS)
|
||
|
||
|
||
#define IS_NI_FLAG_CHECKED(flag,v) ( (flag &( 1 << v)) == (1 << v))
|
||
#define SET_NI_FLAG(flag,v) (flag |= (1 << v))
|
||
#define RESET_NI_FLAG(flag,v) (flag &= ~(1 << v))
|
||
|
||
#define IS_NI_KEY_LINE(flag) IS_NI_FLAG_CHECKED(flag,eNI_K)
|
||
#define IS_NI_NOT_IN_AVG(flag) IS_NI_FLAG_CHECKED(flag,eNI_A)
|
||
|
||
#define SET_ACTIVITY_AVG_CALC(flag) SET_NI_FLAG(flag,eNF_ACTIVITY_AVG_CALC)
|
||
#define IS_ACTIVITY_AVG_CALC_SET(flag) IS_NI_FLAG_CHECKED(flag,eNF_ACTIVITY_AVG_CALC)
|
||
|
||
#define SET_LARGE_INCALC_ACTIVITY(flag) SET_NI_FLAG(flag,eNF_LARGE_INCALC_ACTIVITY)
|
||
|
||
#define SET_SMALL_INCALC_ACTIVITY(flag) SET_NI_FLAG(flag,eNF_SMALL_INCALC_ACTIVITY)
|
||
|
||
#define SET_PEAK_FAILED_SENS_TEST(flag) SET_NI_FLAG(flag,eNF_PEAK_FAILED_SENS_TEST)
|
||
|
||
|
||
enum eLinearFitType
|
||
{
|
||
eLFTNone,
|
||
// <20><><EFBFBD>Բ<EFBFBD>ֵ
|
||
eInterpolative,
|
||
// һ<>κ<EFBFBD><CEBA><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><32>δ֪<CEB4><D6AA>
|
||
eLine2,
|
||
// <20><><EFBFBD>κ<EFBFBD><CEBA><EFBFBD>,3<><33>δ֪<CEB4><D6AA>
|
||
eLine3,
|
||
// <20><><EFBFBD>κ<EFBFBD><CEBA><EFBFBD>
|
||
eEFTPloy,
|
||
// һ<>κ<EFBFBD><CEBA><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><32>δ֪<CEB4><D6AA>,<2C><>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
eLine2WithW,
|
||
// <20><><EFBFBD>κ<EFBFBD><CEBA><EFBFBD>,3<><33>δ֪<CEB4><D6AA>,<2C><>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
eLine3WithW,
|
||
eLine4,// <20><><EFBFBD>κ<EFBFBD><CEBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
};
|
||
|
||
typedef struct sLinearFitResult
|
||
{
|
||
eLinearFitType type;
|
||
double a;
|
||
double b;
|
||
double c;
|
||
double d;
|
||
double e;
|
||
double f;
|
||
double sa;
|
||
double sb;
|
||
double sc;
|
||
double sd;
|
||
double se;
|
||
double sf;
|
||
double chisq;
|
||
}sLinearFitResult;
|
||
|
||
class NuclideLibrary;
|
||
struct sDataInfo
|
||
{
|
||
int *pOrgData;
|
||
int Orglen;
|
||
|
||
double dRealTime;
|
||
double dLiveTime;
|
||
|
||
int iPeakBeginCh; // <20>忪ʼ<E5BFAA><CABC>ַ
|
||
|
||
NuclideLibrary *pNuclideLibaray;
|
||
};
|
||
|
||
typedef struct sSmoothConfig
|
||
{
|
||
int bUseGaussSmoothNum;
|
||
int bUseGaussSmoothTimes;
|
||
}sSmoothConfig;
|
||
|
||
typedef struct sPeakSearchConfig
|
||
{
|
||
double dSerachSensity;
|
||
int iChNumOnEachSide;
|
||
|
||
double dSfwhmRadioFwhmMaxValue;
|
||
double dSheightRadioHeightValue;
|
||
}sPeakSearchConfig;
|
||
|
||
typedef struct sResolvePeakConfig
|
||
{
|
||
double dnofwhmofpeak;
|
||
double dnofwhmofSideBaseLine;
|
||
}sResolvePeakConfig;
|
||
|
||
typedef struct sMatchPeaksConfig
|
||
{
|
||
double toler;
|
||
double dprob;
|
||
}sMatchPeaksConfig;
|
||
|
||
typedef struct sPeakInfoConfig
|
||
{
|
||
BOOL isroi;
|
||
int leftch;
|
||
int righch;
|
||
int n;
|
||
int cursorpeak;
|
||
}sPeakInfoConfig;
|
||
|
||
typedef struct sCursorOnePeakInfo
|
||
{
|
||
double dChannel; // <20><><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>ַ
|
||
double dEnergy; // <20><><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>
|
||
int iNIChannel;
|
||
double dNIEnergy;
|
||
int iLeftChannel;
|
||
int iRightChannel;
|
||
char cNName[32];
|
||
double fwhm;
|
||
double fwh5m;
|
||
double dGrossArea;
|
||
double dGrossAreaCountRate;
|
||
double dNetArea;
|
||
double dNetAreaCountRate;
|
||
double dNetAreaUncertain;
|
||
double dcA; // counting activity,
|
||
|
||
}sCursorOnePeakInfo;
|
||
|
||
typedef struct sPeakInfoResult
|
||
{
|
||
double* pSmoothData;
|
||
int iSmoothDataLen;
|
||
|
||
double* pSecDiffData;
|
||
int iSecDiffDataLen;
|
||
|
||
sCursorOnePeakInfo peakinfo;
|
||
}sPeakInfoResult;
|
||
|
||
typedef struct sConfigInfo
|
||
{
|
||
sSmoothConfig smoothconfig;
|
||
sPeakSearchConfig peaksearchconfig;
|
||
sResolvePeakConfig resolvepeakconfig;
|
||
sLinearFitResult energycal; // <20><><EFBFBD><EFBFBD><EFBFBD>̶<EFBFBD>
|
||
sMatchPeaksConfig matchpeakconfig;
|
||
sPeakInfoConfig peakInfoConfig;
|
||
}sConfigInfo;
|
||
|
||
|
||
typedef struct OneValue
|
||
{
|
||
double v;
|
||
double sv;
|
||
}OneValue;
|
||
|
||
typedef struct sOneBaseLineInfo
|
||
{
|
||
eLinearFitType type;
|
||
int leftch;
|
||
int rightch;
|
||
OneValue a;
|
||
OneValue b;
|
||
OneValue c;
|
||
OneValue d;
|
||
double chisq;
|
||
double leftsmoothpoint;
|
||
double rightsmoothpoint;
|
||
double leftvalue;
|
||
double rightvalue;
|
||
double peakpos;
|
||
|
||
double grossarea;
|
||
double bdarea;
|
||
OneValue netarea;
|
||
|
||
double directfitnetarea;
|
||
}sOneBaseLineInfo;
|
||
|
||
typedef struct sOnePeakInfo
|
||
{
|
||
OneValue height;
|
||
OneValue centor;
|
||
OneValue width;
|
||
// <20><><EFBFBD>߿<EFBFBD><DFBF><EFBFBD><EFBFBD><EFBFBD>ַ
|
||
OneValue fwhm;
|
||
////y = a*exp(-b*(x-c)^2)); fwhmwidth = b
|
||
double fwhmwidth;
|
||
// <20><><EFBFBD>߿<EFBFBD><DFBF><EFBFBD><EFBFBD><EFBFBD>ַ
|
||
OneValue fittedfwhm;
|
||
// //y = a*exp(-b*(x-c)^2)); fittedwidth = b
|
||
OneValue fittedwidth;
|
||
OneValue area;
|
||
OneValue bdarea;
|
||
|
||
double leftch;
|
||
double rightch;
|
||
|
||
double energy;
|
||
|
||
int flag;
|
||
|
||
double leftsmoothpoint;
|
||
double rightsmoothpoint;
|
||
double leftvalue;
|
||
double rightvalue;
|
||
|
||
// <20><><EFBFBD><EFBFBD> У<><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ʱ<EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD>
|
||
OneValue activity;
|
||
// MDA
|
||
OneValue mda;
|
||
sOneNuclideInfo oni;
|
||
sOneEnergyLine onl;
|
||
sOneBaseLineInfo obli;
|
||
}sOnePeakInfo;
|
||
|
||
typedef struct sMulPeakInfo
|
||
{
|
||
int MulPeakNum;
|
||
sOnePeakInfo peakinfo;
|
||
}sMulPeakInfo;
|
||
|
||
|
||
typedef struct sBaseLineInfo
|
||
{
|
||
sOneBaseLineInfo leftbaseline;
|
||
sOneBaseLineInfo rightbaseline;
|
||
sOneBaseLineInfo peakbaseline;
|
||
}sBaseLineInfo;
|
||
|
||
class _sOneNuclideActivity;
|
||
typedef struct sResultInfo
|
||
{
|
||
char measureDate[32];
|
||
double dRealTime;
|
||
double dLiveTime;
|
||
int sprtLen;
|
||
double* pSmoothData;
|
||
int iSmoothDataLen;
|
||
|
||
double* pSecDiffData;
|
||
int iSecDiffDataLen;
|
||
|
||
double* pCandidatePeaks;
|
||
int iCandidatePeakNum;
|
||
|
||
int iFinalPeakNum; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> inout <20><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>С<EFBFBD><D0A1><EFBFBD>ֽڵ<D6BD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
int iNotEnoughMemery;
|
||
sOnePeakInfo* pSearchPeakResult;
|
||
|
||
sLinearFitResult linFitResult;
|
||
|
||
int iBaseLineNum; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> inout <20><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>С<EFBFBD><D0A1><EFBFBD>ֽڵ<D6BD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
int iNotEnoughMemeryofBaseLine;
|
||
sBaseLineInfo *pBaselineInfo;
|
||
|
||
int iMulPeakNum; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> inout <20><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>С<EFBFBD><D0A1><EFBFBD>ֽڵ<D6BD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
int iNotEnoughMemeryofMulPeak;
|
||
sMulPeakInfo *pMulPeakInfo;
|
||
|
||
int iNucResultNum; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> inout <20><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>С<EFBFBD><D0A1><EFBFBD>ֽڵ<D6BD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
||
int iNotEnoughMemeryofNucResult;
|
||
_sOneNuclideActivity *pNucResultInfo;
|
||
}sResultInfo;
|
||
|
||
|
||
struct sFitData
|
||
{
|
||
eLinearFitType type;
|
||
int size;
|
||
double *px;
|
||
double *py;
|
||
double *pw;
|
||
};
|
||
|
||
typedef struct ASDataInfo
|
||
{
|
||
int* pHandle; // <20>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>
|
||
int bdidx;
|
||
int chidx;
|
||
double beginchannel;
|
||
double endchannel;
|
||
eDisplaSprtInfoType calcType;
|
||
double energy;
|
||
eCalcSprtSubInfoType sprtSubType;
|
||
unsigned char reserve[20];
|
||
}ASDataInfo;
|
||
|
||
enum eSearchPeakSensityLevel
|
||
{
|
||
eSPS_1,
|
||
eSPS_2,
|
||
eSPS_3,
|
||
eSPS_4,
|
||
eSPS_5
|
||
};
|
||
|
||
typedef struct OneDefaultConfig
|
||
{
|
||
BOOL enalbe;
|
||
BOOL useInternal;
|
||
char path[MAX_PATH];
|
||
}OneDefaultConfig;
|
||
|
||
enum eBackgroundType
|
||
{
|
||
eBTAuto,
|
||
eBTOne,
|
||
eBTThree,
|
||
eBTFive,
|
||
};
|
||
|
||
typedef struct AnalysisSampleConfig
|
||
{
|
||
// <20><><EFBFBD><EFBFBD>
|
||
char Description[128];
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ
|
||
double beginchannel;
|
||
double endchannel;
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
double RandomSum;
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
eBackgroundType BGType;
|
||
// <20><><EFBFBD>ؿ<EFBFBD>
|
||
OneDefaultConfig NuclideLib;
|
||
// У<><D0A3><EFBFBD>ļ<EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD>̶<EFBFBD>,Ч<>ʿ̶<CABF>
|
||
OneDefaultConfig Clb;
|
||
}AnalysisSampleConfig;
|
||
|
||
enum eMDAType
|
||
{
|
||
eMDATP_1
|
||
};
|
||
|
||
enum eASUnit
|
||
{
|
||
eASUBq,
|
||
eASUuCi,
|
||
};
|
||
|
||
typedef struct AnalysisSystemConfig
|
||
{
|
||
// ʵ<><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
char LaboratoryName[128];
|
||
// <20><><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1>
|
||
char OperatorName[128];
|
||
// MDA<44><41><EFBFBD><EFBFBD>
|
||
eMDAType mdaType;
|
||
// Ѱ<><D1B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
eSearchPeakSensityLevel eSPSLevel;
|
||
// ƥ<><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
double dlibMatchWidth;
|
||
// <20><>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 100
|
||
double dlibFractionLimit;
|
||
// <20><><EFBFBD>ɺ<EFBFBD><C9BA>ؿ<EFBFBD>
|
||
OneDefaultConfig libSuspect;
|
||
// <20><>λ
|
||
eASUnit asuUit;
|
||
double asuMultiplier;
|
||
double asuDivisor;
|
||
char asuActivity[32];
|
||
double asuSize;
|
||
char asuSizeUnit[32];
|
||
double asuSizeUncertain;
|
||
}AnalysisSystemConfig;
|
||
|
||
typedef struct AnalysisDecayConfig
|
||
{
|
||
// ˥<><CBA5>У<EFBFBD><D0A3>
|
||
BOOL bDecayCorrection;
|
||
// ˥<><CBA5>У<EFBFBD><D0A3> yyyy-MM-dd HH:mm:ss
|
||
char bDCDateTime[32];
|
||
// <20><><EFBFBD>߲ɼ<DFB2>У<EFBFBD><D0A3>
|
||
BOOL bAcquisitionCorr;
|
||
|
||
// <20><>Ʒ<EFBFBD>ɼ<EFBFBD>ʱ<EFBFBD><CAB1>У<EFBFBD><D0A3>
|
||
BOOL bSampleCorrect;
|
||
// <20><>Ʒ<EFBFBD>ɼ<EFBFBD>ʱ<EFBFBD><CAB1>У<EFBFBD><D0A3> yyyy-MM-dd HH:mm:ss
|
||
char bSCStartDateTime[32];
|
||
// <20><>Ʒ<EFBFBD>ɼ<EFBFBD>ʱ<EFBFBD><CAB1>У<EFBFBD><D0A3>yyyy-MM-dd HH:mm:ss
|
||
char bSCStopDateTime[32];
|
||
}AnalysisDecayConfig;
|
||
|
||
enum eUncertainReportUnitType
|
||
{
|
||
eUPUTPercent,
|
||
eUPUTActivity
|
||
};
|
||
|
||
enum eUncertainReportValueType
|
||
{
|
||
eUPVTCouting,
|
||
eUPTVTotal
|
||
};
|
||
|
||
enum eUncertainLevel
|
||
{
|
||
eULOne,
|
||
eULTwo,
|
||
eULThree,
|
||
};
|
||
|
||
enum eOutputType
|
||
{
|
||
eOTPrinter,
|
||
eFile,
|
||
eProgram,
|
||
};
|
||
|
||
typedef struct AnalysisReportConfig
|
||
{
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
||
int dReportOption;
|
||
// <20><>ȷ<EFBFBD><C8B7><EFBFBD>ȱ<EFBFBD><C8B1>浥λ
|
||
eUncertainReportUnitType URUTType;
|
||
// <20><>ȷ<EFBFBD><C8B7><EFBFBD>ȱ<EFBFBD><C8B1><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
|
||
eUncertainReportUnitType URVTType;
|
||
// <20><>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD>ˮƽ
|
||
eUncertainLevel UncertainLevel;
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
eOutputType OTType;
|
||
// <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><D7BD><EFBFBD>
|
||
BOOL bDisplayAnalysisResult;
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
|
||
char FileProgramInfo[260];
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
char ProgramInfo[260];
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
char ReporterInfo[260];
|
||
}AnalysisReportConfig;
|
||
|
||
typedef struct AnalysisMethodConfig
|
||
{
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> %
|
||
double dSystematic;
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
double dRandom;
|
||
}AnalysisMethodConfig;
|
||
|
||
typedef struct AnalysisCorrectionConfig
|
||
{
|
||
// <20>屾<EFBFBD><E5B1BE>У<EFBFBD><D0A3>
|
||
OneDefaultConfig PBC;
|
||
// <20><><EFBFBD><EFBFBD>У<EFBFBD><D0A3>
|
||
OneDefaultConfig GeometryC;
|
||
// ˥<><CBA5>У<EFBFBD><D0A3>
|
||
OneDefaultConfig AttenuationC;
|
||
}AnalysisCorrectionConfig;
|
||
|
||
typedef struct AnalysisDataDealConfig
|
||
{
|
||
int bUseGaussSmoothNum;
|
||
int bUseGaussSmoothTimes;
|
||
// <20><><EFBFBD>β<EFBFBD><CEB2><EFBFBD>
|
||
double dSfwhmRadioFwhmMaxValue;
|
||
double dSheightRadioHeightValue;
|
||
// <20><><EFBFBD><EFBFBD>
|
||
double dnofwhmofpeak;
|
||
double dnofwhmofSideBaseLine;
|
||
|
||
unsigned char reserve[128];
|
||
}AnalysisDataDealConfig;
|
||
|
||
typedef struct AnalysisSpecturmConfig
|
||
{
|
||
AnalysisSampleConfig ascSample;
|
||
AnalysisSystemConfig ascSystem;
|
||
AnalysisDecayConfig ascDecay;
|
||
AnalysisReportConfig ascReport;
|
||
AnalysisMethodConfig ascMethod;
|
||
AnalysisCorrectionConfig ascCorrection;
|
||
AnalysisDataDealConfig ascDataDeal;
|
||
|
||
unsigned char reserve[128];
|
||
}AnalysisSpecturmConfig;
|
||
|
||
class _sOneNuclideActivity
|
||
{
|
||
public:
|
||
sOneNuclideInfo info;
|
||
OneValue activity;
|
||
OneValue totalActivityUncertain;
|
||
OneValue mda;
|
||
};
|
||
|
||
typedef struct AnalyzeSpecturmConfigInfo
|
||
{
|
||
int head;
|
||
int version;
|
||
char CreateTime[32];
|
||
char LastModifyTime[32];
|
||
char Desc[128];
|
||
unsigned char reserve[256];
|
||
}AnalyzeSpecturmConfigInfo;
|
||
|
||
#pragma pack(pop)
|
||
|
||
|
||
#ifdef __cplusplus
|
||
extern "C" {
|
||
#endif
|
||
ANALYZESPECTURM_API(int) NuclideIndentifaction(int*pInst, sDataInfo* pSpecturmData, sConfigInfo *pConfig, sResultInfo *pResultInfo, char *ErrorInfo);
|
||
|
||
ANALYZESPECTURM_API(int) NuclideIndentifactionV2(int*pInst, ASDataInfo* pASDI, sConfigInfo *pConfig, sResultInfo *pResultInfo, char *ErrorInfo);
|
||
|
||
ANALYZESPECTURM_API(int) NuclideIndentifactionV3(int*pInst, ASDataInfo* pASDI, sResultInfo *pResultInfo, char *ErrorInfo);
|
||
|
||
ANALYZESPECTURM_API(int) FitLinear(int*pInst, sFitData* pSpecturmData, sLinearFitResult *pResultInfo, char *ErrorInfo);
|
||
|
||
ANALYZESPECTURM_API(int*) GetInst(char *ErrorInfo);
|
||
ANALYZESPECTURM_API(int) FreeInst(int*pInst);
|
||
|
||
ANALYZESPECTURM_API(int) GetAnalyzeSpecturmConfig(AnalyzeSpecturmConfigInfo *pInfo, AnalysisSpecturmConfig *pconfig, char *ErrMsg);
|
||
|
||
ANALYZESPECTURM_API(int) SetAnalyzeSpecturmConfig(AnalyzeSpecturmConfigInfo *pInfo, AnalysisSpecturmConfig *pconfig, char *ErrMsg);
|
||
|
||
ANALYZESPECTURM_API(int) SaveAnalyzeSpecturmConfig(const char *path, char *ErrMsg);
|
||
|
||
ANALYZESPECTURM_API(int) ReadAnalyzeSpecturmConfig(const char *path, char *ErrMsg);
|
||
|
||
ANALYZESPECTURM_API(int) GetCusorNuclideInfo(int*pInst, ASDataInfo* pASDI, sResultInfo *pResultInfo, char *ErrorInfo);
|
||
#ifdef __cplusplus
|
||
}
|
||
#endif
|
||
|
||
#endif // _ANALYZESPECTURMEXPORT_H_
|