-----------<结构体定义以及其赋值和使用>---------------------------
//结构体的赋值不一定全部赋值,但是后面用到的理所当然要必须赋值
//需求导向供给
struct AFX_EXT_CLASS SKDCommunicationData
{
BOOL m_bSucc;
BOOL m_bFirst;
SDataInfo m_dataInfo; //结构体
SKDCommunicationData();
void Reset();
};
struct SDataInfo
{
int m_nSubKind;
DWORD m_dwExtra;
DWORD m_dwSecondExtra;
DWORD m_dwThirdExtra;
DWORD m_dwExtra4;
DWORD m_dwExtra5;
int m_nRev;
ULONGLONG m_llReqID;
CBHDateTime m_dtBegin;
CBHDateTime m_dtEnd;
int m_nCutoffFreq;
HWND m_hwndDest;
HWND m_hwndDestSecond;
string m_strHead[STRING_HEAD_COUNT]; //#define STRING_HEAD_COUNT 3
deque<SLineInfo> m_LineInfoArray; //队列 结构体
};
struct SLineInfo
{
BOOL m_bArg; //本行是否有对应参数
DWORD m_nID; //ID号(标识号):参数
DWORD m_pChannelInfo;
string m_str[STRING_COUNT];
long m_nArg; //(通常为线数):参数
long m_nArg2; //参数2
long m_nData; //数据
COleDateTime m_datetime; //时间
double m_dbFirstValue; //数值1
double m_dbSecondValue; //数值2
double m_dbThirdValue; //数值3
BOOL m_bBaseInfo; //下面二项是动态基本信息
BOOL m_bRevValid; //
int m_nRev;
BOOL m_bDateTimeValid;
S_VibCharValue m_vibCharValue; //主要用来表达基本信息,结构体
S_DynCharValue m_dyncCharValue; //主要用来表达基本信息
vector<double> m_dbArrayValue; //数值数组1
vector<double> m_dbArrayDec; //数值数组2
vector<double> m_dbArrayDec2; //数值数组3
vector<double> m_dbArrayDec3; //数值数组4
vector<CBHDateTime> m_dtArray; //日期时间数组
vector<long> m_nArray; //整数数组
vector<int> m_nArray2; //整数数组
vector<int> m_nArray3; //整数数组
vector<S_VibCharValue> m_vibArray;
public:
SLineInfo()
{
m_bArg = FALSE;
m_pChannelInfo = NULL;
m_bBaseInfo = FALSE;
m_bRevValid = FALSE;
m_bDateTimeValid = FALSE;
}
};
///结构体
class _BHKD_EXT_ S_VibCharValue
{
public:
S_VibCharValue();
~S_VibCharValue();
DATATYPE_CHAR _fCharAll; //typedef float DATATYPE_CHAR;
DATATYPE_CHAR _fCharHalf;
DATATYPE_CHAR _fCharOne;
DATATYPE_CHAR _fCharTwo;
DATATYPE_CHAR _fCharThree;
DATATYPE_CHAR _fCharRes;
DATATYPE_CHAR _fGap;
DATATYPE_CHAR _fPhaseHalf;
DATATYPE_CHAR _fPhaseOne;
DATATYPE_CHAR _fPhaseTwo;
DATATYPE_CHAR _fPhaseThree;
DATATYPE_INT _iSmpFreq;
DATATYPE_INT _iSmpNum;
DATATYPE_INT _iRev;
public:
S_VibCharValue& operator=(const S_VibCharValue& vibValue_);
DATATYPE_CHAR GetSpecTypeData(int iCharType_=GE_ALLCHAR); //方法
void SetSpecTypeData(float fData_,int iCharType_=GE_ALLCHAR);
};
DATATYPE_CHAR S_VibCharValue::GetSpecTypeData(int iCharType_)
{
switch(iCharType_)
{
case GE_ALLCHAR:
return _fCharAll;
case GE_HALFCHAR:
return _fCharHalf;
case GE_ONECHAR:
return _fCharOne;
case GE_TWOCHAR:
return _fCharTwo;
case GE_THREECHAR:
return _fCharThree;
case GE_DCCHAR:
return _fDC;
case GE_GAP:
return _fGap;
case GE_RESCHAR:
return _fCharRes;
case GE_PHASECHARONE:
return _fPhaseOne;
case GE_PHASECHARTWO:
return _fPhaseTwo;
case GE_PHASECHARTHREE:
return _fPhaseThree;
case GE_PHASECHARHALF:
return _fPhaseHalf;
case GE_SAMPLEFREQ:
return _iSmpFreq;
case GE_SAMPLENUM:
return _iSmpNum;
case GE_REV:
return _iRev;
default:
return _fCharAll;
}
}
============<结构体定义以及其赋值和使用>===============================
//结构体的赋值不一定全部赋值,但是后面用到的理所当然要必须赋值
//需求导向供给
struct AFX_EXT_CLASS SKDCommunicationData
{
BOOL m_bSucc;
BOOL m_bFirst;
SDataInfo m_dataInfo; //结构体
SKDCommunicationData();
void Reset();
};
struct SDataInfo
{
int m_nSubKind;
DWORD m_dwExtra;
DWORD m_dwSecondExtra;
DWORD m_dwThirdExtra;
DWORD m_dwExtra4;
DWORD m_dwExtra5;
int m_nRev;
ULONGLONG m_llReqID;
CBHDateTime m_dtBegin;
CBHDateTime m_dtEnd;
int m_nCutoffFreq;
HWND m_hwndDest;
HWND m_hwndDestSecond;
string m_strHead[STRING_HEAD_COUNT]; //#define STRING_HEAD_COUNT 3
deque<SLineInfo> m_LineInfoArray; //队列 结构体
};
struct SLineInfo
{
BOOL m_bArg; //本行是否有对应参数
DWORD m_nID; //ID号(标识号):参数
DWORD m_pChannelInfo;
string m_str[STRING_COUNT];
long m_nArg; //(通常为线数):参数
long m_nArg2; //参数2
long m_nData; //数据
COleDateTime m_datetime; //时间
double m_dbFirstValue; //数值1
double m_dbSecondValue; //数值2
double m_dbThirdValue; //数值3
BOOL m_bBaseInfo; //下面二项是动态基本信息
BOOL m_bRevValid; //
int m_nRev;
BOOL m_bDateTimeValid;
S_VibCharValue m_vibCharValue; //主要用来表达基本信息,结构体
S_DynCharValue m_dyncCharValue; //主要用来表达基本信息
vector<double> m_dbArrayValue; //数值数组1
vector<double> m_dbArrayDec; //数值数组2
vector<double> m_dbArrayDec2; //数值数组3
vector<double> m_dbArrayDec3; //数值数组4
vector<CBHDateTime> m_dtArray; //日期时间数组
vector<long> m_nArray; //整数数组
vector<int> m_nArray2; //整数数组
vector<int> m_nArray3; //整数数组
vector<S_VibCharValue> m_vibArray;
public:
SLineInfo()
{
m_bArg = FALSE;
m_pChannelInfo = NULL;
m_bBaseInfo = FALSE;
m_bRevValid = FALSE;
m_bDateTimeValid = FALSE;
}
};
///结构体
class _BHKD_EXT_ S_VibCharValue
{
public:
S_VibCharValue();
~S_VibCharValue();
DATATYPE_CHAR _fCharAll; //typedef float DATATYPE_CHAR;
DATATYPE_CHAR _fCharHalf;
DATATYPE_CHAR _fCharOne;
DATATYPE_CHAR _fCharTwo;
DATATYPE_CHAR _fCharThree;
DATATYPE_CHAR _fCharRes;
DATATYPE_CHAR _fGap;
DATATYPE_CHAR _fPhaseHalf;
DATATYPE_CHAR _fPhaseOne;
DATATYPE_CHAR _fPhaseTwo;
DATATYPE_CHAR _fPhaseThree;
DATATYPE_INT _iSmpFreq;
DATATYPE_INT _iSmpNum;
DATATYPE_INT _iRev;
public:
S_VibCharValue& operator=(const S_VibCharValue& vibValue_);
DATATYPE_CHAR GetSpecTypeData(int iCharType_=GE_ALLCHAR); //方法
void SetSpecTypeData(float fData_,int iCharType_=GE_ALLCHAR);
};
DATATYPE_CHAR S_VibCharValue::GetSpecTypeData(int iCharType_)
{
switch(iCharType_)
{
case GE_ALLCHAR:
return _fCharAll;
case GE_HALFCHAR:
return _fCharHalf;
case GE_ONECHAR:
return _fCharOne;
case GE_TWOCHAR:
return _fCharTwo;
case GE_THREECHAR:
return _fCharThree;
case GE_DCCHAR:
return _fDC;
case GE_GAP:
return _fGap;
case GE_RESCHAR:
return _fCharRes;
case GE_PHASECHARONE:
return _fPhaseOne;
case GE_PHASECHARTWO:
return _fPhaseTwo;
case GE_PHASECHARTHREE:
return _fPhaseThree;
case GE_PHASECHARHALF:
return _fPhaseHalf;
case GE_SAMPLEFREQ:
return _iSmpFreq;
case GE_SAMPLENUM:
return _iSmpNum;
case GE_REV:
return _iRev;
default:
return _fCharAll;
}
}
============<结构体定义以及其赋值和使用>===============================