|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
|
|
#include "iDlgBase.h"
|
|
|
|
|
|
#include "mToolDeConv_global.h"
|
|
|
|
|
|
|
|
|
|
|
|
namespace Ui {
|
|
|
|
|
|
class iWxDeConv;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
class IxPtySource;
|
|
|
|
|
|
class ZxPtyDock;
|
|
|
|
|
|
class ZxRenderItem;
|
|
|
|
|
|
class iCurveDesc;
|
|
|
|
|
|
|
|
|
|
|
|
class ZxTableView;
|
|
|
|
|
|
class ZxTableModel;
|
|
|
|
|
|
|
|
|
|
|
|
class iGuiPlot;
|
|
|
|
|
|
class iGuiPlotPF;
|
|
|
|
|
|
class ZxObjCurvePressure;
|
|
|
|
|
|
class ZxObjCurveFlow;
|
|
|
|
|
|
class ZxObjCurveBase;
|
|
|
|
|
|
|
|
|
|
|
|
class ZxSegmentInfo;
|
|
|
|
|
|
class iGridRowUtils;
|
|
|
|
|
|
class cmAlgDeConv;
|
|
|
|
|
|
|
|
|
|
|
|
class M_TOOL_DECONV_EXPORT iWxDeConv : public iDlgBase
|
|
|
|
|
|
{
|
|
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
|
|
explicit iWxDeConv(QWidget* parent = 0);
|
|
|
|
|
|
~iWxDeConv();
|
|
|
|
|
|
|
|
|
|
|
|
// 设置数据及流动段信息
|
|
|
|
|
|
void setDvDataInfos(ZxObjCurvePressure* pCurveP, \
|
|
|
|
|
|
ZxObjCurveFlow* pCurveF, \
|
|
|
|
|
|
ZxSegmentInfo* pSegmentInfo);
|
|
|
|
|
|
|
|
|
|
|
|
// 初始化
|
|
|
|
|
|
virtual void initUI();
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
|
|
|
|
// 左侧输入参数初始化
|
|
|
|
|
|
virtual void initUI_Inputs();
|
|
|
|
|
|
void initUI_Inputs_Paras(); //更新输入参数(根据当前数据)
|
|
|
|
|
|
|
|
|
|
|
|
// 中间图形部分初始化
|
|
|
|
|
|
virtual void initUI_Chart();
|
|
|
|
|
|
void initUI_Chart_Up();
|
|
|
|
|
|
void initUI_Chart_Down();
|
|
|
|
|
|
|
|
|
|
|
|
//右侧表格部分初始化
|
|
|
|
|
|
virtual void initUI_Outputs();
|
|
|
|
|
|
void initUI_Outputs_Default(ZxTableView* pTableView);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef QT_DEBUG
|
|
|
|
|
|
// 返回数据
|
|
|
|
|
|
virtual bool getParaValue(QString sPara, double &dValue, QString sUnitDest = "");
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
|
|
|
|
// virtual void paintEvent(QPaintEvent*);
|
|
|
|
|
|
// virtual void resizeEvent(QResizeEvent*);
|
|
|
|
|
|
|
|
|
|
|
|
virtual void onSerialize(ZxSerializer* ser);
|
|
|
|
|
|
virtual void onDeserialize(ZxSerializer* ser);
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
|
|
// 类似clone
|
|
|
|
|
|
virtual void copyFrom(ZxUiBase* p);
|
|
|
|
|
|
|
|
|
|
|
|
public slots:
|
|
|
|
|
|
|
|
|
|
|
|
// 响应左侧GridPty数据的改变,注意:该函数为父类继承过来的函数,不能进行名称更改
|
|
|
|
|
|
virtual void slotParaCtrlValueChanged(QString sPara, QVariant o);
|
|
|
|
|
|
|
|
|
|
|
|
// 属性页
|
|
|
|
|
|
virtual void slotGraphItemPoliciesInstalled(ZxRenderItem*);
|
|
|
|
|
|
|
|
|
|
|
|
// 曲线选择
|
|
|
|
|
|
void slotCurveSelChanged(bool bSelect);
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
|
|
|
|
void bindDockPty(IxPtySource* pPtyObj);
|
|
|
|
|
|
void simuSelectCurve(); //模拟选择第一条曲线
|
|
|
|
|
|
void changeWithCurve(ZxObjCurveBase* pCurve);
|
|
|
|
|
|
QStringList getTableTitlesBy(ZxObjCurveBase* pCurve);
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
|
|
|
|
// 算法+刷新
|
|
|
|
|
|
virtual void calAndFreshRsts();
|
|
|
|
|
|
virtual bool calDeconvRsts();
|
|
|
|
|
|
virtual void freshDeconvRsts();
|
|
|
|
|
|
|
|
|
|
|
|
// Plot 相关
|
|
|
|
|
|
void updateSubPlotDbLog(); //双对数(数据:从反褶积结果中获取)
|
|
|
|
|
|
void updateSubPlotPF(); //压力+流量(数据:从原始绑定的压力流量数据曲线中获取)
|
|
|
|
|
|
void updateSubPlotPF_BSPIN();//BSPIN压力数据(数据:从反褶积结果中获取)
|
|
|
|
|
|
|
|
|
|
|
|
void _updateSubPlot(bool bHistPF, \
|
|
|
|
|
|
QVector<iCurveDesc>& vecDescs, \
|
|
|
|
|
|
bool isAdd);
|
|
|
|
|
|
void _changeCurveAttributes(iGuiPlot* pWxPlot);
|
|
|
|
|
|
|
|
|
|
|
|
void clearChart(iGuiPlot* pWxPlot, bool bClearAll = true); //false时,只清空曲线不清空点
|
|
|
|
|
|
|
|
|
|
|
|
// 结果表
|
|
|
|
|
|
// void updateRstTables();
|
|
|
|
|
|
|
|
|
|
|
|
signals:
|
|
|
|
|
|
|
|
|
|
|
|
void sigDeconvRsts(QMap<QString, VecDouble>&, bool);
|
|
|
|
|
|
|
|
|
|
|
|
private slots:
|
|
|
|
|
|
|
|
|
|
|
|
void on_btnCal_clicked();
|
|
|
|
|
|
void on_cbxAutoCal_clicked();
|
|
|
|
|
|
|
|
|
|
|
|
void on_btnOK_clicked();
|
|
|
|
|
|
void on_btnCancel_clicked();
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
|
|
|
|
Ui::iWxDeConv *ui;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
|
|
|
|
// 绘图
|
|
|
|
|
|
iGuiPlot* m_pWxPlot;
|
|
|
|
|
|
iGuiPlotPF* m_pWxPlotPF;
|
|
|
|
|
|
|
|
|
|
|
|
// 左侧输入
|
|
|
|
|
|
// 布局(左侧)
|
|
|
|
|
|
iGridRowUtils* m_pGridItemUtils;
|
|
|
|
|
|
QStringList m_listParas; //哪些参数,对应英文标识
|
|
|
|
|
|
|
|
|
|
|
|
// 参数列表(左侧)
|
|
|
|
|
|
QMap<QString, QVariant> m_mapParas;
|
|
|
|
|
|
|
|
|
|
|
|
// 右侧属性框
|
|
|
|
|
|
ZxPtyDock* m_pDockPty;
|
|
|
|
|
|
QList<IxPtySource*> m_listProps;
|
|
|
|
|
|
|
|
|
|
|
|
// 调用的算法
|
|
|
|
|
|
cmAlgDeConv* m_pAlg;
|
|
|
|
|
|
|
|
|
|
|
|
// 数据部分,从外部传入指针,此处不负责序列化
|
|
|
|
|
|
// VVecDouble* m_pVvecDataF; //流量数据
|
|
|
|
|
|
// VVecDouble* m_pVvecDataP; //压力数据
|
|
|
|
|
|
ZxSegmentInfo* m_pSegInfo;
|
|
|
|
|
|
ZxObjCurvePressure* m_pBindCurveP;
|
|
|
|
|
|
ZxObjCurveFlow* m_pBindCurveF;
|
|
|
|
|
|
};
|