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

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

?? iec103_xuji.cpp

?? 許繼公司103規(guī)約源碼
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
		}
		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;
}

// 通用分類服務(wù)讀命令
BOOL CIEC103_XUJIPtl::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 = sizeof(ASDU_21_Fmt);
		PackLPDU(pTask->byDestNodeID, SendCon_code);
		return TRUE;
	}

	return FALSE;
}

// 組通用分類服務(wù)寫命令
BOOL CIEC103_XUJIPtl::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;
}

//鏈路發(fā)送數(shù)據(jù)
INT CIEC103_XUJIPtl::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);

	// 準(zhǔn)備接收數(shù)據(jù)
	QueryRecvLPDU();
		
	// 轉(zhuǎn)入應(yīng)用層組幀過程
	if (SendNoreply == m_IEC103Data.m_lnkSvrCls)
		m_IEC103Data.m_runStep = PtlRun_PackASDU;
	else
		m_IEC103Data.m_runStep = PtlRun_RecvLPDU;

	return m_IEC103Data.m_wSendNum;
}

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

//規(guī)約數(shù)據(jù)搜索函數(shù)
void CIEC103_XUJIPtl::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;
		}
	}
}

// 鏈路層無數(shù)據(jù)接收
void CIEC103_XUJIPtl::NoLPDU(void)
{
	BYTE* pSend = m_IEC103Data.m_bySend;
	
	BYTE addr = 0;
	if (0x10 == pSend[0])
	{
		LPDU_Fix_Fmt *pFmt = (LPDU_Fix_Fmt *)pSend;
		addr = pFmt->addr;
	}
	else
	{
		LPDU_Vol_Head *pHead = (LPDU_Vol_Head *)pSend;
		addr = pHead->addr;
	}

	BYTE byNodeID = m_IEC103Data.m_addrtoID[addr];
	RealRunIED *pRunIed = m_IEC103Data.m_RunIed[byNodeID];	
	if (pRunIed)
	{
		pRunIed->linkRes = 1;
		pRunIed->lnkNoRecvCnt ++;
		if (pRunIed->lnkNoRecvCnt > 5)
		{
			CIED* pIED = pRunIed->pDevData;
			//DevYxPara devYx = pBayDev->GetDevYxPara();
			//pIED->SetYaoXinRecvVal(devYx.wComYxId, 1);
		}
	}
}

//鏈路層解幀
void CIEC103_XUJIPtl::UnpackLPDU(BYTE *pRecvBuf)
{
    // 鏈路層解幀
	BYTE* pRecv = pRecvBuf;
	
	LinkCtrl lnkCtrl;
	BYTE	 addr;
	// 固定幀長
	if (0x10 == pRecv[0])
	{	
		LPDU_Fix_Fmt *pFmt = (LPDU_Fix_Fmt *)pRecv;
		lnkCtrl = pFmt->ctrl;
		addr = pFmt->addr;
	}
	else
	{	// 可變幀長
		LPDU_Vol_Head *pHead = (LPDU_Vol_Head *)pRecv;
		lnkCtrl = pHead->ctrl;
		addr = pHead->addr;
	}
	
	BOOL bACD = FALSE;
	BYTE byNodeID = m_IEC103Data.m_addrtoID[addr];
	RealRunIED *pRunIed = m_IEC103Data.m_RunIed[byNodeID];
	if (pRunIed)
	{
		// 鏈路恢復(fù)正常
		if (pRunIed->linkRes)
		{
			pRunIed->linkRes = pRunIed->linkQuery = pRunIed->fcb = 0;
			pRunIed->queryFull = pRunIed->query = 1;

			// 通訊恢復(fù)正常
			pRunIed->lnkNoRecvCnt = 0;
			//CIED *pIED = pRunIed->pDevData;
			//DevYxPara devYx = pBayDev->GetDevYxPara();
			//pBayDev->SetYaoXinRecvVal(devYx.wComYxId, 0);
		}	
		if (0x68 == pRecv[0])
		{	
			UnpackASDU_Ied(pRecvBuf, pRunIed);
		}

		pRunIed->acd = lnkCtrl.fcbAcd;
		pRunIed->linkQuery = lnkCtrl.fcvDfc;

		if(pRunIed->acd)//080905修改,適應(yīng)現(xiàn)場需要,如果有1級數(shù)據(jù)立刻查詢,不再等到下一輪
		{
			m_IEC103Data.m_byCycCnt = byNodeID;
			bACD = TRUE;
		}
	}
	//if(!bACD)//080905修改,適應(yīng)現(xiàn)場需要,如果有1級數(shù)據(jù)立刻查詢,不再等到下一輪
	//	m_IEC103Data.m_byCycCnt = (m_IEC103Data.m_byCycCnt+1) % CH_MAX_IED_NUM;

	// 轉(zhuǎn)入組幀過程
	m_IEC103Data.m_runStep = PtlRun_PackASDU;
}

/*****
*UnpackASDU_Ied - 應(yīng)用層解幀函數(shù)
*
*功能:
*	應(yīng)用服務(wù)數(shù)據(jù)單元解幀函數(shù) 
*
******/
void CIEC103_XUJIPtl::UnpackASDU_Ied(BYTE *pRecvBuf, RealRunIED *pRunIed)
{
	// 防護
	if (!pRunIed)
		return;

	ASDU_Head *pHead = (ASDU_Head *)(pRecvBuf + sizeof(LPDU_Vol_Head));

	BYTE* buf = pRecvBuf + sizeof(LPDU_Vol_Head);
	BYTE  len = pRecvBuf[1] - 2;

	switch (pHead->type)
	{
	case M_TM_TA_3:
		Unpack_Asdu_1(buf, len, pRunIed);
		break;
	case M_TMR_TA_3:
		Unpack_Asdu_2(buf, len, pRunIed);
		break;
	case M_GD_NTA_3:
		Unpack_Asdu_10(buf, len, pRunIed);
		break;
	case M_MEVII_NA_3:
		Unpack_Asdu_50(buf, len, pRunIed);
		break;
	case M_IT_NA_3:
		Unpack_Asdu_36(buf, len-1, pRunIed);
		break;
	case M_IT_TA_3:
		Unpack_Asdu_37(buf, len-1, pRunIed);
		break;
	case M_MEI_NA_3:
		Unpack_Asdu_3(buf, len, pRunIed);
		break;
	case M_TME_TA_3:
		Unpack_Asdu_4(buf, len, pRunIed);
		break;
	case M_IRC_NA_3:
		{
			Unpack_Asdu_5(buf, len, pRunIed);
			if(pRunIed->step == eInitStart)
			{
				pRunIed->nASDU5Cnt++;
				if(pRunIed->nASDU5Cnt >= 2)
					pRunIed->step = eInitTime;
			}
			break;
		}
	case M_SYN_TA_3://時鐘同步
		Unpack_Asdu_6(buf, len, pRunIed);
		if(eInitTime == pRunIed->step)
			pRunIed->step = eInitGenAsk;
		break;
	case M_TGI_NA_3://總招結(jié)束
		Unpack_Asdu_8(buf, len, pRunIed);
		if(eInitGenAsk == pRunIed->step)
		{
			pRunIed->step = eInitEnd;
			pRunIed->bCommInitFlag = FALSE;
			pRunIed->nASDU5Cnt = 0;
		}
		break;
	case M_MEII_NA_3:
		Unpack_Asdu_9(buf, len, pRunIed);
		break;
	case M_GI_NTA_3:
		Unpack_Asdu_11(buf, len, pRunIed);
		break;
	case M_LRT_TA_3:
		Unpack_Asdu_23(buf, len, pRunIed);
		break;
	case M_RTD_TA_3:
		Unpack_Asdu_26(buf, len, pRunIed);
		break;
	case M_RTC_NA_3:
		Unpack_Asdu_27(buf, len, pRunIed);
		break;
	case M_RTT_NA_3:
		Unpack_Asdu_28(buf, len, pRunIed);
		break;
	case M_TDT_TA_3:
		Unpack_Asdu_29(buf, len, pRunIed);
		break;
	case M_TDN_NA_3:
		Unpack_Asdu_30(buf, len, pRunIed);
		break;
	case M_EOT_NA_3:
		Unpack_Asdu_31(buf, len, pRunIed);
		break;
	case M_MEIII_TA_3:
		Unpack_Asdu_32(buf, len, pRunIed);
		break;
	case M_MEIV_TA_3:
		Unpack_Asdu_33(buf, len, pRunIed);
		break;
	case M_MEV_TA_3:
		Unpack_Asdu_34(buf, len, pRunIed);
		break;
	case M_MEVI_TA_3:
		Unpack_Asdu_35(buf, len, pRunIed);
		break;
	case M_ST_NA_3:
		Unpack_Asdu_38(buf, len, pRunIed);
		break;
	case M_ST_TA_3:
		Unpack_Asdu_39(buf, len, pRunIed);
		break;
	case M_SP_NA_3:
	case M_DP_NA_3:
		Unpack_Asdu_4042(buf, len-1, pRunIed);
		break;
	case M_SP_TA_3:
	case M_DP_TA_3:
		Unpack_Asdu_4143(buf, len-1, pRunIed);
		break;
	case M_SS_NA_3:
	case M_DS_NA_3:
		Unpack_Asdu_4446(buf, len-1, pRunIed);
		break;
	case M_SS_TA_3:
	case M_DS_TA_3:
		Unpack_Asdu_4547(buf, len-1, pRunIed);
		break;
	case M_WL_TA_3:
		Unpack_Asdu_48(buf, len, pRunIed);
		break;
	case M_DC_NA_3:
		Unpack_Asdu_64(buf, len, pRunIed);
		break;
	case M_RC_NA_3:			
		Unpack_Asdu_65(buf, len, pRunIed);
		break;
	case M_SE_NA_3:
		Unpack_Asdu_66(buf, len, pRunIed);
		break;
	case M_CC_NA_3:
		Unpack_Asdu_67(buf, len, pRunIed);
		break;
	case M_ASDU_70:
		Unpack_Asdu_70(buf, len, pRunIed);
		break;
	case M_CI_NA_3:
		Unpack_Asdu_88(buf, len, pRunIed);
		break;
	case 0x31://VQC裝置上送保護事項的楨格式
	//	Unpack_Asdu_49(buf, len, pRunIed);
	default:
		break;
	}
}

// 帶時標(biāo)的報文(事項)
void CIEC103_XUJIPtl::Unpack_Asdu_1(BYTE* buf, BYTE len, RealRunIED *pRunIed)
{
	int nIndex;
	TASK *pTask = NULL;
	CIED *pIED = pRunIed->pDevData;
	BYTE byNodeID = pIED->m_IEDConfig.byNodeID;

	ASDU_1_Fmt *pFmt = (ASDU_1_Fmt *)buf;
	//調(diào)整時間
	WB_UNION wb;
	wb.bwUnion.byVal[0] = pFmt->tm.byHighMs;
	wb.bwUnion.byVal[1] = pFmt->tm.byLowMs;

	BYTE yxBit = (pFmt->dpi & 0x03) >> 1;
	// 命令確認(rèn)報文(肯定/否定)
	if (M_AFM_ORD == pFmt->head.cot || M_NEG_ORD == pFmt->head.cot) 
	{
		if((WatchTask(pTask, taskCmdYkSelect, byNodeID) ||
			WatchTask(pTask, taskCmdYkExecute, byNodeID) ||
			WatchTask(pTask, taskCmdYkCancel, byNodeID)) && pTask)
		{
			// 遙控命令
			YK_COMMAND *pCommand = (YK_COMMAND *)pTask->iUserData;
			nIndex = GetnIndexbyFuninf(pIED, dataYk, pFmt->head.funInf);
			if(nIndex >= 0)
			{
				if (nIndex != pCommand->byYkNode || M_NEG_ORD == pFmt->head.cot) 
				{
					if (pCommand->byAction == yk_PrevH ||pCommand->byAction == yk_PrevF)
						pCommand->eReturn = fj_wrong;
					else
						pCommand->eReturn = act_wrong;
					pTask->eTaskReturn=retWrong;
				}
				else
				{
					if (pCommand->byAction == yk_PrevH ||pCommand->byAction == yk_PrevF)
						pCommand->eReturn = fj_right;
					else
						pCommand->eReturn = act_right;
					pTask->eTaskReturn=retRight;
				}
				pTask->eRespType = taskCmdYkReturn;
				m_pCH->TaskResp(pTask);
				//m_pCH->m_pTaskQue->UnLockTask();
			}
		}
		else if(WatchTask(pTask, taskCmdBhReset, byNodeID) && pTask)
		{// 保護復(fù)歸
		/*	if (M_NEG_ORD == pFmt->head.cot)
				pTask->iUserData[0] = retWrong;
			else
				pTask->iUserData[0] = retRight;

			pTask->eRespType = taskRespBhReset;
			m_pCH->TaskResp(pTask);
			m_pCH->m_pTaskQue->UnLockTask();
		*/}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲私人黄色宅男| 亚洲国产中文字幕| 亚洲mv大片欧洲mv大片精品| 国产精品伦一区| 国产精品视频免费| 国产精品国产精品国产专区不片| 精品成人在线观看| 久久众筹精品私拍模特| 精品美女在线播放| 久久一区二区三区四区| 26uuu久久天堂性欧美| 欧美大度的电影原声| 欧美大度的电影原声| 欧美不卡一二三| 久久九九久精品国产免费直播| 日韩视频在线观看一区二区| 日韩三级视频在线看| 亚洲精品一区二区在线观看| 在线电影一区二区三区| 成人免费小视频| 国产精品 日产精品 欧美精品| 欧美日韩国产另类一区| 日韩美女视频一区| 国产91精品在线观看| 精品少妇一区二区三区在线视频| 舔着乳尖日韩一区| 欧美丝袜自拍制服另类| 亚洲综合图片区| 91免费观看在线| 国产精品美女www爽爽爽| 国内精品伊人久久久久影院对白| 欧美福利一区二区| 一区二区三区成人在线视频| 97久久精品人人爽人人爽蜜臀| 国产调教视频一区| 成人三级伦理片| 国产精品伦一区| av一本久道久久综合久久鬼色| 国产午夜久久久久| 国产超碰在线一区| 中文字幕成人网| 成人av网站免费| 亚洲少妇中出一区| 欧美亚洲禁片免费| 午夜精品久久久久久久久久久 | 7777精品伊人久久久大香线蕉完整版| 亚洲国产精品av| 99国产欧美另类久久久精品| 亚洲欧洲成人av每日更新| av在线不卡网| 一区二区三区日韩欧美| 欧美日韩不卡一区二区| 丝袜诱惑亚洲看片| 精品国产一区二区在线观看| 国产成人自拍网| 中文文精品字幕一区二区| 成人三级伦理片| 亚洲精品乱码久久久久| 91黄视频在线| 国产精品中文字幕欧美| 91精品国产综合久久小美女| 国产精品久久网站| 国内精品伊人久久久久影院对白| 欧美日韩国产中文| 亚洲少妇30p| 成人精品国产免费网站| 2020国产精品久久精品美国| 亚洲午夜激情av| 在线观看日韩高清av| 国产精品伦理一区二区| 国产.精品.日韩.另类.中文.在线.播放| 成人在线综合网站| 国产精品福利影院| 91精品国产91久久久久久一区二区 | 欧美一二三四区在线| 国产精品一区在线| 亚洲小说欧美激情另类| 精品免费日韩av| 欧美中文字幕一区二区三区| 韩国精品在线观看| 一区二区三区视频在线看| 精品人在线二区三区| 91视频精品在这里| 国产综合色在线| 亚洲综合图片区| 亚洲国产精品国自产拍av| 欧美日韩二区三区| www.亚洲精品| 精品一区二区久久久| 亚洲一区二区三区在线看| 精品国产一区二区三区久久影院| 色一情一伦一子一伦一区| 国产在线观看免费一区| 亚洲国产精品视频| **欧美大码日韩| 久久久久久久久久看片| 欧美日韩午夜影院| 99精品国产91久久久久久| 国产一区二区免费视频| 日韩中文字幕区一区有砖一区| 中文字幕av一区二区三区| 亚洲精品一区二区三区精华液| 欧美日韩小视频| 日本韩国欧美三级| 99视频精品在线| 国产99久久精品| 六月婷婷色综合| 视频一区中文字幕国产| 亚洲国产欧美在线| 最新日韩av在线| 国产精品不卡一区二区三区| 久久久久亚洲蜜桃| 精品少妇一区二区| 精品国产1区2区3区| 一区二区三区免费看视频| 91久久精品一区二区| 免费观看30秒视频久久| 国产精品午夜春色av| 欧美揉bbbbb揉bbbbb| 视频一区二区中文字幕| 欧美在线观看视频一区二区| 奇米色777欧美一区二区| 亚洲mv在线观看| 日韩国产欧美三级| 美女视频黄a大片欧美| 视频一区欧美日韩| 日韩精品国产欧美| 午夜av一区二区| 免费日本视频一区| 国产一区二区三区四区五区入口| 精品一区二区在线播放| 日本在线不卡视频一二三区| 免费精品视频在线| 美女精品一区二区| 国产传媒日韩欧美成人| av在线不卡免费看| 欧美日韩视频专区在线播放| 91精品国产综合久久精品麻豆| 日韩一级免费观看| 国产校园另类小说区| 国产精品久久午夜夜伦鲁鲁| 一区二区三区在线观看欧美| 亚洲精品高清视频在线观看| 亚洲一区二区三区在线看| 蜜桃视频在线观看一区| 欧美日韩国产另类一区| 成人黄色小视频在线观看| 精品一区二区三区视频在线观看| 亚洲综合色丁香婷婷六月图片| 亚洲日韩欧美一区二区在线| 日韩毛片在线免费观看| 国产日本欧洲亚洲| 久久久精品人体av艺术| 中文字幕一区二区三区视频| 一区二区三区在线视频观看58| 亚洲第一成年网| 黑人巨大精品欧美一区| 99久久婷婷国产综合精品| 欧美视频三区在线播放| 欧美成va人片在线观看| 国产精品超碰97尤物18| 亚洲电影第三页| 亚洲图片自拍偷拍| 日精品一区二区三区| 久久国产综合精品| 91在线观看视频| 日韩欧美在线综合网| 亚洲国产精品精华液2区45| 亚洲与欧洲av电影| 国产麻豆精品在线| 欧美日产在线观看| 日韩欧美中文字幕一区| 亚洲欧洲韩国日本视频| 激情图区综合网| 在线免费观看视频一区| 日韩亚洲国产中文字幕欧美| 国产欧美日韩视频一区二区| 午夜精品爽啪视频| 99国产精品一区| 精品国产乱码久久久久久蜜臀| 亚洲码国产岛国毛片在线| 九九久久精品视频| 欧美剧情片在线观看| 国产精品麻豆视频| 国产真实精品久久二三区| 91久久精品国产91性色tv| 国产免费观看久久| 麻豆免费看一区二区三区| 欧美日韩一区二区三区高清| 亚洲欧美在线另类| 高清国产一区二区三区| 2023国产一二三区日本精品2022| 一区二区国产盗摄色噜噜| 国产成人精品免费一区二区| 日韩欧美在线网站| 三级久久三级久久久| 欧美日韩一卡二卡| 亚洲国产成人高清精品| 在线一区二区视频| 亚洲视频综合在线|