|
|
#ifndef JDF_LOGRDATA_STRUCT_H
|
|
|
#define JDF_LOGRDATA_STRUCT_H
|
|
|
#include <vector>
|
|
|
|
|
|
class AFX_EXT_API CLogDataBase
|
|
|
{
|
|
|
public:
|
|
|
CLogDataBase() { m_eTypeObject = channelObjectError;};
|
|
|
virtual ~CLogDataBase() {};
|
|
|
|
|
|
CString m_CurveName; //对象名称。
|
|
|
CString m_AliasName; //对象别名。
|
|
|
CString m_Unit; //对象单位。
|
|
|
CString m_AliasUnit; //对象单位别名。
|
|
|
WORD m_RepCode; //对象数据代码类型。
|
|
|
WORD m_CodeLen; //对象数据代码长度。
|
|
|
|
|
|
enum EDataObject
|
|
|
{
|
|
|
channelObjectError = 0,
|
|
|
channelObjectCurve = 1, // 曲线对象
|
|
|
channelObjectWave = 2, // 波形对象
|
|
|
channelObjectFMT = 3, // 地层测试对象
|
|
|
channelObjectTDT = 4, // 时深时对象
|
|
|
channelObjectTable = 5 , // 表数据
|
|
|
channelObjectStream = 6 //流数据
|
|
|
};
|
|
|
enum EDataType
|
|
|
{
|
|
|
REPR_INT = 1,
|
|
|
REPR_SHORT = 2,
|
|
|
REPR_LONG = 3,
|
|
|
REPR_FLOAT = 4,
|
|
|
REPR_DOUBLE = 5,
|
|
|
REPR_STRING = 6,
|
|
|
REPR_CHAR = 7,
|
|
|
REPR_UCHAR = 8,
|
|
|
REPR_USHORT = 9,
|
|
|
REPR_UINT = 10,
|
|
|
REPR_ULONG = 11
|
|
|
};
|
|
|
|
|
|
EDataObject m_eTypeObject;
|
|
|
|
|
|
};
|
|
|
typedef std::vector<CLogDataBase*> LOGDATAVEC;
|
|
|
class AFX_EXT_API CLogCurveData :public CLogDataBase
|
|
|
{
|
|
|
public:
|
|
|
CLogCurveData();
|
|
|
~CLogCurveData();
|
|
|
|
|
|
enum ECurveDataType
|
|
|
{
|
|
|
uniformdata =1, //连续均匀的深度数据
|
|
|
discretedata = 2 //离散深度的数据
|
|
|
};
|
|
|
|
|
|
ECurveDataType m_TypeCurve;
|
|
|
|
|
|
float MinValue; //对象最小值(左刻度值)。
|
|
|
float MaxValue; //对象最大值(左刻度值)。
|
|
|
float m_StartDepth; //开始深度。
|
|
|
float m_EndDepth; //结束深度。
|
|
|
float m_rlev; //深度采样间隔。
|
|
|
|
|
|
CString m_DepthUnit; //深度单位。
|
|
|
|
|
|
CString m_strVer; //版本号
|
|
|
float *m_curve_value; // 曲线数值
|
|
|
float *m_curve_depth; // 深度存储区,如果数据不是深度均匀存储的,可以使用
|
|
|
float m_abnormalValue; //异常值
|
|
|
int m_datanum; //数据个数
|
|
|
int m_construct_num; // 施工序号
|
|
|
};
|
|
|
typedef std::vector<CLogCurveData*> CURVEDATAVECTOR;
|
|
|
|
|
|
//波形对象
|
|
|
class CLogWaveData : public CLogDataBase
|
|
|
{
|
|
|
public:
|
|
|
CLogWaveData();
|
|
|
virtual ~CLogWaveData();
|
|
|
|
|
|
virtual void Clear();
|
|
|
|
|
|
float MinValue; //对象最小值(左刻度值)。
|
|
|
float MaxValue; //对象最大值(左刻度值)。
|
|
|
|
|
|
float StartDepth; //开始深度。
|
|
|
float StopDepth; //结束深度。
|
|
|
float DepthLevel; //深度采样间隔。
|
|
|
char DepthUnit[8]; //深度单位。
|
|
|
|
|
|
float StartTime; //开始时间。
|
|
|
float StopTime; //结束时间。
|
|
|
float TimeLevel; //时间采样间隔。
|
|
|
char TimeUnit[8]; //时间单位。
|
|
|
|
|
|
int m_nSampDepth; //深度采样点个数
|
|
|
int m_nSampTime; //时间采样点个数
|
|
|
|
|
|
//为了减少不必要的类型转换,应该根据不同类型申请不同内存,可使用MxnFormat\CDataBuffer类
|
|
|
float* value; //曲线数据
|
|
|
};
|
|
|
|
|
|
#endif |