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

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

?? 9311fdr.c

?? 詳細(xì)介紹了arm7-at91r40008,的開發(fā)全過(guò)程
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/*------------------------------------------------------------------*/
/*模塊名稱:9311fdr.c                                            	*/
/*模塊功能:電壓型饋線故障檢測(cè)	                           			*/
/*編寫日期:2005年9月                                         		*/
/*編寫者:  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[] = \
{"重合", "跳開", "閉鎖", "解鎖"};

#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一区二区三区免费野_久草精品视频
欧美精品久久久久久久久老牛影院 | 天堂一区二区在线| 日韩欧美国产不卡| 精品免费视频.| 久久www免费人成看片高清| 精品国产伦一区二区三区免费 | 91.成人天堂一区| 日本中文一区二区三区| 精品少妇一区二区三区日产乱码 | 极品少妇xxxx精品少妇| 久久奇米777| 91尤物视频在线观看| 亚洲一区二区三区精品在线| 日韩免费在线观看| 成人夜色视频网站在线观看| 一区二区三区欧美在线观看| 欧美一区二区网站| 成人免费黄色大片| 偷拍自拍另类欧美| 国产亚洲一区二区三区在线观看 | 国产麻豆成人传媒免费观看| 国产精品麻豆欧美日韩ww| 在线观看www91| 美女mm1313爽爽久久久蜜臀| 中文字幕制服丝袜成人av| 欧美视频在线观看一区| 国产一区二区免费在线| 一区二区三区精品视频在线| 精品黑人一区二区三区久久 | 亚洲尤物在线视频观看| 久久久久综合网| 精品亚洲欧美一区| 国产精品久久久久aaaa樱花 | 欧美色手机在线观看| 成人av免费网站| 成人丝袜18视频在线观看| 国产美女主播视频一区| 国内精品免费**视频| 久久99精品久久久久久国产越南 | 色网站国产精品| 色综合一区二区| 色婷婷综合激情| 欧洲亚洲国产日韩| 欧美婷婷六月丁香综合色| 欧美在线观看视频在线| 欧美视频一区在线观看| 9191国产精品| 日韩三级.com| 久久久久久电影| 国产精品天美传媒沈樵| 国产精品盗摄一区二区三区| 中文字幕一区二区三区不卡| 亚洲伦在线观看| 亚洲一二三区视频在线观看| 天堂影院一区二区| 欧美日韩一级二级三级| 玉足女爽爽91| 一区二区三区中文免费| 午夜婷婷国产麻豆精品| 日韩高清在线电影| 国产真实乱对白精彩久久| 国产不卡免费视频| 91久久精品国产91性色tv| 欧美三级视频在线播放| 91麻豆精品国产91久久久久久久久| 欧美成人性福生活免费看| 国产精品婷婷午夜在线观看| 一区二区三区精密机械公司| 日韩高清一区二区| 丰满少妇久久久久久久| 日本韩国欧美在线| 精品久久久久久亚洲综合网| 国产精品久久看| 亚洲国产精品久久人人爱| 免费成人在线观看| 成人性视频网站| 欧美人与z0zoxxxx视频| 国产三级一区二区| 亚洲小说欧美激情另类| 国产精品一区二区久久不卡 | 欧美成人免费网站| 国产精品动漫网站| 日韩精品一卡二卡三卡四卡无卡 | 欧美日韩精品二区第二页| 久久亚洲私人国产精品va媚药| 一区二区三区欧美久久| 国产精品免费免费| 欧美日韩dvd在线观看| 精品国产乱码久久| 亚洲精品一卡二卡| 精品系列免费在线观看| 在线免费观看一区| 日本一区免费视频| 视频一区中文字幕| 91免费在线看| 欧美经典一区二区| 日本sm残虐另类| 欧美在线观看一二区| 国产农村妇女毛片精品久久麻豆| 日本一道高清亚洲日美韩| 97久久超碰国产精品电影| 久久色视频免费观看| 图片区小说区国产精品视频| 91在线观看污| 国产日韩欧美不卡| 玖玖九九国产精品| 欧美群妇大交群中文字幕| 中文字幕亚洲电影| 国产美女视频一区| 日韩一区二区在线免费观看| 亚洲一区在线观看免费观看电影高清| 国产精品66部| 欧美成人三级电影在线| 视频在线观看91| 欧美日韩国产高清一区二区三区 | 日韩av成人高清| 在线一区二区三区四区| 中文字幕色av一区二区三区| 国产一区二区中文字幕| 欧美一区二区精品在线| 亚洲成人av在线电影| 日本乱人伦aⅴ精品| 18欧美亚洲精品| 成人午夜在线视频| 国产免费成人在线视频| 国产精品一区久久久久| 欧美xingq一区二区| 免费成人结看片| 日韩欧美在线影院| 日本vs亚洲vs韩国一区三区二区| 欧美精品粉嫩高潮一区二区| 丝袜国产日韩另类美女| 欧美区在线观看| 免费三级欧美电影| 日韩欧美一区二区不卡| 蜜臀91精品一区二区三区| 日韩一区二区三区四区五区六区| 日韩av高清在线观看| 91精品国产91综合久久蜜臀| 日韩电影在线免费观看| 日韩免费成人网| 国内一区二区在线| 国产欧美一区二区三区在线老狼| 高清日韩电视剧大全免费| 国产精品电影一区二区| 色婷婷久久一区二区三区麻豆| 国产精品影音先锋| 久久精品视频网| 99国产一区二区三精品乱码| 一级日本不卡的影视| 在线不卡a资源高清| 激情综合色综合久久| 欧美日韩精品一区二区| 日韩精品免费专区| 日韩亚洲欧美综合| 国产精品乡下勾搭老头1| 国产精品视频你懂的| 在线免费观看日韩欧美| 视频在线观看一区| 久久久久国产成人精品亚洲午夜| 久久综合网色—综合色88| 国产一区二区按摩在线观看| 中文字幕精品一区二区精品绿巨人| 91视频国产观看| 欧美a级理论片| 国产网站一区二区三区| 91污片在线观看| 免费观看久久久4p| 中文在线资源观看网站视频免费不卡| 一本久久精品一区二区| 免费在线看一区| 国产精品欧美综合在线| 欧美丝袜丝交足nylons| 国产精品一区二区三区网站| 一二三四社区欧美黄| 精品国产91洋老外米糕| 色婷婷综合视频在线观看| 美国毛片一区二区三区| 中文字幕高清不卡| 91精品国产综合久久国产大片 | 国产一区二区三区久久久| 亚洲久草在线视频| 精品久久久久香蕉网| 色哟哟国产精品| 国产精品自在欧美一区| 亚洲一区二区三区三| 久久精品综合网| 欧美乱妇一区二区三区不卡视频| 成人精品国产免费网站| 奇米影视一区二区三区小说| 亚洲男同1069视频| 久久久亚洲国产美女国产盗摄| 欧美午夜精品免费| 国产xxx精品视频大全| 日韩高清不卡一区| 亚洲欧美福利一区二区| 2017欧美狠狠色| 91精品综合久久久久久| 91在线播放网址| 国产成人精品一区二区三区四区|