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

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

?? iec103_sf.cpp

?? 四方公司103規約
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
			}

			//	InitTaskRespBuf(pTask);

			genRead.grpCnt = 0;
			GetGininf(pDevRun->pDevData, pTask, dataBhAc, genRead.grpNum, genRead.readGrp);
		}

		return PackGenerReadCmd(pTask, pDevRun);
	}

	//召喚保護定值
	//召喚保護定值,pTask->iUserData數組中填放數據說明
	//   0				1				2					3.....
	//召喚定值組號	定值組總個數  要召喚定值組包含的	通用分類組號	
	//								通用分類組個數
	BOOL CIEC103_SFPtl::PackCallProtSetting(TASK *pTask, RealRunIED *pDevRun)
	{
		Task103 &task = m_IEC103Data.m_task103;
		GenerReadDesc &genRead = task.genRead;

		if (0 == task.wStep)
		{
			BYTE byReadID = pTask->iUserData[0];		//得到要召喚的定值組號
			BOOL bChk = FALSE;
			if (pDevRun->pDevData->m_IEDConfig.nDzNum > 0)
			{
				// 召喚的定值組號
				if (0xff == pTask->iUserData[0])	
					byReadID = 0;

				BYTE bySettingGrpNum = GetSettingGrpNum(pDevRun->pDevData, pTask);
				if (byReadID < bySettingGrpNum)
				{
					//InitTaskRespBuf(pTask);
					genRead.grpCnt = 0;
					GetGininf(pDevRun->pDevData, pTask, dataSetting, genRead.grpNum, genRead.readGrp);
					bChk = TRUE;
				}
			}
			if (!bChk) 
				return FALSE;
		}
		return PackGenerReadCmd(pTask, pDevRun);
	}
	//修改保護定值
	/*
	*PackModifyProtSetting - 修改保護定值組幀
	* 固定格式
	*	描述					偏移量				占位空間	
	*-------------------------------------------------------
	*	相應數據總長度			0~1				2
	*	**103數據幀總個數N		2~3				2
	*/
	BOOL CIEC103_SFPtl::PackModifyProtSetting(TASK *pTask, RealRunIED *pDevRun)
	{
		Task103 &task = m_IEC103Data.m_task103;
		GenerWriteDesc &genWrite = task.genWrite;

		//BYTE byAddr = pDevRun->pDevData->m_IEDConfig.byNodeAddr;
		BYTE byAddr = 0;
		if(m_IEC103PtlPara.bCommAddr)
			byAddr = m_IEC103PtlPara.byBHCPUAddr;
		else
			byAddr = pDevRun->pDevData->m_IEDConfig.byNodeAddr;

		if(!pTask->bWithDataF || pTask->pbyBuff == NULL)//沒有用戶附加數據,直接返回
			return FALSE;
		ModifyProtSettingHead *pProtSetHead = (ModifyProtSettingHead *)(pTask->pbyBuff);
		BYTE  byLinkLen = 0;
		if (0 == task.wStep) 
		{
			genWrite.wSendFmtCnt = 0;
			genWrite.wSendPos = 4;
			genWrite.rii = m_IEC103Data.m_bySin ++;

			// 去除第一組的定值組號
			byLinkLen = *(pTask->pbyBuff + genWrite.wSendPos);
			genWrite.wSendPos += 1;
			genWrite.wSendFmtCnt ++;
		}

		if (task.wStep % 2 == 0) 
		{		
			if(task.wStep != 0)
			{
				byLinkLen = *(pTask->pbyBuff + genWrite.wSendPos);
				genWrite.wSendPos += 1;
				genWrite.wSendFmtCnt ++;
			}
			memcpy(m_IEC103Data.m_bySend, pTask->pbyBuff + genWrite.wSendPos, byLinkLen);
			genWrite.wSendPos += byLinkLen;

			task.wStep ++;

			ASDU_10_Head *pFmtHead = (ASDU_10_Head *)(m_IEC103Data.m_bySend + sizeof(LPDU_Vol_Head));
			pFmtHead->head.type = 10;
			pFmtHead->head.vsq.vsq = 0x81;
			pFmtHead->head.cot = 40;
			pFmtHead->head.addr = byAddr;
			pFmtHead->head.fun = 254;
			pFmtHead->head.inf = (genWrite.wSendFmtCnt == pProtSetHead->fmtNum) ?250 : 249;
			pFmtHead->rii = genWrite.rii;
			pFmtHead->ngd.count = (task.wStep / 2) % 2;
			pFmtHead->ngd.cont = (genWrite.wSendFmtCnt != pProtSetHead->fmtNum);

			m_IEC103Data.m_wSendNum = byLinkLen - 8;
			PackLPDU(pTask->byDestNodeID, SendCon_code);

			return TRUE;
		}

		return FALSE;
	}

	//確認保護定值
	BOOL CIEC103_SFPtl::PackEnableProtSetting(TASK *pTask, RealRunIED *pDevRun)
	{
		return PackGenerExec(pTask, pDevRun, TRUE);
	}

	//取消修改保護定值
	BOOL CIEC103_SFPtl::PackCancelProtSetting(TASK *pTask, RealRunIED *pDevRun)
	{
		return PackGenerExec(pTask, pDevRun, FALSE);
	}

	//設置保護定值組
	BOOL CIEC103_SFPtl::PackModifyProtSettingGroup(TASK *pTask, RealRunIED *pDevRun)
	{
		//BYTE byAdd = pDevRun->pDevData->m_IEDConfig.byNodeAddr;
		BYTE byAddr = 0;
		if(m_IEC103PtlPara.bCommAddr)
			byAddr = m_IEC103PtlPara.byBHCPUAddr;
		else
			byAddr = pDevRun->pDevData->m_IEDConfig.byNodeAddr;

		Task103 &task = m_IEC103Data.m_task103;
		if (0 == task.wStep)
		{
			task.wStep ++;

			ASDU_10_Head *pHead = (ASDU_10_Head *)(m_IEC103Data.m_bySend + sizeof(LPDU_Vol_Head));
			pHead->head.type = 10;
			pHead->head.vsq.vsq = 0x81;
			pHead->head.cot = 40;
			pHead->head.addr = byAddr;
			pHead->head.fun = 254;
			pHead->head.inf = 249;
			pHead->rii = m_IEC103Data.m_bySin ++;
			pHead->ngd.cont = pHead->ngd.count = 0;
			pHead->ngd.num = 1;

			ASDU_10_Item *pItem = (ASDU_10_Item *)(pHead + 1);
			GIN gin;
			GetProtSetGrpGin(pTask, gin);
			pItem->gin = gin;
			pItem->gdd.byDataTyp = 3;
			pItem->gdd.byDataSize = 1;
			pItem->gdd.num = 1;
			pItem->gdd.cont = 0;
			pItem->kod = 1;
			pItem->byVal = pTask->iUserData[0];

			m_IEC103Data.m_wSendNum = sizeof(ASDU_10_Head) + ASDU10ITEMLEN;
			PackLPDU(pTask->byDestNodeID, SendCon_code);
			return TRUE;		
		}

		return FALSE;
	}

	//確認設置的保護定值組
	BOOL CIEC103_SFPtl::PackEnableProtSettingGroup(TASK *pTask, RealRunIED *pDevRun)
	{
		return PackGenerExec(pTask, pDevRun, TRUE);
	}

	//取消修改保護定值組
	BOOL CIEC103_SFPtl::PackCancelProtSettingGroup(TASK *pTask, RealRunIED *pDevRun)
	{
		return PackGenerExec(pTask, pDevRun, FALSE);
	}

	// 保護復歸
	BOOL CIEC103_SFPtl::PackProtRes(TASK *pTask, RealRunIED *pDevRun)
	{
		BYTE byAdd = pDevRun->pDevData->m_IEDConfig.byNodeAddr;

		BOOL bRtn = FALSE;
		Task103 &task = m_IEC103Data.m_task103;
		if (0 == task.wStep) 
		{
			ASDU_20_Fmt *pFmt = (ASDU_20_Fmt *)(m_IEC103Data.m_bySend + sizeof(LPDU_Vol_Head));
			pFmt->head.type = 20;
			pFmt->head.vsq.vsq = 0x81;
			pFmt->head.cot =  20;

			FunInf funinf;
			BYTE addr;
			if(!GetProtResetFuninfFromPara(pDevRun,funinf,addr))
				return FALSE;
			pFmt->head.addr = addr;
			pFmt->head.funInf = funinf;
			pFmt->dco = Off_dco;
			pFmt->rii = m_IEC103Data.m_bySin ++;

			m_IEC103Data.m_wSendNum = sizeof(ASDU_20_Fmt);
			if (addr == 0xff)
				PackLPDU(pTask->byDestDataID,NoReply_code);
			else
				PackLPDU(pTask->byDestNodeID, SendCon_code);

			task.wStep ++;
			bRtn = TRUE;
			ResetBhYx(pTask,pDevRun);

			//printf("ADDR = %d,FUN = %d,INF = %d,DOC = %d",addr,pFmt->head.funInf.fun,pFmt->head.funInf.inf,pFmt->dco);
		}

		return bRtn;
	}

	//對保護裝置虛搖信信號進行復歸
	void CIEC103_SFPtl::ResetBhYx(TASK *pTask, RealRunIED *pDevRun)
	{
		CIED *pIED = pDevRun->pDevData;
		int nBhYxNum = pIED->m_IEDConfig.nBhNum;
		for(int i=0; i<nBhYxNum; i++)
		{
			pIED->SetDataRecvVal(dataBhYx,0,i,0);
		}
	}

	// 通道任務
	//任務區結構描述
	//---------------------------------
	// 總長度		0~1			2
	// 幀個數		2~3			2
	// 第1幀長度	4			1
	// 第1幀		5			L+5
	BOOL CIEC103_SFPtl::ChanTask(TASK *pTask, RealRunIED *pDevRun)
	{
		Task103 &task = m_IEC103Data.m_task103;
		GenerWriteDesc &genWrite = task.genWrite;

		BYTE *pbyData = pTask->pbyBuff;
		if(!pTask->bWithDataF || pbyData == NULL)//沒有附加數據
			return FALSE;

		WORD *pwLen = (WORD *)pbyData;
		WORD *pwFmtCnt = (WORD *)(pbyData + 2);
		genWrite.wSendNum = *(WORD *)(pbyData + 2);

		BYTE byAsduLen = 0;
		ASDU_Head *pHead = NULL;
		if (0 == task.wStep)
		{
			genWrite.wSendFmtCnt = 0;
			genWrite.wSendPos = 4;
			genWrite.rii = m_IEC103Data.m_bySin ++;

			byAsduLen = pbyData[genWrite.wSendPos];
			genWrite.wSendPos++;
			genWrite.wSendFmtCnt++;
			pHead = (ASDU_Head *)(pbyData + genWrite.wSendPos);
			// 復歸命令
			if (C_GRC_NA_3 == pHead->type) 
			{	
				//task.pTask->status = timeOut;
			}
			else if (10 == pHead->type || 21 == pHead->type)
				;//InitTaskRespBuf(pTask);
		}

		if (task.wStep % 2 == 0)
		{
			// 鏈路數據
			if(task.wStep != 0)
			{
				byAsduLen = pbyData[genWrite.wSendPos];
				genWrite.wSendPos++;
				genWrite.wSendFmtCnt++;
				pHead = (ASDU_Head *)(pbyData + genWrite.wSendPos);
			}
			memcpy(m_IEC103Data.m_bySend + sizeof(LPDU_Vol_Head), (BYTE *)pHead, byAsduLen);
			genWrite.wSendPos += byAsduLen;

			task.wStep ++;

			pHead = (ASDU_Head *)(m_IEC103Data.m_bySend + sizeof(LPDU_Vol_Head));

			BYTE byAddr = 0;
			if(m_IEC103PtlPara.bCommAddr)
				byAddr = m_IEC103PtlPara.byBHCPUAddr;
			else
				byAddr = pDevRun->pDevData->m_IEDConfig.byNodeAddr;

			pHead->addr = byAddr;

			m_IEC103Data.m_wSendNum = byAsduLen;
			PackLPDU(pTask->byDestNodeID, SendCon_code);
			return TRUE;
		}
		return FALSE;
	}

	// 通用分類服務讀命令
	BOOL CIEC103_SFPtl::PackGenerReadCmd(TASK* pTask, RealRunIED *pDevRun)
	{
		Task103 &task = m_IEC103Data.m_task103;
		GenerReadDesc &genRead = task.genRead;

		//BYTE byAdd = pDevRun->pDevData->m_IEDConfig.byNodeAddr;
		BYTE byAddr = 0;
		if(m_IEC103PtlPara.bCommAddr)
			byAddr = m_IEC103PtlPara.byBHCPUAddr;
		else
			byAddr = pDevRun->pDevData->m_IEDConfig.byNodeAddr;
		// 通用分類讀命令組幀
		if ((task.wStep % 2 == 0) && (genRead.grpCnt < genRead.grpNum))
		{
			task.wStep ++;

			ASDU_21_Fmt *pFmt = (ASDU_21_Fmt *)(m_IEC103Data.m_bySend + sizeof(LPDU_Vol_Head));
			pFmt->head.type = 21;
			pFmt->head.vsq.vsq = 0x81;
			pFmt->head.cot = 42;
			pFmt->head.addr = byAddr;
			pFmt->head.fun = 254;
			pFmt->head.inf = 241;
			pFmt->rii = m_IEC103Data.m_bySin ++;
			pFmt->nog = 1;
			pFmt->group = genRead.readGrp[genRead.grpCnt ++];
			pFmt->entry = 0;
			pFmt->kod = 1;

			m_IEC103Data.m_wSendNum = ASDU21FMTLEN;
			PackLPDU(pTask->byDestNodeID, SendCon_code);
			return TRUE;
		}

		return FALSE;
	}

	// 組通用分類服務寫命令
	BOOL CIEC103_SFPtl::PackGenerExec(TASK* pTask, RealRunIED *pDevRun, BOOL bExec = TRUE)
	{
		Task103 &task = m_IEC103Data.m_task103;
		GenerReadDesc &genTask = task.genRead;

		//BYTE byAdd = pDevRun->pDevData->m_IEDConfig.byNodeAddr;
		BYTE byAddr = 0;
		if(m_IEC103PtlPara.bCommAddr)
			byAddr = m_IEC103PtlPara.byBHCPUAddr;
		else
			byAddr = pDevRun->pDevData->m_IEDConfig.byNodeAddr;

		if (0 == task.wStep) 
		{
			task.wStep ++;

			ASDU_10_Head *pHead = (ASDU_10_Head *)(m_IEC103Data.m_bySend + sizeof(LPDU_Vol_Head));
			pHead->head.type = 10;
			pHead->head.vsq.vsq = 0x81;
			pHead->head.cot = 40;
			pHead->head.addr = byAddr;
			pHead->head.fun = 254;
			pHead->head.inf = bExec ? 250 : 251;
			pHead->rii = m_IEC103Data.m_bySin ++;
			pHead->ngd.cont = pHead->ngd.count = pHead->ngd.num = 0;

			m_IEC103Data.m_wSendNum = sizeof(ASDU_10_Head);
			PackLPDU(pTask->byDestNodeID, SendCon_code);
			return TRUE;
		}
		return FALSE;
	}

	//鏈路發送數據
	INT CIEC103_SFPtl::PtlSendLPDU(void)
	{
		// 幀間隔判別
		if (!m_IEC103Data.m_frmDly33.IsOverTime(m_nCnt))
			return 0;

		m_IEC103Data.m_frmDly33.Start(m_nCnt);
		m_IEC103Data.m_frmOver.Start(m_nCnt);

		// 準備接收數據
		QueryRecvLPDU();

		// 轉入應用層組幀過程
		if (SendNoreply == m_IEC103Data.m_lnkSvrCls)
			m_IEC103Data.m_runStep = PtlRun_PackASDU;
		else
			m_IEC103Data.m_runStep = PtlRun_RecvLPDU;

		return m_IEC103Data.m_wSendNum;
	}

	//解幀函數
	void CIEC103_SFPtl::UnFrame(BYTE* pRecvBuf, INT nLen)
	{
		//if (PtlRun_RecvLPDU == m_IEC103Data.m_runStep)
		{
			PtlSearch(pRecvBuf, nLen);   
		}
	}

	//規約數據搜索函數
	void CIEC103_SFPtl::PtlSearch(BYTE *pRecvBuf, INT nLen)
	{	
		BYTE *pbyhead = NULL;
		for(INT nCnt=0; nCnt<nLen; nCnt++)
		{
			if(0x10 == pRecvBuf[nCnt] || 0x68 == pRecvBuf[nCnt])//搜索到幀頭
			{
				pbyhead = pRecvBuf + nCnt;
				break;
			}
		}
		BYTE bySum = 0;
		if(pbyhead != NULL)
		{
			BOOL bLnkUnpack = FALSE;
			if(0x10 == pbyhead[0])			//固定幀
			{
				bySum = pbyhead[1] + pbyhead[2];
				if(bySum == pbyhead[3] && 0x16 == pbyhead[4])
				{
					bLnkUnpack = TRUE;
					m_IEC103Data.m_wLinkLen = 5;
				}
				else
					m_IEC103Data.m_lnkSerialError ++;
			}
			else if(0x68 == pbyhead[0])	//可變幀
			{
				if (pbyhead[3] == pbyhead[0] && pbyhead[1] == pbyhead[2]) 
				{
					BYTE byLnkLen = pbyhead[1];
					bySum = SumMod(pbyhead + 4, pbyhead[1]);
					if(bySum == pbyhead[byLnkLen + 4] && 0x16 == pbyhead[byLnkLen + 4 + 1])
					{
						bLnkUnpack = TRUE;
						m_IEC103Data.m_wLinkLen = 4 + 2 + byLnkLen; 
					}
					else
						m_IEC103Data.m_lnkSerialError ++;
				}
				else
					m_IEC103Data.m_lnkSerialError ++;
			}
			if(bLnkUnpack)				//開始解幀
			{
				// 鏈路層解幀
				UnpackLPDU(pbyhead);
				QueryRecvLPDU();
				m_IEC103Data.m_lnkSerialError = 0;
			}
		}
	}

	// 鏈路層無數據接收
	void CIEC103_SFPtl::NoLPDU(void)
	{
		BYTE* pSend = m_IEC103Data.m_bySend;

		BYTE addr = 0;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91蝌蚪porny| 91污在线观看| 毛片av一区二区三区| 中文字幕乱码日本亚洲一区二区| av一区二区三区在线| 日本不卡123| 综合色中文字幕| 欧美日韩久久一区二区| 国产成人精品综合在线观看| 一区二区三区四区av| 国产精品私房写真福利视频| 欧美精品一卡两卡| 一本一本久久a久久精品综合麻豆| 性欧美疯狂xxxxbbbb| 日本精品一级二级| 日韩专区中文字幕一区二区| 国产精品久久三| 在线观看www91| 欧美人与性动xxxx| 色狠狠综合天天综合综合| 9i在线看片成人免费| 国产精品91一区二区| 久久国产精品区| 成人免费观看av| 麻豆国产精品777777在线| 性做久久久久久| 亚洲激情六月丁香| 国产成人在线影院| 亚洲国产综合色| 国产成人一区二区精品非洲| 欧美日韩国产首页| 国产福利精品导航| 亚洲精品伦理在线| 欧美精品久久99| 韩国女主播成人在线| 中文字幕一区二区不卡| 欧美视频中文一区二区三区在线观看| 日韩精品电影在线| 精品视频免费在线| 狠狠色狠狠色综合| 92精品国产成人观看免费| 欧美视频精品在线观看| 日韩区在线观看| 久久一夜天堂av一区二区三区| 综合久久一区二区三区| 久久久久九九视频| 秋霞成人午夜伦在线观看| www日韩大片| 99麻豆久久久国产精品免费优播| 亚洲精品国产成人久久av盗摄| 日本道在线观看一区二区| 麻豆中文一区二区| 精品国产乱码久久久久久久| 欧美日韩精品欧美日韩精品一综合| 青青草97国产精品免费观看无弹窗版| 精品午夜一区二区三区在线观看| 一区二区视频免费在线观看| 91啪亚洲精品| 蜜臀久久久久久久| 91在线你懂得| 免费一区二区视频| 国产亚洲欧美日韩日本| 在线不卡一区二区| 欧美日本乱大交xxxxx| 国产精一区二区三区| 久久精品二区亚洲w码| 奇米色一区二区三区四区| 日韩精品一二区| 麻豆国产精品一区二区三区 | 久久久久亚洲综合| 欧美精品一区二区三区久久久| 日韩小视频在线观看专区| 欧美日韩免费一区二区三区| 欧美三级欧美一级| 欧美成人伊人久久综合网| 欧美日韩黄色一区二区| 日韩午夜电影在线观看| 精品不卡在线视频| 国产精品网站在线观看| 国产精品久久久久久亚洲伦| 亚洲欧美一区二区视频| 亚洲欧洲日产国产综合网| 亚洲免费观看在线视频| 亚洲成a人v欧美综合天堂| 日韩av中文字幕一区二区三区| 蜜臀av一区二区在线免费观看| 国产一区二区三区四区五区美女| 国产精品一区一区三区| 99精品欧美一区二区三区综合在线| 色欧美88888久久久久久影院| 精品视频在线视频| 精品国产电影一区二区| 国产精品乱码久久久久久| 亚洲天堂成人在线观看| 天堂va蜜桃一区二区三区漫画版| 亚洲一区视频在线观看视频| 黄色日韩三级电影| 91国偷自产一区二区三区成为亚洲经典 | 激情综合色播五月| av在线不卡网| 欧美一级片在线看| 中文字幕欧美国产| 午夜电影网亚洲视频| 精品一区二区免费| 91免费观看国产| 日韩欧美在线综合网| 中文字幕一区在线观看| 天天综合日日夜夜精品| 成人性生交大片免费看中文 | 国产亚洲美州欧州综合国 | 一区二区三区在线影院| 开心九九激情九九欧美日韩精美视频电影 | 成人欧美一区二区三区| 美女www一区二区| 91视频你懂的| 久久久噜噜噜久久中文字幕色伊伊| 一区二区三区欧美日| 国产一区二区三区综合| 欧美日韩国产影片| 国产精品福利一区| 久久精品国产99久久6| 欧美精品18+| 日韩国产成人精品| 欧美日韩在线三级| 亚洲一区二区三区四区五区中文| 不卡影院免费观看| 欧美国产精品一区二区| 国产美女精品在线| 国产色产综合色产在线视频| 国产剧情一区在线| 久久免费国产精品| 精品无人区卡一卡二卡三乱码免费卡| 91精品中文字幕一区二区三区| 亚洲综合色丁香婷婷六月图片| 一本到一区二区三区| 亚洲人快播电影网| 91首页免费视频| 亚洲激情自拍偷拍| 在线亚洲+欧美+日本专区| 一区二区日韩av| 欧美日韩免费不卡视频一区二区三区| 亚洲黄色免费网站| 欧美日韩国产123区| 亚洲第一会所有码转帖| 欧美一区二区三区在线看| 秋霞影院一区二区| 精品国产欧美一区二区| 国产一区二区三区电影在线观看| 久久久久久久久久久久久久久99| 国产成人h网站| 亚洲男人都懂的| 欧美优质美女网站| 丝袜国产日韩另类美女| 精品久久一区二区三区| 国产精品影视网| 中文字幕亚洲在| 欧美日本在线观看| 狠狠色2019综合网| 国产精品成人免费在线| 欧美中文字幕一区二区三区 | 99久久精品情趣| 亚洲一区二区五区| 日韩欧美亚洲一区二区| 国产成都精品91一区二区三| 夜夜亚洲天天久久| 欧美一区二区三区在线看| 国产成人在线视频免费播放| 亚洲啪啪综合av一区二区三区| 欧美日韩国产成人在线91| 久久99精品久久久| 亚洲欧美一区二区久久| 欧美疯狂性受xxxxx喷水图片| 国产精品一区二区视频| 亚洲日本在线看| 欧美一级精品大片| 播五月开心婷婷综合| 日韩中文字幕91| 中文一区二区在线观看| 欧美日韩美女一区二区| 国产黄色精品网站| 亚洲电影你懂得| 欧美高清在线一区二区| 欧美日韩一二三| 成人精品一区二区三区四区| 日韩精品免费视频人成| **欧美大码日韩| 日韩免费成人网| 色哟哟国产精品| 国产盗摄一区二区| 日韩主播视频在线| 中文字幕一区免费在线观看| 欧美一二三区在线观看| 91欧美一区二区| 国产乱码精品1区2区3区| 亚洲福利一区二区三区| 欧美高清在线一区| 日韩欧美成人午夜| 欧美主播一区二区三区美女| 成人免费观看av| 狠狠色狠狠色综合系列|