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

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

?? iec103_xuji.cpp

?? 許繼公司103規約源碼
?? CPP
?? 第 1 頁 / 共 5 頁
字號:


#include "IEC103_XUJI.h"

namespace IEC103Ptl_XUJI{

//初始化節點運行參數
BOOL CIEC103_XUJIPtl::CreateRealRunIED(CIED *pIED)
{
	if(pIED == NULL)
		return FALSE;

	BOOL bRtn = TRUE;
	BYTE byNodeId = pIED->m_IEDConfig.byNodeID;
	RealRunIED *pDevRun = m_IEC103Data.m_RunIed[byNodeId];
	if (!pDevRun)
	{
		pDevRun = new RealRunIED;//規約退出是要釋放
		if (pDevRun)
			m_IEC103Data.m_RunIed[byNodeId] = pDevRun;
	}

	if (!pDevRun)
		return FALSE;

	memset(pDevRun, 0, sizeof(RealRunIED));

	pDevRun->pDevData = pIED; 
	pDevRun->byNodeId = byNodeId;
	pDevRun->mode = 0;	
	pDevRun->fcb = 0;	
	pDevRun->acd = 0;	
	pDevRun->sendCode = pDevRun->recvCode = 0;
	pDevRun->linkQuery	= 0;	
	pDevRun->linkRes= 1;
	pDevRun->query	= 0;
	pDevRun->queryFull= 0;
	pDevRun->sin = 0;
	pDevRun->lnkNoRecvCnt = 0;
	pDevRun->bCommInitFlag = TRUE;
	pDevRun->nASDU5Cnt = 0;
	pDevRun->step = eInitStart;

	return bRtn;
}

// 得到 fun+inf=>nIndex 的映射關系
int	CIEC103_XUJIPtl::GetnIndexbyFuninf(CIED *pIED, eDataSort datatype, FunInf &funInf)
{
	int nIndex = -1;
	int nSize = 0, i = 0,j;
	//得到fun+inf對應的nindex
	switch(datatype)
	{
	case dataYc:
		{
			YC_PARA para;
			for(i=0; i<pIED->m_IEDConfig.nYcNum; i++)

			{
				if(pIED->GetDataPara(dataYc,0,i, (void*)&para))
				{
					if(para.nFun == funInf.fun && para.nInfo == funInf.inf)
						nIndex = i;
				}
			}
		}
		break;
	case dataBhAc:
		{
			YC_PARA para;
			for(i=0; i<pIED->m_IEDConfig.nBhAcLoopNum; i++)

			{
				for(j=ac_Ia; j<ac_Sum; j++)
				{
					if(pIED->GetDataPara(dataBhAc,i, (eAcycItem)j,(void*)&para))
					{
						if(para.nFun == funInf.fun && para.nInfo == funInf.inf)
							nIndex = i*16 + j;
					}
				}
			}
		}
		break;
	case dataYx:
		{
			YX_PARA para;
			for(i=0; i<pIED->m_IEDConfig.nYxNum; i++)

			{
				if(pIED->GetDataPara(dataYx,0,i, (void*)&para))
				{
					if(para.nFun == funInf.fun && para.nInfo == funInf.inf)
						nIndex = i;
				}
			}
		}
		break;
	case dataBhYx:
		{
			YX_PARA para;
			for(i=0; i<pIED->m_IEDConfig.nBhNum; i++)

			{
				if(pIED->GetDataPara(dataBhYx,0,i, (void*)&para))
				{
					if(para.nFun == funInf.fun && para.nInfo == funInf.inf)
						nIndex = i;
				}
			}
		}
		break;
	case dataDd:
		{
			DD_PARA para;
			for(i=0; i<pIED->m_IEDConfig.nDdNum; i++)

			{
				if(pIED->GetDataPara(dataDd,0,i, (void*)&para))
				{
					if(para.nFun == funInf.fun && para.nInfo == funInf.inf)
						nIndex = i;
				}
			}
		}
		break;
	case dataYk:
		{
			YK_PARA para;
			for(i=0; i<pIED->m_IEDConfig.nYkNum; i++)

			{
				if(pIED->GetDataPara(dataYk,0,i, (void*)&para))
				{
					if(para.nFun == funInf.fun && para.nInfo == funInf.inf)
						nIndex = i;
				}
			}
		}
		break;
	case dataYt:
		break;
	case dataBhDz:
		break;
	default:
		break;
	}
	return nIndex;
}

//根據IED、數據類型和數據點號得到fun+inf
BOOL CIEC103_XUJIPtl::GetFunInf(CIED *pIED, eDataSort datatype, INT nDataID, FunInf &funinf)
{
	BOOL bRet = FALSE;
	switch(datatype)
	{
	case dataYk:
		{
			YK_PARA para;
			if(pIED->GetDataPara(dataYk,0,nDataID,(void*)&para))
			{
				funinf.fun = para.nFun;
				funinf.inf = para.nInfo;
				bRet = TRUE;
			}
		}
		break;
	default:
		break;
	}
	return bRet;
}

//得到通用分類服務組個數和各個通用分類服務組號
void CIEC103_XUJIPtl::GetGininf(CIED *pIED, TASK* pTask, eDataSort datatype, BYTE &byGrpnum, BYTE* pbyGrpID)
{
	switch(datatype)
	{
	case dataBhAc:				//保護模擬量
		{
			byGrpnum = pTask->iUserData[0];			//得到要召喚的模擬量包含的通用分類服務組個數
			for(BYTE i=0; i<byGrpnum; i++)
				pbyGrpID[i] = pTask->iUserData[i+1];//把數據區中得通用分類組號考到pbyGrpID中
		}
		break;
	case dataSetting:
		{
			byGrpnum = pTask->iUserData[2];			//得到要召喚的定值組包含的通用分類服務組個數
			for(BYTE i=0; i<byGrpnum; i++)
				pbyGrpID[i] = pTask->iUserData[i+3];//把數據區中得通用分類組號考到pbyGrpID中
		}
		break;					//保護定值
	default:
		break;
	}
}

//得到定值組個數
BYTE CIEC103_XUJIPtl::GetSettingGrpNum(CIED *pIED, TASK* pTask)
{
	BYTE byNum = 0;
	byNum = pTask->iUserData[1];		//所有的定值組個數
	return byNum;
}

//得到保護定值組號gin
//pTask->iUserData[0]:要設置的定值組號;pTask->iUserData[1]:組號; pTask->iUserData[2]:條目號
void CIEC103_XUJIPtl::GetProtSetGrpGin(TASK* pTask, GIN &gin)
{
	gin.group = pTask->iUserData[1];
	gin.entry = pTask->iUserData[2];
}

//得到保護復歸fun+inf
void CIEC103_XUJIPtl::GetProtResetFuninf(TASK* pTask, FunInf &funinf)
{
	funinf.fun = pTask->iUserData[0];
	funinf.inf = pTask->iUserData[1];
}

//從規約參數中得到保護復歸fun+inf
BOOL CIEC103_XUJIPtl::GetProtResetFuninfFromPara(RealRunIED *pDevRun,FunInf &funinf,BYTE &bycpuaddr)
{
	USERPARA para;
	CIED *pIED = pDevRun->pDevData;
	if(!pIED)
		return FALSE;
	if(!pIED->GetDataPara(dataUserPara,0,0,(void*)&para))
		return FALSE;
	funinf.fun = para.wUPara0;
	funinf.inf = para.wUPara1;
	bycpuaddr = para.wUPara2;
	return TRUE;
}
//存儲相應任務數據幀
/*
* 
*=======================================================
*	描述					偏移量				占位空間	
*-------------------------------------------------------
*	相應數據總長度			0~1				2
*	**103數據幀總個數N		2~3				2
*-------------------------------------------------------
*	**103數據幀1總長度L1	4					1
*	**103數據幀1			5~L1+5				L1
*	**103數據幀2總長度L2	L1+6				1
*	**103數據幀2			L1+7~L1+7+8 	L2
*	**。。。	。。。	。。。
*	**103數據幀2總長度LN 	X					1
*	**103數據幀N			X~X+LN			LN
*/
BOOL CIEC103_XUJIPtl::SaveTaskRespFmt(BYTE* buf, WORD wLen, TASK* pTask)
{
	if(!pTask->pbyBuff)
		return FALSE;
	BYTE *pbyData = pTask->pbyBuff;
	TaskRespHead *pRespHead = (TaskRespHead *)(pbyData);

	if(pTask->nDataBufLen == 0)
	{
		pRespHead->bufLen = 0;
		pRespHead->fmtNum = 0;
	}
	pRespHead->bufLen += (wLen + 1);
	pRespHead->fmtNum ++;

	*(pbyData + 4 + pTask->nDataBufLen) = lobyte(wLen);
	memcpy(pbyData + 4 + pTask->nDataBufLen + 1, buf, wLen);
	pTask->nDataBufLen += (wLen + 1);
	return TRUE;
}

//存儲測控遙信
void CIEC103_XUJIPtl::SaveCeKongYaoXin(RealRunIED *pRunIed, FunInf funInf,BYTE yxBit, TIME_4 tm)
{
	eDataSort data;
	CIED *pIED = pRunIed->pDevData;
	int nIndex = GetnIndexbyFuninf(pIED, dataYx, funInf);//先取實遙信的索引;
	data = dataYx;
	if(nIndex == -1)
	{
		nIndex = GetnIndexbyFuninf(pIED, dataBhYx, funInf);//取保護虛遙信索引
		data = dataBhYx;
	}
	if (nIndex >= 0)
	{
		BYTE byYXRecvVal = pIED->GetDataRecvVal(data,0,nIndex);
		if(byYXRecvVal != yxBit)
		{
			//設置遙信值
			pIED->SetDataRecvVal(data,0,nIndex,yxBit);
			// 事項存儲
			EVENT_STRUCT bhent;
			TIME_STRUCT sysTime;
			g_pMainApp->GetSystime(&sysTime);

			bhent.eDS		 = (eDataSource)m_pCH->m_ChConfig.eDS;	// 數據源
			bhent.eEventType = data;					// 事項類型(開關類)
			bhent.nEventNode = nIndex;					// 事項點

			bhent.nEventVal  = 0x10;					// 事項值
			if(yxBit == 1)
				bhent.nEventVal = 0x01;
			bhent.nNode      = pIED->m_IEDConfig.byNodeID;// 設備節點
			WB_UNION wb;
			wb.bwUnion.byVal[1] = tm.byLowMs;
			wb.bwUnion.byVal[0] = tm.byHighMs;
			bhent.TimeStamp.nMs = wb.bwUnion.wVal % 1000;
			bhent.TimeStamp.bySecond = wb.bwUnion.wVal / 1000;
			bhent.TimeStamp.byMinute = tm.Minutes;
			bhent.TimeStamp.byHour	 = tm.Hours;
			bhent.TimeStamp.byDay   = sysTime.byDay;
			bhent.TimeStamp.byMonth  = sysTime.byMonth;
			bhent.TimeStamp.nYear    = sysTime.nYear;
			
			//m_pCH->m_pYxbwSoeQue->Add(bhent);
			m_pCH->m_pYxSoeQue->Add(bhent);	
		}
	}
}

void CIEC103_XUJIPtl::SaveCeKongYaoXin(RealRunIED *pRunIed, FunInf funInf,BYTE yxBit)
{
	eDataSort data;
	CIED *pIED = pRunIed->pDevData;
	int nIndex = GetnIndexbyFuninf(pIED, dataYx, funInf);//先取實遙信的索引;
	data = dataYx;
	if(nIndex == -1)
	{
		nIndex = GetnIndexbyFuninf(pIED, dataBhYx, funInf);//取保護虛遙信索引
		data = dataBhYx;
	}
	if (nIndex >= 0)
	{
		BYTE byYXRecvVal = pIED->GetDataRecvVal(data,0,nIndex);
		if(byYXRecvVal != yxBit)
		{
			//設置遙信值
			pIED->SetDataRecvVal(data,0,nIndex,yxBit);
			// 事項存儲
			EVENT_STRUCT bhent;
			TIME_STRUCT sysTime;
			g_pMainApp->GetSystime(&sysTime);

			bhent.eDS		 = (eDataSource)m_pCH->m_ChConfig.eDS;	// 數據源
			bhent.eEventType = data;					// 事項類型(開關類)
			bhent.nEventNode = nIndex;					// 事項點

			bhent.nEventVal  = 0x10;					// 事項值
			if(yxBit == 1)
				bhent.nEventVal = 0x01;
			bhent.nNode      = pIED->m_IEDConfig.byNodeID;// 設備節點
			bhent.TimeStamp.nMs		 = sysTime.nMs;
			bhent.TimeStamp.bySecond = sysTime.bySecond;
			bhent.TimeStamp.byMinute = sysTime.byMinute;
			bhent.TimeStamp.byHour	 = sysTime.byHour;
			bhent.TimeStamp.byDay	 = sysTime.byDay;
			bhent.TimeStamp.byMonth  = sysTime.byMonth;
			bhent.TimeStamp.nYear    = sysTime.nYear;
			
		//	m_pCH->m_pYxbwSoeQue->Add(bhent);
		//	m_pCH->m_pYxSoeQue->Add(bhent);	
		}
	}
}

//波特率
DWORD CIEC103_XUJIPtl::GetChRatio(void)
{
	DWORD dwRate = m_pCH->m_ChConfig.dwBaudRate;
	DWORD dwVal = 1200;

	if (110 == dwRate)
		dwVal = 110;
	else if (300 == dwRate)
		dwVal = 300;
	else if (600 == dwRate)
		dwVal = 600;
	else if (1200 == dwRate)
		dwVal = 1200;
	else if (2400 == dwRate)
		dwVal = 2400;
	else if (4800 == dwRate)
		dwVal = 4800;
	else if (9600 == dwRate)
		dwVal = 9600;
	else if (14400 == dwRate)
		dwVal = 14400;
	else if (19200 == dwRate)
		dwVal = 19200;
	else if (38400 == dwRate)
		dwVal = 38400;
	else if (56000 == dwRate)
		dwVal = 56000;
	else if (57600 == dwRate)
		dwVal = 57600;
	else if (115200 == dwRate)
		dwVal = 115200;
	else if (128000 == dwRate)
		dwVal = 128000;
	else if (256000 == dwRate)
		dwVal = 256000;

	return dwVal;
}

//參數轉換函數,從flash參數轉換為規約參數
void CIEC103_XUJIPtl::FlashParaToPtlPara(FlashPara103 * pPara)
{
	//先調用默認參數
	DafaultPtlPara();
	// 保護遙信復歸
	if(pPara->bOrdAfmReset > 0)
		m_IEC103PtlPara.bOrdAfmReset = 1;				// 確認復歸(復歸命令肯定確認時,保護信號復歸)
	if(pPara->bOrderReset > 0)
		m_IEC103PtlPara.bOrderReset = 1;				// 命令復歸(復歸命令毋須確認,保護信號即可復歸)

	if(pPara->bEventVirtualYX > 0)
		m_IEC103PtlPara.bEventVirtualYX = 1;			// 故障事項虛遙信

	// 通用參數	
	if(pPara->byInitNum > 0)
		m_IEC103PtlPara.byInitNum = pPara->byInitNum;	// 初始化重傳次數
	if(pPara->dwFrameOver > 0)
		m_IEC103PtlPara.dwFrameOver = pPara->dwFrameOver;	// 幀超時間隔,ms

	if(pPara->dwQuery > 0)
		m_IEC103PtlPara.dwQuery = pPara->dwQuery;		// 總查詢間隔,s
	if(pPara->wTimeOver > 0)
		m_IEC103PtlPara.wTimeOver = pPara->wTimeOver;	// 校時間隔

	if(pPara->bCommAddr > 0 || pPara->bCommAddr == 0)
		m_IEC103PtlPara.bCommAddr = pPara->bCommAddr;

	if(pPara->byBHCPUAddr > 0)
		m_IEC103PtlPara.byBHCPUAddr = pPara->byBHCPUAddr;
	if(pPara->byCKCPUAddr > 0)
		m_IEC103PtlPara.byCKCPUAddr = pPara->byCKCPUAddr;
	//if(pPara->byBhResetFun > 0)
	//	m_IEC103PtlPara.byBhResetFun = pPara->byBhResetFun;
	//if(pPara->byBhResetInf > 0)
	//	m_IEC103PtlPara.byBhResetInf = pPara->byBhResetInf;
}

//規約默認參數設置
void CIEC103_XUJIPtl::DafaultPtlPara(void)
{
	// 保護遙信復歸
	m_IEC103PtlPara.bOrdAfmReset = 0;	// 確認復歸(復歸命令肯定確認時,保護信號復歸)
	m_IEC103PtlPara.bOrderReset = 0;	// 命令復歸(復歸命令毋須確認,保護信號即可復歸)

	// 信息存儲
	m_IEC103PtlPara.bEventVirtualYX = 0;	// 故障事項虛遙信

	// 通用參數	
	m_IEC103PtlPara.byInitNum = 1;		// 初始化重傳次數
	m_IEC103PtlPara.dwFrameOver = 2000;	// 幀超時間隔,ms
	m_IEC103PtlPara.dwQuery = 180;		// 總查詢間隔,s
	m_IEC103PtlPara.wTimeOver = 600;   // 校時間隔,s

	m_IEC103PtlPara.bCommAddr = 1;     // 默認為1,才有cpu地址
	m_IEC103PtlPara.byBHCPUAddr = 1;   // 保護cpu地址,默認為1
	m_IEC103PtlPara.byCKCPUAddr = 2;	// 測控cpu地址,默認為2


	//m_IEC103PtlPara.byBhResetFun = 0;
	//m_IEC103PtlPara.byBhResetInf = 0;
}

//通道任務監視函數
BOOL CIEC103_XUJIPtl::WatchTask(TASK* &ptask, eTaskTyp tasktyp, BYTE byNodeID)
{
	ptask = m_pCH->GetWaitingTask(tasktyp, byNodeID);
	if (ptask) 
		return TRUE;

	return FALSE;
}

//規約初始化
void CIEC103_XUJIPtl::InitPtl(void)
{
	int i;
	FlashPara103 * pflashpara = NULL;
	pflashpara =  (FlashPara103*)(m_pCH->m_PtlPara);
	if(pflashpara)
		FlashParaToPtlPara(pflashpara);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲人精品午夜| 一区二区久久久久| 91丨porny丨国产入口| 免费人成在线不卡| **网站欧美大片在线观看| 欧美一级免费观看| 91久久精品一区二区三| 国产精品99久久久久久宅男| 视频一区二区欧美| 亚洲欧美韩国综合色| 日本一区二区成人| 欧美成人精精品一区二区频| 精品视频一区三区九区| www.成人网.com| 久久99国产精品免费网站| 亚洲 欧美综合在线网络| 国产精品理论片| 2021久久国产精品不只是精品| 欧美日韩黄色影视| 91在线视频观看| 国产成人精品亚洲777人妖 | 欧美精品一区视频| 欧美日韩不卡视频| 在线精品视频免费播放| 成人免费看视频| 国产精品一品视频| 久国产精品韩国三级视频| 偷窥国产亚洲免费视频| 亚洲国产精品麻豆| 亚洲精品久久嫩草网站秘色| 亚洲天堂精品视频| 国产精品福利av| 中文一区二区在线观看| 欧美国产一区在线| 国产亚洲一区二区三区在线观看| 精品久久久久久久人人人人传媒| 精品日韩在线观看| 欧美电视剧免费观看| 精品伦理精品一区| www亚洲一区| 亚洲精品在线一区二区| 精品粉嫩超白一线天av| 久久网这里都是精品| 久久久精品国产99久久精品芒果| 久久久久久一二三区| 国产亚洲短视频| 中国av一区二区三区| 国产精品美女久久久久久| 国产精品久久久久久久第一福利| 18成人在线视频| 亚洲一区二区三区不卡国产欧美| 亚洲高清视频的网址| 日韩高清在线不卡| 久久99精品久久久久婷婷| 激情五月婷婷综合网| 国产精品一区专区| www.日韩在线| 精品视频999| 日韩一区二区电影| 国产网站一区二区| 亚洲男同1069视频| 丝袜亚洲另类丝袜在线| 久久91精品国产91久久小草| 国产成人一区在线| 欧洲一区二区av| 日韩一区二区精品| 亚洲国产经典视频| 亚洲国产成人av网| 狠狠狠色丁香婷婷综合久久五月| 成人小视频在线| 欧美性猛交一区二区三区精品| 91精品国产乱| 日本一区二区不卡视频| 亚洲成人动漫精品| 国产一区二区剧情av在线| 成人avav在线| 欧美美女喷水视频| 欧美国产激情二区三区| 亚洲成在线观看| 国产成人在线视频网址| 欧美色图免费看| 久久久亚洲精华液精华液精华液| 亚洲欧美日韩小说| 极品少妇xxxx精品少妇偷拍| 色伊人久久综合中文字幕| 欧美一级xxx| 亚洲欧洲中文日韩久久av乱码| 日韩精品国产欧美| 91亚洲永久精品| 日韩免费电影一区| 一区二区三区免费观看| 狠狠色综合日日| 91福利视频在线| 国产亚洲精品资源在线26u| 亚洲成在人线免费| 不卡的av电影在线观看| 日韩一区二区电影在线| 依依成人综合视频| 大美女一区二区三区| 91麻豆精品国产91久久久使用方法 | 午夜久久久久久电影| 国产美女精品在线| 91精品久久久久久久99蜜桃| 亚洲欧洲一区二区在线播放| 麻豆精品一二三| 欧美性猛交xxxx黑人交| 国产精品成人一区二区三区夜夜夜| 亚洲第一主播视频| 色欲综合视频天天天| 国产视频亚洲色图| 日韩精品电影一区亚洲| 色视频成人在线观看免| 国产精品三级视频| 韩国毛片一区二区三区| 91精品国产色综合久久ai换脸| 一区二区三区美女| av亚洲精华国产精华精| 国产欧美日韩亚州综合| 国产资源在线一区| 欧美mv和日韩mv的网站| 日本伊人色综合网| 欧美日韩五月天| 亚洲综合一区二区精品导航| av电影一区二区| 国产精品麻豆99久久久久久| 国产成人精品在线看| 久久久久久久久久久久久夜| 毛片av中文字幕一区二区| 欧美情侣在线播放| 亚洲国产三级在线| 欧美日韩日日夜夜| 亚洲一区影音先锋| 欧美日韩三级一区二区| 亚洲第一电影网| 欧美日韩mp4| 麻豆成人久久精品二区三区小说| 欧美一区二区视频在线观看2022| 日韩精品一区第一页| 在线成人免费视频| 热久久一区二区| 欧美一区二区三区免费视频| 精品一区二区三区免费视频| 欧美精品一区二区三区蜜桃| 国产成人综合在线播放| 国产精品久久久久久久久动漫| 99久久精品国产导航| 亚洲欧美日本在线| 欧美日韩精品一区二区三区| 午夜精品一区二区三区电影天堂 | 国产精品自拍一区| 国产精品无圣光一区二区| 国产成人午夜精品5599| 中文字幕第一区二区| 成人久久18免费网站麻豆| 亚洲区小说区图片区qvod| 欧美少妇bbb| 蜜乳av一区二区| 国产三级一区二区三区| 99re在线精品| 视频一区视频二区中文| 精品理论电影在线观看 | 国产精品国产三级国产aⅴ入口| 91视视频在线直接观看在线看网页在线看| 亚洲色大成网站www久久九九| 欧美日韩国产小视频| 精品影视av免费| 国产精品初高中害羞小美女文| 在线精品视频免费观看| 麻豆freexxxx性91精品| 国产精品不卡在线观看| 欧美专区在线观看一区| 久久爱另类一区二区小说| 综合久久久久久| 日韩视频一区二区三区| 成人黄色av电影| 日韩成人dvd| 中文字幕一区二区在线观看| 欧美日韩成人综合| 国产高清成人在线| 亚洲成国产人片在线观看| 久久久亚洲午夜电影| 欧美日韩免费高清一区色橹橹| 国内不卡的二区三区中文字幕 | av不卡免费在线观看| 日韩精品乱码免费| 亚洲欧洲精品一区二区三区| 欧美一区二区在线视频| 成人91在线观看| 精品一二三四在线| 亚洲一二三区在线观看| 中文字幕久久午夜不卡| 欧美久久一二三四区| 成人免费的视频| 韩国一区二区三区| 亚洲午夜激情网页| 欧美激情综合五月色丁香| 日韩女优视频免费观看| 欧美自拍丝袜亚洲| 97se亚洲国产综合自在线不卡| 另类欧美日韩国产在线|