1607 lines
41 KiB
C++
1607 lines
41 KiB
C++
|
|
#include "MemRdWt.h"
|
|||
|
|
#include "math.h"
|
|||
|
|
#include "BaseFun.h"
|
|||
|
|
#include <stdio.h>
|
|||
|
|
#include "DepthProgress.h"
|
|||
|
|
#include <iostream>
|
|||
|
|
#include <fstream>
|
|||
|
|
#include<time.h>
|
|||
|
|
//#include <Windows.h>
|
|||
|
|
#include <QFileDialog>
|
|||
|
|
#include <QTextStream>
|
|||
|
|
#include <math.h>
|
|||
|
|
#include"fftw3.h"
|
|||
|
|
#include"Att_c_find.h"
|
|||
|
|
#include"hilbert.h"
|
|||
|
|
#include"Inputtuban.h"
|
|||
|
|
//#include"maxInArray.h"
|
|||
|
|
#include"SLG_plate.h"
|
|||
|
|
#include"Zc_Zm_comb.h"
|
|||
|
|
#include"S_per.h"
|
|||
|
|
#include"Ecc_Co.h"
|
|||
|
|
#include"FindPeak.h"
|
|||
|
|
#include"InArray_self.h"
|
|||
|
|
#include"Rate_Co.h"
|
|||
|
|
#include"Thcav_Co.h"
|
|||
|
|
#include"findcc.h"
|
|||
|
|
|
|||
|
|
#ifdef BOOL
|
|||
|
|
#undef BOOL
|
|||
|
|
#endif
|
|||
|
|
#include <Windows.h>
|
|||
|
|
|
|||
|
|
using namespace std;
|
|||
|
|
#define PI (float)3.1415926
|
|||
|
|
#define NN 300
|
|||
|
|
#define NFFT 80
|
|||
|
|
//FILE* fpF,*fpF1,*fpN1,*fpN,*fpR,*fpR1,*fp11,*fp12,*fp13,*fpSPR;
|
|||
|
|
//FILE* fpJc;
|
|||
|
|
//FILE* fpR1,*fpR2,*fpR3,*fpR4,*fpR5,*fpR6,*fpR7;
|
|||
|
|
//------------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>----------------------------------------------
|
|||
|
|
Slf_WAVE mWave[1];
|
|||
|
|
using namespace std;
|
|||
|
|
#define OUTNAME "OUT1"
|
|||
|
|
|
|||
|
|
extern "C"{
|
|||
|
|
|
|||
|
|
//------------------------------------------------------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>----------------------------------------------------------------------------------
|
|||
|
|
_declspec (dllexport) struct INC_STRU INC={12,
|
|||
|
|
"FWGN:Զ<><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,raw;; \
|
|||
|
|
FWST:Զ<EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD>,<EFBFBD><EFBFBD>s;;\
|
|||
|
|
NWGN:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,raw;;\
|
|||
|
|
NWST:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD>,<EFBFBD><EFBFBD>s;; \
|
|||
|
|
RWGN:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,raw;;\
|
|||
|
|
RWST:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD>,<EFBFBD><EFBFBD>s;; \
|
|||
|
|
MWAVE:<EFBFBD>ཬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD>s;; \
|
|||
|
|
MWGN:<EFBFBD>ཬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,raw;; \
|
|||
|
|
MWST:<EFBFBD>ཬ<EFBFBD>ӳ<EFBFBD>,<EFBFBD><EFBFBD>s;; \
|
|||
|
|
W80F:<EFBFBD>¶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD>;; \
|
|||
|
|
RB:<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,(<EFBFBD><EFBFBD>);; \
|
|||
|
|
RPS:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,r/s;;"};
|
|||
|
|
_declspec (dllexport) struct INP_STRU INP;
|
|||
|
|
//_declspec (dllexport) struct OUTC_STRU OUTC={18, "ATT:˥<><CBA5>;;\
|
|||
|
|
RATE:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD>;;\
|
|||
|
|
ATTC:<EFBFBD><EFBFBD>˥<EFBFBD><EFBFBD>;;\
|
|||
|
|
ZCC:<EFBFBD><EFBFBD><EFBFBD>迹;;\
|
|||
|
|
SLG:<EFBFBD><EFBFBD>Һ<EFBFBD><EFBFBD>״̬;;\
|
|||
|
|
THC:<EFBFBD>ܺ<EFBFBD><EFBFBD><EFBFBD>;;\
|
|||
|
|
AMP:<EFBFBD><EFBFBD><EFBFBD>ڱڴֲڶ<EFBFBD>;;\
|
|||
|
|
SPR_ALL:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD>;;\
|
|||
|
|
LPR_ALL:Һ<EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD>;;\
|
|||
|
|
GPR_ALL:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD>;;\
|
|||
|
|
THCAV:<EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;;\
|
|||
|
|
THCMN:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;;\
|
|||
|
|
THCMX:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;;\
|
|||
|
|
ECM:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>;;\
|
|||
|
|
CEM:<EFBFBD>ܾ<EFBFBD><EFBFBD>ж<EFBFBD>;;\
|
|||
|
|
THerr:<EFBFBD>ܺ<EFBFBD><EFBFBD>ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;;\
|
|||
|
|
THLR:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>;;\
|
|||
|
|
THCSD:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;;"};
|
|||
|
|
//
|
|||
|
|
////8, "ATT:36<33><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˥<EFBFBD><CBA5>ֵ;dB/m; RATE:72<37><32><EFBFBD><EFBFBD><EFBFBD>εĹ<CEB5><C4B9><EFBFBD>Ч<EFBFBD><D0A7>ֵ;%; ATTC:<3A><EFBFBD>˥<EFBFBD><CBA5><EFBFBD><EFBFBD>;none; ZCC:<3A><EFBFBD><D7BA>迹;MRayI; SLG:<3A><EFBFBD><D7BA><EFBFBD>Һ<EFBFBD><D2BA>״̬;none; THC:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܺ<D7B9><DCBA><EFBFBD>;mm;AMP:<3A><EFBFBD><D7B9>ڲ<EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>;none;SLGall:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;none;"
|
|||
|
|
//_declspec (dllexport) struct OUTP_STRU OUTP;
|
|||
|
|
_declspec (dllexport) struct HD_STRU HD={0.0,9999.0,0.0,0.0,0.0,0.0,0.0,"CBUIprogram.INP","CBUIprogram.TLP"};
|
|||
|
|
__declspec (dllexport) struct CONC_STRU CONC={32,
|
|||
|
|
"CTH:<3A>ܺ<D7B9><DCBA><EFBFBD>,mm;;;;10.54;\
|
|||
|
|
CT:ˮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;;;;1;\
|
|||
|
|
IT:<EFBFBD>ܳߴ<EFBFBD>,mm;;;;139.7;\
|
|||
|
|
MT:<EFBFBD>ཬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;;;;1;\
|
|||
|
|
STEV:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,m/s;;;;5200;\
|
|||
|
|
ZM1:<EFBFBD>ཬ<EFBFBD>迹,MRayls;;;;1.5;\
|
|||
|
|
LSM:ƽ<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>;;;;2;\
|
|||
|
|
BW:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD>;;;;0.08;\
|
|||
|
|
CON1:˥<EFBFBD><EFBFBD>У<EFBFBD><EFBFBD>,dB/m;;;;-35;\
|
|||
|
|
CON2:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD>;;;;0.01;\
|
|||
|
|
CON3:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;;;;0.55;\
|
|||
|
|
RWD:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ,<EFBFBD><EFBFBD>s;;;;20;\
|
|||
|
|
RWL:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD>s;;;;30;\
|
|||
|
|
FPS:<EFBFBD><EFBFBD>ķ<EFBFBD><EFBFBD>Ѱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>;;;;20;\
|
|||
|
|
FPE:<EFBFBD><EFBFBD>ķ<EFBFBD><EFBFBD>Ѱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD><EFBFBD>;;;;300;\
|
|||
|
|
RM1:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD>,kHz;;;;20;\
|
|||
|
|
RM2:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,kHz;;;;40;\
|
|||
|
|
RL:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>,<EFBFBD><EFBFBD>s;;;;48;\
|
|||
|
|
S1:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵֹ,%;;;;10;\
|
|||
|
|
S2:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>н<EFBFBD>ֵֹ,%;;;;70;\
|
|||
|
|
S3:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ý<EFBFBD>ֵֹ,%;;;;90;\
|
|||
|
|
L1:Һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ý<EFBFBD>ֵֹ,%;;;;10;\
|
|||
|
|
L2:Һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>н<EFBFBD>ֵֹ,%;;;;20;\
|
|||
|
|
L3:Һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵֹ,%;;;;90;\
|
|||
|
|
G1:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵֹ,%;;;;90;\
|
|||
|
|
CCMX:<EFBFBD>ܲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵֹ,m;;;;2;\
|
|||
|
|
CCMN:<EFBFBD>ܲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵֹ,m;;;;1;\
|
|||
|
|
NSR:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD>s;;;;400;\
|
|||
|
|
FSR:Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD>s;;;;400;\
|
|||
|
|
RSR:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD>s;;;;400;\
|
|||
|
|
CID:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,mm;;;;29.5;\
|
|||
|
|
CD:<EFBFBD><EFBFBD>ķ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,mm;;;;27.2;"
|
|||
|
|
};
|
|||
|
|
_declspec (dllexport) struct CON_STRU CON={10.54,1,139.7,1,5200,1.5,2,0.08,-35,0.01,0.55,20,30,20,300,20,40,48,10,70,90,10,20,90,90,2,1,400,400,400,29.5,27.2};
|
|||
|
|
_declspec (dllexport) struct ErrorInf errorinf;
|
|||
|
|
__declspec (dllexport) struct LogType LogType={};//WAVE_OBJECT,WAVE_OBJECT,WAVE_OBJECT,WAVE_OBJECT,WAVE_OBJECT,WAVE_OBJECT
|
|||
|
|
__declspec( dllexport ) CMemRdWt MemRdWt;
|
|||
|
|
_declspec (dllexport) int CBUIprogram();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
typedef struct ss_struct
|
|||
|
|
{
|
|||
|
|
int GNO;
|
|||
|
|
float GSDEP,GEDEP;
|
|||
|
|
int GRESULT;
|
|||
|
|
} GUJING;
|
|||
|
|
|
|||
|
|
struct Fdpr {
|
|||
|
|
float fdep;
|
|||
|
|
float fspr;
|
|||
|
|
// float flpr;
|
|||
|
|
float fgpr;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
|
|||
|
|
int getRange(float y,float S1,float S2,float S3)
|
|||
|
|
{
|
|||
|
|
if (y >= 0 && y < S1) return 0;
|
|||
|
|
if (y >= S1 && y < S2) return 1;
|
|||
|
|
if (y >= S2 && y < S3) return 2;
|
|||
|
|
if (y >= S3 && y <= 100) return 3;
|
|||
|
|
return -1;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
struct Process_Struct
|
|||
|
|
{
|
|||
|
|
//------------------------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-------------------------------------
|
|||
|
|
//float ATT, RATE,ATTC,ZCC,SLG,THC,AMP,SPR_ALL,LPR_ALL, GPR_ALL,THCAV,THCMN,THCMX,ECM, CEM, THerr, THLR,THCSD;
|
|||
|
|
float CTH,CT,IT,MT,STEV,ZM1,LSM,BW,CON1,CON2,CON3,RWD,RWL,FPS,FPE,RM1,RM2,RL,S1,S2,S3,L1,L2,L3,G1,CCMX,CCMN,NSR,FSR,RSR,CID,CD;
|
|||
|
|
int Process();
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
int CBUIprogram()
|
|||
|
|
{
|
|||
|
|
//-------------------------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>----------------------------------------
|
|||
|
|
Process_Struct Process;
|
|||
|
|
return Process.Process();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
int Process_Struct::Process()
|
|||
|
|
{
|
|||
|
|
if(HD.Sdep >= HD.EndDep)
|
|||
|
|
{
|
|||
|
|
AfxMessageBox("<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n<EFBFBD><EFBFBD>ֹͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|||
|
|
return 0;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//-------------------------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>----------------------------------------
|
|||
|
|
MemRdWt.Const();
|
|||
|
|
MemRdWt.In();
|
|||
|
|
MemRdWt.Out();
|
|||
|
|
//char name[100];
|
|||
|
|
//MemRdWt.GetInCurveName(0,name);
|
|||
|
|
Slf_WAVE waveinf;
|
|||
|
|
|
|||
|
|
//-----------------------------------------2 <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<DEB8>-----------------------------------------------
|
|||
|
|
#pragma region <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
|||
|
|
//float NSR[36], FSR[36], RSR[72];
|
|||
|
|
|
|||
|
|
|
|||
|
|
GetPosValue(CTH,CON,1,1);
|
|||
|
|
GetPosValue(CT,CON,2,1);
|
|||
|
|
GetPosValue(IT,CON,3,1);
|
|||
|
|
GetPosValue(MT,CON,4,1);
|
|||
|
|
GetPosValue(STEV,CON,5,1);
|
|||
|
|
GetPosValue(ZM1,CON,6,1);
|
|||
|
|
GetPosValue(LSM,CON,7,1);
|
|||
|
|
GetPosValue(BW,CON,8,1);
|
|||
|
|
GetPosValue(CON1,CON,9,1);
|
|||
|
|
GetPosValue(CON2,CON,10,1);
|
|||
|
|
GetPosValue(CON3,CON,11,1);
|
|||
|
|
GetPosValue(RWD,CON,12,1);
|
|||
|
|
GetPosValue(RWL,CON,13,1);
|
|||
|
|
GetPosValue(FPS,CON,14,1);
|
|||
|
|
GetPosValue(FPE,CON,15,1);
|
|||
|
|
GetPosValue(RM1,CON,16,1);
|
|||
|
|
GetPosValue(RM2,CON,17,1);
|
|||
|
|
GetPosValue(RL,CON,18,1);
|
|||
|
|
GetPosValue(S1,CON,19,1);
|
|||
|
|
GetPosValue(S2,CON,20,1);
|
|||
|
|
GetPosValue(S3,CON,21,1);
|
|||
|
|
GetPosValue(L1,CON,22,1);
|
|||
|
|
GetPosValue(L2,CON,23,1);
|
|||
|
|
GetPosValue(L3,CON,24,1);
|
|||
|
|
GetPosValue(G1,CON,25,1);
|
|||
|
|
GetPosValue(CCMX,CON,26,1);
|
|||
|
|
GetPosValue(CCMN,CON,27,1);
|
|||
|
|
GetPosValue(NSR,CON,28,1);
|
|||
|
|
GetPosValue(FSR,CON,29,1);
|
|||
|
|
GetPosValue(RSR,CON,30,1);
|
|||
|
|
GetPosValue(CID,CON,31,1);
|
|||
|
|
GetPosValue(CD,CON,32,1);
|
|||
|
|
#pragma endregion
|
|||
|
|
IT=IT/25.4;
|
|||
|
|
float gd_Zc[100], gd_Att[100], ld_Zc[100], ld_Att[100], sd_Zc[100], sd_Att[100], gu_Zc[100], gu_Att[100], lu_Zc[100], lu_Att[100], su_Zc[100], su_Att[100];
|
|||
|
|
Tubanpara(MT, CTH, gd_Zc, gd_Att, ld_Zc, ld_Att, sd_Zc, sd_Att, gu_Zc, gu_Att, lu_Zc, lu_Att, su_Zc, su_Att);
|
|||
|
|
|
|||
|
|
#pragma region F2D<32><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
float **F2D = new float*[36];
|
|||
|
|
for(int _ii = 0; _ii < 36; _ii++)
|
|||
|
|
F2D[_ii] = new float[NN];
|
|||
|
|
float **N2D = new float*[36];
|
|||
|
|
for(int _ii = 0; _ii < 36; _ii++)
|
|||
|
|
N2D[_ii] = new float[NN];
|
|||
|
|
float **R2D = new float*[72];
|
|||
|
|
for(int _ii = 0; _ii < 72; _ii++)
|
|||
|
|
R2D[_ii] = new float[NN];
|
|||
|
|
#pragma endregion
|
|||
|
|
#pragma region F_hx_abs<62><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
float **F_hx_abs = new float*[36];
|
|||
|
|
for(int _ii = 0; _ii < 36; _ii++)
|
|||
|
|
F_hx_abs[_ii] = new float[NN];
|
|||
|
|
float **N_hx_abs = new float*[36];
|
|||
|
|
for(int _ii = 0; _ii < 36; _ii++)
|
|||
|
|
N_hx_abs[_ii] = new float[NN];
|
|||
|
|
float **R_hx_abs = new float*[72];
|
|||
|
|
for(int _ii = 0; _ii < 72; _ii++)
|
|||
|
|
R_hx_abs[_ii] = new float[NN*2];
|
|||
|
|
float **R_hx_group = new float*[72];
|
|||
|
|
for (int _ii = 0; _ii < 72; _ii++)
|
|||
|
|
R_hx_group[_ii] = new float[NN * 2];
|
|||
|
|
//#pragma region RR2D/XX_abs/pha/p
|
|||
|
|
float **RR2D = new float*[72];
|
|||
|
|
for(int _ii = 0; _ii < 72; _ii++)
|
|||
|
|
RR2D[_ii] = new float[NN*2];
|
|||
|
|
float **R_XX_abs = new float*[72];
|
|||
|
|
for(int _ii = 0; _ii < 72; _ii++)
|
|||
|
|
R_XX_abs[_ii] = new float[NN*2];
|
|||
|
|
float **F_lb = new float*[36];
|
|||
|
|
for (int _ii = 0; _ii < 36; _ii++)
|
|||
|
|
F_lb[_ii] = new float[NN];
|
|||
|
|
#pragma endregion
|
|||
|
|
|
|||
|
|
#pragma region <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
QStringList _nList;
|
|||
|
|
_nList << "ATT" << "RATE" << "ATTC" << "ZCC" << "SLG" << "THC"<<"AMP";
|
|||
|
|
for(int _i = 0; _i < _nList.size(); _i++)
|
|||
|
|
{
|
|||
|
|
int index1 = MemRdWt.OpenWave(_nList[_i].toStdString().c_str());
|
|||
|
|
if(index1 > 0)
|
|||
|
|
continue;
|
|||
|
|
Slf_WAVE myWave;
|
|||
|
|
strcpy(myWave.Name, _nList[_i].toStdString().c_str());
|
|||
|
|
strcpy(myWave.AliasName, _nList[_i].toStdString().c_str());
|
|||
|
|
strcpy(myWave.DepthUnit, "m");
|
|||
|
|
myWave.CodeLen = 4;//float
|
|||
|
|
myWave.RepCode = 4;
|
|||
|
|
myWave.DefVal = 0;
|
|||
|
|
myWave.StartDepth = HD.Sdep;
|
|||
|
|
myWave.EndDepth = HD.Edep;
|
|||
|
|
myWave.DepLevel = HD.Rlev;
|
|||
|
|
strcpy(myWave.DepthUnit,"m");
|
|||
|
|
myWave.StartTime=0;
|
|||
|
|
myWave.TimeLevel=5;
|
|||
|
|
myWave.ArrayNum = 1;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
if(_nList[_i] == "ATT")
|
|||
|
|
{myWave.TimeSamples = 36;
|
|||
|
|
myWave.TimeLevel=10;}
|
|||
|
|
else if(_nList[_i] == "SLGall")
|
|||
|
|
myWave.TimeSamples = 1;
|
|||
|
|
else
|
|||
|
|
myWave.TimeSamples = 72;
|
|||
|
|
strcpy(myWave.TimeUnit,"ns");
|
|||
|
|
index1 = MemRdWt.OpenWave((Slf_WAVE *)&myWave);
|
|||
|
|
}
|
|||
|
|
#pragma endregion
|
|||
|
|
#pragma region <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
//MemRdWt.OpenCurve("SPR_all");
|
|||
|
|
int index1 = MemRdWt.OpenCurve("SPR_all");
|
|||
|
|
if(index1 < 0)
|
|||
|
|
{
|
|||
|
|
Slf_CURVE myWave;
|
|||
|
|
strcpy(myWave.Name, "SPR_all");
|
|||
|
|
strcpy(myWave.AliasName, "SPR_all");
|
|||
|
|
strcpy(myWave.DepthUnit, "m");
|
|||
|
|
myWave.CodeLen = 4;//float
|
|||
|
|
myWave.RepCode = 4;
|
|||
|
|
myWave.DefVal = 0;
|
|||
|
|
myWave.StartDepth = HD.Sdep;
|
|||
|
|
myWave.EndDepth = HD.Edep;
|
|||
|
|
myWave.DepLevel = HD.Rlev;
|
|||
|
|
strcpy(myWave.DepthUnit,"m");
|
|||
|
|
index1 = MemRdWt.OpenCurve((Slf_CURVE *)&myWave);
|
|||
|
|
}
|
|||
|
|
//
|
|||
|
|
int index2 = MemRdWt.OpenCurve("LPR_all");
|
|||
|
|
if(index2 < 0)
|
|||
|
|
{
|
|||
|
|
Slf_CURVE myWave;
|
|||
|
|
strcpy(myWave.Name, "LPR_all");
|
|||
|
|
strcpy(myWave.AliasName, "LPR_all");
|
|||
|
|
strcpy(myWave.DepthUnit, "m");
|
|||
|
|
myWave.CodeLen = 4;//float
|
|||
|
|
myWave.RepCode = 4;
|
|||
|
|
myWave.DefVal = 0;
|
|||
|
|
myWave.StartDepth = HD.Sdep;
|
|||
|
|
myWave.EndDepth = HD.Edep;
|
|||
|
|
myWave.DepLevel = HD.Rlev;
|
|||
|
|
strcpy(myWave.DepthUnit,"m");
|
|||
|
|
index2 = MemRdWt.OpenCurve((Slf_CURVE *)&myWave);
|
|||
|
|
}
|
|||
|
|
//
|
|||
|
|
int index3 = MemRdWt.OpenCurve("GPR_all");
|
|||
|
|
if(index3 < 0)
|
|||
|
|
{
|
|||
|
|
Slf_CURVE myWave;
|
|||
|
|
strcpy(myWave.Name, "GPR_all");
|
|||
|
|
strcpy(myWave.AliasName, "GPR_all");
|
|||
|
|
strcpy(myWave.DepthUnit, "m");
|
|||
|
|
myWave.CodeLen = 4;//float
|
|||
|
|
myWave.RepCode = 4;
|
|||
|
|
myWave.DefVal = 0;
|
|||
|
|
myWave.StartDepth = HD.Sdep;
|
|||
|
|
myWave.EndDepth = HD.Edep;
|
|||
|
|
myWave.DepLevel = HD.Rlev;
|
|||
|
|
strcpy(myWave.DepthUnit,"m");
|
|||
|
|
index3 = MemRdWt.OpenCurve((Slf_CURVE *)&myWave);
|
|||
|
|
}
|
|||
|
|
int index4 = MemRdWt.OpenCurve("THCAV");
|
|||
|
|
if(index4 < 0)
|
|||
|
|
{
|
|||
|
|
Slf_CURVE myWave;
|
|||
|
|
strcpy(myWave.Name, "THCAV");
|
|||
|
|
strcpy(myWave.AliasName, "THCAV");
|
|||
|
|
strcpy(myWave.DepthUnit, "m");
|
|||
|
|
myWave.CodeLen = 4;//float
|
|||
|
|
myWave.RepCode = 4;
|
|||
|
|
myWave.DefVal = 0;
|
|||
|
|
myWave.StartDepth = HD.Sdep;
|
|||
|
|
myWave.EndDepth = HD.Edep;
|
|||
|
|
myWave.DepLevel = HD.Rlev;
|
|||
|
|
strcpy(myWave.DepthUnit,"m");
|
|||
|
|
index4 = MemRdWt.OpenCurve((Slf_CURVE *)&myWave);
|
|||
|
|
}
|
|||
|
|
int index5 = MemRdWt.OpenCurve("THerr");
|
|||
|
|
if(index5 < 0)
|
|||
|
|
{
|
|||
|
|
Slf_CURVE myWave;
|
|||
|
|
strcpy(myWave.Name, "THerr");
|
|||
|
|
strcpy(myWave.AliasName, "THerr");
|
|||
|
|
strcpy(myWave.DepthUnit, "m");
|
|||
|
|
myWave.CodeLen = 4;//float
|
|||
|
|
myWave.RepCode = 4;
|
|||
|
|
myWave.DefVal = 0;
|
|||
|
|
myWave.StartDepth = HD.Sdep;
|
|||
|
|
myWave.EndDepth = HD.Edep;
|
|||
|
|
myWave.DepLevel = HD.Rlev;
|
|||
|
|
strcpy(myWave.DepthUnit,"m");
|
|||
|
|
index5 = MemRdWt.OpenCurve((Slf_CURVE *)&myWave);
|
|||
|
|
}
|
|||
|
|
int index6 = MemRdWt.OpenCurve("THCMN");
|
|||
|
|
if(index6 < 0)
|
|||
|
|
{
|
|||
|
|
Slf_CURVE myWave;
|
|||
|
|
strcpy(myWave.Name, "THCMN");
|
|||
|
|
strcpy(myWave.AliasName, "THCMN");
|
|||
|
|
strcpy(myWave.DepthUnit, "m");
|
|||
|
|
myWave.CodeLen = 4;//float
|
|||
|
|
myWave.RepCode = 4;
|
|||
|
|
myWave.DefVal = 0;
|
|||
|
|
myWave.StartDepth = HD.Sdep;
|
|||
|
|
myWave.EndDepth = HD.Edep;
|
|||
|
|
myWave.DepLevel = HD.Rlev;
|
|||
|
|
strcpy(myWave.DepthUnit,"m");
|
|||
|
|
index6 = MemRdWt.OpenCurve((Slf_CURVE *)&myWave);
|
|||
|
|
}
|
|||
|
|
int index7 = MemRdWt.OpenCurve("THCMX");
|
|||
|
|
if(index7 < 0)
|
|||
|
|
{
|
|||
|
|
Slf_CURVE myWave;
|
|||
|
|
strcpy(myWave.Name, "THCMX");
|
|||
|
|
strcpy(myWave.AliasName, "THCMX");
|
|||
|
|
strcpy(myWave.DepthUnit, "m");
|
|||
|
|
myWave.CodeLen = 4;//float
|
|||
|
|
myWave.RepCode = 4;
|
|||
|
|
myWave.DefVal = 0;
|
|||
|
|
myWave.StartDepth = HD.Sdep;
|
|||
|
|
myWave.EndDepth = HD.Edep;
|
|||
|
|
myWave.DepLevel = HD.Rlev;
|
|||
|
|
strcpy(myWave.DepthUnit,"m");
|
|||
|
|
index7 = MemRdWt.OpenCurve((Slf_CURVE *)&myWave);
|
|||
|
|
}
|
|||
|
|
int index8 = MemRdWt.OpenCurve("THLR");
|
|||
|
|
if(index8 < 0)
|
|||
|
|
{
|
|||
|
|
Slf_CURVE myWave;
|
|||
|
|
strcpy(myWave.Name, "THLR");
|
|||
|
|
strcpy(myWave.AliasName, "THLR");
|
|||
|
|
strcpy(myWave.DepthUnit, "m");
|
|||
|
|
myWave.CodeLen = 4;//float
|
|||
|
|
myWave.RepCode = 4;
|
|||
|
|
myWave.DefVal = 0;
|
|||
|
|
myWave.StartDepth = HD.Sdep;
|
|||
|
|
myWave.EndDepth = HD.Edep;
|
|||
|
|
myWave.DepLevel = HD.Rlev;
|
|||
|
|
strcpy(myWave.DepthUnit,"m");
|
|||
|
|
index8 = MemRdWt.OpenCurve((Slf_CURVE *)&myWave);
|
|||
|
|
}
|
|||
|
|
int index9 = MemRdWt.OpenCurve("ECM");
|
|||
|
|
if(index9 < 0)
|
|||
|
|
{
|
|||
|
|
Slf_CURVE myWave;
|
|||
|
|
strcpy(myWave.Name, "ECM");
|
|||
|
|
strcpy(myWave.AliasName, "ECM");
|
|||
|
|
strcpy(myWave.DepthUnit, "m");
|
|||
|
|
myWave.CodeLen = 4;//float
|
|||
|
|
myWave.RepCode = 4;
|
|||
|
|
myWave.DefVal = 0;
|
|||
|
|
myWave.StartDepth = HD.Sdep;
|
|||
|
|
myWave.EndDepth = HD.Edep;
|
|||
|
|
myWave.DepLevel = HD.Rlev;
|
|||
|
|
strcpy(myWave.DepthUnit,"m");
|
|||
|
|
index9 = MemRdWt.OpenCurve((Slf_CURVE *)&myWave);
|
|||
|
|
}
|
|||
|
|
int index10 = MemRdWt.OpenCurve("CEM");
|
|||
|
|
if(index10 < 0)
|
|||
|
|
{
|
|||
|
|
Slf_CURVE myWave;
|
|||
|
|
strcpy(myWave.Name, "CEM");
|
|||
|
|
strcpy(myWave.AliasName, "CEM");
|
|||
|
|
strcpy(myWave.DepthUnit, "m");
|
|||
|
|
myWave.CodeLen = 4;//float
|
|||
|
|
myWave.RepCode = 4;
|
|||
|
|
myWave.DefVal = 0;
|
|||
|
|
myWave.StartDepth = HD.Sdep;
|
|||
|
|
myWave.EndDepth = HD.Edep;
|
|||
|
|
myWave.DepLevel = HD.Rlev;
|
|||
|
|
strcpy(myWave.DepthUnit,"m");
|
|||
|
|
index10 = MemRdWt.OpenCurve((Slf_CURVE *)&myWave);
|
|||
|
|
}
|
|||
|
|
int index11 = MemRdWt.OpenCurve("THCSD");
|
|||
|
|
if(index11 < 0)
|
|||
|
|
{
|
|||
|
|
Slf_CURVE myWave;
|
|||
|
|
strcpy(myWave.Name, "THCSD");
|
|||
|
|
strcpy(myWave.AliasName, "THCSD");
|
|||
|
|
strcpy(myWave.DepthUnit, "m");
|
|||
|
|
myWave.CodeLen = 4;//float
|
|||
|
|
myWave.RepCode = 4;
|
|||
|
|
myWave.DefVal = 0;
|
|||
|
|
myWave.StartDepth = HD.Sdep;
|
|||
|
|
myWave.EndDepth = HD.Edep;
|
|||
|
|
myWave.DepLevel = HD.Rlev;
|
|||
|
|
strcpy(myWave.DepthUnit,"m");
|
|||
|
|
index11 = MemRdWt.OpenCurve((Slf_CURVE *)&myWave);
|
|||
|
|
}
|
|||
|
|
#pragma endregion
|
|||
|
|
int SL=(HD.EndDep-HD.Sdep)/HD.Rlev+5;
|
|||
|
|
float SPR_all;
|
|||
|
|
float LPR_all;
|
|||
|
|
float GPR_all;
|
|||
|
|
float THCAV[1];
|
|||
|
|
float THerr,THCMX,THCMN,THLR,ECM,CEM,THCSD;
|
|||
|
|
#pragma region <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>index<65><78>ȡ
|
|||
|
|
int ATT_index = MemRdWt.OpenWave("ATT");
|
|||
|
|
int RATE_index = MemRdWt.OpenWave("RATE");
|
|||
|
|
int ATTC_index = MemRdWt.OpenWave("ATTC");
|
|||
|
|
int ZCC_index = MemRdWt.OpenWave("ZCC");
|
|||
|
|
int SLG_index = MemRdWt.OpenWave("SLG");
|
|||
|
|
int THC_index = MemRdWt.OpenWave("THC");
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><D7B9>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int AMP_index = MemRdWt.OpenWave("AMP");
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>
|
|||
|
|
int SPR_all_index = MemRdWt.OpenCurve("SPR_all");
|
|||
|
|
int LPR_all_index = MemRdWt.OpenCurve("LPR_all");
|
|||
|
|
int GPR_all_index = MemRdWt.OpenCurve("GPR_all");
|
|||
|
|
int THCAV_index = MemRdWt.OpenCurve("THCAV");
|
|||
|
|
int THerr_index = MemRdWt.OpenCurve("THerr");
|
|||
|
|
int THCMN_index = MemRdWt.OpenCurve("THCMN");
|
|||
|
|
int THCMX_index = MemRdWt.OpenCurve("THCMX");
|
|||
|
|
int THLR_index = MemRdWt.OpenCurve("THLR");
|
|||
|
|
int ECM_index = MemRdWt.OpenCurve("ECM");
|
|||
|
|
int CEM_index = MemRdWt.OpenCurve("CEM");
|
|||
|
|
int THCSD_index = MemRdWt.OpenCurve("THCSD");
|
|||
|
|
#pragma endregion
|
|||
|
|
|
|||
|
|
#pragma region <20><>ȡinput<75><74><EFBFBD>ݵ<EFBFBD>index
|
|||
|
|
int FGN_index = MemRdWt.OpenWave("FWGN");
|
|||
|
|
int NGN_index = MemRdWt.OpenWave("NWGN");
|
|||
|
|
int RGN_index = MemRdWt.OpenWave("RWGN");
|
|||
|
|
int FDL_index = MemRdWt.OpenWave("FWST");
|
|||
|
|
int NDL_index = MemRdWt.OpenWave("NWST");
|
|||
|
|
int RDL_index = MemRdWt.OpenWave("RWST");
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
int FWAVEindex[36], NWAVEindex[36], RWAVEindex[72];
|
|||
|
|
for(int _i = 0; _i < 36; _i++)
|
|||
|
|
{
|
|||
|
|
QString num = QString::number(_i + 1);
|
|||
|
|
num = (num.length() == 1)? "0" + num : num;
|
|||
|
|
QString fwaveName = "FWAVE" + num;
|
|||
|
|
QString nwaveName = "NWAVE" + num;
|
|||
|
|
|
|||
|
|
FWAVEindex[_i] = MemRdWt.OpenWave(fwaveName.toStdString().c_str());
|
|||
|
|
NWAVEindex[_i] = MemRdWt.OpenWave(nwaveName.toStdString().c_str());
|
|||
|
|
|
|||
|
|
if(FWAVEindex[_i] < 0 || NWAVEindex[_i] < 0)
|
|||
|
|
return 0;
|
|||
|
|
}
|
|||
|
|
for(int _i = 0; _i < 72; _i++)
|
|||
|
|
{
|
|||
|
|
QString num = QString::number(_i + 1);
|
|||
|
|
num = (num.length() == 1)? "0" + num : num;
|
|||
|
|
QString rwaveName = "RWAVE" + num;
|
|||
|
|
|
|||
|
|
RWAVEindex[_i] = MemRdWt.OpenWave(rwaveName.toStdString().c_str());
|
|||
|
|
|
|||
|
|
if(RWAVEindex[_i] < 0)
|
|||
|
|
return 0;
|
|||
|
|
}
|
|||
|
|
#pragma endregion
|
|||
|
|
|
|||
|
|
|
|||
|
|
int itable1=MemRdWt.OpenOG_RESULT("<EFBFBD>̾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");//<2F>̾<F2BFAAB9><CCBE><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>index<65><78>Կ<EFBFBD>ף<EFBFBD>
|
|||
|
|
MemRdWt.SetTableRecordCount(itable1,0); //<2F><><EFBFBD><EFBFBD>ԭ<EFBFBD>еı<D0B5><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
int itable2=MemRdWt.OpenOG_RESULT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|||
|
|
MemRdWt.SetTableRecordCount(itable2,0);
|
|||
|
|
|
|||
|
|
|
|||
|
|
int fiii=0;
|
|||
|
|
int FLE=(HD.EndDep-HD.Stdep)/HD.Rlev+300;
|
|||
|
|
float *FSPR=new float[FLE];
|
|||
|
|
float *FGPR=new float[FLE];
|
|||
|
|
float *FDEP=new float[FLE];
|
|||
|
|
/*float **FSLG = new float*[72];
|
|||
|
|
for (int _ii = 0; _ii < 72; _ii++)
|
|||
|
|
FSLG[_ii] = new float[FLE];*/
|
|||
|
|
/*int **ADDR=new int*[72];
|
|||
|
|
for(int mm=0;mm<72;mm++)
|
|||
|
|
ADDR[mm]=new int[FLE];*/
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
DepthProgress mmProgress;
|
|||
|
|
mmProgress.CreatProgress(HD.Stdep, HD.EndDep, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...");
|
|||
|
|
//---------------------------------<2D><><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD>--------------------------------------------
|
|||
|
|
while(HD.Dep <= HD.EndDep)
|
|||
|
|
{
|
|||
|
|
//ÿ<>ζ<EFBFBD><CEB6>ظ<EFBFBD><D8B8><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>Զ<EFBFBD><D4B6>β<EFBFBD><CEB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
GetPosValue(CTH,CON,1,1);
|
|||
|
|
GetPosValue(CT,CON,2,1);
|
|||
|
|
GetPosValue(IT,CON,3,1);
|
|||
|
|
GetPosValue(MT,CON,4,1);
|
|||
|
|
GetPosValue(STEV,CON,5,1);
|
|||
|
|
GetPosValue(ZM1,CON,6,1);
|
|||
|
|
GetPosValue(LSM,CON,7,1);
|
|||
|
|
GetPosValue(BW,CON,8,1);
|
|||
|
|
GetPosValue(CON1,CON,9,1);
|
|||
|
|
GetPosValue(CON2,CON,10,1);
|
|||
|
|
GetPosValue(CON3,CON,11,1);
|
|||
|
|
GetPosValue(RWD,CON,12,1);
|
|||
|
|
GetPosValue(RWL,CON,13,1);
|
|||
|
|
GetPosValue(FPS,CON,14,1);
|
|||
|
|
GetPosValue(FPE,CON,15,1);
|
|||
|
|
GetPosValue(RM1,CON,16,1);
|
|||
|
|
GetPosValue(RM2,CON,17,1);
|
|||
|
|
GetPosValue(RL,CON,18,1);
|
|||
|
|
GetPosValue(S1,CON,19,1);
|
|||
|
|
GetPosValue(S2,CON,20,1);
|
|||
|
|
GetPosValue(S3,CON,21,1);
|
|||
|
|
GetPosValue(L1,CON,22,1);
|
|||
|
|
GetPosValue(L2,CON,23,1);
|
|||
|
|
GetPosValue(L3,CON,24,1);
|
|||
|
|
GetPosValue(G1,CON,25,1);
|
|||
|
|
GetPosValue(CCMX,CON,26,1);
|
|||
|
|
GetPosValue(CCMN,CON,27,1);
|
|||
|
|
GetPosValue(NSR,CON,28,1);
|
|||
|
|
GetPosValue(FSR,CON,29,1);
|
|||
|
|
GetPosValue(RSR,CON,30,1);
|
|||
|
|
GetPosValue(CID,CON,31,1);
|
|||
|
|
GetPosValue(CD,CON,32,1);
|
|||
|
|
IT=IT/25.4;
|
|||
|
|
|
|||
|
|
QString _proOut = "";
|
|||
|
|
if(CTH < 5 || CTH > 15)
|
|||
|
|
_proOut += "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܺ<EFBFBD><EFBFBD><EFBFBD>CTH<EFBFBD><EFBFBD><EFBFBD>磨5~15mm<6D><6D>\n";
|
|||
|
|
if(CT != 1 && CT != 2)
|
|||
|
|
_proOut += "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CT<EFBFBD><EFBFBD><EFBFBD>磨1-<2D><><EFBFBD>ܶ<EFBFBD>ˮ<EFBFBD>࣬2-<2D><><EFBFBD><EFBFBD>ˮ<EFBFBD>ࣩ\n";
|
|||
|
|
if(IT*25.4 < 100 || IT*25.4 > 200)
|
|||
|
|
_proOut += "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܳߴ<EFBFBD>IT<EFBFBD><EFBFBD><EFBFBD>磨100~200mm<6D><6D>\n";
|
|||
|
|
if(MT != 1 && MT != 2)
|
|||
|
|
_proOut += "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ཬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>MT<EFBFBD><EFBFBD><EFBFBD>磨1-ˮ<><CBAE><EFBFBD><EFBFBD>2-<2D>ͻ<EFBFBD><CDBB><EFBFBD>\n";
|
|||
|
|
if(STEV < 4000 || STEV > 7000)
|
|||
|
|
_proOut += "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>STEV<EFBFBD><EFBFBD><EFBFBD>磨4000~7000m/s<><73>\n";
|
|||
|
|
if(ZM1 < 0.5 || ZM1 > 10)
|
|||
|
|
_proOut += "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ཬ<EFBFBD>迹ZM1<EFBFBD><EFBFBD><EFBFBD>磨0.5~10MRayls<6C><73>\n";
|
|||
|
|
if(LSM != 1 && LSM != 2)
|
|||
|
|
_proOut += "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>LSM<EFBFBD><EFBFBD><EFBFBD>磨1-ƽ<><C6BD><EFBFBD><EFBFBD>2-<2D><>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>\n";
|
|||
|
|
if(RWD <= 0)
|
|||
|
|
_proOut += "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱRWD<EFBFBD><EFBFBD><EFBFBD>磨<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>s<EFBFBD><EFBFBD>\n";
|
|||
|
|
if(RWL <= 0)
|
|||
|
|
_proOut += "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>RWL<EFBFBD><EFBFBD><EFBFBD>磨<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>s<EFBFBD><EFBFBD>\n";
|
|||
|
|
if(FPS <= 0)
|
|||
|
|
_proOut += "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><EFBFBD>Ѱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>FPS<EFBFBD><EFBFBD><EFBFBD>磨<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>\n";
|
|||
|
|
if(FPE <= 0)
|
|||
|
|
_proOut += "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><EFBFBD>Ѱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD><EFBFBD>FPE<EFBFBD><EFBFBD><EFBFBD>磨<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>\n";
|
|||
|
|
if(FPS >= FPE)
|
|||
|
|
_proOut += "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><EFBFBD>Ѱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>FPS/<2F><>ķ<EFBFBD><C4B7>Ѱ<EFBFBD><D1B0><EFBFBD><EFBFBD>ֹ<EFBFBD><D6B9>FPE<50><45>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FPS < FPE<50><45>\n";
|
|||
|
|
if(RM1 <= 0)
|
|||
|
|
_proOut += "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD>RM1<EFBFBD><EFBFBD><EFBFBD>磨<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0kHz<EFBFBD><EFBFBD>\n";
|
|||
|
|
if(RM2 <= 0)
|
|||
|
|
_proOut += "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>RM2<EFBFBD><EFBFBD><EFBFBD>磨<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0kHz<EFBFBD><EFBFBD>\n";
|
|||
|
|
if(RM1 >= RM2)
|
|||
|
|
_proOut += "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD>RM1/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>RM2<4D><32>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>RM1 < RM2<4D><32>\n";
|
|||
|
|
if(RL <= 0)
|
|||
|
|
_proOut += "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>RL<EFBFBD><EFBFBD><EFBFBD>磨<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>s<EFBFBD><EFBFBD>\n";
|
|||
|
|
|
|||
|
|
if(S1 <= 0 || S1 >= 100)
|
|||
|
|
_proOut += "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵֹS1<EFBFBD><EFBFBD><EFBFBD>磨0~100%<25><>\n";
|
|||
|
|
if(S2 <= 0 || S2 >= 100)
|
|||
|
|
_proOut += "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>н<EFBFBD>ֵֹS2<EFBFBD><EFBFBD><EFBFBD>磨0~100%<25><>\n";
|
|||
|
|
if(S3 <= 0 || S3 >= 100)
|
|||
|
|
_proOut += "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ý<EFBFBD>ֵֹS3<EFBFBD><EFBFBD><EFBFBD>磨0~100%<25><>\n";
|
|||
|
|
if(S1 >= S2 || S1 >= S3 || S2 >= S3)
|
|||
|
|
_proOut += "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>S1/S2/S3<53><33>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>S1 < S2 < S3<53><33>\n";
|
|||
|
|
|
|||
|
|
if(L1 <= 0 || L1 >= 100)
|
|||
|
|
_proOut += "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ý<EFBFBD>ֵֹS1<EFBFBD><EFBFBD><EFBFBD>磨0~100%<25><>\n";
|
|||
|
|
if(L2 <= 0 || L2 >= 100)
|
|||
|
|
_proOut += "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>н<EFBFBD>ֵֹS2<EFBFBD><EFBFBD><EFBFBD>磨0~100%<25><>\n";
|
|||
|
|
if(L3 <= 0 || L2 >= 100)
|
|||
|
|
_proOut += "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵֹS3<EFBFBD><EFBFBD><EFBFBD>磨0~100%<25><>\n";
|
|||
|
|
if(L1 >= L2 || L1 >= L3 || L2 >= L3)
|
|||
|
|
_proOut += "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>L1/L2/L3<4C><33>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>L1 < L2 < L3<4C><33>\n";
|
|||
|
|
|
|||
|
|
if(G1 <= 0 || G1 >= 100)
|
|||
|
|
_proOut += "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵֹG1<EFBFBD><EFBFBD><EFBFBD>磨0~100%<25><>\n";
|
|||
|
|
|
|||
|
|
if(CCMX <= 0)
|
|||
|
|
_proOut += "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵֹCCMX<EFBFBD><EFBFBD><EFBFBD>磨<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0m<EFBFBD><EFBFBD>\n";
|
|||
|
|
if(CCMN <= 0)
|
|||
|
|
_proOut += "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵֹCCMN<EFBFBD><EFBFBD><EFBFBD>磨<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0m<EFBFBD><EFBFBD>\n";
|
|||
|
|
if(CCMN >= CCMX)
|
|||
|
|
_proOut += "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܲ<EFBFBD>CCMN/CCMX<4D><58>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CCMN < CCMX<4D><58>\n";
|
|||
|
|
|
|||
|
|
if(CID <= 0)
|
|||
|
|
_proOut += "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CID<EFBFBD><EFBFBD><EFBFBD>磨<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0mm<EFBFBD><EFBFBD>\n";
|
|||
|
|
if(CD <= 0)
|
|||
|
|
_proOut += "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CD<EFBFBD><EFBFBD><EFBFBD>磨<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0mm<EFBFBD><EFBFBD>\n";
|
|||
|
|
|
|||
|
|
if(_proOut != ""){
|
|||
|
|
_proOut += "<EFBFBD><EFBFBD>ֹͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
|
|||
|
|
AfxMessageBox(_proOut);
|
|||
|
|
#pragma region <20>ռ<EFBFBD><D5BC>ͷ<EFBFBD>
|
|||
|
|
for(int _ii = 0; _ii< 36; _ii++)
|
|||
|
|
{
|
|||
|
|
delete []N2D[_ii];
|
|||
|
|
}delete []N2D;
|
|||
|
|
for(int _ii = 0; _ii < 36; _ii++)
|
|||
|
|
{
|
|||
|
|
delete []F2D[_ii];
|
|||
|
|
}delete []F2D;
|
|||
|
|
for(int _ii = 0; _ii < 72; _ii++)
|
|||
|
|
{
|
|||
|
|
delete []R2D[_ii];
|
|||
|
|
}delete []R2D;
|
|||
|
|
for(int _ii = 0; _ii < 72; _ii++)
|
|||
|
|
{
|
|||
|
|
delete []RR2D[_ii];
|
|||
|
|
}delete []RR2D;
|
|||
|
|
//<2F><>
|
|||
|
|
for(int _ii = 0; _ii < 36; _ii++)
|
|||
|
|
{
|
|||
|
|
delete []N_hx_abs[_ii];
|
|||
|
|
}delete []N_hx_abs;
|
|||
|
|
for(int _ii = 0; _ii < 36; _ii++)
|
|||
|
|
{
|
|||
|
|
delete []F_hx_abs[_ii];
|
|||
|
|
}delete []F_hx_abs;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>
|
|||
|
|
for (int _ii = 0; _ii < 36; _ii++)
|
|||
|
|
{
|
|||
|
|
delete[]R_hx_group[_ii];
|
|||
|
|
}delete[]R_hx_group;
|
|||
|
|
for(int _ii = 0; _ii < 72; _ii++)
|
|||
|
|
{
|
|||
|
|
delete []R_hx_abs[_ii];
|
|||
|
|
}delete []R_hx_abs;
|
|||
|
|
for(int _ii = 0; _ii < 72; _ii++)
|
|||
|
|
{
|
|||
|
|
delete []R_XX_abs[_ii];
|
|||
|
|
}delete []R_XX_abs;
|
|||
|
|
for (int _ii = 0; _ii < 36; _ii++)
|
|||
|
|
{
|
|||
|
|
delete[]F_lb[_ii];
|
|||
|
|
}delete[]F_lb;
|
|||
|
|
#pragma endregion
|
|||
|
|
return 0;
|
|||
|
|
}
|
|||
|
|
//------------------------------------------1 <20><>ȡ<EFBFBD><C8A1><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<DEB8>--------------------------------------------------
|
|||
|
|
mmProgress.SetDepth(HD.Dep);
|
|||
|
|
HD.Dep;
|
|||
|
|
int a = 0;
|
|||
|
|
float SPR[3]={1};
|
|||
|
|
float CmQ[2]={0};
|
|||
|
|
float FGN[36], NGN[36], RGN[72], FDL[36], NDL[36], RDL[72];
|
|||
|
|
float F2D0[36][300], N2D0[36][300], R2D0[72][300];
|
|||
|
|
float ATT[72],RATE[72],ATTC[72],ZCC[72],SLG[72],THC[72],AMP[72];
|
|||
|
|
|
|||
|
|
#pragma region <20><><EFBFBD>ݻ<EFBFBD>ȡ
|
|||
|
|
//GetINValue(FGN,1,36);
|
|||
|
|
//GetINValue(NGN,3,36);
|
|||
|
|
//GetINValue(RGN,5,72);
|
|||
|
|
//GetINValue(FDL,2,36);
|
|||
|
|
//GetINValue(NDL,4,36);
|
|||
|
|
//GetINValue(RDL,6,72);
|
|||
|
|
|
|||
|
|
|
|||
|
|
MemRdWt.ReadWaveToFloatBuf(FGN_index, HD.Dep, 1,FGN);
|
|||
|
|
MemRdWt.ReadWaveToFloatBuf(NGN_index, HD.Dep, 1,NGN);
|
|||
|
|
MemRdWt.ReadWaveToFloatBuf(RGN_index, HD.Dep, 1,RGN);
|
|||
|
|
MemRdWt.ReadWaveToFloatBuf(FDL_index, HD.Dep, 1,FDL);
|
|||
|
|
MemRdWt.ReadWaveToFloatBuf(NDL_index, HD.Dep, 1,NDL);
|
|||
|
|
MemRdWt.ReadWaveToFloatBuf(RDL_index, HD.Dep, 1,RDL);
|
|||
|
|
|
|||
|
|
if(FGN[0] <= -9999 || NGN[0] <= -9999 || RGN[0] <= -9999 || FDL[0] <= -9999 || NDL[0] <= -9999 || RDL[0] <= -9999)
|
|||
|
|
{
|
|||
|
|
#pragma region <20>ռ<EFBFBD><D5BC>ͷ<EFBFBD>
|
|||
|
|
for(int _ii = 0; _ii< 36; _ii++)
|
|||
|
|
{
|
|||
|
|
delete []N2D[_ii];
|
|||
|
|
}delete []N2D;
|
|||
|
|
for(int _ii = 0; _ii < 36; _ii++)
|
|||
|
|
{
|
|||
|
|
delete []F2D[_ii];
|
|||
|
|
}delete []F2D;
|
|||
|
|
for(int _ii = 0; _ii < 72; _ii++)
|
|||
|
|
{
|
|||
|
|
delete []R2D[_ii];
|
|||
|
|
}delete []R2D;
|
|||
|
|
for(int _ii = 0; _ii < 72; _ii++)
|
|||
|
|
{
|
|||
|
|
delete []RR2D[_ii];
|
|||
|
|
}delete []RR2D;
|
|||
|
|
//<2F><>
|
|||
|
|
for(int _ii = 0; _ii < 36; _ii++)
|
|||
|
|
{
|
|||
|
|
delete []N_hx_abs[_ii];
|
|||
|
|
}delete []N_hx_abs;
|
|||
|
|
for(int _ii = 0; _ii < 36; _ii++)
|
|||
|
|
{
|
|||
|
|
delete []F_hx_abs[_ii];
|
|||
|
|
}delete []F_hx_abs;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>
|
|||
|
|
for (int _ii = 0; _ii < 36; _ii++)
|
|||
|
|
{
|
|||
|
|
delete[]R_hx_group[_ii];
|
|||
|
|
}delete[]R_hx_group;
|
|||
|
|
for(int _ii = 0; _ii < 72; _ii++)
|
|||
|
|
{
|
|||
|
|
delete []R_hx_abs[_ii];
|
|||
|
|
}delete []R_hx_abs;
|
|||
|
|
for(int _ii = 0; _ii < 72; _ii++)
|
|||
|
|
{
|
|||
|
|
delete []R_XX_abs[_ii];
|
|||
|
|
}delete []R_XX_abs;
|
|||
|
|
for (int _ii = 0; _ii < 36; _ii++)
|
|||
|
|
{
|
|||
|
|
delete[]F_lb[_ii];
|
|||
|
|
}delete[]F_lb;
|
|||
|
|
#pragma endregion
|
|||
|
|
AfxMessageBox("<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>龮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n<EFBFBD><EFBFBD>ֹͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|||
|
|
return 0;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
for(int _i = 0; _i < 36; _i++)
|
|||
|
|
{
|
|||
|
|
MemRdWt.ReadWaveToFloatBuf(FWAVEindex[_i], HD.Dep, 1, F2D0[_i]);
|
|||
|
|
MemRdWt.ReadWaveToFloatBuf(NWAVEindex[_i], HD.Dep, 1, N2D0[_i]);
|
|||
|
|
}
|
|||
|
|
for(int _i = 0; _i < 72; _i++)
|
|||
|
|
{
|
|||
|
|
MemRdWt.ReadWaveToFloatBuf(RWAVEindex[_i], HD.Dep, 1, R2D0[_i]);
|
|||
|
|
}
|
|||
|
|
#pragma endregion
|
|||
|
|
//ȥ<><C8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
for (int i = 0; i < 36; i++)
|
|||
|
|
{
|
|||
|
|
for (int j = 0; j < 300; j++)
|
|||
|
|
{
|
|||
|
|
F2D[i][j] = F2D0[i][j]/FGN[i];
|
|||
|
|
N2D[i][j] = N2D0[i][j]/NGN[i];
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
float V=1500,RNS,RNE,D;
|
|||
|
|
D=(IT*25.4/2-CTH-CID)*1e-3*2;
|
|||
|
|
int rll=RL/RSR*1e3;
|
|||
|
|
for (int i = 0; i < 72; i++)
|
|||
|
|
{
|
|||
|
|
for (int j = 0; j < 300; j++)
|
|||
|
|
{
|
|||
|
|
R2D[i][j] = R2D0[i][j]/RGN[i];
|
|||
|
|
RNS=floor((D/V)/(RSR*0.000000001))-RDL[i]/(RSR);
|
|||
|
|
RNE=RNS+rll;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//------------------------------------------3 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><F2A3A8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵط<C4B5><D8B7><EFBFBD>--------------------------------------------------
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
float Att0all[36],Att0all1[36],Rateall[72],Thick[72],Att_c[72],Zc_end[72], Zm_end[72];
|
|||
|
|
float Rf[72],N_hx_abs_max[36], F_hx_abs_max[36], R_hx_abs_max[72],R_hx_phah_min[72] ,S_welldata2D_max[72], S_welldata2D_min[72], N_maxindex[72], F_maxindex[72], S_maxindex[72], maxindex[72], minindex[72];
|
|||
|
|
//Զ<><D4B6><EFBFBD>ε<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
|||
|
|
hilbert(F2D, F_hx_abs, 36);//Զ<><D4B6>ǰ12<31><32>
|
|||
|
|
/*for (int i = 0; i < 36; i++)
|
|||
|
|
{
|
|||
|
|
for (int j = 0; j < NN; j++)
|
|||
|
|
{
|
|||
|
|
F_hx_abs[i][j] = F2D[i][j];
|
|||
|
|
}
|
|||
|
|
}*/
|
|||
|
|
for (int i = 0; i < 36; i++)
|
|||
|
|
{
|
|||
|
|
maxindex[i]=1;
|
|||
|
|
F_hx_abs_max[i] = F_hx_abs[i][0];
|
|||
|
|
}
|
|||
|
|
maxInArray_self(F_hx_abs, F_hx_abs_max, maxindex,1, NN, 36, 1);
|
|||
|
|
|
|||
|
|
int FPE1=FPE;
|
|||
|
|
int FPS1=FPS;
|
|||
|
|
float pf[36] = { 0 }, lf[36] = { 0 };
|
|||
|
|
float **pksf = new float*[36];
|
|||
|
|
for (int _ii = 0; _ii < 36; _ii++)
|
|||
|
|
pksf[_ii] = new float[FPE1];
|
|||
|
|
float **locsf = new float*[36];
|
|||
|
|
for (int _ii = 0; _ii < 36; _ii++)
|
|||
|
|
locsf[_ii] = new float[FPE1];
|
|||
|
|
|
|||
|
|
for (int i = 0; i<36; i++)
|
|||
|
|
{
|
|||
|
|
for (int m = 0; m < FPE1; m++)
|
|||
|
|
{
|
|||
|
|
pksf[i][m] = 0;
|
|||
|
|
locsf[i][m] = 0;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
findPeaks(F_hx_abs, pksf, locsf, FPS1, FPE1);
|
|||
|
|
|
|||
|
|
for (int k = 0; k<36; k++)
|
|||
|
|
{
|
|||
|
|
for (int m = 0; m<FPE1; m++)
|
|||
|
|
{
|
|||
|
|
if (pksf[k][m] != 0)
|
|||
|
|
{
|
|||
|
|
pf[k] = pksf[k][m];
|
|||
|
|
lf[k] = locsf[k][m];
|
|||
|
|
|
|||
|
|
if (pksf[k][m]>F_hx_abs_max[k]/3)
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
else if (pksf[k][m] == 0)
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
float fcy[36] = { 0 }, fmy[36] = { 0 };
|
|||
|
|
for (int k = 0; k<36; k++)
|
|||
|
|
{
|
|||
|
|
for (int m = 0; m<FPE1; m++)
|
|||
|
|
{
|
|||
|
|
if (pksf[k][m] != 0)
|
|||
|
|
{
|
|||
|
|
fmy[k] = pksf[k][m];
|
|||
|
|
fcy[k] = locsf[k][m];
|
|||
|
|
|
|||
|
|
if (pksf[k][m]>F_hx_abs_max[k] * 0.4)
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
else if (pksf[k][m] == 0)
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
for (int _ii = 0; _ii < 36; _ii++)
|
|||
|
|
{
|
|||
|
|
delete[]pksf[_ii];
|
|||
|
|
}delete[]pksf;
|
|||
|
|
for (int _ii = 0; _ii < 36; _ii++)
|
|||
|
|
{
|
|||
|
|
delete[]locsf[_ii];
|
|||
|
|
}delete[]locsf;
|
|||
|
|
|
|||
|
|
//<2F>ܾ<D7B9><DCBE>ж<EFBFBD>
|
|||
|
|
|
|||
|
|
float fbc = 15;
|
|||
|
|
float fcc[36] = { 0 };
|
|||
|
|
float ffm[36] = { 0 };
|
|||
|
|
float F_lb_max[36] = { 0 };
|
|||
|
|
float CEC[18] = { 0 };
|
|||
|
|
for (int i = 0; i < 36; i++)
|
|||
|
|
{
|
|||
|
|
fcc[i] = fcy[i] + fbc;
|
|||
|
|
for (int j = 0; j < NN; j++)
|
|||
|
|
{
|
|||
|
|
if (j<fcc[i])
|
|||
|
|
F_lb[i][j] = 0;
|
|||
|
|
else
|
|||
|
|
F_lb[i][j] = F_hx_abs[i][j];
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
for (int i = 0; i < 36; i++)
|
|||
|
|
{
|
|||
|
|
ffm[i] = 1;
|
|||
|
|
F_lb_max[i] = F_lb[i][0];
|
|||
|
|
}
|
|||
|
|
int CEN = 150;
|
|||
|
|
maxInArray_self(F_lb, F_lb_max, ffm,1, NN, 36, 1);
|
|||
|
|
float pce[36] = { 0 }, lce[36] = { 0 };
|
|||
|
|
float **pkce = new float*[36];
|
|||
|
|
for (int _ii = 0; _ii < 36; _ii++)
|
|||
|
|
pkce[_ii] = new float[CEN];
|
|||
|
|
float **loce = new float*[36];
|
|||
|
|
for (int _ii = 0; _ii < 36; _ii++)
|
|||
|
|
loce[_ii] = new float[CEN];
|
|||
|
|
for (int i = 0; i<36; i++)
|
|||
|
|
{
|
|||
|
|
for (int m = 0; m < CEN; m++)
|
|||
|
|
{
|
|||
|
|
pkce[i][m] = 0;
|
|||
|
|
loce[i][m] = 0;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
findPeaks(F_lb, pkce, loce, 1, CEN);
|
|||
|
|
for (int k = 0; k<36; k++)
|
|||
|
|
{
|
|||
|
|
for (int m = 0; m<CEN; m++)
|
|||
|
|
{
|
|||
|
|
if (pkce[k][m] != 0)
|
|||
|
|
{
|
|||
|
|
pce[k] = pkce[k][m];
|
|||
|
|
lce[k] = loce[k][m];
|
|||
|
|
|
|||
|
|
if (pkce[k][m]>F_lb_max[k] * 0.8)
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
else if (pkce[k][m] == 0)
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
Ecc_co(lce, CEC, FDL, RSR,36);
|
|||
|
|
CEM =CEC[0];
|
|||
|
|
for (int i = 1; i < 18; i++)
|
|||
|
|
{
|
|||
|
|
if (CEC[i] > CEM)
|
|||
|
|
{
|
|||
|
|
CEM = CEC[i];
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
CEM= 100 - CEM;
|
|||
|
|
for (int _ii = 0; _ii < 36; _ii++)
|
|||
|
|
{
|
|||
|
|
delete[]pkce[_ii];
|
|||
|
|
}delete[]pkce;
|
|||
|
|
for (int _ii = 0; _ii < 36; _ii++)
|
|||
|
|
{
|
|||
|
|
delete[]loce[_ii];
|
|||
|
|
}delete[]loce;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ
|
|||
|
|
hilbert(N2D,N_hx_abs,36);//<2F><><EFBFBD><EFBFBD>ǰ512<31><32>
|
|||
|
|
/*for (int i = 0; i < 36; i++)
|
|||
|
|
{
|
|||
|
|
for (int j = 0; j < NN; j++)
|
|||
|
|
{
|
|||
|
|
N_hx_abs[i][j] = N2D[i][j];
|
|||
|
|
}
|
|||
|
|
}*/
|
|||
|
|
for (int i = 0; i < 36; i++)
|
|||
|
|
{
|
|||
|
|
maxindex[i]=1;
|
|||
|
|
N_hx_abs_max[i] = N_hx_abs[i][0];
|
|||
|
|
}
|
|||
|
|
maxInArray_self(N_hx_abs, N_hx_abs_max, maxindex,1, NN, 36, 1);
|
|||
|
|
|
|||
|
|
float pn[36] = { 0 }, ln[36] = { 0 };
|
|||
|
|
float **pksn = new float*[36];
|
|||
|
|
for (int _ii = 0; _ii < 36; _ii++)
|
|||
|
|
pksn[_ii] = new float[FPE1];
|
|||
|
|
float **locsn = new float*[36];
|
|||
|
|
for (int _ii = 0; _ii < 36; _ii++)
|
|||
|
|
locsn[_ii] = new float[FPE1];
|
|||
|
|
for (int i = 0; i<36; i++)
|
|||
|
|
{
|
|||
|
|
for (int m = 0; m < FPE1; m++)
|
|||
|
|
{
|
|||
|
|
pksn[i][m] = 0;
|
|||
|
|
locsn[i][m] = 0;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
findPeaks(N_hx_abs, pksn, locsn, FPS1, FPE1);
|
|||
|
|
for (int k = 0; k<36; k++)
|
|||
|
|
{
|
|||
|
|
for (int m = 0; m<FPS1; m++)
|
|||
|
|
{
|
|||
|
|
if (pksn[k][m] != 0)
|
|||
|
|
{
|
|||
|
|
pn[k] = pksn[k][m];
|
|||
|
|
ln[k] = locsn[k][m];
|
|||
|
|
if (pksn[k][m]>N_hx_abs_max[k]/3)
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
else if (pksn[k][m] == 0)
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
for (int _ii = 0; _ii < 36; _ii++)
|
|||
|
|
{
|
|||
|
|
delete[]pksn[_ii];
|
|||
|
|
}delete[]pksn;
|
|||
|
|
for (int _ii = 0; _ii < 36; _ii++)
|
|||
|
|
{
|
|||
|
|
delete[]locsn[_ii];
|
|||
|
|
}delete[]locsn;
|
|||
|
|
|
|||
|
|
//˥<><CBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
for (int j = 0; j < 36; j++)
|
|||
|
|
{
|
|||
|
|
Att0all[j] = 20 / 0.1*log10(pn[j] / pf[j]);
|
|||
|
|
if(Att0all[j]<0)
|
|||
|
|
{Att0all[j]=(Att0all[j-1]+Att0all[j-2])/2;}
|
|||
|
|
}
|
|||
|
|
/*for (int j = 0; j < 36; j++)
|
|||
|
|
{
|
|||
|
|
Att0all[j] = 20 / 0.1*log10(N_hx_abs_max[j] / F_hx_abs_max[j]);
|
|||
|
|
}*/
|
|||
|
|
//<2F>ܺ<D7B9><DCBA>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
fft(R2D, RR2D,R_hx_group, R_XX_abs,72,RNS,RNE); //ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD>㲨<EFBFBD>ζ<EFBFBD>
|
|||
|
|
/*for (int i = 0; i < 72; i++)
|
|||
|
|
{
|
|||
|
|
for (int j = 0; j < NN*2; j++)
|
|||
|
|
{
|
|||
|
|
R_XX_abs[i][j] = RR2D[i][j];
|
|||
|
|
R_hx_group[i][j]=RR2D[i][j];
|
|||
|
|
}
|
|||
|
|
}*/
|
|||
|
|
float ref = 0.5*STEV / CTH;//<2F><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>
|
|||
|
|
float RN1 = round((ref - RM1)*6/25);
|
|||
|
|
float RN2 = round((ref + RM2)*6/25);
|
|||
|
|
int RN11=RN1;
|
|||
|
|
for (int i = 0; i < 72; i++)
|
|||
|
|
{
|
|||
|
|
minindex[i]=RN1;
|
|||
|
|
R_hx_phah_min[i] = R_hx_group[i][RN11];
|
|||
|
|
}
|
|||
|
|
minInArray_self(R_hx_group, R_hx_phah_min, minindex, RN1,RN2, 72, 1);
|
|||
|
|
|
|||
|
|
THerr=0;
|
|||
|
|
Thc_co(THCAV, Rf, THC, minindex, RSR, STEV, NN*2);
|
|||
|
|
THerr=sqrt((THCAV[0]-CTH)*(THCAV[0]-CTH))/CTH*100;
|
|||
|
|
float THLR;
|
|||
|
|
THLR=sqrt(((THCAV[0]-CTH)/CTH)*((THCAV[0]-CTH)/CTH))*100;
|
|||
|
|
float THCMN= THC[0];
|
|||
|
|
for (int i = 1; i < 72; i++)
|
|||
|
|
{
|
|||
|
|
if (THC[i] <THCMN)
|
|||
|
|
{
|
|||
|
|
THCMN = THC[i];
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
float THCMX= THC[0];
|
|||
|
|
for (int i = 1; i < 72; i++)
|
|||
|
|
{
|
|||
|
|
if (THC[i] >THCMX)
|
|||
|
|
{
|
|||
|
|
THCMX = THC[i];
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
THCSD=CTH;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD>
|
|||
|
|
hilbert2(RR2D,R_hx_abs,72);
|
|||
|
|
/*for (int i = 0; i < 72; i++)
|
|||
|
|
{
|
|||
|
|
for (int j = 0; j < NN; j++)
|
|||
|
|
{
|
|||
|
|
R_hx_abs[i][j] = R2D[i][j];
|
|||
|
|
}
|
|||
|
|
}*/
|
|||
|
|
for (int i = 0; i < 72; i++)
|
|||
|
|
{
|
|||
|
|
maxindex[i]=1;
|
|||
|
|
R_hx_abs_max[i] = R_hx_abs[i][0];
|
|||
|
|
}
|
|||
|
|
maxInArray_self(R_hx_abs, R_hx_abs_max, maxindex,1, NN, 72, 1);
|
|||
|
|
Rate_co(R_hx_abs, RATE, maxindex, R_hx_abs_max, RSR, RWD, RWL,NN);
|
|||
|
|
float amp[72];
|
|||
|
|
for (int i = 0; i < 72; i++)
|
|||
|
|
{
|
|||
|
|
maxindex[i]=1;
|
|||
|
|
amp[i] = R_hx_abs[i][0];
|
|||
|
|
}
|
|||
|
|
maxInArray_self(R_hx_abs, amp, maxindex,50, NN, 72, 1);
|
|||
|
|
float ampg[72];
|
|||
|
|
for (int i = 1; i < 72; i++)
|
|||
|
|
{
|
|||
|
|
ampg[i]=amp[i]/RGN[i];
|
|||
|
|
}
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
|
float ECC[36];
|
|||
|
|
Ecc_co(maxindex, ECC, RDL, RSR,72);
|
|||
|
|
ECM= ECC[0];
|
|||
|
|
for (int i = 1; i < 36; i++)
|
|||
|
|
{
|
|||
|
|
if (ECC[i] > ECM)
|
|||
|
|
{
|
|||
|
|
ECM = ECC[i];
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><D2BA>״̬
|
|||
|
|
float BW1 = BW * 100;
|
|||
|
|
float ZM2=1.5;
|
|||
|
|
Zc_Zm_comb(Att0all, ATT, RATE, CON2, CON1, CTH, IT, CD, BW1, CT, LSM, CON3,Zc_end, Zm_end, ZM1, ZM2);
|
|||
|
|
Att_c_find2(Att_c, ATT, CTH, Zm_end, CON1);
|
|||
|
|
SLG_plate(SLG, Zc_end, Att_c, CTH, CT, gd_Zc, gd_Att, ld_Zc, ld_Att, sd_Zc, sd_Att, gu_Zc, gu_Att, lu_Zc, lu_Att, su_Zc, su_Att);
|
|||
|
|
|
|||
|
|
S_cal(SLG,SPR,CmQ,S1,S2,S3,L1,L2,L3,G1,CCMX,CCMN);
|
|||
|
|
SPR_all=SPR[0];
|
|||
|
|
LPR_all=SPR[1];
|
|||
|
|
GPR_all=SPR[2];
|
|||
|
|
|
|||
|
|
|
|||
|
|
/*for(int j=0;j<72;j++)
|
|||
|
|
{
|
|||
|
|
FSLG[j][fiii]=SLG[j];
|
|||
|
|
}*/
|
|||
|
|
FDEP[fiii]=HD.Dep;
|
|||
|
|
FSPR[fiii]=SPR_all;
|
|||
|
|
FGPR[fiii]=GPR_all;
|
|||
|
|
fiii++;
|
|||
|
|
|
|||
|
|
|
|||
|
|
//-------------------------------------------4 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)-------------------------------------------------
|
|||
|
|
//<2F><>ά<EFBFBD><CEAC><EFBFBD><EFBFBD>
|
|||
|
|
if(ATT_index > 0) MemRdWt.WriteWave(ATT_index, HD.Dep, 1, &Att0all);//ֱ<>Ӽ<EFBFBD><D3BC><EFBFBD><EFBFBD>õ<EFBFBD>
|
|||
|
|
if(RATE_index > 0) MemRdWt.WriteWave(RATE_index, HD.Dep, 1, &RATE);
|
|||
|
|
if(ATTC_index > 0) MemRdWt.WriteWave(ATTC_index, HD.Dep, 1, &Att_c);//<2F><EFBFBD>˥<EFBFBD><CBA5>
|
|||
|
|
if(ZCC_index > 0) MemRdWt.WriteWave(ZCC_index, HD.Dep, 1, &Zc_end);//<2F><EFBFBD><D7BA>迹
|
|||
|
|
if(SLG_index > 0) MemRdWt.WriteWave(SLG_index, HD.Dep, 1, &SLG);
|
|||
|
|
if(THC_index > 0) MemRdWt.WriteWave(THC_index, HD.Dep, 1, &THC);
|
|||
|
|
if(AMP_index > 0) MemRdWt.WriteWave(AMP_index, HD.Dep, 1, &);
|
|||
|
|
//һά<D2BB><CEAC><EFBFBD><EFBFBD>
|
|||
|
|
if(THCAV_index > 0) MemRdWt.WriteCurve(THCAV_index,HD.Dep,1,&THCAV);
|
|||
|
|
if(THerr_index > 0) MemRdWt.WriteCurve(THerr_index,HD.Dep,1,&THerr);
|
|||
|
|
if(THCAV_index > 0) MemRdWt.WriteCurve(THCAV_index,HD.Dep,1,&THCAV);
|
|||
|
|
if(THCMN_index > 0) MemRdWt.WriteCurve(THCMN_index,HD.Dep,1,&THCMN);
|
|||
|
|
if(THCMX_index > 0) MemRdWt.WriteCurve(THCMX_index,HD.Dep,1,&THCMX);
|
|||
|
|
if(THLR_index > 0) MemRdWt.WriteCurve(THLR_index,HD.Dep,1,&THLR);
|
|||
|
|
if(CEM_index > 0) MemRdWt.WriteCurve(CEM_index,HD.Dep,1,&CEM);
|
|||
|
|
if(ECM_index > 0) MemRdWt.WriteCurve(ECM_index,HD.Dep,1,&ECM);
|
|||
|
|
if(THCSD_index > 0) MemRdWt.WriteCurve(THCSD_index,HD.Dep,1,&THCSD);
|
|||
|
|
if(SPR_all_index > 0) MemRdWt.WriteCurve(SPR_all_index,HD.Dep,1,&SPR_all);
|
|||
|
|
if(LPR_all_index > 0) MemRdWt.WriteCurve(LPR_all_index,HD.Dep,1,&LPR_all);
|
|||
|
|
if(GPR_all_index > 0) MemRdWt.WriteCurve(GPR_all_index,HD.Dep,1,&GPR_all);
|
|||
|
|
MemRdWt.In();
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
Fdpr *fdpr=new Fdpr[fiii];
|
|||
|
|
for(int i=0;i<fiii;i++)
|
|||
|
|
{
|
|||
|
|
fdpr[i].fdep=FDEP[i];
|
|||
|
|
fdpr[i].fgpr=FGPR[i];
|
|||
|
|
fdpr[i].fspr=FSPR[i];
|
|||
|
|
}
|
|||
|
|
int dataSize =fiii;
|
|||
|
|
const int maxSegments = fiii;
|
|||
|
|
int segmentCount = 0;
|
|||
|
|
|
|||
|
|
Fdpr*** segments = new Fdpr**[maxSegments];
|
|||
|
|
int* segmentLengths = new int[maxSegments](); // ÿ<>εij<CEB5><C4B3><EFBFBD>
|
|||
|
|
float* segmentAverages = new float[maxSegments](); // <20>洢ÿ<E6B4A2>ε<EFBFBD>ƽ<EFBFBD><C6BD>ֵ
|
|||
|
|
float* segmentGAverages = new float[maxSegments]();
|
|||
|
|
// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
|
|||
|
|
segments[segmentCount] = new Fdpr*[dataSize];
|
|||
|
|
segments[segmentCount][segmentLengths[segmentCount]++] = &fdpr[0];
|
|||
|
|
|
|||
|
|
// <20><>ǰ<EFBFBD>ε<EFBFBD>yֵ<79><D6B5>Χ
|
|||
|
|
int currentRange = getRange(fdpr[0].fspr,S1,S2,S3);
|
|||
|
|
|
|||
|
|
// <20>ֶ<EFBFBD><D6B6><EFBFBD>
|
|||
|
|
for (int i = 1; i < dataSize; ++i) {
|
|||
|
|
int newRange = getRange(fdpr[i].fspr,S1,S2,S3);
|
|||
|
|
if (newRange != currentRange) {
|
|||
|
|
// <20><><EFBFBD>㵱ǰ<E3B5B1>ε<EFBFBD>ƽ<EFBFBD><C6BD>ֵ
|
|||
|
|
float sum = 0;
|
|||
|
|
float sumg = 0;
|
|||
|
|
for (int j = 0; j < segmentLengths[segmentCount]; ++j) {
|
|||
|
|
sum += segments[segmentCount][j]->fspr;
|
|||
|
|
sumg += segments[segmentCount][j]->fgpr;
|
|||
|
|
}
|
|||
|
|
segmentAverages[segmentCount] = sum / segmentLengths[segmentCount];
|
|||
|
|
segmentGAverages[segmentCount] = sumg / segmentLengths[segmentCount];
|
|||
|
|
// <20><><EFBFBD>ɵ<EFBFBD>ǰ<EFBFBD>Σ<EFBFBD><CEA3><EFBFBD>ʼ<EFBFBD>¶<EFBFBD>
|
|||
|
|
segmentCount++;
|
|||
|
|
segments[segmentCount] = new Fdpr*[dataSize];
|
|||
|
|
currentRange = newRange;
|
|||
|
|
}
|
|||
|
|
segments[segmentCount][segmentLengths[segmentCount]++] = &fdpr[i];
|
|||
|
|
}
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>ε<EFBFBD>ƽ<EFBFBD><C6BD>ֵ
|
|||
|
|
float sum = 0;
|
|||
|
|
float sumg = 0;
|
|||
|
|
for (int j = 0; j < segmentLengths[segmentCount]; ++j) {
|
|||
|
|
sum += segments[segmentCount][j]->fspr;
|
|||
|
|
sumg += segments[segmentCount][j]->fgpr;
|
|||
|
|
}
|
|||
|
|
segmentAverages[segmentCount] = sum / segmentLengths[segmentCount];
|
|||
|
|
segmentGAverages[segmentCount] = sumg / segmentLengths[segmentCount];
|
|||
|
|
segmentCount++; // ʵ<>ʵĶ<CAB5><C4B6><EFBFBD>
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ֶν<D6B6><CEBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD>ֵ
|
|||
|
|
/*FILE *tb1;
|
|||
|
|
tb1=fopen("E:\\seg.txt","w");
|
|||
|
|
for (int i = 0; i < segmentCount; i++)
|
|||
|
|
{
|
|||
|
|
fprintf(tb1,"%d\t",i+1);
|
|||
|
|
fprintf(tb1,"%f\t",segmentAverages[i]);
|
|||
|
|
fprintf(tb1,"%f\t",segments[i][0]->fdep);
|
|||
|
|
fprintf(tb1,"%f\t",segments[i][segmentLengths[i]-1]->fdep);
|
|||
|
|
fprintf(tb1,"\n");
|
|||
|
|
}
|
|||
|
|
fclose(tb1);*/
|
|||
|
|
GUJING *CCNN1=new GUJING[segmentCount];
|
|||
|
|
for (int i = 0; i < segmentCount; i++)
|
|||
|
|
{
|
|||
|
|
CCNN1[i].GNO=i+1;
|
|||
|
|
CCNN1[i].GSDEP=segments[i][0]->fdep;
|
|||
|
|
if(i+1==segmentCount)
|
|||
|
|
CCNN1[i].GEDEP=segments[i][segmentLengths[i]-1]->fdep;
|
|||
|
|
else
|
|||
|
|
CCNN1[i].GEDEP=segments[i+1][0]->fdep;
|
|||
|
|
CCNN1[i].GRESULT=Grs(segmentAverages[i],segmentGAverages[i],S1,S2,S3,L1,L2,L3,G1);
|
|||
|
|
}
|
|||
|
|
/*FILE *tb11;
|
|||
|
|
tb11=fopen("E:\\CN1.txt","w");
|
|||
|
|
for (int i = 0; i < segmentCount; i++)
|
|||
|
|
{
|
|||
|
|
fprintf(tb11,"%d\t",CCNN1[i].GNO);
|
|||
|
|
fprintf(tb11,"%f\t",CCNN1[i].GSDEP);
|
|||
|
|
fprintf(tb11,"%f\t",CCNN1[i].GEDEP);
|
|||
|
|
fprintf(tb11,"%d\t",CCNN1[i].GRESULT);
|
|||
|
|
fprintf(tb11,"\n");
|
|||
|
|
}
|
|||
|
|
fclose(tb11);*/
|
|||
|
|
for (int i = 1; i < segmentCount-1; i++)
|
|||
|
|
{
|
|||
|
|
if(CCNN1[i].GEDEP-CCNN1[i].GSDEP<0.5&&CCNN1[i].GRESULT==1)
|
|||
|
|
{
|
|||
|
|
if(CCNN1[i-1].GRESULT==CCNN1[i+1].GRESULT)
|
|||
|
|
CCNN1[i].GRESULT=CCNN1[i-1].GRESULT;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
for (int i = 1; i < segmentCount-1; i++)
|
|||
|
|
{
|
|||
|
|
if(CCNN1[i].GEDEP-CCNN1[i].GSDEP<0.5)
|
|||
|
|
{
|
|||
|
|
if(CCNN1[i-1].GRESULT==CCNN1[i+1].GRESULT&&CCNN1[i-1].GRESULT==1)
|
|||
|
|
CCNN1[i].GRESULT=1;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
GUJING *CCNN2=new GUJING[segmentCount];
|
|||
|
|
int CN2=1;
|
|||
|
|
CCNN2[0]=CCNN1[0];
|
|||
|
|
CCNN2[0].GNO=1;
|
|||
|
|
for (int i = 0; i < segmentCount-1; i++)
|
|||
|
|
{
|
|||
|
|
if(CCNN1[i].GRESULT==CCNN1[i+1].GRESULT)
|
|||
|
|
{
|
|||
|
|
CCNN2[CN2-1].GEDEP=CCNN1[i+1].GEDEP;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
CCNN2[CN2]=CCNN1[i+1];
|
|||
|
|
CCNN2[CN2].GNO=CN2+1;
|
|||
|
|
CN2++;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
/*FILE *tb1;
|
|||
|
|
tb1=fopen("E:\\CN2.txt","w");
|
|||
|
|
for (int i = 0; i < CN2; i++)
|
|||
|
|
{
|
|||
|
|
fprintf(tb1,"%d\t",CCNN2[i].GNO);
|
|||
|
|
fprintf(tb1,"%f\t",CCNN2[i].GSDEP);
|
|||
|
|
fprintf(tb1,"%f\t",CCNN2[i].GEDEP);
|
|||
|
|
fprintf(tb1,"%d\t",CCNN2[i].GRESULT);
|
|||
|
|
fprintf(tb1,"\n");
|
|||
|
|
}
|
|||
|
|
fclose(tb1);*/
|
|||
|
|
|
|||
|
|
for (int i = 1; i < CN2-1; i++)
|
|||
|
|
{
|
|||
|
|
if(CCNN2[i].GEDEP-CCNN2[i].GSDEP<1&&CCNN2[i].GRESULT==1)
|
|||
|
|
{
|
|||
|
|
if(CCNN2[i-1].GRESULT==CCNN2[i+1].GRESULT)
|
|||
|
|
CCNN2[i].GRESULT=CCNN2[i-1].GRESULT;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
for (int i = 1; i < CN2-1; i++)
|
|||
|
|
{
|
|||
|
|
if(CCNN2[i].GEDEP-CCNN2[i].GSDEP<1)
|
|||
|
|
{
|
|||
|
|
if(CCNN2[i-1].GRESULT==CCNN2[i+1].GRESULT&&CCNN2[i-1].GRESULT==1)
|
|||
|
|
CCNN2[i].GRESULT=1;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
GUJING *CCNN3=new GUJING[CN2];
|
|||
|
|
int CN3=1;
|
|||
|
|
CCNN3[0]=CCNN2[0];
|
|||
|
|
CCNN3[0].GNO=1;
|
|||
|
|
for (int i = 0; i < CN2-1; i++)
|
|||
|
|
{
|
|||
|
|
if(CCNN2[i].GRESULT==CCNN2[i+1].GRESULT)
|
|||
|
|
{
|
|||
|
|
CCNN3[CN3-1].GEDEP=CCNN2[i+1].GEDEP;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
CCNN3[CN3]=CCNN2[i+1];
|
|||
|
|
CCNN3[CN3].GNO=CN3+1;
|
|||
|
|
CN3++;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
//float *CSLG=new float[FLE];
|
|||
|
|
for (int i = 0; i < CN3; i++)
|
|||
|
|
{
|
|||
|
|
float cspr=0;
|
|||
|
|
float cgpr=0;
|
|||
|
|
float cns=0;
|
|||
|
|
for(int j = 0; j < FLE; j++)
|
|||
|
|
{
|
|||
|
|
if(FDEP[j]>=CCNN3[i].GSDEP&&FDEP[j]<=CCNN3[i].GEDEP)
|
|||
|
|
{
|
|||
|
|
cspr=cspr+FSPR[j];
|
|||
|
|
cgpr=cgpr+FGPR[j];
|
|||
|
|
cns++;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
cspr=cspr/cns;
|
|||
|
|
cgpr=cgpr/cns;
|
|||
|
|
CCNN3[i].GRESULT=Grs(cspr,cgpr,S1,S2,S3,L1,L2,L3,G1);
|
|||
|
|
}
|
|||
|
|
for (int i = 1; i < CN3-1; i++)
|
|||
|
|
{
|
|||
|
|
if(CCNN3[i].GEDEP-CCNN3[i].GSDEP<1)
|
|||
|
|
{
|
|||
|
|
if(CCNN3[i-1].GRESULT==CCNN3[i+1].GRESULT)
|
|||
|
|
CCNN3[i].GRESULT=CCNN3[i-1].GRESULT;
|
|||
|
|
else if(CCNN3[i-1].GRESULT<CCNN3[i+1].GRESULT)
|
|||
|
|
CCNN3[i].GRESULT=CCNN3[i-1].GRESULT;
|
|||
|
|
else if(CCNN3[i-1].GRESULT>CCNN3[i+1].GRESULT)
|
|||
|
|
CCNN3[i].GRESULT=CCNN3[i+1].GRESULT;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
GUJING *CCNN4=new GUJING[CN3];
|
|||
|
|
int CN4=1;
|
|||
|
|
CCNN4[0]=CCNN3[0];
|
|||
|
|
CCNN4[0].GNO=1;
|
|||
|
|
for (int i = 0; i < CN3-1; i++)
|
|||
|
|
{
|
|||
|
|
if(CCNN3[i].GRESULT==CCNN3[i+1].GRESULT)
|
|||
|
|
{
|
|||
|
|
CCNN4[CN4-1].GEDEP=CCNN3[i+1].GEDEP;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
CCNN4[CN4]=CCNN3[i+1];
|
|||
|
|
CCNN4[CN4].GNO=CN4+1;
|
|||
|
|
CN4++;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
for (int i = 0; i < CN4; i++)
|
|||
|
|
{
|
|||
|
|
float cspr=0;
|
|||
|
|
float cgpr=0;
|
|||
|
|
float cns=0;
|
|||
|
|
for(int j = 0; j < FLE; j++)
|
|||
|
|
{
|
|||
|
|
if(FDEP[j]>=CCNN4[i].GSDEP&&FDEP[j]<=CCNN4[i].GEDEP)
|
|||
|
|
{
|
|||
|
|
cspr=cspr+FSPR[j];
|
|||
|
|
cgpr=cgpr+FGPR[j];
|
|||
|
|
cns++;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
cspr=cspr/cns;
|
|||
|
|
cgpr=cgpr/cns;
|
|||
|
|
CCNN4[i].GRESULT=Grs(cspr,cgpr,S1,S2,S3,L1,L2,L3,G1);
|
|||
|
|
}
|
|||
|
|
GUJING *CCNN5=new GUJING[CN4];
|
|||
|
|
int CN5=1;
|
|||
|
|
CCNN5[0]=CCNN4[0];
|
|||
|
|
CCNN5[0].GNO=1;
|
|||
|
|
for (int i = 0; i < CN4-1; i++)
|
|||
|
|
{
|
|||
|
|
if(CCNN4[i].GRESULT==CCNN4[i+1].GRESULT)
|
|||
|
|
{
|
|||
|
|
CCNN5[CN5-1].GEDEP=CCNN4[i+1].GEDEP;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
CCNN5[CN5]=CCNN4[i+1];
|
|||
|
|
CCNN5[CN5].GNO=CN5+1;
|
|||
|
|
CN5++;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
for (int i = 0; i < CN5; i++)
|
|||
|
|
{
|
|||
|
|
switch(CCNN5[i].GRESULT)
|
|||
|
|
{
|
|||
|
|
case 0:
|
|||
|
|
CCNN5[i].GRESULT=7;
|
|||
|
|
break;
|
|||
|
|
case 1:
|
|||
|
|
CCNN5[i].GRESULT=8;
|
|||
|
|
break;
|
|||
|
|
case 2:
|
|||
|
|
CCNN5[i].GRESULT=9;
|
|||
|
|
break;
|
|||
|
|
case 3:
|
|||
|
|
CCNN5[i].GRESULT=10;
|
|||
|
|
break;
|
|||
|
|
case 4:
|
|||
|
|
CCNN5[i].GRESULT=6;
|
|||
|
|
break;
|
|||
|
|
case 5:
|
|||
|
|
CCNN5[i].GRESULT=11;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
for (int i = 0; i < CN5; i++)
|
|||
|
|
{
|
|||
|
|
MemRdWt.WriteTable(itable1, i+1, &CCNN5[i]);
|
|||
|
|
}
|
|||
|
|
for (int i = 0; i < CN5; i++)
|
|||
|
|
{
|
|||
|
|
switch(CCNN5[i].GRESULT)
|
|||
|
|
{
|
|||
|
|
case 7:
|
|||
|
|
CCNN5[i].GRESULT=12;
|
|||
|
|
break;
|
|||
|
|
case 8:
|
|||
|
|
CCNN5[i].GRESULT=12;
|
|||
|
|
break;
|
|||
|
|
case 9:
|
|||
|
|
CCNN5[i].GRESULT=13;
|
|||
|
|
break;
|
|||
|
|
case 10:
|
|||
|
|
{
|
|||
|
|
float cspr=0;
|
|||
|
|
float cns=0;
|
|||
|
|
for(int j = 0; j < FLE; j++)
|
|||
|
|
{
|
|||
|
|
if(FDEP[j]>=CCNN5[i].GSDEP&&FDEP[j]<=CCNN5[i].GEDEP)
|
|||
|
|
{
|
|||
|
|
cspr=cspr+FSPR[j];
|
|||
|
|
cns++;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
cspr=cspr/cns;
|
|||
|
|
if(cspr>100-S2)
|
|||
|
|
CCNN5[i].GRESULT=15;
|
|||
|
|
else
|
|||
|
|
CCNN5[i].GRESULT=14;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
case 6:
|
|||
|
|
CCNN5[i].GRESULT=15;
|
|||
|
|
break;
|
|||
|
|
case 11:
|
|||
|
|
CCNN5[i].GRESULT=15;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
GUJING *CCNN6=new GUJING[CN5];
|
|||
|
|
int CN6=1;
|
|||
|
|
CCNN6[0]=CCNN5[0];
|
|||
|
|
CCNN6[0].GNO=1;
|
|||
|
|
for (int i = 0; i < CN5-1; i++)
|
|||
|
|
{
|
|||
|
|
if(CCNN5[i].GRESULT==CCNN5[i+1].GRESULT)
|
|||
|
|
{
|
|||
|
|
CCNN6[CN6-1].GEDEP=CCNN5[i+1].GEDEP;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
CCNN6[CN6]=CCNN5[i+1];
|
|||
|
|
CCNN6[CN6].GNO=CN6+1;
|
|||
|
|
CN6++;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
for (int i = 0; i < CN6; i++)
|
|||
|
|
{
|
|||
|
|
MemRdWt.WriteTable(itable2, i+1, &CCNN6[i]);
|
|||
|
|
}
|
|||
|
|
// <20>ͷŶ<CDB7>̬<EFBFBD><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
|
|||
|
|
delete[] CCNN1;
|
|||
|
|
delete[] CCNN2;
|
|||
|
|
delete[] CCNN3;
|
|||
|
|
delete[] CCNN4;
|
|||
|
|
delete[] CCNN5;
|
|||
|
|
delete[] CCNN6;
|
|||
|
|
delete[] fdpr;
|
|||
|
|
for (int i = 0; i < segmentCount; ++i) {
|
|||
|
|
delete[] segments[i]; // <20>ͷ<EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>εĶ<CEB5>̬<EFBFBD><CCAC><EFBFBD><EFBFBD>
|
|||
|
|
}
|
|||
|
|
delete[] segments; // <20>ͷŴ洢<C5B4><E6B4A2>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
delete[] segmentLengths; // <20>ͷŶγ<C5B6><CEB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
delete[] segmentAverages; // <20>ͷ<EFBFBD>ƽ<EFBFBD><C6BD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
|
|||
|
|
delete[] segmentGAverages;
|
|||
|
|
delete[] FDEP;
|
|||
|
|
delete[] FSPR;
|
|||
|
|
delete[] FGPR;
|
|||
|
|
|
|||
|
|
#pragma region <20>ռ<EFBFBD><D5BC>ͷ<EFBFBD>
|
|||
|
|
for(int _ii = 0; _ii< 36; _ii++)
|
|||
|
|
{
|
|||
|
|
delete []N2D[_ii];
|
|||
|
|
}delete []N2D;
|
|||
|
|
for(int _ii = 0; _ii < 36; _ii++)
|
|||
|
|
{
|
|||
|
|
delete []F2D[_ii];
|
|||
|
|
}delete []F2D;
|
|||
|
|
for(int _ii = 0; _ii < 72; _ii++)
|
|||
|
|
{
|
|||
|
|
delete []R2D[_ii];
|
|||
|
|
}delete []R2D;
|
|||
|
|
for(int _ii = 0; _ii < 72; _ii++)
|
|||
|
|
{
|
|||
|
|
delete []RR2D[_ii];
|
|||
|
|
}delete []RR2D;
|
|||
|
|
//<2F><>
|
|||
|
|
for(int _ii = 0; _ii < 36; _ii++)
|
|||
|
|
{
|
|||
|
|
delete []N_hx_abs[_ii];
|
|||
|
|
}delete []N_hx_abs;
|
|||
|
|
for(int _ii = 0; _ii < 36; _ii++)
|
|||
|
|
{
|
|||
|
|
delete []F_hx_abs[_ii];
|
|||
|
|
}delete []F_hx_abs;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>
|
|||
|
|
for (int _ii = 0; _ii < 36; _ii++)
|
|||
|
|
{
|
|||
|
|
delete[]R_hx_group[_ii];
|
|||
|
|
}delete[]R_hx_group;
|
|||
|
|
for(int _ii = 0; _ii < 72; _ii++)
|
|||
|
|
{
|
|||
|
|
delete []R_hx_abs[_ii];
|
|||
|
|
}delete []R_hx_abs;
|
|||
|
|
for(int _ii = 0; _ii < 72; _ii++)
|
|||
|
|
{
|
|||
|
|
delete []R_XX_abs[_ii];
|
|||
|
|
}delete []R_XX_abs;
|
|||
|
|
for (int _ii = 0; _ii < 36; _ii++)
|
|||
|
|
{
|
|||
|
|
delete[]F_lb[_ii];
|
|||
|
|
}delete[]F_lb;
|
|||
|
|
#pragma endregion
|
|||
|
|
|
|||
|
|
|
|||
|
|
/*N2D = nullptr;
|
|||
|
|
F2D = nullptr;
|
|||
|
|
R2D = nullptr;
|
|||
|
|
RR2D = nullptr;
|
|||
|
|
N_hx_abs = nullptr;
|
|||
|
|
F_hx_abs = nullptr;
|
|||
|
|
R_hx_group = nullptr;
|
|||
|
|
R_hx_abs = nullptr;
|
|||
|
|
R_XX_abs = nullptr;
|
|||
|
|
F_lb = nullptr; */
|
|||
|
|
|
|||
|
|
cout << "The run time is: " << (float)clock() / CLOCKS_PER_SEC << "s" << endl;
|
|||
|
|
return 1;
|
|||
|
|
}
|