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

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

?? lb_cm.c

?? 中國石油二期加油站IC系統后臺通訊軟件
?? C
?? 第 1 頁 / 共 3 頁
字號:
/*
***********************************************************************************************************
													  Amos
										  The Real_Time Operation System
												   Multi Task
								 (c) Copyright 1998-2002, ShangYaoHui, Shenzhen
											  All Right Reserved
												  VERSION 6.01

" By  : 商耀揮(ShangYaoHui)
 create time: 2002-7-1 22:26:27  
***********************************************************************************************************
*/

/************ head file list *************/
#include "envopt.h"        /* environment options */
#include "envdep.h"        /* environment dependent */
#include "envind.h"        /* environment independent */

#include "gen.h"           /* general */
#include "cm5.h"           /* common functions */
#include "ssi.h"           /* system services */

/* header/extern include files (.x) */

#include "gen.x"           /* general */
#include "cm5.x"           /* common functions */
#include "ssi.x"           /* system services */

#include "cm_llist.h"
#include "cm_llist.x"

#ifdef WIN32
	#include "winbase.h"
	#include "winsock2.h"
#endif

#include "rx.h"
#include "rx.x"

#include "rx_msg.h"
#include "rx_msg.x"

#include "lb_cm.h"
#include "lb_cm.x"

#include "lb_recv.h"
#include "lb_recv.x"
#include "lb_xmit.h"
#include "lb_xmit.x"
#include "lb_msg.h"
#include "lb_msg.x"

#include "lb_bdy1.h"
#include "lb_bdy1.x"
#include "lb_bdy2.h"
#include "lb_bdy2.x"
#include "lb_bdy4.h"
#include "lb_bdy3.h"
#include "lb_bdy3.x"
#include "lb_bdy4.h"
#include "lb_bdy4.h"
#include "lb_bdy4.x"
#include "lb_bdy5.h"
#include "lb_bdy5.x"
/************* const define **************/

/******** import variable declare ********/

/******* gloable variable declare ********/

/*********** function declare ************/

/********** function prototype ***********/

static unsigned int crc_table[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
};
#if 0
U CheckCRC(unsigned char cSerID,unsigned char *cData,unsigned char cData_len)reentrant
{
	unsigned int s;
	unsigned int w;
	signed int c;

	s = 1;
	for(w=0;w<cData_len-2;w++)
	{
		c = *cData++;
		s =( crc_table[(s^c) & 0xFF] ^ (s / 256)) ;
	}/*for*/
	if(cSerID == CHECKSUM)
	{
		*cData =  (unsigned char)(s>>8) & 0x7f;
		*(cData+1) = (unsigned char)(s & 0x00ff) & 0x7f;
		return OBJECT_TRUE;
	}
	else
	{
		if((*cData != ((s>>8) & 0x7f)) || (*(cData+1) != (s & 0x7f)))
		{
			return OBJECT_FALSE;
		}
		else
		{
			return OBJECT_TRUE;
		}
	}
}/*calc_crc*/
#endif

S16 lbChkCrc(Data * data, MsgLen len)
{
	U32 s;
	U32 w;
	S32 c;
	if(data == NULLP || len < 3)
	{
		RXLOGERROR(ENTSC, 0, data , "invalid param");
		RETVALUE(RFAILED);
	}

	s = 1;
	for(w=0;w<(U32)len-2;w++)
	{
		c = *data++;
		s =( crc_table[(s^c) & 0xFF] ^ (s / 256)) ;
	}/*for*/
	if((*data != ((s>>8) & 0x7f)) || (*(data+1) != (s & 0x7f)))
	{
		RETVALUE(RFAILED);
	}
	else
	{
		RETVALUE(ROK);
	}
}

S16 lbFillCrc(Data * data, MsgLen len)
{
	U32 s;
	U32 w;
	S32 c;
	if(data == NULLP || len < 3)
	{
		RXLOGERROR(ENTSC, 0, data , "invalid param");
		RETVALUE(RFAILED);
	}

	s = 1;
	for(w=0;w<(U32)len-2;w++)
	{
		c = *data++;
		s =( crc_table[(s^c) & 0xFF] ^ (s / 256)) ;
	}/*for*/


	*data =  (U8)(s>>8) & 0x7f;
	*(data+1) = (U8)(s & 0xff) & 0x7f;
	RETVALUE(ROK);
}

U32 getMachNum(void)
{
	RETVALUE(CFG_MACH_NUM);
}


ScCommCb_s * createScCommCb(EquCfgEntry_s * equ)
{
	ScCommCb_s * scCommCb;
	DCB dcb;
	COMSTAT commStat;
	S32 err, len, actualLen;


	if(ROK != SGetSBuf(0, 0, (Data **)&scCommCb, sizeof(ScCommCb_s)))
	{
		RXLOGERROR(0, 0, 0, "ERROR");
		RETVALUE(NULLP);
	}

	sprintf(scCommCb->commName, "COM%d", equ->entry.channelId);


	/* modify by shang 2002-7-10 13:47:37 */
#if 0 /* last code */
	scCommCb->comm = CreateFile(scCommCb->commName,
								GENERIC_READ|GENERIC_WRITE,
								0,
								NULLP,OPEN_EXISTING,
								FILE_FLAG_OVERLAPPED,
								NULLP);

#else /* new code */
	scCommCb->comm = CreateFile(scCommCb->commName,
								GENERIC_READ|GENERIC_WRITE,
								0,
								NULLP,OPEN_EXISTING,
								FILE_FLAG_RANDOM_ACCESS,
								NULLP);

#endif /* end modify */

	/* modify by shang is over 2002-7-10 13:47:37*/


	if(scCommCb->comm == INVALID_HANDLE_VALUE)
	{
		SPutSBuf(0, 0, (Data *)scCommCb, sizeof(ScCommCb_s));
		RXLOGERROR(0, 0, 0, "Falte error: can not open comm");
		RETVALUE(NULLP);
	}

	SetCommMask(scCommCb->comm, EV_RXCHAR | EV_TXEMPTY);                         
	SetupComm( scCommCb->comm, 2048, 2048);

	PurgeComm( scCommCb->comm, PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR );

	scCommCb->timeOut.ReadIntervalTimeout = -1;
	scCommCb->timeOut.ReadTotalTimeoutConstant = 10000;
	scCommCb->timeOut.ReadTotalTimeoutMultiplier = 1000;
	scCommCb->timeOut.WriteTotalTimeoutConstant = 10000;
	scCommCb->timeOut.WriteTotalTimeoutMultiplier = 1000;
	SetCommTimeouts(scCommCb->comm, &scCommCb->timeOut);

	GetCommState(scCommCb->comm, &dcb);

	dcb.BaudRate = CBR_9600;

	dcb.ByteSize = 8;
	dcb.Parity = NOPARITY;
	dcb.StopBits = ONESTOPBIT ;
	dcb.fBinary = TRUE;
	dcb.fParity = FALSE;

	dcb.fDtrControl = TRUE;
	dcb.fRtsControl = FALSE;

	SetCommState(scCommCb->comm, &dcb);
	scCommCb->equ = equ;
	scCommCb->crrntSide = 0;

	err = ClearCommError(scCommCb->comm, &err, &commStat );
	if(err == 0)
	{
		err = GetLastError();
	}
	len = commStat.cbInQue;

	if(len > 0)
	{
		Data * recvBuf;

		if(ROK != SGetSBuf(0, 0, &recvBuf, len))
		{
			RXLOGERROR(ENTSC, 0, 0, "Error: no buf to recv comm message");
			RETVALUE(NULLP);
		}

		ReadFile(scCommCb->comm, recvBuf, len, &actualLen, NULLP);
		SPutSBuf(0, 0, recvBuf, len);
	}

	RETVALUE(scCommCb);
}

U8 getGunNum(U32 machId)
{
	RETVALUE(3);
}

U8 getOilType(U32 machId, U8 sideId, U8 gunId)
{
	RETVALUE(90);
}

U32 getPrice(U8 oilType)
{
	RETVALUE(200);
}

U8 getSideNum(U32 machId)
{
	RETVALUE(1);
}

S16 lbCmGetCmdNode(TranCb_s * tran, CmdMsg_s ** ret_cmdNode)
{
	CmdMsg_s * cmdNode;

	if(ROK != SGetSBuf(0, 0, (Data **)&cmdNode, sizeof(CmdMsg_s)))
	{
		RXLOGERROR(0, 0, 0, "ERROR");
		RETVALUE(RFAILED);
	}
	memset(cmdNode, 0, sizeof(CmdMsg_s));
	cmLListAdd2Tail(&tran->cmdLst, (CmLList *)cmdNode);
	cmdNode->tran = tran;
	*ret_cmdNode = cmdNode;
	RETVALUE(ROK);
}

S16 lbCmDestroyCmdNode(CmdMsg_s * cmdNode)
{
	if(cmdNode == NULLP)
	{
		RXLOGERROR(0, 0, 0, "ERROR");
		RETVALUE(RFAILED);
	}

	if(cmdNode->msg)
	{
		SPutMsg(cmdNode->msg);
	}

	cmLListDelFrm(&cmdNode->tran->cmdLst, (CmLList *)cmdNode);

	if(cmLListLen(&cmdNode->tran->cmdLst) == 0)
	{
		cmLListDelFrm(&cmdNode->tran->entry->tranList, (CmLList *)cmdNode->tran);
		if(cmLListLen(&cmdNode->tran->entry->tranList) == 0)
		{
			cmLListDelFrm(&rxCb.rqstList, (CmLList *)cmdNode->tran->entry);
			SPutSBuf(0, 0, (Data *)cmdNode->tran->entry, sizeof(RxCmdEntry_s));

		}
		SPutSBuf(0, 0, (Data *)cmdNode->tran, sizeof(TranCb_s));
	}
	SPutSBuf(0, 0, (Data *)cmdNode, sizeof(CmdMsg_s));

	RETVALUE(ROK);
}

TranCb_s * lbCmGetTran(RxCmdEntry_s * entry, EquCfgEntry_s * equ)
{
	TranCb_s * tran;

	if(ROK != SGetSBuf(0, 0, (Data **)&tran, sizeof(TranCb_s)))
	{
		RXLOGERROR(0, 0, 0, "ERROR");
		RETVALUE(NULLP);
	}
	cmLListInit(&tran->cmdLst);
	tran->transStat = ROK;
	tran->equ = equ;
	tran->entry = entry;
	cmLListAdd2Tail(&entry->tranList, (CmLList *)tran);

	RETVALUE(tran);
}


S16 lbCmDestroyTran(TranCb_s * tran)
{
	CmdMsg_s * cmdNode, * tempNode;

	cmdNode = (CmdMsg_s *)cmLListFirst(&tran->cmdLst);
	while(NULLP != cmdNode)
	{
		tempNode = (CmdMsg_s *)cmLListNext(&tran->cmdLst);

		lbCmDestroyCmdNode(cmdNode);
		cmdNode = tempNode;
	}
	cmLListDelFrm(&tran->entry->tranList, (CmLList *)tran);
	if(cmLListLen(&tran->entry->tranList) == 0)
	{
		cmLListDelFrm(&rxCb.rqstList, (CmLList *)tran->entry);
		SPutSBuf(0, 0, (Data *)tran->entry, sizeof(RxCmdEntry_s));
	}
	SPutSBuf(0, 0, (Data *)tran, sizeof(TranCb_s));

	RETVALUE(ROK);
}

S16 lbCmGetCmdEntry(U8 rqstId, U8 type, RxCmdEntry_s ** entry)
{
	RxCmdEntry_s * cmdEntry;

	if(ROK != SGetSBuf(0, 0, (Data **)&cmdEntry, sizeof(RxCmdEntry_s)))
	{
		RXLOGERROR(0, 0, 0, "ERROR");
		RETVALUE(RFAILED);
	}
	cmdEntry->cmdType = type;
	cmdEntry->rqstId = rqstId;
	cmdEntry->errCode = 0;
	cmLListInit(&cmdEntry->tranList);
	cmLListAdd2Tail(&rxCb.rqstList, (CmLList *)cmdEntry);
	*entry = cmdEntry;
	RETVALUE(ROK);
}
S16 lbCmdDestroyCmdEntry(RxCmdEntry_s * rqst)
{
	TranCb_s *tran, * temp;

	tran = (TranCb_s *)cmLListFirst(&rqst->tranList);
	while(NULLP != tran)
	{
		temp = (TranCb_s *)cmLListNext(&rqst->tranList);
		lbCmDestroyTran(tran);
		tran = temp;
	}
	cmLListDelFrm(&rxCb.rqstList, (CmLList *)rqst);

	RETVALUE(ROK);
}



S16 lbCmBuildCmdA(EquCfgEntry_s * equ, TranCb_s * tran, U32 action, U8 cmdCode)
{
	CmdMsg_s * cmdNode;
	MsgA_s cmd;
	ScCommCb_s * scCommCb;
	Buffer * msg;

	scCommCb = equ->scCommCb;

	if(ROK != lbCmGetCmdNode(tran, &cmdNode))
	{
		RXLOGERROR(0, 0, 0, "ERROR");
		RETVALUE(RFAILED);
	}

	if(ROK != SGetMsg(0, 0, &msg))
	{
		SPutSBuf(0, 0, (Data *)cmdNode, sizeof(CmdMsg_s));
		RXLOGERROR(0, 0, 0, "ERROR");
		RETVALUE(RFAILED);
	}


	cmd.hdr.frameStart = 0x55aa;
	cmd.hdr.dataLen = 2;
	cmd.hdr.sideId = equ->entry.sideId;
	cmd.cmd = cmdCode;

	SAddPstMsgMult((Data *)&cmd, (MsgLen)(cmd.hdr.dataLen + 3), msg);

	cmdNode->msg = msg;
	cmdNode->msgCode = cmdCode;
	cmdNode->action = action;
	cmdNode->machId = equ->entry.machId;
	cmdNode->sideId = equ->entry.sideId;
	cmdNode->gunId = equ->entry.pGunId;
	cmdNode->dir = CMD_DIR;
	cmdNode->chId = equ->entry.channelId;
	cmdNode->stat = RDY_SEND;

	cmdNode->timer = 1;
	cmdNode->retry = CMD_RETRY_TIMES;
	cmdNode->loadTimer = CMD_RETRY_TIMEOUT;

	RETVALUE(ROK);

}

S16 lbCmBuildCmdB(EquCfgEntry_s * equ, TranCb_s * tran, U8 val, U32 action, U8 cmdCode)
{
	CmdMsg_s * cmdNode;
	MsgB_s cmd;
	ScCommCb_s * scCommCb;
	Buffer * msg;

	scCommCb = equ->scCommCb;

	if(ROK != lbCmGetCmdNode(tran, &cmdNode))
	{
		RXLOGERROR(0, 0, 0, "ERROR");
		RETVALUE(RFAILED);
	}

	if(ROK != SGetMsg(0, 0, &msg))
	{
		SPutSBuf(0, 0, (Data *)cmdNode, sizeof(CmdMsg_s));
		RXLOGERROR(0, 0, 0, "ERROR");
		RETVALUE(RFAILED);
	}


	cmd.hdr.frameStart = 0x55aa;
	cmd.hdr.dataLen = 3;
	cmd.hdr.sideId = equ->entry.sideId;
	cmd.cmd = cmdCode;
	cmd.val = val;

	SAddPstMsgMult((Data *)&cmd, (MsgLen)(cmd.hdr.dataLen + 3), msg);

	cmdNode->msg = msg;
	cmdNode->msgCode = cmdCode;
	cmdNode->action = action;
	cmdNode->machId = equ->entry.machId;
	cmdNode->sideId = equ->entry.sideId;
	cmdNode->gunId = equ->entry.pGunId;
	cmdNode->dir = CMD_DIR;
	cmdNode->chId = equ->entry.channelId;
	cmdNode->stat = RDY_SEND;
	cmdNode->timer = 1;
	cmdNode->retry = CMD_RETRY_TIMES;
	if(cmdNode->msgCode == 0xda)
	{
		cmdNode->loadTimer = 5;
	}
	else
	{

		cmdNode->loadTimer = CMD_RETRY_TIMEOUT;
	}

	RETVALUE(ROK);

}

S16 lbCmBuildCfmCmd(EquCfgEntry_s * equ, TranCb_s * tran, U32 rqstType, U32 action, U8 cmdCode)
{
	CmdMsg_s * cmdNode;
	MsgB_s cmd;
	ScCommCb_s * scCommCb;
	Buffer * msg;

	scCommCb = equ->scCommCb;

	if(ROK != lbCmGetCmdNode(tran, &cmdNode))
	{
		RXLOGERROR(0, 0, 0, "ERROR");
		RETVALUE(RFAILED);
	}

	if(ROK != SGetMsg(0, 0, &msg))
	{
		SPutSBuf(0, 0, (Data *)cmdNode, sizeof(CmdMsg_s));
		RXLOGERROR(0, 0, 0, "ERROR");
		RETVALUE(RFAILED);
	}


	cmd.hdr.frameStart = 0x55aa;
	cmd.hdr.dataLen = 3;
	cmd.hdr.sideId = equ->entry.sideId;
	cmd.cmd = cmdCode;

	SAddPstMsgMult((Data *)&cmd, (MsgLen)(cmd.hdr.dataLen + 3), msg);

	cmdNode->msg = msg;
	cmdNode->msgCode = cmdCode;
	cmdNode->action = action;
	cmdNode->rqstType = rqstType;
	cmdNode->machId = equ->entry.machId;
	cmdNode->sideId = equ->entry.sideId;
	cmdNode->gunId = equ->entry.pGunId;
	cmdNode->dir = CMD_DIR;
	cmdNode->chId = equ->entry.channelId; 
	cmdNode->stat = RDY_SEND;

	cmdNode->timer = 1;
	cmdNode->retry = CMD_RETRY_TIMES;
	cmdNode->loadTimer = CMD_RETRY_TIMEOUT;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99re66热这里只有精品3直播| 日本不卡一二三| 成人av一区二区三区| 国产欧美一二三区| 成人avav在线| 亚洲欧美福利一区二区| 在线欧美小视频| 免费人成精品欧美精品 | 91丨porny丨蝌蚪视频| 国产精品国产三级国产a| 色久综合一二码| 婷婷久久综合九色综合绿巨人 | av动漫一区二区| 亚洲午夜精品网| 精品免费一区二区三区| 成人avav影音| 免费高清不卡av| 国产精品三级视频| 欧美日韩视频在线第一区 | 国产在线精品一区二区| 国产精品嫩草影院av蜜臀| 色视频一区二区| 精品一区二区免费在线观看| 国产精品三级av在线播放| 欧美美女一区二区三区| 国产精品99久| 亚洲成人高清在线| 欧美韩日一区二区三区| 日本乱人伦一区| 久久精品国产色蜜蜜麻豆| 国产精品国产馆在线真实露脸| 欧美日韩国产一级二级| 国产精品综合视频| 亚洲一区二区在线观看视频| 欧美成人精品1314www| 91在线国产观看| 久久精工是国产品牌吗| 亚洲精品亚洲人成人网 | 精品裸体舞一区二区三区| 成人福利视频在线看| 日韩不卡免费视频| 成人免费一区二区三区在线观看| 欧美精品在线一区二区三区| av一区二区三区黑人| 日本不卡高清视频| 亚洲免费伊人电影| 国产欧美一区视频| 日韩三级精品电影久久久 | 欧美在线不卡视频| 国产成人精品免费| 看国产成人h片视频| 一区av在线播放| 中文字幕在线一区二区三区| 日韩欧美在线不卡| 欧美少妇一区二区| 99久久99精品久久久久久| 极品少妇xxxx精品少妇| 日精品一区二区三区| 亚洲男人的天堂av| 日本一区二区免费在线观看视频 | 欧美不卡一区二区三区四区| 色菇凉天天综合网| 99久久精品免费看国产免费软件| 国内精品伊人久久久久av影院 | 成人小视频免费在线观看| 日本大胆欧美人术艺术动态| 亚洲小说春色综合另类电影| 国产精品国产三级国产普通话三级| 久久久久久免费网| 精品日韩在线观看| 日韩欧美综合一区| 制服丝袜在线91| 337p亚洲精品色噜噜噜| 91.com视频| 在线播放欧美女士性生活| 欧美精品丝袜中出| 欧美丰满少妇xxxbbb| 欧美老年两性高潮| 欧美一区二区三区四区视频| 欧美精品在线一区二区| 日韩欧美中文一区二区| 26uuu国产电影一区二区| 久久久久久久综合色一本| 久久久久久久免费视频了| 国产三级精品在线| 国产精品美女久久久久aⅴ国产馆| 欧美激情一区二区| 日韩伦理电影网| 午夜视频在线观看一区二区| 日韩精品国产欧美| 麻豆国产精品视频| 国产露脸91国语对白| 成人免费毛片a| 一本大道久久a久久综合| 欧美日韩二区三区| 欧美电视剧免费全集观看| 3atv一区二区三区| 久久婷婷国产综合国色天香| 中文字幕乱码一区二区免费| 亚洲欧美日韩电影| 日韩激情在线观看| 国产一区美女在线| 在线一区二区三区四区| 91麻豆精品国产综合久久久久久| 精品精品国产高清一毛片一天堂| 国产天堂亚洲国产碰碰| 亚洲欧美日韩精品久久久久| 婷婷综合在线观看| 国产成a人亚洲精| 欧洲日韩一区二区三区| 欧美成人福利视频| 亚洲另类色综合网站| 蜜臀精品一区二区三区在线观看| 国产福利91精品一区二区三区| 色呦呦国产精品| 欧美成人艳星乳罩| 亚洲精品水蜜桃| 国产精品18久久久久久久久 | 不卡欧美aaaaa| 欧美日韩二区三区| 国产精品卡一卡二| 日本aⅴ精品一区二区三区 | 91电影在线观看| 精品欧美一区二区在线观看| 又紧又大又爽精品一区二区| 久久成人羞羞网站| 欧美亚洲免费在线一区| 国产欧美综合在线观看第十页| 亚洲成av人片在线观看无码| 国产成人精品1024| 91精品国产综合久久福利软件| 国产欧美一区二区精品性色超碰| 五月综合激情日本mⅴ| 91在线精品一区二区三区| 精品国产亚洲在线| 婷婷久久综合九色综合伊人色| 成人午夜视频在线观看| 日韩精品在线看片z| 亚洲成人自拍网| 色偷偷一区二区三区| 中文一区二区完整视频在线观看| 日韩和欧美一区二区| 91福利国产精品| 亚洲青青青在线视频| 成人午夜精品一区二区三区| 欧美电视剧在线观看完整版| 日韩精品每日更新| 欧美午夜一区二区三区| 一区二区在线免费观看| 99re视频精品| 国产精品美女久久久久久2018 | 日韩av不卡一区二区| 色哟哟欧美精品| 亚洲国产精品t66y| 国产白丝网站精品污在线入口| 日韩欧美成人一区| 美女网站色91| 日韩一区二区电影在线| 日韩中文字幕亚洲一区二区va在线 | 国产一区二区三区久久悠悠色av | 久久国产尿小便嘘嘘| 欧美精品少妇一区二区三区 | 亚洲欧美自拍偷拍| 成人午夜电影网站| 国产精品日韩成人| 不卡av免费在线观看| 国产精品福利一区二区| 成人污视频在线观看| 国产婷婷精品av在线| 成人免费黄色大片| 国产精品电影一区二区| 99久久99久久免费精品蜜臀| 亚洲欧美一区二区三区极速播放 | 激情综合网激情| 欧美精品一区二区三区视频| 精品在线播放免费| 亚洲国产高清aⅴ视频| www.日韩在线| 一区二区三区在线看| 欧美日韩在线播放| 麻豆91在线播放免费| 久久免费看少妇高潮| av中文字幕亚洲| 亚洲一区在线视频观看| 678五月天丁香亚洲综合网| 六月丁香综合在线视频| 国产亚洲精品7777| a亚洲天堂av| 亚洲图片一区二区| 久久亚洲综合色一区二区三区| 国产成人超碰人人澡人人澡| 亚洲日本成人在线观看| 91精品国产色综合久久不卡电影 | 日本不卡的三区四区五区| 欧美精品一区二区三区视频| 成人高清免费在线播放| 天天免费综合色| 国产免费观看久久| 欧美色图片你懂的| 国产一区视频网站|