手机av在线网_欧美日韩中文国产_亚洲啪av永久无码精品放毛片_国产日韩欧美日韩大片_亚洲 欧美 国产 另类_欧美成人性战久久_国产又粗又猛大又黄又爽_欧美日韩一区三区_自拍偷拍第9页_日韩一区二区电影_扒开伸进免费视频_中文字幕亚洲一区

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

0755-2979 1990

公司新聞

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

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

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

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


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

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

2、相關小程序代碼說明

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

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

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

(1)初始化

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

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


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

?? 此操作比較耗費系統資源,需要在搜索并連接到設備后調用 wx.stopBluetoothDevicesDiscovery 方法停止搜索

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


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

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

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

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


###(6)獲取特征值 ####獲取藍牙設備某個服務中所有特征值 --- wx.getBLEDeviceCharacteristics * 入參 deviceId 為 wx.getBluetoothDevices 中獲取的目標藍牙設備的 deviceId * 入參 serviceId 為藍牙服務 uuid ,通過 wx.getBLEDeviceServices 獲取 ``` getBLEDeviceCharacteristics(serviceId) { wx.getBLEDeviceCharacteristics({ deviceId: this.data.deviceId, serviceId: this.data.serviceId, success: res => { console.log('getBLEDeviceCharacteristics獲取藍牙服務特征值成功:', 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獲取藍牙服務特征值失敗:', err) } }) this.onBLECharacteristicValueChange() // (8)監聽特征值變化 } ```
###(7)啟用 notify 功能 ####啟用低功耗藍牙特征值變化時的 notify 功能,訂閱特征值 ??必須設備的特征值支持 notify 或者 indicate 才可以成功啟用 ``` notifyBLECharacteristicValueChange() { wx.notifyBLECharacteristicValueChange({ deviceId: this.data.deviceId, serviceId: this.data.serviceId, characteristicId: this.data. characteristicId, state: true // 是否啟用 notify (四個字段全部必填) }) } ```
###(8)監聽特征值變化 ####監聽低功耗藍牙設備特征值的變化事件 --- wx.onBLECharacteristicValueChange ??必須先啟用 notifyBLECharacteristicValueChange 接口才能接收到設備推送的 notification(通知) ``` // 先監聽一下,保證第一時間獲取數據 onBLECharacteristicValueChange() { wx.onBLECharacteristicValueChange( characteristic => { console.log('onBLECharacteristicValueChange從目標藍牙設備監聽到的數據值:', characteristic) this.setData({ value: this.ab2hex(characteristic.value) // (10) 轉為 16 進制 })

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

}

<br>###(9)讀取數據####讀取低功耗藍牙設備的特征值的二進制數據值 --- wx.readBLECharacteristicValue??必須目標藍牙設備的特征值支持 read 才可以成功調用,并且單獨使用 readBLECharacteristicValue 并不能獲取到真正的特征值,只能返回獲取特征值的狀態,即是否成功獲取到值,真正的值需要使用 wx.onBLECharacteristicValueChange() 執行回調才可以在 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)轉為 16 進制####官方文檔中介紹了 ArrayBuffer 轉為 16 進制的方法

// ArrayBuffer轉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)值轉換####官方文檔介紹的方法似乎有點不適用哎,試下這個

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


微信小程序藍牙模塊

藍牙部分知識

  • 關于Service:

每個設備包含有多個Service,每個Service對應一個uuid

  • 關于Characteristic

每個Service包含多個Characteristic,每個Characteristic對應一個uuid

  • 如何得到數據

我們想要的數據是包含在每一個Characteristic

 

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

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

復制代碼

wx.openBluetoothAdapter //初始化藍牙適配器wx.closeBluetoothAdapter //關閉藍牙模塊wx.getBluetoothAdapterState //獲取本機藍牙適配器狀態wx.onBluetoothAdapterStateChange //監聽藍牙適配器狀態變化事件

復制代碼

 

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

wx.startBluetoothDevicesDiscovery //開始搜尋附近的藍牙外圍設備wx.stopBluetoothDevicesDiscovery //停止搜尋附近的藍牙外圍設備wx.getBluetoothDevices //獲取所有已發現的藍牙設備wx.onBluetoothDeviceFound //監聽尋找到新設備的事件

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

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

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

復制代碼

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


詳細參數請見小程序開發文檔

開發指南

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

本章分主題的介紹了小程序的開發語言、框架、能力、調試等內容,幫助開發者快速全面的了解小程序開發的方方面面。

想要更具體了解關于框架、組件、API的詳細內容,請參考對應的參考文檔:


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

用手機掃描二維碼關閉
二維碼
欧美成人在线免费| 欧美日韩亚洲综合在线| 精品久久久久香蕉网| 日韩欧美第二区在线观看| 亚洲影院在线播放| 激情成人在线视频| 潘金莲一级淫片aaaaa免费看| 国产精品suv一区二区| 粉嫩av一区二区三区免费野| 麻豆精品传媒视频| 在线观看av一区二区| www久久久久久久| 九九久久久久99精品| 人妻少妇精品无码专区久久| 亚洲不卡1区| 欧美伊人久久大香线蕉综合69 | 国产成人涩涩涩视频在线观看| 欧美一级特黄视频| 含羞草久久爱69一区| 亚洲成人久久影院| 精品无码久久久久久久| 91免费版网站入口| 亚洲男帅同性gay1069| 91九色蝌蚪porny| 久久中文久久字幕| 国产一区二区导航在线播放| 五月六月丁香婷婷| 这里只有精品视频在线观看| 丁香六月色婷婷| 亚洲综合日韩欧美| 欧美一级视频免费在线观看| www.久久精品| 99色精品视频| 欧美另类老女人| 久久久不卡网国产精品二区| 亚洲精品女人久久久| 日本精品久久久久影院| 六月丁香婷婷色狠狠久久| 一区二区三区四区免费视频| 日韩欧美一级在线播放| 色一情一乱一伦一区二区三区丨| av资源网一区| 欧美成欧美va| 青青青在线观看视频| 久久精品青青大伊人av| 中文字幕日韩av资源站| xxxx.国产| 99蜜桃臀久久久欧美精品网站| 欧美精品激情blacked18| 亚洲精品国产高清久久伦理二区| 亚洲 欧美 中文字幕| 99视频在线| 亚洲熟女综合色一区二区三区| 久久视频免费在线观看| 久久精品主播| 亚洲国产精品一区二区www在线| 日韩精品视频在线播放| 国产精品视频公开费视频| 国产911在线观看| 波多野结衣三级视频| 国产一级性生活| 蜜臀91精品一区二区三区| 亚洲电影一区二区三区| 久久精品国产一区二区三区| 欧美国产视频在线观看| 大桥未久恸哭の女教师| 国产成人毛毛毛片| 国产精品久久久久精k8| 中文字幕日韩综合av| 精品无人区一区二区三区竹菊 | 色妹子一区二区| 韩国19禁主播vip福利视频| 亚洲视频电影| 特级西西人体wwwww| 国产又粗又黄又爽| 亚洲精品自拍动漫在线| 久久久国产一区二区三区| 欧美日韩在线高清| 内射中出日韩无国产剧情| 国产91绿帽单男绿奴| 亚洲国产精品久久久男人的天堂| 久久久国产成人精品| 日韩免费在线观看av| 日韩黄色在线视频| 久久久久久久综合日本| 亚洲欧洲第一视频| 日韩国产欧美精品| 成年人一级黄色片| www.欧美.com| 在线观看免费高清视频97| 一区二区三区三区在线| 久久国产在线观看| 久久久国产综合精品女国产盗摄| 色综合亚洲精品激情狠狠| 资源网第一页久久久| 成人自拍小视频| 99麻豆久久久国产精品免费优播| 亚洲欧美一区二区三区四区| 最近免费观看高清韩国日本大全| 国产精品a成v人在线播放| 国产精品另类一区| 欧美国产日韩一区二区在线观看| 青青草视频在线免费播放| 久久久久久亚洲av无码专区| 亚洲一区二区视频在线观看| 成人黄色大片在线免费观看| 日韩精品电影一区二区| 成人午夜激情在线| 久久国产一区二区三区| 免费一级特黄毛片| 国产乱叫456在线| 日本道色综合久久| 久久99影院| 国产亚洲第一页| 美洲天堂一区二卡三卡四卡视频| 精品久久久久久久久久久久久久久| 日本精品一区二区三区高清 久久 日本精品一区二区三区不卡无字幕 | 久久久久久欧美精品se一二三四| 国产欧美日韩精品一区| 欧美在线性视频| aaaaaav| 99久久国产综合精品麻豆| 久久视频在线视频| 国产不卡的av| 国产一区二区在线视频| 伊人av综合网| 日韩一级片播放| 青椒成人免费视频| 亚洲视频自拍偷拍| 性欧美videossex精品| 天堂在线亚洲视频| 色七七影院综合| www激情五月| 午夜视频久久久| 亚洲免费在线播放视频| 欧美国产精品一二三| www久久精品| 亚洲欧美国产高清| 国产美女久久久| wwwwxxxx国产| 国产精品久久久久久久久晋中| 国产成人亚洲综合91| 捆绑裸体绳奴bdsm亚洲| 久久综合九色综合久久久精品综合| 韩日欧美一区二区| 国产精品亚洲无码| 国产精品乱码一区二区三区软件 | 午夜精品福利一区二区三区av| 97中文在线| 亚洲精品乱码久久久久久蜜桃图片| 99久久国产综合精品色伊| 国产成人拍精品视频午夜网站| 神马久久精品综合| 色8久久精品久久久久久蜜| 制服丝袜综合日韩欧美| 久久久久久婷| 欧美国产在线视频| 国产精品美女高潮无套| 亚洲成人久久影院| 欧美一级中文字幕| 男人的j进女人的j一区| 欧美一级视频在线观看| 久久久久久久蜜桃| 日韩精品在线一区| 爱爱爱爱免费视频| 国产日韩欧美一区二区三区乱码| 亚洲影院污污.| 国产91av在线播放| 亚洲欧美日韩天堂一区二区| 插我舔内射18免费视频| 亚洲成人动漫一区| 欧美性潮喷xxxxx免费视频看| 强制捆绑调教一区二区| 国产成人精品视频| 男女啊啊啊视频| 精品国产露脸精彩对白| 亚洲av无码久久精品色欲| 综合在线观看色| 特级黄色录像片| 国产一区二区三区在线观看精品| 国产精品免费一区二区三区都可以 | 日本中文字幕免费观看| 亚洲激情国产精品| 午夜视频在线观看国产| 日韩欧美国产骚| 婷婷免费在线观看| 国产精品国产精品国产专区不片| 日韩欧美视频一区二区| 国产又粗又猛又爽又黄视频| 色综合久久88| 亚洲免费在线视频观看| 一本大道久久加勒比香蕉| 免费看的黄色录像| 亚洲精品国产综合区久久久久久久 | 无码精品黑人一区二区三区 | 成年人在线免费看片| 欧美一级黄色录像| 亚洲综合自拍网| 欧美一级高清大全免费观看| avtt香蕉久久| 精品国产第一区二区三区观看体验| 国产精品一级黄片| 精品久久久久久最新网址| 深爱五月激情网| 亚洲精品一区二区三区四区高清| 伊人影院综合网| 日韩成人黄色av| 麻豆changesxxx国产| 色婷婷av一区二区三区久久| 成人午夜淫片100集| 欧美精品在线观看| 国产91av在线播放| 国产精彩精品视频| 少妇又色又爽又黄的视频| 波多野结衣久草一区| 韩国女主播成人在线观看| 日本黄网免费一区二区精品| 91免费国产视频网站| 日韩伦理在线免费观看| 一区二区三区产品免费精品久久75| 在线免费av播放| 欧美日韩一区成人| 成年人视频软件| 日韩中文字幕视频| 影音先锋黄色网址| 国产一区深夜福利| 国模娜娜一区二区三区| 男同互操gay射视频在线看| 亚洲男人天堂av网| 美女搡bbb又爽又猛又黄www| 亚洲精品一区二区三区香蕉| 日本一二三区视频| 国产精品久久久久久久久影视| 毛片av一区二区三区| 中文字幕制服丝袜在线| 一区二区三区不卡在线观看| 波多野结衣三级视频| 日韩精品电影网| 国产日韩久久久| 亚洲一区二区中文| 久久色成人在线| 亚洲午夜激情影院| 精品成人在线观看| 国产超碰人人爽人人做人人爱| 国产精品久久久久久超碰| 国产91丝袜在线播放九色| 日韩精品一区二区三区不卡 | 中文字幕在线视频日韩| 天海翼在线视频| 久久久久久com| 免费人成黄页网站在线一区二区| 日本xxxxx18| 欧美三级欧美一级| 五月婷婷中文字幕| 国产精品手机视频| 自拍偷拍国产亚洲| 国产91丝袜美女在线播放| 久久久最新网址| 黑人精品欧美一区二区蜜桃| 国产视频99| 亚洲免费观看高清完整版在线观看| 国产美女视频免费观看下载软件| 欧美大尺度激情区在线播放| 久久精品国产一区二区三区免费看| 成人免费观看cn| 亚洲第一天堂av| 亚洲黄色一级大片| 亚洲精品天堂成人片av在线播放| 欧美视频一区二区在线观看| 五月婷婷中文字幕| 日本一区二区精品视频| 婷婷综合久久一区二区三区| 免费一级a毛片夜夜看| 亚洲一区二区三区在线视频| 亚洲专区一二三| 久久久久久久久久一区二区三区| 波多野结衣成人在线| 亚洲成年人影院| 日日摸天天添天天添破| 日本不卡在线播放| 91.com视频| 黑人乱码一区二区三区av| 日韩一级性生活片| 亚洲人午夜精品| 国产精品99久久久久久有的能看| 日本xxxx免费| 青青久久aⅴ北条麻妃| 日本一区二区三区四区在线视频| 日日操免费视频| 久久久久se| 欧美无砖砖区免费| 国产wwwxxx| 又色又爽又高潮免费视频国产| 最近2019中文字幕在线高清| 成人ar影院免费观看视频| 欧美熟妇激情一区二区三区| 国产厕所精品在线观看| 欧美色爱综合网| 成人毛片在线免费观看| 99re精彩视频| 日本中文字幕不卡免费| 亚洲国产精品一区二区www| 中文字幕免费播放| 无码无遮挡又大又爽又黄的视频| 久久精品在线视频| 中文字幕第69页| 国产精品成人av性教育| 午夜伦欧美伦电影理论片| 欧美成人一区二区三区四区| 中文字幕第100页| 久久久精品中文字幕| 久久先锋影音av| 国产亚洲精品成人| 国产自摸综合网| 日韩色视频在线观看| 成人小视频在线播放| 好吊色这里只有精品| 视频在线观看一区二区| 亚洲欧美二区三区| 伊人成人在线观看| 在线观看一区二区三区视频| 国产精品丝袜视频| 欧美精品久久天天躁| 国产精品99久久久久久宅男| 国产毛片欧美毛片久久久| 免费看国产精品一二区视频| 日韩av在线不卡| 国产亚洲综合av| 成人黄色免费视频| 99国产精品免费视频| 精品免费国产一区二区| 欧美人与物videos| 一本色道a无线码一区v| 国产一区二区三区精品欧美日韩一区二区三区| 亚洲va韩国va欧美va精四季| 精品福利一区二区| 国产又粗又猛又黄又爽| 被黑人猛躁10次高潮视频| 成人在线国产视频| 少妇丰满尤物大尺度写真| 亚洲欧洲综合网| 一区二区亚洲欧洲国产日韩| 国产精品高潮久久久久无| 天堂а√在线中文在线| 麻豆国产精品va在线观看不卡| 亚洲少妇30p| 日本精品一区二区在线观看| 日韩毛片无码永久免费看| 不卡av在线网站| 精品久久久久久久人人人人传媒| 国产女同性恋一区二区| 日韩高清一级片| 91女人18毛片水多国产| www.99re6| 欧美日韩国产精品综合| 日本黄色www| 亚洲 自拍 另类小说综合图区| 91久久爱成人| 2019中文字幕全在线观看| 亚洲欧洲偷拍精品| 欧美裸体一区二区三区| 一区二区三区国产精品| 国产亚洲一区字幕| 成人18视频在线播放| 久久久久国产精品午夜一区| 亚洲av无码乱码在线观看性色| 免费观看一级视频| 99成人在线观看| xxxxx99| 美国精品一区二区| 蜜桃色一区二区三区| 无码人妻一区二区三区免费n鬼沢| www插插插无码免费视频网站| 欧美少妇一级片| 精品中文字幕人| 国产成人啪精品视频免费网| 色视频一区二区| 欧美性xxxxhd| 91精品国产综合久久精品麻豆| 亚洲一级黄色av| 热久久精品国产| 欧美超碰在线观看| 欧美中日韩免费视频| 欧美影院在线播放| 亚洲视频在线免费观看| 免费av中文字幕| 奇米网一区二区| 精品国产免费久久久久久婷婷| 精品丰满人妻无套内射| 久久99精品久久久久久久久久| 欧美在线观看视频| 自拍偷拍亚洲精品| av网站一区二区三区| 国产精品黄色在线观看| 一区二区三区不卡在线观看| 色综合天天综合网天天看片| 欧美一区二区精品久久911| 欧美日韩亚洲丝袜制服| 一区二区在线视频播放| 国产成人精品av在线| 99国产精品久久久久老师| 神马影院我不卡午夜| 日本韩国欧美在线观看| 精产国品一二三区| 男女免费视频网站| 久久成人免费网站| 国产精品美女久久久久av爽李琼| 调教+趴+乳夹+国产+精品| 亚洲不卡av一区二区三区| 欧美精品一二三|