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

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

?? at.c

?? 基于STC51通過GPS自主定位導(dǎo)航FAT文件系統(tǒng)程序
?? C
?? 第 1 頁 / 共 2 頁
字號:

	{NULL,NULL},
};

//***********************************************************************************************************************
//函數(shù)作用:分析AT消息
//參數(shù)說明:無
//注意事項:
//返回說明:
//***********************************************************************************************************************
static void at_parse_msg(void)
{	
	at_msglist_t *list;
	
	//數(shù)據(jù)包列表中查找并且調(diào)用相應(yīng)處理函數(shù)
	for(list=at_msglist;list->cmdstr!=NULL;list++)
	{		
		//找到了以后 調(diào)用相應(yīng)函數(shù)
		if(str_comprise(at_receive_buffer,list->cmdstr))
		{
			list->callback();//調(diào)用相應(yīng)函數(shù)
			return;
		}
	}
}

//***********************************************************************************************************************
//函數(shù)作用:處理AT回應(yīng)數(shù)據(jù)包
//參數(shù)說明:無
//注意事項:
//返回說明:無
//***********************************************************************************************************************
static void ATAnalyse(void)
{
	if(!at_get_msg())return;//接收消息
	
	//if(at_debug==1)//調(diào)試信息
	//{
	//	print_line(at_receive_buffer);
	//}
	
	at_parse_msg();//分析消息
}

//*****************************************************************************************
//函數(shù)作用:等待回應(yīng)
//參數(shù)說明:
//注意事項:
//返回說明:如果等到OK返回1
//*****************************************************************************************
static uchar at_wait_ack(uint wait_time, uchar ack_no)
{	
	at_ack=0;
	while(!at_ack)//等返回
	{
		mdelay(20);
		ATAnalyse();
		if(wait_time&0x01)LED_CTRL=!LED_CTRL;
		if(--wait_time==0)break;//超時退出
	}
		
	if(at_ack==ack_no)return 1;
	return 0;
}

//*****************************************************************************************
//函數(shù)作用:等待ok
//參數(shù)說明:
//注意事項:
//返回說明:如果等到OK返回1
//*****************************************************************************************
static uchar at_wait_ok(void)
{
	return at_wait_ack(500,AT_ACK_OK);
}

//***********************************************************************************************************************
//函數(shù)作用:發(fā)送AT命令
//參數(shù)說明:
//注意事項:
//返回說明:
//***********************************************************************************************************************
static void at_send_command(uchar *command, uchar *param)
{
	AT_SEND_STR(AT_CMD_HEAD);
	AT_SEND_STR(command);
	AT_SEND_STR(param);
	AT_SEND_STR(AT_CMD_END);
}

//***********************************************************************************************************************
//函數(shù)作用:發(fā)送AT命令并且等待OK
//參數(shù)說明:
//注意事項:
//返回說明:如果等到ok 返回1
//***********************************************************************************************************************
static uchar at_send_command_waitok(uchar *command, uchar *param)
{		
	at_send_command(command,param);
	return(at_wait_ok());
}

//*****************************************************************************************
//函數(shù)作用:發(fā)送短信息
//參數(shù)說明:
//注意事項:
//返回說明:
//*****************************************************************************************
uchar ATSendSMS(uchar *dest_no, uchar *content_buf, uchar data_coding)
{
	uint length;
	uchar i;
	uchar MoveTemp;
	uchar temp_buf[16];

	if(at_reset)return 0;
	delay(1);//防止連續(xù)發(fā)送短信
	
	//發(fā)送頭
	AT_SEND_STR(AT_CMD_HEAD);
	AT_SEND_STR(AT_CMD_SENDSMS);
	//發(fā)送PDU包長度
	length=str_length(dest_no);//對方號碼長度
	if(length&0x01)length++;//修正奇偶
	length+=20;//其他字節(jié)固定長度
	if(data_coding==0x00)//英文
	{		
		i=0;
		while(content_buf[i]!=0)
		{
			MoveTemp=content_buf[i+1]<<(7-i%8);
			MoveTemp+=(content_buf[i]>>i%8);
			i++;
			length+=2;
			if(((i+1)%8)==0)if(content_buf[i])i++;
		}
	}
	else if(data_coding==0x08)//中文
	{
		length+=str_length(content_buf);
	}
	int_to_dec(temp_buf,(length>>1)-1);//轉(zhuǎn)化為十進制 并且修正為字節(jié)長度 然后減1
	AT_SEND_STR(temp_buf);//發(fā)送
	
	AT_SEND_CHAR('\r');
	
	//等待 "> "
	mdelay(100);
	
	//狀態(tài)報告碼
	AT_SEND_STR("001100");
	//號碼長度
	length=str_length(dest_no)+2;//號碼長度+86的長度
	char_to_hex(temp_buf,length);//轉(zhuǎn)化為hex字符串
	AT_SEND_STR(temp_buf);//發(fā)送
	//號碼屬性--國際號碼
	AT_SEND_STR("91");//發(fā)送
	//號碼內(nèi)容 奇偶數(shù)修正-F 并且高低字節(jié)對調(diào)
	str_copy(temp_buf,"86");//國家代碼--中國地區(qū)
	str_cat(temp_buf,dest_no);//拷貝號碼
	if(length&0x01)str_cat(temp_buf,"F");//修正奇偶
	swap_low4_and_high4(temp_buf,length);//高低字節(jié)對調(diào)
	AT_SEND_STR(temp_buf);//發(fā)送
	//PID
	AT_SEND_STR("00");
	//編碼方式
	char_to_hex(temp_buf,data_coding);//轉(zhuǎn)化為hex字符串
	AT_SEND_STR(temp_buf);//發(fā)送
	//有效期
	AT_SEND_STR("8F");//發(fā)送
	//內(nèi)容長度
	length=str_length(content_buf);//計算內(nèi)容緩沖區(qū)長度
	if(data_coding==0x08)length>>=1;//如果是中文把字符串長度轉(zhuǎn)化字節(jié)長度--除以2
	char_to_hex(temp_buf,length);//轉(zhuǎn)化為hex字符串
	AT_SEND_STR(temp_buf);//發(fā)送
	//真正的內(nèi)容
	if(data_coding==0x00)//英文
	{		
		uchar MoveTemp;
		uchar i=0,j=0;
		while(content_buf[i]!=0)
		{
			MoveTemp=content_buf[i+1]<<(7-i%8);
			MoveTemp+=(content_buf[i]>>i%8);
			Bcd2Char(temp_buf,MoveTemp);//轉(zhuǎn)化為hex
			AT_SEND_STR(temp_buf);//發(fā)送
			i++;
			j+=2;
			if(((i+1)%8)==0)if(content_buf[i])i++;
		}
	}
	else if(data_coding==0x08)//中文
	{
		AT_SEND_STR(content_buf);//發(fā)送
	}
	
	//發(fā)送結(jié)束符
	AT_SEND_CHAR(0x1A);
	
	//等待發(fā)送成功
	if(!at_wait_ack(1000,AT_ACK_OK))goto error;
	return 1;

error:
	at_reset=1;
	return 0;
}

//***********************************************************************************************************************
//函數(shù)作用:應(yīng)答電話
//參數(shù)說明:
//注意事項:
//返回說明:如果等到 返回1
//***********************************************************************************************************************
uchar ATAnswer(void)
{
	if(at_send_command_waitok(AT_CMD_ANSWER,""))
	{
		ring=0;
		calling=1;
		return 1;
	}
	return 0;
}

//***********************************************************************************************************************
//函數(shù)作用:掛機
//參數(shù)說明:
//注意事項:
//返回說明:如果等到 返回1
//***********************************************************************************************************************
uchar ATHangup(void)
{
	if(at_send_command_waitok(AT_CMD_HANGUP,""))
	{
		ring=0;
		calling=0;
		str_copy(clip_no,"???????????");
		return 1;
	}
	return 0;
}

//***********************************************************************************************************************
//函數(shù)作用:切換音頻通道
//參數(shù)說明:
//注意事項:
//返回說明:如果等到 返回1
//***********************************************************************************************************************
uchar ATSetAC(uchar no)
{
	uchar no_buf[2]="1";
	
	no_buf[0]=no;
	return at_send_command_waitok(AT_CMD_SWITCHAUDIO,no_buf);
}

//***********************************************************************************************************************
//函數(shù)作用:MIC增益
//參數(shù)說明:no--MIC號  gain--增益數(shù)量字符串 0-15
//注意事項:
//返回說明:如果等到 返回1
//***********************************************************************************************************************
uchar ATSetMic(uchar no, uchar *gain)
{
	uchar buf[]="0,10";
	buf[0]=no;
	str_copy(&buf[2],gain);
	return at_send_command_waitok(AT_CMD_MIC,buf);
}

//***********************************************************************************************************************
//函數(shù)作用:初始化
//參數(shù)說明:
//注意事項:
//返回說明:返回是否有錯誤 如果有錯誤送復(fù)位標志
//***********************************************************************************************************************
void ATInit(void)
{
	uchar wait_time;
	
	//清標志
	at_reset=0;//需要復(fù)位
	simok=0;//sim卡
	loginok=0;//登陸成功
	smsin=0;//收到短消息
	ring=0;//來電
	calling=0;//是否通話狀態(tài)
	str_copy(clip_no,"???????????");
	
	//1.上電并初始化端口
	print_line("AT重新上電");
	AT_POWER_CTRL=0;
	delay(2);//等待2秒
	AT_PORTINIT(AT_BAUDRATE);//端口初始化
	AT_FLUSH();
	AT_POWER_CTRL=1;
	
	//2.等待READY
	print_line("AT等待RDY");
	wait_time=20;//等待10秒
	while(!at_wait_ack(30,AT_ACK_OK))
	{
		at_send_command("","");
 		if(--wait_time==0)goto error;
	}
	
	//3.等待SIM卡檢測
	print_line("SIM卡檢測");
	wait_time=100;//等待10秒
	while(!simok)
	{	
		ATAnalyse();
		mdelay(100);
		LED_CTRL=!LED_CTRL;
		if(--wait_time==0)goto error;
	}
	
	//4.等待登陸網(wǎng)絡(luò)
	print_line("AT登錄網(wǎng)絡(luò)");
	if(!at_send_command_waitok(AT_CMD_DISECHO,""))goto error;//關(guān)閉命令回顯
	if(!at_send_command_waitok(AT_CMD_CREG,""))goto error;//主動提供網(wǎng)絡(luò)注冊信息
	at_send_command("+COPS=","4,0,\"CHINA MOBILE\"");//手動注冊中國移動 如果不成功再自動注冊
	wait_time=120;//等待120秒
	while(!loginok)
	{
		ATAnalyse();
		delay(1);
		LED_CTRL=!LED_CTRL;
 		if(--wait_time==0)goto error;
 	}
						
	//5.初始化AT命令
	print_line("AT設(shè)置命令");
	if(!at_send_command_waitok(AT_CMD_SMSPDU,""))goto error;//短消息PDU模式
	if(!at_send_command_waitok(AT_CMD_SMSTOCOMM,""))goto error;//短消息直接從串口出
	if(!at_send_command_waitok(AT_CMD_GSMCHARSET,""))goto error;//設(shè)置GSM字符集
	if(!at_send_command_waitok(AT_CMD_TCPIPRECEIVEHINT,""))goto error;//設(shè)置TCP/IP數(shù)據(jù)包接收提示
	if(!at_send_command_waitok(AT_CMD_TCPIPSENDHINT,""))goto error;//關(guān)閉TCPIP數(shù)據(jù)發(fā)送時的 "> " 提示
	if(!at_send_command_waitok(AT_CMD_FIXLOCALPORT,""))goto error;//取消固定本地端口號
	if(!at_send_command_waitok("+CLIP=1",""))goto error;//開來電顯示
	if(!ATSetAC('1'))goto error;//切換到免提通道 提供振鈴
	if(!ATSetMic('0',"12"))goto error;//調(diào)節(jié)MIC增益
	if(!ATSetMic('1',"12"))goto error;//調(diào)節(jié)MIC增益
	
	//6.等待可以發(fā)送短消息了
	//print_line("短信初始化");
	//wait_time=120;//等待120秒
	//while(!at_wait_ack(100,AT_ACK_OK))
	//{
	//	at_send_command(AT_CMD_SMSCENTERNO,"?");
 	//	if(--wait_time==0)goto error;
 	//}
	//delay(5);
	
	//7.正確返回
	return;
	
	
error:
	print_line("失敗");
	at_reset=1;
}



//***********************************************************************************************************************
//函數(shù)作用:AT處理函數(shù)
//參數(shù)說明:
//注意事項:
//返回說明:
//***********************************************************************************************************************
void ATProcess(void)
{
	//初始化
	if(at_reset)ATInit();

	//接收數(shù)據(jù)分析
	ATAnalyse();
	
	//短信處理
	if(smsin)
	{
		smsin=0;
		print_line("GET A SMS");
		
		//判斷是否是自定義的有效命令
		if(sms_coding==8 && str_compare(at_receive_buffer,"4F60572854EA91CC"))
		{
			print_line("位置查詢短信");
			if(!gis_search(at_receive_buffer,gps_longti(),gps_lati()))//查找地圖
			{
				ATSendSMS(sms_no,at_receive_buffer,8);//發(fā)送應(yīng)答
				print_line("查詢成功");	
			}
			else
			{
				print_line("查詢失敗");	
			}
		}
		
	}
	//來電處理
	if(ring)
	{
		print_line("GET A CALL");
		
		//判斷是否是家人和朋友的號碼
		if(str_comprise(clip_no,"13389937509"))
		{
			ATAnswer();
			print_line("接聽監(jiān)聽電話");
		}
		else if(str_comprise(clip_no,"13332020931"))
		{
			ATAnswer();
			print_line("接聽監(jiān)聽電話");
		}
		else
		{
			ATHangup();mdelay(100);ATHangup();
			print_line("拒絕接聽");
		}
	}
}





?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美aⅴ...| www久久精品| 亚洲一区二区三区四区不卡| 99re这里只有精品视频首页| 日韩美女视频19| 欧美午夜电影一区| 蜜乳av一区二区| 精品国产乱码久久久久久免费 | 一区二区三区精密机械公司| 91看片淫黄大片一级| 亚洲午夜一区二区三区| 在线电影院国产精品| 经典三级一区二区| 中文字幕欧美区| 欧美伊人久久大香线蕉综合69 | 亚洲精品伦理在线| 欧美精品久久99久久在免费线| 日韩va亚洲va欧美va久久| 欧美va在线播放| 国产精品一区二区在线看| 国产精品久久免费看| 欧美日韩亚洲综合| 国产美女在线精品| 亚洲午夜久久久久久久久久久 | 亚洲一区二区美女| 欧美大片在线观看一区| 成人av中文字幕| 日韩二区在线观看| 中文字幕欧美三区| 欧美一卡二卡在线| 一本久道久久综合中文字幕 | 欧美在线不卡一区| 国内久久精品视频| 亚洲国产日韩在线一区模特| 精品福利一区二区三区| 91国偷自产一区二区使用方法| 麻豆精品国产传媒mv男同| 亚洲人成网站在线| 久久九九影视网| 欧美日韩国产一区| 成年人网站91| 韩国v欧美v日本v亚洲v| 亚洲高清在线视频| 中文字幕在线观看不卡| 日韩免费电影网站| 欧美亚洲另类激情小说| 成人深夜视频在线观看| 久久成人免费网| 亚洲成人三级小说| 亚洲欧美激情小说另类| 欧美精品一区二区三区久久久| 欧美日韩小视频| av爱爱亚洲一区| 国产一区久久久| 石原莉奈在线亚洲二区| 亚洲精品日韩一| 国产精品久线在线观看| 久久天天做天天爱综合色| 欧美一区二区三区在线观看视频| 一本大道综合伊人精品热热| 盗摄精品av一区二区三区| 麻豆91在线播放| 首页国产丝袜综合| 亚洲午夜视频在线观看| 亚洲欧美日韩国产中文在线| 国产精品久久久久久福利一牛影视 | 免费观看成人av| 亚洲电影你懂得| 亚洲午夜久久久| 亚洲国产一区二区视频| 一区二区三区在线视频观看| 亚洲精品中文字幕在线观看| 亚洲精品视频在线观看网站| 亚洲私人黄色宅男| 亚洲精品成人悠悠色影视| 成人欧美一区二区三区黑人麻豆| 中文字幕精品在线不卡| 国产精品乱子久久久久| 国产精品第一页第二页第三页| 国产视频一区二区在线观看| 国产蜜臀av在线一区二区三区| 国产女人18水真多18精品一级做| 中文字幕精品综合| 亚洲欧洲制服丝袜| 一区二区久久久久久| 亚洲国产精品久久一线不卡| 天堂在线亚洲视频| 久久国内精品视频| 国产精品一二二区| 91免费视频观看| 欧美日韩精品欧美日韩精品| 欧美猛男男办公室激情| 精品国产伦一区二区三区观看体验| 日韩午夜小视频| 国产亚洲综合色| 亚洲视频香蕉人妖| 亚洲国产视频直播| 国产精品自拍三区| 色呦呦日韩精品| 欧美福利视频一区| 久久久久久影视| 亚洲天堂a在线| 亚洲午夜久久久久久久久电影院 | 中文字幕第一页久久| 亚洲伦理在线免费看| 天天综合天天做天天综合| 精品中文字幕一区二区小辣椒| 国产成人精品午夜视频免费| 色综合久久久久久久| 欧美一区二区三区视频在线观看| 欧美精品一区男女天堂| 亚洲色图.com| 欧美a级一区二区| 欧美日韩激情一区二区| 日韩欧美一区二区在线视频| 国产精品久久久久久户外露出| 首页国产欧美日韩丝袜| 国产精品18久久久久久久网站| 91国偷自产一区二区使用方法| 欧美一区二区三区视频免费| 国产精品三级av| 日本欧洲一区二区| 91在线免费播放| 精品成a人在线观看| 亚洲精选一二三| 国产精品99久久久久久久女警| 在线观看免费亚洲| 久久久久久电影| 日韩精品电影一区亚洲| 91蜜桃免费观看视频| 欧美zozo另类异族| 亚洲国产精品久久人人爱| 成人午夜电影网站| 91精品国产一区二区三区蜜臀| 国产精品每日更新| 九九国产精品视频| 欧美日本一道本| 中文字幕一区日韩精品欧美| 另类专区欧美蜜桃臀第一页| 欧洲一区二区av| 国产精品传媒入口麻豆| 激情五月激情综合网| 91精品国产全国免费观看| 亚洲欧美aⅴ...| www..com久久爱| 久久久久成人黄色影片| 久久99热99| 91精品国产综合久久久久久 | 国产九色sp调教91| 91精品婷婷国产综合久久竹菊| 一区二区三区精品在线观看| 波多野结衣中文字幕一区| 久久久99精品免费观看| 激情综合色综合久久综合| 日韩一区二区三区精品视频| 午夜视频一区二区| 欧美日韩精品一区视频| 国产主播一区二区| 欧美xxxxx牲另类人与| 麻豆精品一区二区av白丝在线| 在线综合视频播放| 视频在线在亚洲| 欧美人妖巨大在线| 午夜精品久久久久久久| 91精选在线观看| 久久69国产一区二区蜜臀| 日韩一区二区三区四区五区六区| 五月综合激情日本mⅴ| 91精品国产综合久久久久久久久久 | 亚洲国产欧美在线| 欧美日韩在线不卡| 丝袜国产日韩另类美女| 日韩一区二区精品葵司在线| 免费久久精品视频| www国产成人| 成人一区二区三区中文字幕| 欧美国产97人人爽人人喊| 播五月开心婷婷综合| 自拍视频在线观看一区二区| 91免费看`日韩一区二区| 亚洲综合色婷婷| 欧美另类videos死尸| 蜜臀av性久久久久av蜜臀妖精| 日韩精品一区二区三区四区视频| 久久99国产精品免费网站| 久久久久久久av麻豆果冻| 99久久99久久精品免费看蜜桃| 亚洲男帅同性gay1069| 欧洲生活片亚洲生活在线观看| 午夜精品一区二区三区免费视频| 91精品国产综合久久久久久漫画 | 丝袜美腿亚洲综合| 精品日韩一区二区三区免费视频| 国产传媒久久文化传媒| 国产精品久久久久久久久免费丝袜| av电影在线观看不卡| 日韩精品欧美精品| 国产精品欧美一区二区三区| 日本国产一区二区| 韩国三级在线一区|