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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 9311fdr.c

?? 詳細介紹了arm7-at91r40008,的開發全過程
?? C
?? 第 1 頁 / 共 2 頁
字號:
								FdrInfo[i].Timer[0]++;
								if ((!yc.FIn) && (!yc.FOut))
									FdrInfo[i].Timer[1]++;
									
								if (FdrInfo[i].Timer[0] > Fd[i].YTime)
								{
									if (FdrInfo[i].Timer[1] >= Fd[i].YTime * 9 / 10)
									{
										FdrSwitchDo(Fd[i].YKLocNo, FALSE);
										FdrInfo[i].FlagLoc = FALSE;
										FDRStateChange(i+1, RS_NORMAL);
									}
									else
									{
										FdrInfo[i].Temp = 0;
										for(j=0; j<5; j++)
											FdrInfo[i].Timer[j] = 0;
									}
								}
							}
							break;
							
						case FDRTCOMM:	
						default:

							break;
					}
				}
				break;
		}
	}

}

/*------------------------------------------------------------------*/
/*函數名稱:FdrDetectYX()											*/
/*函數功能:處理遙信變化											*/
/*------------------------------------------------------------------*/
void FdrDetectYX(void)
{
	INT8U	i, j, rc;
	
	for (i=0; i<FDNum; i++)
	{
		if (!(Fd[i].Flag & FDRENABLE))
			continue;
	
		for (j=0; j<3; j++)
		{
			rc = 0x01<<j;
			if (FdrInfo[i].COSFlag & rc)
			{
				FdrInfo[i].COSFlag ^= rc;
				rc = FDRTestValid(i+1, FdrInfo[i].State);
				FDRStateChange(i+1, rc);
			}
		}

	}
	
}

/*------------------------------------------------------------------*/
/*函數名稱:StateChange()											*/
/*函數功能:狀態轉換,完成相關狀態下操作,打印系統信息				*/
/*------------------------------------------------------------------*/
void FDRStateChange(WORD FDIndex, WORD State)
{
	INT8U	j;
	char	errbuf[60];
	struct SysTime_t SystemTime;
	struct DBInfo	info;
		
	memset (errbuf, 0, 60);
	if (FdrInfo[FDIndex-1].State == State)
		return;	

	info.DevID = ROOTID;
	info.Type = FDRLOC;
	info.Num = FDIndex-1;
	if (FdrInfo[FDIndex-1].FlagLoc)
		j = RESET_RETAIN;
	else
		j = RESET_CLR;
	DBWrite(&j, &info);
	
	GetTime((void *)&SystemTime, SYSTIME);

	#ifdef CHINESEINFO
		sprintf(errbuf, "%04d-%02d-%02d %02d:%02d:%02d:%03d 線路 %d %s", SystemTime.Year, SystemTime.Month, SystemTime.Day, SystemTime.Hour,SystemTime.Minute, SystemTime.Second, SystemTime.MSecond, FDIndex, FDRInfo[State]);
	#else
		sprintf(errbuf, "%04d-%02d-%02d %02d:%02d:%02d:%03d FD %d %s", SystemTime.Year, SystemTime.Month, SystemTime.Day, SystemTime.Hour,SystemTime.Minute, SystemTime.Second, SystemTime.MSecond, FDIndex, FDRInfo[State]);	
	#endif

	ErrorInfo(FAID, errbuf);
	
	//寫故障信息
	GetTime((void *)&FdrInfo[FDIndex-1].FaultInfo.Time, ABSTIME);
	FDRWriteInfo(FDIndex);
			
	switch (State)
	{
		case RS_NORMAL:

			break;
				
		case RS_CRITICAL:
	
			break;
				
		case RS_XTIME:
	
			break;
				
		case RS_YTIME:
			break;
				
		case RS_LOC:
			if (FdrInfo[FDIndex-1].SwLocVal == YX_F)
			{
				if (FdrInfo[FDIndex-1].SwRelayVal == YX_H)
					FdrSwitchDo(Fd[FDIndex-1].SwYKNo, FALSE);
			
				FdrSwitchDo(Fd[FDIndex-1].YKLocNo, TRUE);
			}
			break;
	
	}
	
	if (FdrInfo[FDIndex-1].State == RS_LOC)
		FdrInfo[FDIndex-1].FlagLoc = FALSE;
		
	FdrInfo[FDIndex-1].State = State;
	FdrInfo[FDIndex-1].PreState = State;
	FdrInfo[FDIndex-1].Temp = FALSE;
	for(j=0; j<5; j++)
		FdrInfo[FDIndex-1].Timer[j] = 0;
}


/*------------------------------------------------------------------*/
/*函數名稱:FdrRenewYx()											*/
/*函數功能:讀取數據庫遙信,更新實時遙信值							*/
/*輸入說明:														*/
/*輸出說明:														*/
/*------------------------------------------------------------------*/
BOOL FdrRenewYx(void)
{
	BOOL	rc;
	INT8U	i, dd[16];
	struct DBInfo	info;

	info.DevID = ROOTID;
	info.Type = YXDATA;
	info.Start = 0;
	info.Num = MyCfg.BINum;
	rc =DBRead(dd, &info);
	if (!rc)
		return (FALSE);

	for (i=0; i<FDNum; i++)
	{
		if (FdrInfo[i].SwYXVal != dd[DEFBINUM * i + 0])
		{
			FdrInfo[i].COSFlag |= 0x01;
			FdrInfo[i].SwYXVal = dd[DEFBINUM * i + 0];
		}
		if (FdrInfo[i].SwRelayVal != dd[DEFBINUM * i + YXRELAYNO])
		{
//			FdrInfo[i].COSFlag |= 0x02;
			FdrInfo[i].SwRelayVal = dd[DEFBINUM * i + YXRELAYNO];
		}
		if (FdrInfo[i].SwLocVal != dd[DEFBINUM * i + YXLOCNO])
		{
			FdrInfo[i].COSFlag |= 0x04;
			FdrInfo[i].SwLocVal = dd[DEFBINUM * i + YXLOCNO];
		}
	}

	return (TRUE);
}

/*------------------------------------------------------------------*/
/*函數名稱:FdrDetectU()											*/
/*函數功能:檢測是否失壓											*/
/*輸入說明:FDIndex--饋線號											*/
/*輸出說明:兩相電壓判斷值,得壓FALSE,失壓TRUE						*/
/*------------------------------------------------------------------*/
BOOL FdrDetectLow(INT16U FDIndex, struct YcResult *Rc)
{
	INT8U	i;
	
	if ((FDIndex > FDNum) || (FDIndex == 0))
		return FALSE;
	
	i = FDIndex - 1;
	
	if (TempYc[i*FDRYCNUM + 0] >= Fd[i].LowULimit)
		Rc->FIn = FALSE;
	else
		Rc->FIn = TRUE;
		
	if (TempYc[i*FDRYCNUM + 1] >= Fd[i].LowULimit)
		Rc->FOut = FALSE;
	else
		Rc->FOut = TRUE;	

	return (TRUE);
}

/*------------------------------------------------------------------*/
/*函數名稱:FdrSwitchDo()											*/
/*函數功能:完成開關動作,合/分,延時保證命令的執行					*/
/*------------------------------------------------------------------*/
void FdrSwitchDo(INT8U No, BOOL ON_OFF)
{
	BOOL	bSuccess;
	INT8U	i;
	char	errbuf[60];
	struct SysTime_t SystemTime;
	
	if (YKOnCounter || ACTING)
	{
		YKMem.No = No;
		YKMem.ON_OFF = ON_OFF;
		YKMem.Flag = TRUE;
		return ;
	}
	else
		memset (&YKMem, 0, sizeof (struct YKDelayMem));

	//開關動作
	bSuccess = YKSet(No, ON_OFF, 0);
	if(bSuccess)
		bSuccess = YKExe(No, ON_OFF, 0);
			
	memset (errbuf, 0, 60);
	GetTime((void *)&SystemTime, SYSTIME);
	
	if ((No % DEFYKNUM) == SWLOCNO)
	{
		if (ON_OFF)
			i = 2;
		else
			i = 3;
	}
	else
	{
		if (ON_OFF)
			i = 0;
		else
			i = 1;		
	}
	

	#ifdef CHINESEINFO
		if (bSuccess)
		{
			sprintf(errbuf, "%04d-%02d-%02d %02d:%02d:%02d:%03d 線路 %d %s成功(遙控號 = %d)", SystemTime.Year, SystemTime.Month, SystemTime.Day, SystemTime.Hour,SystemTime.Minute, SystemTime.Second, SystemTime.MSecond, No/DEFYKNUM+1, FDRSwDo[i], No);
		}
		else
		{
			sprintf(errbuf, "%04d-%02d-%02d %02d:%02d:%02d:%03d 線路 %d %s失敗(遙控號 = %d)", SystemTime.Year, SystemTime.Month, SystemTime.Day, SystemTime.Hour,SystemTime.Minute, SystemTime.Second, SystemTime.MSecond, No/DEFYKNUM+1, FDRSwDo[i], No);
		}
	#else
		if (bSuccess)
		{
			sprintf(errbuf, "%04d-%02d-%02d %02d:%02d:%02d:%03d FD %d %s Success(YKNO = %d)", SystemTime.Year, SystemTime.Month, SystemTime.Day, SystemTime.Hour,SystemTime.Minute, SystemTime.Second, SystemTime.MSecond, No/DEFYKNUM+1, FDRSwDo[i], No);	
		}
		else
		{
			sprintf(errbuf, "%04d-%02d-%02d %02d:%02d:%02d:%03d FD %d %s Fail(YKNO = %d)", SystemTime.Year, SystemTime.Month, SystemTime.Day, SystemTime.Hour,SystemTime.Minute, SystemTime.Second, SystemTime.MSecond, No/DEFYKNUM+1, FDRSwDo[i], No);	
		}
	#endif

	ErrorInfo(FAID, errbuf);
}

/*------------------------------------------------------------------*/
/*函數名稱:FdrReadYc(void)											*/
/*函數功能:讀取相應的中間遙測值									*/
/*------------------------------------------------------------------*/
void FdrReadYc(void)
{
	INT8U	i, j;
	
	for (i=0; i<FDNum; i++)
	{
		if (Fd[i].Flag & FFDRDIRACT)
		{
			TempYc[i*FDRYCNUM + 0] = YCTemp[i].FData[1].Rms2;
			TempYc[i*FDRYCNUM + 1] = YCTemp[i].FData[0].Rms2;
		}
		else
		{
			for (j=0; j<2; j++)
			{
				TempYc[i*FDRYCNUM + j] = YCTemp[i].FData[j].Rms2;
			}
		}
	}
}

/*------------------------------------------------------------------*/
/*函數名稱:FDRTestValid(void)										*/
/*函數功能:判斷開關邏輯有效型(輔助功能)							*/
/*------------------------------------------------------------------*/
INT8U FDRTestValid(INT16U FDIndex, INT8U Status)
{
	INT8U	i;
	INT8U	type, rc;
	struct YcResult yc;
	
	i = FDIndex - 1;
	rc = 0xFF;
	FdrReadYc();
	FdrDetectLow(FDIndex, &yc);
	type = Fd[i].Flag & FFDRSWTYPE;
	
	if (FdrInfo[i].SwLocVal == YX_H)
	{
		FdrInfo[i].FaultInfo.Type = FDR_A;
		rc = RS_LOC;
	}
	else
	{
		switch (FdrInfo[i].State)
		{
			case RS_NORMAL:
			case RS_CRITICAL:
			case RS_XTIME:
				switch (type)
				{
					case FDRTCONCT:
						if ((!yc.FIn) && (!yc.FOut))
						{
							rc = RS_NORMAL;
						}
						else if (yc.FIn && yc.FOut)
						{
							rc = RS_CRITICAL;
						}
						else
						{
							FdrInfo[i].FaultInfo.Type = FDR_A;
							FdrInfo[i].FlagLoc = TRUE;
							rc = RS_LOC;
						}
						break;
						
					case FDRTCOMM:
					default:	
						if ((!yc.FIn) && (!yc.FOut))
						{
							if (FdrInfo[i].SwYXVal == YX_H)
							{
								rc = RS_NORMAL;
							}
							else
							{
								FdrInfo[i].FaultInfo.Type = FDR_D;
								rc = RS_LOC;
							}
						}
						else if (yc.FIn && yc.FOut)
						{
							rc = RS_CRITICAL;
						}
						else
						{
							if (FdrInfo[i].SwYXVal == YX_H)
							{
								//err
							}
							else
							{
								rc = RS_XTIME;
							}
						}
						break;
				}
				break;
			
			case RS_YTIME:
				rc = Status;
				break;
				
			case RS_LOC:
					if ((!yc.FIn) && (!yc.FOut))
					{
						rc = RS_NORMAL;
					}
					else if (yc.FIn && yc.FOut)
					{
						rc = RS_CRITICAL;
					}
					else
					{
						rc = RS_XTIME;
					}
					
				break;
			
			default:
				rc = Status;
				break;
		}
	}	
		
		
		
/*
	else if (FdrInfo[i].SwYXVal == YX_H)
	{
		if (FdrInfo[i].SwRelayVal == YX_H)
		{
			rc = RS_YTIME;
		}
		else
		{
			//err
		}
	}
	else
	{
		switch (type)
		{
			case FDRTCONCT:
				if ((!yc.FIn) && (!yc.FOut))
				{
					rc = RS_NORMAL;
				}
				else if (yc.FIn && yc.FOut)
				{
					rc = RS_CRITICAL;
				}
				else
				{
					if (Status == RS_LOC)
					{
						rc = RS_XTIME;
					}
					else
					{
						FdrInfo[i].FaultInfo.Type = FDR_A;
						FdrInfo[i].FlagLoc = TRUE;
						rc = RS_LOC;
					}
		
				}
				break;
				
			case FDRTCOMM:
			default:
				if ((!yc.FIn) && (!yc.FOut))
				{
					if (FdrInfo[i].SwYXVal == YX_H)
					{
						rc = RS_NORMAL;
					}
					else
					{
						if (Status == RS_LOC)
							rc = RS_NORMAL;
						else
						{
							FdrInfo[i].FaultInfo.Type = FDR_E;
							rc = RS_LOC;
						}
					}
				}
				else if ((!yc.FIn) || (!yc.FOut))
				{
					if (FdrInfo[i].SwYXVal == YX_H)
					{
						//err
					}
					else
					{
						rc = RS_XTIME;
					}
				}
				else
				{
					rc = RS_CRITICAL;
				}
				break;
		}
	}
*/	
	
	//err
	if (rc == 0xFF)
	{
		if (FdrInfo[i].PreState != rc)
		{
			ErrorInfo(FAID, "BUG:邏輯錯誤!請立即處理...");
			FdrInfo[i].FaultInfo.Type = FDR_E;
			FdrInfo[i].PreState = rc;
		}
		rc = Status;
	}
	else if (rc != Status)
	{
		ErrorInfo(FAID, "BUG:時序轉換...");
		FdrInfo[i].PreState = rc;
	}
	
	return (rc);
}

/*------------------------------------------------------------------*/
/*函數名稱:FDRWriteInfo()										*/
/*函數功能:寫故障遙信												*/
/*------------------------------------------------------------------*/
void FDRWriteInfo(INT16U FDIndex)
{
	BOOL	rc = FALSE;
	INT8U	i;
	INT16U	SoftBINo;
	
	i = FDIndex-1;
	
	if (FdrInfo[i].FaultInfo.Type == 0)
		return;
	
	FDRResetInfo(FDIndex);
	FdrInfo[i].FaultInfo.BakType = FdrInfo[i].FaultInfo.Type;
	FdrInfo[i].FaultInfo.ResetCounter = FDRRESETTIME;
	
	SoftBINo = FDRGetSoftBINo((INT16U*)&FdrInfo[i].FaultInfo.Type);
	while (SoftBINo)
	{
		SOE[HEAD].No = FDOTHERYXNUM + (i * FASOFTBINUM) + SoftBINo;
		SOE[HEAD].Status =  YX_H;
		SOE[HEAD].Time = FdrInfo[i].FaultInfo.Time;
		HEAD++;
		if (HEAD >= SOE_NUM_TMP)
			HEAD = 0;
		rc = TRUE;
				
		SoftBINo = FDRGetSoftBINo((INT16U*)&FdrInfo[i].FaultInfo.Type);
	}
	
	if (rc)
		SOETask(ROOTID, TRUE);
}

/*------------------------------------------------------------------*/
/*函數名稱:FDRResetInfo()										*/
/*函數功能:復位故障遙信											*/
/*------------------------------------------------------------------*/
void FDRResetInfo(INT16U FDIndex)
{
	BOOL	rc = FALSE;
	INT8U	i;
	INT16U	SoftBINo;
	struct AbsTime_t Time;
	
	i = FDIndex - 1;
	
	if (FdrInfo[i].FaultInfo.BakType == 0)
		return;
	FdrInfo[i].FaultInfo.ResetCounter = 0;
	
	SoftBINo = FDRGetSoftBINo((INT16U*)&FdrInfo[i].FaultInfo.BakType);
	while (SoftBINo)
	{
		SOE[HEAD].No = FDOTHERYXNUM + (i * FASOFTBINUM) + SoftBINo;
		SOE[HEAD].Status =  YX_F;
		GetTime((void *)&Time, ABSTIME);
		SOE[HEAD].Time = Time;
		HEAD++;
		if (HEAD >= SOE_NUM_TMP)
			HEAD = 0;
		rc = TRUE;
		
		SoftBINo = FDRGetSoftBINo((INT16U*)&FdrInfo[i].FaultInfo.BakType);
	}
	
	if (rc)
		SOETask(ROOTID, TRUE);		
}

/*------------------------------------------------------------------*/
/*函數名稱:GetSoftBINo(INT16U *FaultType)							*/
/*函數功能:獲得故障遙信號											*/
/*------------------------------------------------------------------*/
INT16U FDRGetSoftBINo(INT16U *FaultType)
{

	if ((*FaultType) & FDR_F)
	{
		(*FaultType) &= (~FDR_F);
		return (FAFAULTD);
	}
	
	if ((*FaultType) & FDR_Y)
	{
		(*FaultType) &= (~FDR_Y);
		return (FAAFOREVER);
	}
	
	if ((*FaultType) & FDR_X)
	{
		(*FaultType) &= (~FDR_X);
		return (FABFOREVER);
	}
	
	if ((*FaultType) & FDR_D)
	{
		(*FaultType) &= (~FDR_D);
		return (FACFOREVER);
	}
	
	if ((*FaultType) & FDR_A)
	{
		(*FaultType) &= (~FDR_A);
		return (FAOFOREVER);
	}

	if ((*FaultType) & FDR_E)
	{
		(*FaultType) &= (~FDR_E);
		return (FAAINSTANT);
	}

	if ((*FaultType) & FDR_H)
	{
		(*FaultType) &= (~FDR_H);
		return (FABINSTANT);
	}
	
	return (0);	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久成人黄色影片| 欧美日韩精品高清| 亚洲mv大片欧洲mv大片精品| 久久久亚洲综合| 3d成人动漫网站| 91成人网在线| 成熟亚洲日本毛茸茸凸凹| 日韩在线一区二区| 一区二区成人在线观看| 中文字幕在线观看不卡| 国产欧美一区二区在线观看| 精品国产乱码久久久久久影片| 91精品国产黑色紧身裤美女| 欧美日韩国产综合久久| 日本韩国一区二区| 色婷婷av一区二区三区大白胸| jvid福利写真一区二区三区| 成人av电影免费在线播放| 国产精品亚洲专一区二区三区| 极品少妇一区二区三区精品视频| 美女视频网站黄色亚洲| 免费人成精品欧美精品| 毛片av一区二区| 久久精品国产**网站演员| 美女性感视频久久| 激情综合色播激情啊| 国产精一品亚洲二区在线视频| 狠狠狠色丁香婷婷综合激情| 狠狠色丁香久久婷婷综| 91麻豆.com| 菠萝蜜视频在线观看一区| 99精品国产一区二区三区不卡| 色哟哟日韩精品| 欧美片在线播放| 日韩一区和二区| 国产亚洲精品超碰| 亚洲色图一区二区| 性欧美大战久久久久久久久| 久久99日本精品| 国产白丝网站精品污在线入口| 成人av电影免费在线播放| 91免费精品国自产拍在线不卡| 欧美写真视频网站| 在线综合+亚洲+欧美中文字幕| 欧美变态tickling挠脚心| 国产亚洲欧美在线| 亚洲日本青草视频在线怡红院| 亚洲国产成人av好男人在线观看| 天天综合网天天综合色| 国产一区二区成人久久免费影院| 97久久精品人人爽人人爽蜜臀| 欧美日韩一二三区| 2020国产精品自拍| 亚洲欧美另类综合偷拍| 九色porny丨国产精品| 99在线精品一区二区三区| 日本精品裸体写真集在线观看| 日韩一区二区在线免费观看| 国产精品丝袜一区| 爽好多水快深点欧美视频| 国产成人啪免费观看软件 | 成人av动漫在线| 欧美美女一区二区在线观看| 中文一区二区完整视频在线观看| 亚洲成人av一区二区| 丰满少妇久久久久久久| 欧美精品视频www在线观看| 国产精品拍天天在线| 老司机免费视频一区二区 | 国内偷窥港台综合视频在线播放| 99久久久精品| 精品99一区二区| 婷婷成人激情在线网| 9久草视频在线视频精品| 精品久久一二三区| 午夜精品影院在线观看| av在线播放一区二区三区| 欧美成人欧美edvon| 亚洲二区在线观看| 色婷婷久久久久swag精品| 国产欧美一区二区三区在线老狼| 日本欧美一区二区三区乱码| 91国偷自产一区二区三区观看| 国产日产精品一区| 国产毛片精品国产一区二区三区| 欧美福利电影网| 一区二区三区四区不卡在线| 激情欧美一区二区三区在线观看| 欧美久久久影院| 亚洲一区二区精品久久av| 91网站最新网址| 中文字幕一区二区三区四区| 成人免费毛片片v| 亚洲国产高清不卡| 懂色一区二区三区免费观看| 久久亚洲精品国产精品紫薇| 精品一区二区久久久| 在线不卡中文字幕播放| 亚洲香肠在线观看| 欧美日精品一区视频| 亚洲在线中文字幕| 日本高清不卡在线观看| 亚洲愉拍自拍另类高清精品| 欧美精品vⅰdeose4hd| 亚洲国产精品一区二区久久恐怖片 | 亚洲精品国久久99热| 韩国v欧美v日本v亚洲v| 久久久久久久综合狠狠综合| 国产麻豆视频精品| 国产人妖乱国产精品人妖| 国产成人午夜高潮毛片| 国产精品久久久久久久久免费丝袜| 成人激情午夜影院| 亚洲免费在线视频一区 二区| 欧美色电影在线| 婷婷国产v国产偷v亚洲高清| 精品日韩一区二区| 国产成人免费在线观看| 国产精品国产三级国产a| 91免费精品国自产拍在线不卡 | 精品粉嫩aⅴ一区二区三区四区| 久久国产综合精品| 国产区在线观看成人精品| 99久久777色| 亚洲国产婷婷综合在线精品| 精品日韩av一区二区| 高清不卡一区二区| 亚洲午夜国产一区99re久久| 日韩一区二区三区视频在线| 成人久久18免费网站麻豆| 亚洲在线视频免费观看| 欧美xxxxxxxxx| 一本在线高清不卡dvd| 丝袜诱惑制服诱惑色一区在线观看| 精品欧美乱码久久久久久1区2区| 成人午夜激情在线| 亚欧色一区w666天堂| 久久久99免费| 欧美在线|欧美| 国产原创一区二区| 亚洲免费伊人电影| 精品欧美久久久| 91国在线观看| 福利一区二区在线| 午夜不卡av免费| 中文字幕一区二区三区色视频| 91.麻豆视频| 91影院在线免费观看| 精品一区二区成人精品| 一区二区三区日本| 欧美激情综合在线| 日韩精品一区二| 欧美吻胸吃奶大尺度电影 | 日本亚洲最大的色成网站www| 国产精品久久夜| 欧美成va人片在线观看| 成人综合在线网站| 精品在线观看视频| 亚洲国产一区二区a毛片| 国产精品电影院| 久久久久99精品国产片| 日韩欧美国产成人一区二区| 欧美视频在线一区| 99久久精品99国产精品| 久久精品一区二区三区av| 色哟哟一区二区| 成人高清免费观看| 国产又粗又猛又爽又黄91精品| 天天色 色综合| 亚洲区小说区图片区qvod| 国产午夜精品一区二区 | 欧美高清在线视频| 精品国产一区二区三区四区四| 7878成人国产在线观看| 欧美性生活一区| 91小视频免费观看| 成人h精品动漫一区二区三区| 国产一二精品视频| 狠狠色丁香婷综合久久| 蜜臂av日日欢夜夜爽一区| 日韩中文字幕亚洲一区二区va在线| 亚洲黄色在线视频| 亚洲日本韩国一区| 中文字幕中文乱码欧美一区二区| 久久精品视频在线看| 国产丝袜美腿一区二区三区| 久久中文字幕电影| 亚洲精品一区二区三区四区高清| 精品国产一区二区三区久久影院| 在线播放/欧美激情| 91精品国产手机| 日韩久久免费av| 欧美精品一区二区精品网| 欧美一二三在线| 日韩欧美的一区| 免费人成在线不卡| 日韩影院在线观看| 精品在线视频一区| 国产成人精品三级麻豆| 91天堂素人约啪|