2026-01-16 17:18:41 +08:00
|
|
|
|
#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();
|
2026-01-23 08:09:11 +08:00
|
|
|
|
bool ToUnicode(char* szStr);
|
2026-01-16 17:18:41 +08:00
|
|
|
|
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;
|
2026-03-20 09:35:26 +08:00
|
|
|
|
QList<QAction*> m_listAct;
|
2026-01-16 17:18:41 +08:00
|
|
|
|
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;
|
|
|
|
|
|
};
|
|
|
|
|
|
|