国产一区二区三区毛片_亚洲乱码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重新編輯 ]
biaogege520
清晨的風
級別: 略有小成
精華主題: 0
發帖數量: 202 個
工控威望: 394 點
下載積分: 60 分
在線時間: 78(小時)
注冊時間: 2015-07-01
最后登錄: 2025-05-29
查看biaogege520的 主題 / 回貼
1樓  發表于: 2024-05-09 14:07
        

主站蜘蛛池模板: 思思99热久久精品在线6_久久久网页_精品国产91久久久久久久_精品国产一区二区三区不卡在线_精品亚洲永久免费精品91香蕉国产线_日韩三区免费_日本免费在线看片_91蜜桃婷婷狠狠久久综合9色 | 国产成人精品午夜在线播放_99精品啪在线观看国产老湿机_亚洲天堂亚洲天堂_无码国产精品一区二区AV_亚洲国产人成自久久国产_国产成人尤物在线视频_可以免费观看的一级毛片_欧美成天堂网地址 | 精品无码AV无码免费专区_成人免费A级毛片_欧洲精品一区二区三区久久_精品人伦一区二区三_97SE亚洲国产综合在线_日本一本不卡_91嫩草嫩草_鲁死你资源站亚洲AV | 免费mmmxxx日本96_欧美黑人粗大xxxxbbbb_深夜福利老司机_8050午夜一级毛片免费看_91精品国产麻豆国产自产在线_色琪琪综合男人的天堂aⅴ视频_风流老太婆大BBWBBWHD视频_丰满少妇乱a片无码 | 奇米在线免费视频_日日草影院_日日噜噜夜夜狠狠va视频v_av在线免费观看不卡_一本加勒比HEZYO无码资源网_蜜桃视频在线观看www_午夜综合_国产情侣自拍小视频 | 国内精品九九久久久精品_九九热视频这里有精品_97色资源_浮生影院大全免费观看中文版_a片疯狂做爰全过的视频_国产大胸A在线观看_免费一区视频_中文字幕av久久激情亚洲精品 | 日本精品一区二区三区高清_欧美成人中文字幕_日日摸夜夜骑_少妇一级淫片免费_国产男女无遮挡猛进猛出_国产综合av_国产成人精品自拍_成人性色生活片免费看爆迷你毛片 | 扒开双腿猛进入校花免费网站_97超级碰碰碰久久久久_www.亚色太在线.com_2023av在线_一级精品视频_亚洲国产成人精品无码一区二区三区_久久高清免费_免费视频网站91 | 欧美一级黄色片视频_欧美bdsm精品调教视频_午夜极品_国产精品久久久久久久久潘金莲_在线观看老湿视频福利_日韩有码在线播放_精品二区视频_好爽啊中文字幕一区二区久久 | 亚洲激情91_久久久久高潮综合影院_妓女av导航福利_把女邻居弄到潮喷的性经历_国产人成免费视频_国产亚洲成AⅤ人片在线观看不卡_日本免费a级片_亚洲人人在线 | 国产免费永久黄色国产_国产女人18毛片水真多_91.成人天堂一区_日本在线看片_欧美男同志网站_国产69精品久久久久9999_成人啪精品视频网站午夜_北条麻妃黄网 | 国产成人在线观看_青青草91视频_日韩一二在线_天天操91_国产精品内射后入合集_四库成人免费视频_在线综合亚洲欧美网站_在线一二三四区 | 国产综合亚洲精品一区二_久久天天躁夜夜躁狠狠躁2024_亚洲AV无码成人黄网站在线观看_亚洲精品一区人人爽_国产精品国内免费一区二区三区_日本一本区_韩国av在线播放_欧美人与动欧交视频 | 色综合伊人色综合网站_国产久草在线观看_国产一级α片_久久久视频精品_日本xxxx娇小_亚洲精品v日韩精品_特级欧美牲交a欧美在线_特黄特色的大片观看免费视频 | 宅男噜噜99国产精品麻豆精品_午夜时刻免费实验区观看_思思久久96热在精品国产_青青草成人网_在线免费av网_国产精品视频97_三级激情视频_五月丁香国产在线视频 | 免费的麻豆视频_日韩欧美专区_国产午夜鲁丝无码拍拍_欧美一区二区三区激情在线视频_国产成人aa_九九九九九九九伊人_国语自产拍无码精品视频在线_蜜桃最新网站 | 漂亮的丰满人妻中文字幕_久久精品老司机_久久国产精品网站_亚洲精品久久久无码_国产有码一区二区_日本人妻A片成人免费看片_www.91国产_免费SM羞辱调教视频在线观看 | 上课被cao的好爽高潮免费视频_年轻的朋友4免费观看韩剧_黄色动漫在线免费观看_午夜理论片最新午夜理论剧_综合色爱_黄页网站在线观看_好涨好硬好爽免费视频_亚洲国产午夜99综合 | 午夜aaa_毛片免费观看视频_一级久久_又湿又紧又大又爽又a视频_四虎午夜剧场_中文字母av_毛片毛片毛片毛_日韩午夜伦伦午夜伦老司机 | 久久久无码精品亚洲日韩啪啪网站_国产三级三级看三级_天堂一区人妻无码_国产成人久久精品_最近中文字幕2019视频1_思思久热_亚洲成AV人在线观看成年美女_日韩少妇内射免费播放18禁裸乳 | 欧美日产国产精品_av无码天堂一区二区三区,_欧美精品一区二_国产成人精品免费青青草原_国产精品无码久久AV不卡_亚洲全部视频_在线吸色_日产精品一二三区 | a级片免费观看_福利视频一二三在线观看_97色伦午夜国产亚洲精品_国产精品观看_亚洲乱码中文字幕综合234_91看片成人_年轻的朋友hd中字_久久地址 | 久久精品久久久久_精品淑女少妇av久久免费_久久草网_成人免费无码H在线观看不卡_国产尤物在线_国产一区二区三区精彩视频_免费看又黄又裸乳视频网站_精品无码TV人妻专区在线视频 | 第一福利导航导航_国产激情久久久久久熟女老人AV_丁香五月七月综合激情_久草毛片_91亚色视频在线观看_日本女优一区_日日躁夜夜躁狠狠躁av麻豆_国产精品乱码久久久久久久久 | 天天色图综合网_有码一区二区三区_91久久国产综合久久91_无码一区国产欧美视频_久久久久99精品_咕咚影院国语在线播放_国产AV激情久久无码天堂_日本黄色中文字幕 | 开心色怡人综合网站_久久久久国产精品嫩草影院_狂野的爱在线观看_国产良家自拍_无套内射极品少妇chinese_欧美激情无码视频一二三_久久综合久中文字幕青草_性xxxx欧美 | 人与人videosfree另类_伊人色综合久久天天人手人婷_色欲AV综合AV无码AⅤ_人人爽亚洲AV人人爽AV人人片_两个少妇给我口爆_天天做天天爱天天爽天天综合_国产精品av久久久久久无_亚洲人成久久 | 少妇厨房愉情理9仑片视频_成人免费在线观看网址_国产成人无码精品一区不卡_久久看av_97超碰福利久久精品_美女一级黄色大片_国产欧美日韩一区二区三区四区_亚洲AV嫩草AV极品A片 | 午夜毛片视频_美女裸身裸乳视频网站_av成人永久免费看片本色_第一福利网站_xxxav在线_免费看男人操女人_国产精品麻豆99久久久久久_亚洲国产视 | 国产真实乱全部视频_在线男人天堂网_超级av在线天堂东京热_ww久久综合久中文字幕_成人黄色一区二区_国产av午夜精品一区二区三_sdde在线播放一区二区_成全免费在线看片 中文人字幕第三页_无码纯肉视频在线观看_99re国产在线播放_日本欧美高清全视频_日韩七区_亚洲第一最快AV网站_中日韩欧美风情视频_欧美成人一区二 | 中国浓毛少妇毛茸茸_中文乱幕日产无线码_日本免费高清线视频免费_欧美在线小视频_久久久久久久久精_精品国产AV一区二区三区_亚洲欧美色αv在线影视_黄色精品免费 | 亚洲欧美日韩、中文字幕不卡_黄不卡免费在线_91精品国产综合久久久久久粉嫩_伊人久久大香线蕉午夜AV_亚洲最大AV资源网在线观看_男人女人真曰批免费观看国产_日韩中文字幕在线一区二区三区_久久精品手机视频 | 日韩经典精品无码一区_亚洲www色_久久99久久精品久久久久久_色偷偷888欧美精品久久久_日韩成人无码一区二区三区_国产99re_国产综合影院_一区二区三区免费视频观看 | av一二三区_欧美成人午夜免费影院手机在线看_粉嫩av免费一区二区三区_日本三极片_国产目拍亚洲精品一区二区_CHINESE极品人妻VIDEOS_中文字幕人成无码人妻_北条麻妃最猛aⅴ作品 | 成人一二三四区_国产成人精品人人2020视频_成人久久色_无码Aⅴ在线观看_毛片黄色_我要看毛片播放器_丁香婷婷色综合激情五月_欧美亚洲影院 | 成人无码H动漫网站免费_中文在线最新版天堂8_亚洲视频在线观看中文字幕_蜜芽亚洲AV尤物183不卡资源_国产精品成人AAAA网站女吊丝_日韩欧美日韩在线_亚洲成人自拍_色网在线观看 | 总裁和秘书办公室激情h_欧美一级特黄a大片_综合久久久久久久久久_男女免费观看在线爽爽爽视频_一二三四在线播放免费观看中文版视频_www.在线观看视频_久草视频免费在线观看_Y111111少妇影院无码 | 97久久久精品综合88久久_国产一区二区精品久久久不卡蜜臀_午夜小影院_欧美精品亚洲_精品日产卡一卡二卡国色天香_精品国产网址_xvideos一色全网免费视频_国产亚洲精品自在久久 | 一区在线播放视频_天堂网色_日韩国产网站_国产国语一级A毛片高清视频_色777狠狠综合秋免鲁丝_免费特级黄色片_久久亚洲第一_caoporn国产免费 | 日本黄色大片视频_freesex性中国熟妇_色香欲www7777综合网_国产精品无码不卡一区二区三区_一级毛片av_日韩中文字幕亚洲精品欧美_日本喷奶水中文字幕视频_不卡的毛片 | 成年人色网站_91精品久久久久久久久99绯色_国产日韩精品在线播放_国产日产精品久久久久兰花_日本成人福利视频_99国内精品久久久久影院_一个人看的ww在线视频_在线观看免费a∨网站 |