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

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

?? uartcommand.c.svn-base

?? 最新火熱的CX32 源代碼
?? SVN-BASE
字號:
     
#include "TUartlow.h"
#include "UartCommand.h"
#include "IOctrl.h"
#include "tvdebug.h"
#include "Ram.h"
#include "TVKey.h"
#include "..\data\n009_k.h"

#ifdef _USE_STi7710_
extern Gdata GlobalData g_Data;
Byte Packetbuff[28];
Word ATVAck_TransID;
Byte ucReceiveCnt = 0;
Byte ucACCERRORP = 0;
Byte ucSendCnt = 0;


static Code unsigned short tusCRC16[256] =
{
   0x0000, 0xc0c1, 0xc181, 0x0140, 0xc301, 0x03c0, 0x0280, 0xc241,
   0xc601, 0x06c0, 0x0780, 0xc741, 0x0500, 0xc5c1, 0xc481, 0x0440,
   0xcc01, 0x0cc0, 0x0d80, 0xcd41, 0x0f00, 0xcfc1, 0xce81, 0x0e40,
   0x0a00, 0xcac1, 0xcb81, 0x0b40, 0xc901, 0x09c0, 0x0880, 0xc841,
   0xd801, 0x18c0, 0x1980, 0xd941, 0x1b00, 0xdbc1, 0xda81, 0x1a40,
   0x1e00, 0xdec1, 0xdf81, 0x1f40, 0xdd01, 0x1dc0, 0x1c80, 0xdc41,
   0x1400, 0xd4c1, 0xd581, 0x1540, 0xd701, 0x17c0, 0x1680, 0xd641,
   0xd201, 0x12c0, 0x1380, 0xd341, 0x1100, 0xd1c1, 0xd081, 0x1040,
   0xf001, 0x30c0, 0x3180, 0xf141, 0x3300, 0xf3c1, 0xf281, 0x3240,
   0x3600, 0xf6c1, 0xf781, 0x3740, 0xf501, 0x35c0, 0x3480, 0xf441,
   0x3c00, 0xfcc1, 0xfd81, 0x3d40, 0xff01, 0x3fc0, 0x3e80, 0xfe41,
   0xfa01, 0x3ac0, 0x3b80, 0xfb41, 0x3900, 0xf9c1, 0xf881, 0x3840,
   0x2800, 0xe8c1, 0xe981, 0x2940, 0xeb01, 0x2bc0, 0x2a80, 0xea41,
   0xee01, 0x2ec0, 0x2f80, 0xef41, 0x2d00, 0xedc1, 0xec81, 0x2c40,
   0xe401, 0x24c0, 0x2580, 0xe541, 0x2700, 0xe7c1, 0xe681, 0x2640,
   0x2200, 0xe2c1, 0xe381, 0x2340, 0xe101, 0x21c0, 0x2080, 0xe041,
   0xa001, 0x60c0, 0x6180, 0xa141, 0x6300, 0xa3c1, 0xa281, 0x6240,
   0x6600, 0xa6c1, 0xa781, 0x6740, 0xa501, 0x65c0, 0x6480, 0xa441,
   0x6c00, 0xacc1, 0xad81, 0x6d40, 0xaf01, 0x6fc0, 0x6e80, 0xae41,
   0xaa01, 0x6ac0, 0x6b80, 0xab41, 0x6900, 0xa9c1, 0xa881, 0x6840,
   0x7800, 0xb8c1, 0xb981, 0x7940, 0xbb01, 0x7bc0, 0x7a80, 0xba41,
   0xbe01, 0x7ec0, 0x7f80, 0xbf41, 0x7d00, 0xbdc1, 0xbc81, 0x7c40,
   0xb401, 0x74c0, 0x7580, 0xb541, 0x7700, 0xb7c1, 0xb681, 0x7640,
   0x7200, 0xb2c1, 0xb381, 0x7340, 0xb101, 0x71c0, 0x7080, 0xb041,
   0x5000, 0x90c1, 0x9181, 0x5140, 0x9301, 0x53c0, 0x5280, 0x9241,
   0x9601, 0x56c0, 0x5780, 0x9741, 0x5500, 0x95c1, 0x9481, 0x5440,
   0x9c01, 0x5cc0, 0x5d80, 0x9d41, 0x5f00, 0x9fc1, 0x9e81, 0x5e40,
   0x5a00, 0x9ac1, 0x9b81, 0x5b40, 0x9901, 0x59c0, 0x5880, 0x9841,
   0x8801, 0x48c0, 0x4980, 0x8941, 0x4b00, 0x8bc1, 0x8a81, 0x4a40,
   0x4e00, 0x8ec1, 0x8f81, 0x4f40, 0x8d01, 0x4dc0, 0x4c80, 0x8c41,
   0x4400, 0x84c1, 0x8581, 0x4540, 0x8701, 0x47c0, 0x4680, 0x8641,
   0x8201, 0x42c0, 0x4380, 0x8341, 0x4100, 0x81c1, 0x8081, 0x4040
};

#endif

/*****************************************************************************\
  DESCRIPTION
    Calculate 16 bit CRC

  ARGUMENTS
    void *start_ptr     - <IN> Start address of data for crc'ing.
    unsigned int length - <IN> Block size to be crc'ed.

  RETURN VALUES
    unsigned short - 16 bit CRC code.

  COMMENTS
    Calculates the "standard" PC 16 bit CRC from a start address for the size
    specified. This the algorithm gives the same result as used by PC archiving
    programs that use 16 bit CRCs e.g. PKARC, LHA, LHARC, LZH etc.

\****************************************************************************/
Word CRC16_process(unsigned char*start_ptr, int length)
{
#ifdef _USE_STi7710_
  unsigned char   *data_ptr;
  WORD crc_value=0xffff;
  WORD crc_value1,crc_value2,crc_value3,crc_value5;
  Byte crc_value4;
  /* init the start value */
  data_ptr  = start_ptr;
   
  /* calculate CRC */
  while (length--)
  {
    crc_value1 = (WORD)crc_value >> 8;
    crc_value2 = (WORD)crc_value1 & 0xFF;
    crc_value4 = crc_value ^ (unsigned char)*data_ptr++;
    crc_value5 = tusCRC16[crc_value4 & 0xFF];
    crc_value = (WORD)crc_value2 ^ crc_value5;
   // crc_value = (((crc_value >> 8) & 0xFF) ^ tusCRC16[((crc_value ^ (unsigned char) *data_ptr++) & 0xFF)]);
  }
  return (crc_value);
 #else
  return 0;
 #endif
}

Byte  HandleUartCommand(Byte ucVirtualKey)
{
	IByte i;
	Byte PreloadPara[4];
#ifdef _USE_STi7710_
     switch(ucVirtualKey)
     {
		case _VK_RED_:
		    SendUartCommand(_DTVOP_TV_KEY_EVENT_,_SUBOP_IR_KEY_MENU_,0x0000,0x0000,_NULL_,ucVirtualKey);
			ucVirtualKey = _NULL_;
		break;
		case _VK_1_://TEST TO SET CC
			PreloadPara[0]= _CCD_DIGITAL1_;
		    SendUartCommand(_DTVOP_TV_CCD_,_SUBOP_CCD_Set_Service_,0x0000,0x0001,PreloadPara,ucVirtualKey);
			ucVirtualKey = _NULL_;
		break;
		case _VK_7_://TEST TO SET TV RATING
			for(i = 0;i < 4;i++)
				PreloadPara[i]= ((DWORD)_RATING_MPAA_G_)>>(i*8);
		    SendUartCommand(_DTVOP_TV_RATING_,_SUBOP_Rationg_Set_Rating_,0x0000,0x0004,PreloadPara,ucVirtualKey);
			ucVirtualKey = _NULL_;
		break;
		case _VK_9_://TEST TO CLEAR TV RATING
			for(i = 0;i < 4;i++)
				PreloadPara[i]= ((DWORD)_RATING_MPAA_G_)>>(i*8);
		    SendUartCommand(_DTVOP_TV_RATING_,_SUBOP_Rationg_Clear_Rating_,0x0000,0x0004,PreloadPara,ucVirtualKey);
			ucVirtualKey = _NULL_;
		break;
		case _VK_2_:
		    SendUartCommand(_DTVOP_TV_KEY_EVENT_,_SUBOP_IR_KEY_ARROWUP_,0x0000,0x0000,_NULL_,ucVirtualKey);
			ucVirtualKey = _NULL_;
		break;
		case _VK_5_:
		    SendUartCommand(_DTVOP_TV_KEY_EVENT_,_SUBOP_IR_KEY_SELECT_,0x0000,0x0000,_NULL_,ucVirtualKey);
			ucVirtualKey = _NULL_;
		break;
		case _VK_8_:
		    SendUartCommand(_DTVOP_TV_KEY_EVENT_,_SUBOP_IR_KEY_ARROWDOWN_,0x0000,0x0000,_NULL_,ucVirtualKey);
			ucVirtualKey = _NULL_;
		break;
		case _VK_4_:
		    SendUartCommand(_DTVOP_TV_KEY_EVENT_,_SUBOP_IR_KEY_ARROWLEFT_,0x0000,0x0000,_NULL_,ucVirtualKey);
			ucVirtualKey = _NULL_;
		break;
		case _VK_6_:
		    SendUartCommand(_DTVOP_TV_KEY_EVENT_,_SUBOP_IR_KEY_ARROWRIGHT_,0x0000,0x0000,_NULL_,ucVirtualKey);
			ucVirtualKey = _NULL_;
		break;
		case _VK_0_:
			SendUartCommand(_DTVOP_TV_KEY_EVENT_,_SUBOP_IR_KEY_NUM0_,0x0000,0x0000,_NULL_,ucVirtualKey);
			ucVirtualKey = _NULL_;
		break;
		case _VK_SEND_ACK_:
		    SendUartCommand(_DTVOP_TV_ACK_,_SUBOP_NONE_,ATVAck_TransID,0x0000,_NULL_,ucVirtualKey);
			ucVirtualKey = _NULL_;
		break;
		case _VK_UART_RESEND_:
			if(s_SysUARTStruct.bDtvAcked == _FALSE_)
			{
				s_SysUARTStruct.bResendCmding = _TRUE_;
				s_SysUARTStruct.wBakTransID--;
				if(s_SysUARTStruct.wBakTransID == 0x8011)
				s_SysUARTStruct.wBakTransID = 0xFFFE;
			    tdAddVirtualKey(s_SysUARTStruct.ucResendCmd);
			}
			ucVirtualKey = _NULL_;
		break;
		default:
		break;
     }
#endif
	return ucVirtualKey;
}

Void SendUartCommandinit(void)
{
#ifdef _USE_STi7710_
	UART1_ENABLE_RINT;
	s_SysUARTStruct.PackData.TranID = (0x8012 - 1);
	s_SysUARTStruct.wBakTransID	= (0x8012 - 1);
	s_SysUARTStruct.Packetlength = 0x0000;
	s_SysUARTStruct.bDtvAcked = _TRUE_;
	s_SysUARTStruct.ucResendCmdTimer = 0;
	s_SysUARTStruct.ucResendTryTimes = 0;
	s_UARTReceiveStruct.Packetlength = 0x0000;
#endif
}

Void SendUartCommand(Word DTVOper,Word SubOper,Word TranID,Word Payloadsize,APByte Payload,Byte ucVirtualKey)
{
#ifdef _USE_STi7710_
	int ii,k,k1;
	Byte Payloadvalue[20];
	APByte p=(APByte )&s_SysUARTStruct.PackData;
	k1 = 0;
	//if(!g_Data.bUartReceiveProcessing)
	{
		//UART1_DISABLE_RECEIVE;
		tdSleep(20);
		g_Data.bUartSentProcessing = _TRUE_;
		s_SysUARTStruct.PackData.Magic = 0xEFBE;
		s_SysUARTStruct.PackData.Cmdtype = 0x19;
		s_SysUARTStruct.PackData.Framesize = 0x0008 + Payloadsize;
		s_SysUARTStruct.PackData.CRC = 0x0000;
		s_SysUARTStruct.PackData.Dtvoper = DTVOper;
		s_SysUARTStruct.PackData.Suboper = SubOper;
		if(TranID == 0)
		{
			s_SysUARTStruct.wBakTransID++;
			s_SysUARTStruct.PackData.TranID = s_SysUARTStruct.wBakTransID;
			if(s_SysUARTStruct.PackData.TranID >= 0xffff)
				s_SysUARTStruct.PackData.TranID = 0x8012;
			s_SysUARTStruct.wBakTransID = s_SysUARTStruct.PackData.TranID;
			s_SysUARTStruct.bDtvAcked = _FALSE_;
	 		s_SysUARTStruct.ucResendCmd = ucVirtualKey;
//			s_SysUARTStruct.ucResendCmdTimer = 2;//YYM_06_07_17 delete for[]
			if(s_SysUARTStruct.bResendCmding == _FALSE_)
			{
				s_SysUARTStruct.ucResendCmdTimer = 3;
				s_SysUARTStruct.ucResendTryTimes = 3;
			}
			else
				s_SysUARTStruct.ucResendCmdTimer = 2;
		}
		else//for atv to send ack
			s_SysUARTStruct.PackData.TranID = TranID;

		s_SysUARTStruct.PackData.Payloadsize= Payloadsize;
		s_SysUARTStruct.PackData.Payload= Payload;
		if (Payloadsize!=0)
		{
			for(k=0;k<Payloadsize;k++)
			{
				Payloadvalue[k] = *Payload++;
				*(p+0x0f+k) = Payloadvalue[k];
			}
		}
		s_SysUARTStruct.PackData.CRC = CRC16_process((unsigned char*)p,0x0f + Payloadsize); 
		ucReceiveCnt = 0;
#if 0 //--------YYM_06_07_17 for[]
        tdGotoXY(1, 7);
        tdPuts((RPByte)"SEND:");
        tdGotoXY(1, 8);
#endif
//--------YYM_06_07_17 added for[]
		
//added end
		for(ii=0; ii< 0x0f + Payloadsize; ii++)  
		{
			if (ii< 0x0f)
			{
#if 1 //--------YYM_06_06_20 for[]
				putchar(*p++); 
#else
				putchar(*p); 
		        tdPrintNumber(_ID_HEX_, 3, *p, _TRUE_);
        		tdPuts((RPByte)" ");
				p++;
#endif
			}
			else if((Payloadsize!= 0x0000)&&(ii>=0x0f))
			{
#if 1 //--------YYM_06_06_20 for[]
				putchar(Payloadvalue[k1++]);
#else
				putchar(Payloadvalue[k1]);
		        tdPrintNumber(_ID_HEX_, 3, Payloadvalue[k1], _TRUE_);
        		tdPuts((RPByte)" ");
				k1++;
#endif
			}
		} 
		ucSendCnt = ii;
		g_Data.bUartSentProcessing = _FALSE_;
		s_SysUARTStruct.Packetlength = 0x0000;
		s_UARTReceiveStruct.Packetlength = 0x0000;//YYM_06_07_17 delete for[]
		//UART1_ENABLE_RECEIVE;
	}
#endif
}

Void ReceiveUartCommand(Void)
{
#ifdef _USE_STi7710_
#if 1 //--------YYM_06_06_19 for[]
	IByte Acc;
	APByte p1 = (Byte *)&Packetbuff;
	Acc = SC1CR;
	Acc &= 0x1c;
	if(Acc == 0)
	{
		ucReceiveCnt++;
		g_Data.bUartReceiveProcessing = _TRUE_;
		Packetbuff[s_UARTReceiveStruct.Packetlength] = SC1BUF;
		s_UARTReceiveStruct.Packetlength++;
		if((s_UARTReceiveStruct.Packetlength == 0x02)&&((Packetbuff[0] != 0xBE)||(Packetbuff[1]!=0xEF)))
		{
			//UART1_DISABLE_RECEIVE;
#ifdef _DEBUG_STI7710_
			tdGotoXY(10, 5);
	        tdPuts((RPByte)"magic error");
#endif
			s_UARTReceiveStruct.Packetlength = 0x0000;
		}
		if(s_UARTReceiveStruct.Packetlength == 0x000f) 
		{
			s_UARTReceiveStruct.PackData.Payloadsize = (WORD)Packetbuff[0x0d] + ((WORD)(Packetbuff[0x0e]))*256;
		}
		if(s_UARTReceiveStruct.Packetlength >= (0x000f + s_UARTReceiveStruct.PackData.Payloadsize))
		{
			s_UARTReceiveStruct.PackData.Magic = 0xEFBE;
			s_UARTReceiveStruct.PackData.Cmdtype = 0x19;
			s_UARTReceiveStruct.PackData.Framesize = 0x0008 + s_SysUARTStruct.PackData.Payloadsize;
			s_UARTReceiveStruct.PackData.CRC = 0x0000;
			s_UARTReceiveStruct.PackData.Dtvoper = Packetbuff[0x07]+((WORD)(Packetbuff[0x08]))*256;
			s_UARTReceiveStruct.PackData.Suboper = Packetbuff[0x09]+((WORD)(Packetbuff[0x0a]))*256;
			s_UARTReceiveStruct.PackData.TranID = Packetbuff[0x0b]+((WORD)(Packetbuff[0x0c]))*256;
			s_UARTReceiveStruct.Packetlength = 0x0000;
			g_Data.bUartReceiveProcessing = _FALSE_;

			//if not a ack,add virtual key to send ack here
			//UART1_DISABLE_RECEIVE;
			if(s_UARTReceiveStruct.PackData.Dtvoper != 0x39)
			{
#ifdef _DEBUG_STI7710_
	        	tdGotoXY(10, 5);
	        	tdPuts((RPByte)"Not an ack,send ack to dtv");
#endif
#if 0 //--------YYM_06_07_19 for[]
				tdAddVirtualKey(_VK_SEND_ACK_);
				ATVAck_TransID = s_UARTReceiveStruct.PackData.TranID;
#endif
			}
			else
			{
				s_SysUARTStruct.bDtvAcked = _TRUE_;
				s_SysUARTStruct.ucResendCmdTimer = 0;
				s_SysUARTStruct.ucResendTryTimes = 0;
				s_SysUARTStruct.bResendCmding = _FALSE_;
#ifdef _DEBUG_STI7710_
	        	tdGotoXY(10, 6);
	        	tdPuts((RPByte)"is  an ack");
#endif
			}
		}
		g_Data.bUartReceiveProcessing = _FALSE_;
	}
	else
	{
		ucReceiveCnt++;
		ucACCERRORP = ucReceiveCnt;
		Packetbuff[s_UARTReceiveStruct.Packetlength] = SC1BUF;
		s_UARTReceiveStruct.Packetlength++;
/*--------YYM_06_07_18 delete for[]
		s_UARTReceiveStruct.Packetlength = 0x0000;
		s_SysUARTStruct.bDtvAcked = _TRUE_;
		s_SysUARTStruct.ucResendCmdTimer = 0;
		s_SysUARTStruct.ucResendTryTimes = 0;
		s_SysUARTStruct.bResendCmding = _FALSE_;
*///delete end
#ifdef _DEBUG_STI7710_
    	tdGotoXY(10, 6);
		tdPrintNumber(_ID_HEX_, 3, Acc, _TRUE_);
#endif
    	//tdPuts((RPByte)"acc error");
	}
		
#else
	APByte p1 = (Byte *)&Packetbuff;
    ucReceiveCnt++;
	//if(!g_Data.bUartSentProcessing)
	{
		g_Data.bUartReceiveProcessing = _TRUE_;
		Packetbuff[s_UARTReceiveStruct.Packetlength] = SC1BUF;
		s_UARTReceiveStruct.Packetlength++;
		if((s_UARTReceiveStruct.Packetlength == 0x02)&&((Packetbuff[0] != 0xBE)||(Packetbuff[1]!=0xEF)))
		{
			//UART1_DISABLE_RECEIVE;
			tdGotoXY(10, 5);
	        tdPuts((RPByte)"magic error");
			s_UARTReceiveStruct.Packetlength = 0x0000;
		}
		if(s_UARTReceiveStruct.Packetlength == 0x000f) 
		{
			s_UARTReceiveStruct.PackData.Payloadsize = (WORD)Packetbuff[0x0d] + ((WORD)(Packetbuff[0x0e]))*256;
		}
		if(s_UARTReceiveStruct.Packetlength >= (0x000f + s_UARTReceiveStruct.PackData.Payloadsize))
		{
			s_UARTReceiveStruct.PackData.Magic = 0xEFBE;
			s_UARTReceiveStruct.PackData.Cmdtype = 0x19;
			s_UARTReceiveStruct.PackData.Framesize = 0x0008 + s_SysUARTStruct.PackData.Payloadsize;
			s_UARTReceiveStruct.PackData.CRC = 0x0000;
			s_UARTReceiveStruct.PackData.Dtvoper = Packetbuff[0x07]+((WORD)(Packetbuff[0x08]))*256;
			s_UARTReceiveStruct.PackData.Suboper = Packetbuff[0x09]+((WORD)(Packetbuff[0x0a]))*256;
			s_UARTReceiveStruct.PackData.TranID = Packetbuff[0x0b]+((WORD)(Packetbuff[0x0c]))*256;
			s_UARTReceiveStruct.Packetlength = 0x0000;
			g_Data.bUartReceiveProcessing = _FALSE_;

			//if not a ack,add virtual key to send ack here
			//UART1_DISABLE_RECEIVE;
			if(s_UARTReceiveStruct.PackData.Dtvoper != 0x39)
			{
	        	tdGotoXY(10, 5);
	        	tdPuts((RPByte)"Not an ack,send ack to dtv");
				tdAddVirtualKey(_VK_SEND_ACK_);
				ATVAck_TransID = s_UARTReceiveStruct.PackData.TranID;
			}
			else
			{
				s_SysUARTStruct.bDtvAcked = _TRUE_;
				s_SysUARTStruct.ucResendCmdTimer = 0;
				s_SysUARTStruct.ucResendTryTimes = 0;
				s_SysUARTStruct.bResendCmding = _FALSE_;
	        	tdGotoXY(10, 6);
	        	tdPuts((RPByte)"is  an ack");
			}
		}
		g_Data.bUartReceiveProcessing = _FALSE_;
	}
#endif
#endif
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩视频在线一区二区| 亚洲欧美日韩国产另类专区| 亚洲日本中文字幕区| 人人狠狠综合久久亚洲| 99国产精品久久久久久久久久久| 欧美日韩亚洲高清一区二区| 国产精品黄色在线观看| 美国欧美日韩国产在线播放| 日本道免费精品一区二区三区| 亚洲精品一区二区三区蜜桃下载| 一区二区三区视频在线看| 国产大片一区二区| 日韩小视频在线观看专区| 夜夜精品浪潮av一区二区三区| 丰满少妇在线播放bd日韩电影| 欧美r级在线观看| 亚洲国产你懂的| 在线看不卡av| 亚洲女女做受ⅹxx高潮| 99视频热这里只有精品免费| 久久综合狠狠综合| 国产在线国偷精品产拍免费yy| 日韩欧美亚洲国产精品字幕久久久 | 久久久久久麻豆| 精品写真视频在线观看| 欧美一区二区三区成人| 日韩不卡一区二区| 在线电影一区二区三区| 亚洲成av人片在线观看| 欧美精品在线一区二区| 五月激情综合婷婷| 日韩色在线观看| 99视频有精品| 亚洲久本草在线中文字幕| 色综合久久天天| 亚洲成av人片在线| 欧美一区二区视频网站| 美日韩一级片在线观看| 亚洲精品一区二区三区福利| 国产在线精品免费| 国产精品蜜臀av| 一本色道久久综合精品竹菊| 一区二区三区高清| 欧美日韩三级视频| 美女视频黄频大全不卡视频在线播放| 日韩欧美一区中文| 国产精品一区二区在线观看网站| 国产精品久久久久久久久免费樱桃| 成人国产精品免费网站| 一区二区欧美视频| 日韩手机在线导航| 成人免费视频网站在线观看| 亚洲女同ⅹxx女同tv| 欧美一级爆毛片| 国产成人精品三级| 亚洲一区二区三区四区五区黄| 91精品国产欧美一区二区18| 韩国毛片一区二区三区| 亚洲人成精品久久久久| 在线播放日韩导航| 高清在线不卡av| 一区二区三区美女| 精品久久久久久综合日本欧美| 波多野结衣在线一区| 日韩高清在线观看| 日本一区二区三区在线不卡| 欧美日韩极品在线观看一区| 国产成人午夜高潮毛片| 性欧美疯狂xxxxbbbb| 国产女人水真多18毛片18精品视频| 99re这里都是精品| 久久99久久99小草精品免视看| 国产精品情趣视频| 欧美一级日韩一级| 色综合天天综合在线视频| 老司机午夜精品| 亚洲综合视频在线观看| 国产亚洲va综合人人澡精品| 欧美日韩国产美女| 99久久免费国产| 国产精品一卡二卡在线观看| 亚洲一区二区三区自拍| 亚洲国产精品成人综合色在线婷婷| 欧美日本视频在线| 一本色道久久加勒比精品| 国产精品18久久久| 美女mm1313爽爽久久久蜜臀| 一区二区三区在线视频播放| 国产日韩欧美一区二区三区综合| 91精品国产综合久久福利| 欧美在线视频日韩| 色综合天天综合网天天狠天天| 国产一区美女在线| 免费在线成人网| 视频一区在线视频| 亚洲精品乱码久久久久久黑人| ww亚洲ww在线观看国产| 欧美本精品男人aⅴ天堂| 7777精品久久久大香线蕉 | 一区二区三区在线观看欧美| 久久久久久久网| 精品成a人在线观看| 欧美一区在线视频| 日韩一区二区在线看片| 在线不卡中文字幕| 欧美日韩在线观看一区二区| 91精品91久久久中77777| 99视频一区二区| 色综合夜色一区| 91老司机福利 在线| 91啦中文在线观看| 在线免费视频一区二区| 欧美无砖砖区免费| 欧美视频一区二| 欧美男男青年gay1069videost| 在线影院国内精品| 色视频一区二区| 欧美日韩一区在线| 日韩一级免费一区| 日韩欧美中文字幕制服| 精品久久99ma| 久久久美女毛片| 综合分类小说区另类春色亚洲小说欧美| 欧美国产成人在线| 亚洲免费成人av| 视频一区二区三区中文字幕| 91福利社在线观看| 欧美三级午夜理伦三级中视频| 精品视频在线免费看| 欧美一区二区三区日韩视频| 精品va天堂亚洲国产| 国产日韩综合av| 悠悠色在线精品| 天天亚洲美女在线视频| 国产精品正在播放| 99久久er热在这里只有精品15 | 国产女人aaa级久久久级 | 欧美性色黄大片| 日韩三级视频在线看| 国产欧美日韩在线| 亚洲一区二区三区影院| 蜜桃久久久久久久| 成人激情综合网站| 欧美人牲a欧美精品| 久久综合九色综合97婷婷女人 | 国产伦精品一区二区三区视频青涩| 国产 欧美在线| 欧美日韩高清一区二区不卡| 久久久久久久性| 亚洲高清久久久| 国产aⅴ综合色| 欧美裸体bbwbbwbbw| 国产欧美日韩精品在线| 性做久久久久久免费观看| 国产精品1024| 欧美久久一二区| 国产精品日日摸夜夜摸av| 天天av天天翘天天综合网| 国产成人免费视频| 欧美理论在线播放| 亚洲色图在线看| 国产精品亚洲综合一区在线观看| 色综合久久久久久久久| 久久久久久久久免费| 日韩精品免费视频人成| 99久久99久久综合| 久久久不卡网国产精品一区| 日日夜夜精品视频免费| 91视频观看免费| 国产女主播视频一区二区| 欧美性生交片4| 国产精品拍天天在线| 蜜臀久久99精品久久久久久9| 欧美综合久久久| 亚洲精品乱码久久久久久| 岛国av在线一区| 2023国产精品| 日本91福利区| 欧美久久久久久久久中文字幕| 亚洲精品ww久久久久久p站| 成人在线综合网站| 久久九九99视频| 国产又黄又大久久| 欧美成人vr18sexvr| 琪琪一区二区三区| 欧美伦理电影网| 午夜精品福利一区二区蜜股av | 天天做天天摸天天爽国产一区| 色婷婷国产精品| 一区二区三区国产精华| 99久久综合狠狠综合久久| 国产清纯在线一区二区www| 国产毛片一区二区| 精品少妇一区二区三区在线播放 | 国产精品国模大尺度视频| 国产精选一区二区三区 | 7777精品伊人久久久大香线蕉的| 亚洲综合男人的天堂| 色8久久精品久久久久久蜜| 亚洲激情图片一区|