|
|
#pragma once
|
|
|
|
|
|
#include "Defines.h"
|
|
|
#include "iWxPvtSubPhase.h"
|
|
|
#include "mToolPvt_global.h"
|
|
|
|
|
|
class M_TOOL_PVT_EXPORT iWxPvtPhaseParaCal : public QObject
|
|
|
{
|
|
|
Q_OBJECT
|
|
|
|
|
|
public:
|
|
|
|
|
|
explicit iWxPvtPhaseParaCal(QString sFluidType, \
|
|
|
QString sPhaseType);
|
|
|
~iWxPvtPhaseParaCal();
|
|
|
|
|
|
public:
|
|
|
|
|
|
// 关联信息
|
|
|
void bindSubHeader(iWxPvtSubHeader* pSubHeader);
|
|
|
|
|
|
// 计算入口
|
|
|
void recalPvtBy(iAlgPvtBase* pAlgPvt, QString sPara, \
|
|
|
VecInt& vecChecked, int nRadio, \
|
|
|
bool bUpdatePlotsIfChecked);
|
|
|
bool _calPvtBy_Common(QString sMethod, VecDouble& vecXs, VecDouble& vecYs);
|
|
|
bool _calPvtBy_Special(QString sMethod, VecDouble& vecXs, VecDouble& vecYs);
|
|
|
|
|
|
// 计算涉及到的信息
|
|
|
void dealwithMethods();
|
|
|
int getMethodSubType(QString sMethod);
|
|
|
void setMemberValuesOfAlgo();
|
|
|
|
|
|
// 计算特殊点
|
|
|
bool calResultPos(QPointF& pt, QString sMethod);
|
|
|
bool calReferPbPos(QPointF& pt, QString sMethod);
|
|
|
double _calResultPosY(double dX, QString sMethod);
|
|
|
|
|
|
// 返回数据
|
|
|
void getVecX(VecDouble& x);
|
|
|
|
|
|
signals:
|
|
|
|
|
|
// 对计算载体设置参数
|
|
|
void sigMemberValueNeeded(iAlgPvtBase*& );
|
|
|
|
|
|
// 获取PbRefer点
|
|
|
void sigReferPbNeeded(QPointF& pt);
|
|
|
|
|
|
// 计算完成后的结果触发
|
|
|
void sigPvtAlgResult(QString sPara, QString sMethodBase, \
|
|
|
QMap<QString, VecDouble>& mapRs, \
|
|
|
QPointF& ptRs, QPointF& ptReferPb, \
|
|
|
bool bUpdatePlotsIfChecked);
|
|
|
|
|
|
// 获取表格数据
|
|
|
void sigGetPvtTableData(QString sPara, VVecVariant& vvec);
|
|
|
void sigGetPvtConstData(QString sPara, double& d);
|
|
|
|
|
|
public:
|
|
|
|
|
|
// 一些公共函数接口
|
|
|
static bool checkIfModeT(QString sPara);
|
|
|
static bool checkIfPbConsidered(QString sPara, QString sPhaseType);
|
|
|
static void getTitleInfos(QString sPara, bool bModeT, \
|
|
|
QString& sTitleX, QString& sTitleY, \
|
|
|
QString& sUnitX, QString& sUnitY);
|
|
|
|
|
|
protected:
|
|
|
|
|
|
// 当前计算的参数对象,通常英文
|
|
|
QString m_sPara;
|
|
|
|
|
|
// PhaseType,相类型
|
|
|
QString m_sPhaseType;
|
|
|
|
|
|
// 当前参数对象计算方法相关(
|
|
|
QStringList m_listMethodAlls; //所有的计算方法
|
|
|
|
|
|
// SubHeader
|
|
|
iWxPvtSubHeader* m_pSubHeader;
|
|
|
|
|
|
// 对应的实体类
|
|
|
iAlgPvtBase* m_pAlgPvt;
|
|
|
|
|
|
// 是否温度模式
|
|
|
bool m_bModeT;
|
|
|
|
|
|
// 临时标识
|
|
|
bool m_bUnableSP;
|
|
|
};
|