📄 fmessage.h
字号:
#ifndef FMESSAGE_H
#define FMESSAGE_H
#include "base.h"
/*
---------------------------------------------------------------------------------------------------
| UserID | TerminalID | WindowID | FunctionID | CommandMode | CommandCode | TransCommCode |
---------------------------------------------------------------------------------------------------
| 2 | 2 | 2 | 1 | 1 | 4 | 4 |
---------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------
| 消息长度 | 消息流水号 | 定时器长 | 广播消息标志 | 保留字段 |
-----------------------------------------------------------------------------------------
| 4 | 4 | 4 | 1 | 3 |
-----------------------------------------------------------------------------------------
*/
/* F接口的消息头偏移量 */
/*-----------------------------------------------------------*/
enum
{
USERID_OFFSET = 0, USERID_LEN = 2,
TERMID_OFFSET = 2, TERMID_LEN = 2,
WNDID_OFFSET = 4, WNDID_LEN = 2,
FUNCID_OFFSET = 6, FUNCID_LEN = 1,
CMDMODE_OFFSET = 7, CMDMODE_LEN = 1,
CMDCODE_OFFSET = 8, CMDCODE_LEN = 4,
TRANS_CMDCODE_OFFSET= 12, TRANS_CMDCODE_LEN = 4,
MSGLEN_OFFSET = 16, MSGLEN_LEN = 4,
JOURNALNUM_OFFSET = 20, JOURNALNUM_LEN = 4,
TIMER_OFFSET = 24, TIMER_LEN = 4,
BROADLABEL_OFFSET = 28, BROADLABEL_LEN = 1,
F_MESS_TIMER_INFO = 4,
F_RECORDID_OFFSET = 56, //操作日志偏移量
F_RECORDID_LEN = 8, //操作日志长度
F_MESS_HEADER_LENGTH= 64
};
#define HEAD_LENGTH F_MESS_HEADER_LENGTH
#define BRDCAST_LENGTH 68+1
#define FBODY_LENGTH 300
#define EV_CMD_CMAGT EV_MGR_AP_CM_OTHER_BEGIN+490
#define FBODY_ATTR_LENGTH 200
extern WORD32 HexStringToInt(const LPBYTE pString, WORD32 len);
extern WORD32 HexStringToInt(PCHAR pString);
extern PCHAR IntToHexString(WORD32 num, WORD32 stringlen);
extern PCHAR IntToHexString(WORD32 num);
class CFMessage
{
public:
CFMessage();
CFMessage(const CFMessage& fmess);
CFMessage(const LPBYTE head, WORD32 headlen, const LPBYTE body, WORD32 bodylen);
CFMessage(const LPBYTE mess);
CFMessage(const LPBYTE fmessage, WORD32 length);
CFMessage(const PCHAR head, const PCHAR body);
CFMessage(const PCHAR mess);
~CFMessage();
public:
// 读取消息方法
BYTE GetUserID() const;
BYTE GetTerminalID() const;
BYTE GetWindowID() const;
CHAR GetFunctionID() const;
BOOL GetCommandMode() const;
PCHAR GetCommandCode() const;
PCHAR GetTransCommCode() const;
WORD16 GetJournalNum() const;
WORD16 GetTimer() const;
LPBYTE GetMessage() const;
LPBYTE GetHead() const;
LPBYTE GetBody() const;
WORD16 GetLength() const;
WORD32 GetHeadLength() const;
WORD32 GetBodyLength() const;
BOOL IsBroad() const;
public:
// 填写消息方法
VOID SetUserID(BYTE);
VOID SetTerminalID(BYTE);
VOID SetWindowID(BYTE);
VOID SetFunctionID(CHAR);
VOID SetCommandMode(BOOL);
VOID SetCommandCode(const PCHAR);
VOID SetTransCommCode(const PCHAR);
VOID SetBody(const LPBYTE, WORD32 len);
VOID SetJournalNum(WORD16);
VOID SetTimer(WORD16);
VOID SetMMICommand(const PCHAR);
VOID SetBroad(BOOL label);
// 清除不干净数据
VOID CleanHead();
public:
VOID Add(const PCHAR);
VOID Add(LPBYTE lpstr, WORD32 len);
VOID SetBody(const PCHAR);
public:
friend CFMessage& operator +(const CFMessage& fmess, const PCHAR mess);
CFMessage& operator =(const PCHAR mess);
CFMessage& operator =(const CFMessage& fmess);
public:
VOID Print() const;
protected:
LPBYTE m_pchBody;
private:
VOID _InitMess(LPBYTE mess, WORD32 len);
CHAR m_achTRANSCMDCODE[TRANS_CMDCODE_LEN+1];
CHAR m_achCMDCODE[CMDCODE_LEN+1];
LPBYTE m_pchMess;
VOID _InitBody(const LPBYTE body, WORD32 len);
VOID _InitHead(LPBYTE head, WORD32 len);
VOID _AllocBody(WORD32);
VOID _SetBodyLength(WORD32 space);
BYTE m_achHead[F_MESS_HEADER_LENGTH+1];
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -