日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

gps nmea数据格式解析与生成

發(fā)布時間:2023/12/14 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 gps nmea数据格式解析与生成 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、nmea數據格式介紹
nmea數據如下:?
$GPGGA,025620.00,2602.33721,N,11911.49176,E,2,04,1.63,13.5,M,9.9,M,,0000*5D
$GPRMC,121252.000,A,3958.3032,N,11629.6046,E,15.15,359.95,070306,,,A*54?
$GNRMC,230134.00,A,2237.12422,N,11408.08310,E,9.291,215.59,310518,,,A*75
$GPVTG,359.95,T,,M,15.15,N,28.0,K,A*04?
$GPGSA,A,3,14,15,05,22,18,26,,,,,,,2.1,1.2,1.7*3D?
$GPGSV,3,1,10,18,84,067,23,09,67,067,27,22,49,312,28,15,47,231,30*70?
$GPGSV,3,2,10,21,32,199,23,14,25,272,24,05,21,140,32,26,14,070,20*7E?
$GPGSV,3,3,10,29,07,074,,30,07,163,28*7D
說明:NMEA0183格式以“$”開始,主要語句有GPGGA,GPVTG,GPRMC等
1、 GPS DOP and Active Satellites(GSA)當前衛(wèi)星信息
$GPGSA,<1>,<2>,<3>,<3>,,,,,<3>,<3>,<3>,<4>,<5>,<6>,<7><CR><LF>
<1>模式 :M = 手動, A = 自動。?
<2>定位型式 1 = 未定位, 2 = 二維定位, 3 = 三維定位。?
<3>PRN 數字:01 至 32 表天空使用中的衛(wèi)星編號,最多可接收12顆衛(wèi)星信息。?
<4> PDOP位置精度因子(0.5~99.9)?
<5> HDOP水平精度因子(0.5~99.9)?
<6> VDOP垂直精度因子(0.5~99.9)?
<7> Checksum.(檢查位).

2、 GPS Satellites in View(GSV)可見衛(wèi)星信息?
$GPGSV, <1>,<2>,<3>,<4>,<5>,<6>,<7>,?<4>,<5>,<6>,<7>,<8><CR><LF>
<1> GSV語句的總數?
<2> 本句GSV的編號?
<3> 可見衛(wèi)星的總數,00 至 12。?
<4> 衛(wèi)星編號, 01 至 32。?
<5>衛(wèi)星仰角, 00 至 90 度。?
<6>衛(wèi)星方位角, 000 至 359 度。實際值。?
<7>訊號噪聲比(C/No), 00 至 99 dB;無表未接收到訊號。?
<8>Checksum.(檢查位).
第<4>,<5>,<6>,<7>項個別衛(wèi)星會重復出現,每行最多有四顆衛(wèi)星。其余衛(wèi)星信息會于次一行出現,若未使用,這些字段會空白。
3、Global Positioning System Fix Data(GGA)GPS定位信息
$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,<11>,<12>*hh<CR><LF>
<1> UTC時間,hhmmss(時分秒)格式?
<2> 緯度ddmm.mmmm(度分)格式(前面的0也將被傳輸)?
<3> 緯度半球N(北半球)或S(南半球)?
<4> 經度dddmm.mmmm(度分)格式(前面的0也將被傳輸)?
<5> 經度半球E(東經)或W(西經)?
<6> GPS狀態(tài):0=未定位,1=非差分定位,2=差分定位,6=正在估算?
<7> 正在使用解算位置的衛(wèi)星數量(00~12)(前面的0也將被傳輸)?
<8> HDOP水平精度因子(0.5~99.9)?
<9> 海拔高度(-9999.9~99999.9)?
<10> 地球橢球面相對大地水準面的高度?
<11> 差分時間(從最近一次接收到差分信號開始的秒數,如果不是差分定位將為空)?
<12> 差分站ID號0000~1023(前面的0也將被傳輸,如果不是差分定位將為空)

4、Recommended Minimum Specific GPS/TRANSIT Data(RMC)推薦定位信息
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh<CR><LF>
<1> UTC時間,hhmmss(時分秒)格式?
<2> 定位狀態(tài),A=有效定位,V=無效定位?
<3> 緯度ddmm.mmmm(度分)格式(前面的0也將被傳輸)?
<4> 緯度半球N(北半球)或S(南半球)?
<5> 經度dddmm.mmmm(度分)格式(前面的0也將被傳輸)?
<6> 經度半球E(東經)或W(西經)?
<7> 地面速率(000.0~999.9節(jié),前面的0也將被傳輸)?
<8> 地面航向(000.0~359.9度,以真北為參考基準,前面的0也將被傳輸)?
<9> UTC日期,ddmmyy(日月年)格式?
<10> 磁偏角(000.0~180.0度,前面的0也將被傳輸)?
<11> 磁偏角方向,E(東)或W(西)?
<12> 模式指示(僅NMEA0183 3.00版本輸出,A=自主定位,D=差分,E=估算,N=數據無效)
5、 Track Made Good and Ground Speed(VTG)地面速度信息?
$GPVTG,<1>,T,<2>,M,<3>,N,<4>,K,<5>*hh<CR><LF>?
<1> 以真北為參考基準的地面航向(000~359度,前面的0也將被傳輸)?
<2> 以磁北為參考基準的地面航向(000~359度,前面的0也將被傳輸)?
<3> 地面速率(000.0~999.9節(jié),前面的0也將被傳輸)?
<4> 地面速率(0000.0~1851.8公里/小時,前面的0也將被傳輸)?
<5> 模式指示(僅NMEA0183 3.00版本輸出,A=自主定位,D=差分,E=估算,N=數據無效)

二、gps數據解析與生成類

//CommonFunction.h #pragma once#include <string> #include <vector>// 字符串分割 int StringSplit(std::vector<std::string>& dst, const std::string& src, const std::string& separator);// 去掉前后空格 std::string& StringTrim(std::string &str); //CommonFunction.cpp #include "stdafx.h" #include "CommonFunction.h"// 字符串分割 int StringSplit(std::vector<std::string>& dst, const std::string& src, const std::string& separator) {if (src.empty() || separator.empty())return 0;int nCount = 0;std::string temp;size_t pos = 0, offset = 0;// 分割第1~n-1個while ((pos = src.find_first_of(separator, offset)) != std::string::npos){temp = src.substr(offset, pos - offset);if (temp.length() >= 0) {dst.push_back(temp);nCount++;}offset = pos + 1;}// 分割第n個temp = src.substr(offset, src.length() - offset);if (temp.length() >= 0) {dst.push_back(temp);nCount++;}return nCount; }//去前后空格 std::string& StringTrim(std::string &str) {if (str.empty()) {return str;}str.erase(0, str.find_first_not_of(" "));str.erase(str.find_last_not_of(" ") + 1);return str; } //GpsNmeaData.h //gps nmea 數據解析與生成#pragma once #include "CommonFunction.h"//gpsdata格式 enum GpsDataFormat {GpsDataFormat_None = 0, //noneGpsDataFormat_GNRMC = 1, //GNRMCGpsDataFormat_GPRMC = 2, //GPRMCGpsDataFormat_GPGGA = 3, //GPGGA };//Status enum GpsStatus {GpsStatus_Valid = 'A', //數據有效(GPRMC/GNRMC)GpsStatus_Invalid = 'V', //數據無效(GPRMC/GNRMC)GpsStatus_NoLocation = '0', //未定位(GPGGA)GpsStatus_NoDiffLocation = '1', //非差分定位(GPGGA)GpsStatus_DiffLocation = '2', //差分定位(GPGGA)GpsStatus_Estimating = '6', //正在估算(GPGGA) };//緯度方向 enum GpsLatDirect {GpsLatDirect_N = 'N', //北緯GpsLatDirect_S = 'S', //南緯 };//經度方向 enum GpsLngDirect {GpsLngDirect_E = 'E', //東經GpsLngDirect_W = 'W', //西經 };//磁偏角方向,E=東,W=西 enum GpsDeclinationDirect {GpsDeclinationDirect_Invalid= '0',GpsDeclinationDirect_E = 'E',GpsDeclinationDirect_W = 'W', };//模式,A=自動,D=差分,E=估測,N=數據無效 enum GpsMode {GpsMode_A = 'A',GpsMode_D = 'D',GpsMode_E = 'E',GpsMode_N = 'N', };class GpsNmeaData { public:GpsNmeaData();virtual ~GpsNmeaData();//設置初始gps數據格式void SetInitGpsDataFormat(unsigned char ucInitGpsDataFormat);//加載GPS字符串bool LoadGPSString(char *pInputString, bool bIsCompareChecksum = true);//生成GPS字符串bool CreateGPSString(char *pOutputString, int & nOutputStringSize, bool bIsHasEndFlag);//加載GPRMC字符串bool LoadGPRMCString(char *pInputString,std::vector<std::string> vecValue,bool bIsCompareChecksum=true);//生成GPRMC字符串bool CreateGPRMCString(char *pOutputString, int & nOutputStringSize,bool bIsHasEndFlag);//加載GNRMC字符串bool LoadGNRMCString(char *pInputString,std::vector<std::string> vecValue, bool bIsCompareChecksum = true);//生成GNRMC字符串bool CreateGNRMCString(char *pOutputString, int & nOutputStringSize, bool bIsHasEndFlag);//加載GPGGA字符串bool LoadGPGGAString(char *pInputString, std::vector<std::string> vecValue, bool bIsCompareChecksum = true);//生成GPGGA字符串bool CreateGPGGAString(char *pOutputString, int & nOutputStringSize, bool bIsHasEndFlag);//計算經緯度(根據速度和方向計算下一經緯度)void CalcLngLat(float fDirect, float fSpeed, double dOldLng, double dOldLat, double & dNewLng, double & dNewLat);void CalcLngLatEx(float fDirect, float fSpeed, double dOldLng, double dOldLat, double & dNewLng, double & dNewLat, int nKeepSeconds=1);//計算經緯度(根據距離和方向計算下一經緯度)void CalcLngLatByDistanceAndDirect(float fDirect, double fDistance, double dOldLng, double dOldLat, double & dNewLng, double & dNewLat);//獲取與設置參數void GetLng(double & fLng,unsigned char & ucDirect);void SetLng(double fLng, unsigned char ucDirect);void GetLat(double & fLat,unsigned char & ucDirect);void SetLat(double fLat, unsigned char ucDirect);float GetSpeed();void SetSpeed(float fSpeed);float GetDirect();void SetDirect(float fDirect);unsigned char GetStatus();void SetStatus(unsigned char ucStatus);unsigned char GetDeclination();void SetDeclination(unsigned char ucDeclination);unsigned char GetDeclinationDirect();void SetDeclinationDirect(unsigned char ucDeclinationDirect);unsigned char GetMode();void SetMode(unsigned char ucMode);unsigned char GetSatelliteNum();void SetSatelliteNum(unsigned char ucSatelliteNum);float GetHDOP();void SetHDOP(float fHDOP);float GetHigh();void SetHigh(float fHigh);float GetEarthHigh();void SetEarthHigh(float fHigh);unsigned int GetDiffTime();void SetDiffTime(unsigned int uiDiffTime);unsigned short GetDiffSiteId();void SetDiffSiteId(unsigned short usDiffSiteId);unsigned char GetChecksum();void SetChecksum(unsigned char ucChecksum);void GetTime(unsigned short & usYear, unsigned short & usMonth, unsigned short & usDay, unsigned short & usHour, unsigned short & usMiniute, unsigned short & usSecond, unsigned short & usMillsSecond);void SetTime(unsigned short usYear, unsigned short usMonth, unsigned short usDay, unsigned short usHour,unsigned short usMiniute, unsigned short usSecond, unsigned short usMillsSecond);void SetNowTime();public://度分轉換度static double dm_to_degree(double dm);//度轉換度分static double degree_to_dm(double ddd_dddd);//計算兩點經緯度之間的距離static double GpsNmeaDataDistance(double latitude1, double longitude1, double latitude2, double longitude2);protected://計算校驗和unsigned char CalcChecksum(unsigned char *pInput, int nInputSize);protected:unsigned char m_ucGpsDataFormat; //GPS數據格式double m_fLng; //經度unsigned char m_ucGpsLngDirect;double m_fLat; //緯度unsigned char m_ucGpsLatDirect;float m_fSpeed; //速度,千米/小時 (一節(jié)也是1.852千米/小時)float m_fDirect; //方向unsigned char m_ucStatus; //GPS狀態(tài) A=數據有效;V=數據無效unsigned char m_ucDeclination; //磁偏角,(000 - 180)度(前導位數不足則補0)unsigned char m_ucDeclinationDirect;//磁偏角方向,E=東,W=西unsigned char m_ucMode; //模式,A=自動,D=差分,E=估測,N=數據無效unsigned char m_ucChecksum; //校驗和unsigned char m_ucSatelliteNum; //衛(wèi)星數float m_fHDOP; //HDOP水平精度因子(0.5~99.9) float m_fHigh; //海拔高度(-9999.9~99999.9)float m_fEarthHigh; //地球橢球面相對大地水準面的高度 unsigned int m_uiDiffTime; //差分時間(從最近一次接收到差分信號開始的秒數,如果不是差分定位將為空) unsigned short m_usDiffSiteId; //差分站ID號0000~1023(前面的0也將被傳輸,如果不是差分定位將為空)unsigned short m_usYear;unsigned short m_usMonth;unsigned short m_usDay;unsigned short m_usHour;unsigned short m_usMinute;unsigned short m_usSecond;unsigned short m_usMillsSecond; }; //GpsNmeaData.cpp #include "stdafx.h" #include "GpsNmeaData.h"#define GpsNmeaData_StringSplitMinCount 8 //Gprmc字符串分解子字符串最小個數 #define GpsNmeaData_Gnrmc_Head "$GNRMC" //Gps nmea幀頭,$GNRMC #define GpsNmeaData_Gprmc_Head "$GPRMC" //Gps nmea幀頭,$GPRMC #define GpsNmeaData_Gpgga_Head "$GPGGA" //Gps nmea幀頭,$GPGGAconst double PI = 3.14159265358979323846; const double Ea = 6378137; // 赤道半徑 const double Eb = 6356725; // 極半徑 GpsNmeaData::GpsNmeaData() {m_ucGpsDataFormat = GpsDataFormat_None;m_fLng = 0.0f;m_ucGpsLngDirect = GpsLngDirect_E;m_fLat = 0.0;m_ucGpsLatDirect = GpsLatDirect_N;m_fSpeed = 0;m_fDirect = 0;m_ucStatus = GpsStatus_Valid;m_ucDeclination = 0;m_ucDeclinationDirect = GpsDeclinationDirect_E;m_ucMode = GpsMode_A;m_ucChecksum = 0;m_usYear = 0;m_usMonth = 0;m_usDay = 0;m_usHour = 0;m_usMinute = 0;m_usSecond = 0;m_usMillsSecond = 0;m_ucSatelliteNum = 0;m_fHDOP = 0.5; m_fHigh = 0; m_fEarthHigh = 0; m_uiDiffTime = 0; m_usDiffSiteId = 0; }GpsNmeaData::~GpsNmeaData() { }//設置初始gps數據格式 void GpsNmeaData::SetInitGpsDataFormat(unsigned char ucInitGpsDataFormat) {m_ucGpsDataFormat = ucInitGpsDataFormat; }//獲取與設置參數 void GpsNmeaData::GetLng(double & fLng, unsigned char & ucDirect) {fLng = m_fLng;ucDirect = m_ucGpsLngDirect; } void GpsNmeaData::SetLng(double fLng, unsigned char ucDirect) {m_fLng = fLng;m_ucGpsLngDirect = ucDirect; }void GpsNmeaData::GetLat(double & fLat, unsigned char & ucDirect) {fLat = m_fLat;ucDirect = m_ucGpsLatDirect; } void GpsNmeaData::SetLat(double fLat, unsigned char ucDirect) {m_fLat = fLat;m_ucGpsLatDirect = ucDirect; }float GpsNmeaData::GetSpeed() {return m_fSpeed; } void GpsNmeaData::SetSpeed(float fSpeed) {m_fSpeed = fSpeed; }float GpsNmeaData::GetDirect() {return m_fDirect; } void GpsNmeaData::SetDirect(float fDirect) {m_fDirect = fDirect; }unsigned char GpsNmeaData::GetStatus() {return m_ucStatus; } void GpsNmeaData::SetStatus(unsigned char ucStatus) {m_ucStatus = ucStatus; }unsigned char GpsNmeaData::GetDeclination() {return m_ucDeclination; } void GpsNmeaData::SetDeclination(unsigned char ucDeclination) {m_ucDeclination = ucDeclination; }unsigned char GpsNmeaData::GetDeclinationDirect() {return m_ucDeclinationDirect; } void GpsNmeaData::SetDeclinationDirect(unsigned char ucDeclinationDirect) {m_ucDeclinationDirect = ucDeclinationDirect; }unsigned char GpsNmeaData::GetMode() {return m_ucMode; } void GpsNmeaData::SetMode(unsigned char ucMode) {m_ucMode = ucMode; }unsigned char GpsNmeaData::GetSatelliteNum() {return m_ucSatelliteNum; } void GpsNmeaData::SetSatelliteNum(unsigned char ucSatelliteNum) {m_ucSatelliteNum = ucSatelliteNum; }float GpsNmeaData::GetHDOP() {return m_fHDOP; } void GpsNmeaData::SetHDOP(float fHDOP) {m_fHDOP = fHDOP; }float GpsNmeaData::GetHigh() {return m_fHigh; } void GpsNmeaData::SetHigh(float fHigh) {m_fHigh = fHigh; }float GpsNmeaData::GetEarthHigh() {return m_fEarthHigh; } void GpsNmeaData::SetEarthHigh(float fHigh) {m_fEarthHigh = fHigh; }unsigned int GpsNmeaData::GetDiffTime() {return m_uiDiffTime; } void GpsNmeaData::SetDiffTime(unsigned int uiDiffTime) {m_uiDiffTime = uiDiffTime; }unsigned short GpsNmeaData::GetDiffSiteId() {return m_usDiffSiteId; } void GpsNmeaData::SetDiffSiteId(unsigned short usDiffSiteId) {m_usDiffSiteId = usDiffSiteId; }unsigned char GpsNmeaData::GetChecksum() {return m_ucChecksum; } void GpsNmeaData::SetChecksum(unsigned char ucChecksum) {m_ucChecksum = ucChecksum; }void GpsNmeaData::GetTime(unsigned short & usYear, unsigned short & usMonth, unsigned short & usDay, unsigned short & usHour,unsigned short & usMiniute, unsigned short & usSecond, unsigned short & usMillsSecond) {usYear = m_usYear;usMonth = m_usMonth;usDay = m_usDay;usHour = m_usHour;usMiniute = m_usMinute;usSecond = m_usSecond;usMillsSecond = m_usMillsSecond; } void GpsNmeaData::SetTime(unsigned short usYear, unsigned short usMonth, unsigned short usDay, unsigned short usHour,unsigned short usMiniute, unsigned short usSecond, unsigned short usMillsSecond) {m_usYear = usYear;m_usMonth = usMonth;m_usDay = usDay;m_usHour = usHour;m_usMinute = usMiniute;m_usSecond = usSecond;m_usMillsSecond = usMillsSecond; } void GpsNmeaData::SetNowTime() {//格林威治時間time_t timep;time(&timep);struct tm* zeroTM = gmtime(&timep);SetTime(zeroTM->tm_year + 1900,zeroTM->tm_mon+1,zeroTM->tm_mday,zeroTM->tm_hour,zeroTM->tm_min,zeroTM->tm_sec,0); }//加載GPS字符串 bool GpsNmeaData::LoadGPSString(char *pInputString, bool bIsCompareChecksum) {bool bRet = false;std::vector<std::string> vecValue;int nStringSplitRet = StringSplit(vecValue, pInputString, ",");if (nStringSplitRet >= GpsNmeaData_StringSplitMinCount){if (strcmp(vecValue[0].c_str(), GpsNmeaData_Gprmc_Head) == 0){//gprmcm_ucGpsDataFormat = GpsDataFormat_GPRMC;bRet = LoadGPRMCString(pInputString,vecValue, bIsCompareChecksum);}else if (strcmp(vecValue[0].c_str(), GpsNmeaData_Gnrmc_Head) == 0){//gnrmcm_ucGpsDataFormat = GpsDataFormat_GNRMC;bRet = LoadGNRMCString(pInputString,vecValue, bIsCompareChecksum);}else if (strcmp(vecValue[0].c_str(), GpsNmeaData_Gpgga_Head) == 0){//gpggam_ucGpsDataFormat = GpsDataFormat_GPGGA;bRet = LoadGPGGAString(pInputString, vecValue, bIsCompareChecksum);}else{//非法數據格式return false;}}return bRet; }//生成GPS字符串 bool GpsNmeaData::CreateGPSString(char *pOutputString, int & nOutputStringSize, bool bIsHasEndFlag) {bool bRet = false;if (m_ucGpsDataFormat == GpsDataFormat_GNRMC){//GNRMCbRet = CreateGNRMCString(pOutputString, nOutputStringSize, bIsHasEndFlag);}else if (m_ucGpsDataFormat == GpsDataFormat_GPRMC){//GPRMCbRet = CreateGPRMCString(pOutputString, nOutputStringSize, bIsHasEndFlag);}else if (m_ucGpsDataFormat == GpsDataFormat_GPGGA){//GPGGAbRet = CreateGPGGAString(pOutputString, nOutputStringSize, bIsHasEndFlag);}else{bRet = CreateGNRMCString(pOutputString, nOutputStringSize, bIsHasEndFlag);}return bRet; }//加載GPRMC字符串 bool GpsNmeaData::LoadGPRMCString(char *pInputString,std::vector<std::string> vecValue, bool bIsCompareChecksum) {//$GPRMC,212744.000,A,3721.3623,N,12706.8308,E,5.40,161.91,050317,,,A*65bool bRet = false;//utc時間sscanf(vecValue[1].c_str(), "%2d%2d%2d.%d", &m_usHour, &m_usMinute, &m_usSecond, &m_usMillsSecond);//狀態(tài)if (vecValue[2].size() > 0){m_ucStatus = vecValue[2].c_str()[0];}else{m_ucStatus = GpsStatus_Invalid;}//緯度double fLatMD = atof(vecValue[3].c_str());m_fLat = dm_to_degree(fLatMD);//北緯/南緯if (vecValue[4].size() > 0){m_ucGpsLatDirect = vecValue[4].c_str()[0];}//經度double fLngMD = atof(vecValue[5].c_str());m_fLng = dm_to_degree(fLngMD);//東經/西經if (vecValue[6].size() > 0){m_ucGpsLngDirect = vecValue[6].c_str()[0];}//速度,單位節(jié),一節(jié)也是1.852千米/小時float fSpeedByNodeUnit = atof(vecValue[7].c_str());m_fSpeed = fSpeedByNodeUnit * 1.852;//方位角m_fDirect = atof(vecValue[8].c_str());//UTC日期char szDate[12] = { 0 };strcpy(szDate, vecValue[9].c_str());int usYear = 0;int usMonth = 0;int usDay = 0;sscanf(szDate, "%02d%02d%02d", &usDay, &usMonth, &usYear);m_usYear = usYear;m_usMonth = usMonth;m_usDay = usDay;m_usYear += 2000;//磁偏角if (vecValue[10].size() > 0){m_ucDeclination = vecValue[10].c_str()[0];}//磁偏角方向if (vecValue[11].size() > 0){m_ucDeclinationDirect = vecValue[11].c_str()[0];}else{m_ucDeclinationDirect = GpsDeclinationDirect_Invalid;}//模式指示、校驗sscanf(vecValue[12].c_str(), "%c*%X", &m_ucMode, &m_ucChecksum);//計算校驗和比對if (bIsCompareChecksum){char *pFindStarChar = strrchr(pInputString, '*');if (pFindStarChar != NULL){unsigned char ucTempChecksum = 0;ucTempChecksum = CalcChecksum((unsigned char *)pInputString, pFindStarChar - pInputString + 1);if (ucTempChecksum == m_ucChecksum){bRet = true;}}}else{bRet = true;}return bRet; } //生成GPRMC字符串 bool GpsNmeaData::CreateGPRMCString(char *pOutputString, int & nOutputStringSize, bool bIsHasEndFlag) {//$GPRMC,212744.000,A,3721.3623,N,12706.8308,E,5.40,161.91,050317,,,A*65bool bRet = true;//memset(pOutputString, 0, nOutputStringSize);//緯度double fLatMD = degree_to_dm(m_fLat);//經度double fLngMD = degree_to_dm(m_fLng);//速度(節(jié))float fSpeedByNodeUnit = m_fSpeed/1.852;if (m_ucStatus == GpsStatus_Invalid){//數據無效sprintf_s(pOutputString, nOutputStringSize - 1, "%s,%02d%02d%02d.%03d,%c,,,,,,,%02d%02d%02d,,,N*",GpsNmeaData_Gprmc_Head,m_usHour,m_usMinute,m_usSecond,m_usMillsSecond,m_ucStatus,m_usDay,m_usMonth,m_usYear-2000);unsigned char ucChecksum = CalcChecksum((unsigned char *)pOutputString, strlen(pOutputString));char szChecksum[4] = { 0 };sprintf_s(szChecksum, "%02X", ucChecksum);strcat(pOutputString, szChecksum);if (bIsHasEndFlag){//是否帶結束標記符號,0x0d0x0achar szEndFlag[4] = { 0 };sprintf_s(szEndFlag, "%c%c", 0x0d, 0x0a);strcat(pOutputString, szEndFlag);}nOutputStringSize = strlen(pOutputString);}else{//數據有效if (m_ucDeclinationDirect == GpsDeclinationDirect_Invalid){sprintf_s(pOutputString, nOutputStringSize - 1, "%s,%02d%02d%02d.%03d,%c,%.5f,%c,%.5f,%c,%.2f,%.2f,%02d%02d%02d,,,%c*",GpsNmeaData_Gprmc_Head, m_usHour, m_usMinute, m_usSecond, m_usMillsSecond, m_ucStatus,fLatMD, m_ucGpsLatDirect, fLngMD, m_ucGpsLngDirect, fSpeedByNodeUnit, m_fDirect,m_usDay, m_usMonth, m_usYear - 2000, m_ucMode);}else{sprintf_s(pOutputString, nOutputStringSize - 1, "%s,%02d%02d%02d.%03d,%c,%.5f,%c,%.5f,%c,%.2f,%.2f,%02d%02d%02d,%d,%c,%c*",GpsNmeaData_Gprmc_Head, m_usHour, m_usMinute, m_usSecond, m_usMillsSecond, m_ucStatus,fLatMD, m_ucGpsLatDirect, fLngMD, m_ucGpsLngDirect, fSpeedByNodeUnit, m_fDirect,m_usDay, m_usMonth, m_usYear - 2000, m_ucDeclination, m_ucDeclinationDirect, m_ucMode);}unsigned char ucChecksum = CalcChecksum((unsigned char *)pOutputString, strlen(pOutputString));char szChecksum[4] = { 0 };sprintf_s(szChecksum, "%02X", ucChecksum);strcat(pOutputString, szChecksum);if (bIsHasEndFlag){//是否帶結束標記符號,0x0d0x0achar szEndFlag[4] = { 0 };sprintf_s(szEndFlag, "%c%c", 0x0d, 0x0a);strcat(pOutputString, szEndFlag);}nOutputStringSize = strlen(pOutputString);}return bRet; }//加載GNRMC字符串 bool GpsNmeaData::LoadGNRMCString(char *pInputString,std::vector<std::string> vecValue,bool bIsCompareChecksum) {//$GNRMC,230134.00,A,2237.12422,N,11408.08310,E,9.291,215.59,310518,,,A*75bool bRet = false;//utc時間sscanf(vecValue[1].c_str(), "%2d%2d%2d.%d", &m_usHour, &m_usMinute, &m_usSecond, &m_usMillsSecond);//狀態(tài)if (vecValue[2].size() > 0){m_ucStatus = vecValue[2].c_str()[0];}else{m_ucStatus = GpsStatus_Invalid;}//緯度double fLatMD = atof(vecValue[3].c_str());m_fLat = dm_to_degree(fLatMD);//北緯/南緯if (vecValue[4].size() > 0){m_ucGpsLatDirect = vecValue[4].c_str()[0];}//經度double fLngMD = atof(vecValue[5].c_str());m_fLng = dm_to_degree(fLngMD);//東經/西經if (vecValue[6].size() > 0){m_ucGpsLngDirect = vecValue[6].c_str()[0];}//速度,單位節(jié),一節(jié)也是1.852千米/小時float fSpeedByNodeUnit = atof(vecValue[7].c_str());m_fSpeed = fSpeedByNodeUnit * 1.852;//方位角m_fDirect = atof(vecValue[8].c_str());//UTC日期char szDate[12] = { 0 };strcpy(szDate, vecValue[9].c_str());int usYear = 0;int usMonth = 0;int usDay = 0;sscanf(szDate, "%02d%02d%02d", &usDay, &usMonth, &usYear);m_usYear = usYear;m_usMonth = usMonth;m_usDay = usDay;m_usYear += 2000;//磁偏角if (vecValue[10].size() > 0){m_ucDeclination = vecValue[10].c_str()[0];}//磁偏角方向if (vecValue[11].size() > 0){m_ucDeclinationDirect = vecValue[11].c_str()[0];}else{m_ucDeclinationDirect = GpsDeclinationDirect_Invalid;}//模式指示、校驗std::vector<std::string> vecChecksum;StringSplit(vecChecksum, vecValue[12].c_str(), "*");if (vecChecksum.size() >= 2){if (vecChecksum[0].c_str() > 0){sscanf(vecChecksum[0].c_str(), "%c", &m_ucMode);}char *stop = NULL;m_ucChecksum = strtol(vecChecksum[1].c_str(), &stop, 16);}//計算校驗和比對if (bIsCompareChecksum){char *pFindStarChar = strrchr(pInputString, '*');if (pFindStarChar != NULL){unsigned char ucTempChecksum = 0;ucTempChecksum = CalcChecksum((unsigned char *)pInputString, pFindStarChar - pInputString + 1);if (ucTempChecksum == m_ucChecksum){bRet = true;}}}else{bRet = true;}return bRet; } //生成GNRMC字符串 bool GpsNmeaData::CreateGNRMCString(char *pOutputString, int & nOutputStringSize, bool bIsHasEndFlag) { //$GNRMC,230134.00,A,2237.12422,N,11408.08310,E,9.291,215.59,310518,,,A*75bool bRet = true;//memset(pOutputString, 0, nOutputStringSize);//緯度double fLatMD = degree_to_dm(m_fLat);//經度double fLngMD = degree_to_dm(m_fLng);//速度(節(jié))float fSpeedByNodeUnit = m_fSpeed / 1.852;if (m_ucStatus == GpsStatus_Invalid){//數據無效sprintf_s(pOutputString, nOutputStringSize - 1, "%s,%02d%02d%02d.%03d,%c,,,,,,,%02d%02d%02d,,,N*",GpsNmeaData_Gnrmc_Head, m_usHour, m_usMinute, m_usSecond, m_usMillsSecond, m_ucStatus, m_usDay, m_usMonth, m_usYear - 2000);unsigned char ucChecksum = CalcChecksum((unsigned char *)pOutputString, strlen(pOutputString));char szChecksum[4] = { 0 };sprintf_s(szChecksum, "%02X", ucChecksum);strcat(pOutputString, szChecksum);if (bIsHasEndFlag){//是否帶結束標記符號,0x0d0x0achar szEndFlag[4] = { 0 };sprintf_s(szEndFlag, "%c%c", 0x0d, 0x0a);strcat(pOutputString, szEndFlag);}nOutputStringSize = strlen(pOutputString);}else{//數據有效if (m_ucDeclinationDirect == GpsDeclinationDirect_Invalid){sprintf_s(pOutputString, nOutputStringSize - 1, "%s,%02d%02d%02d.%03d,%c,%.5f,%c,%.5f,%c,%.3f,%.2f,%02d%02d%02d,,,%c*",GpsNmeaData_Gnrmc_Head, m_usHour, m_usMinute, m_usSecond, m_usMillsSecond, m_ucStatus,fLatMD, m_ucGpsLatDirect, fLngMD, m_ucGpsLngDirect, fSpeedByNodeUnit, m_fDirect,m_usDay, m_usMonth, m_usYear - 2000, m_ucMode);}else{sprintf_s(pOutputString, nOutputStringSize - 1, "%s,%02d%02d%02d.%03d,%c,%.5f,%c,%.5f,%c,%.3f,%.2f,%02d%02d%02d,%d,%c,%c*",GpsNmeaData_Gnrmc_Head, m_usHour, m_usMinute, m_usSecond, m_usMillsSecond, m_ucStatus,fLatMD, m_ucGpsLatDirect, fLngMD, m_ucGpsLngDirect, fSpeedByNodeUnit, m_fDirect,m_usDay, m_usMonth, m_usYear - 2000, m_ucDeclination, m_ucDeclinationDirect, m_ucMode);}unsigned char ucChecksum = CalcChecksum((unsigned char *)pOutputString, strlen(pOutputString));char szChecksum[4] = { 0 };sprintf_s(szChecksum, "%02X", ucChecksum);strcat(pOutputString, szChecksum);if (bIsHasEndFlag){//是否帶結束標記符號,0x0d0x0achar szEndFlag[4] = { 0 };sprintf_s(szEndFlag, "%c%c", 0x0d, 0x0a);strcat(pOutputString, szEndFlag);}nOutputStringSize = strlen(pOutputString);}return bRet; }//加載GPGGA字符串 bool GpsNmeaData::LoadGPGGAString(char *pInputString, std::vector<std::string> vecValue,bool bIsCompareChecksum) {//$GPGGA,025620.00,2602.33721,N,11911.49176,E,2,04,1.63,13.5,M,9.9,M,,0000*5Dbool bRet = false;//utc時間sscanf(vecValue[1].c_str(), "%2d%2d%2d.%d", &m_usHour, &m_usMinute, &m_usSecond, &m_usMillsSecond);//緯度double fLatMD = atof(vecValue[2].c_str());m_fLat = dm_to_degree(fLatMD);//北緯/南緯if (vecValue[3].size() > 0){m_ucGpsLatDirect = vecValue[3].c_str()[0];}//經度double fLngMD = atof(vecValue[4].c_str());m_fLng = dm_to_degree(fLngMD);//東經/西經if (vecValue[5].size() > 0){m_ucGpsLngDirect = vecValue[5].c_str()[0];}//狀態(tài)if (vecValue[6].size() > 0){m_ucStatus = vecValue[6].c_str()[0];}else{m_ucStatus = '0';}//衛(wèi)星數m_ucSatelliteNum = atoi(vecValue[7].c_str());//HDOP水平精度因子(0.5~99.9)m_fHDOP = atof(vecValue[8].c_str());//海拔高度( - 9999.9~99999.9)m_fHigh = atof(vecValue[9].c_str());//M//地球橢球面相對大地水準面的高度m_fEarthHigh = atof(vecValue[11].c_str());//M//差分時間m_uiDiffTime = atol(vecValue[13].c_str());//差分站ID號、校驗std::vector<std::string> vecDiffIno;StringSplit(vecDiffIno, vecValue[14].c_str(), "*");if (vecDiffIno.size() >= 2){m_usDiffSiteId = atoi(vecDiffIno[0].c_str());char *stop = NULL;m_ucChecksum = strtol(vecDiffIno[1].c_str(), &stop, 16);}//計算校驗和比對if (bIsCompareChecksum){char *pFindStarChar = strrchr(pInputString, '*');if (pFindStarChar != NULL){unsigned char ucTempChecksum = 0;ucTempChecksum = CalcChecksum((unsigned char *)pInputString, pFindStarChar - pInputString + 1);if (ucTempChecksum == m_ucChecksum){bRet = true;}}}else{bRet = true;}return bRet; } //生成GPGGA字符串 bool GpsNmeaData::CreateGPGGAString(char *pOutputString, int & nOutputStringSize, bool bIsHasEndFlag) {//$GPGGA,025620.00,2602.33721,N,11911.49176,E,2,04,1.63,13.5,M,9.9,M,,0000*5D bool bRet = true;//memset(pOutputString, 0, nOutputStringSize);//緯度double fLatMD = degree_to_dm(m_fLat);//經度double fLngMD = degree_to_dm(m_fLng);//m_ucStatus 0=未定位,1=非差分定位,2=差分定位,6=正在估算if (m_ucStatus == '0'){//數據無效sprintf_s(pOutputString, nOutputStringSize - 1, "%s,%02d%02d%02d.%03d,,,,,%c,,,,M,,M,,0000*",GpsNmeaData_Gpgga_Head, m_usHour, m_usMinute, m_usSecond, m_usMillsSecond, m_ucStatus);unsigned char ucChecksum = CalcChecksum((unsigned char *)pOutputString, strlen(pOutputString));char szChecksum[4] = { 0 };sprintf_s(szChecksum, "%02X", ucChecksum);strcat(pOutputString, szChecksum);if (bIsHasEndFlag){//是否帶結束標記符號,0x0d0x0achar szEndFlag[4] = { 0 };sprintf_s(szEndFlag, "%c%c", 0x0d, 0x0a);strcat(pOutputString, szEndFlag);}nOutputStringSize = strlen(pOutputString);}else{//數據有效if (m_ucStatus == '2'){//差分定位sprintf_s(pOutputString, nOutputStringSize - 1, "%s,%02d%02d%02d.%03d,%.4f,%c,%.4f,%c,%c,%02d,%.1f,%.1f,M,%.1f,M,%u,%04d*",GpsNmeaData_Gpgga_Head, m_usHour, m_usMinute, m_usSecond, m_usMillsSecond,fLatMD, m_ucGpsLatDirect, fLngMD, m_ucGpsLngDirect, m_ucStatus,m_ucSatelliteNum,m_fHDOP,m_fHigh,m_fEarthHigh,m_uiDiffTime,m_usDiffSiteId);}else if (m_ucStatus == '1'){//非差分定位sprintf_s(pOutputString, nOutputStringSize - 1, "%s,%02d%02d%02d.%03d,%.4f,%c,%.4f,%c,%c,%02d,%.1f,%.1f,M,%.1f,M,,0000d*",GpsNmeaData_Gpgga_Head, m_usHour, m_usMinute, m_usSecond, m_usMillsSecond,fLatMD, m_ucGpsLatDirect, fLngMD, m_ucGpsLngDirect, m_ucStatus,m_ucSatelliteNum, m_fHDOP, m_fHigh, m_fEarthHigh);}else{sprintf_s(pOutputString, nOutputStringSize - 1, "%s,%02d%02d%02d.%03d,%.4f,%c,%.4f,%c,%c,%02d,%.1f,%.1f,M,%.1f,M,,0000*",GpsNmeaData_Gpgga_Head, m_usHour, m_usMinute, m_usSecond, m_usMillsSecond,fLatMD, m_ucGpsLatDirect, fLngMD, m_ucGpsLngDirect, m_ucStatus,m_ucSatelliteNum, m_fHDOP, m_fHigh, m_fEarthHigh);}unsigned char ucChecksum = CalcChecksum((unsigned char *)pOutputString, strlen(pOutputString));char szChecksum[4] = { 0 };sprintf_s(szChecksum, "%02X", ucChecksum);strcat(pOutputString, szChecksum);if (bIsHasEndFlag){//是否帶結束標記符號,0x0d0x0achar szEndFlag[4] = { 0 };sprintf_s(szEndFlag, "%c%c", 0x0d, 0x0a);strcat(pOutputString, szEndFlag);}nOutputStringSize = strlen(pOutputString);}return bRet; }/* 功能:計算經緯度(根據速度和方向計算下一經緯度) 參數:fDirect:方向;fSpeed:速度;km/h;dOldLng:舊經度;dOldLat:舊緯度;dNewLng:新經度;dNewLat:新緯度 返回:無 */ void GpsNmeaData::CalcLngLat(float fDirect, float fSpeed, double dOldLng, double dOldLat, double & dNewLng, double & dNewLat) {CalcLngLatEx(fDirect, fSpeed, dOldLng, dOldLat, dNewLng, dNewLat, 1); } /* 功能:計算經緯度(根據速度和方向計算下一經緯度) 參數:fDirect:方向;fSpeed:速度;km/h;dOldLng:舊經度;dOldLat:舊緯度;dNewLng:新經度;dNewLat:新緯度;nKeepSeconds:保持多少秒 返回:無 */ void GpsNmeaData::CalcLngLatEx(float fDirect, float fSpeed, double dOldLng, double dOldLat, double & dNewLng, double & dNewLat, int nKeepSeconds) {if (nKeepSeconds < 1){nKeepSeconds = 1;}float declie = fDirect;// 方位角float speed = fSpeed;// 速度float distance = speed * nKeepSeconds / 3600.0;//速度計算單位時間內車輛行駛距離,這里單位為千米。換算成每秒多少km,外部接口一秒發(fā)送一次gps數據float degree = distance / 111;//kmfloat tempLat = degree * cos(declie);float tempLong = degree * sin(declie);dNewLat = dOldLat + tempLat;dNewLng = dOldLng + tempLong; }/* 功能:計算經緯度(根據距離和方向計算下一經緯度) 參數:fDirect:方向;fDistance:距離;km;dOldLng:舊經度;dOldLat:舊緯度;dNewLng:新經度;dNewLat:新緯度 返回:無 */ void GpsNmeaData::CalcLngLatByDistanceAndDirect(float fDirect, double fDistance, double dOldLng, double dOldLat, double & dNewLng, double & dNewLat) {double dx = fDistance * 1000 * sin(fDirect*PI / 180.0);double dy = fDistance * 1000 * cos(fDirect*PI / 180.0);double ec = Eb + (Ea - Eb) * (90 - dOldLat) / 90.0;double ed = ec * cos(dOldLat*PI / 180);dNewLng = (dx / ed + dOldLng*PI / 180.0) * 180.0 / PI;dNewLat = (dy / ec + dOldLat*PI / 180.0) * 180.0 / PI; }//計算校驗和 unsigned char GpsNmeaData::CalcChecksum(unsigned char *pInput, int nInputSize) {//$與*符號之間的字符進行異或unsigned char ucChecksum = 0;int i = 0;for (i = 1; i < nInputSize - 1; i++)//排除$與*符號{ucChecksum ^= pInput[i];}return ucChecksum; }//度分轉換度 double GpsNmeaData::dm_to_degree(double dm) {//計算度int d = (int)(dm / 100);//計算分double m = dm - d * 100;double s = d * 3600 + m * 60;double dd_dddd = s / 3600.0;return dd_dddd; }//度轉換度分 double GpsNmeaData::degree_to_dm(double ddd_dddd) {int d = (int)(ddd_dddd);double m = (ddd_dddd - d) * 60;double dddmm_mmmm = d * 100 + m;return dddmm_mmmm; }/* 功能:計算兩點經緯度之間的距離 參數:latitude1:點1緯度值;longitude1:點1經度值;latitude2:點2緯度值;longitude2:點2經度值 返回:double,距離,單位為m */ double GpsNmeaData::GpsNmeaDataDistance(double latitude1, double longitude1, double latitude2, double longitude2) {double lon1 = longitude1 * PI / 180;double lat1 = latitude1 * PI / 180;double lon2 = longitude2 * PI / 180;double lat2 = latitude2 * PI / 180;double deltaLat = lat1 - lat2;double deltaLon = lon1 - lon2;double s = 2 * asin(sqrt(pow(sin(deltaLat / 2), 2) + cos(lat1)*cos(lat2)*pow(sin(deltaLon / 2), 2)));return (s * 1000 * 6378.137); } //調用實例 GpsNmeaData gndGpsNmeaData; bool bLoadGpsNmeaDataString = gndGpsNmeaData.LoadGPSString("$GNRMC,230142.00,A,2237.10770,N,11408.06877,E,11.002,218.24,310518,,,A,V*3A"); if(bLoadGpsNmeaDataString) {char szOutputGPRMC[128] = { 0 };int nOutputGPRMCSize = 128;bool bCreateGPRMCString = false;float fDirect = 0;double fLngPrev = 0, fLatPrev = 0;unsigned char ucLngPrevDirect = 0, ucLatPrevDirect = 0;double fNewLng = 0, fNewLat = 0;//獲取經緯度等信息gndGpsNmeaData.GetLng(fLngPrev, ucLngPrevDirect);gndGpsNmeaData.GetLat(fLatPrev, ucLatPrevDirect);//計算gndGpsNmeaData.CalcLngLatByDistanceAndDirect(fDirect, 30, fLngPrev, fLatPrev, fNewLng, fNewLat);//保存經緯度等信息gndGpsNmeaData.SetLng(fNewLng, ucLngPrevDirect);gndGpsNmeaData.SetLat(fNewLat, ucLatPrevDirect);gndGpsNmeaData.SetNowTime();nOutputGPRMCSize = 128;memset(szOutputGPRMC, 0, sizeof(szOutputGPRMC));bCreateGPRMCString = m_ggdGpsGprmcData.CreateGPSString(szOutputGPRMC, nOutputGPRMCSize, true); }

?

總結

以上是生活随笔為你收集整理的gps nmea数据格式解析与生成的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产高清一区二区 | 91欧美日韩国产 | 色婷婷激情网 | 国产毛片久久久 | 国产明星视频三级a三级点| 中文字幕在 | 日韩欧美一区视频 | 日日夜夜人人精品 | 天天做天天爱夜夜爽 | 国产精品一区在线观看你懂的 | 亚洲精品久久久久58 | 九九视频免费在线观看 | 国产精品女 | 日韩在线在线 | 亚洲干 | 国产精品一区二区麻豆 | 蜜桃视频色 | 国产手机在线 | 永久免费看av | 国产精品综合在线观看 | 天天玩天天干天天操 | 日韩欧美亚州 | 久久黄色a级片 | 成人在线观看影院 | www.天天射 | 久久免费视频这里只有精品 | 国产成人精品一区二区三区在线 | 国产精品久久久久av福利动漫 | 国产人免费人成免费视频 | 国产亚洲精品久久19p | 91探花国产综合在线精品 | 欧美贵妇性狂欢 | 青青久草在线 | 国产在线观看免费 | 九九热在线播放 | 中文字幕在线观看视频一区 | 国产精品久久久999 国产91九色视频 | 亚洲精品女人 | 日韩免费成人 | 成人h电影 | 中文字幕在线视频免费播放 | 日韩午夜在线观看 | 福利视频一二区 | 国产理论影院 | 国产欧美综合在线观看 | 国产69久久久 | 亚洲婷婷伊人 | 国产91av视频在线观看 | 天天干天天做天天操 | 91看片淫黄大片在线播放 | 久久一区国产 | 国产综合精品久久 | 91少妇精拍在线播放 | 成人av电影在线播放 | 亚洲aⅴ在线观看 | 日韩草比 | 国产区精品视频 | 国产精品一区二区三区电影 | 久草视频免费播放 | 国产1区2区3区在线 亚洲自拍偷拍色图 | 91成人免费视频 | 国产男女爽爽爽免费视频 | 成人a免费 | 91精品久久久久久久99蜜桃 | 97av精品 | 国产免费又黄又爽 | 色综合久久99 | 成人午夜电影久久影院 | 欧美黑人巨大xxxxx | 国产一区二区三区 在线 | 国产中文字幕一区二区 | 日韩天天干 | 成人羞羞视频在线观看免费 | 午夜.dj高清免费观看视频 | 中文字幕之中文字幕 | 超碰在线人人 | av电影亚洲 | 亚洲免费a | wwwwwww黄| 久久久人人爽 | 久久激情五月婷婷 | 免费在线91| 色综合久久天天 | 亚洲国产免费看 | 在线电影 你懂得 | av一区在线播放 | 国产精品成人免费 | 久久久久国产精品午夜一区 | 99中文字幕在线观看 | 97香蕉久久超级碰碰高清版 | 欧美激情精品一区 | 日本狠狠干| 国产一区二区日本 | 日韩免费播放 | 久久伊人操 | 国产只有精品 | 国产精品99久久久精品免费观看 | 五月激情丁香婷婷 | 狠狠色伊人亚洲综合网站野外 | 狠狠色狠狠色 | 天天爱天天射天天干天天 | av在线在线 | 成人91视频 | 精品福利片 | 免费看成人片 | 精品国产伦一区二区三区观看说明 | av丝袜在线 | 麻花豆传媒mv在线观看 | 五月婷婷色丁香 | 91污在线观看 | 九九久久国产精品 | 伊人五月天婷婷 | 久草在线免费资源站 | 91色在线观看视频 | 国产精品国产三级国产aⅴ无密码 | 亚洲成人av在线电影 | 天天射天天射天天射 | 在线电影a| 久草网站在线观看 | 成 人 免费 黄 色 视频 | 国产一区二区不卡视频 | 黄色成人av| 亚洲精品国产区 | 特片网久久| 成人黄色中文字幕 | 日韩 在线观看 | 国产资源中文字幕 | 成人资源站 | 日本公妇在线观看高清 | 久久精品国产亚洲 | 精品一区二区在线播放 | 黄色三级免费看 | 亚洲91中文字幕无线码三区 | 日韩精品一区在线播放 | 亚洲欧美精品一区二区 | 婷婷在线不卡 | 成人久久免费视频 | 丁香婷婷亚洲 | 人人看人人爱 | 在线免费黄色av | 国产亚洲精品v | 黄色免费网站 | 久久午夜国产精品 | 在线观看亚洲成人 | 2017狠狠干| 国产一级片在线播放 | 91亚洲夫妻 | 日韩视频在线观看视频 | av在线电影免费观看 | 亚洲免费在线观看视频 | www国产在线 | 亚洲精品乱码久久久久久 | 五月天色站 | 婷婷久久综合九色综合 | 日韩精品视频一二三 | 免费在线成人av电影 | 国产麻豆精品久久一二三 | 网址你懂的在线观看 | 日韩一级电影在线 | 色婷婷一区| 亚洲精选久久 | 草久久久 | 99免费在线观看 | 91桃色在线免费观看 | 免费看的黄色的网站 | 99色亚洲 | 久久福利影视 | 成人免费视频观看 | 亚洲国产一二三 | 麻豆国产精品va在线观看不卡 | 成人av免费在线观看 | 久久国产一二区 | 国产精品片 | 中文字幕一二三区 | 人人艹视频| 精品久久久久久久 | 99riav1国产精品视频 | 99精品视频中文字幕 | 国产美女在线观看 | 亚洲1级片 | 日本公妇在线观看 | 国产在线观看你懂得 | 欧美日韩精品网站 | 99久久久久久久久久 | 911国产精品 | 在线免费观看视频a | 免费在线观看av网址 | 日韩,中文字幕 | 免费看特级毛片 | 欧美一区二区三区四区夜夜大片 | 91精品在线播放 | 97人人澡人人爽人人模亚洲 | 免费色网 | 国产伦精品一区二区三区无广告 | 性日韩欧美在线视频 | 国产尤物一区二区三区 | 最近中文字幕免费视频 | 久久人人爽人人片av | 国产精品观看视频 | 天干啦夜天干天干在线线 | 日韩av中文字幕在线免费观看 | 美女网站视频免费黄 | 国产综合精品一区二区三区 | 在线观看免费成人av | 91精品区| 免费在线激情电影 | 亚洲综合视频网 | 在线国产视频观看 | 色婷婷激婷婷情综天天 | 亚洲精品福利在线观看 | 一区二区视频欧美 | 国产黄色大片免费看 | 69国产精品视频 | 97热视频 | 精品视频久久久久久 | 久久久精品 | 黄色大片免费播放 | 91完整版在线观看 | 亚洲欧美日韩精品久久久 | 超碰在线成人 | 国产高清在线免费 | 国产精品尤物 | 天天干,天天射,天天操,天天摸 | 久久精品视频3 | 国产在线不卡 | 四虎精品成人免费网站 | 国产高清亚洲 | 婷婷日日 | 亚洲精品国产精品久久99 | 丁香九月婷婷综合 | 国产精品一区免费在线观看 | 337p欧美| 97成人精品视频在线播放 | 国产a级片免费观看 | 国产97视频在线 | 欧美 日韩 国产 成人 在线 | 久久五月婷婷丁香 | 久草在线免费看视频 | 国产a级免费 | 天天爽天天爽 | 激情丁香久久 | 国产 日韩 欧美 中文 在线播放 | 在线观看日韩专区 | 欧美日韩中文国产一区发布 | 国产一区二区三区四区大秀 | 日韩精品中字 | www.色婷婷 | 欧美精品一区二区在线播放 | av观看免费在线 | a黄色影院 | 久久精品一区二区三区视频 | 香蕉久久久久久久 | 99视频在线免费播放 | www成人av | 日日草夜夜操 | 国产成人久久久77777 | 日日干夜夜骑 | 丁香六月伊人 | 久久99精品久久久久久 | 91人人爽久久涩噜噜噜 | 九九免费精品 | 久久97久久 | 天天射天天 | 国外调教视频网站 | 六月天色婷婷 | 国产在线精 | 91精品对白一区国产伦 | 91精品视频免费 | 日韩二区三区 | 免费精品人在线二线三线 | 国产成人精品电影久久久 | 久久久久久久久久久成人 | 麻豆影视在线免费观看 | 人人爽久久久噜噜噜电影 | 五月天婷婷丁香花 | 免费三级在线 | 久热免费在线观看 | 91成版人在线观看入口 | 天天色图 | 久久综合久久综合这里只有精品 | 国产视频18 | 狠狠干婷婷 | 91亚色视频在线观看 | 国产成人三级在线 | 最新高清无码专区 | 密桃av在线| 国产999| 999久久国精品免费观看网站 | 91亚洲国产成人久久精品网站 | 国产精品久久久久久久久毛片 | 成人午夜剧场在线观看 | 精品国产美女 | 在线一区av| 中文字幕乱在线伦视频中文字幕乱码在线 | 青青草在久久免费久久免费 | 国产精品欧美在线 | www.亚洲黄色| 亚洲国产激情 | 日韩肉感妇bbwbbwbbw | 韩国三级av在线 | 最近中文字幕久久 | 国内精品久久久久久中文字幕 | 国产又粗又硬又长又爽的视频 | 最近日本中文字幕 | 日韩av视屏在线观看 | 久久精品中文 | 亚洲国产精品电影 | 国产免费三级在线观看 | 亚洲精品黄色 | 欧美精品亚州精品 | 免费av网站观看 | 最新日本中文字幕 | 国产xxxx性hd极品 | 日本视频久久久 | 最新国产中文字幕 | 中文字幕一区二区三区在线观看 | 中文字幕二区 | 日韩专区av | 免费看的黄色的网站 | 四虎在线免费 | 狠色在线| 国产精品久久久久一区二区国产 | 国产一区在线免费观看视频 | 综合伊人久久 | 免费网站在线观看人 | 亚洲一区二区三区在线看 | 中文字幕在线网址 | 国产天天爽 | 天天综合入口 | 国产午夜精品在线 | 天天夜夜狠狠操 | 婷婷伊人综合 | 免费黄色av. | 日本精品久久久久久 | 亚洲精品日韩av | 成片免费观看视频大全 | 狠狠88综合久久久久综合网 | 最新日韩在线 | 黄色免费观看 | 欧美日韩一区二区久久 | 日韩高清免费无专码区 | 五月激情久久 | 91人人揉日日捏人人看 | 中文字幕一区二区三区四区久久 | 成人一级 | 一区二区不卡高清 | 98久久| 天天操夜夜拍 | 成人在线播放网站 | 中文字幕高清av | 97人人精品 | 国产成人精品一区二区三区福利 | 久草国产在线观看 | 日韩精品免费一区二区三区 | 国产在线97 | 九九99靖品 | 中文在线免费一区三区 | 国产va饥渴难耐女保洁员在线观看 | 欧美 日韩 久久 | 精品一二三区 | 国产精品久久久久久久妇 | 俺要去色综合狠狠 | 99精品在线免费观看 | 91视频 - 88av | 综合激情久久 | 国产女人40精品一区毛片视频 | 免费久久视频 | 国产精品亚洲综合久久 | 国产精国产精品 | 天天操狠狠操 | 国产小视频在线播放 | 日韩在线一级 | 91在线观看视频 | 干狠狠| 91传媒91久久久 | 在线视频app | 亚洲午夜av电影 | 国产精品私人影院 | 精品久久久久一区二区国产 | 精品一区久久 | 99色在线观看 | 久久久久免费精品国产 | 免费看一级 | 成人观看视频 | 最近免费在线观看 | av三级在线播放 | 射射射综合网 | 日韩伦理片一区二区三区 | 美女久久 | 久久经典视频 | 欧美一级爽 | 激情婷婷久久 | 国内精品视频一区二区三区八戒 | 外国av网 | 日韩高清片 | 亚洲激情在线观看 | 亚洲另类久久 | 777奇米四色 | 亚洲成人家庭影院 | 一级片视频免费观看 | 一区二区三区四区五区六区 | 福利视频第一页 | 久草在线资源观看 | 天天草天天摸 | 免费av小说 | 久久精品亚洲综合专区 | 激情婷婷 | 亚洲精品字幕在线观看 | 人人插人人费 | av在线等| 中文在线a天堂 | 天天草天天操 | 国产偷国产偷亚洲清高 | 91中文在线 | 久久久福利视频 | 欧美大香线蕉线伊人久久 | 黄色毛片电影 | 国产精品一区电影 | 91视频在线 | 五月天久久久久 | 色婷婷福利视频 | 国产原厂视频在线观看 | 国产精品18久久久久久vr | 欧美性生活久久 | 久久久久久久久久久网站 | 国产视频一区二区三区在线 | 色悠悠久久综合 | 超级碰碰免费视频 | 久久国产精品系列 | 国产无套精品久久久久久 | 国产不卡精品 | 日日爽日日操 | 国产1区在线观看 | 国产精品一级视频 | 亚洲一区精品二人人爽久久 | 午夜视频在线网站 | 综合色狠狠 | 久久精品视频在线播放 | 天堂网一区二区 | 国产精品国产三级国产不产一地 | av在线免费观看不卡 | 亚洲精品综合一二三区在线观看 | 97视频亚洲 | 国产精品密入口果冻 | 丁香综合网 | 欧美日韩3p | 欧美日韩在线看 | 99精品视频精品精品视频 | 三级av免费观看 | 在线观看中文字幕2021 | 欧美一区二区日韩一区二区 | 久久er99热精品一区二区三区 | 国产 日韩 在线 亚洲 字幕 中文 | 久久视频免费在线 | 成人免费观看电影 | 亚洲精品视频大全 | 色噜噜噜噜 | 日韩网站中文字幕 | 久久久婷| 久久在线观看 | 奇米影视在线99精品 | 91看片淫黄大片一级在线观看 | 美女精品久久 | 夜色成人av| 美女在线观看网站 | 久久99精品波多结衣一区 | 久久a国产| 色偷偷88欧美精品久久久 | 国内精品久久久久久久久久清纯 | 久久99网| 色偷偷88888欧美精品久久久 | 国产亚洲免费观看 | 久久久久亚洲精品国产 | 久久午夜网| 日韩一区二区免费在线观看 | 精品久久久久久久久久久久 | 久久九九影视 | 亚洲黄色在线 | 久久成人国产精品 | 又黄又刺激的视频 | 婷婷国产一区二区三区 | 一级电影免费在线观看 | 亚洲精品成人av在线 | 国产色在线视频 | 日韩精品不卡在线 | 国产精品一区二区视频 | 日日干激情五月 | 91综合久久一区二区 | 99国产视频在线 | 99热国产精品 | 欧美综合在线视频 | 日韩精品一区二区三区水蜜桃 | 欧美吞精| 99r在线播放 | a久久久久| 欧美日韩视频在线播放 | 欧美成人黄色片 | 国产一二三区av | 婷婷免费在线视频 | 国产又粗又猛又黄又爽 | 亚洲一区动漫 | 久久久久久久国产精品视频 | 色妞久久福利网 | 久久久国产精品成人免费 | 国产精品99蜜臀久久不卡二区 | 中文字幕一区二区三区四区在线视频 | 久久8精品| 日韩一二三在线 | 探花视频免费观看 | 成人黄色在线视频 | 狠狠插狠狠操 | www久草| 欧美一区二区三区在线看 | 99热在线精品观看 | 欧美老少交 | 国产综合香蕉五月婷在线 | 狠狠的干 | 国产香蕉视频在线观看 | 正在播放国产91 | 成人免费观看视频大全 | 欧美了一区在线观看 | 999精品 | 日韩av不卡在线观看 | 中文字幕乱码日本亚洲一区二区 | 成人网在线免费视频 | av免费在线观看网站 | av电影在线观看 | 欧美国产日韩中文 | 中文字幕在线观看日本 | 久久久久久久久久久影院 | 久久精品中文 | 久热av | 久久午夜网 | 激情欧美日韩一区二区 | 超碰在线人人艹 | 亚洲成人黄色在线观看 | 国产一区二区三区免费在线观看 | 亚洲在线看 | 日韩一级精品 | 亚洲高清激情 | av电影在线免费 | 视频一区在线播放 | 色资源网免费观看视频 | 人人澡人摸人人添学生av | 欧洲精品码一区二区三区免费看 | 久久久国内精品 | 国产成人精品一区二区在线 | 久久一本综合 | 国产成人免费在线观看 | 91免费高清观看 | av在线网站观看 | 香蕉网在线观看 | 久久久久久久久久久高潮一区二区 | 日韩精品极品视频 | 精品国产伦一区二区三区观看方式 | 国产一区二区在线视频观看 | av在线免费观看黄 | 在线看岛国av | 91精品一区二区三区蜜臀 | 天堂av在线 | 国产成人精品免费在线观看 | 久久久99国产精品免费 | 在线观看mv的中文字幕网站 | 亚洲美女免费精品视频在线观看 | 国产 在线观看 | 天天爽天天碰狠狠添 | 亚洲精品一区二区精华 | 99久久精品免费看国产免费软件 | 日本中文在线 | 精品久久一区二区三区 | av电影久久| 色综合天天综合 | 国产aaa毛片| 黄色大片免费播放 | 欧美日韩精品在线免费观看 | 国内小视频在线观看 | 久久亚洲私人国产精品va | 国产精品99久久久精品 | 日韩国产精品久久久久久亚洲 | 国产69精品久久久久99尤 | 日本公妇在线观看 | 日韩簧片在线观看 | 麻豆视频入口 | 国产一线天在线观看 | 天天操天天吃 | 精品一区在线 | 一区二区三区精品在线视频 | 四虎国产永久在线精品 | 91人人在线 | 国内视频1区 | 成人免费观看网址 | 中文国产在线观看 | 国产三级午夜理伦三级 | 亚洲资源在线观看 | 伊人开心激情 | 中文字幕在线免费 | 欧美色久| 欧美激情第一区 | av激情五月| 人人爽人人爽人人 | 久久久久久久亚洲精品 | 国产精品粉嫩 | 欧美男同网站 | 国产91精品一区二区麻豆亚洲 | 丁香婷婷久久久综合精品国产 | 色婷丁香 | 国产综合小视频 | 久久99深爱久久99精品 | 久久成人在线 | 日韩网站一区二区 | 天堂v中文 | 天天综合网久久 | 国产中年夫妇高潮精品视频 | 天天曰夜夜操 | 香蕉手机在线 | 免费视频91蜜桃 | 西西4444www大胆艺术 | 一级a毛片高清视频 | 亚洲精品国产综合久久 | 欧美资源 | 国产精品一级在线 | 99热99热 | 日本精品久久久久中文字幕 | 国产69久久| 91精品国产自产老师啪 | 色综合久久久久综合 | 免费网站v| 在线免费观看黄色大片 | 国产精品久久久久久久久久久久久久 | 人人艹人人| 成人四虎 | 久久精品二区 | 日韩av不卡在线观看 | 中文字幕久久精品 | 中文字幕乱在线伦视频中文字幕乱码在线 | 一级一片免费视频 | 国产香蕉视频在线观看 | 欧美日韩中文字幕在线视频 | 日韩欧美在线观看一区二区三区 | 精品国内自产拍在线观看视频 | 欧美激情精品久久久久久免费印度 | 国产一级免费在线 | 午夜少妇一区二区三区 | 久久久av免费 | 97超碰人人看 | 成人久久18免费网站图片 | 黄色的网站在线 | 天天拍天天草 | 久草在线这里只有精品 | 国产一二三区av | www.av免费 | 欧美精品一区二区在线播放 | 91av精品 | 欧美一区二区在线免费看 | 99精品久久99久久久久 | 在线播放 一区 | 亚洲高清视频在线观看 | 9在线观看免费高清完整版 玖玖爱免费视频 | 色播五月激情五月 | 九色视频网站 | 日韩欧美一区二区三区在线 | 亚洲天堂网在线视频观看 | 亚洲成人精品 | 天天干天天操天天搞 | 欧美性生活小视频 | 国产伦理一区二区 | 日韩有码在线观看视频 | 日韩视频在线观看免费 | 久久精品高清视频 | 91传媒在线| 99久久综合国产精品二区 | 精品亚洲视频在线观看 | 国产999精品久久久久久绿帽 | 日韩视频一二三区 | 九九免费精品视频在线观看 | 亚洲 中文 欧美 日韩vr 在线 | 免费看搞黄视频网站 | 成人av亚洲 | 国产成人精品在线观看 | 日韩成人高清在线 | 美女网站免费福利视频 | 日韩欧美在线国产 | 久久精品视频在线观看免费 | 免费黄色网址大全 | 久草www| 最近中文字幕免费av | 在线视频1卡二卡三卡 | 日韩一区二区免费视频 | 草在线 | 久久国产欧美日韩精品 | 免费男女羞羞的视频网站中文字幕 | 国产永久免费高清在线观看视频 | 99色视频 | 麻豆免费精品视频 | 久久成人高清 | 国产婷婷视频在线 | 欧美激情精品久久久久久 | 国产在线免费观看 | 久精品在线 | 欧美性生活一级片 | 精品国产成人在线影院 | 国产精品久久99综合免费观看尤物 | 国产一线二线三线在线观看 | 探花国产在线 | 超碰人人av| 亚洲免费成人av电影 | 久久久午夜影院 | 日韩中文字幕视频在线 | 91视频麻豆视频 | 免费看国产精品 | 久久免费试看 | 在线视频区 | 日日天天 | 欧美精品中文 | 亚洲精品日韩一区二区电影 | www黄色| 国产在线一卡 | 97超碰影视| 免费亚洲一区二区 | 97超碰精品 | 婷婷视频在线 | 亚洲国产mv| 91成人欧美| 97超碰在线播放 | 天天摸天天弄 | 日韩高清一二三区 | 国产精品免费在线观看视频 | 日韩精品中文字幕一区二区 | 日本中文乱码卡一卡二新区 | 亚洲综合激情小说 | 97超视频 | 丁香六月在线观看 | 久久综合九色九九 | 国产在线观看二区 | 国产999视频 | 最近免费中文字幕mv在线视频3 | 久久你懂的 | 久久国产精品99久久人人澡 | 樱空桃av| 三级a视频 | 欧美激情视频一区二区三区 | 国产一卡在线 | 中文字幕中文字幕在线中文字幕三区 | 国产成人av | 丝袜精品视频 | 色婷婷久久久综合中文字幕 | 综合网天天| 欧美色综合久久 | 国产乱老熟视频网88av | 国产一级在线播放 | 在线黄色免费av | 在线视频亚洲 | 日韩在线观看视频免费 | 在线视频观看你懂的 | 国产精品一区二区吃奶在线观看 | 综合色亚洲 | 欧洲一区精品 | av无限看 | 中文字幕欲求不满 | 91成人精品 | 欧美日韩国产综合网 | 国产精品99久久免费观看 | av在线官网| 国产手机在线观看视频 | 高清免费在线视频 | 美女av电影 | 国产裸体无遮挡 | 在线视频一二三 | 99精品久久久久久久久久综合 | 玖玖国产精品视频 | 黄色亚洲 | 色婷婷综合久久久 | 日韩一区二区在线免费观看 | 国产99久久九九精品免费 | 国产精品久久久久久久久久ktv | 又粗又长又大又爽又黄少妇毛片 | 五月婷婷激情综合 | 成人毛片在线观看 | 99麻豆久久久国产精品免费 | 日韩在线观看av | 欧美色道 | 免费热情视频 | 亚洲一级片 | 久久人人爽爽人人爽人人片av | 黄色免费网站下载 | 免费黄色在线播放 | bayu135国产精品视频 | 日韩三级.com | 国产69精品久久99的直播节目 | 婷婷色网址 | 欧美视频www | 日本护士三级少妇三级999 | 91精品一区二区在线观看 | 天天干.com | 99在线看 | 91丨九色丨国产丨porny精品 | 日韩三级精品 | 国产黄色精品在线观看 | 日韩激情小视频 | 亚洲成人在线免费 | 国产人成在线视频 | 四虎国产精品永久在线国在线 | 日本二区三区在线 | 亚洲免费av在线播放 | 天天插夜夜操 | 免费观看www视频 | 欧美一区二区三区免费观看 | 97电影网手机版 | av在线8 | 91热爆视频 | 日本精品va在线观看 | 激情黄色一级片 | 亚洲一级电影视频 | 色婷婷狠狠干 | 特级a老妇做爰全过程 | 九九久久在线看 | 久久天天躁狠狠躁夜夜不卡公司 | 91在线视频在线 | 在线免费三级 | 波多野结衣视频一区 | 精品久久毛片 | 一区二区不卡高清 | 91亚洲精品乱码久久久久久蜜桃 | 日韩精品一区二区三区免费视频观看 | 国产在线超碰 | 在线天堂中文在线资源网 | av免费看在线 | 中文字幕色在线视频 | 波多野结衣电影久久 | 国产精品久久99综合免费观看尤物 | 免费av看片| 国产精品免费久久久久影院仙踪林 | 日韩理论片在线 | 久久五月婷婷丁香 | 欧美精品黑人性xxxx | 天天摸天天舔天天操 | 狠狠狠色| 色大片免费看 | 四虎国产精品成人免费影视 | 日韩精品在线看 | 日日操狠狠干 | 色婷婷福利 | 欧美一区二区三区在线看 | 高清在线一区二区 | 狠狠色丁香婷婷综合视频 | 中文字幕有码在线播放 | 午夜精品久久久久99热app | 久久人人精 | 成人在线中文字幕 | 中文视频一区二区 | 国产人成看黄久久久久久久久 | 久热电影 | 中文字幕在线免费观看视频 | 一级免费黄视频 | 欧美日韩高清在线一区 | 探花视频免费观看 | 久久成人免费 | 狠狠色丁香婷婷综合橹88 | 免费黄在线观看 | 中文乱幕日产无线码1区 | 欧美久久久久久久 | 久久尤物电影视频在线观看 | 91九色porny蝌蚪视频 | 欧美另类美少妇69xxxx | 在线观看aaa | 九九热在线免费观看 | 国产婷婷 | 91av在线免费视频 | 一区二区中文字幕在线播放 | 欧美日韩不卡一区二区 | 国产精品免费久久久久影院仙踪林 | 亚洲激精日韩激精欧美精品 | 国产裸体视频网站 | 在线看小早川怜子av | 久久五月婷婷综合 | 欧美性极品xxxx娇小 | 精品视频免费观看 | 国际av在线 | 精品视频国产一区 | 91色蜜桃 | 中国美女一级看片 | 欧美日韩免费观看一区=区三区 | 黄色avwww| 久久福利电影 | 1024手机基地在线观看 | 久久久精华网 | av看片在线观看 | 国产成人综合图片 | 免费网站黄 | 激情婷婷久久 | 午夜12点| www.天天成人国产电影 | 午夜在线观看 | 午夜12点 | 狠狠操狠狠操 | 国产在线理论片 | 亚洲人成免费 | 亚洲中字幕 | 日韩高清不卡在线 | 亚洲日本一区二区在线 | 天天综合网天天 | 麻豆精品在线视频 | 在线视频免费观看 | 国产91精品一区二区麻豆网站 | 欧美日韩色婷婷 | 美女免费视频黄 | 嫩草av在线 | 精品久久久久久久久久久久久久久久久久 | 天天视频色版 | 午夜精品久久久久久久99水蜜桃 | 成人午夜影院在线观看 | 午夜在线观看 | 91一区二区三区久久久久国产乱 | 最新av在线网址 | 久久精品一二三区白丝高潮 | 中文字幕日韩高清 | 亚洲人在线视频 | 搡bbbb搡bbb视频 | 久久成人国产精品免费软件 | 久久免费国产精品 | 日韩美视频 | 伊人久久国产 | 九九视频在线 | 日韩电影中文,亚洲精品乱码 | 在线黄色免费 | 色播激情五月 | 久操视频在线观看 | 国产大陆亚洲精品国产 | 国产欧美在线一区 | 亚洲成人黄色网址 | 久久a免费视频 | 亚洲精品乱码久久久久久按摩 | 91在线视频免费播放 | 亚洲第一成网站 | av韩国在线 | 亚洲精品9 | 久草香蕉在线 | 国产精品免费观看久久 | 波多野结衣一区 | 香蕉在线视频观看 | 中文字幕一区二区三区久久 | 九九视频在线观看视频6 | 成人性生交大片免费看中文网站 | 国产精品麻豆欧美日韩ww | 国产a国产a国产a | 天天曰天天爽 | 欧美一区二区在线刺激视频 | 不卡av在线播放 | 亚洲涩涩一区 | 一区二区不卡高清 | 午夜精品导航 | 在线一区电影 | 国产精品免费在线播放 | 国产色视频网站 | 日本韩国精品在线 | 中文字幕在线观看免费高清完整版 | 在线观看黄色av | 日韩二区在线观看 | 免费观看十分钟 | 天天射天天操天天色 | 97超碰人人看 | 最新国产福利 | 国产综合福利在线 | 久草综合视频 | 亚洲激情av | www.天天综合 | av福利在线播放 | 亚洲午夜精品一区 | 精品主播网红福利资源观看 | 91精品入口| 日韩欧美一区二区三区在线观看 | 狠狠色丁香婷婷综合久久片 | www.黄色在线 | 国产区精品在线观看 | 欧美日韩国产综合一区二区 | 欧美日韩国产一区二区三区 | 亚洲在线不卡 | 日韩大片在线观看 | 91视频3p| 人人干天天干 | 欧美激情视频一二三区 | av大全免费在线观看 | 91人人射 | 人人澡人人舔 | 手机在线免费av | 精品99免费视频 | 日韩中文字幕免费在线播放 | 最近中文字幕在线中文高清版 | 日韩女同一区二区三区在线观看 | 精品一区二区在线免费观看 | 最新av免费在线观看 | 9999精品视频 | 国产一级片网站 | 亚洲精品福利在线观看 | 97超碰在线久草超碰在线观看 | 国产色网站 | 美女黄色网在线播放 | 久久爽久久爽久久av东京爽 |