You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

107 lines
2.4 KiB
C++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#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