• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            冷夜 C++ 小棧

            關(guān)于C++的一些經(jīng)驗(yàn)與心得,還會(huì)有一些技術(shù)文摘

              C++博客 :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
              6 Posts :: 5 Stories :: 12 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(10)

            我參與的團(tuán)隊(duì)

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            2007年7月13日 #


            ----------------------------------------
            上位機(jī)一般是集中管理監(jiān)控機(jī),下位機(jī)是指現(xiàn)場(chǎng)直接控制器或控制機(jī)。  
              上位機(jī)面向管理級(jí)用戶,下位機(jī)面向底層設(shè)備控制。

            --------------------------------------
            上位機(jī):上位監(jiān)視系統(tǒng),一般為計(jì)算機(jī)系統(tǒng)(監(jiān)控軟件);
            下位機(jī):控制系統(tǒng)的現(xiàn)場(chǎng)執(zhí)行系統(tǒng),一般為PLC等設(shè)備。

            --------------------------------------
            上位機(jī)是指人可以直接發(fā)出操控命令的計(jì)算機(jī),一般是PC,屏幕上顯示各種信號(hào)變化(液壓,水位,溫度等)。
            下位機(jī)是直接控制設(shè)備獲取設(shè)備狀況的的計(jì)算機(jī),一般是PLC/單片機(jī)之類的。上位機(jī)發(fā)出的命令首先給下位機(jī),下位機(jī)再根據(jù)此命令解釋成相應(yīng)時(shí)序信號(hào)直接控制相應(yīng)設(shè)備。下位機(jī)不時(shí)讀取設(shè)備狀態(tài)數(shù)據(jù)(一般模擬量),轉(zhuǎn)化成數(shù)字信號(hào)反饋給上位機(jī)。簡(jiǎn)言之如此,真實(shí)情況千差萬別不離其宗。上下位機(jī)都需要編程,都有專門的開發(fā)系統(tǒng)。

            兩機(jī)如何通訊,一般取決于下位機(jī)。TCP/IP一般是支持的。但是下位機(jī)一般具有更可靠的獨(dú)有通訊協(xié)議,購(gòu)買下位機(jī)時(shí),會(huì)帶一大堆手冊(cè)光盤,告訴你如何使用特有協(xié)議通訊。里面會(huì)舉大量例子。一般對(duì)編程人員而言一看也就那么回事,使用一些新的API罷了。多語言支持功能模塊,一般同時(shí)支持?jǐn)?shù)種高級(jí)語言為上位機(jī)編程。

            ---------------------------------------
            上位機(jī)是指工業(yè)控制中位于較高層次的計(jì)算機(jī)。上位機(jī)通常指電腦了
            下位機(jī)就通常指單片機(jī)之類

            ---------------------------------------
            下位機(jī)一般指放置在前端的采集機(jī),比如AD4500等設(shè)備,用來采集智能設(shè)備數(shù)據(jù),并把數(shù)據(jù)通過串口或者其它方式發(fā)送給服務(wù)端。下位機(jī)一般具有自檢和自啟功能,是一種小型的計(jì)算機(jī),功能比較單一,使用DOS操作系統(tǒng)或其它操作系統(tǒng)。上位機(jī)是相對(duì)于下位機(jī)而言,一般情況下一個(gè)上位機(jī)對(duì)應(yīng)幾個(gè)下位機(jī),把下位機(jī)的數(shù)據(jù)轉(zhuǎn)發(fā)給服務(wù)器或者把服務(wù)器的控制信息發(fā)送給下位機(jī)。有時(shí)候上位機(jī)本身就充當(dāng)服務(wù)器。


            posted @ 2007-07-13 14:52 冷夜 閱讀(1625) | 評(píng)論 (0)編輯 收藏

            2005年9月13日 #

                  軟件工藝(software craftsmanship),今天第一次看到這個(gè)名詞好像有點(diǎn)后知后覺。但是我確實(shí)覺得"軟件工藝"一詞要比軟件工程能夠更好地揭示軟件設(shè)計(jì)與開發(fā)的過程與技術(shù)特點(diǎn)。
                  看到軟件工藝這個(gè)名詞是在一個(gè)網(wǎng)友的blog,軟件工藝是國(guó)外一本書的名字,據(jù)說中譯版即將在國(guó)內(nèi)發(fā)行。找時(shí)間應(yīng)該了解一下此書的主要觀點(diǎn),或許對(duì)于軟件設(shè)計(jì)與開發(fā)的思想會(huì)有所幫助。
            posted @ 2005-09-13 21:45 冷夜 閱讀(533) | 評(píng)論 (2)編輯 收藏

             

            X君最初的工作任務(wù)是設(shè)計(jì)制作公司的官方網(wǎng)站。對(duì)于“能熟練使用Photoshop、Dreamweaver等軟件”的X君,這不是一件復(fù)雜的工作。但是,要求他在一周之內(nèi)交上來的網(wǎng)站建設(shè)策劃,直等了一個(gè)月,我才收到一張A4紙。上面用四號(hào)字寫了大概20行。

            六級(jí)英語水平,編輯一些國(guó)外的資訊應(yīng)該沒有問題吧?……X君遇到了大麻煩。因?yàn)閷?duì)雜志所專向的電腦技術(shù)、電腦游戲不熟悉,很多“專業(yè)術(shù)語”在X君的眼里,簡(jiǎn)直就是“天書”!……X君在編輯部坐了一個(gè)月,沒有編譯出一篇稿件,只好幫著做了一點(diǎn)文字校對(duì)。

            自然有網(wǎng)友給X君打抱不平。譬如從回復(fù)中摘出的兩段:

            MCSE是什么?它代表的是Windows系統(tǒng)管理的水平。因此,這家公司要求他去做網(wǎng)站,他的表現(xiàn)不好,公司的人由此認(rèn)定“MCSE就這個(gè)水平”未免太荒唐。

            想看看這個(gè)學(xué)生英語水平如何,找個(gè)英語好的人跟他對(duì)對(duì)話,讓他寫幾個(gè)兩、三千字的材料就可以看出來了。那是基本功,假不了的。至于專業(yè)術(shù)語的問題,在業(yè)內(nèi)摸爬滾打個(gè)把月也就逐漸熟悉了。

            我想說的是,第一,企業(yè)要的是創(chuàng)造價(jià)值的人才,不能創(chuàng)造價(jià)值,縱有千般武功,也是廢人一個(gè)。不過這不是關(guān)鍵,關(guān)鍵在于,必須看到,這位X君太不喜歡——這是我跟新員工常提的一個(gè)字。不會(huì)做事沒關(guān)系,你有時(shí)間學(xué),但你首先必須學(xué)會(huì)喊:要做任何事,先喊出來,讓所有相關(guān)的人都知道你要做什么,打算怎么做;做完一件事,要喊出來,讓大家看到你的成績(jī);遇到問題了,更要毫不猶豫地喊出來,讓別人知道狀況,甚至給你幫助。在我看來,能力是人和人不同的,學(xué)習(xí)也有機(jī)遇等等各方面的區(qū)別,但無論如何,只要喊出來,至少不會(huì)像X君這樣“速敗”而一敗涂地。

            從我個(gè)人的經(jīng)驗(yàn)而言,凡是敗得很難看的事情,大抵都是自己懶得喊造成的。所以,這篇也寫給自己留底:以后做事還要多喊。對(duì)于類似X君等等剛出或未出校園的同學(xué),我的建議是:盡快忘記“考試不能作弊”的規(guī)章制度,做任何事情多說話,郵件也好MSN也好口頭也好,說比不說要好,多說比少說要好。另外,昨天晚上和孟巖提到了關(guān)于簡(jiǎn)歷的話題,私以為對(duì)于初次找工作的同學(xué)也是頗有幫助的,看看孟巖要不要在《程序員》雜志上放一放吧。



            本文引用通告地址: http://blog.csdn.net/gigix/services/trackbacks/474983.aspx
            posted @ 2005-09-13 21:28 冷夜 閱讀(467) | 評(píng)論 (1)編輯 收藏

             
            許多內(nèi)向型的人希望能夠改變自己的內(nèi)向性格,提高自己與他人交往的能力,進(jìn)而擁有良好的人際關(guān)系。于是他們看了許多人際關(guān)系方面的書籍,也學(xué)了許多人際關(guān)系的技巧,可是卻發(fā)現(xiàn)收效甚微,效果不明顯。這說明光學(xué)習(xí)技巧是遠(yuǎn)遠(yuǎn)不夠的。他們無法擁有良好的人際關(guān)系不光是因?yàn)槿狈记桑€有許多深層次的原因。同時(shí),這也從一個(gè)側(cè)面說明了,現(xiàn)在的人際關(guān)系方面的書籍是有缺陷的,是不完整的。內(nèi)向的人要想擁有良好的人際關(guān)系,需要從信念、態(tài)度、技巧等多方面改變和提高。


            一、信念:樹立“雙贏”(平等互利)的信念

              要想擁有良好的人際關(guān)系,就要有平等、互利的思想。用時(shí)髦的話說,就是要有雙贏思維。

              在對(duì)待人際關(guān)系上,存在著以下幾種思維模式:

            1.我贏你輸:
              我們從小受的教育就在加強(qiáng)這種思想觀念。考試的時(shí)候你要考得比別人好,體育比賽時(shí)你要跑得比別人快、跳得比別人高,你要得冠軍。總之只有超過別人,只有贏,才能使我們感到快樂。我們把生活看成是競(jìng)技場(chǎng),要成功幸福就要超越別人,把別人甩在后面。
              另外,自私自利的人抱持的也是這種我贏你輸?shù)乃枷搿?BR>
            2.我輸你贏:
              缺乏自信、缺乏自尊的人往往是這種思想。
              他們不敢堅(jiān)持自己的立場(chǎng),無所欲無所求,犧牲個(gè)人利益委曲求全,以犧牲求太平。

            3.兩敗俱傷:
              表面上看這樣做誰都得不到好處,似乎沒有人會(huì)這樣做。可是有的人偏偏要這樣想、這樣做!損人不利己,我得不到的你也別想得到,為了報(bào)復(fù),寧可犧牲自己,也要把你拖垮。

            4.雙贏:
              雙贏是建立在平等互利思想的基礎(chǔ)之上的。自己獲利但又不傷害別人利益。不把自己和別人對(duì)立起來,我和你不是敵對(duì)的雙方,而是同一條戰(zhàn)壕里的戰(zhàn)友,有富同享,有難同當(dāng),共同開創(chuàng)美好的未來。

              我贏你輸(自私自利)、我輸你贏(委曲求全)、雙輸(兩敗俱傷)這些思維模式,都是無法使人擁有良好的人際關(guān)系的。要想擁有良好的人際關(guān)系,就要有雙贏思維,擁有平等、互利的思想。


            本文引用通告地址: http://blog.csdn.net/i_like_cpp/services/trackbacks/475017.aspx
            posted @ 2005-09-13 21:22 冷夜 閱讀(724) | 評(píng)論 (1)編輯 收藏

            2005年9月12日 #

            靜態(tài)構(gòu)造函數(shù)
            靜態(tài)構(gòu)造函數(shù)是一種成員,用來實(shí)現(xiàn)初始化一個(gè)類所需的操作。靜態(tài)構(gòu)造函數(shù)不能帶參數(shù),
            不能具有可訪問性修飾符,也不能被顯式調(diào)用。類的靜態(tài)構(gòu)造函數(shù)是自動(dòng)地被調(diào)用的。
            (上面的說明摘自《C# Language Specification》)

            示例
            class Employee
            {
             private static int ds;
             static Employee() {
              ds = 2;
             }

             public Employee(int n)
            {
                ds = n;
            }

             public string Name;
             public decimal Salary;
            }
            顯示了一個(gè) Employee 類,該類含有一個(gè)靜態(tài)構(gòu)造函數(shù),它初始化一個(gè)靜態(tài)字段

            請(qǐng)注意下面的語句,會(huì)導(dǎo)致靜態(tài)構(gòu)造函數(shù)先被調(diào)用,然后調(diào)用public的構(gòu)造函數(shù)。也就是說執(zhí)行了
            兩個(gè)不同的構(gòu)造函數(shù),因此在實(shí)際應(yīng)用中,需要注意到這種情況可能會(huì)引起的問題。

            Employee em = new Employee(1);


            (本文是本人以baodi_z的網(wǎng)名原發(fā)表在CSDN的個(gè)人BLOG,原文發(fā)表于 2005年06月07日 5:44 PM )

            posted @ 2005-09-12 23:38 冷夜 閱讀(652) | 評(píng)論 (0)編輯 收藏

            一個(gè)有趣的現(xiàn)象,摘自CSDN 吹云Blog《C++從零開始(十二)——何謂面向?qū)ο缶幊趟枷搿吩?/FONT>http://blog.csdn.net/chuiyun/archive/2004/11/26/194722.aspx

                之所以摘錄這段文章,是因?yàn)槲移婀窒旅娴睦泳谷徽娴哪軌蚓幾g通過--在引用的文件中篡改類的private為public就可以直接訪問私有變量,而且能夠正常訪問和賦值。
                下面是摘錄的原文,有興趣的朋友不妨也試試編個(gè)代碼試驗(yàn)一下。

            -------------------------------------------------------------------

            封裝

                先來看現(xiàn)在在各類VC教程中關(guān)于對(duì)象的講解中經(jīng)常能看見的如下的一個(gè)類的設(shè)計(jì)。
                class Person
                { private: char m_Name[20]; unsigned long m_Age; bool m_Sex;
                  public:  const char* GetName() const;  void SetName( const char* );
                           unsigned long GetAge() const; void SetAge( unsigned long );
                           bool GetSex() const;          void SetSex( bool );
                };
                上面將成員變量全部定義為private,然后又提供三對(duì)Get/Set函數(shù)來存取上面的三個(gè)成員變量(因?yàn)樗鼈兪莗rivate,外界不能直接存取),這三對(duì)函數(shù)都是public的,為什么要這樣?那些教材將此稱作封裝,是對(duì)類Person的內(nèi)部?jī)?nèi)存布局的封裝,這樣外界就不知道其在內(nèi)存上是如何布局的并進(jìn)而可以保證內(nèi)存的有效性(只由類自身操作其實(shí)例)。
                首先要確認(rèn)上面設(shè)計(jì)的荒謬性,它是正宗的“有門沒鎖”毫無意義。接著再看所謂的對(duì)內(nèi)存布局的封裝。回想在《C++從零開始(十)》中說的為什么每個(gè)要使用類的源文件的開頭要包含相應(yīng)的頭文件。假設(shè)上面是在Person.h中的聲明,然后在b.cpp中要使用類Person,本來要#include "Person.h",現(xiàn)在替換成下面:
                class Person
                { public: char m_Name[20]; unsigned long m_Age; bool m_Sex;
                  public: const char* GetName() const;  void SetName( const char* );
                          unsigned long GetAge() const; void SetAge( unsigned long );
                          bool GetSex() const;          void SetSex( bool );
                };
                然后在b.cpp中照常使用類Person,如下:
                Person a, b; a.m_Age = 20; b.GetSex();
                這里就直接使用了Person::m_Age了,就算不做這樣蹩腳的動(dòng)作,依舊#include "Person.h",如下:
                struct PERSON { char m_Name[20]; unsigned long m_Age; bool m_Sex; };
                Person a, b; PERSON *pP = ( PERSON* )&a; pP->m_Age = 40;
                上面依舊直接修改了Person的實(shí)例a的成員Person::m_Age,如何能隱藏內(nèi)存布局?!請(qǐng)回想聲明的作用,類的內(nèi)存布局是編譯器生成對(duì)象時(shí)必須的,根本不能對(duì)任何使用對(duì)象的代碼隱藏有關(guān)對(duì)象實(shí)現(xiàn)的任何東西,否則編譯器無法編譯相應(yīng)的代碼。
                那么從語義上來看。Person映射的不是真實(shí)世界中的人的概念,應(yīng)該是存放某個(gè)數(shù)據(jù)庫中的某個(gè)記錄人員信息的表中的記錄的緩沖區(qū),那么緩沖區(qū)應(yīng)該具備那三對(duì)Get/Set所代表的功能嗎?緩沖區(qū)是緩沖數(shù)據(jù)用的,緩沖后被其它操作使用,就好像箱子,只是放東西用。故上面的三對(duì)Get/Set沒有存在的必要,而三個(gè)成員變量則不能是private。當(dāng)然,如果Person映射的并不是緩沖區(qū),而在其它的世界中具備像上面那樣表現(xiàn)的語義,則像上面那樣定義就沒有問題,但如果是因?yàn)閷?duì)內(nèi)存布局的封裝而那樣定義類則是大錯(cuò)特錯(cuò)的。
                上面錯(cuò)誤的根本在于沒有理解何謂封裝。為了說明封裝,先看下MFC(Microsoft Foundation Class Library——微軟功能類庫,一個(gè)定義了許多類的庫文件,其中的絕大部分類是封裝設(shè)計(jì)。關(guān)于庫文件在說明SDK時(shí)闡述)中的類CFile的定義。從名字就可看出它映射的是操作系統(tǒng)中文件的概念,但它卻有這樣的成員函數(shù)——CFile::Open、CFile::Close、CFile::Read、CFile::Write,有什么問題?這四個(gè)成員函數(shù)映射的都是對(duì)文件的操作而不是文件所具備的功能,分別為打開文件、關(guān)閉文件、從文件讀數(shù)據(jù)、向文件寫數(shù)據(jù)。這不是和前面說的成員函數(shù)的語義相背嗎?上面四個(gè)操作有個(gè)共性,都是施加于文件這個(gè)資源上的操作,可以將它們叫做“被功能”,如文件具有“被打開”的功能,具有“被讀取”的功能,但應(yīng)注意它們實(shí)際并不是文件的功能。
                按照原來的說法,應(yīng)該將文件映射為一個(gè)結(jié)構(gòu),如FILE,然后上面的四個(gè)操作應(yīng)映射成四個(gè)函數(shù),再利用名字空間的功能,如下:
                namespace OFILE
                {
                    bool Open( FILE&, … );  bool Close( FILE&, … );
                    bool Read( FILE&, … );  bool Write( FILE&, … );
                }
                上面的名字空間OFILE表示里面的四個(gè)函數(shù)都是對(duì)文件的操作,但四個(gè)函數(shù)都帶有一個(gè)FILE&的參數(shù)。回想非靜態(tài)成員函數(shù)都有個(gè)隱藏的參數(shù)this,因此,一個(gè)了不起的想法誕生了。
                將所有對(duì)某種資源的操作的集合看成是一種資源,把它映射成一個(gè)類,則這個(gè)類的對(duì)象就是對(duì)某個(gè)對(duì)象的操作,此法被稱作封裝,而那個(gè)類被稱作包裝類或封裝類。很明顯,包裝類映射的是“對(duì)某種資源的操作”,是一抽象概念,即包裝類的對(duì)象都是無狀態(tài)對(duì)象(指邏輯上應(yīng)該是無狀態(tài)對(duì)象,但如果多個(gè)操作間有聯(lián)系,則還是可能有狀態(tài)的,但此時(shí)它的語義也相應(yīng)地有些變化。如多一個(gè)CFile::Flush成員函數(shù),用于刷新緩沖區(qū)內(nèi)容,則此時(shí)就至少有一個(gè)狀態(tài)——緩沖區(qū),還可有一個(gè)狀態(tài)記錄是否已經(jīng)調(diào)用過CFile::Write,沒有則不用刷新)。
                現(xiàn)在應(yīng)能了解封裝的含義了。將對(duì)某種資源的操作封裝成一個(gè)類,此包裝類映射的不是世界中定義的某一“名詞性概念”,而是世界的“動(dòng)詞性概念”或算法中“對(duì)某一概念的操作”這個(gè)人為定出來的抽象概念。由于包裝類是對(duì)某種資源的操作的封裝,則包裝類對(duì)象一定有個(gè)屬性指明被操作的對(duì)象,對(duì)于MFC中的CFile,就是CFile::m_hFile成員變量(類型為HANDLE),其在包裝類對(duì)象的主要運(yùn)作過程(前面的CFile::Read和CFile::Write)中被讀。
                有什么好處?封裝提供了一種手段以將世界中的部分“動(dòng)詞性概念”轉(zhuǎn)換成對(duì)象,使得程序的架構(gòu)更加簡(jiǎn)單(多條“動(dòng)詞性概念”變成一個(gè)“名詞性概念”,減少了“動(dòng)詞性概念”的數(shù)量),更趨于面向?qū)ο蟮木幊趟枷搿?BR>    但應(yīng)區(qū)別開包裝類對(duì)象和被包裝的對(duì)象。包裝類對(duì)象只是個(gè)外殼,而被包裝的對(duì)象一定是個(gè)具有狀態(tài)的對(duì)象,因?yàn)椴僮骶褪歉淖冑Y源的狀態(tài)。對(duì)于CFile,CFile的實(shí)例是包裝類對(duì)象,其保持著一個(gè)對(duì)被包裝對(duì)象——文件內(nèi)核對(duì)象(Windows操作系統(tǒng)中定義的一種資源,用HANDLE的實(shí)例表征)——的引用,放在CFile::m_hFile中。因此,包裝類對(duì)象是獨(dú)立于被包裝對(duì)象的。即CFile a;,此時(shí)a.m_hFile的值為0或-1,表示其引用的對(duì)象是無效的,因此如果a.Read( … );將失敗,因?yàn)椴僮魇┘拥馁Y源是無效的。對(duì)此,就應(yīng)先調(diào)用a.Open( … );以將a和一特定的文件內(nèi)核對(duì)象綁定起來,而調(diào)用a.Close( … );將解除綁定。注意CFile::Close調(diào)用后只是解除了綁定,并不代表a已經(jīng)被銷毀了,因?yàn)閍映射的并不是文件內(nèi)核對(duì)象,而是對(duì)文件內(nèi)核對(duì)象操作的包裝類對(duì)象。
                如果仔細(xì)想想,就會(huì)發(fā)現(xiàn),老虎能夠吃兔子,兔子能夠被吃,那這里應(yīng)該是老虎有個(gè)功能是“吃兔子”還是多個(gè)兔子的包裝類來封裝“吃兔子”的操作?這其實(shí)不存在任何問題,“老虎吃兔子”和“兔子被吃”完全是兩個(gè)不同的操作,前者涉及兩種資源,后者只涉及一種資源,因此可以同時(shí)實(shí)現(xiàn)兩者,具體應(yīng)視各自在相應(yīng)世界中的語義。如果對(duì)于真實(shí)世界,則可以簡(jiǎn)略地說老虎有個(gè)“吃”的功能,可以吃“肉”,而動(dòng)物從“肉”和“自主能動(dòng)性”多重繼承,兔子再?gòu)膭?dòng)物繼承。這里有個(gè)類叫“自主能動(dòng)性”,指動(dòng)物具有意識(shí),能夠自己動(dòng)作,這在C++中的表現(xiàn)就是有成員函數(shù)的類,表示有功能可以被操作,但收音機(jī)也具有調(diào)臺(tái)等功能,難道說收音機(jī)也能自己動(dòng)?!這就是世界的意義——運(yùn)轉(zhuǎn)。

            (本文是本人以baodi_z的網(wǎng)名原發(fā)表在CSDN的個(gè)人BLOG,原文發(fā)表于 2004年12月09日 2:09 PM )

            posted @ 2005-09-12 23:35 冷夜 閱讀(2159) | 評(píng)論 (8)編輯 收藏

            91精品婷婷国产综合久久| 国产精品久久成人影院| 国产精品久久久久久久久免费| 欧美与黑人午夜性猛交久久久 | 久久国产香蕉视频| 久久精品三级视频| 国产激情久久久久影院| 性做久久久久久久久| 久久久久国产一区二区| 亚洲精品WWW久久久久久| 久久久久久亚洲Av无码精品专口| 99久久久国产精品免费无卡顿| 国产成人精品久久一区二区三区av | 91久久婷婷国产综合精品青草| 色偷偷久久一区二区三区| 久久99热狠狠色精品一区| 国内精品久久久久久久涩爱 | 国产香蕉97碰碰久久人人| 国产成人AV综合久久| 亚洲国产成人久久综合野外| 成人久久免费网站| 久久国产精品99久久久久久老狼 | 久久91精品国产91久| 久久人人妻人人爽人人爽| 人妻精品久久久久中文字幕69 | 99久久成人国产精品免费| 99热热久久这里只有精品68| 亚洲国产成人精品久久久国产成人一区二区三区综 | 99蜜桃臀久久久欧美精品网站 | 久久男人AV资源网站| 久久99国产精品久久99| 久久久久久噜噜精品免费直播| 国产精品久久久久久久久软件| 一本色道久久综合亚洲精品| 精品九九久久国内精品| 亚洲日韩欧美一区久久久久我 | 久久精品二区| 久久久久99精品成人片欧美| 久久久久无码精品| 久久久久夜夜夜精品国产| 72种姿势欧美久久久久大黄蕉|