133 lines
4.8 KiB
C++
133 lines
4.8 KiB
C++
#pragma once
|
||
#include "MemRdWt.h"
|
||
#include "CStringType.h"
|
||
#include "WellLogDefines.h"
|
||
#include <QLibrary>
|
||
#include "Module.h"
|
||
#include "ParameterItem.h"
|
||
#include <QTextEdit>
|
||
#include <QDialog>
|
||
#define UINT unsigned int
|
||
struct DllMessage{
|
||
char strDLL[500];
|
||
char strDLLFun[500];
|
||
char d_strDLLPar[500];
|
||
int Type;
|
||
char strName[500];
|
||
char strTemplate[500];
|
||
};
|
||
using namespace pai::module;
|
||
class WELLLOGMODULE_EXPORT PELibraryModule:public CModule
|
||
{
|
||
public:
|
||
PELibraryModule();
|
||
virtual ~PELibraryModule();
|
||
QString CreateParamCardFromConfig();
|
||
|
||
/**
|
||
* 验证模块参数是否正确
|
||
* @return bool 如果参数合法,返回真,否则返回假
|
||
*/
|
||
QTextEdit *GetEdit();
|
||
void SetEdit(QTextEdit *pEdit);
|
||
QString GetParamCardfilename() const { return m_ParamCardfilename; }
|
||
bool LoadParamFromInpFile(QString InpParamFile);
|
||
virtual bool validate(CModuleCheckResult& moduleCheckResult);
|
||
virtual bool validate();
|
||
virtual CModule* Clone();
|
||
static QStringList GetNames(std::string names,char split=',',bool removeblank=true);
|
||
QString strDLLFun;
|
||
QString paramCardNameInSlf;
|
||
int runBrunch;//1 代表系统控制模块 2代表自控模块
|
||
int iscreatemem;
|
||
QString strPlot;
|
||
void ChangeZone(CParameterItem *clonedZone);
|
||
CParameterItem* GetZoneParameterItem(CParameterItem *clonedZone,QString index,QString Name);
|
||
UINT ProcessDLL1(LPVOID nID,float sdep=-99999,float edep=-99999);
|
||
UINT ProcessDLL2(LPVOID nID,float sdep=-99999,float edep=-99999);
|
||
virtual pai::module::STATUS Run();
|
||
virtual pai::module::STATUS Run(double sdep,double edep,char*Zone=NULL);
|
||
void* GetModuleHandle() const { return m_ModuleHandle; }
|
||
/**
|
||
* @brief 获取模块的类名
|
||
* @return 模块的类名
|
||
*/
|
||
virtual std::string GetClassName()
|
||
{
|
||
return std::string("PELibraryModule_"+this->GetMetaData()->GetID());
|
||
}
|
||
void AddZone(CCompositeParameterItem* Zones,
|
||
QString zone,
|
||
QString ZoneParam);
|
||
void AddDefaultZone(CCompositeParameterItem* Zones);
|
||
void AddLastClonedZone(CCompositeParameterItem* Zones);
|
||
|
||
QString GetLibraryfilename() const { return m_libraryfilename; }
|
||
void SetLibraryfilename(QString val) {
|
||
m_libraryfilename = val;
|
||
}
|
||
bool GetPARAM_TAB();
|
||
//将参数卡转换为INP格式的文本字符串,供模块使用
|
||
virtual void WriteHistory();
|
||
QString GetINPParamCard(CMemRdWt *pMemRdWt=NULL,char *pParamName=NULL,bool isSaveToEdit=TRUE);
|
||
QString GetSlfFileName() const { return m_slfFileName; }
|
||
//得到重定向后的所有输出曲线名,如果没有重定向则采用初始的曲线名
|
||
virtual std::string GetRedirectOutputCurveNames();
|
||
virtual std::string GetRedirectInputCurveNames();
|
||
void SetSlfFileName(QString val) { m_slfFileName = val; }
|
||
void SetParamCardfilename(QString val) { m_ParamCardfilename = val; }
|
||
bool InitMemRdWt(double sdep,double edep,char*Zone=NULL,bool isSaveCard=true);
|
||
void refreshParamsByConfigFile(QStringList ¶mSetting);
|
||
unsigned short GetZoneCount();
|
||
QString ReadParamCardFromSLF(CMemRdWt *pMemRdWt,char *pParamName);
|
||
virtual QString LoadINPParamCardFromSLF(CMemRdWt *pMemRdWt=NULL,char *pParamName=NULL);
|
||
virtual QStringList GetParamNames();
|
||
QString GetINPCardName();
|
||
bool LoadParamFromLines(QStringList lines);
|
||
|
||
//得到模块初始的参数中文名
|
||
virtual QStringList GetParamCNNames();
|
||
virtual QStringList GetParamOPTIONS(int no);
|
||
void GetParamValueByNameInZone( int iWellSectionIndex, const QStringList &strNameList,const QStringList &strGroupList,CON_STRU &sCON);
|
||
float GetFloatParam(CModuleParameter * pModulePara,QString ¶mName,QString &str);
|
||
float GetFloatParamInZone(CModuleParameter * pModulePara,QString& paramName,QString &str);
|
||
protected:
|
||
virtual QStringList GetInPutCurveNames();
|
||
virtual QStringList GetOutPutCurveNames();
|
||
struct CON_STRU *DefaultCon;//用于存储最初始的参数值
|
||
struct CON_STRU *RunCon;//用于存储最初始的参数值
|
||
|
||
public:
|
||
struct INC_STRU *Inc;
|
||
struct OUTC_STRU *Outc;
|
||
struct INP_STRU *Inp;
|
||
struct OUTP_STRU *Outp;
|
||
struct CONC_STRU *Conc;
|
||
struct CON_STRU *Con;
|
||
|
||
struct HD_STRU *Hd;
|
||
struct LogType *pLogType;
|
||
struct ErrorInf *errorinf;
|
||
QDialog *parDialog;
|
||
QStringList OriginInNames;
|
||
QStringList OriginOutNames;
|
||
bool InitModule(QWidget*p=NULL);
|
||
bool isEditCard;
|
||
void GetDepthAndMX(QString curvename,QVector<float> &sdeps,QVector<float>&edeps,QVector<float>&minVs,QVector<float> &maxVs);
|
||
void SetCardParamColor(QTextEdit *);
|
||
// void setInsertTextColor(QString search_text,const QColor &color);
|
||
|
||
private:
|
||
void* m_ModuleHandle;
|
||
QLibrary Methodlib;
|
||
CMemRdWt *m_pMemRdWt;
|
||
QString m_libraryfilename;//方法模块库文件的全路径地质
|
||
|
||
bool InitProcessMessage(struct INC_STRU *Inc,struct OUTC_STRU *Outc,struct CONC_STRU *Conc,struct CON_STRU *Con);
|
||
QString m_ParamCardfilename;
|
||
bool LoadedDefaultParams;
|
||
QString m_slfFileName;//用作方法处理的测井数据文件
|
||
QTextEdit *m_pCardpEdit;
|
||
};
|
||
|