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

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

?? gsmmodem.cpp

?? 使用gsm收發短信的方式傳遞文件
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
		DelayTimer(100);
		ReadDataFromPort(m_pReadPool,iPoolLen,1);
		if(strstr(m_pReadPool,">")!=NULL)
		{
			DelayTimer(100);
			WriteDataToPort(m_pWritePool,nShortMsgLen);
			DelayTimer(1000);
			//AfxMessageBox(_T("發送短消息OK1"));
			delete [] pTempPool;
			delete [] pUnicode;
			return 1;
		}
		else
		{
			strcpy(aTempPool,"發送短消息錯");
//			AfxMessageBox(aTempPool);
		}
	}
	else
	{
		strcpy(aTempPool,"發送短消息錯");
//		AfxMessageBox(aTempPool);
	}
	//刪除空間
	delete[] pTempPool;
	delete [] pUnicode;
	return 0;
}
/////////////////////////////////////////////////////////////////////////////////
//功能:發送AT命令
//history			name			data			remark
//					wanfangjie		2002.09.26		create
//返回值:1 成功,0 失敗
///////////////////////////////////////////////////////////////////////////////
int CGsmModem::SendATCmd(const char *strATCmd)
{
	int nATCmdLen=0;
	nATCmdLen=strlen(strATCmd);
	WriteDataToPort(strATCmd,nATCmdLen);
	DelayTimer(150);
	return 1;
}
//////////////////////////////////////////////////////////////////
//功能:GSM信號的質量
//history		name			data			remark
//				wanfangjie		2003.04.14		create
//返回值:信號的質量(0~31)
///////////////////////////////////////////////////////////////////////
int CGsmModem::GsmSignalQuality()
{
	int nSignalQuality=0;
	int nBufLen=0;
	char *pFirst=NULL;
	ClearCommBuf(0);
	//發送AT命令
	SendATCmd("AT+CSQ\r");
	nBufLen=GetCommEvent(0);
	if(nBufLen>0)
	{
		ReadDataFromPort(m_pReadPool,nBufLen,1);
		pFirst=strstr(m_pReadPool,"+CSQ");
		if(pFirst!=NULL)
		{
			//調過+CSQ,冒號與空格讀取信號質量
			pFirst+=6;
			if(pFirst[0]>='0'&&pFirst[0]<='9')
			{
				nSignalQuality=atoi(pFirst);
			}
		}
		
	}
	return nSignalQuality;
}
//////////////////////////////////////////////////////////////////
//功能:關閉通信串口
//history		name			data			remark
//				wanfangjie		2003.04.14		create
///////////////////////////////////////////////////////////////////////
int CGsmModem::ClosePort()
{
	CloseHandle(m_hComm);
	return 1;

}
///////////////////////////////////////////////////////////////////////////////
//功能:分析GSM返回的值
//history       name		date             remark
//				wanfangjie	2003.03.24		create
//返回值	1~10數傳方面
//			11~20短消息方面 11,有新短消息
//
////////////////////////////////////////////////////////////////////////////////
SHORTMSGINFO* CGsmModem::ReadGsmData(int nDataLen)
{
	int nMsgIndex=0;
	//為短消息信息結構賦值
	m_pShortMsgInfo->nMsgLen=0;
	m_pShortMsgInfo->MsgData[0]=0;
	m_pShortMsgInfo->nMsgType=0x00;
	m_pShortMsgInfo->pSrcPhoneNum[0]=0;
	m_pShortMsgInfo->pTime[0]=0;
	m_pShortMsgInfo->nRecInfo=0;
	//從串口中讀數據
	ReadDataFromPort(m_pReadPool,nDataLen,1);
#ifdef _SIEMENS
	if(strstr(m_pReadPool,"RING")!=NULL)
	{
		m_pShortMsgInfo->nRecInfo=2;
		return m_pShortMsgInfo;
	}
	if(strstr(m_pReadPool,"+CMGS")!=NULL)
	{
		m_bIsSendOver=1;
		if(m_nTransNum==0)
		{
			m_pShortMsgInfo->nRecInfo=1;
		}
	}
   

	//有新短消息在SM中
	if(strstr(m_pReadPool,"+CMTI:")!=NULL)
	{
		nMsgIndex=ReadMsgIndex(m_pReadPool);
		//從SIM卡中讀短消息
		ReadMsgFromSIM(nMsgIndex,m_pReadPool);
		DecodeShortMsg(m_pReadPool,1);
		//刪除短消息
		DeleteShortMsg(nMsgIndex);
		return m_pShortMsgInfo;

	}
	else if(strstr(m_pReadPool,"+CMT")!=NULL)
	{
		DecodeShortMsg(m_pReadPool,0);
	}
#else
	char * pCurrPtr = strstr(m_pReadPool,"*ECAV:");
	if(pCurrPtr!=NULL)
	{
		if(*(pCurrPtr+9) == '6')
		{
			g_GsmModem.DispInComingNum(g_strPhoneNum);
			m_pShortMsgInfo->nRecInfo=2; //有撥入
		}
		else if(*(pCurrPtr+9) == '0')
		{
			//ZeroMemory(g_strPhoneNum, 32);
			m_pShortMsgInfo->nRecInfo=3;//對方掛斷
		}
		else if(*(pCurrPtr+9) == '3')
		{
			m_pShortMsgInfo->nRecInfo=4;//已接通
		}

	}
	if(strstr(m_pReadPool,"+CMGS")!=NULL)
	{
		m_bIsSendOver=1;
		if(m_nTransNum==0)
		{
			m_pShortMsgInfo->nRecInfo=1;
		}
	}

	//有新短消息在SM中
	if(strstr(m_pReadPool,"+CMTI:")!=NULL)
	{
		nMsgIndex=ReadMsgIndex(m_pReadPool);
		//從SIM卡中讀短消息
		ReadMsgFromSIM(nMsgIndex,m_pReadPool);
		DecodeShortMsg(m_pReadPool,1);
		//刪除短消息
		DeleteShortMsg(nMsgIndex);
		return m_pShortMsgInfo;

	}
	else if(strstr(m_pReadPool,"+CMT")!=NULL)
	{
		DecodeShortMsg(m_pReadPool,0);
	}
		//撥入時
		//..RING....*ECAV: 1,6,1,,,"037163857820",161.........(有回車換行符)
		//撥入不接對方掛斷時
		//.RING....RING....*ECAV: 1,0,1,08,222........
		//撥入接通時
		//..RING..ATA...OK....*ECAV: 1,3,1.

#endif
	return m_pShortMsgInfo;
}
///////////////////////////////////////////////////////////////////////////
//功能:讀取新消息在SM中的索引號
//history       name		date             remark
//				wanfangjie	2003.03.24		create
//返回值:新短消息的索引號
///////////////////////////////////////////////////////////////////////////
int CGsmModem::ReadMsgIndex(char *pReadPool)
{
	int i=0;
	int nLimitLen=50;
	int nMsgIndex=-1;
	int nPos=0;
	char cTemp[4];
	char *pFirst=NULL;

	pFirst=strstr(m_pReadPool,"+CMTI:");
	
	//短消息格式
	if(pFirst!=NULL)
	{
		nPos=pFirst-pReadPool;
		i=0;
		//尋找冒號:
		while(i<nLimitLen)
		{
			if(pReadPool[nPos]==':')
			{
				break;
			}
			nPos++;
			i++;
		}
		//失敗
		if(i==nLimitLen)
		{
			return nMsgIndex;
		}
		//跳過冒號:
		nPos++;
		//尋找逗號,
		while(i<nLimitLen)
		{
			if(pReadPool[nPos]==',')
			{
				break;
			}
			nPos++;
			i++;
		}
		//失敗
		if(i==nLimitLen)
		{
			return nMsgIndex;
		}
		//跳過逗號,
		nPos++;
		//讀取新短消息的索引號
		i=0;
		while(1)
		{
			if(m_pReadPool[nPos]==0x0D||i>3)
			{
				break;
			}
			cTemp[i++]=m_pReadPool[nPos++];
		}
		cTemp[i]=0;
		nMsgIndex=atoi(cTemp);
		return nMsgIndex;
	}
	return nMsgIndex;
}
////////////////////////////////////////////////////////////////////////////
//功能:從SIM卡中讀取短消息
//history		name		data		remark
//				wanfangjie	2003.04.17
//參數說明	char *pReadPool 從SIM卡中讀取的短消息
//			int nMsgIndex 短消息的序列號
//返回值:數據的長度
/////////////////////////////////////////////////////////////////////////////
int CGsmModem::ReadMsgFromSIM(int nMsgIndex,char *pReadPool)
{
	char pAtCmd[64];
	int nDataLen=0;
	_itoa(nMsgIndex,pReadPool,10);
	strcpy(pAtCmd,"AT+CMGR=");
	strcat(pAtCmd,pReadPool);
	strcat(pAtCmd,"\r");
	SendATCmd(pAtCmd);
	DelayTimer(500);
	nDataLen=GetCommEvent(0);
	if(nDataLen>0)
	{
		ReadDataFromPort(pReadPool,nDataLen,1);
	}
	return nDataLen;
}
////////////////////////////////////////////////////////////////////////////
//功能:對短消息進行解碼
//history		name		data		remark
//				wanfangjie	2003.03.20	創建
//				wanfangjie	2003.04.03	從VC下移植到VCE
//				wanfangjie	2003.04.14	添加邊界條件
//				wanfangjie	2003.04.17	添加不在SIM卡上的情況
//				wanfangjie	2003.09.04	修改函數的返回類型
//參數說明	char *pReadPool 短消息的內容
//			BOOL nIsInSIM 是否在SIM卡上,0不在,1在
//返回值:	接受到短消息的內容與類型
/////////////////////////////////////////////////////////////////////////////
int CGsmModem::DecodeShortMsg(char *pReadPool, BOOL nIsInSIM)
{
	int nLimitLen=50;//循環次數的限制
	int i=0;
	char cTemp[4];//讀PDU數據的長度
	char cMsgState=0;
	int nPduLen=0;
	int nDataLen=0;
	char *pFirst=NULL;
	int nPosition=0;
	char cNum=0;

	//為短消息信息結構賦值
	m_pShortMsgInfo->nMsgLen=0;
	m_pShortMsgInfo->MsgData[0]=0;
	m_pShortMsgInfo->nMsgType=0x00;
	m_pShortMsgInfo->pSrcPhoneNum[0]=0;
	m_pShortMsgInfo->pTime[0]=0;
	
	//在SIM卡上的情況
	if(nIsInSIM)
	{
		//尋找頭信息
		pFirst=strstr(pReadPool,"CMGR");
		if(pFirst==NULL)
		{
			return 0;
		}
		nPosition=pFirst-pReadPool;
		//跳過CMGR:和空格
		nPosition+=strlen("CMGR: ");
		//讀消息狀態 0,未讀過,1讀過
		cMsgState=pReadPool[nPosition];
		nPosition++;
		//跳過第一個逗號,
		nPosition++;
	}
	else//不在SIM卡上的情況
	{
		//尋找頭信息
		pFirst=strstr(pReadPool,"CMT:");
		if(pFirst==NULL)
		{
			return 0;
		}
		nPosition=pFirst-pReadPool;
		//跳過CMT:和空格
		nPosition+=strlen("CMT: ");
	}
	//找下一個逗號,
	i=0;
	while(i<nLimitLen)
	{
		if(pReadPool[nPosition]==',')
		{
			break;
		}
		i++;
		nPosition++;
	}
	if(i==nLimitLen)
	{
		return 0;
	}
	//跳過該逗號,
	nPosition++;
	//讀PDU數據的長度
	i=0;
	while(i<nLimitLen)
	{
		if(pReadPool[nPosition]==0x0D)
		{
			break;
		}
		cTemp[i++]=pReadPool[nPosition++];
	}
	cTemp[i]=0;
	if(i==nLimitLen)
	{
		return 0;
	}
	//長度為
	nPduLen=atoi(cTemp);
	if(nPduLen==0)
	{
		return 0;
	}
	//跳過回車與換行
	nPosition+=2;
	//讀取服務中心號碼的長度
	cTemp[0]=pReadPool[nPosition++];
	cTemp[1]=pReadPool[nPosition++];
	cNum=m_cGSMProtocol.TwoCharacterToByte(cTemp);
	//跳過服務中心號碼
	nPosition+=cNum*2;
	//跳過FO(第一字節)
	nPosition+=2;
	//讀原地址的長度
	cTemp[0]=pReadPool[nPosition++];
	cTemp[1]=pReadPool[nPosition++];
	cNum=m_cGSMProtocol.TwoCharacterToByte(cTemp);
	//讀地址類型
	cTemp[0]=pReadPool[nPosition++];
	cTemp[1]=pReadPool[nPosition++];
	cTemp[2]=0;
	//國際型碼
	if(strcmp(cTemp,"91")==0||cNum==0x0D)
	{
		nPosition+=2;
		cNum-=2;
	}
	//處理字符F
	if(cNum%2!=0)
	{
		cNum+=1;
	}
	//讀取電話號碼
	m_cGSMProtocol.PduNumToPhoneNum(m_pShortMsgInfo->pSrcPhoneNum,&pReadPool[nPosition],cNum);
	//跳過電話號碼
	nPosition+=cNum;
	//跳過PID協議
	nPosition+=2;
	//讀取DCS編碼標準
	cTemp[0]=pReadPool[nPosition++];
	cTemp[1]=pReadPool[nPosition++];
	cNum=m_cGSMProtocol.TwoCharacterToByte(cTemp);
	m_pShortMsgInfo->nMsgType=cNum;
	//讀去時間,年
	m_pShortMsgInfo->pTime[1]=pReadPool[nPosition++];
	m_pShortMsgInfo->pTime[0]=pReadPool[nPosition++];
	//月
	m_pShortMsgInfo->pTime[3]=pReadPool[nPosition++];
	m_pShortMsgInfo->pTime[2]=pReadPool[nPosition++];
	//日
	m_pShortMsgInfo->pTime[5]=pReadPool[nPosition++];
	m_pShortMsgInfo->pTime[4]=pReadPool[nPosition++];
	//小時
	m_pShortMsgInfo->pTime[7]=pReadPool[nPosition++];
	m_pShortMsgInfo->pTime[6]=pReadPool[nPosition++];
	//分鐘
	m_pShortMsgInfo->pTime[9]=pReadPool[nPosition++];
	m_pShortMsgInfo->pTime[8]=pReadPool[nPosition++];
	//秒
	m_pShortMsgInfo->pTime[11]=pReadPool[nPosition++];
	m_pShortMsgInfo->pTime[10]=pReadPool[nPosition++];
	m_pShortMsgInfo->pTime[12]=0;
	//跳過時區
	nPosition+=2;
	//讀取數據長度
	cTemp[0]=pReadPool[nPosition++];
	cTemp[1]=pReadPool[nPosition++];
	cNum=m_cGSMProtocol.TwoCharacterToByte(cTemp);
	nDataLen=(unsigned char)cNum;
	m_pShortMsgInfo->nMsgLen=nDataLen;
	//數據格式
	if(m_pShortMsgInfo->nMsgType==0x15)
	{
		for(i=0;i<nDataLen;i++)
		{
			m_pShortMsgInfo->MsgData[i]=m_cGSMProtocol.TwoCharacterToByte(&pReadPool[nPosition+2*i]);
		}
	}
	//UCS2格式
	else if(m_pShortMsgInfo->nMsgType==0x08)
	{
		for(i=0;i<nDataLen;i++)
		{
			m_pWritePool[i]=m_cGSMProtocol.TwoCharacterToByte(&pReadPool[nPosition+2*i]);
		}
		m_cGSMProtocol.InterchangeByteInWord(m_pWritePool,m_pShortMsgInfo->MsgData,nDataLen);
		m_pShortMsgInfo->MsgData[nDataLen]=0;
		m_pShortMsgInfo->MsgData[nDataLen+1]=0;
	}
	else//文本格式
	{
		m_pShortMsgInfo->nMsgLen=nDataLen;
		//7位編碼變為8位
		for(i=0;i<nDataLen;i++)
		{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲v中文字幕| 色视频一区二区| 91美女片黄在线观看91美女| 欧美日韩黄视频| 久久久久国产精品免费免费搜索| 亚洲老妇xxxxxx| 国产福利电影一区二区三区| 欧美三片在线视频观看| 国产精品毛片高清在线完整版| 视频一区二区中文字幕| 色屁屁一区二区| 国产精品美女久久久久高潮| 狠狠色丁香婷婷综合久久片| 欧美视频一区二区三区| 亚洲天堂精品视频| 国产91精品欧美| 亚洲精品一区二区三区蜜桃下载 | 一区二区三区四区蜜桃| 久久99精品一区二区三区| 在线精品亚洲一区二区不卡| 亚洲欧美综合另类在线卡通| 国产福利91精品一区二区三区| 欧美一区二区免费观在线| 亚洲一区视频在线观看视频| 9久草视频在线视频精品| 日本一区二区在线不卡| 国产麻豆精品theporn| 日韩欧美你懂的| 美女视频黄免费的久久 | 国产91精品一区二区麻豆亚洲| 欧美一级高清片在线观看| 日韩精品视频网站| 欧美精品v国产精品v日韩精品| 一区二区三区欧美视频| 91黄色在线观看| 亚洲成av人片www| 欧美日韩在线精品一区二区三区激情| 亚洲综合偷拍欧美一区色| 欧美性淫爽ww久久久久无| 亚洲已满18点击进入久久| 欧美日韩国产高清一区二区 | 天天综合色天天| 欧美一区二区三区日韩视频| 日本视频一区二区三区| 欧美一区二区私人影院日本| 秋霞成人午夜伦在线观看| 日韩欧美一级精品久久| 激情六月婷婷久久| 久久精品一区二区三区av| 成人免费高清视频在线观看| 国产精品拍天天在线| 99久久久无码国产精品| 亚洲免费在线电影| 91精品国产一区二区三区| 美腿丝袜亚洲综合| 国产亚洲一区二区三区四区| 99精品热视频| 午夜电影一区二区| 欧美成人三级电影在线| 成人综合日日夜夜| 一级日本不卡的影视| 欧美一区二区美女| 成人免费av资源| 亚洲午夜久久久久久久久久久| 91精品视频网| 国产99久久久国产精品潘金网站| 亚洲欧洲制服丝袜| 日韩一区二区三区电影在线观看| 国产精品88888| 洋洋av久久久久久久一区| 欧美mv日韩mv亚洲| 91在线丨porny丨国产| 午夜久久久久久| 日本一区二区免费在线观看视频| 色哦色哦哦色天天综合| 另类小说欧美激情| 亚洲另类春色校园小说| 精品久久久久一区| 色欧美日韩亚洲| 国产一区二区三区视频在线播放| 亚洲图片你懂的| 久久综合资源网| 欧美亚男人的天堂| 国产福利91精品一区二区三区| 亚洲v中文字幕| 亚洲免费观看高清在线观看| 久久精品人人做人人综合| 欧洲另类一二三四区| 盗摄精品av一区二区三区| 美国十次了思思久久精品导航| 亚洲欧美日韩国产一区二区三区| 日韩欧美高清在线| 欧美三级视频在线播放| 91在线视频免费91| 国产精品主播直播| 日本欧美大码aⅴ在线播放| 亚洲欧美欧美一区二区三区| 国产欧美精品一区| 精品国产乱码久久久久久久久| 91超碰这里只有精品国产| 色婷婷精品久久二区二区蜜臂av| 成人免费av网站| 国产成人自拍网| 国产一区二区视频在线| 日产精品久久久久久久性色| 亚洲国产精品尤物yw在线观看| ●精品国产综合乱码久久久久| 国产欧美日韩在线看| 久久久久久久久久久久电影| 欧美哺乳videos| 精品国产凹凸成av人网站| 欧美一区二区三区系列电影| 中文字幕欧美三区| 精品国产一区二区三区忘忧草 | 久久久久久久久久看片| 日韩亚洲欧美在线| 91精品久久久久久蜜臀| 欧美人与性动xxxx| 51精品秘密在线观看| 欧美日韩高清在线播放| 欧美日韩久久一区二区| 欧美三片在线视频观看| 正在播放亚洲一区| 91精品麻豆日日躁夜夜躁| 91精品国产麻豆国产自产在线| 欧美精品乱码久久久久久按摩| 欧美日韩视频在线观看一区二区三区| 欧美性受xxxx黑人xyx性爽| 欧美人与性动xxxx| 欧美精品一区在线观看| 久久久久国色av免费看影院| 亚洲国产成人一区二区三区| 中文字幕在线观看一区| 亚洲精品欧美综合四区| 亚洲成人综合在线| 秋霞av亚洲一区二区三| 国内精品国产成人| av高清久久久| 欧美综合色免费| 日韩一级在线观看| 国产午夜亚洲精品不卡| 伊人婷婷欧美激情| 美女高潮久久久| 成人avav影音| 欧美日韩精品三区| 久久久久久久久免费| 自拍偷在线精品自拍偷无码专区| 一卡二卡欧美日韩| 精品一区二区综合| 91在线观看免费视频| 欧美视频一区在线| 久久综合色综合88| 亚洲欧美色图小说| 蜜桃视频在线观看一区| av成人老司机| 欧美一区二区三区思思人| 国产精品久久久久永久免费观看| 午夜激情久久久| av色综合久久天堂av综合| 在线电影院国产精品| 国产精品毛片大码女人| 日韩av在线播放中文字幕| 成人深夜福利app| 欧美一区二区三区在线电影| 亚洲三级在线免费观看| 国内一区二区在线| 欧美丝袜丝交足nylons| 久久九九久久九九| 日本aⅴ免费视频一区二区三区| 高清不卡在线观看| 日韩欧美成人激情| 亚洲一区av在线| 91在线丨porny丨国产| 欧美大尺度电影在线| 图片区日韩欧美亚洲| 91美女在线观看| 国产亚洲成av人在线观看导航| 日韩激情一二三区| 欧美专区亚洲专区| 亚洲卡通欧美制服中文| 成人午夜短视频| 欧美日本免费一区二区三区| 成人精品一区二区三区四区| 在线电影一区二区三区| 天天色 色综合| 最好看的中文字幕久久| 精品国产91久久久久久久妲己 | 欧美色图片你懂的| 国产**成人网毛片九色 | 亚洲免费毛片网站| 欧美在线视频日韩| 国产精品视频一区二区三区不卡| 婷婷久久综合九色综合伊人色| 99国产精品久久久久| 国产三级精品三级在线专区| 国产在线播放一区| 久久免费的精品国产v∧| 激情亚洲综合在线| 久久影音资源网| 国模无码大尺度一区二区三区|