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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? gprser.cpp

?? gprs開發(fā)使用程序
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/*!	\file		GGPRSer.cpp
	\brief		GPRS類實現(xiàn)文件
	\author		陳華毅
	\version	1.0

	通過實現(xiàn)CGPRSer類,應(yīng)用程序可以通過CGPRSer類的實體來實現(xiàn)對GPRS模塊操作。
	\defgroup	GPRSER_IMPLEMENT	CGPRSDer類實現(xiàn)說明
*/

#include "stdafx.h"
#include "GPRS.h"
#include "GPRSer.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//@{Group: GPRSER_IMPLEMENT

/*!	CGPRS構(gòu)造函數(shù),構(gòu)造時打開串口
	\param	無
	\return	無
*/
CGPRSer::CGPRSer()
{
	m_serial.OpenComm();
}

/*!	CGPRS析構(gòu)函數(shù),析構(gòu)時關(guān)閉串口
	\param	無
	\return	無
*/
CGPRSer::~CGPRSer()
{
	m_serial.CloseComm();
}

/*!	初始化GSM狀態(tài) 
	\param	無
	\return		成功返回TRUE,失敗返回FALSE。
*/
BOOL CGPRSer::GPRSInit()
{
	/* 測試連接:“AT”測試終端是否連接正確。成功后返回“OK”。*/
	char ans[128];
	m_serial.WriteComm((UCHAR*)"AT\r", 3);
	Sleep(30);
	m_serial.ReadComm((UCHAR*)ans, 128);
	if (strstr(ans, "ERROR") != NULL)
		return FALSE;

	/*設(shè)置回顯:(此步驟為了測試方便)ATE1 */
	m_serial.WriteComm((UCHAR*)"ATE0\r", 5);
	Sleep(30);
	m_serial.ReadComm((UCHAR*)ans, 128);

	/* PDU模式 */
	m_serial.WriteComm((UCHAR*)"AT+CMGF=0\r", 10);
	Sleep(30);
	m_serial.ReadComm((UCHAR*)ans, 128);

	/* 選擇話筒 */
	m_serial.WriteComm((UCHAR*)"AT+SPEAKER=1\r", 15);
	Sleep(30);

	/*設(shè)置GPRS新消息提示方式 */
//	m_serial.WriteComm((UCHAR*)"AT+CMGS=2,1,0,0,1\r", 20);
//	m_serial.ReadComm((UCHAR*)ans, 128);
	return TRUE;
}

/*!	發(fā)送短消息,僅發(fā)送命令,不讀取應(yīng)答
	\param [in]	strNum - 發(fā)送消息手機(jī)號
	\param [in] strCon - 短消息內(nèi)容
	\return		成功返回TRUE,失敗返回FALSE。
*/
BOOL CGPRSer::gprsSendMessage(CString strNum, CString strCon)
{

	CHAR ans[128] = {0};		/* 應(yīng)答串 */
	CString strSmsc = "";
	CString strNumber = "";
	CString strContent = "";

	m_serial.WriteComm((UCHAR*)"AT+CSCA?\r", 10);
	Sleep(60);
	m_serial.ReadComm((UCHAR*)ans, 128);
	if (strstr(ans, "+CSCA:"))
	{
		CString strTempCsca = CString(ans);
		strSmsc = strTempCsca.Mid(10, 14);
		if ((strSmsc.GetLength() != 14) || (strSmsc.GetAt(0) != '+'))
		{
			AfxMessageBox(_T("提取短消息中心號碼失敗!請重新設(shè)置短消息中心號碼!"));
		}
	}else{
		AfxMessageBox(_T("提取短消息中心號碼失敗!請重新設(shè)置短消息中心號碼!"));
	}

	strNumber = strNum;
	strContent = strCon;

	SM_PARAM SmParam;
	memset(&SmParam, 0, sizeof(SM_PARAM));

	/* 去掉號碼前的"+" */
	if(strSmsc[0] == '+')  strSmsc = strSmsc.Mid(1);
	if(strNumber[0] == '+')  strNumber = strNumber.Mid(1);

	/* 在號碼前加"86" */
	if(strSmsc.Left(2) != "86")  strSmsc = "86" + strSmsc;
	if(strNumber.Left(2) != "86")  strNumber = "86" + strNumber;

	/* 填充短消息結(jié)構(gòu) */
	strcpy(SmParam.SCA, CStringToCharArray(strSmsc));
	strcpy(SmParam.TPA, CStringToCharArray(strNumber));
	wcscpy(SmParam.TP_UD, strContent);
	SmParam.TP_PID = 0;
	SmParam.TP_DCS = GSM_UCS2;

	int nPduLength;		/* PDU串長度 */
	UCHAR nSmscLength;	/* SMSC串長度 */
	int nLength;		/* 串口收到的數(shù)據(jù)長度 */
	char cmd[16];		/* 命令串 */
	char pdu[512];		/* PDU串 */

	nPduLength = gprsEncodePdu(&SmParam, pdu);	/* 根據(jù)PDU參數(shù),編碼PDU串 */
	strcat(pdu, "\x01a");		/* 以Ctrl-Z結(jié)束  strcat---字符串拼接函數(shù) */

	gprsString2Bytes(pdu, &nSmscLength, 2);	/* 取PDU串中的SMSC信息長度 */
	nSmscLength++;		/* 加上長度字節(jié)本身 */

	/* 命令中的長度,不包括SMSC信息長度,以數(shù)據(jù)字節(jié)計 */
	sprintf(cmd, "AT+CMGS=0%d\r", nPduLength / 2 - nSmscLength);	/* 生成命令 */
	/*送格式化輸出到字符串cmd中 */

//	TRACE("%s", cmd);
//	TRACE("%s\n", pdu);

	m_serial.WriteComm((UCHAR*)cmd, strlen(cmd));	/* 先輸出命令串 */

	Sleep(60);
	nLength = m_serial.ReadComm((UCHAR*)ans, 128);	/* 讀應(yīng)答數(shù)據(jù) */

	/* 根據(jù)能否找到"+CMS ERROR"決定成功與否 */
	if(nLength > 0 && strncmp(ans, "+CMS ERROR", 10) != 0)
	{
		m_serial.WriteComm((UCHAR*)pdu, strlen(pdu));
		Sleep(30);
		nLength = m_serial.ReadComm((UCHAR*)ans, 128);
		if((nLength > 0) && strstr(ans, "> "))
		{
			AfxMessageBox(TEXT("Send succeessfully!"));
		}
		return TRUE;
	}
	else
	{
		AfxMessageBox(TEXT("Send fail!"));
		return FALSE;
	}
}

/*!	PDU編碼,用于編制、發(fā)送短消息
	\param [in]	pSrc - 源PDU參數(shù)指針 
	\param [in] pDst - 目標(biāo)PDU串指針 
	\return	目標(biāo)PDU串長度
*/
DWORD CGPRSer::gprsEncodePdu(const SM_PARAM *pSrc, CHAR *pDst)
{
	DWORD nLength;			/* 內(nèi)部用的串長度 */
	DWORD nDstLength;		/* 目標(biāo)PDU串長度 */
	UCHAR buf[256];			/* 內(nèi)部用的緩沖區(qū) */

	/* SMSC地址信息段 */
	nLength = strlen(pSrc->SCA);	/* SMSC地址字符串的長度	*/
	buf[0] = (char)((nLength & 1) == 0 ? nLength : nLength + 1) / 2 + 1;	/* SMSC地址信息長度 */
	buf[1] = 0x91;		/* 固定: 用國際格式號碼 */
	nDstLength = gprsBytes2String(buf, pDst, 2);		/* 轉(zhuǎn)換2個字節(jié)到目標(biāo)PDU串 */
	nDstLength += gprsInvertNumbers(pSrc->SCA, &pDst[nDstLength], nLength);	/* 轉(zhuǎn)換SMSC號碼到目標(biāo)PDU串 */

	/* TPDU段基本參數(shù)、目標(biāo)地址等 */
	nLength = strlen(pSrc->TPA);	/* TP-DA地址字符串的長度 */
	buf[0] = 0x11;					/* 是發(fā)送短信(TP-MTI=01),TP-VP用相對格式(TP-VPF=10) */
	buf[1] = 0;						/* TP-MR=0 */
	buf[2] = (char)nLength;			/* 目標(biāo)地址數(shù)字個數(shù)(TP-DA地址字符串真實長度) */
	buf[3] = 0x91;					/* 固定: 用國際格式號碼 */
	nDstLength += gprsBytes2String(buf, &pDst[nDstLength], 4);		/* 轉(zhuǎn)換4個字節(jié)到目標(biāo)PDU串 */
	nDstLength += gprsInvertNumbers(pSrc->TPA, &pDst[nDstLength], nLength);	/* 轉(zhuǎn)換TP-DA到目標(biāo)PDU串 */

	/* TPDU段協(xié)議標(biāo)識、編碼方式、用戶信息等 */
	nLength = wcslen(pSrc->TP_UD);	/* 用戶信息字符串的長度 */
	buf[0] = pSrc->TP_PID;			/* 協(xié)議標(biāo)識(TP-PID) */
	buf[1] = pSrc->TP_DCS;			/* 用戶信息編碼方式(TP-DCS) */
	buf[2] = 0;						/* 有效期(TP-VP)為5分鐘 */
	if(pSrc->TP_DCS == GSM_7BIT)	
	{
		/* 7-bit編碼方式 */
		buf[3] = nLength;			/* 編碼前長度 */
//		nLength = gsmEncode7bit(pSrc->TP_UD, &buf[4], nLength+1) + 4;	/* 轉(zhuǎn)換TP-DA到目標(biāo)PDU串 */

	}
	else if(pSrc->TP_DCS == GSM_UCS2)
	{
		/* UCS2編碼方式 */
		buf[3] = gprsEncodeUcs2(pSrc->TP_UD, &buf[4], nLength);	/* 轉(zhuǎn)換TP-DA到目標(biāo)PDU串 */
		nLength = buf[3] + 4;		/* nLength等于該段數(shù)據(jù)長度 */
	}
	else
	{
		/* 8-bit編碼方式 */
//		buf[3] = gsmEncode8bit(pSrc->TP_UD, &buf[4], nLength);	/* 轉(zhuǎn)換TP-DA到目標(biāo)PDU串 */
		nLength = buf[3] + 4;		/* nLength等于該段數(shù)據(jù)長度 */
	}
	nDstLength += gprsBytes2String(buf, &pDst[nDstLength], nLength);		/* 轉(zhuǎn)換該段數(shù)據(jù)到目標(biāo)PDU串 */

	/* 返回目標(biāo)字符串長度 */
	return nDstLength;
}

/*! UCS2編碼 
	\param [in] pSrc - 源字符串指針 
    \param [in] nSrcLength - 源字符串長度 
	\param [out] pDst - 目標(biāo)編碼串指針 
	\return 目標(biāo)編碼串長度 
*/
DWORD CGPRSer::gprsEncodeUcs2(const TCHAR *pSrc, UCHAR *pDst, DWORD nSrcLength)
{
	/* 高低字節(jié)對調(diào),輸出 */
	for(int i=0; i < (INT)nSrcLength; i++)
	{
		*pDst++ = *pSrc >> 8;		/* 先輸出高位字節(jié) */
		*pDst++ = *pSrc++ & 0xff;		/* 后輸出低位字節(jié) */
	}

	/* 返回目標(biāo)編碼串長度 */
	return nSrcLength * 2;
}

/*! 打電話函數(shù)
	\param [in] str - 呼號的電話號碼
	\return 撥號成功返回TRUE,失敗返回FALSE
*/
BOOL CGPRSer::gprsCall(CString str)
{
	UCHAR sendbuf[256];
	CString strSend;
	strSend = "atd";
	strSend = strSend + str;
	strSend = strSend + ";\r\n";

	for (INT i=0; i < strSend.GetLength();i++)
	{
		sendbuf[i] = strSend.GetAt(i); 
	}

	m_serial.WriteComm(sendbuf, strSend.GetLength());
	
	return TRUE;
}

/*! 字符串?dāng)?shù)據(jù)轉(zhuǎn)換成字符組數(shù)據(jù)函數(shù)
	\param [in] str - 待轉(zhuǎn)換的字符串?dāng)?shù)據(jù)
	\return 由字符串轉(zhuǎn)換成字符組數(shù)據(jù)
*/
CHAR* CGPRSer::CStringToCharArray(CString str)
{
	for (INT i = 0; i < str.GetLength(); i++)
	{
		ch[i] = str.GetAt(i);
	}
	ch[i] = '\0';
	return ch;
}

/*! 掛機(jī)函數(shù)
	\param  無
	\return 攔掛機(jī)成功返回TRUE,失敗返回FALSE
*/
BOOL CGPRSer::gprsHang()
{
	m_serial.WriteComm((UCHAR*)"ath\r", 4);
	return TRUE;
}

/*! UCS2解碼 
	\param [in] pSrc - 源編碼串指針
	\param [in] nSrcLength -  源編碼串長度
	\param [out] pDst -  目標(biāo)字符串指針
	\return 目標(biāo)字符串長度 
*/
DWORD CGPRSer::gprsDecodeUcs2(const UCHAR *pSrc, TCHAR *pDst, DWORD nSrcLength)
{
	/* 高低字節(jié)對調(diào),拼成UNICODE */
	for(INT i=0; i < (INT)nSrcLength/2; i++)
	{
		*pDst = *pSrc++ << 8;	/* 先高位字節(jié) */
		*pDst++ |= *pSrc++;		/* 后低位字節(jié) */
	}

	/* 輸出字符串加個結(jié)束符 */
	*pDst = '\0';

	/* 返回目標(biāo)字符串長度 */
	return (nSrcLength/2);
}

/*! 7bit解碼
	\param [in] pSrc - 源編碼串指針
	\param [in] nSrcLength - 源編碼串長度
	\param [out] pDst - 目標(biāo)字符串指針
	\return 目標(biāo)字符串長度 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人丝袜高跟foot| 免费xxxx性欧美18vr| 91丨九色丨黑人外教| 视频一区中文字幕国产| 青青草伊人久久| 91精品国产综合久久久久久| 亚洲一区免费观看| 欧美三区在线视频| 免费在线欧美视频| 久久久午夜精品理论片中文字幕| 91成人免费在线| 国产精品天美传媒| 日韩中文欧美在线| 色先锋aa成人| 欧美日韩国产色站一区二区三区| 日韩欧美电影一二三| 亚洲一区二区三区免费视频| 日本视频免费一区| xnxx国产精品| caoporm超碰国产精品| 亚洲国产精品欧美一二99| 91精品免费在线| 国内外成人在线视频| 亚洲欧美综合色| 欧美一区二区三区啪啪| 国产成人在线观看| 亚洲va韩国va欧美va| 中文字幕av一区二区三区| 91精品国产综合久久精品麻豆 | 一区视频在线播放| 欧美人xxxx| 欧美日韩中文国产| 亚洲欧美在线aaa| 国产成人在线网站| 久久精品亚洲精品国产欧美| 国产精品白丝在线| 欧美日韩国产一级片| 国产综合色在线视频区| 亚洲女人的天堂| 国产嫩草影院久久久久| 91精品国产aⅴ一区二区| 欧美精品日日鲁夜夜添| 亚洲精品一卡二卡| 91网站在线播放| 国产精品色在线| 国产成人免费网站| 91蝌蚪porny九色| 国产一区二区三区综合| 欧美成人乱码一区二区三区| 99久久国产免费看| 国产精品一区二区不卡| 奇米精品一区二区三区在线观看 | 亚洲一区中文日韩| 亚洲综合在线免费观看| 综合中文字幕亚洲| **欧美大码日韩| 亚洲色图欧美在线| 亚洲欧洲另类国产综合| 最新不卡av在线| 亚洲愉拍自拍另类高清精品| 亚洲免费电影在线| 天堂蜜桃91精品| 国产在线精品视频| 99久久久久久| 制服丝袜亚洲播放| 久久综合网色—综合色88| 亚洲国产精品99久久久久久久久| 国产视频视频一区| 夜夜揉揉日日人人青青一国产精品| 亚洲精品国产一区二区三区四区在线 | 国产亚洲一区二区三区在线观看| www激情久久| 亚洲男帅同性gay1069| 国产精品国产自产拍高清av王其 | 欧美日韩精品欧美日韩精品一| 欧美一区二区三区免费观看视频| 精品国产网站在线观看| 亚洲视频1区2区| 美脚の诱脚舐め脚责91| 91色porny| 国产欧美久久久精品影院| 午夜日韩在线电影| 色老综合老女人久久久| 久久成人羞羞网站| 国产精品1区二区.| 欧美一区二区三区爱爱| 国产精品每日更新在线播放网址| 婷婷六月综合亚洲| 99精品视频在线观看| 精品剧情v国产在线观看在线| 中文字幕一区二区三区不卡在线| 日本特黄久久久高潮| 欧美日韩精品三区| 亚洲国产婷婷综合在线精品| 国产成人午夜高潮毛片| 午夜精品福利一区二区三区蜜桃| 国产河南妇女毛片精品久久久| 欧美精品久久久久久久多人混战 | 欧美一区二区三区在线观看视频| 一色桃子久久精品亚洲| 91浏览器在线视频| 中文字幕一区二区不卡| 99re亚洲国产精品| 综合精品久久久| 91在线视频18| 亚洲高清免费一级二级三级| 日本韩国欧美三级| 亚洲1区2区3区4区| 日韩免费性生活视频播放| 免费在线观看视频一区| 久久美女艺术照精彩视频福利播放| 久热成人在线视频| 国产视频亚洲色图| 在线免费观看一区| 免费成人在线视频观看| 久久久久99精品一区| 99re这里只有精品视频首页| 一区二区三区不卡视频| 日韩免费观看高清完整版| 粉嫩绯色av一区二区在线观看| 亚洲精品视频一区二区| 91.com视频| 91视频在线观看| 美脚の诱脚舐め脚责91| 亚洲日本在线视频观看| 51精品久久久久久久蜜臀| 丁香天五香天堂综合| 丝袜亚洲另类欧美| 国产精品福利在线播放| 91精品久久久久久蜜臀| 91麻豆swag| 国产999精品久久久久久绿帽| 成人性色生活片| 免费日韩伦理电影| 亚洲综合免费观看高清完整版在线| 欧美成人猛片aaaaaaa| 欧美女孩性生活视频| 91片黄在线观看| 91丝袜呻吟高潮美腿白嫩在线观看| 免费人成精品欧美精品| 亚洲成人一区在线| 亚洲欧美国产77777| 日本一二三不卡| 久久久久成人黄色影片| 国产欧美一区二区在线观看| 欧美一区二区在线看| 7777精品伊人久久久大香线蕉超级流畅| 99这里只有精品| 99re这里都是精品| 日本道色综合久久| 色域天天综合网| 欧洲人成人精品| 欧美少妇bbb| 欧美精品成人一区二区三区四区| 色偷偷成人一区二区三区91| 色偷偷成人一区二区三区91| 欧洲视频一区二区| 日韩三级视频中文字幕| 日韩免费高清视频| 国产精品污污网站在线观看| 亚洲特级片在线| 免播放器亚洲一区| 成人性生交大片免费| 欧美怡红院视频| 精品理论电影在线观看 | 久久国产人妖系列| 国产大陆精品国产| 91国产免费看| 日韩欧美国产一区二区在线播放 | 99riav久久精品riav| 91精品国产色综合久久久蜜香臀| 精品国产欧美一区二区| 中文字幕一区免费在线观看| 亚洲第一二三四区| 日韩欧美一二三四区| 成人欧美一区二区三区黑人麻豆| 亚洲一区免费在线观看| bt欧美亚洲午夜电影天堂| 日韩欧美一级在线播放| 亚洲乱码国产乱码精品精的特点| 男女视频一区二区| 欧美军同video69gay| 亚洲欧洲精品天堂一级| 久久国产尿小便嘘嘘尿| 在线观看91视频| 综合亚洲深深色噜噜狠狠网站| 蜜臀av性久久久久蜜臀aⅴ | 久久精品国产一区二区三 | 亚洲精品一区二区三区蜜桃下载 | a在线欧美一区| 久久久亚洲国产美女国产盗摄 | 久久超级碰视频| 91精品婷婷国产综合久久| 午夜精品国产更新| 欧美日韩精品久久久| 亚洲自拍偷拍九九九| 欧美性大战久久久久久久| 一区二区三区国产| 欧美吻胸吃奶大尺度电影| 亚洲美女屁股眼交3|