亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? show.cpp

?? 七號信令解碼器
?? CPP
字號:

#include "stdafx.h"
#include "show.h"

CShowMsg* CShowMsgList::Add(unsigned char *msgBuf)
{
	CShowMsg* p=new CShowMsg;
	char temp[800];
	CString str;
	memset(temp,0,800);
	int off=(m_msgType==1)? 0 : 2;//is filt or track;
	if(p->PreProcMsg(msgBuf+off))
	{
		if(memcmp(p->mshowmsg.temp,temp,800)!=0)
		{
			str.Format("msgType:%s,\naddr:%s,\ncause:%s",p->mshowmsg.msgtype,p->mshowmsg.acalladd,p->mshowmsg.cause);
			AfxMessageBox(str);
			delete p;
			return NULL;
		}
		if(m_msgType==2)
		{
			p->mshowmsg.msgtracknum=*((short*)msgBuf);
			POSITION pos=FindTrackNumPos(p->mshowmsg.msgtracknum);
			m_list.InsertAfter(pos,p);
		}
		else m_list.AddTail(p);
		return p;
	}
	else delete p;
	return NULL;
}
int CShowMsgList::AddList(unsigned char *msgMultiBuf)
{
	unsigned short msglen,off;
	unsigned short msgsumlen =(*msgMultiBuf + *(msgMultiBuf+1)*256)+2;
    int i=0;
	int offlen=(m_msgType==1)? 0 : 2;//is filt or track;
	int ncount=0;
	for(off=2;off<msgsumlen&&msgMultiBuf[off]!=0xaa;off+=msglen,i++)
	{
		msglen=((msgMultiBuf[off+offlen] + msgMultiBuf[off+offlen+1]*256)&0xfff)+offlen+2;
		if(Add(&msgMultiBuf[off]))
		{
			SetMaxCount(nMaxCount);//delete head item
			ncount++;
		}
	}
	return ncount;
}

void CShowMsgList::DeleteAllItem()
{
	int ncount=m_list.GetCount();
	for(int i=0;i<ncount;i++)delete m_list.RemoveHead();
}
CShowMsgList& CShowMsgList::operator=(CShowMsgList* pMsgList)
{
	DeleteAllItem();
	(*this)+=pMsgList;
	return *this;
}
CShowMsgList& CShowMsgList::operator+=(CShowMsgList* pMsgList)
{
	nMaxCount=pMsgList->nMaxCount;
	m_msgType=pMsgList->m_msgType;
	int nMax=nMaxCount-this->GetCount();

	int ncount=pMsgList->GetCount();
	if(ncount>nMax)ncount=nMax;
	CShowMsg* pMsg;
	for(int i=0;i<ncount;i++)
	{
		pMsg=new CShowMsg;
		(*pMsg)=pMsgList->GetItemFromIndex(i);
		m_list.AddTail(pMsg);
	}
	return *this;
}
int CShowMsgList::Insert(int nCurSelItem,BOOL bInsertAfter,CShowMsgList &msgList)
{
	int index=GetCount();
	nMaxCount=msgList.nMaxCount;
	m_msgType=msgList.m_msgType;
	int nMax=nMaxCount-this->GetCount();
	if(nCurSelItem<0||nCurSelItem>=GetCount())
	{
		(*this)+=&msgList;
		return index;
	}
	else if(bInsertAfter)
	{
		POSITION pos=m_list.FindIndex(nCurSelItem);
		if(pos==NULL) return -1;
		int ncount=msgList.GetCount();
		if(ncount>nMax)ncount=nMax;
		CShowMsg* pMsg;
		for(int i=0;i<ncount;i++)
		{
			pMsg=new CShowMsg;
			(*pMsg)=msgList.GetItemFromIndex(i);
			pos=m_list.InsertAfter(pos,pMsg);
		}
	}
	else
	{
		POSITION pos=m_list.FindIndex(nCurSelItem);
		if(pos==NULL) return -1;
		int ncount=msgList.GetCount();
		if(ncount>nMax)ncount=nMax;
		CShowMsg* pMsg;
		for(int i=0;i<ncount;i++)
		{
			pMsg=new CShowMsg;
			(*pMsg)=msgList.GetItemFromIndex(i);
			pos=m_list.InsertBefore(pos,pMsg);
		}
	}
	return (bInsertAfter) ? (nCurSelItem+1): nCurSelItem;
}
CString CShowMsgList::GetLengthText()
{
	CString strs[12];
	CString str;
	CString strHead="索引  鏈路     時間       后向  前向     DPC      OPC      消息類型        號碼          原因";
	for(int i=0;i<m_list.GetCount()&&i<1000;i++)
	{
		if(i%10==0)
		{
			str+="\r\n";
			str+=strHead;
			str+="\r\n";
		}
		GetMsgStr(strs,i);
		for(int j=0;j<12;j++)
		{
			str+=strs[j];
			str+="  ";
			if(j>6&&strs[j].GetLength()<20)
			{
				for(int k=0;k<20-strs[j].GetLength();k++)str+="  ";
			}
		}
		str+="\r\n";
	}
	return str;
}
int CShowMsgList::GetMsgStr(CString *strs,int index)
{
	CShowMsg* showMsg=GetItemFromIndex(index);
	strs[0].Format("%04d",index);
	strs[1].Format("%03d",showMsg->mshowmsg.linkid/2);
	strs[2].Format("%02d:%02d:%02d.%03d",showMsg->mshowmsg.timeofm/60,showMsg->mshowmsg.timeofm%60,showMsg->mshowmsg.timeofs/1000,showMsg->mshowmsg.timeofs%1000);
	strs[3].Format("%1d.%02xh",showMsg->mshowmsg.bib,showMsg->mshowmsg.bsn);
	strs[4].Format("%1d.%02xh",showMsg->mshowmsg.fib,showMsg->mshowmsg.fsn);
	unsigned char *p=showMsg->mshowmsg.dpc;
	int pc=p[0]+p[1]*256+p[2]*256*256;
	strs[5].Format("%06xh",pc);
	p=showMsg->mshowmsg.opc;
	pc=p[0]+p[1]*256+p[2]*256*256;
	strs[6].Format("%06xh",pc);
	strs[7].Format("%04xh",showMsg->mshowmsg.cic);

	strs[8]=showMsg->mshowmsg.msgtype;
	strs[9]=showMsg->mshowmsg.acalladd;
	strs[10]=showMsg->mshowmsg.cause;
	if(m_msgType==2)//track
	{
		return (showMsg->mshowmsg.msgtracknum%2) ? (showMsg->mshowmsg.linkid%2) : 2+(showMsg->mshowmsg.linkid%2);
	}
	return showMsg->mshowmsg.linkid%2;
}
CString CShowMsgList::GetMsgStr(int index)
{
	CShowMsg* showMsg=GetItemFromIndex(index);
	CString str,msgstr;
	str.Format("index:%04d",index);
	msgstr+=str+"\r\n";
	str.Format("Link:%03d",showMsg->mshowmsg.linkid/2);
	msgstr+=str+"\r\n";
	str.Format("Time:%02d:%02d:%02d.%03d",showMsg->mshowmsg.timeofm/60,showMsg->mshowmsg.timeofm%60,showMsg->mshowmsg.timeofs/1000,showMsg->mshowmsg.timeofs%1000);
	msgstr+=str+"\r\n";
	str.Format("BSN :%1d.%02xh",showMsg->mshowmsg.bib,showMsg->mshowmsg.bsn);
	msgstr+=str+"\r\n";
	str.Format("FSN :%1d.%02xh",showMsg->mshowmsg.fib,showMsg->mshowmsg.fsn);
	msgstr+=str+"\r\n";
	unsigned char *p=showMsg->mshowmsg.dpc;
	int pc=p[0]+p[1]*256+p[2]*256*256;
	str.Format("DPC :%06xh",pc);
	msgstr+=str+"\r\n";
	p=showMsg->mshowmsg.opc;
	pc=p[0]+p[1]*256+p[2]*256*256;
	str.Format("OPC :%06xh",pc);
	msgstr+=str+"\r\n";
	str.Format("CIC :%04xh",showMsg->mshowmsg.cic);
	msgstr+=str+"\r\n\r\n消息類型:  ";

	str=showMsg->mshowmsg.msgtype;
	msgstr+=str+"\r\n\r\n呼叫地址:  ";
	str=showMsg->mshowmsg.acalladd;
	msgstr+=str+"\r\n\r\n原因:  ";
	str=showMsg->mshowmsg.cause;
	msgstr+=str+"\r\n";
	if(m_msgType==2)//track
	{
		return (showMsg->mshowmsg.msgtracknum%2) ? (showMsg->mshowmsg.linkid%2) : 2+(showMsg->mshowmsg.linkid%2);
	}
	return msgstr;
}

unsigned char * CShowMsgList::GetMsgBufFromIndex(int id)
{
	POSITION pos=m_list.FindIndex(id);
	if(pos) return m_list.GetAt(pos)->mshowmsg.pBuf;
	return NULL;
}
CShowMsg* CShowMsgList::GetItemFromIndex(int id)
{
	POSITION pos=m_list.FindIndex(id);
	if(pos) return m_list.GetAt(pos);
	return NULL;
}
BOOL CShowMsgList::DeleteItemFromIndex(int id)
{
	POSITION pos=m_list.FindIndex(id);
	if(pos==NULL)return FALSE;
	delete m_list.GetAt(pos);
	m_list.RemoveAt(pos);
	return TRUE;
}
CShowMsgList::~CShowMsgList()
{
	DeleteAllItem();
}
CShowMsgList::CShowMsgList()
{
	nMaxCount=5000;
	m_msgType=-1;
}
int CShowMsgList::GetMsgType()
{
	return m_msgType;
}
void CShowMsgList::SetMsgType(int msgType)
{
	m_msgType=msgType;
}
void CShowMsgList::SetMaxCount(int v)
{
	if(v>0)nMaxCount=v;
	if(m_list.GetCount()>nMaxCount)
	{
		int ncount=m_list.GetCount()-nMaxCount;
		for(int i=0;i<ncount;i++)
		{
			delete m_list.RemoveHead();
		}
	}
}
int CShowMsgList::GetCount()
{
	return m_list.GetCount();
}
/*******************************************************************
			msg file format
file have 20 block,every block len is 0xffff,block struct define like follow:
				system
5 file flag  2 file block flag (ffff)2 block len  2 msg len 2 cannel 4 msg time
             time: 1 2 minute 3 4 millonsecond
				instructment
5 file flag  2 file block flag (ffff)2 block len 5 save file time 2 msg len 1 cannel 5 msg time
			 block len=0x2000  block count =buf[5+0x2000-1](0-7), 
             time: 1 hour 2 minute 3 second 4,5 millonsecond
區別:儀表每塊分為8個子塊.注意時間上的區別
********************************************************************/

void CShowMsgList::SerializeMsgFile(CArchive& ar)
{
	BYTE *pBuf=new BYTE[0xffff];
	BYTE csFlag[]="GSM82";
	int len,sumlen=0,nblock=0;
	if (ar.IsStoring())
	{
		pBuf[0]=0xff;
		pBuf[1]=0xff;
		BYTE *pMsg;
		ar.Write(csFlag,5);
		for(POSITION pos=m_list.GetHeadPosition();pos!=NULL&&nblock<20;)
		{
			pMsg=m_list.GetNext(pos)->mshowmsg.pBuf;
			len=pMsg[0]+pMsg[1]*256+2;
			memcpy(&pBuf[4+sumlen],pMsg,len);
			sumlen+=len;
			if(sumlen>0xffff-300||pos==NULL)
			{
				memset(&pBuf[5+sumlen],0,0xffff-sumlen-5);
				pBuf[4+sumlen]=0xaa;
				pBuf[2]=sumlen%256;
				pBuf[3]=sumlen/256;
				ar.Write(pBuf,0xffff);
				sumlen=0;
				nblock++;
			}
		}
	}
	else
	{
		CString str="GSM08";
		ar.Read(csFlag,5);
		if(str==csFlag)
		{
			while(1)
			{
				sumlen=ar.Read(pBuf,0xffff);
				if(sumlen>0)AddList(&pBuf[2]);
				if(sumlen!=0xffff)break;
			}
		}
	}
	delete pBuf;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲黄色av一区| 99久久精品国产麻豆演员表| 成人精品在线视频观看| 欧美日韩久久一区| 国产精品另类一区| 久久国产精品色婷婷| 在线观看亚洲一区| 中文字幕高清一区| 国产一区二区在线视频| 欧美视频三区在线播放| 国产精品电影一区二区三区| 精品中文av资源站在线观看| 欧美日韩亚洲丝袜制服| 亚洲六月丁香色婷婷综合久久 | 国产成人啪免费观看软件| 欧美高清激情brazzers| 中文字幕在线不卡一区二区三区| 日本va欧美va精品发布| 在线观看国产一区二区| 亚洲图片你懂的| av影院午夜一区| 国产精品免费网站在线观看| 国内精品免费在线观看| 日韩欧美一二区| 成人激情黄色小说| 欧美变态凌虐bdsm| 美女免费视频一区二区| 日韩午夜在线观看视频| 日韩av中文字幕一区二区三区| 91美女在线视频| 亚洲另类春色国产| 色狠狠桃花综合| 一区二区三区四区中文字幕| 91亚洲精品乱码久久久久久蜜桃| 国产精品私人影院| 粉嫩aⅴ一区二区三区四区五区| 精品日韩欧美一区二区| 久久精品国产亚洲一区二区三区| 欧美狂野另类xxxxoooo| 丝袜亚洲另类丝袜在线| 91精品国产综合久久精品性色| 天堂久久一区二区三区| 欧美精品1区2区| 六月丁香综合在线视频| 欧美大片一区二区三区| 精品一二三四区| 久久综合久久鬼色| 国产成人精品aa毛片| 国产日产精品1区| 99久久精品免费精品国产| 成人欧美一区二区三区黑人麻豆 | 国产精品色一区二区三区| 国产成人在线电影| 中文字幕一区二| 欧美专区日韩专区| 日韩精品欧美精品| 久久久久久一二三区| 国产成人亚洲综合色影视| 国产精品午夜电影| 欧美日本在线看| 国产米奇在线777精品观看| 亚洲一区在线视频| 欧美精品一区二区三区在线播放| 国产一区二区三区四区五区美女| 欧美国产精品专区| 欧美在线视频全部完| 久久精品国产亚洲高清剧情介绍| 中文无字幕一区二区三区| 在线观看国产日韩| 国产在线一区二区| 亚洲欧美电影一区二区| 日韩一区二区在线观看| aaa国产一区| 久久精品国产一区二区三 | 日韩国产精品大片| 国产亚洲美州欧州综合国| 色偷偷久久人人79超碰人人澡| 三级在线观看一区二区| 国产精品对白交换视频| 欧美不卡一区二区| 欧美优质美女网站| 国产毛片精品国产一区二区三区| 一区二区欧美在线观看| 国产亚洲欧美一区在线观看| 欧美吞精做爰啪啪高潮| 国产99久久精品| 日本视频免费一区| 亚洲视频免费观看| 久久久久久电影| 日韩一区二区在线免费观看| 在线一区二区三区| av成人动漫在线观看| 国产一区在线观看麻豆| 三级精品在线观看| 一区二区三区**美女毛片| 国产精品入口麻豆九色| 欧美成人一级视频| 欧美一级欧美三级| 欧美午夜精品免费| 欧美午夜精品一区二区三区 | 国产精品久久久久久亚洲毛片| 8x8x8国产精品| 欧美丝袜自拍制服另类| 91丨porny丨首页| 粉嫩av一区二区三区粉嫩| 国内久久精品视频| 精品亚洲欧美一区| 国产精品一区三区| 国产精品影视网| 激情欧美一区二区| 国产一区二区三区四区五区入口| 日本不卡免费在线视频| 日本不卡的三区四区五区| 亚洲国产精品一区二区www | 久久精品夜夜夜夜久久| 精品av综合导航| 欧美成人猛片aaaaaaa| 日韩一区二区三区四区五区六区 | 欧美zozo另类异族| 日韩视频一区二区| 欧美v日韩v国产v| 日韩一区二区免费视频| 欧美一级二级三级蜜桃| 欧美tickling网站挠脚心| 久久久久久久免费视频了| 欧美国产日韩a欧美在线观看| 国产欧美va欧美不卡在线| 亚洲国产精品成人综合色在线婷婷| 26uuuu精品一区二区| 国产婷婷一区二区| 国产精品久久久久影视| 亚洲美女精品一区| 日韩黄色片在线观看| 国模冰冰炮一区二区| 东方aⅴ免费观看久久av| 99综合电影在线视频| 欧美午夜精品久久久久久孕妇| 欧美久久一二区| 久久久www成人免费毛片麻豆| 国产精品伦理一区二区| 亚洲线精品一区二区三区八戒| 日本一不卡视频| 国产美女精品一区二区三区| 国产91在线看| 91视频xxxx| 日韩视频免费观看高清完整版在线观看 | 亚洲免费观看视频| 男女性色大片免费观看一区二区 | 亚洲色图20p| 香蕉久久一区二区不卡无毒影院| 日产国产欧美视频一区精品| 国产精品一区免费视频| 在线免费一区三区| 久久网这里都是精品| 伊人色综合久久天天人手人婷| 免费成人在线影院| 91在线视频观看| 日韩一区二区免费在线电影| 亚洲国产精品国自产拍av| 天天综合天天综合色| 国产成人高清在线| 欧美一级日韩不卡播放免费| 亚洲国产精品精华液ab| 蜜臀av一区二区在线免费观看| 成人激情黄色小说| 精品国产免费人成在线观看| 一区二区视频免费在线观看| 久久99精品久久久久婷婷| 色视频一区二区| 亚洲国产高清aⅴ视频| 日本午夜精品视频在线观看| 不卡av在线免费观看| 欧美大片免费久久精品三p| 亚洲综合偷拍欧美一区色| 成人一区在线看| 2024国产精品| 秋霞午夜鲁丝一区二区老狼| 91美女视频网站| 国产精品麻豆欧美日韩ww| 精品中文av资源站在线观看| 欧美日韩高清一区| 亚洲精品中文在线观看| 国产成人精品影视| 精品国产乱码久久久久久蜜臀| 午夜久久久久久久久久一区二区| av网站一区二区三区| 欧美高清在线一区二区| 国产麻豆91精品| 精品国产91久久久久久久妲己| 五月婷婷另类国产| 欧美日韩国产首页| 五月天网站亚洲| 在线观看一区二区视频| 一区二区三区在线播| 色呦呦一区二区三区| 亚洲精品国产品国语在线app| 成人h动漫精品| **欧美大码日韩| 色婷婷综合久久久久中文一区二区 | 五月婷婷综合在线|