⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 show.h

📁 七号信令解码器
💻 H
字号:
/*
file: "show.h"
autor: Ye Long Fei
date: 2002,6,5
*/
#ifndef __SHOW_H__
#define __SHOW_H__
class CShowMsg
{
public:
class showmsg//需要显示的内容
{    
public:
	unsigned char linkid;
	unsigned short timeofm;
	unsigned short timeofs;  
	unsigned short cic; 
	unsigned char opc[3];
	unsigned char dpc[3];
	unsigned char bsn;
	unsigned char bib;
	unsigned char fsn;
	unsigned char fib;
	char msgtype[80];     // msu消息、tup、isup、sccp消息、标题码、cap 消息类型编码
	unsigned char submsgtype;
	char acalladd[100];
	char cause[80];
	char temp[800];
	short  msgtracknum;
	unsigned char *pBuf;
public:
	showmsg(){memset(this,0,sizeof(showmsg));pBuf=NULL;};
	~showmsg(){if(pBuf)delete pBuf;};
	void LoadBuf(unsigned char * buffer,unsigned short msglen){pBuf=new unsigned char[msglen];memcpy(pBuf,buffer,msglen);};
};
public:
	showmsg mshowmsg;

public:
	BOOL PreProcMsg(unsigned char * buffer);//初步解码    
	CShowMsg& operator=(CShowMsg* pMsgList);
private:
	//*****************函数声明*******************
	void ProcSNMmsg(unsigned char *buffer);      //调用ProcSNMmsg(buffer)函数,提取SNM消息类型
	void ProcSNTmsg(unsigned char *buffer);      //调用ProcSNTmsg(buffer)函数,提取SNT消息类型
	void ProcTUPmsg(unsigned char *buffer);
	void ProcISUPmsg(unsigned char *buffer);
	void ProcSCCPmsg(unsigned char *buffer,unsigned char pclen);
	void ProcMAPmsg(unsigned char *buffer);
	void ProcCAPmsg(unsigned char *buffer);
	void ProcBSSAPmsg(unsigned char *buffer);
	int SccpSSN(unsigned char *buffer,unsigned char pclen);
	void INVISDNnum(unsigned char *buffer,unsigned char operatecode);  //提取map主叫号码(invoke)
	void RETISDNnum(unsigned char *buffer,unsigned char operatecode);  //提取map主叫号码(reset)
	int MAPmessage(unsigned char *buffer);  //提取map操作类型
	int CAPmessage(unsigned char *buffer);     //提取cap操作类型
	void CALLINGnum(unsigned char *buffer,unsigned char operatecode);     //提取cap主叫号码
	int BSSMAPmsgtype(unsigned char *buffer);
	void Thirdlayermsg(unsigned char *buffer);  //提取第三层消息
	void BSSMAPnumtaking(unsigned char *buffer,unsigned char operatecode);
	void TCAPmsgtype(unsigned char tcapmtype,int msgstrlen);
	void IMSIcode(unsigned char *buffer,int imsilen);
	void MSISDNcode(unsigned char *buffer,int isdnlen);
	void ROAMNUMcode(unsigned char *buffer,int roamnumlen);
	void BSSAPIMSIcode(unsigned char *buffer,int len);  //提取IMSI号
	void BSSAPIMEIcode(unsigned char *buffer,int len);  //提取IMEI号
	void BSSAPIMEISVcode(unsigned char *buffer,int len);  //提取IMEISV号
	void BSSAPTMSIcode(unsigned char *buffer,int len);  //提取TMSI号
	int GetLength(unsigned char *buffer);       //提取标签长度值
	int LenByteNum(unsigned char *buffer);
	void GetCapCompolent(unsigned char *buffer);
	void GetMapCompolent(unsigned char *buffer);
	void GetTUPAddrNum(unsigned char *buffer,int len);
	void GetISUPCause(unsigned char *buffer);
	void GetISDNAddrNum(unsigned char *buffer,int len,int even);
};
typedef CTypedPtrList<CPtrList, CShowMsg*> defShowMsgList;
class CShowMsgList
{
public:
	defShowMsgList m_list;
	int nMaxCount;
	int m_msgType;
public:
	int Insert(int nCurSelItem,BOOL bInsertAfter,CShowMsgList &msgList);//return index
	void SerializeMsgFile(CArchive& ar);
	POSITION FindTrackNumPos(short tracknum);
	int GetMsgStr(CString *strs,int index);
	CString GetMsgStr(int index);
	CString GetLengthText();
	int GetCount();
	int GetMsgType();
	void SetMsgType(int msgType);
	CShowMsgList();
	CShowMsgList& operator=(CShowMsgList* pMsgList);
	CShowMsgList& operator+=(CShowMsgList* pMsgList);
	void SetMaxCount(int v=-1);
	CShowMsg* Add(unsigned char *msgBuf);
	int AddList(unsigned char *msgMultiBuf);
	void DeleteAllItem();
	unsigned char *GetMsgBufFromIndex(int id);
	CShowMsg* GetItemFromIndex(int id);
	BOOL DeleteItemFromIndex(int id);
	~CShowMsgList();
};

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -