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

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

?? dl645lib.~pas

?? 符合DL645規(guī)約的電能表數(shù)據(jù)解析. 可直接實(shí)現(xiàn)遠(yuǎn)程RTU.
?? ~PAS
?? 第 1 頁(yè) / 共 4 頁(yè)
字號(hào):
unit DL645lib;

interface
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Dialogs,
  myconlib,DateUtils;

////////////////原始數(shù)據(jù)緩沖區(qū)/////////////////////////
type TBuf200=array[0..199] of byte;
     Tbuf6=array[0..5] of byte;
     Tbuf4=array[0..3] of byte;
     Tbuf3=array[0..2] of byte;
     Tbuf2=array[0..1] of byte;


/////////////////數(shù)據(jù)命令緩沖區(qū)///////////////////////
     TReadCMD=array[0..13] of byte;
        // 68H,A0,A1,A2,A3,A4,A5,68H,01,02,ID0+33H,ID1+33H,CS,16H
     TCheckErr=(ckLenErr,ckCSErr,ckC,ckOtherErr,ckOKErr,ckOK);
           //長(zhǎng)度錯(cuò),校驗(yàn)和錯(cuò), 控制碼錯(cuò), 未知錯(cuò), 返回異常, 無(wú)錯(cuò)

////////////////控制碼定義/////////////////////////
  Const CtlRead=1; // 讀電表數(shù)據(jù)
        CtlWriteCS=4;//  寫電表參數(shù)
        CtlBrdTime=8;  // 廣播校時(shí)
        CtlWriteADR=10;//寫設(shè)備地址
        CtlUpdateBPS=12; //寫通信速率
        CtlUpdatePass=15;//寫密碼
        CtlClearPm=16;//最大需量清零
 //////////////////通信速率/////////
 Type TBPS=(Bps300,Bps600,Bps2400,Bps4800,Bps9600);

////////////////數(shù)據(jù)標(biāo)識(shí)定義/////////////////////////
type TID1=(ID1_NO,ID1_kWh,ID1_Pm,ID1_PmTime,ID1_BL,ID1_FH,ID1_CS);//數(shù)據(jù)屬性
     TID2=(ID2_NO,ID2_CurP,ID2_CurQ,ID2_Lst1P,ID2_Lst1Q,ID2_Lst2P,ID2_Lst2Q); //數(shù)據(jù)時(shí)間1
     TID3=(ID3_NO,ID3_ZX,ID3_FX,ID3_RL1,ID3_RC2,ID3_RL3,ID3_RC4); //數(shù)據(jù)子屬性

     TYUE=(YUE_NO,YUE0,YUE1,YUE2);
     TBK=(BK_NO,ZP,FP,ZQ,FQ,ZQL1,FQC4,ZQC2,FQL3);
     TBKSet= set of TBK;

     TJH=(JH_NO,JH_P2,JH_Q6,JH_DX,JH_X);

     TFL=(FL_NO,FL_Block,FL_Z,FL_P,FL_A,FL_B,FL_C);
        ////數(shù)據(jù)塊,數(shù)據(jù)時(shí)間2,費(fèi)率Z,  費(fèi)率P,  費(fèi)率A, 費(fèi)率B,  費(fèi)率C,

        
     TBL=(BL_NO,DX_CNT,DX_T,DX_T1,DX_T2,X_V,X_I,X_P,X_Q,X_COS); // 變量類型
     TBLSet= set of TBL;
             //斷相次數(shù),時(shí)間,起始時(shí)間,結(jié)束時(shí)間,
             //相電壓,電流,有功,無(wú)功,功率因數(shù)
     TBLX=(X_NO,X_Block,X_Z,X_A, X_B ,X_C); // 變量類型

///////////////數(shù)據(jù)結(jié)構(gòu)定義/////////////////

type TBlock_kWh = Record   //電能量數(shù)據(jù)結(jié)構(gòu)
        kWh_Z:double; //XXXXXX.XX
        kWh_P:double;
        kWh_A:double;
        kWh_B:double;
        kWh_C:double;
     end;

     TBlock_Pm = Record  //最大需量數(shù)據(jù)結(jié)構(gòu)
        Pm_Z:double; //XXXX.XX
        Pm_P:double;
        Pm_A:double;
        Pm_B:double;
        Pm_C:double;
     end;

    TBlock_PmTime = Record    //最大需量發(fā)生時(shí)間數(shù)據(jù)結(jié)構(gòu)
        PmTime_Z:TDateTime;  //MMDD HHmm
        PmTime_P:TDateTime;
        PmTime_A:TDateTime;
        PmTime_B:TDateTime;
        PmTime_C:TDateTime;
     end;

  
type TBlock_DXCNT = Record   //斷相發(fā)生次數(shù)數(shù)據(jù)結(jié)構(gòu)
        DXCNT_Z:Word;
        DXCNT_A:Word;
        DXCNT_B:Word;
        DXCNT_C:Word;
     end;

    TBlock_DXT = Record  //斷相發(fā)生總時(shí)間數(shù)據(jù)結(jié)構(gòu)
        DXT_Z:DWord;
        DXT_A:DWord;
        DXT_B:DWord;
        DXT_C:DWord;
     end;

    TBlock_DXT1 = Record   //斷相發(fā)生時(shí)間1數(shù)據(jù)結(jié)構(gòu)
        DXT_Z:TDateTime;  //MMDD HHmm
        DXT_A:TDateTime;
        DXT_B:TDateTime;
        DXT_C:TDateTime;
     end;
    TBlock_DXT2  =   TBlock_DXT1 ;  //斷相發(fā)生時(shí)間2數(shù)據(jù)結(jié)構(gòu)


type TBlock_XV = Record   //瞬時(shí)電壓 數(shù)據(jù)結(jié)構(gòu)
        X_A:double;
        X_B:double;
        X_C:double;
     end;
     TBlock_XI  =   TBlock_XV ; //瞬時(shí)電流 數(shù)據(jù)結(jié)構(gòu)

    TBlock_XP = Record    //瞬時(shí)有功功率 數(shù)據(jù)結(jié)構(gòu)
        X_Z:double;
        X_A:double;
        X_B:double;
        X_C:double;
     end;
     TBlock_XQ =  TBlock_XP  ;     //瞬時(shí)無(wú)功功率 數(shù)據(jù)結(jié)構(gòu)
     TBlock_XCos =  TBlock_XP  ;     //瞬時(shí)功率因數(shù) 數(shù)據(jù)結(jié)構(gòu)
type TBL_BKS = Record
       aDXCNT_BK:TBlock_DXCNT;
       aDXT_BK:TBlock_DXT;
       aDXT1_BK:TBlock_DXT1;
       aDXT2_BK:TBlock_DXT2;
       aXV_BK:TBlock_XV;
       aXI_BK:TBlock_XI;
       aXP_BK:TBlock_XP;
       aXQ_BK:TBlock_XQ;
       aXCos_BK:TBlock_XCos ;
    end;

type TkWh_BKS   =  array[ZP..FQL3] of  TBlock_kWh;
     TPm_BKS    =  array[ZP..FQL3] of  TBlock_Pm;
     TPmTime_BKS = array[ZP..FQL3] of  TBlock_PmTime;
////////////////////////////////////////////////////
 //電表參數(shù)數(shù)據(jù)結(jié)構(gòu)
type  TC01_=record
        D:TDate;
        W:Byte;
        T:TTime;
      end;
      TC02_ =record
         B1,B2,B3:Byte;
      end;
      TC03_ =record
          Pkwh,Qkwh:Dword;
          BH,UseID,DEVID:string[12];
      end;
      TC11_ =record
         PmT,DelayT,LoopT,DisT:Byte;
         DLDot,PmDot:Byte;
         ReadDDHH:string[8];
         FHDay:Byte;
         P_kWh0:double;
         Q_kWh0:double;
      end;
      TC21_ =record
         PWms:Word;
         PA,P1,P2,P3:Byte;
      end;
      TC31_ =record
        P,q,m,k,n :Byte;
      end;
      TC32_ = array[1..14] of string;
      TC33_ = array[1..10] of string;
      TC41_ =   array[1..14] of string;



////////////////////////////////////////////////////////////////////////
function StrToken(var S: String): String;
Function HexToBCD(b:Byte):Byte;
Function STR2Hex(A:String):string;
Function Array2Str(A:array of byte):string;


Function GetReadCMD( ID,ADR:string;var STX:string;var CS0:Byte):TReadCMD;
Function CheckData( data:string;CS0:Byte;Var B4:Byte):TCheckErr;
Function CheckErr2Str(Err:TCheckErr):string;



                      //總 ,尖,峰 ,平,谷
Function GetID1( ID:string):TID1; //數(shù)據(jù)標(biāo)識(shí)到 數(shù)據(jù)屬性
Function GetID2( ID:string):TID2;  //數(shù)據(jù)標(biāo)識(shí)到 數(shù)據(jù)時(shí)間1
Function GetID3( ID:string):TID3; //數(shù)據(jù)標(biāo)識(shí)到 數(shù)據(jù)子屬性
Function GetYUE( ID:string):TYUE; //數(shù)據(jù)標(biāo)識(shí)到 數(shù)據(jù)月份
Function GetBK( ID:string):TBK; //數(shù)據(jù)標(biāo)識(shí)到 數(shù)據(jù)塊定義
Function GetJH( ID:string):TJH; //數(shù)據(jù)標(biāo)識(shí)到 數(shù)據(jù)集合

Function GetFL( ID:string):TFL; //數(shù)據(jù)標(biāo)識(shí)到 數(shù)據(jù)時(shí)間2,費(fèi)率
Function GetBL( ID:string):TBL; //數(shù)據(jù)標(biāo)識(shí)到 變量類型
Function GetBLX( ID:string):TBLX; //數(shù)據(jù)標(biāo)識(shí)到 變量的相屬性

Function ID1ToStr(ID1:TID1):string;
Function ID2ToStr(ID2:TID2):string;
Function ID3ToStr( ID3:TID3):string;
Function YUEToStr(Y:TYUE):string;
Function BKToStr(BK:TBK):string;
Function JHToStr(JH:TJH):string;
Function FLtoStr( aFL:TFL):string;
Function BLtoStr(blX:TBLX;blT:TBL):string;
Function IDtoStr( ID:string):string;



Function PaserB1(B1:byte):string;
Function PaserB2(B2:byte):string;
Function PaserB3(B3:byte):string;
Function PaserB4(B4:byte):string;

Function PaserkWh_Block(aFL:TFL;Data:String; Idx:Integer):TBlock_kWh;   //電能
Function PaserPm_Block( aFL:TFL;Data:String; Idx:Integer):TBlock_Pm;       //最大需量
Function PaserPmTime_Block(aFL:TFL; Data:String; Idx:Integer):TBlock_PmTime; //最大需量發(fā)生時(shí)間

Function PaserDXCNT_Block(X:TBLX;Data:String; Idx:Integer):TBlock_DXCNT;
Function PaserDXT_Block(X:TBLX;Data:String; Idx:Integer):TBlock_DXT;
Function PaserDXT1_Block(X:TBLX;Data:String; Idx:Integer):TBlock_DXT1;
Function PaserDXT2_Block(X:TBLX;Data:String; Idx:Integer):TBlock_DXT2;
Function PaserXV_Block(X:TBLX;Data:String; Idx:Integer):TBlock_XV;
Function PaserXI_Block(X:TBLX;Data:String; Idx:Integer):TBlock_XI;
Function PaserXP_Block(X:TBLX;Data:String; Idx:Integer):TBlock_XP;
Function PaserXQ_Block(X:TBLX;Data:String; Idx:Integer):TBlock_XQ;
Function PaserXCos_Block(X:TBLX;Data:String; Idx:Integer):TBlock_XCos;

Function PaserC01_(DI0L:char;Data:String):TC01_;
Function PaserC02_(DI0L:char;Data:String):TC02_;
Function PaserC03_(DI0L:char;Data:String):TC03_;
Function PaserC11_(DI0L:char;Data:String):TC11_;
Function PaserC21_(DI0L:char;Data:String):TC21_;
Function PaserC31_(DI0L:char;Data:String):TC31_;
Function PaserC32_(DI0L:char;Data:String):TC32_;
Function PaserC33_(ID:string;DI0L:char;Data:String):TC33_;
Function PaserC41_(DI0L:char;Data:String):TC41_;


Function GetSTX(ADR:string;var CS0:Byte):string;
Function GetCmdC01( ADR:string;aC01:TC01_; PA,P1,P2,P3:Byte;
                   var STX:string;var CS0:Byte; var Size:Integer):TBuf200;
Function GetCmdBrdTime(t:TdateTime; var Size:Integer):TBuf200;
Function GetCmdWriteADR(NewADR:string; var STX:string;var CS0:Byte; var Size:Integer):TBuf200;
Function BpsToZ(bps:TBps;var BpsInt:Integer):Byte;
Function GetCmdUpdateBPS(ADR:string; Bps:TBps;
                         var STX:string;  var CS0:Byte;var Size:Integer):TBuf200;

Function GetCmdUpdatePass(ADR:string;PA0,P10,P20,P30,PAN,P1N,P2N,P3N:Byte;
                         var STX:string;  var CS0:Byte;var Size:Integer):TBuf200;

Function GetCmdBrdFrz(var Size:Integer):TBuf200;

implementation

////////////////////////////////////////
             // 數(shù)據(jù)格式轉(zhuǎn)換 //
////////////////////////////////////////
function IIF(B: Boolean; const ATrue: string; AFalse: string = ''): string;
begin
  if B then Result := ATrue
       else Result := AFalse;
end;

function StrToken(var S: String): String;
  var I: Integer;
begin
  I := Pos( char($DD)  ,S );
  if I <> 0 then  begin
    Result := Copy(S, 1, I - 1);
    Delete(S, 1, I);
  end else begin
    Result := S;
    S := '';
  end;
end;





Function STR2Hex(A:String):string;
 var i:Integer;
begin
    result:='';
    for i:=1 to Length(A) do
     result:=result+inttohex( ord(  A[i] ) ,2)+' ';
end;

Function Array2Str(A:array of byte):string;
 var i:Integer;
begin
    result:='';
    for i:=Low(A) to High(A) do
     result:=result+inttohex(A[i],2)+' ';
end;



Function Bit1(B:byte;bit:byte):boolean;
begin
    result:=(B and ($01 shl bit)) <>0;
end;

Function HexToBCD(b:Byte):Byte;
var BH,BL:Byte;
  //var s:String;
begin
 //  s:=inttohex(b,2);
  // result:=strtoInt(s);
   BH:=b div 16; BL:=b mod 16;
   result:=BH*10+BL;
end;


Function BCDToHex(b:Byte):Byte; 
var BH,BL:Byte;
  //var s:String;
begin
 //  s:=inttohex(b,2);
  // result:=strtoInt(s);
   BH:=b div 10; BL:=b mod 10;
   result:=BH*16+BL;
end;


Function Buf4ToDword(buf4:Tbuf4):Dword;
  var i:integer; s:string;
begin
 For i:=0 to 3 do  Buf4[i]:=Buf4[i]-$33;
    s :=inttohex(buf4[3],2) + inttohex(buf4[2],2)
    + inttohex(buf4[1],2) +inttohex(buf4[0],2);
    result:=strtoInt(s);
     // result:=HexToBCD(buf4[3])*1000000 + HexToBCD(buf4[2])*10000 + HexToBCD(buf4[1])*100 + HexToBCD(buf4[0]);
end;

Function Buf3ToDword(buf3:Tbuf3):Dword;
  var i:integer; s:string;
begin
 For i:=0 to 2 do  Buf3[i]:=Buf3[i]-$33;
   s :=inttohex(buf3[2],2) + inttohex(buf3[1],2) + inttohex(buf3[0],2) ;
   result:=strtoInt(s);
end;

Function Buf2ToWord(buf2:Tbuf2):Word;
  var i:integer; s:string;
begin
 For i:=0 to 1 do  Buf2[i]:=Buf2[i]-$33;
   s := inttohex(buf2[1],2) + inttohex(buf2[0],2) ;
   result:=strtoInt(s);
end;

Function buf1ToByte(buf1:Char):Byte;
  var  s:string;
begin
 //  result:=HexToBCD( ord(buf1)- $33);
   s:= InttoHex( ord(buf1)- $33 ,2) ;
   result:=strtoInt(s);
end;


      //buf:  mm HH DD MM  >>> DateTime
Function Buf4ToDT(buf4:Tbuf4):TDateTime;
  var i:integer;
     Y,M,D,H,F :Word;
begin
   For i:=0 to 3 do  Buf4[i]:=Buf4[i]-$33;
       
   DecodeDate(Date,Y,M,D);
   M:= HexToBCD(buf4[3]) ;
   D:= HexToBCD(buf4[2]) ;
   H:= HexToBCD(buf4[1]) ;
   F:= HexToBCD(buf4[0]) ;
   result:=EncodeDateTime(Y,M,D,H,F,0,0);
   if  result > now then result:=IncYear(result,-1);
end;

Function Buf6ToStr(buf6:Tbuf6):string;
  var   i:Integer;
begin
  result:='';
  for i:=5 downto  0   do
      result:=result +  IntToHex (buf6[i]-$33 ,2);
end;

////////////////////////////////////////////////////////////
             //  數(shù)據(jù)標(biāo)識(shí)分析   //
///////////////////////////////////////////////////////////


Function GetID1( ID:string):TID1;
 var s1,s2:char;
begin
  s1:=ID[1]; result:=ID1_NO;   //,,DL_PmTime,DL_BL
  case S1 of
    '9':result:=ID1_kWh ;  //電能量
    'A':result:=ID1_Pm ;  //最大量
    'B':begin
         s2:=ID[2];
         case s2 of
           '2','3','6': result:=ID1_BL ;  //變量
           '0','1','4','5','8','9': result:=ID1_PmTime ; //最大量發(fā)生時(shí)間
         end;
        end;
     'C': result:=ID1_CS;   
  end;
end;


Function GetID2( ID:string):TID2;
  var s2:char;
begin
  s2:=ID[2]; result:=ID2_NO;
  case s2 of
    '0': result:=  ID2_curP;//當(dāng)前有功
    '1': result:=  ID2_CurQ;//當(dāng)前無(wú)功
    '4': result:=  ID2_Lst1P;    //上月有功
    '5': result:=  ID2_Lst1Q;    //上月無(wú)功
    '8': result:=  ID2_Lst2P;          //上上月有功
    '9': result:=  ID2_Lst2Q;         //上上月無(wú)功
  end;
  
end;



Function GetID3( ID:string):TID3;
 var s3:char;
begin   //ID3_NO,ID3_ZX,ID3_FX,ID3_RL1,ID3_RC2,ID3_RL3,ID3_RC4
    s3:=ID[3];  result:=ID3_NO;
    case s3 of
       '1': result:=ID3_ZX; //+A
       '2': result:=ID3_FX; //-A
       '3': result:=ID3_RL1;   //+RL (1)
       '4': result:=ID3_RC4;   //-Rc (4)
       '5': result:=ID3_RC2;   //+Rc (2)
       '6': result:=ID3_RL3;   //-RL (3)
   end;

end;

Function GetYUE( ID:string):TYUE; //數(shù)據(jù)標(biāo)識(shí)到 數(shù)據(jù)月份
   var s2:char;
begin
  result:=YUE_NO;
  s2:=ID[2];
  case s2 of
    '0','1': result:=  YUE0 ;

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美年轻男男videosbes| ●精品国产综合乱码久久久久| 樱花影视一区二区| 色美美综合视频| 日韩专区欧美专区| 精品国产凹凸成av人导航| 国产精品一区二区在线看| 国产精品全国免费观看高清| 91色综合久久久久婷婷| 亚洲成人三级小说| 精品国产区一区| 成人免费高清视频| 亚洲一卡二卡三卡四卡| 日韩亚洲欧美一区二区三区| 国产在线国偷精品免费看| 亚洲欧洲日韩一区二区三区| 欧美日韩一区二区三区高清| 美女视频网站黄色亚洲| 国产精品久久久久影院| 欧美三级韩国三级日本三斤| 狠狠狠色丁香婷婷综合久久五月| 日本一二三不卡| 91精品国产综合久久国产大片| 韩国一区二区在线观看| 亚洲欧美视频一区| 日韩美女一区二区三区四区| 成人黄色av网站在线| 舔着乳尖日韩一区| 国产精品麻豆久久久| 欧美男男青年gay1069videost| 国产高清精品久久久久| 亚洲一区电影777| 国产视频一区在线播放| 欧美性感一区二区三区| 懂色av噜噜一区二区三区av| 午夜天堂影视香蕉久久| 中文字幕不卡在线| 欧美电视剧免费观看| 色婷婷国产精品| 国产91露脸合集magnet| 日本少妇一区二区| 亚洲欧美日韩一区二区| 久久综合色一综合色88| 欧美日韩一级二级| 91在线视频播放地址| 国内一区二区在线| 日产国产高清一区二区三区| 亚洲免费观看视频| 欧美高清在线视频| 久久色中文字幕| 91精品久久久久久久91蜜桃| 99久久精品国产观看| 国产一区二区三区久久悠悠色av| 午夜激情综合网| 亚洲综合色婷婷| 亚洲日本在线视频观看| 欧美国产国产综合| 久久久综合精品| 久久一区二区视频| 欧美大尺度电影在线| 7777精品伊人久久久大香线蕉 | 日韩欧美亚洲国产另类| 欧美性欧美巨大黑白大战| caoporn国产精品| 成人激情视频网站| 成人黄色大片在线观看| 丁香另类激情小说| 国产成人av一区二区| 国产精品中文欧美| 国产乱码一区二区三区| 久久99精品国产麻豆婷婷洗澡| 另类小说视频一区二区| 日韩高清国产一区在线| 日本特黄久久久高潮| 青椒成人免费视频| 秋霞电影一区二区| 日本美女一区二区三区视频| 日韩av一级电影| 蜜桃精品视频在线| 久久不见久久见免费视频7| 美国一区二区三区在线播放| 蜜桃91丨九色丨蝌蚪91桃色| 另类小说综合欧美亚洲| 国产一区二区三区四区在线观看| 国产老妇另类xxxxx| 国产99精品视频| 91一区二区在线观看| 色综合网色综合| 欧美三级午夜理伦三级中视频| 欧美日韩国产综合久久| 日韩免费高清av| 国产欧美日韩视频在线观看| 国产精品久久久久一区| 亚洲精品国产品国语在线app| 亚洲综合在线电影| 日韩av在线发布| 国产寡妇亲子伦一区二区| 97精品国产97久久久久久久久久久久| 一本大道av伊人久久综合| 制服丝袜在线91| 日本一区二区视频在线| 亚洲午夜在线视频| 国产伦精品一区二区三区视频青涩| 国产精品一级二级三级| 色妞www精品视频| 日韩网站在线看片你懂的| 国产亚洲欧美色| 亚洲国产精品久久久久婷婷884 | 国产老妇另类xxxxx| 99久久综合狠狠综合久久| 欧美日韩免费电影| 久久婷婷综合激情| 亚洲视频一区二区在线观看| 亚洲成人av免费| 成人黄色综合网站| 91精品国产高清一区二区三区蜜臀| www国产亚洲精品久久麻豆| 国产精品国产三级国产aⅴ中文| 性做久久久久久| 国产风韵犹存在线视精品| 欧美综合在线视频| 久久久精品人体av艺术| 亚洲成a人片在线不卡一二三区| 国内成人免费视频| 欧美日韩免费高清一区色橹橹| ww久久中文字幕| 日日夜夜精品视频免费| jlzzjlzz欧美大全| 2024国产精品| 日韩av电影天堂| 在线精品视频免费播放| 欧美激情自拍偷拍| 日韩影院精彩在线| 91丨porny丨户外露出| 欧美一二三在线| 亚洲国产精品人人做人人爽| 成人app软件下载大全免费| 精品国产乱码久久久久久牛牛 | av成人免费在线| 精品国产欧美一区二区| 午夜精品一区二区三区免费视频| 成人午夜视频在线观看| 久久综合九色综合欧美98| 五月天激情综合网| 色就色 综合激情| 日韩伦理电影网| 丁香啪啪综合成人亚洲小说| 精品国产伦一区二区三区观看体验| 天堂蜜桃91精品| 欧美日韩在线电影| 亚洲午夜在线观看视频在线| 一本久久综合亚洲鲁鲁五月天| 中文字幕成人av| 成人免费观看视频| 国产精品色哟哟网站| 国产成人鲁色资源国产91色综| 欧美精品一区二区在线观看| 久久精工是国产品牌吗| 精品国一区二区三区| 久久国产免费看| 2023国产精华国产精品| 国内成人精品2018免费看| 久久一区二区视频| 国产福利一区二区三区| 国产亚洲自拍一区| 国产精品白丝av| 久久久亚洲精品石原莉奈| 精品一区二区久久久| 久久久99精品久久| 国产经典欧美精品| 久久久精品国产免费观看同学| 国产宾馆实践打屁股91| 国产精品久久久久久久久果冻传媒| 从欧美一区二区三区| ...av二区三区久久精品| 97精品视频在线观看自产线路二| 成人欧美一区二区三区视频网页| 91美女在线视频| 性欧美疯狂xxxxbbbb| 日韩精品中文字幕一区| 国产一区不卡在线| 国产精品久久福利| 在线亚洲欧美专区二区| 日韩国产在线一| 精品国免费一区二区三区| 国产精品一区在线观看乱码| 国产精品福利一区二区三区| 色播五月激情综合网| 日本亚洲天堂网| 国产精品水嫩水嫩| 91视频你懂的| 免费av网站大全久久| 久久精品夜色噜噜亚洲a∨| 一本到不卡精品视频在线观看| 日韩成人一区二区| 国产欧美一区二区三区在线老狼| 色综合天天做天天爱| 久久精品噜噜噜成人88aⅴ| 欧美韩日一区二区三区| 欧美男男青年gay1069videost|