国产一区二区三区毛片_亚洲乱码AV中文一区二区_亚洲精品无码专区在线播放_日韩欧美一二_咪咪av影院_欧久久av一区二区

xiapeng01
級別: 探索解密
精華主題: 0
發帖數量: 61 個
工控威望: 189 點
下載積分: 1197 分
在線時間: 83(小時)
注冊時間: 2012-12-31
最后登錄: 2025-05-25
查看xiapeng01的 主題 / 回貼
樓主  發表于: 2024-04-13 10:19
復制粘貼代碼到VsCode 或LinqPad 中,執行即可,需要.net8。在我的電腦上實驗成功,歡迎反饋不同型號的結果。
using System.Net.Sockets;
using System.Runtime.CompilerServices;
using System.Security.Cryptography.X509Certificates;

namespace WeintekTest;

class Program
{
    static Weintek weintek=new Weintek("192.168.20.51");

    static void Main(string[] args)
    {
        ClearTool();          
    }

    static void Fun0()
    {
        Console.WriteLine(weintek.GetLB(9047));
        Console.WriteLine(weintek.GetLB(9048));
    }

    static void Fun1()
    {
        Console.WriteLine("Done!");
        Console.Read();

        File.WriteAllText("res.txt","");

        for(int i=9000;i<12900;i++)
        {
            string str=$"{DateTime.Now}:LW{i}:\t"+weintek.GetLW(1, i) + Environment.NewLine;
            File.AppendAllText("res.txt",str);
        }
        
        Console.WriteLine("Done!");
        Console.Read();
    }

    static void ClearTool()
    {
        //Console.WriteLine("如要確認執行請按\"Y\"鍵:");
        //var key=Console.ReadKey();
        //Console.WriteLine();
        //if(key.Key != ConsoleKey.Y)
        {
            //Console.WriteLine("已取消執行!");
            //Console.Read();            
            //return;
        }

        Console.WriteLine("請謹慎操作!");
        Console.WriteLine("觸摸屏將在稍后重啟,請在觸摸屏重啟后手動進入并執行觸摸屏校準!");
        Console.WriteLine("校準完成后,會彈出對話框詢問是否重置密碼,輸入'yes'即可清空內部項目并重置下載密碼!");

        for(int i=10;i>0;i--)
        {
            //倒計時執行
            Console.WriteLine($"倒計時:{i}秒.");
            Thread.Sleep(1000);
        }

        Console.WriteLine("正在更新日期時間...");
        //更新日期時間
        weintek.SetLW(9022, (short)DateTime.Now.Year);//更新年
        weintek.SetLW(9021, (short)DateTime.Now.Month);//更新月
        weintek.SetLW(9020, (short)DateTime.Now.Day);//更新日
        weintek.SetLW(9019, (short)DateTime.Now.Hour);//更新時
        weintek.SetLW(9018, (short)DateTime.Now.Minute);//更新分
        weintek.SetLW(9017, (short)DateTime.Now.Second);//更新秒
        
        Console.WriteLine("正在更改系統設置...");
        weintek.SetLB(9020, true);//顯示系統控制按鈕
        weintek.SetLB(9033, true);//允許上傳
        weintek.SetLB(12364, true);//開啟屏幕校正后恢復出廠設置的選項
        weintek.SetLB(9048, true);//開啟重啟保護
        weintek.SetLB(9047, true);//重啟觸摸屏
        //設定LB寄存器時返回報文實例
        //2024/4/13 10:36:54+_接收內容33:    01-60-00-00-FF-00-00-00-00-00-08-00-01-00-01-00-00-00-01-00-00-00-00-00-00-00-00-00-00-00-00-00-02
        //2024/4/13 10:36:54+_接收內容33:    01-60-00-00-FF-00-00-00-00-00-08-00-01-00-02-00-00-00-01-00-00-00-00-00-00-00-00-00-00-00-00-00-02
        //2024/4/13 10:36:54+_接收內容33:    01-60-00-00-FF-00-00-00-00-00-08-00-01-00-03-00-00-00-01-00-00-00-00-00-00-00-00-00-00-00-00-00-02
        //2024/4/13 10:36:54+_接收內容33:    01-60-00-00-FF-00-00-00-00-00-08-00-01-00-04-00-00-00-01-00-00-00-00-00-00-00-00-00-00-00-00-00-02
        //2024/4/13 10:36:54+_接收內容33:    01-60-00-00-FF-00-00-00-00-00-08-00-01-00-05-00-00-00-01-00-00-00-00-00-00-00-00-00-00-00-00-00-02

        Console.WriteLine("Done!");
        Console.Read();
    }



    public class Weintek
    {
        string _ip;
        int _port=8000;

        int _index=0;
        readonly object lckObj=new object();

        public Weintek(string ip)
        {
            _ip=ip;
            _port=8000;
            
        }

        public Weintek(string ip,int port)
        {
            _ip=ip;
            _port=port;
            
        }

        int GetIndex()
        {
            lock(lckObj)
            {
                return ++_index;
            }
        }

        int GetEasyWatchIndex()
        {
            return 1;
        }

        public bool GetLB(int regAddress)
        {
            //讀LB12364
            //PC發:        01600000ff000000000008000c 00e5 0300000100000000000000000000ff 0403 000001000000
            //HMI回true:    01600000ff0000000000080005 00e5 030000010000000000000000000000000000 0010 0000  //大端
            //HMI回false:   01600000ff0000000000080005 00e5 030000010000000000000000000000000000 0000 0000 //大端

            //讀LB9047
            //PC發:        01600000ff000000000008000c 00fb 0300000200000000000000000000ff 3502 000001000000

            //讀LB9048
            //PC發:        01600000ff000000000008000c 00fe 0300000300000000000000000000ff 3502 000001000000

            try
            {
                bool ret=false;
                string sendHeader="01600000ff000000000008000c";
                string sendConstStr1 = "0300000100000000000000000000ff";
                string sendConstStr2 = "000001000000";

                string receiveHeader="01600000ff0000000000080005";

                var sendStr = sendHeader;
                sendStr += GetIndex().ToString("x4");
                sendStr += sendConstStr1;
                sendStr += GetLBAddress(regAddress).Substring(0,4);
    
                sendStr += sendConstStr2;
                
                var receiveData = Send(sendStr);
                var receiveStr = BitConverter.ToString(receiveData).Replace("-","").ToLower();
                if(receiveStr.Length> receiveHeader.Length &&
                    receiveStr.StartsWith(receiveHeader) &&
                    string.Compare(sendStr.Substring(sendHeader.Length,4),receiveStr.Substring(receiveHeader.Length,4))==0)
                {
                    var dat=ToLittleEndian(Convert.ToUInt16(receiveStr.Substring(66,4),16));
                    var temp =(Convert.ToUInt16(Math.Pow(2,regAddress % 0x10)));
                    ret = (dat & temp) > 0;
                    return ret;
                }

                return ret;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return false;
            }
        }


        /// <summary>
        /// 設置觸摸屏的LB寄存器(系統寄存器的值)
        /// </summary>
        /// <param name="ip">觸摸屏的地址</param>
        /// <param name="port">鏈接端口號,默認值為8000</param>
        /// <param name="index">報文序號,返回報文的序號和發送報文序號相同</param>
        /// <param name="regAddress">LB寄存器地址</param>
        /// <param name="Value">設定值</param>
        public bool SetLB(int regAddress, bool Value)
        {
        //設定LB寄存器時返回報文實例
        //2024/4/13 10:36:54+_接收內容33:    01-60-00-00-FF-00-00-00-00-00-08-00-01-00-01-00-00-00-01-00-00-00-00-00-00-00-00-00-00-00-00-00-02
        //2024/4/13 10:36:54+_接收內容33:    01-60-00-00-FF-00-00-00-00-00-08-00-01-00-02-00-00-00-01-00-00-00-00-00-00-00-00-00-00-00-00-00-02
        //2024/4/13 10:36:54+_接收內容33:    01-60-00-00-FF-00-00-00-00-00-08-00-01-00-03-00-00-00-01-00-00-00-00-00-00-00-00-00-00-00-00-00-02
        //2024/4/13 10:36:54+_接收內容33:    01-60-00-00-FF-00-00-00-00-00-08-00-01-00-04-00-00-00-01-00-00-00-00-00-00-00-00-00-00-00-00-00-02
        //2024/4/13 10:36:54+_接收內容33:    01-60-00-00-FF-00-00-00-00-00-08-00-01-00-05-00-00-00-01-00-00-00-00-00-00-00-00-00-00-00-00-00-02
            try
            {
                string sendHeader="01600000ff000000000008000c";
                string sendConstStr = "0000000100000000000000020000ff";//前面的01是EasyWatch序號,排第一個的為01,第二個的為02,在此處無關緊要

                string receiveHeader="01600000FF0000000000080001";

                var sendStr = sendHeader;
                sendStr += GetIndex().ToString("x4");
                sendStr += sendConstStr;
                sendStr += GetLBAddress(regAddress);
                sendStr += Value ? "ff" : "00";
                sendStr += "0000";
                
                var receiveData = Send(sendStr);
                var receiveStr = BitConverter.ToString(receiveData).Replace("-","").ToLower();
                if(receiveStr.Length> receiveHeader.Length && receiveStr.StartsWith(receiveHeader))
                {
                    return true;
                }

                return false;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return false;
            }
        }        

        static string GetLBAddress(int addr)
        {
            string ret = "";
            string str = addr.ToString("X5");
            ret += str.Substring(2, 2);
            ret += str.Substring(0, 2);
            ret += "00000";
            ret += str.Substring(4, 1);
            return ret;
        }

        public Int16 GetLW(int regAddress)
        {
            return GetLW(regAddress,1);
        }

        /// <summary>
        /// 讀取LW寄存器的值
        /// </summary>
        /// <param name="ip">觸摸屏IP地址</param>
        /// <param name="port">端口</param>
        /// <param name="index">包序號</param>
        /// <param name="regAddress">LW寄存器地址</param>
        /// <param name="count">寄存器個數,當前只支持1個寄存器</param>
        /// <returns>返回值</returns>
        public Int16 GetLW(int regAddress, int count)
        {
            //讀LW9009
            //PC發:    01600000ff000000000008000c00be0300003600000000000000000008ff3123000001000000
            //HMI回:   01600000ff000000000008000500be03000036000000000000000000000000000040400000

            //PC發:    01600000ff000000000008000c00bc0300003600000000000000000008ff3123000001000000
            //HMI回:    01600000ff000000000008000500bc03000036000000000000000000000000000040400000
            try
            {
                UInt16 ret = 0;
                string sendHeader = "01600000ff000000000008000c";
                string sendRegConstStr = "0300003600000000000000000008ff";

                string receiveHeader = "01600000ff0000000000080005";

                string sendStr = sendHeader;
                sendStr += GetIndex().ToString("x4");
                sendStr += sendRegConstStr;
                sendStr += ToLittleEndian((UInt16)regAddress).ToString("x4");
                sendStr += "0000";
                sendStr += ToLittleEndian((UInt16)count).ToString("x4");
                sendStr += "0000";

                var receiveData = Send(sendStr);
                var receiveStr = BitConverter.ToString(receiveData).Replace("-", "").ToLower();

                if (receiveStr.Length > receiveHeader.Length && //長度無無異常
                    receiveStr.StartsWith(receiveHeader) && //接收頭校驗成功
                    string.Compare(sendStr.Substring(sendHeader.Length, 4), receiveStr.Substring(receiveHeader.Length, 4)) == 0 //包序號校驗成功
                )
                {
                    var s1 = receiveStr.Substring(66, 4);
                    ret = Convert.ToUInt16(s1, 16);
                    return (Int16)ToLittleEndian(ret);
                }
                return -1;

            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return -1;
            }
        }

        public bool SetLW(int regAddress, Int16 value)
        {
            //寫LW9022=2024    (0xE807)|9022=0x3e23
            //PC發:    01600000ff000000000008000e 00d9 0300005100000000000000010008ff 3e23 0000 0100 e807 0000
            //HMI回:        01600000ff0000000000080001 00d9 030000510000000000000000000000000001
            //              01600000ff00000000000800010001030000510000000000000000000000000001
            try
            {
                string sendHeader = "01600000ff000000000008000e";
                string sendRegConstStr = "0300005100000000000000010008ff";
                
                string receiveHeader = "01600000ff0000000000080001";

                string sendStr = sendHeader;
                sendStr += GetIndex().ToString("x4");
                sendStr += sendRegConstStr;
                sendStr += ToLittleEndian((UInt16)regAddress).ToString("x4");
                sendStr += "0000";
                sendStr += ToLittleEndian(1).ToString("x4");
                sendStr += ToLittleEndian((UInt16)value).ToString("x4");
                sendStr += "0000";

                var receiveData = Send(sendStr);
                var receiveStr = BitConverter.ToString(receiveData).Replace("-", "").ToLower();

                if (receiveStr.Length > receiveHeader.Length && //長度無無異常
                    receiveStr.StartsWith(receiveHeader) && //接收頭校驗成功
                    string.Compare(sendStr.Substring(sendHeader.Length, 4), receiveStr.Substring(receiveHeader.Length, 4)) == 0 //包序號校驗成功
                )
                {
                    return true;
                }
                return false;

            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return false;
            }
        }

        byte[] Send(string str)
        {
            try
            {
                using (var client = new TcpClient())
                {
                    client.Connect(_ip, _port);
                    var s = client.GetStream();
                    var sendData = HexStringToByteArray(str);
                    s.Write(sendData);

                    byte[] buffer = new byte[1024];
                    int n = s.Read(buffer);
                    byte[] receiveData = new byte[n];
                    Array.Copy(buffer, receiveData, n);
                    //Console.WriteLine($"{DateTime.Now.ToString()}+_接收內容{receiveData.Length}:\t" + BitConverter.ToString(receiveData));
                    return receiveData;
                }
            }catch(Exception ex)
            {
                Console.WriteLine(ex.Message);
                return null;
            }
        }

        /// <summary>
        /// 十六進制字符串轉字節數組
        /// </summary>
        /// <param name="str">要轉換的字符串</param>
        /// <returns></returns>
        static byte[] HexStringToByteArray(string str)
        {
            return Enumerable.Range(0, str.Length).Where(x => (x % 2) == 0).Select(y => (byte)Convert.ToByte(str.Substring(y, 2), 16)).ToArray();
        }

        /// <summary>
        /// 大端轉小端和小端轉大端的操作是相同的,共用同一個即可
        /// </summary>
        /// <param name="dat">要轉換的內容</param>
        /// <returns></returns>
        static UInt16 ToLittleEndian(UInt16 dat)
        {
            return BitConverter.ToUInt16(BitConverter.GetBytes(dat).Reverse().ToArray());
        }

        /// <summary>
        /// 大端轉小端和小端轉大端的操作是相同的,共用同一個即可
        /// </summary>
        /// <param name="dat">要轉換的內容</param>
        /// <returns></returns>
        static UInt32 ToLittleEndian(UInt32 dat)
        {
            return BitConverter.ToUInt32(BitConverter.GetBytes(dat).Reverse().ToArray());
        }
    }
}
[ 此帖被xiapeng01在2024-04-13 15:55重新編輯 ]
往事如風
科技改變制造
級別: 網絡英雄

精華主題: 0
發帖數量: 11803 個
工控威望: 19197 點
下載積分: 14025 分
在線時間: 2769(小時)
注冊時間: 2013-01-31
最后登錄: 2025-05-29
查看往事如風的 主題 / 回貼
1樓  發表于: 2024-04-21 15:58
不明覺厲
三人行者必有我師 ,擇其善者而從之

主站蜘蛛池模板: A片无码一区二区三区在线草莓_ww国产_日韩一区二区三区在线视频_人妖天堂狠狠ts人妖天堂狠狠_国产一性一交一伦一A片_黄色一级片在线观看_黄色一级片视频_日本丰满护士bbw | 亚洲另类视频在线_亚洲综合欧美日韩_亚洲少妇一区_成人性生活大片100部_91精品无人区麻豆_精品久久无码中文字幕_国产免费私拍一区二区三区_无码毛片视频一区二区本码 | 一个人www在线观看免费_97爱爱网_国产福利一区二区_亚洲av无码成人专区片在线观看_亚洲综合视频_97超级碰碰碰久久久_国产精品自在自线_精品国产青草久久久久福利 | 欧美激情精品久久久久久_av中文字幕潮喷在线观看_男男高潮片免费视频_欧美91在线_欧美亚洲人成网站在线观看_91免费精品国自产拍在线不卡_国产剧情息子绝伦中文字幕_99久久免费视频6 | 最好看的中文在线观看_午夜入口_精品久久久久久久久中文字幕_免费看黄色片视频_道日本一本草久_老司机在线观看福利_国产毛片精品久久_久操视频在线免费观看 | 久草高清_中文字幕无码中文字幕有码在线_日韩成年视频_91成人在线免费观看_日本爽爽爽爽爽爽在线观看免_特大黑人娇小亚洲女_91亚洲国产成人_精品少妇亚洲乱码 | 高清不卡免费视频_猛烈顶弄H禁欲老师H春潮视频_国产老肥熟精品大全_亚洲欧美成人a毛片_亚洲精品在_第一区免费在线观看_免费国产自久久久久三四区久久_亚洲男人的天堂网 | 久久天天躁狠狠躁夜夜97_午夜福利免费a片在线观看无码_日本乱人伦片中文三区_韩日自拍_夜夜爽夜夜叫夜夜高潮漏水_日本a在线_女人把腿张开男人来桶_夜色导航 | 国产精品久久久久久2021_91久久老司机福利精品网_亚洲色大成网站WWW永久在线观看_特黄熟妇丰满人妻无码_999久久久精品视频_无码AV永久免费专区麻豆_欧美激情一区二区三区成人_亚洲人成人天堂 | 色欲色欲久久综合网_人妻暴雨中被强制侵犯在线_亚洲国产AⅤ综合网_狠狠色综合播放一区二区_久久精品久久精品久久39_午夜一级做a爰片久久毛片_久久重口味视频_国产最新毛片 | 色综合伊人色综合网站_国产久草在线观看_国产一级α片_久久久视频精品_日本xxxx娇小_亚洲精品v日韩精品_特级欧美牲交a欧美在线_特黄特色的大片观看免费视频 | 亚洲精品综合_足疗店女技师按摩毛片_亚洲精品久久嫩草网站秘色_国产亚洲一区精品_这题超纲了动漫免费观看_国产免费av高清在线_波多野结衣1区2区3区_久久精品小短片 | 日本不卡视频在线观看_国产精品97_亚洲国产精品黑人久久久_久久精品亚洲欧美日韩久久_亚洲AV无码一区二区三区乱子伦_欧美精品少妇VIDEOFREE720_久草日本_亚a洲v中文字幕2023 | 亚洲成AⅤ人影院在线欢看_亚洲国产成人精品无码区宅男?_97国产最新_在线视频97_无码精品国产VA在线观看DVD_青青视频网_一区二区日本视频_国产精品久久久一区 | 手机在线播放国产女主播_国产精品一区二区久久不卡小说_久久夜靖品2区_精品视频色一区_品久久久久久久久久96高清_农村乱视频一区二区三区_久久久久无码精品国产情侣_黄又色又污又爽又高潮动态图 | 三级网站免费观看_欧美乱妇高清无乱码免费_一天av在线高清免费观看_国产亚洲一区字幕_高清视频一区二区三区_成人福利片在线_久久这里只精品_久久精品国产99精品国产亚洲性色 | 国产成人精品午夜在线播放_99精品啪在线观看国产老湿机_亚洲天堂亚洲天堂_无码国产精品一区二区AV_亚洲国产人成自久久国产_国产成人尤物在线视频_可以免费观看的一级毛片_欧美成天堂网地址 | 亚洲国产日韩制服在线观看_永久免费精品_国产传媒中文字幕_亚洲欧美日韩一区_亚洲伊人色综合网色欲WWW_婷婷久久综合九色综合绿巨人_毛片图片_琪琪女色窝窝777777 | 成人国产视频在线_中文字幕丝袜精品久久_一个色影院_久久亚洲中文字幕无码_久久色网_欧美亚洲日本一区二区_91高清视频免费观看_国产69精品久久久久久久久久 | 狠狠色噜噜狠狠狠8888米奇_欧美久操_99热亚洲色精品国产88_精品免费久久久久久久_a视频在线观看免费_国语毛片_久草热在线视频_少妇视频一区 | 久涩涩福利视频在线观看_国产福利高清_yw193国产成人精品_久久丝袜视频_欧美成年黄网站色视频_日日摸夜夜添欧美一区_亚洲一区二区免费看_免费永久看黄神器 | 少妇一区二区三区_中文字幕日韩精品无码内射_91精品网_欧洲mv日韩mv国产mv_日产精品一卡2卡三卡4乱码_97涩色_无遮挡免费高清羞羞视频_操操操干干 | 亚洲另类视频在线_亚洲综合欧美日韩_亚洲少妇一区_成人性生活大片100部_91精品无人区麻豆_精品久久无码中文字幕_国产免费私拍一区二区三区_无码毛片视频一区二区本码 | 大地资源网高清视频怎么在线_免费看片在线观看网站_一级久久久久久久_久久人人爽人人爽人人片ⅴ_a片欧美激情肉欲高潮_亚洲国产日韩在线_最新av在线播放_a级免费视频 | 欧美丰满少妇XXXXX_爱爱网站免费_成在人线AV无码免费看_亚洲三级在线_午夜影院色_无码视频一区二区三区在线观看_曰本女人牲交全过程免费观看_wwwwxxxx亚洲 | 欧美a级在线免费观看_免费国产污网站在线观看15_成人亚洲欧美中文日韩_91热在线_日日夜夜操天天干_黄色成人国产_国产精品18久久久久久欧美网址_国产狂喷水潮免费网站WWW | 国产一级一级特黄女人精品毛片_久久精品一区二区视频_久久久久久久国产毛片_孩交精品乱子片_亚洲欧美一区二区三区视频_国产成人久久一区二区三区_人妖av_边做边爱边吃奶叫床的视频 | 麻花豆剧国产mv免费版特色_亚洲精品影院在线观看_欧美性生活一级_亚洲天堂av线_黄色成人网战_a级免费观看_92午夜免费福利757_国产AV国片精品无套内谢蜜臀 | 国产精品6699_性饥渴艳妇性色生活片在线播放_国产黄色片av_精品一二_欧美日韩精品不卡一区二区三区_一级毛片真人免费视频_a级黄色片免费_国产二区视频在线观看 | 狠狠干夜夜草_www.俺去也.com_亚洲素人一区二区_国产精品一区二区久久精品_四虎影视国产在线视频_日韩在线视频观看_99精品国产高清一区二区三区香蕉_久久97久久97精品免视看 | 亚洲精品综合_足疗店女技师按摩毛片_亚洲精品久久嫩草网站秘色_国产亚洲一区精品_这题超纲了动漫免费观看_国产免费av高清在线_波多野结衣1区2区3区_久久精品小短片 | 少妇厨房愉情理9仑片视频_成人免费在线观看网址_国产成人无码精品一区不卡_久久看av_97超碰福利久久精品_美女一级黄色大片_国产欧美日韩一区二区三区四区_亚洲AV嫩草AV极品A片 | 久久免费偷拍视频_日日摸夜夜添夜夜添毛片av_国产精品4区_A级毛片免费无码观看、、_亚洲精品在线影院_免费a视频_午夜熟女毛片免费网站_午夜男女刺激爽爽影院 | 91在线观_四虎私人影院_自拍偷拍3p_mm1313午夜视频_视频在线三区_亚洲免费资源_香蕉乱码成人久久天堂爱免费_国产真人真事毛片视频 | 欧美性猛交xxxx乱_黄页av_91嫩草在线_91官网视频_日本中文字幕有码在线视频_国产免费无码_亚洲国产成人丁香五月激情_边做边对白在线播放边做 | 高清不卡免费视频_猛烈顶弄H禁欲老师H春潮视频_国产老肥熟精品大全_亚洲欧美成人a毛片_亚洲精品在_第一区免费在线观看_免费国产自久久久久三四区久久_亚洲男人的天堂网 | 欧洲日韩在线_国产网友愉拍精品视频手机_综合爱爱_亚洲成人av免费看_国产精品久久久久久久久久久久午夜片_亚洲天天做日日做天天欢毛片_亚洲精品性视频_波多野结衣一区二区三区AV高清 | 色久悠悠婷婷综合在线亚洲_国产精品区区久久久狼_国产一级免费_超级碰99_中文字幕亚洲无线码在一区_91精品久久久久久久99_国产专区视频在线观看_久久天堂 | 青青草99啪国产免费_欧美与欧洲交xxxx免费观看_亚洲欧美日韩v在线观看不卡_成人91污污污在线观看_亚洲永久免费网站_亚洲视频一区二区三区_日韩在线视频在线观看_亚洲国产精品精华液网站 | 玖玖视频精品_国产丝袜无码一区二区视频_黄色avav_av免费国产_麻豆果传媒成人A片免费看_国产一区二区三区精品av_性欧美videofree高清69_成视频年人黄网站视频福利 | 第一福利导航导航_国产激情久久久久久熟女老人AV_丁香五月七月综合激情_久草毛片_91亚色视频在线观看_日本女优一区_日日躁夜夜躁狠狠躁av麻豆_国产精品乱码久久久久久久久 |