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

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

?? 9311fdr.c

?? 詳細(xì)介紹了arm7-at91r40008,的開(kāi)發(fā)全過(guò)程
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/*------------------------------------------------------------------*/
/*模塊名稱:9311fdr.c                                            	*/
/*模塊功能:電壓型饋線故障檢測(cè)	                           			*/
/*編寫(xiě)日期:2005年9月                                         		*/
/*編寫(xiě)者:  dingding												*/
/*------------------------------------------------------------------*/


#include "includes.h"
#include "9311fdr.h"



//全局變量
extern INT8U			TGSH;
extern BOOL				ACTING;
extern SOEtmp_t			*SOEtmp;
extern struct MyConfig	MyCfg;
extern struct SysConfig	SysCfg;
extern struct YCPara_t	YCPara;
extern INT16U			YKOnCounter;

extern OS_EVENT		*SemFA;
extern OS_EVENT		*SemFAOneS;

extern struct YCTempData	YCTemp[MAXYCFD];
extern INT16U		FDNum, FDOTHERYXNUM;
extern INT32U		*TempYc;
extern INT16U		TestCounter, ReCounter;
extern struct YKDelayMem	YKMem;
struct FdrFeeder_t 		*Fd;
struct FdrRunInfo_t		*FdrInfo;

//變量定義
#ifdef CHINESEINFO

char *FDRInfo[] = \
{"正常...", "失去電壓...", "進(jìn)入X時(shí)限...", "進(jìn)入Y時(shí)限...", "閉鎖..."};

char *FDRSwDo[] = \
{"重合", "跳開(kāi)", "閉鎖", "解鎖"};

#else

char *FDRInfo[] = \
{"Normal...", "Qualify NoU...", "X-Time...", "Y-Time...", "Lock Out..."};

char *FDRSwDo[] = \
{"Reclose", "Trip", "Lock", "Unlock"};

#endif


/*------------------------------------------------------------------*/
/*函數(shù)名稱:FDRTask()												*/
/*函數(shù)功能:電壓型故障檢測(cè)任務(wù)										*/
/*------------------------------------------------------------------*/
void FdrTask(struct SysPort *Info)
{
	BOOL	rc = FALSE;
	INT8U	i, err;
	INT16U	events;
	
	rc = FdrInit();
	if (!rc)
	{
		#ifdef CHINESEINFO
			ErrorInfo(FAID, "初始化故障檢測(cè)任務(wù)失敗...");
		#else
			ErrorInfo(FAID, "FA Task init failed");
		#endif		
		OSTaskDel(FAID);
	}
		
	while (1)
	{
		events = OSFlagPend(Info->Event, TIME100MS+FCOS+FYCRDY,
			OS_FLAG_WAIT_SET_ANY+OS_FLAG_CONSUME, 0, &err);	
		
		if (events & FCOS)
		{
			FdrRenewYx();
			FdrDetectYX();
		}
		
		if (events & FYCRDY)
		{
			
			FdrReadYc();
			FdrDetect();
			
			//延時(shí)遙控
			if (YKMem.Flag)
			{
				FdrSwitchDo(YKMem.No, YKMem.ON_OFF);
			}
		}
		
		if (events & TIME100MS)
		{
			//復(fù)位故障信息
			for (i=0; i<FDNum; i++)		
			{
				if (!(Fd[i].Flag & FDRENABLE))
					continue;
					
				if (FdrInfo[i].FaultInfo.ResetCounter)
				{
					FdrInfo[i].FaultInfo.ResetCounter--;
					if (FdrInfo[i].FaultInfo.ResetCounter == 0)
						FDRResetInfo(i+1);
				}
			}
		}
	}
}

/*------------------------------------------------------------------*/
/*函數(shù)名稱:FdrInit()												*/
/*函數(shù)功能:任務(wù)參數(shù)初始化											*/
/*------------------------------------------------------------------*/
BOOL FdrInit(void)
{
	INT8U	i, j, tmp, yxval;
	INT32U	tt;
//	INT8U	yxval[FASOFTBINUM];
	struct DBInfo	info;
		
	//申請(qǐng)內(nèi)存
	Fd = malloc (FDNum * sizeof(struct FdrFeeder_t));
	FdrInfo = malloc (FDNum *  sizeof(struct FdrRunInfo_t));	
	TempYc = malloc (FDNum *  sizeof(INT32U) * FDRYCNUM);
	if (!(FdrInfo && Fd && TempYc))
	{
		return (FALSE);
	}
	else
	{
		memset ((INT8U*)Fd, 0, (FDNum * sizeof(struct FdrFeeder_t)));
		memset ((INT8U*)FdrInfo, 0 , (FDNum * sizeof(struct FdrRunInfo_t)));
		memset ((INT8U*)TempYc, 0 , (FDNum * sizeof(INT32U) * FDRYCNUM));
	}
	
	//初始化參數(shù)
	for (i=0; i<FDNum; i++)
	{
		Fd[i].Flag = MyCfg.Fd[i].FdrFlag;
		if (MyCfg.Fd[i].Control & FDR_ENABLE)
			Fd[i].Flag |= FDRENABLE;
		else
			continue;
		
		tmp = (MyCfg.Fd[i].FdrTime & FDRMODEBITS) >> 6;
		switch (tmp)
		{
			case 0:
				Fd[i].Mode = FDRMODE1;
				break;
			
			case 1:
				Fd[i].Mode = FDRMODE2;
				break;
				
			case 2:
				Fd[i].Mode = FDRMODE3;
				break;
				
			case 3:
				Fd[i].Mode = FDRMODE4;
				break;
				
			default:
				return (FALSE);
		}
		
		Fd[i].Mode = Fd[i].Mode * 100 / FDRCRC;  
		Fd[i].XTime = Fd[i].Mode * (MyCfg.Fd[i].FdrTime & FDRTIMEBITS);
		if (Fd[i].XTime == 0)
			return (FALSE);
		Fd[i].YTime = YTIME / FDRCRC;
		Fd[i].ZTime = ZTIME / FDRCRC;
		Fd[i].ITime = ITIME / FDRCRC;
		
		
		Fd[i].SwYXNo = DEFBINUM * i + 0;
		Fd[i].SwYKNo = DEFYKNUM * i + SWYKNO;
		Fd[i].SwLocNo = DEFBINUM * i + SWLOCNO;
		Fd[i].YKLocNo = DEFYKNUM * i + SWLOCNO;
		
		//Fd[i].HZFAILTime = HZFAILTIME / FDRCRC;
		Fd[i].HZFAILTime = (MyCfg.Bo[Fd[i].SwYKNo-1].OnTime + 10) / FDRCRC;
		
		//參數(shù)沒(méi)有整定
		if (!SysCfg.ParaValid)
		{
			for (j=0; j<FDNum; j++)
				Fd[j].Flag &= ~FDRENABLE;
			
			#ifdef CHINESEINFO
				ErrorInfo(FAID, "遙測(cè)沒(méi)有整定,故障檢測(cè)失效");	
			#else
				ErrorInfo(FAID, "Yc para invalid, FA disable");
			#endif
			
			return (FALSE);
		}	
		
		tt = (YCPara.Value[i*10+0] * MyCfg.Ai[i*13+0].Xs2) / (MyCfg.Ai[i*13+0].Xs1);	//Uab
		tt = (tt * LOWULIMIT) / 2200;
		Fd[i].LowULimit = MyPow(tt, 2);
	}
	
	//運(yùn)行狀態(tài)初始化
	if (!FdrInitRunInfo())
		return (FALSE);
		
	//初始化輸出的故障遙信
	for (i=0; i<FDNum; i++)
	{
		
		info.DevID = ROOTID;
		info.Type = YXDATA;
		
		if (Fd[i].Flag & FDRENABLE)
		{
			yxval = YX_H;
			info.Start = FDOTHERYXNUM + FASOFTBINUM * i;
			info.Num = 1;
			DBWrite(&yxval, &info);
		}
		
		if (FdrInfo[i].FlagLoc)
		{
			yxval = YX_H;
			info.Start = FDOTHERYXNUM + FASOFTBINUM * i + 1;
			info.Num = 1;
			DBWrite(&yxval, &info);
		}		
	}	
	
	return (TRUE);
}

/*------------------------------------------------------------------*/
/*函數(shù)名稱:FdrInitRunInfo()										*/
/*函數(shù)功能:任務(wù)參數(shù)初始化子函數(shù),運(yùn)行狀態(tài)初始化					*/
/*------------------------------------------------------------------*/
BOOL FdrInitRunInfo(void)
{
	BOOL	rc;
	INT8U	i, j;
	struct DBInfo	info;
	
	//讀取遙信值
	rc = FdrRenewYx();
	if (!rc)
		return (FALSE);

	for (i=0; i<FDNum; i++)
	{
		if (!(Fd[i].Flag & FDRENABLE))
			continue;
		
		for (j=0; j<5; j++)
			FdrInfo[i].Timer[j] = 0;
		
		FdrInfo[i].State = 0xFF;
		FdrInfo[i].PreState = 0xF0;
				
		if (FdrInfo[i].SwLocVal == YX_H)
		{
			info.DevID = ROOTID;
			info.Type = FDRLOC;
			info.Num = i;
			DBRead(&j, &info);
			
			if (j == RESET_CLR)
				FdrInfo[i].FlagLoc = FALSE;
			else
				FdrInfo[i].FlagLoc = TRUE;
			
			FDRStateChange(i+1, RS_LOC);
		}
		else
		{
			FDRStateChange(i+1, RS_NORMAL);
		}
		
		FdrInfo[i].PreState = FdrInfo[i].State;
	}	
	
	return (TRUE);
}

/*------------------------------------------------------------------*/
/*函數(shù)名稱:FdrDetect()												*/
/*函數(shù)功能:故障檢測(cè),主函數(shù)完成對(duì)數(shù)據(jù)的判斷,進(jìn)行狀態(tài)轉(zhuǎn)換			*/
/*------------------------------------------------------------------*/
void FdrDetect(void)
{
	BOOL	rc;
	INT8U	type, status;
	INT16U	i, j;
	struct YcResult yc;
	//ceshi
	char err[60];
	
	for (i=0; i<FDNum; i++)
	{
		if (!(Fd[i].Flag & FDRENABLE))
			continue;
			
		if (Fd[i].XTime > Fd[i].Mode)
			j = Fd[i].XTime - Fd[i].Mode;
		else
			j = 0;
		j += ITIMESUM;
		type = Fd[i].Flag & FFDRSWTYPE;
		rc = FdrDetectLow(i+1, &yc);

		switch (FdrInfo[i].State)
		{
			case RS_NORMAL:
				if (rc)
				{
					switch (type)
					{
						case FDRTCONCT:
							if (!FdrInfo[i].Temp)
							{
								if (FdrInfo[i].SwYXVal == YX_H)
									FdrInfo[i].Temp = TRUE;
							}
							
							if (yc.FIn && yc.FOut)
							{
								FdrInfo[i].Timer[0]++;
								FdrInfo[i].Timer[1] = 0;
								if (FdrInfo[i].Timer[0] >= ITIME)
								{
									status = FDRTestValid(i+1, RS_NORMAL);
									FDRStateChange(i+1, status);
								}
							}
							else if (yc.FIn || yc.FOut)
							{
								FdrInfo[i].Timer[0] = 0;
								FdrInfo[i].Timer[1]++;
								
								if (FdrInfo[i].Temp && (FdrInfo[i].SwYXVal == YX_F))
								{
									FdrInfo[i].FaultInfo.Type = FDR_A;
									FdrInfo[i].FlagLoc = TRUE;
									FDRStateChange(i+1, RS_LOC);
								}
								
								if (FdrInfo[i].Timer[1] >= (ITIME * 2))
									FDRStateChange(i+1, RS_XTIME);
							}
								
							break;
							
						case FDRTCOMM:
						default:
							if (yc.FIn && yc.FOut)
							{
								FdrInfo[i].Timer[0]++;
								FdrInfo[i].Timer[1] = 0;
								if (FdrInfo[i].Timer[0] >= ITIME)
									FDRStateChange(i+1, RS_CRITICAL);
							}
							else if (yc.FIn || yc.FOut)
							{
								FdrInfo[i].Timer[0] = 0;
								FdrInfo[i].Timer[1]++;
								if (FdrInfo[i].Timer[1] >= ITIME)
								{
									status = FDRTestValid(i+1, RS_NORMAL);
									FDRStateChange(i+1, status);
								}
							}

							break;
					}
				}
				break;
			
			case RS_CRITICAL:
				if (!FdrInfo[i].Temp)
					FdrInfo[i].Timer[2]++;
				if (FdrInfo[i].Timer[2] >= Fd[i].ZTime)
				{
					FdrInfo[i].Temp = TRUE;
					FdrInfo[i].Timer[1] = 0;
					FdrInfo[i].Timer[2] = 0;
					if (FdrInfo[i].SwRelayVal == YX_H)
						FdrSwitchDo(Fd[i].SwYKNo, FALSE);
				}
				
				if (rc)
				{
					switch (type)
					{
						case FDRTCONCT:
							if (!(yc.FIn && yc.FOut))
							{
								FdrInfo[i].Timer[0]++;
								if (FdrInfo[i].Timer[0] >= ITIME)
								{
									FdrInfo[i].FaultInfo.Type = FDR_D;
									FdrInfo[i].FlagLoc = TRUE;
									FDRStateChange(i+1, RS_LOC);
								}
							}
							else
							{
								FdrInfo[i].Timer[0] = 0;
							}
							break;
														
						case FDRTCOMM:	
						default:
							if (yc.FIn ^ yc.FOut)
							{
								FdrInfo[i].Timer[0]++;
								FdrInfo[i].Timer[1] = 0;
								if (FdrInfo[i].Timer[0] >= 2)
									FDRStateChange(i+1, RS_XTIME);
							}
							else
							{
								FdrInfo[i].Timer[0] = 0;
								FdrInfo[i].Timer[1]++;
								if (FdrInfo[i].Timer[1] > Fd[i].ZTime)
								{
									FdrInfo[i].Timer[1] = 0;
									status = FDRTestValid(i+1, RS_CRITICAL);
									FDRStateChange(i+1, status);
								}
							}

							break;
					}
				}				
				break;
			
			case RS_XTIME:
				FdrInfo[i].Timer[0]++;
				
				if (rc)
				{
					switch (type)
					{
						case FDRTCONCT:
							if (yc.FIn && yc.FOut)
								FdrInfo[i].Timer[4]++;
							if (FdrInfo[i].Timer[4] > Fd[i].ZTime)
							{
								FdrInfo[i].FaultInfo.Type = FDR_D;
								FdrInfo[i].FlagLoc = TRUE;
								FDRStateChange(i+1, RS_LOC);
							}
							
							if ((!yc.FIn) && (!yc.FOut))
								FdrInfo[i].Temp = TRUE;
							
							if (FdrInfo[i].Temp)
							{
								FdrInfo[i].Timer[3]++;
								if (FdrInfo[i].Timer[3] < ITIMESUM)
								{
									if ((!yc.FIn) && (!yc.FOut))
									{
										FdrInfo[i].Timer[2]++;
									}
								}
								else
								{
									if (FdrInfo[i].Timer[2] <= Fd[i].ITime)
									{
										FdrInfo[i].Temp = FALSE;
										FdrInfo[i].Timer[1] = 0;
										FdrInfo[i].Timer[2] = 0;
										FdrInfo[i].Timer[3] = 0;
									}
								}
	
								if (FdrInfo[i].Timer[3] < Fd[i].Mode)
								{
									if (yc.FIn || yc.FOut)
										FdrInfo[i].Timer[1]++;
								}
								else
								{
									if ((FdrInfo[i].Timer[2] >= Fd[i].ITime) && (FdrInfo[i].Timer[1] > Fd[i].ZTime))
									{
										FdrInfo[i].FaultInfo.Type = FDR_F | FDR_X;
										FdrInfo[i].FlagLoc = TRUE;
										FDRStateChange(i+1, RS_LOC);
									}
								}
							}
							break;
							
						case FDRTCOMM:	
						default:
							if (FdrInfo[i].Timer[0] < ITIMESUM)
							{
								if (!(yc.FIn && yc.FOut))
								{
									FdrInfo[i].Timer[2]++;
								}
							}
							else
							{
								if (FdrInfo[i].Timer[2] <= Fd[i].ITime)
								{
									sprintf(err, "BUG:瞬間得壓為%d0ms...", FdrInfo[i].Timer[2]);
									ErrorInfo(FAID, err);
									FDRStateChange(i+1, RS_CRITICAL);
								}
							}

							if (FdrInfo[i].Timer[0] < Fd[i].Mode)
							{
								if (yc.FIn && yc.FOut)
									FdrInfo[i].Timer[1]++;
							
								if ((FdrInfo[i].Timer[2] >= Fd[i].ITime) && (FdrInfo[i].Timer[1] > Fd[i].ZTime))
								{
									FdrInfo[i].FaultInfo.Type = FDR_F | FDR_X;
									FDRStateChange(i+1, RS_LOC);
								}
							}
							
							if (FdrInfo[i].Timer[0] >= j)
							{
								if (yc.FIn && yc.FOut)
									FdrInfo[i].Timer[3]++;
								
								if (FdrInfo[i].Timer[3] > ITIMESUM)
								{
									FDRStateChange(i+1, RS_CRITICAL);
								}
							}
							
							break;
					}
				}
							
				if (FdrInfo[i].Timer[0] > Fd[i].XTime)
				{
					if (((Fd[i].Flag & FFDRDIR) && yc.FIn) || (!(yc.FIn || yc.FOut)))
					{
						//終止合閘動(dòng)作
						ErrorInfo(FAID, "BUG:兩側(cè)有壓(或參數(shù)禁止),合閘閉鎖...");
						FdrInfo[i].FaultInfo.Type = FDR_D;
						FdrInfo[i].FlagLoc = TRUE;
						FDRStateChange(i+1, RS_LOC);
					}
					else
					{
						FdrSwitchDo(Fd[i].SwYKNo, TRUE);
						FDRStateChange(i+1, RS_YTIME);
					}
				}
				break;
				
			case RS_YTIME:
				FdrInfo[i].Timer[0]++;
				if (FdrInfo[i].SwYXVal == YX_H)
				{
					FdrInfo[i].Timer[0] += Fd[i].HZFAILTime;
					FdrInfo[i].Temp = TRUE;
				}
				
				if (FdrInfo[i].Timer[0] == Fd[i].HZFAILTime)
				{
					FdrInfo[i].Timer[0] += Fd[i].HZFAILTime;
					FdrInfo[i].Temp = TRUE;
					
					if (FdrInfo[i].SwYXVal != YX_H)
					{
						ErrorInfo(FAID, "BUG:合閘失敗,撤銷閉鎖...");
						FdrSwitchDo(Fd[i].SwYKNo, FALSE);
						FdrInfo[i].FaultInfo.Type = FDR_E;
						FdrInfo[i].FlagLoc = TRUE;
						FDRStateChange(i+1, RS_LOC);
					}
				}
				else
				{
					FdrInfo[i].Timer[0]--;
				}
				
				if (rc)
				{
					if (((!yc.FIn) && (!yc.FOut)) || (FdrInfo[i].SwYXVal == YX_H))
						FdrInfo[i].Temp = TRUE;
						
					if (FdrInfo[i].Temp)
					{
						FdrInfo[i].Timer[1]++;
						if (yc.FIn && yc.FOut)
						{
							FdrInfo[i].Timer[2]++;
						}
					}
				}
				
				if (FdrInfo[i].Timer[2] > Fd[i].ZTime)
				{
					FdrInfo[i].FaultInfo.Type = FDR_F | FDR_Y;
					FdrInfo[i].FlagLoc = TRUE;
					FDRStateChange(i+1, RS_LOC);
				}
					
				if (FdrInfo[i].Timer[1] > Fd[i].YTime)
				{
					FDRStateChange(i+1, RS_NORMAL);
				}
				break;
				
			case RS_LOC:
				if (rc)
				{
					switch (type)
					{
						case FDRTCONCT:
							if (!FdrInfo[i].FlagLoc)
								continue;
							
							if ((!yc.FIn) && (!yc.FOut))
								FdrInfo[i].Temp = TRUE;
							
							if (FdrInfo[i].Temp)
							{

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩视频在线第一区 | 国产a区久久久| 精品国产三级电影在线观看| 美脚の诱脚舐め脚责91| 欧美一区二区三区视频免费| 奇米777欧美一区二区| 日韩精品影音先锋| 国产精品123| 亚洲欧洲另类国产综合| 在线看不卡av| 蜜桃久久精品一区二区| 久久伊人中文字幕| 99国产欧美久久久精品| 亚洲一区二区精品久久av| 欧美丰满美乳xxx高潮www| 开心九九激情九九欧美日韩精美视频电影 | 狠狠色综合日日| 日本一区二区高清| 欧美午夜精品一区二区蜜桃| 日韩电影免费在线看| 久久女同精品一区二区| 日本国产一区二区| 精品一区二区三区免费播放| 国产精品灌醉下药二区| 欧美日韩一二三| 东方欧美亚洲色图在线| 亚洲午夜免费电影| 国产欧美一区在线| 制服丝袜激情欧洲亚洲| 国产成人精品三级| 婷婷久久综合九色综合绿巨人| 久久无码av三级| 精品视频资源站| 国产激情一区二区三区| 亚洲成人动漫一区| 亚洲视频在线观看三级| 日韩一区二区免费在线观看| 99久久久免费精品国产一区二区| 日韩成人av影视| 国产精品久久久久久户外露出| 91麻豆精品国产91久久久久 | 综合激情成人伊人| 日韩欧美一二三区| 91国模大尺度私拍在线视频| 国产一区二区影院| 日韩av午夜在线观看| 亚洲欧洲另类国产综合| 久久女同互慰一区二区三区| 欧美日韩国产区一| 91黄色免费网站| 成av人片一区二区| 精品伊人久久久久7777人| 亚洲午夜日本在线观看| 亚洲视频网在线直播| 久久久一区二区三区| 91精品国产综合久久精品图片 | 99re亚洲国产精品| 国产精品主播直播| 久久精品国产澳门| 视频一区视频二区在线观看| 亚洲精品免费播放| 国产精品久久久久久亚洲伦| 久久众筹精品私拍模特| 日韩一区二区三区精品视频| 欧美日韩国产一级| 欧美日韩的一区二区| 欧美在线免费观看亚洲| 色综合天天综合色综合av| 国产成人av福利| 国产精品综合一区二区三区| 极品销魂美女一区二区三区| 日韩影院在线观看| 日韩精品成人一区二区三区| 亚洲二区视频在线| 亚洲高清不卡在线观看| 午夜精品久久久久久久久| 亚洲图片欧美色图| 亚洲成人精品一区| 奇米影视一区二区三区小说| 天天色天天爱天天射综合| 偷窥少妇高潮呻吟av久久免费| 亚洲一区二区高清| 天堂一区二区在线| 蜜臀av性久久久久蜜臀aⅴ| 日本成人在线一区| 激情六月婷婷久久| 国产一区二区福利视频| 国产 欧美在线| 99在线热播精品免费| 色系网站成人免费| 欧美人狂配大交3d怪物一区| 这里只有精品视频在线观看| 欧美一级日韩一级| 久久久久九九视频| 亚洲人xxxx| 亚洲1区2区3区视频| 日韩精品一级二级| 激情文学综合网| 不卡的av网站| 欧美性大战久久久| 日韩欧美中文字幕制服| 久久久亚洲欧洲日产国码αv| 国产精品少妇自拍| 亚洲高清在线视频| 韩国三级电影一区二区| 99久久免费国产| 欧美精品乱码久久久久久按摩 | 中文字幕av在线一区二区三区| 亚洲国产成人在线| 亚洲国产日韩在线一区模特| 日本不卡不码高清免费观看| 国产成人免费av在线| 91国产丝袜在线播放| 精品福利av导航| 亚洲婷婷在线视频| 免费一级片91| 91丨porny丨最新| 欧美电视剧免费观看| 国产精品久久久久三级| 日本色综合中文字幕| 国产99久久精品| 欧美精品v国产精品v日韩精品 | 一本一道综合狠狠老| 欧美一区二区视频免费观看| 欧美国产精品专区| 青青草91视频| 欧美亚洲愉拍一区二区| 精品国产精品网麻豆系列| 亚洲免费观看高清完整版在线观看| 日韩国产一二三区| 91蜜桃免费观看视频| 久久久久综合网| 日韩精品久久久久久| 色婷婷综合视频在线观看| 精品免费国产一区二区三区四区| 亚洲美女屁股眼交| 国产成人av一区| 精品国产乱码久久久久久久久| 亚洲一区二区欧美日韩| 99久精品国产| 国产日韩亚洲欧美综合| 日本不卡1234视频| 欧美三级三级三级爽爽爽| 日韩一区在线免费观看| 国产一区二区视频在线播放| 欧美日本视频在线| 一区二区免费在线| av动漫一区二区| 国产日产欧美一区| 久久国产精品99精品国产| 欧美日韩一级片网站| 洋洋成人永久网站入口| jlzzjlzz欧美大全| 欧美极品少妇xxxxⅹ高跟鞋| 久久精品国产**网站演员| 7777精品伊人久久久大香线蕉完整版 | 亚洲精品综合在线| 99精品视频在线免费观看| 国产日韩欧美电影| 激情小说欧美图片| 久久综合九色综合97_久久久| 麻豆精品久久久| 日韩欧美国产系列| 蜜芽一区二区三区| 日韩三级精品电影久久久| 日本人妖一区二区| 欧美一级爆毛片| 久久99日本精品| 欧美精品一区二区不卡| 久久99精品国产麻豆婷婷| 日韩精品一区国产麻豆| 日av在线不卡| 精品处破学生在线二十三| 久久成人久久爱| 久久久噜噜噜久噜久久综合| 国产精品一区在线观看你懂的| 久久综合给合久久狠狠狠97色69| 精品制服美女丁香| 国产亚洲精品福利| 成人h动漫精品一区二| 椎名由奈av一区二区三区| 一本一本大道香蕉久在线精品 | 欧美男女性生活在线直播观看| 亚洲一本大道在线| 制服丝袜中文字幕一区| 九九精品视频在线看| 国产亚洲综合av| 91在线云播放| 日韩精品成人一区二区三区| 精品国产区一区| 不卡在线视频中文字幕| 亚洲高清免费观看| 26uuu欧美| 91麻豆福利精品推荐| 亚洲一卡二卡三卡四卡五卡| 日韩午夜激情av| 成人午夜视频在线| 亚洲成人免费av| 亚洲精品一区在线观看| www.亚洲免费av|