欧美日韩国产成人在线免费_中文字幕一二三四区_91高清免费观看_色妞一区二区三区_无码人妻久久一区二区三区不卡_国产精品久久激情_蜜臀久久99精品久久久画质超高清_91在线播放国产_国产精品国产精品国产专区_欧美精品一区二区三区国产精品_av网站手机在线观看_视频这里只有精品

歡迎光臨~深圳市山星盛電子科技有限公司-稱重產(chǎn)品官方展示網(wǎng)站
服務(wù)熱線 全國服務(wù)熱線:

0755-2979 1990

公司新聞

微信WEIXIN小程序中連接藍牙電子秤(電子稱品牌:Mount star山星盛),直接通過藍牙獲取當(dāng)前稱重的重量數(shù)據(jù),然后顯示在界面上

微信小程序低功率電子秤及稱重產(chǎn)品的程序開發(fā),電子磅秤的非標(biāo)定制使用方法和技術(shù)指導(dǎo),云服務(wù)器代碼說明,APP/APK/小程序簡單功能開發(fā)訂做,直接WIFI及4G/5G移動數(shù)據(jù)直接上傳。

深圳市山星盛電子科技有限公司隨著物聯(lián)網(wǎng)的興起,催生了越來越多的軟件與設(shè)備的對接開發(fā)需求。隨著用戶從APP到微信公眾號再到微信小程序的遷移,小程序憑借開發(fā)簡單,應(yīng)用方便的優(yōu)勢成為了物聯(lián)網(wǎng)開發(fā)軟件的首選。

2018年初至今,越來越多的客戶咨詢我們進行軟件與設(shè)備對接的開發(fā)。客戶來源于各行各業(yè),需求也不盡相同。下面我們將為客戶分析部分微信小程序與設(shè)備開發(fā)案例,希望給后續(xù)有開發(fā)需求的客戶帶來一定的幫助。


1、微信小程序與電子秤的對接

如今電子秤的應(yīng)用越來越普及,用戶在稱重時可以快速讀取電子秤的數(shù)據(jù),應(yīng)用領(lǐng)域有礦業(yè),牛奶,機械加工等。但是高頻地讀取和記錄數(shù)據(jù)容易形成造成時間的浪費,同時容易產(chǎn)生錯誤,因此不少用戶尋求更加高效的解決方案。解決方案之一就是微信小程序與電子秤的對接開發(fā),開發(fā)者基于有數(shù)據(jù)接口的電子秤開發(fā)微信小程序的對接應(yīng)用。不但能通過藍牙或網(wǎng)絡(luò)的方式獲取數(shù)據(jù),還能通過微信小程序后臺輕松管理數(shù)據(jù),一鍵發(fā)送數(shù)據(jù),大大提高了電子秤作業(yè)的效率和數(shù)據(jù)正確率。

2、相關(guān)小程序代碼說明

微信小程序連接藍牙電子秤

前情:在微信小程序中連接藍牙電子計重桌秤(電子秤品牌:Mount star山星盛),直接通過藍牙獲取當(dāng)前稱重的重量數(shù)據(jù),然后顯示在界面上。

###??注意 * 此次,只涉及讀取數(shù)據(jù),沒有寫入數(shù)據(jù),具體 API 查看小程序官方文檔 * 確保手機藍牙已經(jīng)打開,并且可以搜索到該電子秤的藍牙設(shè)備,android 可以搜到,ios 搜不到 --- 但是沒有關(guān)系,小程序里 getBluetoothDevices 可以成功就可以了 * 微信小程序中搜索到的藍牙設(shè)備很多,deviceId 在 android 上顯示為藍牙設(shè)備主服務(wù)的 mac 地址,在 ios 上顯示為藍牙設(shè)備主服務(wù)的 uuid * 最終得到的結(jié)果是 ArrayBuffer 型數(shù)據(jù),需要先轉(zhuǎn)為16進制字符串,再轉(zhuǎn)為10進制數(shù)據(jù) --- 小程序官方文檔上這樣提示,實際并不可行

(1)初始化

初始化藍牙模塊 --- wx.openBluetoothAdapter

// 定義數(shù)據(jù)data: {    devices: [],    // 搜索到的藍牙設(shè)備 deviceId 數(shù)組
    deviceId: '',    // 目標(biāo)藍牙設(shè)備 deviceId
    services: []    //  設(shè)備服務(wù)列表 serviceId 數(shù)組
    serviceId: '',    characteristics: []   // 特征值列表
    characteristicId: ''  // 選擇某一個特征值 
    value: ''   // 16 進制數(shù)據(jù)值}// 藍牙 API 調(diào)用步驟openBluetoothAdapter() {
    wx.openBluetoothAdapter({   // (1)
        success: res => {            console.log('openBluetoothAdapter初始化藍牙模塊成功:', res)             this.startBluetoothDevicesDiscovery()  // (2) 開始搜索
        },        fail: err => {            console.log('openBluetoothAdapter初始化藍牙模塊失敗:', err)            if (err.errCode === 10001) {  // 當(dāng)前藍牙適配器不可用
                wx.onBluetoothAdapterStateChange( res => {                    if (res.available) {                        this.startBluetoothDevicesDiscovery()
                    }
              })
           }            /* 
            wx.onBluetoothAdapterStateChange({
                success: res => {
                  console.log('onBlueToothAdapterStateChange success 監(jiān)聽藍牙適配器變化: ', res);
                  this.startBluetoothDevicesDiscovery();
                },
                fail: err => {
                     console.log('onBlueToothAdapterStateChange fail: ', err)
                 }
            })
            */
        }
    })
}


###(2)搜索藍牙設(shè)備 ####搜尋附近的藍牙外圍設(shè)備 --- wx.startBluetoothDevicesDiscovery * 入?yún)?services 作用要搜索的藍牙設(shè)備主 service 的 uuid 列表,某些藍牙設(shè)備會廣播自己的主 service 的 uuid,如果設(shè)置此參數(shù),則只搜索廣播包括對應(yīng) uuid 的主服務(wù)的藍牙設(shè)備,可以通過該參數(shù)過濾掉周邊不需要處理的其他藍牙設(shè)備 * 入?yún)?allowDuplicatesKey 作用是否允許重復(fù)上報同一設(shè)備,如果允許重復(fù)上報,則 wx.onBlueToothDeviceFound 方法會多次上報同一設(shè)備,但是 RSSI 值會有不同,默認為 false eg: services: ['FEE7'] 主服務(wù)的 UUID 是 FEE7,傳入這個參數(shù),只搜索主服務(wù) UUID 為 FEE7 的設(shè)備,該設(shè)備是微信硬件平臺的藍牙智能燈

?? 此操作比較耗費系統(tǒng)資源,需要在搜索并連接到設(shè)備后調(diào)用 wx.stopBluetoothDevicesDiscovery 方法停止搜索

startBluetoothDevicesDiscovery() {
    wx.startBluetoothDevicesDiscovery({        success: res => {            console.log('startBluetoothDevicesDiscovery開始搜索外圍設(shè)備成功:', res)            this.getBluetoothDevices()  // (3) 獲取藍牙列表
         },        fail: err => {            console.log('startBluetoothDevicesDiscovery搜索外圍設(shè)備失敗:', err)
        }
    })
}


###(3)獲取藍牙設(shè)備 ####獲取在藍牙模塊生效期間所有已發(fā)現(xiàn)的藍牙設(shè)備,包括已經(jīng)連接成功的藍牙設(shè)備 --- wx.getBluetoothDevices ``` getBluetoothDevices() { wx.getBluetoothDevices({ success: res => { console.log('getBluetoothDevices獲取藍牙設(shè)備成功:', res) this.setData({ devices: res. devices || [] // uuid 對應(yīng)的的已連接設(shè)備列表 }) this.createBLEConnection(); // (4) 與目標(biāo)設(shè)備建立連接 }, fail: err => { console.log('getBluetoothDevices獲取藍牙設(shè)備失敗:', err) } }) } ``` ####這里還可以用 wx.onBluetoothDeviceFound(),但是相較于 wx.getBluetoothDevices(),這個只會監(jiān)聽尋找新設(shè)備,因而在一次編譯中,不方便同一個藍牙設(shè)備的復(fù)用 ``` // 監(jiān)聽尋找新設(shè)備 onBluetoothDeviceFound() { let that = this; wx.onBluetoothDeviceFound(res => { console.log('onBluetoothDeviceFound success 監(jiān)聽尋找新設(shè)備: ', res); (res.devices || []).forEach(item => { if(item.name == 'KunHong') { that.setData({ deviceId: item.deviceId || '' }) that.createBLEConnection(that.data.deviceId); } }) }) }, ```
###(4)建立連接 ####與目標(biāo)藍牙設(shè)備建立連接,需要是低功耗藍牙設(shè)備 --- wx.createBLEConnection ?? 如果微信小程序此前搜索過某個藍牙設(shè)備,并成功建立連接,可直接傳入之前搜索獲取的 deviceId 直接嘗試連接該設(shè)備,不用重新搜索 ``` createBLEConnection() { // 如果是第一次建立連接,可以通過名稱匹配,獲取相應(yīng)設(shè)備的 deviceId let devices = this.data.devices; devices.forEach(item => { if(item.name == 'kunHong') { this.setData({ deviceId: item.deviceId }) } }) // 建立連接 wx.createBLEConnection({ deviceId: this.data.deviceId, success: res => { console.log('createBLEConnection與目標(biāo)藍牙連接成功:', res) this.getBLEDeviceServices() // (5)獲取服務(wù) }, fail: err => { console.log('createBLEConnection與目標(biāo)藍牙連接失敗:', err) } }) } ```
###(5)獲取藍牙設(shè)備服務(wù) ####獲取藍牙設(shè)備所有主服務(wù)的 uuid --- wx.getBLEDeviceServices * 入?yún)?deviceId 為 wx.getBluetoothDevices 中獲取的目標(biāo)藍牙設(shè)備的 deviceId

??開發(fā)過程中,主服務(wù) serviceId 和 主服務(wù)的特征值 characteristics 都是選取的實際操作過程中,得到的類似于該目標(biāo)藍牙設(shè)備的 id,但是小程序官方文檔的 demo,遍歷了所有的列表(serviceId 和 characteristics),需要區(qū)分一下

getBLEDeviceServices() {
    wx.getBLEDeviceServices({        deviceId: this.data.deviceId,        success: res => {            console.log('getBLEDeviceServices獲取藍牙設(shè)備服務(wù)', res)            // getBluetoothDevices 獲取的有 deviceId 和 advertisServiceUUIDs,可以在這里獲取的服務(wù)列表中選擇一個一樣的作為后續(xù) API 請求的服務(wù)id,這個 id 需要滿足是否可讀
            this.setData({                 services: res.services,                 serviceId: res.services[0].uuid    // 假設(shè)是第一個
            })            this.getBLEDeviceCharacteristics()    // (6) 獲取特征值

            // 官方 demo
            for(var i = 0; i < res.services.length; i++) {                // 該服務(wù)是否為主服務(wù)
                if(res.services[i].isPrimary) {                    this.getBLEDeviceCharacteristics(res.services[i].uuid)
                }
            }
        },        fail: err => {            console.log('getBLEDeviceServices獲取藍牙設(shè)備服務(wù)失敗:', err)
        }
    })
}


###(6)獲取特征值 ####獲取藍牙設(shè)備某個服務(wù)中所有特征值 --- wx.getBLEDeviceCharacteristics * 入?yún)?deviceId 為 wx.getBluetoothDevices 中獲取的目標(biāo)藍牙設(shè)備的 deviceId * 入?yún)?serviceId 為藍牙服務(wù) uuid ,通過 wx.getBLEDeviceServices 獲取 ``` getBLEDeviceCharacteristics(serviceId) { wx.getBLEDeviceCharacteristics({ deviceId: this.data.deviceId, serviceId: this.data.serviceId, success: res => { console.log('getBLEDeviceCharacteristics獲取藍牙服務(wù)特征值成功:', res) this.setData({ characteristics: res. characteristics, characteristics: res. characteristics[0].uuid }) (res.characteristics || []).forEach(item => { if(item.properties.read) { wx.readBLECharacteristicValue({ deviceId: this.data.deviceId, serviceId: serviceid, characteristicId: res.characteristicId[i].uuid }) } if(item.properties.notify || item.properties.indicate) { // 開啟通知 wx.notifyBLECharacteristicValueChange({ state: true, deviceId, serviceId, characteristicId: item.uuid, success(res) { console.log('notifyBLECharacteristicValueChange success state: ', res.errMsg) that.setData({ notifyFlag: true }) } }) } }) }, fail: err => { console.log('getBLEDeviceCharacteristics獲取藍牙服務(wù)特征值失敗:', err) } }) this.onBLECharacteristicValueChange() // (8)監(jiān)聽特征值變化 } ```
###(7)啟用 notify 功能 ####啟用低功耗藍牙特征值變化時的 notify 功能,訂閱特征值 ??必須設(shè)備的特征值支持 notify 或者 indicate 才可以成功啟用 ``` notifyBLECharacteristicValueChange() { wx.notifyBLECharacteristicValueChange({ deviceId: this.data.deviceId, serviceId: this.data.serviceId, characteristicId: this.data. characteristicId, state: true // 是否啟用 notify (四個字段全部必填) }) } ```
###(8)監(jiān)聽特征值變化 ####監(jiān)聽低功耗藍牙設(shè)備特征值的變化事件 --- wx.onBLECharacteristicValueChange ??必須先啟用 notifyBLECharacteristicValueChange 接口才能接收到設(shè)備推送的 notification(通知) ``` // 先監(jiān)聽一下,保證第一時間獲取數(shù)據(jù) onBLECharacteristicValueChange() { wx.onBLECharacteristicValueChange( characteristic => { console.log('onBLECharacteristicValueChange從目標(biāo)藍牙設(shè)備監(jiān)聽到的數(shù)據(jù)值:', characteristic) this.setData({ value: this.ab2hex(characteristic.value) // (10) 轉(zhuǎn)為 16 進制 })

    //     獲取最終結(jié)果 監(jiān)聽值是否發(fā)生變化,變化時獲取最新值 避免一直監(jiān)聽,數(shù)據(jù)改變量較大
    let result = (this.ab2Str(characteristic.value) || '').split(' ').reverse()[1];    if(this.data.weight == result) {       return;
    } else {        this.setData({
          weight: result,
        })
      }
})

}

<br>###(9)讀取數(shù)據(jù)####讀取低功耗藍牙設(shè)備的特征值的二進制數(shù)據(jù)值 --- wx.readBLECharacteristicValue??必須目標(biāo)藍牙設(shè)備的特征值支持 read 才可以成功調(diào)用,并且單獨使用 readBLECharacteristicValue 并不能獲取到真正的特征值,只能返回獲取特征值的狀態(tài),即是否成功獲取到值,真正的值需要使用 wx.onBLECharacteristicValueChange() 執(zhí)行回調(diào)才可以在 wx.onBLECharacteristicValueChange() 這個 API 中獲得讀取到的特征值

readBLECharacteristicValue() {
wx.readBLECharacteristicValue({
deviceId: this.data.deviceId,
serviceId: this.data.serviceId,
characteristicId: this.data.charecteristicId,
success: res => {
console.log('readBLECharacteristicValue讀取特征值成功:', res)
},
fail: err => {
console.log('readBLECharacteristicValue讀取特征值失敗:', err)
}
})
}

<br>###(10)轉(zhuǎn)為 16 進制####官方文檔中介紹了 ArrayBuffer 轉(zhuǎn)為 16 進制的方法

// ArrayBuffer轉(zhuǎn)16進制字符串示例
ab2hex(buffer) {
let hexArr = Array.prototype.map.call(
new Uint8Array(buffer),
function(bit) {
return ('00' + bit.toString(16)).slice(-2)
}
)
return hexArr.join('');
}

<br>###(11)值轉(zhuǎn)換####官方文檔介紹的方法似乎有點不適用哎,試下這個

ab2Str(arrayBuffer){
let unit8Arr = new Uint8Array(arrayBuffer);
let encodedString = String.fromCharCode.apply(null, unit8Arr);
return encodedString;
}


微信小程序藍牙模塊

藍牙部分知識

  • 關(guān)于Service:

每個設(shè)備包含有多個Service,每個Service對應(yīng)一個uuid

  • 關(guān)于Characteristic

每個Service包含多個Characteristic,每個Characteristic對應(yīng)一個uuid

  • 如何得到數(shù)據(jù)

我們想要的數(shù)據(jù)是包含在每一個Characteristic

 

微信小程序目前提供的藍牙API:

1.操作藍牙適配器的4個API  

復(fù)制代碼

wx.openBluetoothAdapter //初始化藍牙適配器wx.closeBluetoothAdapter //關(guān)閉藍牙模塊wx.getBluetoothAdapterState //獲取本機藍牙適配器狀態(tài)wx.onBluetoothAdapterStateChange //監(jiān)聽藍牙適配器狀態(tài)變化事件

復(fù)制代碼

 

2.連接前使用的共有4個,分別是

wx.startBluetoothDevicesDiscovery //開始搜尋附近的藍牙外圍設(shè)備wx.stopBluetoothDevicesDiscovery //停止搜尋附近的藍牙外圍設(shè)備wx.getBluetoothDevices //獲取所有已發(fā)現(xiàn)的藍牙設(shè)備wx.onBluetoothDeviceFound //監(jiān)聽尋找到新設(shè)備的事件

3.連接和斷開時使用的共有2個,分別是

wx.createBLEConnection //連接低功耗藍牙設(shè)備wx.closeBLEConnection //斷開與低功耗藍牙設(shè)備的連接

4.連接成功后使用的共有8個,分別是

復(fù)制代碼

wx.getConnectedBluetoothDevices //根據(jù) uuid 獲取處于已連接狀態(tài)的設(shè)備wx.getBLEDeviceServices //獲取藍牙設(shè)備所有 service(服務(wù))wx.getBLEDeviceCharacteristics //獲取藍牙設(shè)備所有 characteristic(特征值)wx.readBLECharacteristicValue //讀取低功耗藍牙設(shè)備的特征值的二進制數(shù)據(jù)值wx.writeBLECharacteristicValue //向低功耗藍牙設(shè)備特征值中寫入二進制數(shù)據(jù)wx.notifyBLECharacteristicValueChange //啟用低功耗藍牙設(shè)備特征值變化時的 notify 功能wx.onBLECharacteristicValueChange //監(jiān)聽低功耗藍牙設(shè)備的特征值變化wx.onBLEConnectionStateChange //監(jiān)聽低功耗藍牙連接的錯誤事件


詳細參數(shù)請見小程序開發(fā)文檔

開發(fā)指南

小程序提供了一個簡單、高效的應(yīng)用開發(fā)框架和豐富的組件及API,幫助開發(fā)者在微信中開發(fā)具有原生 APP 體驗的服務(wù)。

本章分主題的介紹了小程序的開發(fā)語言、框架、能力、調(diào)試等內(nèi)容,幫助開發(fā)者快速全面的了解小程序開發(fā)的方方面面。

想要更具體了解關(guān)于框架、組件、API的詳細內(nèi)容,請參考對應(yīng)的參考文檔:


小程序電子秤,微信電子秤,微信小程序稱重,WEIXIN電子秤,MOUNT STAR電子秤,小程序藍牙電子秤,數(shù)據(jù)通訊電子秤,電子磅秤低功率藍牙,Bluetooth scale

用手機掃描二維碼關(guān)閉
二維碼
国产男女无套免费网站| 亚洲精品国偷自产在线99热| 中日韩在线观看视频| 久久久九九九热| 日韩黄色影视| 插插插亚洲综合网| 欧美日本一区二区三区四区| 亚洲欧美日韩精品久久久久| 成人午夜精品在线| 国精产品乱码一区一区三区四区| 国产一级在线免费观看| 亚洲熟妇无码av| 国产三级精品三级在线| 波多野结衣与黑人| 色狠狠久久av五月综合|| 91精品视频在线播放| 久久久久久久久久久av| 国产午夜精品免费一区二区三区 | 蜜臀av性久久久久蜜臀aⅴ四虎| 中日韩av在线| 日韩不卡视频在线| 久久久久久久久久久久久久久久久| 95视频在线观看| 久草福利在线观看| 人妻激情偷乱视频一区二区三区| av观看免费在线| 阿v天堂2017| 久久av高潮av| 精品少妇人欧美激情在线观看| 日本亚洲欧洲精品| 精品乱子伦一区二区三区| 91久色国产| 99中文字幕| 国产精品99久久久久久久| 91日韩在线视频| 成人动漫网站在线观看| 国产精品久久久久久久久久三级| 久久69精品久久久久久久电影好| 久久久精品日本| 日日噜噜噜夜夜爽亚洲精品| 日韩精品中文字幕在线| 亚洲精品国产精品国产自| 日韩激情av在线播放| 亚洲人成啪啪网站| 久久国产精品久久久| 欧美日韩成人网| 日本a级片电影一区二区| 国产不卡av在线| 国产日韩换脸av一区在线观看| 精品国产乱码一区二区三 | 亚欧色一区w666天堂| 26uuu欧美日本| 久久久噜噜噜久噜久久综合| 国产精品国产三级国产aⅴ中文| 中文文精品字幕一区二区| 最新不卡av在线| 亚洲综合在线视频| 欧美午夜精品在线| 欧美日韩视频在线一区二区| 日韩精品一区二区三区老鸭窝| 亚洲精品理论电影| 久久精品在线播放| 国产精品老牛影院在线观看| 国产成人av一区二区三区| 欧美lavv| 我的公把我弄高潮了视频| 中文字幕av不卡在线| 国产乱码一区二区三区四区| 熟女少妇一区二区三区| 日本特黄特色aaa大片免费| 中文字幕理论片| 日韩成人伦理电影在线观看| 91小视频在线| 午夜精品久久久久久久99樱桃 | 日韩欧美中文视频| 国产精品毛片一区二区| 日产亚洲一区二区三区| 色香蕉在线视频| 成人免费视频视频| 亚洲成人在线网站| 亚洲精品自在久久| 青草热久免费精品视频| 欧美日韩在线精品| 成人免费视频久久| 在线视频这里只有精品| 91亚洲国产成人精品一区| 久久精品国产999大香线蕉| 久久奇米777| 7777精品伊人久久久大香线蕉最新版| 自拍亚洲一区欧美另类| 成人信息集中地欧美| 9l视频自拍9l视频自拍| 稀缺呦国内精品呦| 中文字幕免费视频观看| 国产一区二区调教| 亚洲va国产天堂va久久en| 亚洲女人天堂成人av在线| 国产免费亚洲高清| 黄色一级片国产| 久久国产精品影院| 99视频国产精品免费观看a| youjizz国产精品| 欧美午夜免费电影| 午夜精品一区二区三区在线视频| 精品国产乱码一区二区三区四区| 日本999视频| 久久午夜无码鲁丝片午夜精品| 男人的天堂久久精品| 午夜精品一区二区三区电影天堂 | 男人添女人下部高潮视频在观看| 三上悠亚影音先锋| 精品国产伦一区二区三区| 国产成人av在线播放| 夜夜精品视频一区二区| 尤物视频在线观看国产| 日韩在线观看a| 久久久久九九九| 亚洲人成电影网站色mp4| 天天干天天干天天| 亚洲成人福利视频| 亚洲国产精品综合| 国产精品91一区| 亚洲人精选亚洲人成在线| 一区二区三区**美女毛片| 国产69精品久久久久777| www日本高清| 加勒比在线一区| 国产精品亚洲自拍| 一本一道久久a久久精品逆3p| 岛国av在线不卡| 一区二区三区在线视频免费观看| 成人一区二区三区中文字幕| 欧美一区二区黄片| 国产一级特黄aaa大片| 51妺嘿嘿午夜福利| 日本一区二区网站| 91成人免费观看网站| 一区二区福利视频| 欧美成人剧情片在线观看| hs视频在线观看| 亚洲AV无码成人精品区东京热| 37p粉嫩大胆色噜噜噜| 色欲无码人妻久久精品| 欧美视频在线观看网站| 妞干网这里只有精品| 国产传媒欧美日韩| 成人精品一二区| 久久亚洲国产精品日日av夜夜| 91精品久久久久久久久| 亚洲一区中文字幕| 国产欧美日韩伦理| 欧美精品在线一区| 伊人婷婷久久| 人妻激情另类乱人伦人妻| 欧美亚洲色图视频| 欧洲熟妇精品视频| www.超碰97.com| 精品一区二区三区四区五区六区| 91精品小视频| 亚洲天堂黄色片| 亚洲第一区av| 国产女主播喷水视频在线观看 | ts人妖另类在线| 亚洲国产天堂久久综合网| 在线观看日本黄色| 在线观看免费观看在线| 亚洲一区二区在线视频| 国产精品第8页| 国产精品久久无码| 久久久久久久久伊人| 久久免费成人精品视频| www.四虎精品| bt欧美亚洲午夜电影天堂| 米奇精品一区二区三区在线观看| 天天爽天天爽夜夜爽| 日韩精品xxx| 美腿丝袜亚洲三区| www亚洲精品| 午夜福利123| 国产91丝袜在线18| 97精品欧美一区二区三区| 性活交片大全免费看| 99精品欧美一区二区三区综合在线| 欧美国产日韩在线| 波多野结衣办公室33分钟| 国产精品日韩精品欧美在线| 91在线视频精品| 久久国产黄色片| 欧美日韩亚洲国产综合| 天天爱天天做天天操| 国产激情视频在线播放 | 麻豆免费精品视频| 波多野结衣不卡| 日韩精品手机在线| 免费不卡在线观看av| 成人精品视频在线播放| 亚洲亚洲人成综合网络| 亚洲第一色中文字幕| 欧美啪啪免费视频| 国产中文字幕精品| 2020欧美日韩在线视频| 久久精品在线观看视频| 日本高清视频一区二区| 老子影院午夜伦不卡大全| 国产一区视频在线看| 国产精品视频xxx| 亚洲不卡在线视频| 日韩高清欧美高清| 国产高清成人久久| 午夜久久久久久久久久一区二区| 视频一区二区三| 久久青草久久| 国产精品美女免费| 国产一区二区三区成人| 日韩有码在线观看| 免费看的黄色录像| 欧美日韩美少妇| 中文字幕色网站| 亚洲午夜免费视频| 91国视频在线| 久久精品免费在线观看| 日本一区二区视频| 九九精品视频在线看| 国产精品成人播放| 国产精品久久久久久久免费| 久久精品国产2020观看福利| 黑人狂躁日本娇小| 精品伦理精品一区| 成人乱码一区二区三区av| 欧美吞精做爰啪啪高潮| 美女被艹视频网站| 色婷婷亚洲精品| 午夜激情视频网| 色婷婷av一区二区三区大白胸| 狠狠躁狠狠躁视频专区| 亚洲免费资源在线播放| 日本xxx免费| 91免费观看在线| 黄色高清视频网站| 久久久久久免费毛片精品| 日韩精品视频在线观看视频| 国产精品久久久爽爽爽麻豆色哟哟 | 国产在线观看99| 国产一区二区成人| 久久精品视频8| 一区二区三区不卡在线观看 | 欧美三级小视频| 97超碰中文字幕| 欧美大片第1页| 中文字幕av片| 538国产精品一区二区在线 | 亚洲综合日韩在线| 日韩精品一区第一页| 5566av亚洲| 老司机精品福利视频| 国产在线观看一区| 99久久精品国产麻豆演员表| 成人精品视频在线播放| 洋洋成人永久网站入口| 午夜影院免费观看视频| 欧美精品 国产精品| 久久免费手机视频| 在线亚洲国产精品网| 国产一卡二卡三卡| 国产欧美精品va在线观看| 美国毛片一区二区三区| 涩涩涩999| 中文字幕制服丝袜一区二区三区 | 成人免费一区二区三区视频| 欧美日韩国产成人在线观看| 手机在线看福利| 91精品国产乱码久久蜜臀| 国产亚洲精品成人a| 亚洲成人激情在线| 日韩精品一区二区三| 欧美中文在线字幕| 久草在线在线精品观看| 日日噜噜夜夜狠狠久久丁香五月| 亚洲免费在线观看| 国产在线不卡av| 国产一区二区日韩| 精品人妻无码一区二区三区蜜桃一| 岛国视频一区| 国产精品视频第一区| 9191在线视频| 伊人青青综合网站| av网站在线免费看| 另类视频在线观看+1080p| 日韩欧美成人激情| 久久av综合网| 欧美精品一卡两卡| 制服.丝袜.亚洲.中文.综合懂色| 国产精品中文久久久久久久| a级高清视频欧美日韩| 天堂中文av在线| 尤物99国产成人精品视频| 老牛影视av牛牛影视av| 一区二区三区我不卡| 日韩欧美在线视频免费观看| 日韩精品一区二区亚洲av性色| 国产精品久久久久久亚洲影视| 26uuu亚洲综合色欧美| 国产成人精品一区二区三区在线观看| 日韩在线中文视频| 精品在线播放免费| 午夜福利123| 欧美放荡办公室videos4k| 国产精品一区二区三区99| 在线免费av播放| 久久久精品国产| 国产成人亚洲综合a∨婷婷| 捷克做爰xxxⅹ性视频| 欧美成人精品影院| av成人免费在线| av网站有哪些| 国产日韩在线免费| 一区二区三区精品在线| 久久久国产精华液| 国产精品亚洲一区| 欧美在线制服丝袜| 国产三级小视频| 116极品美女午夜一级| 国产一区二区三区直播精品电影| 男男视频亚洲欧美| 涩多多在线观看| 91精品国产乱码久久久久久久久 | 天天干天天色综合| 熟妇熟女乱妇乱女网站| 亚洲国产精品久久91精品| 日韩av网站免费在线| 18深夜在线观看免费视频| 91av在线免费观看视频| 久久久高清一区二区三区| 欧美色图17p| 欧美日韩综合另类| 精品粉嫩超白一线天av| 日韩制服丝袜av| 亚洲美女在线播放| 国产专区精品视频| 色婷婷综合久色| 久久九九99| 国产精品久久久久久亚洲色 | y97精品国产97久久久久久| 成人av在线资源| www.av视频| 成人黄色片免费| 久久亚洲国产精品| 国产精品福利一区| www.久久久久久久| www国产黄色| 欧美最猛性xxxxx免费| 欧美午夜www高清视频| 后入内射欧美99二区视频| 下面一进一出好爽视频| 99在线国产| 亚洲欧美国产一区二区三区| 91啪亚洲精品| 中国一级黄色录像| 亚洲日韩中文字幕| www.欧美日韩国产在线| 国产乱淫片视频| 日产精品一线二线三线芒果| 亚洲777理论| 国产福利一区二区| 男人添女人下面免费视频| 国产精品爱啪在线线免费观看| 色综合天天综合狠狠| 久草热8精品视频在线观看| 亚洲综合久久网| 中文字幕第17页| 欧美一区二区三区四区在线观看地址 | 91小视频免费观看| 免费无码国产精品| 亚洲高清在线不卡| 超碰10000| 国产福利久久精品| yw.139尤物在线精品视频| 精品1区2区3区| 国产精品国产三级国产aⅴ无密码| 国产99久久久久久免费看| 精产国品一区二区三区| 国产资源第一页| 国产欧美在线一区二区| 国产精品一区二区在线观看| 国产精品久久久久久久久久久新郎| 在线日韩日本国产亚洲| 精品国产乱码久久久久久浪潮 | 蜜桃免费网站一区二区三区| 欧美日韩怡红院| 日韩欧美一区二区在线观看| 欧美自拍视频在线观看| 国产私拍一区| 老司机深夜福利网站| 亚洲精品免费在线视频| 色婷婷综合五月| 91丨九色丨蝌蚪丨老版| 国产女人18毛片水真多| 国产精品丝袜一区二区| 无码内射中文字幕岛国片| 久久精品国产综合精品| 久久久久久久久久久成人| 蜜桃精品视频在线| 在线观看日本视频| 999这里只有精品| 日韩欧美a级片| 蜜桃av.com| 国产精品视频一区二区三| 日韩精品123区| 美女被到爽高潮视频| 内射毛片内射国产夫妻|