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

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

?? mobile.cpp

?? 模擬一個汽車部件通過內(nèi)部總線的通訊和數(shù)據(jù)傳遞.可以用于其它應(yīng)用領(lǐng)域.
?? CPP
字號:
//Mobile control class by SkyVense
//If you modified this file, please send a copy to skyvense@online.sh.cn
//Thank you!


//Last modifed 2002-02-29 by SkyVense


// Mobile.cpp: implementation of the CMobile class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "Mobile.h"
#include <atlconv.h>
#include <stdio.h>

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

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CMobile::CMobile()
{
	cs = NULL;
}

CMobile::~CMobile()
{

}

BOOL CMobile::ReadResponse()
{
	char data[1024];
	if (!cs) return FALSE;
	int len,i;
	for (i=0;i<300;i++)
	{
		len = cs->ReadData(data);
		m_LastResponese.Format(_T("%s"),data);
		if (len>0) break;
		Sleep(100);
	}
	if (len>0)
	{
		CString str(data);
		m_LastResponese = str;
		return TRUE;
	}
	return FALSE;
}

BOOL CMobile::ConnectMobile(int nPort, int Speed)
{
	cs = new CSerial;
	return cs->Open(nPort,Speed);
}

void CMobile::DisConnectMobile()
{
	cs->PortClose();
}


void CMobile::SendData(char *str)
{
	char tosend[1024];
	strcpy(tosend,str);
	strcat(tosend,"\r");
	cs->SendData(tosend,strlen(tosend)+1);
}

BOOL CMobile::CloseEcho()
{
	SendData("ATE0");
	if (ReadResponse())
	{
		return AnalysisResponse();
	}
	return FALSE;
}

BOOL CMobile::AnalysisResponse()
{
	int i;
	int fi,li;
	m_LastResponese.TrimLeft();m_LastResponese.TrimRight();
	m_LastResponese += _T("\r\n");
	//Dispart:
	m_LastQueryResult = _T("");
	m_CommandResult = _T("");
	for (fi=0,li=0,i=0;fi<m_LastResponese.GetLength();i++)
	{
		li = m_LastResponese.Find(_T("\r\n"),fi);
		if (li<0) break;
		if (i==0) m_LastQueryResult = m_LastResponese.Mid(fi,li-fi);
		if (i==2) m_CommandResult = m_LastResponese.Mid(fi,li-fi);
		fi = li + 1;
	}
	m_LastQueryResult.TrimLeft();m_LastQueryResult.TrimRight();
	m_CommandResult.TrimLeft();m_CommandResult.TrimRight();

	if (m_CommandResult.Find(_T("OK"),0)>=0||m_LastQueryResult.Find(_T("OK"),0)>=0) return TRUE;
	else if (m_CommandResult.Find(_T("ERROR"),0)>=0||m_LastQueryResult.Find(_T("ERROR"),0)>=0) return FALSE;
	else if (m_CommandResult.Find(_T(">"),0)>=0||m_LastQueryResult.Find(_T(">"),0)>=0) return TRUE;
	else return FALSE;
	return FALSE;
}

CString CMobile::GetMobileFactory()
{
	SendData("AT+CGMI");
	if (ReadResponse())
	{
		if (AnalysisResponse())
		{
			return m_LastQueryResult;
		}
	}
	return _T("");
}

CString CMobile::GetMobileModel()
{
	SendData("AT+CGMM");
	if (ReadResponse())
	{
		if (AnalysisResponse())
		{
			return m_LastQueryResult;
		}
	}
	return _T("");
}

CString CMobile::GetMobileFactorySerial()
{
	SendData("AT+GSN");
	if (ReadResponse())
	{
		if (AnalysisResponse())
		{
			return m_LastQueryResult;
		}
	}
	return _T("");
}

CString CMobile::GetMobileFirmwareVer()
{
	SendData("AT+CGMR");
	if (ReadResponse())
	{
		if (AnalysisResponse())
		{
			return m_LastQueryResult;
		}
	}
	return _T("");
}

CString CMobile::GetMobileIMEI()
{
	SendData("AT+CGSN");
	if (ReadResponse())
	{
		if (AnalysisResponse())
		{
			return m_LastQueryResult;
		}
	}
	return _T("");
}

BOOL GetBit(BYTE bitnum,BYTE data)
{
	BOOL IsTrue = FALSE;
	switch (bitnum)
	{
		case 0:
			IsTrue = data & 0x01;
			break;
		case 1:
			IsTrue = data & 0x02;
			break;
		case 2:
			IsTrue = data & 0x04;
			break;
		case 3:
			IsTrue = data & 0x08;
			break;
		case 4:
			IsTrue = data & 0x10;
			break;
		case 5:
			IsTrue = data & 0x20;
			break;
		case 6:
			IsTrue = data & 0x40;
			break;
		case 7:
			IsTrue = data & 0x80;
			break;
		default:
			IsTrue = data & 0x01;
			break;
	}
	return IsTrue;
}

BYTE SetBit(BYTE bitnum,BYTE data,BOOL bit)
{
	BYTE op;
	BYTE t = data;
	switch (bitnum)
	{
		case 0:
			op = 0x01;
			break;
		case 1:
			op = 0x02;
			break;
		case 2:
			op = 0x04;
			break;
		case 3:
			op = 0x08;
			break;
		case 4:
			op = 0x10;
			break;
		case 5:
			op = 0x20;
			break;
		case 6:
			op = 0x40;
			break;
		case 7:
			op = 0x80;
			break;
		default:
			op = 0x01;
			break;
	}
	if (bit) t = t | op;
return t;
}

BOOL IfUnicode(char *Text)
{
	int i,len;
	BYTE data[2048];
	len = sizeof(Text);
	memcpy(data,Text,len);
	for (i=0;i<len;i++)
	{
		if (GetBit(7,data[i])) return TRUE;
	}
	return FALSE;
}

int Encode7bitPDU(char *src, char *output)
{
	int i,j,k;
	BYTE data[512],coded[512];
	memcpy(data,src,strlen(src)+1);
	
	for (i=0,j=1;i<(int)strlen(src);i++)
	{
		if (i%8==0) j--;
		coded[j] = data[i] >> ((j) % 7);
		for (k=0;k<=j%7;k++)
		{
			coded[j] = SetBit(7-k,coded[j],GetBit((j%7)-k,data[i+1]));
		}
		j++;
	}
	int total = j;

	strcpy(output,"");
	char str[3];
	for (i=0;i<j;i++)
	{
		sprintf(str,"%.2X",coded[i]);
		strcat(output,str);
	}
	return strlen(src);
}

int EncodeUnicodePDU(char *src, char *output)
{
	OLECHAR unicodetext[2048];
	BYTE data[2048];
	int len,i;
	
	MultiByteToWideChar(CP_ACP, 0, src, -1, unicodetext, 2048);
	len = sizeof(unicodetext);
	memcpy(data,unicodetext,len);
	
	strcpy(output,"");
	char str[5];
	for (i=0;;i+=2)
	{
		if (data[i] == 0) break;
		sprintf(str,"%.2X%.2X",data[i+1],data[i]);
		strcat(output,str);
	}
	return (strlen(output)/2);
}

int EncodePDU(char *src, char *output)
{
	BOOL bIfUnicode = IfUnicode(src);
	
	if (bIfUnicode) 
		return EncodeUnicodePDU(src,output);
	else 
		return Encode7bitPDU(src,output);
	
	return 0;
}

int CMobile::EncodeData(
						BOOL bNeedReply,
						char *PhoneNumber,
						char *Text, 
						char *ret
						)
{
	BYTE data[2048];
	char *LocalText;
	char str[1024];
	int i,j;
	LocalText = new char[2048];

	strcpy(LocalText,Text);

	if (bNeedReply) strcpy(str,"0031000B81");
	else			strcpy(str,"0011000B81");
	
	memcpy(data,str,strlen(str));

	data[10] = PhoneNumber[1];
	data[11] = PhoneNumber[0];
	data[12] = PhoneNumber[3];
	data[13] = PhoneNumber[2];
	data[14] = PhoneNumber[5];
	data[15] = PhoneNumber[4];
	data[16] = PhoneNumber[7];
	data[17] = PhoneNumber[6];
	data[18] = PhoneNumber[9];
	data[19] = PhoneNumber[8];
	data[20] = 'F';
	data[21] = PhoneNumber[10];

	data[22] = '0';
	data[23] = '0';
	
	//Code scheme
	BOOL bIfUnicode = IfUnicode(LocalText);
	if (bIfUnicode)
	{
		data[24] = '0';
		data[25] = '8';
	}
	else
	{
		data[24] = '0';
		data[25] = '0';
	}

	//Expire period:
	data[26] = 'A';
	data[27] = '7';

	char *pdu_output;
	pdu_output = new char[2048];

	
	CString tmpstr(Text);

	if (bIfUnicode) 
	{
		tmpstr = tmpstr.Left(70);
	}
	else 
	{
		tmpstr = tmpstr.Left(160);
	}

#ifdef _UNICODE
	USES_CONVERSION;
	LocalText = W2A(tmpstr);
#else
	strcpy(LocalText,tmpstr);
#endif

	int len = EncodePDU(LocalText,pdu_output);
	sprintf(str,"%.2X",len);

	data[28] = str[0];
	data[29] = str[1];

	for (i=0,j=30;i<(int)strlen(pdu_output);i++,j++)
	{
		data[j] = pdu_output[i];
	}
	
	memcpy(ret,data,j);
	ret[j] = 26;
	j++;
	return j;
}

BOOL CMobile::SendSMS(
					BOOL bNeedReply,
					char *PhoneNumber,
					char *Text
					)
{
	SendData("AT+CMGF=0");
	if (!ReadResponse())  return FALSE;
	if (!AnalysisResponse()) return FALSE;
	
	SendData("AT+CSMS=0");
	if (!ReadResponse())  return FALSE;
	if (!AnalysisResponse()) return FALSE;

	char data[2048];
	int datalen = EncodeData(bNeedReply,PhoneNumber,Text,data);
	int validlen = (datalen - 3) / 2;

	CString str;
	str.Format(_T("AT+CMGS=%d"),validlen);

#ifdef _UNICODE	
	USES_CONVERSION;
	SendData(W2A(str));
#else
	SendData((char*)(LPCTSTR)str);
#endif

	if (!ReadResponse())  return FALSE;
	if (!AnalysisResponse()) return FALSE;
	
	cs->SendData(data,datalen);
	if (!ReadResponse())  return FALSE;
	if (!AnalysisResponse()) return FALSE;

	return TRUE;
}

BOOL CMobile::LockKeypad(BOOL bLock)
{
	if (bLock) SendData("AT+CLCK=CS,1");
	else SendData("AT+CLCK=CS,0");
	if (ReadResponse())
	{
		return AnalysisResponse();
	}
	return FALSE;
}

BOOL CMobile::ShutdownMobile()
{
	SendData("AT^SMSO");
	if (ReadResponse())
	{
		return AnalysisResponse();
	}
	return FALSE;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区欧美小说| 成人性生交大片免费看中文网站| 蜜臀av亚洲一区中文字幕| 国产精品白丝av| 欧美另类高清zo欧美| 国产精品网站导航| 蜜臀国产一区二区三区在线播放| 日本va欧美va精品发布| 国产精品69久久久久水密桃| 欧美男男青年gay1069videost | 337p粉嫩大胆色噜噜噜噜亚洲| 国产精品久久综合| 国产乱人伦偷精品视频免下载| 欧美精品视频www在线观看| 国产精品电影一区二区三区| 久久精品国产亚洲高清剧情介绍 | 午夜视黄欧洲亚洲| 94-欧美-setu| 国产精品久久看| 韩国成人在线视频| 宅男在线国产精品| 亚州成人在线电影| 欧美视频一区二区在线观看| 亚洲另类色综合网站| av男人天堂一区| 国产精品视频麻豆| 成人短视频下载| 国产精品网曝门| 成人黄页在线观看| 国产精品久久久久影视| 国产成人一区二区精品非洲| 久久青草欧美一区二区三区| 奇米综合一区二区三区精品视频| 欧美亚洲免费在线一区| 亚洲一区中文在线| 欧美亚洲另类激情小说| 亚洲男帅同性gay1069| av综合在线播放| 亚洲欧洲制服丝袜| 在线观看国产日韩| 性久久久久久久久久久久| 欧美日韩久久久久久| 日日夜夜免费精品| 中文文精品字幕一区二区| 成人av动漫网站| 亚洲女子a中天字幕| av一本久道久久综合久久鬼色| 国产精品色呦呦| 97久久精品人人爽人人爽蜜臀| 亚洲女爱视频在线| 欧美视频一区二区三区在线观看 | 午夜不卡av在线| 欧美伦理电影网| 老司机精品视频在线| 久久先锋影音av鲁色资源| 波多野结衣在线aⅴ中文字幕不卡| 亚洲欧洲成人精品av97| 欧美三级日韩在线| 黑人巨大精品欧美黑白配亚洲| 国产精品久久久久aaaa| 欧美亚洲愉拍一区二区| 久久99精品久久只有精品| 中文字幕欧美国产| 欧美日韩高清在线播放| 激情欧美一区二区三区在线观看| 欧美国产视频在线| 欧美日韩国产bt| 国产麻豆视频一区二区| 一区二区三区在线观看网站| 91精品欧美福利在线观看| 国产成人啪免费观看软件 | 最近中文字幕一区二区三区| 欧美日韩免费一区二区三区视频| 久久精品国内一区二区三区| 国产精品传媒视频| 欧美一级黄色录像| 91在线播放网址| 美女视频黄免费的久久| 亚洲人吸女人奶水| 欧美精品一区二区不卡| 在线免费一区三区| 国产成人精品网址| 天使萌一区二区三区免费观看| 日本一区二区不卡视频| 欧美一区二区三区电影| 色综合中文字幕| 国产成人精品免费| 毛片不卡一区二区| 亚洲一级不卡视频| 日韩美女视频一区| 国产日韩欧美综合在线| 69堂国产成人免费视频| 色婷婷久久综合| 成人视屏免费看| 美脚の诱脚舐め脚责91 | 欧美tickling网站挠脚心| 99免费精品视频| 韩国av一区二区三区在线观看| 一区二区三区在线不卡| 国产欧美一区二区精品性色| 精品久久久久av影院| 欧美精品精品一区| 欧洲精品中文字幕| 色婷婷av一区二区三区软件| 粉嫩高潮美女一区二区三区| 精品一区二区在线视频| 久久国产精品99精品国产| 天天亚洲美女在线视频| 亚洲国产精品嫩草影院| 亚洲久本草在线中文字幕| 中文字幕不卡的av| 中国色在线观看另类| 国产亚洲成aⅴ人片在线观看| 精品国产污污免费网站入口 | 亚洲一区二区欧美日韩| 亚洲女与黑人做爰| 亚洲一区在线观看视频| 一区二区三区四区不卡视频| 一区二区三区在线视频观看| 亚洲桃色在线一区| 一区二区三区91| 亚洲午夜精品一区二区三区他趣| 亚洲已满18点击进入久久| 亚洲午夜精品在线| 欧美bbbbb| 韩国精品在线观看| 成人福利在线看| 色狠狠综合天天综合综合| 欧美日本在线看| 国产精品亲子伦对白| 亚洲欧美视频在线观看视频| 一区二区三区四区精品在线视频| 亚洲精品日韩综合观看成人91| 一区二区三区 在线观看视频| 水野朝阳av一区二区三区| 日本aⅴ亚洲精品中文乱码| 精品一区二区三区久久| 国产不卡免费视频| 色老综合老女人久久久| 在线综合视频播放| 久久久美女毛片| 亚洲欧美福利一区二区| 天天综合网天天综合色| 国产在线一区观看| 91日韩精品一区| 91精品国产乱| 国产精品久久看| 日韩黄色一级片| 国产成人综合自拍| 欧美日韩一区不卡| 久久精品欧美一区二区三区不卡 | 精品久久人人做人人爰| 国产精品麻豆欧美日韩ww| 亚洲大片精品永久免费| 国产激情视频一区二区在线观看 | 一区二区三区中文免费| 日本强好片久久久久久aaa| 国产成人亚洲综合a∨猫咪| 欧美在线不卡视频| 国产亚洲欧美一区在线观看| 亚洲午夜精品久久久久久久久| 国产一区视频导航| 欧美日韩大陆一区二区| 欧美国产综合一区二区| 手机精品视频在线观看| 99综合电影在线视频| 欧美日韩高清一区二区| 中文字幕乱码久久午夜不卡 | 国产亚洲婷婷免费| 五月激情六月综合| 99视频精品免费视频| 欧美成人精品高清在线播放| 亚洲人成7777| 成人免费观看视频| 久久综合av免费| 日韩va亚洲va欧美va久久| 色拍拍在线精品视频8848| 中文字幕第一区第二区| 精品亚洲porn| 日韩一卡二卡三卡国产欧美| 亚州成人在线电影| 91美女在线看| 18成人在线视频| 成人激情小说乱人伦| 国产亚洲婷婷免费| 狠狠狠色丁香婷婷综合久久五月| 欧美日韩激情一区二区| 亚洲综合在线第一页| 91一区二区在线| 国产精品欧美一级免费| 国产盗摄女厕一区二区三区| 亚洲精品一区二区在线观看| 日韩电影在线免费观看| 欧美日韩中文字幕一区| 亚洲最新视频在线观看| 色94色欧美sute亚洲线路二| 日韩理论片一区二区| 色综合一区二区三区| 亚洲天堂中文字幕| 日本高清免费不卡视频|