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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? tsip_ifc.c

?? gps開(kāi)發(fā)專(zhuān)用的源代碼
?? C
?? 第 1 頁(yè) / 共 4 頁(yè)
字號(hào):
/*
 * *************************************************************************
 *
 * Trimble Navigation, Ltd.
 * OEM Products Development Group
 * P.O. Box 3642
 * 645 North Mary Avenue
 * Sunnyvale, California 94088-3642
 *
 * Corporate Headquarter:
 *    Telephone:  (408) 481-8000
 *    Fax:        (408) 481-6005
 *
 * Technical Support Center:
 *    Telephone:  (800) 767-4822	(U.S. and Canada)
 *                (408) 481-6940    (outside U.S. and Canada)
 *    Fax:        (408) 481-6020
 *    BBS:        (408) 481-7800
 *    e-mail:     trimble_support@trimble.com
 *		ftp://ftp.trimble.com/pub/sct/embedded/bin
 *
 * *************************************************************************
 *
 * -------  BYTE-SWAPPING  -------
 * TSIP is big-endian (Motorola) protocol.  To use on little-endian (Intel)
 * systems, the bytes of all multi-byte types (shorts, floats, doubles, etc.)
 * must be reversed.  This is controlled by the MACRO BYTESWAP; if defined, it
 * assumes little-endian protocol.
 * --------------------------------
 *
 * TSIP_IFC.C carries several interface functions intended as primitive
 * functions that perform two specific tasks with the receiver:
 * 1) prepare commands to be transferred to the receiver; and
 * 2) interpret reports received from the receiver.
 *
 * The module is in very portable, basic C language.  It can be used as is, or
 * with minimal changes if a TSIP communications application is needed separate
 * from TSIPCHAT. The construction of most argument lists avoid the use of
 * structures, but the developer is encouraged to reconstruct them using such
 * definitions to meet project requirements.  Declarations of TSIP_IFC.C
 * functions are included in TSIP_IFC.H to provide prototyping definitions.
 *
 * 1) Command Functions:  Command functions come in the form cmd_0x??().
 * Command functions handle data/command packets to be transferred to the
 * receiver.  The functions format & return the command as a TSIPPKT structure.
 * The TSIPPKT structure is sent using the routine send_cmd(), which supplies
 * the "DLE stuffing" to the command string and then sends the individual
 * bytes to the port using the routine sendb(), supplied as an argument.
 *
 * The functions cmd_0x??() are command string generators patterned after
 * the document called "Trimble Standard Interface Protocol" listed in
 * Appendix A of the "System Designer Reference Guide."  Examples of how to
 * enter the fields of these commands are given in TSIPCHAT routine
 * TSIP_CMD.C.  Because a TSIP command code may have different argument
 * lists depending on optional operating modes, there are more formatting
 * functions than command ID codes.  Each cmd_0x??() function corresponds to a
 * different functional mode for the command.  The following suffix convention
 * allows each function to serve a unique purpose and cleans up the argument
 * somewhat.
 *
 *             cmd_0x??q   -  query for current value
 * 	         cmd_0x??c   -  clear value (0x1D, 0x73 only)
 * 	         cmd_0x??s   -  set new values
 * 	         cmd_0x??e   -  enable
 * 	         cmd_0x??d   -  disable
 *
 * 2) Report Functions:  Report functions come in the form rpt_0x??().
 * Report functions take care of the incoming packets from the receiver.
 * There is only one function that is used in the main functions in
 * TSIPCHAT.C and TSIPPRNT.C:
 *                            tsip_input_proc().
 *
 * The function tsip_input_proc() accumulates bytes from the receiver,
 * strips control bytes (DLE), and checks if the report end sequence (DLE ETX)
 * has been received.  rpt.status is defined as TSIP_PARSED_FULL (== 1)
 * if a complete packet is available.
 *
 * The functions rpt_0x??() are report string interpreters patterned after
 * the document called "Trimble Standard Interface Protocol", and are called
 * by the report output function rpt_packet() in TSIP_RPT.C.  It should be
 * noted that if the report buffer is sent into the receiver with the wrong
 * length (byte count), the rpt_0x??() returns the Boolean equivalence for
 * TRUE.
 *
 * *************************************************************************
 *
 */

#include <string.h>
#include <stdio.h>
#include "tsip_ifc.h"

/* for DOS machines, reverse order of bytes as they come through the
 * serial port. */
#define BYTESWAP

#ifdef BYTESWAP
static void bPutShort (void *in, unsigned char *out)
{
	unsigned char *inptr;

   inptr = (unsigned char*)in + 1;
   *out++ = *inptr--;
   *out = *inptr;
}

static void bPutFloat (float *in, unsigned char *out)
{
	unsigned char *inptr;

   inptr = (unsigned char*)in + 3;
   *out++ = *inptr--;
   *out++ = *inptr--;
   *out++ = *inptr--;
   *out = *inptr;
}

static void bPutULong (unsigned long *in, unsigned char *out)
{
	unsigned char *inptr;

   inptr = (unsigned char*)in + 3;
   *out++ = *inptr--;
   *out++ = *inptr--;
   *out++ = *inptr--;
   *out = *inptr;
}

static void bPutDouble (double *in, unsigned char *out)
{
	unsigned char *inptr;

   inptr = (unsigned char*)in + 7;
   *out++ = *inptr--;
   *out++ = *inptr--;
   *out++ = *inptr--;
   *out++ = *inptr--;
   *out++ = *inptr--;
   *out++ = *inptr--;
   *out++ = *inptr--;
   *out = *inptr;
}

#else	/* not BYTESWAP */

void bPutShort (short a, unsigned char *cmdbuf) {*(short*) cmdbuf = a;}
void bPutULong (long a, unsigned char *cmdbuf) 	{*(long*) cmdbuf = a;}
void bPutFloat (float a, unsigned char *cmdbuf) {*(float*) cmdbuf = a;}
void bPutDouble (double a, unsigned char *cmdbuf){*(double*) cmdbuf = a;}

#endif

/**/
void send_cmd (TSIPPKT *cmd, short sendb(unsigned char))
/* formats a command for sending to TSIP receiver */
{
   unsigned char *cbuf, *cbufend;

	sendb (DLE);
	sendb (cmd->code);
   cbufend = cmd->buf + cmd->len;
	for (cbuf = cmd->buf; cbuf < cbufend; cbuf++) {
		if (*cbuf == DLE) sendb (DLE);
		sendb (*cbuf);
	}
	sendb (DLE);
	sendb (ETX);
}

/**/
void cmd_0x1Dc (TSIPPKT *cmd)
/* clear oscillator offset */
{
	cmd->buf[0] = 0x43;
	cmd->len = 1;
	cmd->code = 0x1D;
}

void cmd_0x1Ds  (TSIPPKT *cmd,
	float offset)
/* set oscillator offset */
{
	bPutFloat (&offset, &cmd->buf[0]);
	cmd->len = 4;
	cmd->code = 0x1D;
}

void cmd_0x1E (TSIPPKT *cmd, unsigned char reset_type)
/* clear battery back-up, then reset */
{
	cmd->buf[0] = reset_type;
	cmd->len = 1;
	cmd->code = 0x1E;
}

void cmd_0x1F (TSIPPKT *cmd)
/* request software versions */
{
	cmd->len = 0;
	cmd->code = 0x1F;
}

/**/
void cmd_0x20  (TSIPPKT *cmd, unsigned char sv_prn)
/* request almanac */
{
	cmd->buf[0] = sv_prn;
	cmd->len = 1;
	cmd->code = 0x20;
}

void cmd_0x21 (TSIPPKT *cmd)
/* request current time */
{
	cmd->len = 0;
	cmd->code = 0x21;
}

void cmd_0x22 (TSIPPKT *cmd, unsigned char nav_mode)
/* select position fix mode (2D, 3D, ...) */
{
	cmd->buf[0] = nav_mode;
	cmd->len = 1;
	cmd->code = 0x22;
}

void cmd_0x23  (TSIPPKT *cmd, float pos_ECEF[3])
/* initial position in ECEF coordinates */
{
	bPutFloat (&pos_ECEF[0], &cmd->buf[0]);
	bPutFloat (&pos_ECEF[1], &cmd->buf[4]);
	bPutFloat (&pos_ECEF[2], &cmd->buf[8]);
	cmd->len = 12;
	cmd->code = 0x23;
}

void cmd_0x24 (TSIPPKT *cmd)
/* request position fix mode */
{
	cmd->len = 0;
	cmd->code = 0x24;
}

void cmd_0x25 (TSIPPKT *cmd)
/* initiate soft reset & self-test (equivalent to power cycle) */
{
	cmd->len = 0;
	cmd->code = 0x25;
}

void cmd_0x26 (TSIPPKT *cmd)
/* request receiver health */
{
	cmd->len = 0;
	cmd->code = 0x26;
}

void cmd_0x27 (TSIPPKT *cmd)
/* request signal levels */
{
	cmd->len = 0;
	cmd->code = 0x27;
}

void cmd_0x28 (TSIPPKT *cmd)
/* request GPS system message */
{
	cmd->len = 0;
	cmd->code = 0x28;
}

void cmd_0x29 (TSIPPKT *cmd)
/* request almanac health */
{
	cmd->len = 0;
	cmd->code = 0x29;
}

void cmd_0x2Aq (TSIPPKT *cmd)
/* query altitude for 2-D mode */
{
	cmd->len = 0;
	cmd->code = 0x2A;
}

void cmd_0x2As  (TSIPPKT *cmd, float alt)
/* altitude for 2-D mode */
{
	bPutFloat (&alt, &cmd->buf[0]);
	cmd->len = 4;
	cmd->code = 0x2A;
}

void cmd_0x2Ad (TSIPPKT *cmd)
/* disable altitude for 2-D mode */
{
	cmd->buf[0] = 0xFF;
	cmd->len = 1;
	cmd->code = 0x2A;
}

void cmd_0x2B  (TSIPPKT *cmd, float lat, float lon, float alt)
/* initial position (latitude-longitude-altitude) */
{
	bPutFloat (&lat, &cmd->buf[0]);
	bPutFloat (&lon, &cmd->buf[4]);
	bPutFloat (&alt, &cmd->buf[8]);
	cmd->len = 12;
	cmd->code = 0x2B;
}

void cmd_0x2Cq (TSIPPKT *cmd)
/* request operating parameters and masks */
{
	float negative_one;
   negative_one = -1.0;
	cmd->buf[0] = 0;
	bPutFloat (&negative_one, &cmd->buf[1]);
	bPutFloat (&negative_one, &cmd->buf[5]);
	bPutFloat (&negative_one, &cmd->buf[9]);
	bPutFloat (&negative_one, &cmd->buf[13]);
	cmd->len = 17;
	cmd->code = 0x2C;
}

void cmd_0x2Cs (TSIPPKT *cmd,
	unsigned char dyn_code,
	float elev_mask, float snr,
	float pdop_mask, float pdop_switch)
/* set operating parameters and masks */
{
	cmd->buf[0] = dyn_code;
	bPutFloat (&elev_mask, &cmd->buf[1]);
	bPutFloat (&snr, &cmd->buf[5]);
	bPutFloat (&pdop_mask, &cmd->buf[9]);
	bPutFloat (&pdop_switch, &cmd->buf[13]);
	cmd->len = 17;
	cmd->code = 0x2C;
}

void cmd_0x2D (TSIPPKT *cmd)
/* request oscillator offset */
{
	cmd->len = 0;
	cmd->code = 0x2D;
}

void cmd_0x2E  (TSIPPKT *cmd, float time_of_week, short week_num)
/* set GPS time */
{
	bPutFloat (&time_of_week, &cmd->buf[0]);
	bPutShort (&week_num, &cmd->buf[4]);
	cmd->len = 6;
	cmd->code = 0x2E;
}

void cmd_0x2F (TSIPPKT *cmd)
/* request UTC params */
{
	cmd->len = 0;
	cmd->code = 0x2F;
}

/**/
void cmd_0x31  (TSIPPKT *cmd, float ECEF_pos[3])
/* initial accurate position in ECEF coordinates */
{
	bPutFloat (&ECEF_pos[0], &cmd->buf[0]);
	bPutFloat (&ECEF_pos[1], &cmd->buf[4]);
	bPutFloat (&ECEF_pos[2], &cmd->buf[8]);
	cmd->len = 12;
	cmd->code = 0x31;
}

void cmd_0x32  (TSIPPKT *cmd, float lat, float lon, float alt)
/* initial accurate position in latitude-longitude-altitude */
{
	bPutFloat (&lat, &cmd->buf[0]);
	bPutFloat (&lon, &cmd->buf[4]);
	bPutFloat (&alt, &cmd->buf[8]);
	cmd->len = 12;
	cmd->code = 0x32;
}

void cmd_0x35q  (TSIPPKT *cmd)
/* request serial I/O options */
{
	cmd->len = 0;
	cmd->code = 0x35;
}

void cmd_0x35s  (TSIPPKT *cmd, unsigned char pos_code, unsigned char vel_code,
	unsigned char time_code, unsigned char opts_code)
/* set serial I/O options */
{
	cmd->buf[0] = pos_code;
	cmd->buf[1] = vel_code;
	cmd->buf[2] = time_code;
	cmd->buf[3] = opts_code;
	cmd->len = 4;
	cmd->code = 0x35;
}

void cmd_0x37 (TSIPPKT *cmd)
/* request last position, velocity, and status */
{
	cmd->len = 0;
	cmd->code = 0x37;
}

void cmd_0x38q  (TSIPPKT *cmd, unsigned char data_type, unsigned char sv_prn)
/* request GPS system data (binary) */
{
	cmd->buf[0] = 1;
	cmd->buf[1] = data_type;
	cmd->buf[2] = sv_prn;
	cmd->len = 3;
	cmd->code = 0x38;
}

void cmd_0x38s  (TSIPPKT *cmd, unsigned char data_type, unsigned char sv_prn,
	unsigned char data_length, unsigned char *databuf)
/* load GPS system data (binary) */
{
	cmd->buf[0] = 2;
	cmd->buf[1] = data_type;
	cmd->buf[2] = sv_prn;
	cmd->buf[3] = data_length;
	memcpy (&cmd->buf[4], databuf, (short)data_length);
	cmd->len = (short)data_length + 4;
	cmd->code = 0x38;
}

void cmd_0x39  (TSIPPKT *cmd, unsigned char op_code, unsigned char sv_prn)
/* set or request enable/health-heed status of satellites */
{
	cmd->buf[0] = op_code;
	cmd->buf[1] = sv_prn;
	cmd->len = 2;
	cmd->code = 0x39;
}

void cmd_0x3A  (TSIPPKT *cmd, unsigned char sv_prn)
/* request last code-phase/Doppler measurement */
{
	cmd->buf[0] = sv_prn;
	cmd->len = 1;
	cmd->code = 0x3A;
}

void cmd_0x3B  (TSIPPKT *cmd, unsigned char sv_prn)
/* request eph status */
{
	cmd->buf[0] = sv_prn;
	cmd->len = 1;
	cmd->code = 0x3B;
}

void cmd_0x3C  (TSIPPKT *cmd, unsigned char sv_prn)
/* request tracking status */
{
	cmd->buf[0] = sv_prn;
	cmd->len = 1;
	cmd->code = 0x3C;
}

void cmd_0x3Dq (TSIPPKT *cmd)
/* request Channel A configuration for dual-port operation */
{
	cmd->len = 0;
	cmd->code = 0x3D;
}

void cmd_0x3Ds (TSIPPKT *cmd,
	unsigned char baud_out, unsigned char baud_inp,
   unsigned char char_code, unsigned char stopbitcode,
   unsigned char output_mode, unsigned char input_mode)
/* set Channel A configuration for dual-port operation */
{
	cmd->buf[0] = baud_out;		/* XMT baud rate */
	cmd->buf[1] = baud_inp;		/* RCV baud rate */
	cmd->buf[2] = char_code;	   /* parity and #bits per byte */
	cmd->buf[3] = stopbitcode;	/* number of stop bits code */
	cmd->buf[4] = output_mode;	/* Ch. A transmission mode */
	cmd->buf[5] = input_mode;	/* Ch. A reception mode */
	cmd->len = 6;
	cmd->code = 0x3D;
}

/**/
void cmd_0x62q (TSIPPKT *cmd)
/* query DGPS fix mode */
{
	cmd->buf[0] = 0xFF;
	cmd->len = 1;
	cmd->code = 0x62;
}

void cmd_0x62s (TSIPPKT *cmd,
	unsigned char dgps_mode)
/* set DGPS fix mode */
{
	cmd->buf[0] = dgps_mode;
	cmd->len = 1;
	cmd->code = 0x62;
}

void cmd_0x65  (TSIPPKT *cmd, unsigned char sv_prn)
/* request satellite differential correction info */
{
	cmd->buf[0] = sv_prn;
	cmd->len = 1;
	cmd->code = 0x65;
}

void cmd_0x6Eq  (TSIPPKT *cmd,
	unsigned char subcode)
/* query synch measurement control */
{
	cmd->buf[0] = subcode;
	cmd->len = 1;
	cmd->code = 0x6E;
}

void cmd_0x6Ed  (TSIPPKT *cmd,
	unsigned char subcode)
/* disable synch measurement */
{
	cmd->buf[0] = subcode;
	cmd->buf[1] = 0;
	cmd->buf[2] = 0;
	cmd->len = 3;
	cmd->code = 0x6E;
}

void cmd_0x6Es  (TSIPPKT *cmd,
	unsigned char subcode,
   unsigned char interval)
/* enable synchmeasurement */
{
	cmd->buf[0] = subcode;
	cmd->buf[1] = 1;
	cmd->buf[2] = interval;
	cmd->len = 3;
	cmd->code = 0x6E;
}

/**/
void cmd_0x70q (TSIPPKT *cmd)
{
	cmd->len = 0;
	cmd->code = 0x70;
}

void cmd_0x70s  (TSIPPKT *cmd,
	unsigned char dyn_switch,
	unsigned char static_switch,
	unsigned char alt_switch,
	unsigned char extra)
{
	cmd->buf[0] = dyn_switch;
	cmd->buf[1] = static_switch;
	cmd->buf[2] = alt_switch;

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美另类videos死尸| 国产一区二区视频在线| 免费成人你懂的| 亚洲三级在线看| 亚洲国产精品一区二区久久恐怖片| 日本午夜精品一区二区三区电影| 一区二区欧美国产| 免费人成网站在线观看欧美高清| 性久久久久久久久| 波多野结衣精品在线| 97成人超碰视| 色综合久久久久综合体| 99综合影院在线| 欧美一区二区高清| 国产精品蜜臀av| 午夜精品久久久久久久久久久| 日韩欧美123| 中文字幕制服丝袜成人av| 国产色产综合色产在线视频| 国产精品美女久久久久av爽李琼| 亚洲午夜激情av| 国产真实乱对白精彩久久| 欧美专区亚洲专区| 在线观看成人小视频| 色噜噜狠狠成人网p站| 色一情一乱一乱一91av| 日韩欧美一区二区不卡| 亚洲女人****多毛耸耸8| 久草精品在线观看| 欧美色精品在线视频| 中文字幕欧美日本乱码一线二线| 1024成人网色www| 樱桃国产成人精品视频| 国产麻豆欧美日韩一区| 欧美乱妇20p| 精品成人在线观看| 午夜视频一区二区| 91网站视频在线观看| 久久毛片高清国产| 久久成人久久爱| 精品视频1区2区| 亚洲精品乱码久久久久久| 国产福利一区二区三区视频在线| 成人一二三区视频| 精品美女在线播放| 国产精品日产欧美久久久久| 一区二区在线电影| 日韩二区三区四区| 国产精品一区二区在线看| 51精品视频一区二区三区| 精品国产免费一区二区三区香蕉| 欧美国产成人精品| 国产米奇在线777精品观看| 91原创在线视频| 欧美丰满嫩嫩电影| 久久精品一二三| 欧美日韩一二区| 夜夜嗨av一区二区三区网页 | 972aa.com艺术欧美| 日本一区二区三区在线观看| 国产麻豆精品在线| 在线一区二区三区做爰视频网站| 日韩三级.com| 日本麻豆一区二区三区视频| 成人免费不卡视频| 国产精品私房写真福利视频| 日韩中文字幕亚洲一区二区va在线| 日本高清免费不卡视频| 一区二区三区加勒比av| 国产一区二区三区精品视频 | 国产精品伊人色| 精品国内片67194| 精品无人区卡一卡二卡三乱码免费卡| voyeur盗摄精品| 国产精品乱码一区二区三区软件| 偷拍日韩校园综合在线| 欧美日韩电影在线| 婷婷成人激情在线网| 这里只有精品视频在线观看| 中文字幕一区日韩精品欧美| 99国产精品国产精品久久| 一区二区三区电影在线播| 欧美三级中文字| 日本视频一区二区三区| 91在线精品秘密一区二区| 亚洲欧美国产77777| 国产91高潮流白浆在线麻豆| 欧美老女人第四色| 久久99久久精品欧美| 久久蜜桃一区二区| 成人在线视频首页| 亚洲影院在线观看| 日韩无一区二区| 午夜不卡av在线| 91美女片黄在线观看91美女| 亚洲激情第一区| 91精品久久久久久久99蜜桃| 亚洲综合色区另类av| 99re成人在线| 欧美高清在线视频| 欧美高清在线精品一区| 欧美影院精品一区| 精品一区二区三区免费视频| 国产精品高潮久久久久无| 国产精品一区二区三区乱码| 中文字幕一区二区三区精华液| 国产一区二区三区免费在线观看 | 91视频你懂的| 国产精品久久久久影院亚瑟| 国产精品亚洲一区二区三区在线 | 欧美午夜精品久久久| 亚洲精品免费在线| 91网站黄www| 美脚の诱脚舐め脚责91| 国产精品乱人伦| 欧美一区二区三区爱爱| 99免费精品视频| 日韩vs国产vs欧美| 成人欧美一区二区三区小说 | 狠狠色丁香婷婷综合| 亚洲视频在线一区| 精品久久久久久久久久久久久久久| 日韩精品久久久久久| 欧美日本在线看| 国产**成人网毛片九色| 亚洲制服欧美中文字幕中文字幕| 精品国产电影一区二区| 色天使色偷偷av一区二区| 精油按摩中文字幕久久| 一区二区三区在线视频播放| 色香色香欲天天天影视综合网| 亚洲激情图片qvod| 欧美日韩激情一区二区三区| 东方欧美亚洲色图在线| 亚洲日本护士毛茸茸| 日本高清不卡一区| 五月天亚洲精品| 亚洲色大成网站www久久九九| 91蜜桃在线免费视频| 亚洲一二三区不卡| 欧美一区二区视频网站| 92精品国产成人观看免费| 激情综合网最新| 亚洲成人动漫在线观看| 国产精品综合av一区二区国产馆| 亚洲成av人片一区二区| 欧美一二区视频| 国产精品资源在线| 婷婷综合另类小说色区| 亚洲日本免费电影| 欧美韩国日本综合| 欧美色图在线观看| 99国内精品久久| 成人精品国产一区二区4080| 亚洲一区视频在线观看视频| 国产精品理论在线观看| 久久午夜羞羞影院免费观看| 7777精品伊人久久久大香线蕉超级流畅| 色综合久久中文综合久久97| 国产成人av一区| 夜夜精品视频一区二区| 亚洲免费伊人电影| 中文字幕在线一区二区三区| 久久精品欧美日韩| 欧美性受极品xxxx喷水| 一本一道久久a久久精品| av成人动漫在线观看| 粉嫩高潮美女一区二区三区| 韩日精品视频一区| 亚洲男人天堂av网| 欧美精品一区二区在线播放| 欧美一卡二卡三卡四卡| 91麻豆精品国产无毒不卡在线观看| 国产精品18久久久久久久久| 精品一区二区三区香蕉蜜桃| 久久99日本精品| 麻豆高清免费国产一区| 麻豆极品一区二区三区| 久久精品国产亚洲一区二区三区| 毛片不卡一区二区| 久久99精品国产.久久久久久| 久久超碰97人人做人人爱| 久久精品国产亚洲高清剧情介绍| 一区二区三区在线影院| 亚洲精品一区二区三区在线观看| 欧洲av在线精品| 成人自拍视频在线| 91在线免费播放| 国产精品自产自拍| 成人在线视频一区二区| 免费观看91视频大全| 亚洲乱码中文字幕| 一区二区三区中文字幕精品精品| 久久午夜免费电影| 久久久99精品免费观看不卡| 91精品国产色综合久久不卡电影| 日韩精品一区二区在线| 欧美精品一区在线观看| 91麻豆精品国产91久久久 | 国产精品一区二区免费不卡|