#ifndef JDF_LOGRDATA_STRUCT_H #define JDF_LOGRDATA_STRUCT_H #include 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 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 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