• <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>

            socketref,再見!高德

            https://github.com/adoggie

              C++博客 :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
              246 Posts :: 4 Stories :: 312 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(54)

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

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            #

            一直以來都是用自己編寫的地圖渲染引擎,客戶端使用openscales做應(yīng)用展示,支持pc,android,iphone
            已經(jīng)實(shí)現(xiàn)了多個(gè)版本的地圖數(shù)據(jù)處理,包括 高德數(shù)據(jù)、四維數(shù)據(jù)從shp編譯成物理格式供渲染服務(wù)使用,這個(gè)過程復(fù)雜且費(fèi)事
            比較了mapabc的地圖,作為成熟的商業(yè)公司的產(chǎn)品,當(dāng)然團(tuán)隊(duì)多年積累的東西定是我一個(gè)人做的不能比擬的,渲染方面在大比例顯示處理的比自己好很多,主要自己沒有過多時(shí)間投入進(jìn)去,在做完自己的地圖版本之后(sw2us.com/gps)考慮接入高德web地圖(sw2us.com/newgps)

            以下對(duì)mapabc使用的經(jīng)驗(yàn)有感
            我的應(yīng)用采用flex技術(shù),之前自己的地圖加載采用opensacles,到mapabc了便要換成高德的展示客戶端了

            高德發(fā)布的最新flex sdk 2.4版本,可以訪問 code.mapabc.com,搞笑的是網(wǎng)站的鏈接缺只能下載2.3.3版本的sdk
            高德官網(wǎng)的很多支持方式比較滑稽,根本不能提供任何幫助,QQ討論區(qū)每一個(gè)能加入的;bbs論壇根本沒人維護(hù),回答問題沒有解答,這方面做的還是比較差的。
            花了2天便完成了地圖遷移工作,還是主要是我的應(yīng)用簡(jiǎn)單的緣故吧!
            mapabc的api分公眾版本和企業(yè)版本,兩個(gè)版本差異很大,曾經(jīng)以客戶名義聯(lián)系高德銷售,提供給我的一份sdk文檔與官網(wǎng)的文檔版本和內(nèi)容差異很大,公眾版本除了能顯示基礎(chǔ)底圖之外,基本不具備其他令我滿意的設(shè)施,提供的api也不敬人意。在我遷移openscales代碼為高德sdk時(shí)碰到了很多問題。

            --公眾版不具有g(shù)ps到map坐標(biāo)的轉(zhuǎn)換功能
            --不具有地址解析功能(gps到文本地址),不能使用poi檢索功能
            --訪問次數(shù)限制
            --顯示層級(jí)限制,不能更小的比例尺顯示
            --高德sdk 很多組件采用flash開發(fā)的,所以不能通過flex繼承圖來檢索組件的功能和接口,sdk提供的overlay對(duì)象居然沒有g(shù)etBounds()方法,在處理多個(gè)overlap時(shí)檢測(cè)相交不方便
            --沒有l(wèi)ayers概念
            openscales更像一個(gè)gis專業(yè)的客戶地圖展示程序,且隨意修改,支持air,我已經(jīng)部署到iphone和android環(huán)境,而高德flex sdk更像一個(gè)玩具,一個(gè)非專業(yè)者使用的玩意兒,某些接口簡(jiǎn)單但不夠靈活,且代碼封閉
            高德現(xiàn)在成為apple在大陸的地圖數(shù)據(jù)供應(yīng)商了,google也許會(huì)另擇圖商,也許是四維。apple當(dāng)然會(huì)以3d地圖領(lǐng)航者的角色刮起新的地圖應(yīng)用旋風(fēng),大家都跟著學(xué)吧
            等我的地圖渲染優(yōu)化好之后還是會(huì)放棄高德的sdk改用自己的地圖技術(shù),當(dāng)然那些需要付費(fèi)的功能自己去實(shí)現(xiàn)嘍,3d是趨勢(shì),不能讓自己落后了



            posted @ 2012-07-07 00:51 放屁阿狗 閱讀(2070) | 評(píng)論 (0)編輯 收藏

            全格Gps2012監(jiān)控系統(tǒng)
            我們是上海全格信息科技公司,我們的團(tuán)隊(duì)以Gis位置服務(wù)系統(tǒng)為方向,多年來積累開發(fā)了多套Gps定位系統(tǒng)等核心產(chǎn)品,且擁有所有的技術(shù)能力和版權(quán)。
            目前我們正在尋找合作伙伴,我們可以提供系統(tǒng)平臺(tái)服務(wù)且我們的強(qiáng)項(xiàng)也在于此,也可以做gps運(yùn)維服務(wù)。
            如果您用的系統(tǒng)也是同深圳那么多Gps廠家共用的一套系統(tǒng)的話,您可以看看我們的系統(tǒng),參考一下優(yōu)缺點(diǎn)。
            >我們是掌握最新Gis應(yīng)用服務(wù)的技術(shù)開發(fā)團(tuán)隊(duì)
            >我們擁有非常豐富的Gis開發(fā)、應(yīng)用、實(shí)施的經(jīng)驗(yàn)和專業(yè)的精神
            >我們提供.靈活的可配置、擴(kuò)展的系統(tǒng)平臺(tái),根據(jù)客戶需求而定制功能,包括:界面、操作接口、報(bào)表或者整合客戶的業(yè)務(wù)
            >我們擁有自主的地圖平臺(tái),提供B/S模式,不采用google,baidu等互聯(lián)網(wǎng)地圖,不采用geoserver等開源的地圖,完全我們自己開發(fā)的地圖引擎,速度快,效率高,設(shè)備運(yùn)行要求低、靈活可擴(kuò)展
            >我們的監(jiān)控系統(tǒng)采用flex技術(shù),監(jiān)控位置和報(bào)警完全實(shí)時(shí),服務(wù)器主動(dòng)推送gps信息到瀏覽器端,這一點(diǎn)是非flex技術(shù)絕不能做到的,所以設(shè)備運(yùn)行狀態(tài)實(shí)現(xiàn)零延時(shí) 
            >我們的系統(tǒng)監(jiān)控終端除了支持pc瀏覽器,還支持 android,iphone等移動(dòng)終端訪問控制,可進(jìn)行手機(jī)設(shè)防、監(jiān)控軌跡、報(bào)警配置等功能,可通過app store和android市場(chǎng)下載安裝
            >我們的有5年的Gps監(jiān)控運(yùn)營(yíng)開發(fā)的經(jīng)驗(yàn),系統(tǒng)設(shè)計(jì)容量達(dá)2w臺(tái)終端設(shè)備,與多個(gè)公司合作OEM我們的系統(tǒng)和終端產(chǎn)品
            ~如果您想做Gps監(jiān)控或者運(yùn)營(yíng),也許您是個(gè)人或者是公司老板
            ~如果您需要更靈活、可控、安全、穩(wěn)定的GPS監(jiān)控系統(tǒng)
            ~如果您的需求規(guī)劃是低成本的
            ~如果您需要部署一整套Gps服務(wù)平臺(tái)在自己的環(huán)境中,而不是又去代理使用他人的Gps運(yùn)營(yíng)平臺(tái)或者不想花巨資采用 mapabc,mapbar之類的系統(tǒng)
            。。。。。
            您可以考慮我們的技術(shù)方案,我們可以以最優(yōu)質(zhì)的服務(wù)、最先進(jìn)的技術(shù)、最靈活的合作模式與您實(shí)現(xiàn)共贏
            請(qǐng)?jiān)L問我們的網(wǎng)站: www.sw2us.com      
            Gps系統(tǒng)訪問地址: www.sw2us.com/gps
            ---------------------------------------------------------------------------------------------
            上海全格信息科技有限公司
            Shanghai Triangle Info Tech Co,Ltd. 
            地址: 上海市閔行區(qū)立躍路2897號(hào)1幢302室  郵編: 201114 
            電話:  86-021-34680553     傳真:  86-021-64296802         郵件: service@sw2us.com
            移動(dòng)電話:  13661913244     網(wǎng)址:  http://www.sw2us.com    QQ: 2536588583@qq.com
            ---------------------------------------------------------------------------------------------
            posted @ 2012-06-30 01:24 放屁阿狗 閱讀(721) | 評(píng)論 (0)編輯 收藏

            一直使用openscales 1.2.1版本開發(fā)webapp,在瀏覽器顯示地圖層,沒有問題
            最近想把應(yīng)用改到air下跑地圖顯示,結(jié)果死活地圖無法加載成功,同樣的代碼,
                <Map id="fxMap" width="400" height="300" resolution="0.001911274412400001"
                     center="121.22,31.3" x="51" y="70" >
                    <WMSC name="Nasa"
                          layers="bluemarble" format="image/jpeg"  version="1.1.1"  url="http://sw2us.com:8001/wms"/>
                    <DragHandler/>
                    <WheelHandler/>
                </Map>
            以上代碼webapp方式可以顯示地圖,但改成air方式不行
            以為1.2.1的bug,所以改換openscales的2.0版本,
            惡夢(mèng)來了,2.0與1.2.1版本api變化非常巨大,基本上以前些的代碼都要作廢掉,坑爹啊
            耐著性子,看了網(wǎng)上的2.0的api,做了test程序,發(fā)現(xiàn)wmsc地圖還是只能顯示在webapp模式下,air還是不行,肯定我哪里沒有琢磨清楚了的緣故。
            不過還好,flex builder4.6下開發(fā)mobile應(yīng)用沒有選擇air的提示,直接把wmsc加載成功,phone和android上可以顯示出地圖來,比較暗自高興,
            air的其中緣故還得把openscales的代碼翻出來鞭尸一遍才能曉得緣故
            很想切換到2.0,畢竟看到了很多api的增強(qiáng),但是應(yīng)用代碼做遷移不容易啊,郁悶



            posted @ 2012-06-12 23:50 放屁阿狗 閱讀(641) | 評(píng)論 (0)編輯 收藏

            用Qjson解析通信消息,一個(gè)200k的json包解析居然話了2s時(shí)間,比python的json慢了10倍
            可恥啊可恥
            posted @ 2012-05-11 12:30 放屁阿狗 閱讀(684) | 評(píng)論 (1)編輯 收藏

            東西都要大家分享 :-)
            posted @ 2012-04-14 17:53 放屁阿狗 閱讀(1729) | 評(píng)論 (1)編輯 收藏


            dvr項(xiàng)目中flex駐留在瀏覽器,而影響播放程序是獨(dú)立的進(jìn)程,sandbox的安全問題導(dǎo)致flex的代碼無法直接與播放進(jìn)程IPC通信,那只有通過公網(wǎng)IP的主機(jī)進(jìn)行橋接。
            很多年以前用過foundstone系列的工具,也有socket轉(zhuǎn)向的功能,包括在5173時(shí)做過lsp的底層轉(zhuǎn)向軟件(仿sockcap),原理當(dāng)然是相當(dāng)簡(jiǎn)單,python是首選工具。
            代碼接收兩端建立socket進(jìn)來,并根據(jù)相同的id號(hào)來進(jìn)行socket配對(duì),之后兩個(gè)socket之間就實(shí)現(xiàn)互相轉(zhuǎn)發(fā)(技術(shù)同之前寫的http代理服務(wù)器 )

              1 # -- coding:utf-8 --
              2 
              3 import socket,traceback,os,os.path,sys,time,struct,base64,gzip,array,threading
              4 import select,json
              5 
              6 
              7 '''
              8 {'id','type'}
              9 
             10 type - 'mapshow','imageplay'
             11 id - 一次會(huì)話的編號(hào)
             12 
             13 imageplay 與xbridge建立socket連接,并注冊(cè)一個(gè)會(huì)話編號(hào)(隨機(jī)產(chǎn)生)
             14 imageplay啟動(dòng)mapshow,并將會(huì)話編號(hào)傳遞給mapshow,mapshow建立xbridge的連接,并提交會(huì)話編號(hào)
             15 xbridge將雙向傳遞相同會(huì)話編號(hào)的數(shù)據(jù)到對(duì)方
             16 
             17 sock1的客戶必須等sock2連接進(jìn)入之后發(fā)送數(shù)據(jù),否則將sock1數(shù)據(jù)轉(zhuǎn)發(fā)給sock2時(shí)將產(chǎn)生異常
             18 '''
             19 
             20 class ConnectionPair:
             21     def __init__(self,app):
             22         self.app = app
             23         self.id = ''
             24         self.sock1=None #imageplay上來的連接
             25         self.sock2=None #第二個(gè)連接上來的對(duì)象mapdemo
             26         
             27     def start(self):
             28         t = threading.Thread(target=self.threadRecv)
             29         t.start()
             30         
             31     def onLostConnection(self):
             32         try:
             33             print 'connection pair lost..'
             34             self.sock1.close()
             35             self.sock2.close()
             36             self.app.onConnectionPairBroken(self)
             37         except:
             38             traceback.print_exc()
             39         
             40     def threadRecv(self):
             41         print 'service threading entering'
             42         import select
             43         while True:
             44             fds = []
             45             if self.sock1:
             46                 fds.append(self.sock1)
             47             if self.sock2:
             48                 fds.append(self.sock2)
             49             #fds = [self.sock1,self.sock2]
             50             try:
             51                 #sock2未連接進(jìn)來前,將不接收sock1上產(chǎn)生數(shù)據(jù)
             52                 #print 'fds:',len(fds),fds
             53                 rds,wds,eds = select.select(fds,[],[],1)
             54                 if not rds:#timeout 
             55                     continue
             56                         
             57                 for s in rds:
             58                     d = s.recv(1024)
             59                     #print d
             60                     if not d:
             61                         raise 'any jump'
             62                     
             63                     to = self.sock2
             64                     if s == self.sock2:
             65                         to = self.sock1
             66                     #print 'redirect data:',d
             67                     to.sendall(d)        
             68             except:
             69                 traceback.print_exc()
             70                 self.onLostConnection()
             71                 break
             72         
             73         print 'ConnThread Exiting'
             74             
             75             
             76     
             77 
             78 class XBridge:
             79     def __init__(self,addr=('',12788)):
             80         self.sock = None
             81         self.addr = addr
             82         self.conns={} #{id}
             83         self.mtxconns = threading.Lock()
             84         
             85     def onConnectionPairBroken(self,cp):
             86         self.mtxconns.acquire()
             87         del self.conns[cp.id]
             88         print 'onConnectionPairBroken(),removed:',cp.id
             89         self.mtxconns.release()
             90         
             91     def start(self):
             92         try:
             93             
             94             self.sock = socket.socket()
             95             #print 'lll',self.addr
             96             self.sock.bind( tuple(self.addr) )
             97             self.sock.listen(5)
             98             
             99             self.thread = threading.Thread(target=self.service_loop)
            100             self.thread.start()
            101             print 'xbridge started!'
            102             self.thread.join()
            103         except:
            104             traceback.print_exc()
            105             return False
            106         
            107     def shutdown(self):
            108         self.sock.close()
            109          
            110     
            111     def service_loop(self):
            112         
            113         while True:
            114             fdr = []
            115             fdr.append(self.sock)
            116             infds,wr,e = select.select(fdr,[],[])
            117             if e:
            118                 print 'service thread exit'
            119                 break
            120             for s in infds:
            121                 if s == self.sock: #新連接到達(dá) 
            122                     sock = None
            123                     try:                        
            124                         sock,peer = self.sock.accept()    #異常產(chǎn)生表示self.sock被強(qiáng)行關(guān)閉
            125                         print 'new client incoming',peer
            126                     except
            127                         return
            128                     thread = threading.Thread(target=self.threadNewClient,args=(sock,))
            129                     thread.start()
            130     
            131     def threadNewClient(self,sock):
            132         #等待注冊(cè)信息進(jìn)入 ,5 秒超時(shí)
            133         try:
            134             fdr = [sock,]
            135             print 'enter select '
            136             infds,wr,e = select.select(fdr,[],[],5)
            137             
            138             if not infds:
            139                 sock.close()
            140                 print 'client register timeout'
            141                 return #接收超時(shí)
            142             d = sock.recv(1024)
            143             d = json.loads(d)
            144             id,type = d['id'],d['type']
            145             connpair = None
            146             print id,type
            147             self.mtxconns.acquire()
            148             if type == 'imageplay':
            149             
            150                 cp = ConnectionPair(self)
            151                 cp.id = id
            152                 cp.sock1 = sock
            153                 self.conns[id] = cp
            154                 cp.start()
            155                 
            156             elif type =='mapshow':
            157                 connpair = self.conns.get(id,None)
            158                 if connpair == None: #沒找到imageplay
            159                     sock.close()
            160                     print 'mapshow cannt found imageplay..'
            161                 else:
            162                     print 'mapclient matched!'
            163                     connpair.sock2 = sock                    
            164             else:
            165                 print 'unknown command id:',id,type
            166                 
            167             self.mtxconns.release()    
            168         except:
            169             sock.close()
            170             traceback.print_exc()
            171         
            172 if __name__=='__main__':
            173     XBridge().start() #default '',12788
            174    
            posted @ 2012-04-14 17:42 放屁阿狗 閱讀(1700) | 評(píng)論 (0)編輯 收藏


            焦距的計(jì)算公式

            視場(chǎng)和焦距的計(jì)算
              視場(chǎng)指被攝取物體的大小,視場(chǎng)的大小是以鏡頭至被攝取物體距離,鏡頭焦頭及所要求的成像大小確定的。

            (1) 焦距的計(jì)算
              鏡頭的焦距,視場(chǎng)大小及鏡頭到被攝取物體的距離的計(jì)算如下:
            f=wL/W
            f=hL/h
            f;鏡頭焦距      w:圖象的寬度(被攝物體在CCD靶面上成象寬度)
            W:被攝物體寬度    L:被攝物體至鏡頭的距離
            h:圖象高度(被攝物體在ccd靶面上成像高度)視場(chǎng)(攝取場(chǎng)景)高度
            H:被攝物體的高度

            CCD靶面規(guī)格尺寸:?jiǎn)挝籱m
            規(guī)格 1/3" 1/2" 2/3" 1"
            W 4.8 6.4 8.8 12.7
            H 3.6 4.8 6.6 9.6


              由于攝像頭畫面寬度和高度與電視接收機(jī)畫面寬度和高度一樣,其比例均為4:3,當(dāng)L不變,H或W增大時(shí),f變小,當(dāng)H或W不變,L增大時(shí),f增大。
              舉例:假設(shè)用1/2”CCD攝像頭觀測(cè),被測(cè)物體寬440毫米,高330毫米,鏡頭焦點(diǎn)距物體2500毫米。
            由公式可以算出:
            焦距f=6.4 * 2500 / 440≈36毫米或
            焦距f=4.8 * 2500 / 330≈36毫米
              當(dāng)焦距數(shù)值算出后,如果沒有對(duì)應(yīng)焦距的鏡頭是很正常的,這時(shí)可以根據(jù)產(chǎn)品目錄選擇相近的型號(hào),一般選擇比計(jì)算值小的,這樣視角還會(huì)大一些。

            (2) 視場(chǎng)角的計(jì)算
              如果知道了水平或垂直視場(chǎng)角便可按公式計(jì)算出現(xiàn)場(chǎng)寬度和高度。
            W=2LtanQw/2 ( Qw:水平視角)
            H=2LtanQh/2 ( Qh:垂直視角)
            水平視場(chǎng)角Qw(水平觀看的角度)
            Qw =2tg-1(W/2L)
            垂直視場(chǎng)角Qh(垂直觀看的角度)
            Qh =2tg-1(H/2L)

              視場(chǎng)由寬(W)、高(H)和與攝像頭的距離(L)決定,一旦決定了攝像頭要監(jiān)視的景物,正確地選擇鏡頭的焦距就由來3個(gè)因素決定:
            l 欲監(jiān)視景物的尺寸
            l 攝像頭與景物的距離
            l 攝像頭成像器的尺寸
            8、選配鏡頭的原則
              為了獲得預(yù)期的攝像效果,在選配鏡頭時(shí),應(yīng)著重注意六個(gè)基本要素:(1)被攝物體的大小;(2) 被攝物體的細(xì)節(jié)尺寸;(3) 物距;(4)焦距;(5) CCD攝像機(jī)靶面的尺寸;(6) 鏡頭攝像系統(tǒng)的分辯率。

            posted @ 2012-04-02 01:13 放屁阿狗 閱讀(401) | 評(píng)論 (0)編輯 收藏

            今天去轉(zhuǎn)了一圈,坐著一上午,屁股有點(diǎn)累。了解了這是個(gè)啥東東了,不是特別有兩點(diǎn),下午都是廠商吹牛皮,所以吃了頓飯就回公司了
            posted @ 2012-03-30 13:40 放屁阿狗 閱讀(247) | 評(píng)論 (0)編輯 收藏

            花了近3周時(shí)間去完成DVR項(xiàng)目的視頻影像管理系統(tǒng)。目標(biāo)容量200T,利用廉價(jià)PC實(shí)現(xiàn)集群存儲(chǔ),由于存儲(chǔ)的是單個(gè)的視頻段文件且對(duì)于文件容災(zāi)方面沒有特殊的要求,允許單點(diǎn)存儲(chǔ)損壞。
            系統(tǒng)部署一個(gè)stoMaster服務(wù)器做控制服務(wù),提供影像系統(tǒng)的讀寫調(diào)度分配、系統(tǒng)模塊監(jiān)控管理、系統(tǒng)影像查詢服務(wù);若干個(gè)stoNodeServer作為單點(diǎn)存儲(chǔ)服務(wù)器,每個(gè)節(jié)點(diǎn)服務(wù)器下掛載10個(gè)2T普通硬盤,單節(jié)點(diǎn)支持20T容量,由于采用PC架構(gòu),大大節(jié)省成本且還能保證一定IO并發(fā)能力,保證200T容量需要10臺(tái)PC做支撐。
            開發(fā)涉及技術(shù): python + ffmpeg + flex + openscales + swMapServer + Vs2008 + Qt + postgis + psycopg2 + comtypes
            Links: http://sw2us.com/sites/default/files/dvr.demo.v0.1.0_2012.3.27.zip
            幸好有了python這個(gè)好幫手,不然要干死了,python對(duì)我來講不是簡(jiǎn)單的當(dāng)膠水輔助了,通信框架、UI、數(shù)據(jù)庫都采用python,只有那些個(gè)點(diǎn)上用了高效點(diǎn)的c++,例如:ffmpeg解碼、文件存儲(chǔ)等等
            演示視頻: 









            系統(tǒng)運(yùn)行demo:






            posted @ 2012-03-27 19:23 放屁阿狗 閱讀(1902) | 評(píng)論 (2)編輯 收藏

                 摘要: 項(xiàng)目需求開發(fā)網(wǎng)絡(luò)流媒體播放器,整個(gè)項(xiàng)目就一人開發(fā),整個(gè)系統(tǒng)平臺(tái),包括調(diào)度,存儲(chǔ)集群服務(wù),影像同步導(dǎo)入、系統(tǒng)api接口、視頻查詢和播放客戶端,一切有了python就變得簡(jiǎn)單。一個(gè)人在戰(zhàn)斗,還是蠻有勁道。pyqt開發(fā)播放界面,python用于網(wǎng)絡(luò)通信和粘合邏輯,ffmpeg用于解碼,google一圈試用了幾個(gè)pyffmpeg的庫,非常不理想,干脆自己做:采用ctypes訪問dll,測(cè)試解碼并將視頻幀轉(zhuǎn)...  閱讀全文
            posted @ 2012-03-15 02:01 放屁阿狗 閱讀(1550) | 評(píng)論 (0)編輯 收藏

            僅列出標(biāo)題
            共25頁: 1 2 3 4 5 6 7 8 9 Last 
            久久久久久久亚洲精品| 国产精品视频久久| 少妇被又大又粗又爽毛片久久黑人 | 久久91精品国产91久久户| 九九久久99综合一区二区| 久久国产成人午夜AV影院| 一本久久a久久精品综合香蕉| 久久人人爽人人爽人人av东京热| 三级片免费观看久久| 国产亚洲精品自在久久| 久久精品99无色码中文字幕| 久久精品国产欧美日韩99热| 精品久久久久久久久中文字幕| 久久丫忘忧草产品| 国产精品内射久久久久欢欢| 中文字幕日本人妻久久久免费| 精品久久久久久无码人妻热| 亚洲国产精品成人久久| 久久99精品久久久久久不卡| 久久99国产精品99久久 | 香港aa三级久久三级老师2021国产三级精品三级在 | 久久精品卫校国产小美女| 波多野结衣中文字幕久久| 99精品国产综合久久久久五月天| 91久久精品无码一区二区毛片| 久久无码专区国产精品发布| 久久精品嫩草影院| 久久久久久亚洲精品成人| 日韩AV毛片精品久久久| 久久久精品久久久久久| 99久久综合狠狠综合久久| 久久久久久狠狠丁香| 久久久精品2019免费观看| 久久人人爽爽爽人久久久| 久久精品毛片免费观看| 少妇久久久久久被弄高潮| 少妇人妻88久久中文字幕| 国色天香久久久久久久小说| 国内精品久久人妻互换| 久久国产精品无码一区二区三区| 久久久久久久波多野结衣高潮 |