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

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

?? gpsfunc.cpp

?? 基于USB接口的GPS應用程序
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
 inc = EphPtr->inc0 + delinc + EphPtr->idot*d_toe;

 //     LA IS THE CORRECTED LONGITUDE OF THE ASCENDING NODE

 la = EphPtr->w0 + (EphPtr->omegadot - OmegaDotEarth)*d_toe
       - OmegaDotEarth*EphPtr->toe;

 xp = r*cos(aol);
 yp = r*sin(aol);

 Pos[0] = xp*cos(la) - yp*cos(inc)*sin(la);
 Pos[1] = xp*sin(la) + yp*cos(inc)*cos(la);
 Pos[2] = yp*sin(inc);
}

//--------------------------------------------------------------------
// calculate sat position using almanac data and time of week
void GPS_Func::SatPosECEFAlminfo(AlmInfo *AlmPtr, double Time, int WeekNo, double *Pos)
{
  double d_toa, ei,ea,diff, m_m, ta ,r, aol, la, omegae,xp,yp;
  double satPos[3];

//  omegae = 7.2921151467E-5;
  d_toa = Time - AlmPtr->Toa;
  if( d_toa > 302400.0)
    d_toa = d_toa - 604800.0;
  else if( d_toa < -302400.0)
    d_toa = d_toa + 604800.0;
  // mean motion is
  m_m = 19964981.84/pow(AlmPtr->SqrtA,3);
  // recursively calc eccentric anomaly E

  ei = AlmPtr->M0 + d_toa*m_m;
  ea = ei;
  do{
    diff = (ei - (ea - AlmPtr->E*sin(ea)))/(1. - AlmPtr->E*cos(ea));
    ea = ea + diff;
  } while( fabs(diff) > 1.0e-6);

  // Now ea is eccentric anomaly E

  //ta is the true anomaly
  if( AlmPtr->E != 0.0)
    ta = atan2(sqrt(1. - AlmPtr->E * AlmPtr->E) * sin(ea),cos(ea)-AlmPtr->E);
  else
    ta = ea;

  //r is the radius of satellite orbit at time Time
  r = AlmPtr->SqrtA*AlmPtr->SqrtA*(1.0 - AlmPtr->E*cos(ea));

  // aol is the argument of latitude
  aol = ta + AlmPtr->Omega;

  //
  la = AlmPtr->Omega0 + (AlmPtr->OmegaDot-OmegaDotEarth)*d_toa
       - AlmPtr->Toa*OmegaDotEarth;
  xp= r*cos(aol);
  yp= r*sin(aol);

  Pos[0] = xp*cos(la) - yp*cos(AlmPtr->DeltaI)*sin(la);
  Pos[1] = xp*sin(la) + yp*cos(AlmPtr->DeltaI)*cos(la);
  Pos[2] = yp*sin(AlmPtr->DeltaI);

  AlmPtr->ECEF_Pos[0] = Pos[0];
  AlmPtr->ECEF_Pos[1] = Pos[1];
  AlmPtr->ECEF_Pos[2] = Pos[2];


  ConvertToLongLatAlt(  satPos,  Pos);
}

/*++
 Routine Description:
   calculate sat's position using ephemeris and almanac for comparition;
   just for debugging use;
 Argument:
         prn: prn number of satellite;
         Time: time of gps
 Rreturn:
         none;

--*/
void GPS_Func::GetSatPos( int prn , double Time)
{
 double posalm[3], poseph[3];
 SatPosECEFAlminfo(&Almanac[prn], Time, 0, posalm);
 SatPosECEFEphinfo(&Ephemeris[prn], Time, 0, poseph);

//#ifdef GPS_FUNC_DBG
//   debugfile << "TOW: " << Time << endl;
//   debugfile.setf(10);
//   debugfile << "Pos from Alm :"  << posalm[0] << ","
//                                   << posalm[1] << ","
//                                   << posalm[2] << endl
//             <<  "Pos from Eph :"  << poseph[0] << ","
//                                   << poseph[1] << ","
//                                   << poseph[2] << endl;
//
//#endif
}
//--------------------------------------------------------------------

void GPS_Func::SatElevAndAzimuth( int SatId, double UsrPos[3],
                                  double Time,int Week )
{
  double Dx, Dy, Dz;         /* Distance user to sat in ECEF */
  double SatPos[3],SatPosPlus[3],SatSpeed[3];  /* Position of sat */
  double UserToSatRange;     /* Distance user to sat */
  double DirCos[3];          /* Director cosines from user to sat */
  double EnuCos[3];

  /* Calculate the sat pos from almanac, current time and week number */
  SatPosECEFAlminfo( &Almanac[SatId], Time, Week, SatPos );
  SatPosECEFAlminfo( &Almanac[SatId], Time+1., Week, SatPosPlus );
  for(int k =0; k<3; k++)
  SatSpeed[k] = SatPosPlus[k] - SatPos[k];

  /* Distance from user to sat */
  Dx = SatPos[0] - UsrPos[0];
  Dy = SatPos[1] - UsrPos[1];
  Dz = SatPos[2] - UsrPos[2];

  UserToSatRange = sqrt((Dx * Dx) + (Dy * Dy) + (Dz * Dz));

  Almanac[SatId].Dopp= (SatSpeed[0]*Dx + SatSpeed[1]*Dy+SatSpeed[2]*Dz)*5.2514/UserToSatRange;

  /* Director cosines */
  DirCos[0] = Dx / UserToSatRange;
  DirCos[1] = Dy / UserToSatRange;
  DirCos[2] = Dz / UserToSatRange;

  /* Transformation to local tangent plane */
  EnuCos[0] = (PlaneET1 * DirCos[0]) + (PlaneET2 * DirCos[1]);
  EnuCos[1] = (PlaneNT1 * DirCos[0]) + (PlaneNT2 * DirCos[1])
    + (PlaneCE  * DirCos[2]);
  EnuCos[2] = (PlaneUTx * DirCos[0]) + (PlaneUTy * DirCos[1])
    + (PlaneUTz * DirCos[2]);

  /* Azimuth and elevation of sat as seen by user */
  Almanac[SatId].Ele = asin(EnuCos[2]) * (180.0 / PI);
  Almanac[SatId].Azm = atan2(EnuCos[0], EnuCos[1]) * (180.0 / PI);
}
//--------------------------------------------------------------------
/*++
 Routine Description:
   user alamanac file to calculate sat's elevation and azimuth roughly;
 Argument:
         time: time in second ;
 Rreturn:
         none;

--*/
void GPS_Func::process_allsat(double Time, int Week)
{
 double MyECEFPos[3];
 // first init ele, azm and doppler to invalid value
 for( int i=0; i< SatMax+1; i++)
 {
  Almanac[i].Ele = -1;
  Almanac[i].Azm = -1;
  Almanac[i].Dopp = 0;
 }

 ConvertToECEF(MyECEFPos, UserPos );

 for( int i=0; i<SatMax+1; i++)
 {
  if( Almanac[i].SatId != 0)
  { // this is a valid almanac data
   SatElevAndAzimuth(i,MyECEFPos,Time,Week);
  }
 }
}

//--------------------------------------------------------------------
/*++
 Routine Description:
   process GPS message, using global variable allch_nagmsg to transfer msgs
 Argument:
         none;
 Rreturn:
         none;

--*/
void GPS_Func::processMsg( void )
{
 int ch_cnt;

 if( newmsg_rdy )
 {
  for(int i=0; i<CH_NUM; i++)
   if( allch_navmsg[i].newdata ) // new frame is here
   {
    ch_prn[i] = allch_navmsg[i].prn; // set prn num for this channel
    readOneChMsg( i );
    allch_navmsg[i].newdata = false; // reset new flag
   }
  newmsg_rdy = false;

 }

 ch_cnt = allchtrtime.ch_count;

//#ifdef GPS_FUNC_DBG
// debugfile << " CH count is :" <<  ch_cnt << endl;
// debugfile.precision(16);
// for( int i=0; i<ch_cnt; i++)
//  debugfile << allchtrtime.ch_transtime[i].prn << " "
//            << allchtrtime.ch_transtime[i].tr_time << endl;
//#endif

 if( ch_cnt >= 4)
 {
  resolve_PVT();
 }
}

//--------------------------------------------------------------------
/*++
 Routine Description:
      P.V.T. resolution;
 Argument:
      none;
 Rreturn:
         none;

--*/

void GPS_Func::resolve_PVT(void)
{
 long double min_trtime, max_trtime,m_time;
 int prn;
 sat_tr_pos sat_pvtpara[CH_NUM];
 double tmp_pos[3];

 // first check if all trans_time make sense?
 min_trtime = max_trtime = allchtrtime.ch_transtime[0].tr_time;

 for( int i=1; i< allchtrtime.ch_count; i++)
 {
  if( allchtrtime.ch_transtime[i].tr_time > max_trtime)
   max_trtime = allchtrtime.ch_transtime[i].tr_time;
  if( allchtrtime.ch_transtime[i].tr_time < min_trtime)
   min_trtime = allchtrtime.ch_transtime[i].tr_time;
 }

 if( fabs( max_trtime - min_trtime ) > 0.1 )    // doesn't make sense
  return;

 // if any channel is not ready , quit
 for( int i=0; i< allchtrtime.ch_count; i++)
 {
  prn = allchtrtime.ch_transtime[i].prn;
  if( ! Ephemeris[prn].valid)
   return;
 }

 m_time = (long double)( max_trtime + 0.08);  // guess

 for( int i=0; i< allchtrtime.ch_count; i++)
 {
  prn = allchtrtime.ch_transtime[i].prn;
  SatPosECEFEphinfo(&Ephemeris[prn],
                     allchtrtime.ch_transtime[i].tr_time,
                     0,
                     &sat_pvtpara[i].pos[0]);

  SatPosECEFEphinfo(&Ephemeris[prn],
                     allchtrtime.ch_transtime[i].tr_time - 1.,
                     0,
                     &tmp_pos[0]);
                     
  // calculate velocity of satellite

   sat_pvtpara[i].vel[0] = sat_pvtpara[i].pos[0] - tmp_pos[0]-
                           sat_pvtpara[i].pos[1]* OmegaDotEarth;
   sat_pvtpara[i].vel[1] = sat_pvtpara[i].pos[1] - tmp_pos[1]+
                           sat_pvtpara[i].pos[0]* OmegaDotEarth;
   sat_pvtpara[i].vel[2] = sat_pvtpara[i].pos[2] - tmp_pos[2];


  sat_pvtpara[i].delta_time = m_time - allchtrtime.ch_transtime[i].tr_time + Ephemeris[prn].bclk;
  sat_pvtpara[i].doppler_freq = allchtrtime.ch_transtime[i].dopp_f;

#ifdef GPS_FUNC_DBG
 debugfile.precision(16);
 debugfile << "Prn:" <<prn << " "
            << " x: " << sat_pvtpara[i].pos[0]
            << " y: " << sat_pvtpara[i].pos[1]
            << " z: " << sat_pvtpara[i].pos[2]
            << " vx:" <<sat_pvtpara[i].vel[0]
            << " vy:" <<sat_pvtpara[i].vel[1]
            << " vz:" <<sat_pvtpara[i].vel[2]
            << " tr:" << allchtrtime.ch_transtime[i].tr_time << endl;
#endif

 }

 // next we will use recursion to get current location
 int nits, i, j, k, nsl;
 double t,x,y,z;
 double  dd[4][4],r,ms[4][6],pm[4][6],bm[6],br[4],correct_mag;
 double a1,b1,c1,d1,e1,f1,g1,h1,i1,j1,k1,l1,m1,n1,o1,p1,denom,alpha;

 double Dx, Dy, Dz;         /* Distance user to sat in ECEF */
 double UserToSatRange;     /* Distance user to sat */
 double DirCos[3];          /* Director cosines from user to sat */
 double EnuCos[3];


 nsl = allchtrtime.ch_count;
 nits=0;
 t=0.0;
 x=ECEFuserpos[0];
 y=ECEFuserpos[1];
 z=ECEFuserpos[2];
 do
 {
  for(i=0;i<nsl;i++)
  {

//   Compute range in ECI at the time of arrival at the receiver

   alpha = (t-sat_pvtpara[i].delta_time)*OmegaDotEarth;
   r = sqrt(pow(sat_pvtpara[i].pos[0]*cos(alpha)-sat_pvtpara[i].pos[1]*sin(alpha)-x,2)+
	    pow(sat_pvtpara[i].pos[1]*cos(alpha)+sat_pvtpara[i].pos[0]*sin(alpha)-y,2)+
	    pow(sat_pvtpara[i].pos[2]-z,2));
   bm[i]=r-(sat_pvtpara[i].delta_time - t)*SpeedOfLight;
   ms[0][i]=(sat_pvtpara[i].pos[0]*cos(alpha)-sat_pvtpara[i].pos[1]*sin(alpha)-x)/r;
   ms[1][i]=(sat_pvtpara[i].pos[1]*cos(alpha)+sat_pvtpara[i].pos[0]*sin(alpha)-y)/r;
   ms[2][i]=(sat_pvtpara[i].pos[2]-z)/r;
   ms[3][i]=1.0;
  }
  a1=0.;b1=0.;c1=0.;d1=0.;
  e1=0.;f1=0.;g1=0.;h1=0.;
  i1=0.;j1=0.;k1=0.;l1=0.;
  m1=0.;n1=0.;o1=0.;p1=0.;
  for (k=0;k<nsl;k++)
  {
   a1+=ms[0][k]*ms[0][k];
   b1+=ms[0][k]*ms[1][k];
   c1+=ms[0][k]*ms[2][k];
   d1+=ms[0][k]*ms[3][k];
//     e1+=ms[2][k]*ms[1][k];   for completeness, the matrix is symmetric
   f1+=ms[1][k]*ms[1][k];
   g1+=ms[1][k]*ms[2][k];
   h1+=ms[1][k]*ms[3][k];
//     i1+=ms[3][k]*ms[1][k];
//     j1+=ms[3][k]*ms[2][k];
   k1+=ms[2][k]*ms[2][k];
   l1+=ms[2][k]*ms[3][k];
//     m1+=ms[1][k];
//     n1+=ms[2][k];
//     o1+=ms[3][k];
   p1+=ms[3][k];
  }
  o1=l1;m1=d1;n1=h1;e1=b1;i1=c1;j1=g1;
/*
	  SOLVE FOR THE MATRIX INVERSE
*/
  denom=(k1*p1-l1*o1)*(a1*f1-b1*e1) + (l1*n1-j1*p1)*(a1*g1-c1*e1) +
        (j1*o1-k1*n1)*(a1*h1-d1*e1) + (l1*m1-i1*p1)*(c1*f1-b1*g1) +
        (i1*o1-k1*m1)*(d1*f1-b1*h1) + (i1*n1-j1*m1)*(c1*h1-d1*g1);

  dd[0][0]=f1*(k1*p1-l1*o1)+g1*(l1*n1-j1*p1)+h1*(j1*o1-k1*n1);
  dd[0][1]=e1*(l1*o1-k1*p1)+g1*(i1*p1-l1*m1)+h1*(k1*m1-i1*o1);
  dd[0][2]=e1*(j1*p1-n1*l1)-i1*(f1*p1-n1*h1)+m1*(f1*l1-j1*h1);
  dd[0][3]=e1*(n1*k1-j1*o1)+i1*(f1*o1-n1*g1)+m1*(j1*g1-f1*k1);

  dd[1][0]=dd[0][1];
  dd[1][1]=a1*(k1*p1-l1*o1)+c1*(l1*m1-i1*p1)+d1*(i1*o1-k1*m1);
  dd[1][2]=a1*(l1*n1-j1*p1)+i1*(b1*p1-n1*d1)+m1*(j1*d1-b1*l1);
  dd[1][3]=a1*(j1*o1-n1*k1)-i1*(b1*o1-n1*c1)+m1*(b1*k1-c1*j1);

  dd[2][0]=dd[0][2];
  dd[2][1]=dd[1][2];
  dd[2][2]=a1*(f1*p1-h1*n1)+b1*(h1*m1-e1*p1)+d1*(e1*n1-f1*m1);
  dd[2][3]=a1*(n1*g1-f1*o1)+e1*(b1*o1-c1*n1)+m1*(c1*f1-b1*g1);

  dd[3][0]=dd[0][3];
  dd[3][1]=dd[1][3];
  dd[3][2]=dd[2][3];
  dd[3][3]=a1*(f1*k1-g1*j1)+b1*(g1*i1-e1*k1)+c1*(e1*j1-f1*i1);

  if ( denom<=0.0 )
  {
   /*
    result.x=1.0;      // something went wrong
    result.y=1.0;      // set solution to near center of earth
    result.z=1.0;
    result.dt=0.0;
   */
  }
  else
  {
   for (i=0;i<4;i++)
   {
    for (j=0;j<4;j++)
     dd[i][j]=dd[i][j]/denom;
   }
   for (i=0;i<nsl;i++)
   {

    for (j=0;j<4;j++)
    {
     pm[j][i]=0.0;
     for (k=0;k<4;k++)
      pm[j][i]+=dd[j][k]*ms[k][i];
    }
   }
   for (i=0;i<4;i++)
   {
    br[i]=0.0;
    for (j=0;j<nsl;j++)
     br[i]+=bm[j]*pm[i][j];
   }
   nits++;
   x=x+br[0];
   y=y+br[1];
   z=z+br[2];
   t=t-br[3]/SpeedOfLight;
   correct_mag=sqrt(br[1]*br[1]+br[2]*br[2]+br[0]*br[0]);
  }
 } while ( correct_mag > 0.01 && correct_mag < 1.e8 && nits < 10);


// set position

 ECEFuserpos[0] = x;
 ECEFuserpos[1] = y;
 ECEFuserpos[2] = z;

 ConvertToLongLatAlt(NEDuserpos, ECEFuserpos);
 SetUserPos( NEDuserpos  );
 AccurateTime = m_time - t;

// for velocity
  for (i=0;i<nsl;i++)
  {
	 alpha=( AccurateTime - allchtrtime.ch_transtime[i].tr_time)*OmegaDotEarth;
	 r=sqrt(pow(sat_pvtpara[i].pos[0]*cos(alpha)-sat_pvtpara[i].pos[1]*sin(alpha)-x,2)+
			  pow(sat_pvtpara[i].pos[1]*cos(alpha)+sat_pvtpara[i].pos[0]*sin(alpha)-y,2)+
			  pow(sat_pvtpara[i].pos[2]-z,2));

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人网页在线观看| 日韩高清欧美激情| 成人久久18免费网站麻豆| 国产精品女上位| a在线播放不卡| 一区二区三区日韩精品| 欧美日韩国产免费一区二区 | 欧美大片一区二区| 狠狠色狠狠色综合系列| 亚洲国产高清aⅴ视频| 色哟哟在线观看一区二区三区| 一级精品视频在线观看宜春院| 欧美日本在线播放| 国产一区二区三区免费观看| 国产精品国产自产拍高清av| 欧美伊人久久大香线蕉综合69| 丝袜美腿成人在线| 国产亚洲精品精华液| 91香蕉视频黄| 男女激情视频一区| 国产精品理论在线观看| 欧美日韩激情一区| 福利视频网站一区二区三区| 一区二区三区四区av| 精品国产电影一区二区| av一本久道久久综合久久鬼色| 丝袜美腿亚洲色图| 国产精品美女久久久久久2018| 欧美日韩一区二区三区视频| 91美女片黄在线观看91美女| 亚洲国产一区二区三区| 久久亚洲精精品中文字幕早川悠里| 91视频.com| 国模娜娜一区二区三区| 午夜欧美一区二区三区在线播放| 久久精品一区二区三区不卡牛牛| 欧美日韩精品专区| 成人理论电影网| 久久99国产精品久久99| 亚洲精品国产无套在线观| 久久久久国产精品麻豆ai换脸| 91福利资源站| 成人一区二区视频| 麻豆成人在线观看| 一区二区三区丝袜| 国产精品免费网站在线观看| 欧美日本一道本在线视频| 成人av资源在线| 精品一区二区日韩| 偷拍与自拍一区| 一区二区三区在线播放| 国产日本欧美一区二区| 精品欧美一区二区三区精品久久| 欧美午夜影院一区| 成人av在线网| 福利电影一区二区三区| 免播放器亚洲一区| 亚洲成人资源在线| 亚洲综合免费观看高清完整版在线| 中文字幕免费观看一区| 国产亚洲精品福利| 久久丝袜美腿综合| 久久先锋影音av| 26uuu色噜噜精品一区二区| 欧美一区二区三区四区视频| 欧美日韩在线观看一区二区| 在线一区二区三区做爰视频网站| 99久久精品情趣| av在线综合网| www.日韩精品| 91在线视频免费观看| 成人国产精品视频| av亚洲精华国产精华精华| 成人免费看视频| eeuss鲁一区二区三区| 不卡的电影网站| 99久久99久久精品国产片果冻| 风流少妇一区二区| 成人性生交大片免费| av在线播放一区二区三区| 99re在线精品| 色偷偷久久一区二区三区| 在线视频你懂得一区| 欧美久久久久久蜜桃| 91精品国产高清一区二区三区 | 欧美96一区二区免费视频| 99久久综合狠狠综合久久| 懂色中文一区二区在线播放| 国产91清纯白嫩初高中在线观看| av在线一区二区| 欧美午夜寂寞影院| 91精品国产综合久久婷婷香蕉 | 精品国产一区久久| 久久久www免费人成精品| 国产欧美日韩在线| 亚洲天堂免费在线观看视频| 亚洲一区二区三区四区的| 丝袜亚洲另类丝袜在线| 久久狠狠亚洲综合| 国产99一区视频免费| 一本久久综合亚洲鲁鲁五月天| 在线观看www91| 精品欧美一区二区在线观看| 国产精品理论在线观看| 亚洲成av人片一区二区| 国产精一区二区三区| 大陆成人av片| 欧美日韩免费在线视频| 精品91自产拍在线观看一区| 国产精品国产三级国产aⅴ无密码| 一区二区三区四区在线播放| 日本强好片久久久久久aaa| 国产成人日日夜夜| 日本韩国视频一区二区| 欧美一区二区三区精品| 国产精品美女视频| 日本少妇一区二区| 99国内精品久久| 欧美成人女星排名| 亚洲男人天堂一区| 黑人精品欧美一区二区蜜桃| 色悠悠亚洲一区二区| 337p日本欧洲亚洲大胆精品| 一区二区三区高清不卡| 国产成人av福利| 欧美精品久久久久久久多人混战| 国产欧美日韩中文久久| 日产国产欧美视频一区精品| 菠萝蜜视频在线观看一区| 91精品国产综合久久精品图片 | 一区二区高清免费观看影视大全| 精品一区二区三区在线播放视频| 色哟哟国产精品免费观看| 精品88久久久久88久久久| 午夜精品久久久久久久久久久| 国产成人免费xxxxxxxx| 538prom精品视频线放| 一区二区三区日韩在线观看| 粉嫩在线一区二区三区视频| 日韩欧美高清一区| 香港成人在线视频| 欧美中文字幕亚洲一区二区va在线| 国产三级一区二区| 久久99久久久欧美国产| 91麻豆精品国产自产在线| 一区二区三区四区视频精品免费| 成人va在线观看| 久久久美女毛片| 韩国欧美国产一区| 欧美成人午夜电影| 麻豆91免费观看| 国产精品久久久久久久午夜片| 六月丁香婷婷色狠狠久久| 56国语精品自产拍在线观看| 亚洲免费在线观看| 波多野结衣亚洲一区| 国产精品久久久久久久久搜平片| 国产在线国偷精品免费看| 精品久久人人做人人爽| 日日夜夜一区二区| 欧美一区二区三区影视| 天堂av在线一区| 91精品国产乱码久久蜜臀| 日本sm残虐另类| 日韩欧美二区三区| 狠狠色丁香婷综合久久| 久久久亚洲精品石原莉奈| 国产一区二区三区免费播放| 国产亚洲婷婷免费| 成人午夜av影视| 亚洲日本一区二区| 在线观看一区不卡| 亚洲成人免费在线| 欧美一级艳片视频免费观看| 久久精品噜噜噜成人av农村| 26uuu久久综合| 成人性生交大片| 亚洲欧美另类综合偷拍| 欧美色精品天天在线观看视频| 亚洲国产综合人成综合网站| 欧美福利电影网| 麻豆国产精品视频| 国产三级一区二区| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 在线中文字幕不卡| 日韩精品每日更新| 久久综合狠狠综合久久综合88 | 亚洲美女区一区| 欧美日韩中文字幕一区| 奇米888四色在线精品| 久久蜜臀中文字幕| 91浏览器打开| 免费的成人av| 国产精品国产自产拍在线| 欧美四级电影在线观看| 久久www免费人成看片高清| 国产色产综合色产在线视频| 99re8在线精品视频免费播放| 婷婷丁香激情综合| 国产农村妇女毛片精品久久麻豆|