| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- /*************************************************************************
- 【文件名】 PduEntity.h
- 【功能模块和目的】 PDU消息实体类头文件
- 【开发者及日期】 郑石诺 2015.05.22
- 【版本】 V1.0
- 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
- 【更改记录】
- *************************************************************************/
- #pragma once
- #include "PduLinkInc.h"
- /*************************************************************************
- 【类名】 CPduEntity
- 【功能】 PDU消息实体类
- 【接口说明】
- 【开发者及日期】 郑石诺 2015.05.22
- 【版本】 V1.0
- 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
- 【更改记录】
- *************************************************************************/
- class CPduDataFormatOne;
- class CPduEntityHead;
- class CPduEntity
- {
- private:
- PDU_DEV_TYPE m_nLocalType; // 本端设备类型
- ULONG m_nLocalId; // 本端设备ID
- PDU_DEV_TYPE m_nPeerType; // 对端设备类型
- ULONG m_nPeerId; // 对端设备ID
- PDU_CMD_TYPE m_nCmdType; // 命令类型
- BOOL m_bIsExecReturn; // 是否为执行结果返回命令
- SOCKET m_hSocket; // 当前命令接收时关联的SOCKET句柄
- CPduDataFormatOne* m_pDataInfo; // 当前命令实体的元数据描述
- private:
- void InitDataFormat(PDU_CMD_TYPE a_nCmdType); // 根据命令类型初始化数据格式
- void InitData(); // 初始化数据( 重载函数 )
- void InitData(CPduEntity& a_Cmd); // 初始化数据( 重载函数 )
- public:
- CPduEntity();
- CPduEntity(CPduEntity& a_Cmd);
- CPduEntity(PDU_CMD_TYPE a_nCmdType); // 生成发送命令的构造函数
- CPduEntity(CPduEntityHead* a_pHead, UCHAR a_szData[]); // 生成接收命令的构造函数
- ~CPduEntity(void);
- // 运算符重载
- CPduEntity& operator = (CPduEntity& a_Cmd);
- // 打包函数
- USHORT CreatePackge(UCHAR a_szBuf[]); // 生成要发送的数据包
- void CopyDataMemo(CPduDataFormatOne* a_pDataMemo); // 拷贝所有数据
-
- // 属性读取(只在接收命令时调用)
- PDU_DEV_TYPE GetLocalDevType() { return m_nLocalType; }
- PDU_DEV_TYPE GetPeerDevType() { return m_nPeerType; }
- ULONG GetLocalDevId() { return m_nLocalId; }
- ULONG GetPeerDevId() { return m_nPeerId; }
- PDU_CMD_TYPE GetCmdType() { return m_nCmdType; }
- BOOL GetIsExecReturn() { return m_bIsExecReturn; }
- // 特殊属性
- void SetAssoSocket(SOCKET a_hSocket) { m_hSocket = a_hSocket; }
- SOCKET GetAssoSocket() { return m_hSocket; }
- // 属性设置(只在发送命令时调用)
- void SetLocalDevInfo(PDU_DEV_TYPE a_nLocalType, int a_nLocalId); // 本端设备信息
- void SetPeerDevInfo(PDU_DEV_TYPE a_nPeerType, int a_nPeerId); // 对端设备信息
- // 命令内容填充
- void SetDataInt(int a_nIndex, int a_nData);
- void SetDataUInt(int a_nIndex, unsigned int a_nData);
- void SetDataLong(int a_nIndex, long a_nData);
- void SetDataULong(int a_nIndex, unsigned long a_nData);
- void SetDataBool(int a_nIndex, bool a_bData);
- void SetDataString(int a_nIndex, LPCTSTR a_strData);
- void SetToExecReturn() { m_bIsExecReturn = TRUE; } // 设置当前命令为执行结果返回命令
- // 命令内容读取
- int GetDataInt(int a_nIndex);
- unsigned int GetDataUInt(int a_nIndex);
- long GetDataLong(int a_nIndex);
- unsigned long GetDataULong(int a_nIndex);
- bool GetDataBool(int a_nIndex);
- CString GetDataString(int a_nIndex);
- };
|