日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【RW007系列综合实战3】柿饼派上怎样更新RW007固件和驱动?

發(fā)布時間:2024/3/13 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【RW007系列综合实战3】柿饼派上怎样更新RW007固件和驱动? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前面已經(jīng)分享過部分關(guān)于 RW007 模塊如何更新的帶 BLE 功能的方法,這里也再次分享一下在柿餅派上怎樣更新 RW007 固件和更新 RW007 的驅(qū)動,并且測試 RW007 的 BLE 功能。

步驟一:柿餅派更新 RW007 的固件

在柿餅派上更新 RW007 的固件,可以參考官方提供的 RW007 通過 UDP_OTA 工具升級 RW007 固件的文檔,進(jìn)行操作。

1. RW007 模塊需要和 PC 電腦連在同一個局域網(wǎng)

2. 打開升級工具配置升級

(1)雙擊運(yùn)行 udp_ota.exe軟件

3. 升級完成

等待進(jìn)度條完成,然后重啟板子。

步驟二:柿餅派修改 SDK 更新 RW007 的驅(qū)動

由于需要使用新版本的 RW007 模塊的 BLE 功能,所以需要對應(yīng)更新主機(jī)端柿餅派的 RW007 驅(qū)動,主要是替換SDK中project\firmware\packages目錄下的rw007-latest目錄先刪除,然后拷貝提供的rw007-v2.0.1文件夾,即可完成替換更新RW007 的驅(qū)動。

替換驅(qū)動文件后,通過 env 編譯柿餅派的固件,然后通過persimmon mod工具更新柿餅派的固件,即可。

步驟三:柿餅派測試 RW007 的 BLE 功能

當(dāng)按照前面的步驟進(jìn)行操作后,可以通過調(diào)試串口的 msh命令行進(jìn)行調(diào)試。因?yàn)樵赗W007驅(qū)動包里面默認(rèn)開啟了相關(guān)的功能測試示例,可以在MSH命令行中通過rw007_ble查詢。下面的內(nèi)容來自于官方提供的 RW007 BLE 功能使用說明操作。

1msh?/>rw007_ble2[rw007_ble?command]34rw007_ble?help5rw007_ble?init?central/peripheral??????????????Note:?init?ble?mode6rw007_ble?get_addr?????????????????????????????Note:?get?ble?address7rw007_ble?update_params????????????????????????Note:?update?connect?parameters(no?support)8rw007_ble?scan?????????????????????????????????Note:?scan?ble?slave9rw007_ble?stop_scan????????????????????????????Note:?stop?scan 10rw007_ble?connect?xx:xx:xx:xx:xx:xx????????????Note:?use?slave?addr?to?connect 11rw007_ble?disconnect?[conn_handle]?????????????Note:?disconnect?slave 12rw007_ble?get_server???????????????????????????Note:?discover?all?server(no?support) 13rw007_ble?get_char?????????????????????????????Note:?discover?all?description(no?support) 14rw007_ble?get_disc?????????????????????????????Note:?discover?all?characteristic(no?support) 15rw007_ble?mtu_exch?????????????????????????????Note:?ble?mtu?exchange(no?support) 16rw007_ble?notify???????????????????????????????Note:?enable?ble?notify(no?support) 17rw007_ble?write????????????????????????????????Note:?ble?write?data(no?support) 18rw007_ble?read?????????????????????????????????Note:?ble?read?data(no?support) 19rw007_ble?notify_change?[conn_handle]?[char_value]?[UUID]???Note:?ble?notify?configure?by?uuid 20rw007_ble?write_uuid?[conn_handle]?[UUID]?[data]?Note:?ble?write?data?by?uuid 21rw007_ble?read_uuid??????????????????????????????Note:?ble?read?data?by?uuid(no?support)

BLE 功能初始化

BLE功能初始化函數(shù),使用 BLE功能必須調(diào)用。

1.RW007BLE 設(shè)備初始化為主機(jī)設(shè)備。

1rw007_ble?init?central

測試示例

1msh?/>rw007_ble?init?central 2122?-?ble_cmd_init 3start?ble?central 4msh?/>

2. RW007BLE 設(shè)備初始化為從機(jī)設(shè)備
注意:目前不支持使用從機(jī)模式。

1rw007_ble?init?peripheral

BLE 功能獲取本機(jī)的BLE設(shè)備地址

由于BLE設(shè)備的地址分為public公共地址和random隨機(jī)地址。

1rw007_ble?get_addr

測試示例

1msh?/>rw007_ble?get_addr 2273?-?ble_cmd_get_addr 3msh?/>resp_type:?0,?len:?12 4RW007_BLE_RSP_TYPE_ADDR_GET 5public_id_addr?=?48:00:42:8c:47:c9 6random_id_addr?=?00:04:5c:43:00:00

BLE 功能掃描設(shè)備

目前RW007BLE 功能支持通過 scan命令,掃描周圍的BLE設(shè)備。

1.執(zhí)行掃描周圍BLE設(shè)備

1rw007_ble?scan

測試示例:

1msh?/>rw007_ble?scan 2176?-?ble_cmd_scan 3msh?/>resp_type:?1,?len:?65 4RW007_BLE_NTF_TYPE_DISCOVER 5received?advertisement;?event_type=0?rssi=-60?addr_type=0?addr=4c:ed:fb:00:04:b1 6resp_type:?1,?len:?56

這里的 addr地址內(nèi)容可以為后面連接設(shè)備使用,由于目前沒有直接顯示對應(yīng) BLE 設(shè)備的名稱,需要先人工確定 BLE 設(shè)備的地址。

2.停止掃描周圍BLE設(shè)備
該指令用于 RW007模塊正在執(zhí)行scan掃描操作過程中,馬上停止掃描的動作,可以執(zhí)行此命令。

1rw007_ble?stop_scan

BLE 功能設(shè)備連接

目前 RW007 BLE 功能設(shè)備支持通過 BLE設(shè)備的類mac地址來連接設(shè)備,該命令僅支持主機(jī)模式去連接從機(jī)設(shè)備的類mac地址,連接成功后會有對應(yīng)的conn_handle值,這個conn_handle值在其他功能沿用。

1rw007_ble?connect?xx:xx:xx:xx:xx:xx

測試示例

1msh?/>rw007_ble?connect?4c:ed:fb:00:04:b12198?-?ble_cmd_connect3str_addr:?4c:ed:fb:00:04:b14mac?addr:?b1:?4:?0:fb:ed:4c5msh?/>resp_type:?1,?len:?526RW007_BLE_NTF_TYPE_CONNECT7type:?0,?status:?0,?conn_handle:?189resp_type:?1,?len:?44 10RW007_BLE_NTF_TYPE_CONNECT_DESC 11our_id_addr:?c9:47:8c:42:00:48 12peer_id_addr:?b1:04:00:fb:ed:4c

BLE 功能設(shè)備斷開連接

目前RW007BLE 功能設(shè)備支持主動斷開從設(shè)備的連接。

1rw007_ble?disconnect?[conn_handle]

其中 conn_handle與 connect連接時的需要一致。

1msh?/>rw007_ble?disconnect?1 2341?-?ble_cmd_disconnect 3msh?/>resp_type:?1,?len:?52 4RW007_BLE_NTF_TYPE_DISCONN

BLE 功能寫數(shù)據(jù)

目前RW007BLE 功能寫數(shù)據(jù),支持通過指定UUID來寫對應(yīng)的數(shù)據(jù)。

1rw007_ble?write_uuid?[conn_handle]?[UUID]?[data]

指令說明:[conn_handle]為 RW007連接設(shè)備時生成的對應(yīng)值,[UUID]為對應(yīng) BLE設(shè)備的特征參數(shù),[data]為需要發(fā)送的數(shù)據(jù)。

測試示例:

1msh?/>rw007_ble?write_uuid?1?ffe1?Hello,RT-Thread.... 2402?-?ble_cmd_gattc_write_by_uuid 3write?conn_hanle:1?uuid:ffe1?data:Hello,RT-Thread.... 4write?rc:0 5msh?/>

注意:目前已經(jīng)支持通過 128 位的 UUID 進(jìn)行寫數(shù)據(jù)操作

測試示例:

1msh?/>rw007_ble?write_uuid?1?ebe0ccbe7a0a4b0c8a1a6ff2997da3a6?00 2data:?00 3write?conn_hanle:1?uuid:ebe0ccbe7a0a4b0c8a1a6ff2997da3a6 4write?rc:0

說明:

測試示例中的 [conn_handle]為 1,[UUID]為ebe0ccbe7a0a4b0c8a1a6ff2997da3a6,[data]為 0x00(這里是使用 hex 值)

BLE 功能更新notify 參數(shù)

目前 RW007 BLE 功能支持修改接收 notify參數(shù)。

1rw007_ble?notify_change?[conn_handle]?[char_value]?[UUID]

參數(shù)說明:

[conn_handle]為 RW007連接設(shè)備時生成的對應(yīng)值

[char_value] 為配置參數(shù),具體如下

10:disable?indication&notification 21:enable?notification,disable?indication 32:enable?indication,?disable?notification 43:enable?indication?&notification

[UUID]為對應(yīng) BLE設(shè)備的特征參數(shù)值。

BLE 功能關(guān)于廣播包類型的說明

目前 RW007 ?BLE 功能中可以關(guān)于廣播包 event的類型可以分為下面幾種。

1/*?Advertising?report?*/ 2#define?BLE_HCI_ADV_RPT_EVTYPE_ADV_IND??????(0) 3#define?BLE_HCI_ADV_RPT_EVTYPE_DIR_IND??????(1) 4#define?BLE_HCI_ADV_RPT_EVTYPE_SCAN_IND?????(2) 5#define?BLE_HCI_ADV_RPT_EVTYPE_NONCONN_IND??(3) 6#define?BLE_HCI_ADV_RPT_EVTYPE_SCAN_RSP?????(4)

廣播包結(jié)構(gòu)如下:

1廣播包結(jié)構(gòu)描述:2struct?ble_gap_disc_desc?{3????uint8_t?event_type;4????uint8_t?length_data;5????ble_addr_t?addr;6????int8_t?rssi;7????uint8_t?*data;89????/*** 10?????*?LE?direct?advertising?report?fields;?direct_addr?is?BLE_ADDR_ANY?if 11?????*?direct?address?fields?are?not?present. 12?????*/ 13????ble_addr_t?direct_addr; 14}; 15 16通過event_type區(qū)分出不同的廣播包類型,所有類型分為如下幾種: 17/*?Advertising?report?*/ 180?:?普通廣播數(shù)據(jù)包 191?:?直接廣播包? 202?:?掃描請求包? 213?:?不可連接廣播指示 224?:?掃描響應(yīng)數(shù)據(jù)包

因此,在設(shè)備的scan掃描回應(yīng)中可以通過對應(yīng)的event_type來判定是哪種廣播包的類型。

在 RW007的驅(qū)動代碼中,可以通過下面的event_type來判斷是哪種類型的廣播包,可以讓用戶自行實(shí)現(xiàn)對應(yīng)功能。

1case?RW007_BLE_NTF_TYPE_DISC:2????????{3????????????rt_kprintf("RW007_BLE_NTF_TYPE_DISCOVER\n");4????????????....5????????????switch(event_type)6????????????{7????????????????case?BLE_HCI_ADV_RPT_EVTYPE_ADV_IND:89????????????????????break; 10????????????????case?BLE_HCI_ADV_RPT_EVTYPE_DIR_IND: 11 12????????????????????break; 13????????????????case?BLE_HCI_ADV_RPT_EVTYPE_SCAN_IND: 14 15????????????????????break; 16????????????????case?BLE_HCI_ADV_RPT_EVTYPE_NONCONN_IND: 17 18????????????????????break; 19????????????????case?BLE_HCI_ADV_RPT_EVTYPE_SCAN_RSP: 20 21????????????????????break; 22????????????} 23????????????.... 24????????}

測試示例:

1.初始化 RW007BLE 功能為主機(jī)模式。

1msh?/>?rw007_ble?init?central 2263?-?ble_cmd_init 3start?ble?central 4msh?/>

2.執(zhí)行BLE掃描指令

1msh?/>rw007_ble?scan?2318?-?ble_cmd_scan3msh?/>resp_type:?1,?len:?834RW007_BLE_NTF_TYPE_DISCOVER5received?advertisement;?event_type=3?rssi=-56?addr_type=1?addr=41:ef:77:50:2b:296mfg_data?=?1e?ff?06?00?01?09?20?02?5b?5d?cd?33?a4?8c?c7?c5?36?ac?de?12?ab?17?87?89?e1?84?e9?19?ec?c4?ad?78resp_type:?1,?len:?839RW007_BLE_NTF_TYPE_DISCOVER 10received?advertisement;?event_type=3?rssi=-65?addr_type=1?addr=3c:2e:33:ea:8d:aa 11mfg_data?=?1e?ff?06?00?01?09?20?02?28?4c?cf?9b?a7?f2?7d?f6?c7?7e?d9?54?ac?dd?91?a6?ee?0d?22?43?e1?8f?e3? 12 13resp_type:?1,?len:?83 14RW007_BLE_NTF_TYPE_DISCOVER 15received?advertisement;?event_type=3?rssi=-59?addr_type=1?addr=42:18:ab:80:5c:11 16mfg_data?=?1e?ff?06?00?01?09?20?02?eb?bf?cf?15?97?aa?50?7f?a4?57?25?d9?21?35?71?eb?6f?aa?a1?56?5c?d5?e2?

3.觀察event_type=可以確定是哪種廣播包類型。

1RW007_BLE_NTF_TYPE_DISCOVER2received?advertisement;?event_type=0?rssi=-64?addr_type=1?addr=61:63:46:c3:49:993mfg_data?=?02?01?1a?02?0a?0c?0b?ff?4c?00?10?06?00?19?1d?6d?63?18?45resp_type:?1,?len:?526RW007_BLE_NTF_TYPE_DISCOVER7received?advertisement;?event_type=4?rssi=-64?addr_type=1?addr=61:63:46:c3:49:998mfg_data?=?9 10resp_type:?1,?len:?73 11RW007_BLE_NTF_TYPE_DISCOVER 12received?advertisement;?event_type=0?rssi=-73?addr_type=0?addr=91:21:52:00:4e:b8 13mfg_data?=?14?ff?4c?00?07?0f?00?02?20?91?21?52?00?4e?b8?f5?58?58?3c?39?00?

BLE 功能讀數(shù)據(jù)

目前 RW007支持通過 UUID 讀取數(shù)據(jù)的功能

1rw007_ble?read_uuid?[conn_handle]?[UUID]

參數(shù)說明:

[conn_handle]為 RW007連接設(shè)備時生成的對應(yīng)值

[UUID]為對應(yīng) BLE設(shè)備的特征參數(shù)。

測試示例:

1msh?/>rw007_ble?read_uuid?1?2a24 2read?conn_hanle:1?uuid:2a24 3read?rc:0 4msh?/>ble?data?input?packet?resp_type:?0,?len:?18 5RW007_BLE_RSP_TYPE_READ 6connect:1?attr_handle:14?uuid:?24?2a??read?data: 700000000:?4C?59?57?53?44?30?33?4D?4D?43?00?????????????????LYWSD03MMC.

說明:這里的 [conn_handle]為 1,[UUID] 為 2a24,讀取到的數(shù)據(jù)為 BLE 設(shè)備的名稱。

目前 RW007 模塊已經(jīng)支持讀取 128 位的 UUID 的功能。

測試示例:

1msh?/>rw007_ble?read_uuid?1?ebe0ccbe7a0a4b0c8a1a6ff2997da3a6 2read?conn_hanle:1?uuid:ebe0ccbe7a0a4b0c8a1a6ff2997da3a6 3read?rc:0 4msh?/>ble?data?input?packet?resp_type:?0,?len:?22 5RW007_BLE_RSP_TYPE_READ 6connect:1?attr_handle:51?uuid:?a6?a3?7d?99?f2?6f?1a?8a?0c?4b?0a?7a?be?cc?e0?eb??read?data: 700000000:?00?????????????????????

說明:這里的 [conn_handle]為 1,[UUID] 為128位的 ebe0ccbe7a0a4b0c8a1a6ff2997da3a6,讀取到的數(shù)據(jù)值為 00

步驟四:柿餅派讀取米家藍(lán)牙溫濕度計數(shù)據(jù)顯示在界面上

感謝能堅持看到這里的每一個你,下面將會通過添加編寫部分功能代碼和創(chuàng)建 UI 工程,實(shí)現(xiàn)柿餅派讀取米家溫濕度計數(shù)據(jù)顯示在界面上的功能。接下來會貼一部分實(shí)現(xiàn)代碼和代碼說明,可能會有點(diǎn)乏味,但是盡可能把實(shí)現(xiàn)步驟描述得具體些,避免采坑。

1. 添加測試文件,參考代碼

2. 編譯固件,驗(yàn)證功能

3. 創(chuàng)建 UI 工程,簡單布局

4. c-js 之間互通說明

5. UI 工程修改,驗(yàn)證功能

1.添加測試代碼

在官方提供的 SDK中的project\firmware\applications目錄下添加ble_example.c文件,然后參考project\firmware\packages\rw007-v2.0.1\src\ble_cmd_rw007.c文件,主要拷貝幾個對應(yīng)的函數(shù)。通過前面的可以了解到,需要(1)RW007 初始化為 BLE 主機(jī)模式 (2)RW007 連接米家藍(lán)牙溫濕度計2代設(shè)備 (3)RW007 通過 UUID 讀取米家藍(lán)牙溫濕度計2代設(shè)備的數(shù)據(jù) ,所以需要參考 BLE功能初始化、連接、通過 UUID 讀取數(shù)據(jù)的功能實(shí)現(xiàn)函數(shù)。

(1)在ble_example.c中添加 RW007 初始化為BLE主機(jī)模式的函數(shù)

1static?int?ble_example_init(void)2{3????rt_kprintf("ble_example_init\n");4????rt_uint8_t?roles?=?0;5????roles?=?RW007_BLE_INIT_ROLE_CENTRAL;67????rw007_ble_init(roles);89????rw007_ble_resp_handle_cb_reg(rw007_ble_resp_handle); 10????rw007_ble_ntf_handle_cb_reg(rw007_ble_ntf_handle); 11????return?0; 12 13}

由于在初始化函數(shù)中,需要注冊兩個回調(diào)函數(shù)rw007_ble_resp_handle 和 rw007_ble_ntf_handle,所以也要從project\firmware\packages\rw007-v2.0.1\src\ble_cmd_rw007.c文件中對應(yīng)拷貝過來。

1static?void?rw007_ble_resp_handle(rt_uint16_t?resp_type,?void?*data,?rt_uint16_t?size)2{3????switch(resp_type)4????{5????????case?RW007_BLE_RSP_TYPE_INIT:6????????????rt_kprintf("RW007_BLE_RSP_TYPE_INIT\n");7????????????break;8????????case?RW007_BLE_RSP_TYPE_ADDR_GET:9????????????rt_kprintf("RW007_BLE_RSP_TYPE_ADDR_GET\n");10????????????ble_get_addr?*get_addr?=?(ble_get_addr?*)data;11????????????rt_kprintf("public_id_addr?=?%02x:%02x:%02x:%02x:%02x:%02x\n",?get_addr->public_id_addr[5],?get_addr->public_id_addr[4],12???????????????????????????????????????????????????????????????????????????get_addr->public_id_addr[3],?get_addr->public_id_addr[2],13???????????????????????????????????????????????????????????????????????????get_addr->public_id_addr[1],?get_addr->public_id_addr[0]);14????????????rt_kprintf("random_id_addr?=?%02x:%02x:%02x:%02x:%02x:%02x\n",?get_addr->random_id_addr[5],?get_addr->random_id_addr[4],15???????????????????????????????????????????????????????????????????????????get_addr->random_id_addr[3],?get_addr->random_id_addr[2],16???????????????????????????????????????????????????????????????????????????get_addr->random_id_addr[1],?get_addr->random_id_addr[0]);17????????????break;18????????case?RW007_BLE_RSP_TYPE_CONN_INFO_GET:19????????????rt_kprintf("RW007_BLE_RSP_TYPE_CONN_INFO_GET\n");20????????????break;21????????case?RW007_BLE_RSP_TYPE_CONN_UPD_PARAMS:22????????????rt_kprintf("RW007_BLE_RSP_TYPE_CONN_UPD_PARAMS\n");23????????????break;24????????case?RW007_BLE_RSP_TYPE_SCAN:25????????????rt_kprintf("RW007_BLE_RSP_TYPE_SCAN\n");26????????????break;27????????case?RW007_BLE_RSP_TYPE_CONNECT:28????????????rt_kprintf("RW007_BLE_RSP_TYPE_CONNECT\n");29????????????break;30????????case?RW007_BLE_RSP_TYPE_DISCONN:31????????????rt_kprintf("RW007_BLE_RSP_TYPE_DISCONN\n");32????????????break;33????????case?RW007_BLE_RSP_TYPE_GATT_DIS_FULL:34????????????rt_kprintf("RW007_BLE_RSP_TYPE_GATT_DIS_FULL\n");35????????????break;36????????case?RW007_BLE_RSP_TYPE_GATTC_SRV:37????????????rt_kprintf("RW007_BLE_RSP_TYPE_GATTC_SRV\n");38????????????break;39????????case?RW007_BLE_RSP_TYPE_GATTC_CHR:40????????????rt_kprintf("RW007_BLE_RSP_TYPE_GATTC_CHR\n");41????????????break;42????????case?RW007_BLE_RSP_TYPE_GATTC_DSC:43????????????rt_kprintf("RW007_BLE_RSP_TYPE_GATTC_DSC\n");44????????????break;45????????case?RW007_BLE_RSP_TYPE_MTU_EXCHANGE:46????????????rt_kprintf("RW007_BLE_RSP_TYPE_MTU_EXCHANGE\n");47????????????break;48????????case?RW007_BLE_RSP_TYPE_NOTIFY:49????????????rt_kprintf("RW007_BLE_RSP_TYPE_NOTIFY\n");50????????????break;51????????case?RW007_BLE_RSP_TYPE_WRITE:52????????????rt_kprintf("RW007_BLE_RSP_TYPE_WRITE\n");53????????????break;54????????case?RW007_BLE_RSP_TYPE_READ:55????????????rt_kprintf("RW007_BLE_RSP_TYPE_READ\n");56????????????break;57????????default:58????????????rt_kprintf("error?response\n");59????????????break;60????}61}62//?recv?slave?notity?handle63static?void?rw007_ble_ntf_handle(rt_uint16_t?ntf_type,?void?*data,?rt_uint16_t?size)64{65????switch(ntf_type)66????{67????????case?RW007_BLE_NTF_TYPE_CONN_UPD:68????????????rt_kprintf("RW007_BLE_NTF_TYPE_CONN_UPD\n");69????????????break;70????????case?RW007_BLE_NTF_TYPE_CONN_UPD_PARAMS:71????????????rt_kprintf("RW007_BLE_NTF_TYPE_CONN_UPD_PARAMS\n");72????????????break;73????????case?RW007_BLE_NTF_TYPE_DISC:74????????{75????????????struct?rw007_ble_gap_event_discov?*disc_desc?=?RT_NULL;76????????????char?*dicover_data?=?RT_NULL;7778????????????rt_kprintf("RW007_BLE_NTF_TYPE_DISCOVER\n");7980????????????disc_desc?=?(struct?rw007_ble_gap_event_discov?*)data;81????????????dicover_data?=?(char*)(disc_desc?+?1);8283????????????switch(disc_desc->discov_type)84????????????{85????????????????case?BLE_HCI_ADV_RPT_EVTYPE_ADV_IND:8687????????????????????break;88????????????????case?BLE_HCI_ADV_RPT_EVTYPE_DIR_IND:8990????????????????????break;91????????????????case?BLE_HCI_ADV_RPT_EVTYPE_SCAN_IND:9293????????????????????break;94????????????????case?BLE_HCI_ADV_RPT_EVTYPE_NONCONN_IND:9596????????????????????break;97????????????????case?BLE_HCI_ADV_RPT_EVTYPE_SCAN_RSP:9899????????????????????break; 100????????????} 101 102?????????????rt_kprintf("received?advertisement;?event_type=%d?rssi=%d?addr_type=%d?addr=", 103????????????????????????????????????????????????????????????????????disc_desc->discov_type, 104????????????????????????????????????????????????????????????????????disc_desc->rssi, 105????????????????????????????????????????????????????????????????????disc_desc->addr_type); 106????????????rt_kprintf("%02x:%02x:%02x:%02x:%02x:%02x\n",?disc_desc->addr[5],?disc_desc->addr[4], 107??????????????????????????????????????????????????????????disc_desc->addr[3],?disc_desc->addr[2], 108??????????????????????????????????????????????????????????disc_desc->addr[1],?disc_desc->addr[0]); 109????????????rt_kprintf("mfg_data?=?"); 110????????????for?(int?i?=?0;?i?<?disc_desc->length_data;?i++) 111????????????{ 112????????????????rt_kprintf("%02x?",?dicover_data[i]); 113????????????} 114????????????rt_kprintf("\n\n"); 115????????????break; 116????????} 117????????case?RW007_BLE_NTF_TYPE_CONNECT: 118????????{ 119????????????struct?rw007_ble_gap_event_connect?*connect_event; 120????????????struct?rw007_ble_conn_desc?*conn_desc; 121 122????????????rt_kprintf("RW007_BLE_NTF_TYPE_CONNECT\n"); 123 124????????????connect_event?=?(struct?rw007_ble_gap_event_connect?*)data; 125????????????conn_desc?=?(struct?rw007_ble_conn_desc*)(connect_event?+?1); 126 127????????????rt_kprintf("connect?event?status:?%d,?conn_handle:?%d\n",?connect_event->status,?connect_event->conn_handle); 128????????????rt_kprintf("our_id_type:%d?our_id_addr:?",?conn_desc->our_id_type); 129????????????_print_addr(conn_desc->our_id_addr); 130????????????rt_kprintf("\npeer_id_type:%d?peer_id_addr:?",?conn_desc->peer_id_type); 131????????????_print_addr(conn_desc->peer_id_addr); 132????????????rt_kprintf("\nconn_itv:%d,?conn_latency:%d,?conn_suptout:%d,?role:%d\n",?conn_desc->conn_itvl, 133????????????????????????????????conn_desc->conn_latency,?conn_desc->supervision_timeout,?conn_desc->role); 134????????????break; 135????????} 136????????case?RW007_BLE_NTF_TYPE_DISCONN: 137????????????rt_kprintf("RW007_BLE_NTF_TYPE_DISCONN\n"); 138????????????break; 139????????case?RW007_BLE_NTF_TYPE_MTU_EXCHANGE: 140????????????rt_kprintf("RW007_BLE_NTF_TYPE_MTU_EXCHANGE\n"); 141????????????break; 142????????case?RW007_BLE_NTF_TYPE_DISC_COMPLETE: 143????????????rt_kprintf("RW007_BLE_NTF_TYPE_DISC_COMPLETE\n"); 144????????????break; 145????????case?RW007_BLE_NTF_TYPE_ADV_COMPLETE: 146????????????rt_kprintf("RW007_BLE_NTF_TYPE_ADV_COMPLETE\n"); 147????????????break; 148????????case?RW007_BLE_NTF_TYPE_SUBSCRIBE: 149????????????rt_kprintf("RW007_BLE_NTF_TYPE_SUBSCRIBE\n"); 150????????????break; 151????????case?RW007_BLE_NTF_TYPE_NOTIFY_RX: 152????????????{ 153?????????????struct?rw007_ble_gap_event_notify_rx?*notify_rx; 154 155?????????????rt_kprintf("RW007_BLE_NTF_TYPE_NOTIFY_RX\n"); 156 157?????????????notify_rx?=?(struct?rw007_ble_gap_event_notify_rx?*)data; 158?????????????rt_kprintf("conn_handle:%d,?attr_handle:%d,?rcv?(%s)?length:%d,?data:\n", 159????????????????????????notify_rx->conn_handle,?notify_rx->attr_handle, 160????????????????????????notify_rx->indication???"indication"?:?"notification",?notify_rx->length_data); 161?????????????hex_dump((const?rt_uint8_t?*)(notify_rx?+?1),?notify_rx->length_data); 162????????????break; 163????????} 164????????default: 165????????????rt_kprintf("error?notify\n"); 166????????????break; 167????} 168}

(2) 添加 RW007連接米家藍(lán)牙溫濕度計2代設(shè)備的實(shí)現(xiàn)函數(shù)

1tatic?int?ble_example_connect(void)2{3????rt_kprintf("ble_example_connect\n");4????ble_addr_t?addr;5????addr.type?=?RW007_BLE_ADDR_PUBLIC;67????rt_kprintf("str_addr:?%s\n",?"A4:C1:38:35:52:94");89????_hexstrtoaddr("A4:C1:38:35:52:94",?addr.val); 10 11????rt_kprintf("mac?addr:?%2x:%2x:%2x:%2x:%2x:%2x\n",?addr.val[0],?addr.val[1], 12??????????????????????????????????????????????????????????addr.val[2],?addr.val[3], 13??????????????????????????????????????????????????????????addr.val[4],?addr.val[5]); 14 15????rw007_ble_connect(&addr); 16????return?0; 17}

說明:前面已經(jīng)通過 BLE 測試和手機(jī)的 BLE 調(diào)試助手可以知道米家藍(lán)牙溫濕度計2代設(shè)備的 mac 地址為A4:C1:38:35:52:94,所以這里直接固定設(shè)備的mac地址用于連接。

(3)RW007 通過 UUID 讀取米家藍(lán)牙溫濕度計2代設(shè)備的數(shù)據(jù)
?由于前面通過 BLE 測試連接上米家藍(lán)牙溫濕度計2代設(shè)備后,會主動收到來自米家藍(lán)牙溫濕度計2代設(shè)備的溫濕度數(shù)據(jù)的notify,并在rw007_ble_ntf_handle函數(shù)中打印輸出,現(xiàn)在需要解析接收到的溫濕度數(shù)據(jù),在rw007_ble_ntf_handle的函數(shù)中添加解析數(shù)據(jù)的功能。

c case RW007_BLE_NTF_TYPE_NOTIFY_RX: { struct rw007_ble_gap_event_notify_rx *notify_rx; char cRes[50] = {0}; ¨K60K

(4) 添加通過命令啟動函數(shù),測試功能

1static?int?ble_example_start(void)2{3????ble_example_init();4????rt_thread_delay(1000);5????ble_example_connect();6????rt_thread_delay(5000);7????return?0;89} 10MSH_CMD_EXPORT(ble_example_start,ble_example_start)

說明:這里加了一些延時是考慮到連接設(shè)備需要一些時間。

(5)編譯固件,燒錄驗(yàn)證功能
編譯固件,給柿餅派升級固件后,通過在調(diào)試串口 msh中輸入ble_example_start命令進(jìn)行啟動,啟動后便會連接米家藍(lán)牙溫濕度計2代設(shè)備,并把獲取到溫濕度數(shù)據(jù)進(jìn)行解析,打印出來。

1msh?/>ble_example_start2ble_example_init3ble_example_connect4str_addr:?A4:C1:38:35:52:945mac?addr:?94:52:35:38:c1:a46ble?data?input?packet?resp_type:?1,?len:?467RW007_BLE_NTF_TYPE_CONNECT8connect?event?status:?0,?conn_handle:?19our_id_type:0?our_id_addr:?48:00:42:8c:47:c9 10peer_id_type:0?peer_id_addr:?a4:c1:38:35:52:94 11conn_itv:80,?conn_latency:0,?conn_suptout:256,?role:0 12ble?data?input?packet?resp_type:?1,?len:?13 13RW007_BLE_NTF_TYPE_NOTIFY_RX 14conn_handle:1,?attr_handle:54,?rcv?(notification)?length:5,?data: 1500000000:?47?0B?3B?B9?0A???????????????????????????????????G.;.. 16temp=2887?mC,hum=59%,v_bat=2745mV 17cres=temp=2887mC,hum=59%,v_bat=2745mV?

添加把數(shù)據(jù)傳遞到界面的實(shí)現(xiàn)函數(shù)(C-To-JS)

通過前面的步驟,已經(jīng)成功解析到了米家藍(lán)牙溫濕度計2代設(shè)備的溫濕度數(shù)據(jù),現(xiàn)在需要把這些數(shù)據(jù)顯示到 LCD 屏上,需要在 SDK 中參考示例代碼中的docs\src\PersimM3_JS_GUI_C_TransData\js_message_test.c進(jìn)行數(shù)據(jù)的封裝傳到GUI 中。

(1)創(chuàng)建 module并初始化

需要創(chuàng)建添加module初始化便于 JS 中導(dǎo)入該模塊。

1static?js_object_t?js_message_obj?=?JS_ECMA_VALUE_UNDEFINED;2static?void?js_message_info_free(void?*native)3{4????js_message_obj?=?JS_ECMA_VALUE_UNDEFINED;5????rt_kprintf("==>?js_message_obj?=?JS_ECMA_VALUE_UNDEFINED;\n");6}78static?const?js_object_native_info_t?js_message_info?=9{ 10????.free_cb?=?js_message_info_free 11}; 12 13 14js_object_t?example_module_init(void) 15{ 16????js_object_t?obj?=?js_create_object(); 17 18????if?(js_resolve_error(obj)) 19????????return?js_create_null(); 20????rt_kprintf("==>?module_init\n"); 21 22????js_message_obj?=?obj; 23????js_emitter(js_message_obj,?js_create_undefined()); 24????js_set_property_native_pointer(js_message_obj,?"_free_cb",?NULL,?&js_message_info); 25 26????return?obj; 27} 28JS_MODULE(example_module,example_module_init)

注意:這里的example_module在 js 中

(2)封裝數(shù)據(jù)傳輸函數(shù)
在 C代碼層到JS腳本層主要是通過事件監(jiān)聽機(jī)制異步上報數(shù)據(jù)或觸發(fā)JS邏輯主動到C層取數(shù)據(jù);當(dāng)前異步機(jī)制是通過GUI的消息隊列實(shí)現(xiàn),先往GUI的消息隊列發(fā)送消息,然后GUI收到對應(yīng)消息后觸發(fā)監(jiān)聽回調(diào),所以需要js_message_send_data和js_callback_message函數(shù),可以直接從示例代碼中拷貝過來使用。

1static?rt_bool_t?js_message_send_data(const?char?*name,?js_object_t?data)2{3????rt_bool_t?ret?=?RT_FALSE;45????if?(js_context_lock()?!=?RT_EOK)6????????return?ret;7????rt_kprintf("==>?js_message_send_data?start\n");8?????if?(js_object_is_object(js_message_obj))9?????{ 10????????js_object_t?msg?=?js_create_object(); 11????????if?(!js_resolve_error(msg)) 12????????{ 13????????????js_set_string_property_value(msg,?"name",?name); 14????????????js_set_property_value(msg,?"data",?data); 15 16????????????ret?=?js_send_callback_func(js_callback_message,?msg); 17????????????js_release_object(msg); 18????????} 19????} 20????rt_kprintf("==>?js_message_send_data?end\n"); 21????js_context_unlock(); 22 23????return?ret; 24} 1static?rt_bool_t?js_callback_message(js_object_t?args)2{3????if?(js_context_lock()?!=?RT_EOK)4????????return?RT_FALSE;56????rt_kprintf("==>?js_callback_message?start\n");7????if?(js_object_is_object(js_message_obj))8????{9????????js_object_t?msg_name?=?js_get_property_value(args,?"name"); 10????????js_object_t?msg_data?=?js_get_property_value(args,?"data"); 11????????char?str_buf[JS_STRING_BUFFER_SIZE]; 12????????char?*name?=?js_object_to_string(msg_name,?str_buf,?JS_STRING_BUFFER_SIZE); 13????????if?(name) 14????????{ 15????????????js_event_emit(js_message_obj,?name,?&msg_data,?1); 16????????????if?(name?!=?str_buf) 17????????????????JS_FREE(name); 18????????} 19????????js_release_object(msg_data); 20????????js_release_object(msg_name); 21????} 22????js_release_object(args); 23????rt_kprintf("==>?js_callback_message?end\n"); 24????js_context_unlock(); 25 26????return?RT_TRUE; 27}

(3)在解析數(shù)據(jù)后把數(shù)據(jù)傳到界面顯示
在rw007_ble_ntf_handle的函數(shù)中添加把解析數(shù)據(jù)后把數(shù)據(jù)傳到界面顯示的功能,只需要使用js_message_send_data函數(shù)進(jìn)行傳輸數(shù)據(jù)即可。

1????????case?RW007_BLE_NTF_TYPE_NOTIFY_RX:2????????????{3?????????????struct?rw007_ble_gap_event_notify_rx?*notify_rx;4?????????????char?cRes[50]?=?{0};56?????????????rt_kprintf("RW007_BLE_NTF_TYPE_NOTIFY_RX\n");78?????????????notify_rx?=?(struct?rw007_ble_gap_event_notify_rx?*)data;9?????????????rt_kprintf("conn_handle:%d,?attr_handle:%d,?rcv?(%s)?length:%d,?data:\n", 10????????????????????????notify_rx->conn_handle,?notify_rx->attr_handle, 11????????????????????????notify_rx->indication???"indication"?:?"notification",?notify_rx->length_data); 12?????????????hex_dump((const?rt_uint8_t?*)(notify_rx?+?1),?notify_rx->length_data); 13 14?????????????int32_t?temp?=?0xffff; 15?????????????int?hum?=?0xff; 16?????????????int32_t?v_bat?=?0xffff; 17 18?????????????rt_uint8_t?*ptr?=?(const?rt_uint8_t?*)(notify_rx?+?1); 19 20?????????????//Here?to?get?mi?tempture?data 21?????????????temp?=?0xffff?&?ptr[1]; 22?????????????temp?=?temp?<<?8; 23?????????????temp?=?temp?|?ptr[0]; 24?????????????hum?=?ptr[2]; 25?????????????v_bat?=?0xffff?&?ptr[4]; 26?????????????v_bat?=?v_bat?<<?8; 27?????????????v_bat?=?v_bat?|?ptr[3]; 28?????????????rt_kprintf("temp=%d?mC,hum=%d%,v_bat=%dmV\n",?temp,?hum,?v_bat); 29?????????????memset(cRes,0,sizeof(cRes)); 30?????????????sprintf(cRes,"temp=%dmC,hum=%d%%,v_bat=%dmV",?temp,?hum,?v_bat); 31?????????????rt_kprintf("cres=%s?\n",cRes); 32 33????????????if?(js_context_lock()?==?RT_EOK) 34????????????{ 35????????????????js_object_t?value?=string_to_js_object(cRes); 36????????????????js_message_send_data("mi_data",?value); 37????????????????rt_kprintf("value:%s\n",?value); 38????????????????js_release_object(value); 39????????????????js_context_unlock(); 40????????????} 41 42????????????break; 43????????}

說明:

需要注意js_message_send_data("mi_data", value);這里的mi_data,后面UI界面中將通過這個屬性來接收數(shù)據(jù)。

(4)編譯固件,燒錄程序。
根據(jù)前面的步驟操作,這里柿餅派的固件已經(jīng)準(zhǔn)備好了,下面需要創(chuàng)建 UI 工程進(jìn)行界面顯示米家藍(lán)牙溫濕度計2代設(shè)備的溫濕度數(shù)據(jù)。

創(chuàng)建 UI 工程顯示米家藍(lán)牙溫濕度計2代設(shè)備的溫濕度數(shù)據(jù)

關(guān)于UI界面工程的創(chuàng)建,這里不做具體說明,可以參考 SDK 目錄下docs\2-PersimM3_UI_Quick_Start.pdf文檔的操作,這里只說明核心部分的操作。

(1) UI 工程界面控件布局
由于這里只做數(shù)據(jù)顯示,所以僅需要放置幾個 Label控件,為了美觀些這里也特意放置了一些圖標(biāo)和設(shè)置背景圖片。

(2) JS 代碼的編寫

主要通過require導(dǎo)入example_module,這里的example_module是前面C代碼中初始化過的,然后通過this.example_module.on("mi_data",function(data){});進(jìn)行數(shù)據(jù)解析,并把數(shù)據(jù)更新到UI界面中。這里的mi_data也是需要與C代碼中配對使用的。

1var?page?=?{23????/*?此方法在第一次顯示窗體前發(fā)生?*/4????onLoad:?function?(event)?{5????????this.example_module?=?require("example_module");6????????console.dir(this.example_module);7????????var?that?=?this;8????????function?insertStr(soure,?start,?newStr)?{9????????????return?soure.slice(0,?start)?+?newStr?+?soure.slice(start); 10????????} 11 12????????this.example_module.on("mi_data",function(data){ 13 14????????????//temp=3205mC,hum=54%,v_bat=2766mV 15????????????//data_length:32 16????????????s_l1?=?data.indexOf(',') 17????????????temp_data?=data.substring(0,s_l1) 18????????????temp_value_l?=?temp_data.indexOf('=') 19????????????temp_value1?=?temp_data.substring(temp_value_l+1,temp_data.length?-2?) 20????????????temp_value=insertStr(temp_value1,2,"."); 21????????????s_l2?=?data.lastIndexOf(',') 22????????????hum_value?=?data.substring(s_l1+5,s_l2) 23????????????vbat_data?=??data.substring(s_l2+7,data.length?-2) 24????????????vbat_value=insertStr(vbat_data,1,"."); 25????????????that.setData({temp_value?:?temp_value+'℃'}); 26????????????that.setData({hum_value?:?hum_value}); 27????????????that.setData({bat_value?:?vbat_value+'V'}); 28????????}); 29????}, 30 31????/*?此方法展示窗體后發(fā)生?*/ 32????onResume:?function?(event)?{ 33 34????}, 35 36????/*?當(dāng)前頁狀態(tài)變化為顯示時觸發(fā)?*/ 37????onShow:?function?(event)?{ 38 39????}, 40 41????/*?當(dāng)前頁狀態(tài)變化為隱藏時觸發(fā)?*/ 42????onHide:?function?(event)?{ 43 44????}, 45 46????/*?此方法關(guān)閉窗體前發(fā)生?*/ 47????onExit:?function?(event)?{ 48 49????}, 50}; 51 52Page(page); 53 54page?=?0;

(3) 下載 UI 工程到柿餅派,體驗(yàn)效果

UI 工程下載完成后,在 調(diào)試串口的msh命令行中輸入ble_example_start,然后觀察UI界面的效果。

1msh?/>ble_example_start2ble_example_init3ble_example_connect4str_addr:?A4:C1:38:35:52:945mac?addr:?94:52:35:38:c1:a46ble?data?input?packet?resp_type:?1,?len:?467RW007_BLE_NTF_TYPE_CONNECT8connect?event?status:?0,?conn_handle:?19our_id_type:0?our_id_addr:?48:00:42:8c:47:c9 10peer_id_type:0?peer_id_addr:?a4:c1:38:35:52:94 11conn_itv:80,?conn_latency:0,?conn_suptout:256,?role:0 12msh?/>ble?data?input?packet?resp_type:?1,?len:?13 13RW007_BLE_NTF_TYPE_NOTIFY_RX 14conn_handle:1,?attr_handle:54,?rcv?(notification)?length:5,?data: 1500000000:?28?0B?42?A9?0A???????????????????????????????????(.B.. 16temp=2856?mC,hum=66%,v_bat=2729mV 17cres=temp=2856mC,hum=66%,v_bat=2729mV? 18==>?js_message_send_data?start 19==>?js_message_send_data?end 20value: 21==>?js_callback_message?start 22==>?js_callback_message?end

此時,柿餅派的界面就顯示米家藍(lán)牙溫濕度計2代設(shè)備的溫濕度和電量的數(shù)據(jù)。

總結(jié)

經(jīng)過這次使用柿餅派上的 RW007 WIFI 模塊學(xué)習(xí) BLE 功能的使用和讀取米家溫濕度計數(shù)據(jù)顯示在界面上的過程中,學(xué)會 RW007 上如何使用 BLE 功能和鞏固了柿餅派JS與C 之間的數(shù)據(jù)交互的操作,在這次僅是使用了BLE 的初始化和連接功能,希望在后面使用更多的功能制作更多有趣的作品與大家分享。

????RW007資料鏈接:

奶牛網(wǎng)盤 https://realthread.cowtransfer.com/s/274a38fde4b543

????RW007購買鏈接:

https://item.taobao.com/item.htm?&id=587364858221

口令(復(fù)制至X寶打開):5嘻6bLxXVYVZEv嘻 https://m.tb.cn/h.4rai8N8?sm=35e672 ?RW007 高速WIFI模塊 SPI ?物聯(lián)網(wǎng) 透傳模塊 無線模塊

你可以添加微信17775982065為好友,注明:公司+姓名,拉進(jìn) RT-Thread 官方微信交流群!

???????????? 點(diǎn)擊閱讀原文進(jìn)入官網(wǎng)

總結(jié)

以上是生活随笔為你收集整理的【RW007系列综合实战3】柿饼派上怎样更新RW007固件和驱动?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

国产 在线观看 | 999久久精品| 国产午夜精品av一区二区 | 91污污视频在线观看 | 亚洲精品 在线视频 | 国内精品久久天天躁人人爽 | 久久成年人视频 | 中文字幕 国产精品 | 久久在线精品视频 | 国产乱视频| 成人黄色电影视频 | 亚洲自拍av在线 | 毛片网站免费在线观看 | 国产亚洲精品久久久久久电影 | 激情网色 | 亚洲在线网址 | 夜夜视频 | 97av色| 色婷婷a | 免费观看丰满少妇做爰 | 精品成人a区在线观看 | 中文字幕免费观看视频 | 亚洲视频六区 | 久久久亚洲麻豆日韩精品一区三区 | 欧美动漫一区二区三区 | 国产专区在线播放 | 99综合久久 | 青青河边草观看完整版高清 | 人人爽人人片 | 91视频久久| 成人午夜电影免费在线观看 | 久久久久久久久久影院 | 精品久久久久久久久久久久久久久久 | 7777xxxx| 18国产精品福利片久久婷 | 97超碰在 | 92av视频 | 操操操综合 | 久久久久久国产精品亚洲78 | 国色天香永久免费 | 精品国产区 | 91最新视频在线观看 | 爱射综合| 蜜臀av性久久久久蜜臀aⅴ四虎 | 国产成人免费在线观看 | 日女人电影| 啪嗒啪嗒免费观看完整版 | 免费av高清| 国产在线视频在线观看 | 色成人亚洲 | 亚洲一区二区三区四区精品 | 九九九视频在线 | 国内外成人在线视频 | 国产免费观看久久 | 久草视频99 | 久久视频精品在线观看 | 黄色一级在线视频 | 日韩中文字幕免费视频 | 日本久久成人 | 91视频久久 | 国产中文字幕在线 | 亚洲午夜电影网 | 久久久www成人免费毛片麻豆 | 66av99精品福利视频在线 | 99在线热播精品免费 | 超碰免费av | 精品国产一区二区三区在线 | 免费看片日韩 | 综合久久久久久久 | 91丨九色丨勾搭 | 免费国产一区二区 | aaa日本高清在线播放免费观看 | 欧美精品在线视频 | 精品在线观看免费 | 国产精品久久久久久久久久久久 | 国产综合片 | 亚洲视频综合 | 久久视频国产精品免费视频在线 | 国产一区二三区好的 | 欧美另类色图 | 91人人在线| 国产亚洲视频在线观看 | 夜夜骑首页 | 黄色的网站免费看 | 欧美日韩精品影院 | 中文字幕在线看视频国产 | 亚洲视频第一页 | 日日干天天干 | 激情偷乱人伦小说视频在线观看 | 国产成人61精品免费看片 | 日韩电影在线观看一区 | 在线黄色免费 | 在线黄色av| 免费成视频 | 精品久久久久免费极品大片 | 久久人人添人人爽添人人88v | 国产专区视频在线 | 麻豆果冻剧传媒在线播放 | 经典三级一区 | 欧美aa级| 国产精品亚洲视频 | 日韩欧美视频一区二区三区 | 国偷自产中文字幕亚洲手机在线 | 日本不卡一区二区三区在线观看 | 看黄色91 | 少妇bbw撒尿| 在线观看视频免费播放 | 久久久久成人精品 | 国产午夜精品av一区二区 | 国产精品美女久久久久久 | 亚洲精品综合欧美二区变态 | 国产精品美女视频网站 | 摸bbb搡bbb搡bbbb | 国产区精品在线观看 | 久久国产免费看 | 久久久精品日本 | 日韩有码在线播放 | www.狠狠操 | 日韩av中文在线观看 | 91亚色视频在线观看 | av成人动漫 | 天天插天天狠天天透 | 国产精品成人久久久 | 日韩精品一区二区三区电影 | 国产精品区一区 | 成在人线av | 国产高清在线视频 | 精品视频123区在线观看 | 久久婷婷亚洲 | 婷婷综合久久 | 欧美日韩免费在线观看视频 | 欧美性免费 | 欧美日韩精品在线播放 | 91精品一区二区三区久久久久久 | 黄在线免费看 | 99视频国产精品免费观看 | 久久不射电影院 | 日韩激情视频在线 | 欧美日韩中文视频 | 玖玖在线看 | 国产精品久久久久影院 | 韩国一区二区三区在线观看 | 久久综合九色综合欧美狠狠 | av资源免费观看 | 国产一区二区三区四区在线 | 日本精品在线 | 在线观看v片 | 中文字幕精品www乱入免费视频 | 99在线热播| 欧美日韩高清一区二区三区 | 91日韩在线播放 | 日本九九视频 | 国产成人福利在线观看 | 国产一区二区手机在线观看 | 久久高清国产 | 久久久毛片 | 日韩理论片 | 91av视频在线免费观看 | 亚洲一区美女视频在线观看免费 | 黄色网中文字幕 | 亚洲尺码电影av久久 | 超碰在线观看99 | 国产精品理论在线观看 | 国产视频网站在线观看 | 亚洲国产网址 | 在线观看国产一区二区 | 国产一区二区在线观看视频 | 激情图片久久 | 激情视频免费在线 | 蜜臀久久99静品久久久久久 | 日韩午夜一级片 | 91丨九色丨勾搭 | 日韩久久精品一区二区三区 | 日韩电影在线观看一区 | 成人av直播| 免费在线观看av不卡 | 亚洲夜夜网 | 国产欧美在线一区 | 国产精品毛片一区二区三区 | 国产又黄又爽又猛视频日本 | 日韩深夜在线观看 | 欧美精品一区二区性色 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 中文日韩在线视频 | 激情综合网五月激情 | 黄色片免费电影 | 久久久美女 | 国产黄色av影视 | 欧美一级视频在线观看 | 狠狠色丁香婷综合久久 | 国产精品免费在线 | 99在线观看精品 | 欧美日韩一区二区久久 | 日日夜夜免费精品 | 狠狠色丁香久久综合网 | 中文字幕在线观看日本 | 国产视频一区精品 | 亚洲精品在线视频网站 | 久久夜色精品国产亚洲aⅴ 91chinesexxx | av日韩不卡 | 日本高清中文字幕有码在线 | 欧美日韩性视频在线 | 国产精品美女久久久久久久久久久 | 在线观看黄av | 国产精品 美女 | 青青河边草免费观看 | 91精品国自产拍天天拍 | 久久久久久久久黄色 | 亚洲经典精品 | 蜜桃视频在线观看一区 | av在线播放快速免费阴 | 亚洲视频免费在线观看 | 久久高清 | 五月天视频网站 | 最新日韩视频在线观看 | 在线播放 日韩专区 | 久一在线 | 五月婷婷深开心 | 综合五月婷婷 | 国产在线中文 | 亚洲综合视频在线 | 看毛片网站| a精品视频 | 国产精品xxxx18a99 | 99精品视频一区二区 | 久久久国产一区 | 久久久久国产成人免费精品免费 | 久久综合五月天婷婷伊人 | 久草电影免费在线观看 | av久久在线 | 成人av高清在线观看 | 毛片视频电影 | av免费看电影 | 91亚洲精品在线 | 西西444www大胆高清视频 | 国产亚洲精品成人av久久ww | 日本一区二区三区视频在线播放 | 久久久久久美女 | 男女视频91 | 在线播放一区二区三区 | 色丁香色婷婷 | 久久精品中文字幕免费mv | 91色亚洲 | 在线成人一区二区 | 中文在线www| 国产精品k频道 | 色综合天天射 | 欧美激情综合五月色丁香 | 日韩欧美一区二区在线 | 亚洲精品影视在线观看 | 麻豆视频91| av福利第一导航 | www国产亚洲精品久久网站 | 国产啊v在线| 欧美大码xxxx | 久久久精品一区二区 | 黄色av一区二区 | 亚洲成色 | 日韩中文字幕视频在线观看 | 99精品久久久久久久久久综合 | 国产 一区二区三区 在线 | 特黄一级毛片 | 日韩精品一区二区三区免费视频观看 | 午夜久久 | 岛国大片免费视频 | 九九热视频在线免费观看 | 成人免费观看视频网站 | 99精品毛片 | 中文字幕在线观看完整版电影 | 中文在线免费观看 | 又黄又爽又无遮挡的视频 | 久久久久久片 | 婷婷国产在线观看 | 爱色婷婷 | 狠狠色狠狠色综合日日92 | 五月天激情电影 | 久久久免费 | a级免费观看 | 日韩视频图片 | 亚洲激情视频 | 日本乱码在线 | 日日躁天天躁 | www免费网站在线观看 | 狠狠操夜夜 | 久久精品久久久久电影 | 伊人亚洲综合网 | 成年人视频在线免费播放 | 中文字幕文字幕一区二区 | 综合激情伊人 | 国产美女网站视频 | 精品国产三级a∨在线欧美 免费一级片在线观看 | 777xxx欧美 | 在线视频黄| 午夜精品久久久久久久99水蜜桃 | 色综合天天射 | 欧美日韩免费在线视频 | 天天综合天天综合 | 欧美婷婷综合 | 国产精品美女久久久久久久 | 精品国产综合区久久久久久 | 香蕉视频91 | 日日爽视频 | 国产精品嫩草55av | 久久毛片网站 | 亚洲欧美日韩精品久久奇米一区 | 尤物九九久久国产精品的分类 | 中文字幕视频 | 黄色大片av| 成年人视频在线观看免费 | 天天综合入口 | 天无日天天操天天干 | 成人黄色av网站 | 最近最新中文字幕 | 麻豆影视在线免费观看 | 久草精品视频在线观看 | 天天综合天天做 | 91精品一区二区在线观看 | 欧美日韩三级在线观看 | 国产精品一区二区在线 | 狠狠色狠狠综合久久 | 日日爱夜夜爱 | 最新超碰 | 亚洲91中文字幕无线码三区 | 丁香六月国产 | 日日操日日干 | 中文字幕人成人 | 日本韩国精品在线 | 四虎永久精品在线 | 日韩午夜一级片 | 日韩精品在线观看视频 | www.日本色 | 久久99久久99免费视频 | 欧美成人精品欧美一级乱 | 黄色成年片 | 四虎www| 成人精品一区二区三区中文字幕 | 久久夜色精品国产欧美一区麻豆 | 伊人天天色 | 999久久久免费视频 午夜国产在线观看 | 亚洲午夜av久久乱码 | 国产色妞影院wwwxxx | 美女久久一区 | 久久伊人精品一区二区三区 | 黄色毛片在线 | 亚洲永久av| 亚洲精品一区二区三区高潮 | 亚洲精品99久久久久久 | 综合久久一本 | 国产高清视频在线观看 | av888av.com| 2019中文在线观看 | 99久久这里有精品 | 亚洲国产精品日韩 | 国产一区二区在线观看免费 | 久久精品91视频 | www.伊人色.com | 精品国产一区二区三区男人吃奶 | 成人免费在线播放视频 | av最新资源| 精品久久久久久久久久久院品网 | 国产精品色婷婷 | 在线免费观看国产黄色 | 成人网中文字幕 | 黄色成人影视 | 99色在线观看视频 | 国产精品午夜在线 | 久久精品综合 | 亚洲精品一区二区三区高潮 | 玖玖玖在线观看 | 国产精品专区一 | 久久久久精 | 黄色亚洲精品 | 成人九九视频 | 国产精品ⅴa有声小说 | 精品久久久久国产 | 一区二区不卡在线观看 | 国产又粗又猛又黄视频 | 超级碰碰视频 | 国产成人精品久久二区二区 | 国产精品99精品久久免费 | 国产精品久久久久久久99 | 久久久久国产精品免费免费搜索 | 欧美 亚洲 另类 激情 另类 | 亚洲免费精品一区二区 | 亚洲影视资源 | 四虎5151久久欧美毛片 | 九九视频免费在线观看 | 国产黄免费在线观看 | 久久精品成人热国产成 | 亚洲婷久久 | 国产精品美乳一区二区免费 | 四虎在线永久免费观看 | 日本精品一区二区三区在线播放视频 | 一区二区三区日韩在线观看 | 亚洲夜夜爽| 亚洲精品在线观看免费 | av中文字幕在线电影 | 久久av电影| 久久伊人色综合 | 欧美日韩精品久久久 | 精品亚洲欧美一区 | 亚洲男人天堂a | 免费a级观看 | 91精品久久久久久 | 国产精品高潮呻吟久久久久 | 免费观看一区 | 久久成人视屏 | 人成电影网| 99热99re6国产在线播放 | 88av视频| 97免费| 国产黄色大片 | 国产在线观看 | 精品国产成人av在线免 | 99视频在线观看免费 | 精品久久久久久电影 | 中文字幕888 | 18性欧美xxxⅹ性满足 | 午夜视频在线网站 | aaa日本高清在线播放免费观看 | 色婷婷亚洲精品 | 国产精品日韩精品 | 99久久婷婷国产综合精品 | 亚洲精品乱码久久久久久久久久 | 亚洲精品三级 | 国产精品欧美激情在线观看 | 91麻豆视频| 午夜精品视频在线 | 97人人模人人爽人人喊网 | 一区精品久久 | 最近2019年日本中文免费字幕 | 一区二区亚洲精品 | 国产精品久久久网站 | 亚洲狠狠干 | 亚洲综合激情小说 | 亚洲成免费 | 免费观看日韩av | 一级久久精品 | 99精品国产亚洲 | 精品国产午夜 | 国产精品第三页 | 99久久久国产精品免费99 | 欧美污网站 | 国产精品视频免费看 | 美女免费黄视频网站 | av性网站 | 日日夜夜av | 国产精品理论片 | 午夜精品久久 | 国内精品亚洲 | av中文字幕在线观看网站 | 91精品国产入口 | 天天干中文字幕 | 亚洲一区二区精品 | 欧美成人精品欧美一级乱黄 | 天天干夜夜夜操天 | 日韩欧美一区二区三区视频 | 成 人 黄 色 视频免费播放 | 中文字幕人成人 | 国产精品淫 | 午夜色大片在线观看 | 久保带人| 91亚洲永久精品 | 亚洲国产成人精品在线 | 在线观看爱爱视频 | 五月天综合网 | av在线亚洲天堂 | 色全色在线资源网 | 日批网站在线观看 | 人人看人人爱 | 日韩中字在线观看 | 免费黄色看片 | 3d黄动漫免费看 | 青草视频在线免费 | 天天天天综合 | 国产亚洲精品久久久久久电影 | 亚洲视频456 | 成年人在线免费看视频 | 国产美女视频免费 | 97超碰在线免费观看 | 人人爱人人射 | 麻豆传媒视频在线 | 国产精品va在线 | 欧美性网站 | 欧美日韩中文在线视频 | 日韩精品视频在线免费观看 | 91热精品| 欧美日韩国产二区 | 人人爽人人爽人人片 | 国产精品爽爽久久久久久蜜臀 | 国产午夜影院 | 成人午夜黄色影院 | 午夜视频二区 | 97热久久免费频精品99 | 亚洲九九九 | 欧美一二三区在线观看 | 91精品国产一区二区在线观看 | av一级片| 91精品一区二区三区蜜桃 | 视频在线播放国产 | 午夜免费福利视频 | 日韩理论在线观看 | 91精品国产自产在线观看永久 | 日韩黄色在线电影 | 波多野结衣精品 | 精品欧美乱码久久久久久 | 国产精品福利在线播放 | 精品一区二区三区久久久 | 国产精品美女久久久久久网站 | 久久精品美女 | 久久爽久久爽久久av东京爽 | 久久精品中文 | 久久国产精品成人免费浪潮 | 国产香蕉97碰碰久久人人 | 一级性生活片 | 亚洲精品美女在线观看播放 | 久久亚洲综合国产精品99麻豆的功能介绍 | 男女视频91 | 韩国av免费看| 超碰99在线 | 深爱婷婷| 国产色综合天天综合网 | 欧美日韩天堂 | 中文字幕在线免费97 | 亚洲香蕉在线观看 | 激情婷婷网 | 久久精品欧美 | 蜜臀久久99精品久久久无需会员 | 韩国av一区二区三区在线观看 | 99久久99久久 | 香蕉久久久久久av成人 | 97国产精品一区二区 | 日韩久久一区二区 | 亚洲欧洲一级 | 日韩欧美网站 | 日韩精品在线视频 | 免费看片网站91 | 爱爱一区 | 日日操网站 | 97日日碰人人模人人澡分享吧 | 亚洲做受高潮欧美裸体 | 亚洲成年人免费网站 | 久久久资源网 | 中文字幕在线观看网站 | 国产一区二区久久久 | 国产精品免费小视频 | 免费高清在线视频一区· | 久久久久免费精品国产小说色大师 | 亚洲免费精彩视频 | 右手影院亚洲欧美 | 人人讲| av中文字幕日韩 | www久草| 亚洲区另类春色综合小说 | 日韩大片在线 | 午夜黄网 | 成人免费xxxxxx视频 | 视频二区在线 | 国产精品国产三级国产不产一地 | 久久人人97超碰com | 国产69精品久久99的直播节目 | 欧美日本不卡 | 精品久久久久久国产91 | 精品国产一区二区在线 | 婷婷在线五月 | 精品免费久久久久 | 亚洲婷婷在线视频 | 欧美调教网站 | 91热这里只有精品 | 日韩高清www| 天天操天天射天天爱 | 婷婷国产视频 | 久久国产精品视频观看 | 精品国偷自产国产一区 | 成人av一级片 | 九九热免费视频在线观看 | 久久国产精品影片 | 久久久久久国产精品 | 欧美一区二视频在线免费观看 | 精品久久电影 | 国产一区二区不卡在线 | 人人插人人看 | 免费看的国产视频网站 | 女人高潮一级片 | 热热热热热色 | 激情久久综合 | 国产精品电影在线 | 久久老司机精品视频 | 久久久18| 亚洲美女在线国产 | 久久一区国产 | 久久在线观看视频 | 97国产一区二区 | 欧美一级黄色视屏 | 久久av黄色| 黄色av影院| 日韩av电影国产 | 久一久久 | 精品一二 | 久久久精品网站 | 国产在线精品二区 | 亚洲乱码国产乱码精品天美传媒 | 免费在线观看视频一区 | 精品一区二区影视 | 天天射天天射 | 中文av在线免费观看 | 久久综合五月婷婷 | 日韩在线观看第一页 | 欧美精品在线视频观看 | 国产精品久久久久久爽爽爽 | 色午夜| 免费91在线 | 久久免费黄色大片 | 黄色视屏av | 国产精品免费在线播放 | 国产一级黄色av | 午夜久久网 | 一本一本久久a久久精品综合 | 免费av片在线 | 最新免费中文字幕 | 丁香花在线视频观看免费 | 激情婷婷六月 | 精品视频中文字幕 | 久久美女免费视频 | 久久久久国产一区二区 | 国产涩图| 婷婷丁香色 | 久久99国产综合精品 | 久久亚洲影院 | www黄色 | 亚洲精品在线观看中文字幕 | 成人午夜免费福利 | av一区在线 | 精品国产_亚洲人成在线 | 蜜桃视频在线观看一区 | 亚洲免费av片 | 国产电影一区二区三区四区 | 国产午夜在线观看视频 | 国产精品一区二 | 97香蕉久久国产在线观看 | 网站在线观看日韩 | 国产亚洲精品福利 | 波多野结衣一区 | 偷拍视频一区 | 四虎影视精品永久在线观看 | 精品久久久久_ | 91黄视频在线观看 | 久久草草影视免费网 | 四虎成人在线 | 日韩精品视频免费在线观看 | 激情视频综合网 | 精品国产1区二区 | 国产精品精品国产 | 91九色在线视频 | 成 人 黄 色 视频 免费观看 | 日本性xxxxx 亚洲精品午夜久久久 | 成年人免费看 | 在线中文字母电影观看 | 国产成人av综合色 | 在线看国产| 日日操天天操狠狠操 | av成人在线网站 | 成人影片在线播放 | 色综合久久久久网 | 久久精品免费观看 | 国产亚洲精品美女久久 | 天天爱天天射天天干天天 | 日韩美女高潮 | 中文永久字幕 | 成人av高清在线 | 欧美福利网址 | 亚洲狠狠婷婷 | 日韩av在线资源 | 17videosex性欧美 | 成人羞羞免费 | 激情综合网五月 | 久久久国产一区 | 国产综合小视频 | 99这里精品 | 国产日韩在线播放 | 国产精品观看在线亚洲人成网 | 国产精久久久久久妇女av | 成人av一级片| 深爱激情丁香 | 欧美在线久久 | 视频在线观看91 | 中文字幕成人在线观看 | 日韩av不卡在线 | 99re8这里有精品热视频免费 | 狠狠干狠狠色 | 国产老太婆免费交性大片 | 91在线免费观看国产 | 伊人成人久久 | 九九免费在线视频 | 狠狠的操你 | 国产高清区 | 久久免费视频在线观看30 | 99精品久久久久久久 | 99精品免费网 | 欧美伦理一区二区 | 又黄又爽又无遮挡免费的网站 | 精品久久久久久久 | 精品久久久久久久久久久久 | 国产精品免费视频观看 | 久久久久夜色 | 国产精品一区专区欧美日韩 | 久久久亚洲网站 | 三级在线播放视频 | 久久久资源 | 西西444www| 久草在线免费播放 | 免费看的黄色的网站 | 97热久久免费频精品99 | 91插插插网站 | 欧美成人在线免费 | 狠狠网亚洲精品 | 久久综合之合合综合久久 | 久久激情视频 久久 | 91视频啊啊啊 | 激情婷婷色 | 九九九热精品免费视频观看网站 | 亚洲精品大片www | 国产一区二区久久久久 | www.干| 成年人在线观看 | 国产精品一区二区 91 | 亚洲夜夜网 | 五月天天色 | 欧美一级日韩三级 | 欧美有色 | 婷婷视频在线播放 | 亚洲黄色一级视频 | 久久成电影 | 国产黄色在线 | 久久国产剧场电影 | 精品国产精品久久一区免费式 | 久久综合免费视频 | 婷婷六月在线 | 成人久久精品 | 国产麻豆成人传媒免费观看 | 9在线观看免费高清完整版 玖玖爱免费视频 | www日日 | 91综合久久一区二区 | 亚洲人片在线观看 | 最新成人av | 这里只有精品视频在线 | 久久精品一区二区三 | 亚洲午夜精品久久久久久久久久久久 | 日本中文字幕电影在线免费观看 | 欧美日韩国产区 | 久久久久影视 | 欧美日韩国产在线 | 久久国产系列 | 久久婷婷国产色一区二区三区 | 国产精品久久久久久一二三四五 | 狠狠色丁香久久婷婷综合_中 | av丁香花 | 永久黄网站色视频免费观看w | 麻豆一级视频 | 在线观看日韩精品 | 久久久久久久久久久久久影院 | 91人人人| 亚洲五月婷婷 | 国产精品精品视频 | 天天天色综合 | 久久久久久久免费观看 | 日日综合| av电影免费在线看 | 一级久久精品 | 99久久99久久精品国产片 | 久久免费视频在线观看 | 在线日韩亚洲 | 亚洲精品影院在线观看 | 日韩欧美91| 日韩中文字幕免费电影 | 一级成人免费视频 | 综合精品久久久 | 一区二区在线不卡 | 久久国产热 | 在线中文字幕网站 | 一区二区电影在线观看 | 激情丁香综合五月 | 去干成人网 | 最近久乱中文字幕 | 777奇米四色 | 日本中文字幕在线播放 | 中文久久精品 | 国色综合| 六月婷操 | 超碰免费久久 | 91福利试看| 亚洲欧洲国产精品 | 九九在线高清精品视频 | 91av网址| 日韩视频在线播放 | 国产精品久久久久婷婷 | 日韩高清毛片 | 在线观看日韩中文字幕 | 亚洲日本一区二区在线 | 超碰在线1 | 日韩专区在线播放 | 日韩免费看片 | 国产精品久久99综合免费观看尤物 | 国产a级精品 | 婷婷亚洲综合五月天小说 | 天天玩天天干天天操 | 日韩色区 | 99婷婷| 亚洲国产精品一区二区尤物区 | 草莓视频在线观看免费观看 | 在线91观看 | 久久激五月天综合精品 | 色婷婷一区 | 久久九九九九 | 亚洲日韩中文字幕在线播放 | 日本中文字幕在线播放 | 亚洲激情六月 | 亚洲成人免费观看 | 中文字幕国产精品一区二区 | 91精品在线播放 | 国产精品99免视看9 国产精品毛片一区视频 | 国产精品一区二区麻豆 | 在线影院中文字幕 | 日韩剧情 | 91福利视频久久久久 | 最新免费av在线 | 中文字幕在线观看资源 | 深爱五月激情五月 | 亚洲最大av网 | 99精品免费视频 | 97色婷婷成人综合在线观看 | 国产在线观看免 | 欧美极品在线播放 | 欧美日韩精品久久久 | 人人干网 | 国外成人在线视频网站 | 91精品婷婷国产综合久久蝌蚪 | 国产精品高潮呻吟久久久久 | 又湿又紧又大又爽a视频国产 | 一区二区三区韩国免费中文网站 | 亚洲久草网| 婷婷六月在线 | 在线看av网址 | 久久天天躁狠狠躁夜夜不卡公司 | 欧美精品一区二区在线观看 | 欧洲精品久久久久毛片完整版 | 亚洲乱亚洲乱亚洲 | 四虎最新入口 | 国产精品久久久久久妇 | 精品久久久成人 | 在线观看国产成人av片 | 黄色av网站在线免费观看 | 国产午夜麻豆影院在线观看 | 色播99| 国产亚洲高清视频 | 国产一级片在线播放 | 黄色成人在线观看 | 91传媒视频在线观看 | 日韩精品在线视频 | 精精国产xxxx视频在线播放 | 这里只有精彩视频 | 天天爽天天搞 | 中文字幕黄色 | 激情欧美在线观看 | 啪啪激情网 | 91精品在线观看视频 | 日本中文字幕在线播放 | 免费合欢视频成人app | 亚洲国产精品成人va在线观看 | 成人av观看 | 国产一区成人在线 | 亚洲黄色在线免费观看 | 国产天天综合 | 99热精品国产一区二区在线观看 | 中文字幕亚洲精品在线观看 | 涩涩网站在线观看 | 日韩成人邪恶影片 | 免费观看全黄做爰大片国产 | 97超碰在线久草超碰在线观看 | 亚洲不卡av一区二区三区 | 日韩v欧美v日本v亚洲v国产v | 日韩欧美在线视频一区二区三区 | 日韩精品一区二区免费 | 91中文字幕在线观看 | 久久视频热 | 天天干,天天射,天天操,天天摸 | 免费看片在线观看 | 在线免费观看亚洲视频 | 精品国产伦一区二区三区 | 久久香蕉一区 | 亚洲精品合集 | 夜夜夜夜爽 | 在线免费观看一区二区三区 | 色天天综合久久久久综合片 | 国产精品国产精品 | 亚洲一级电影视频 | 天天干天天干天天色 | 日韩欧美视频在线观看免费 | 高清日韩一区二区 | 久久免费精彩视频 | 三上悠亚一区二区在线观看 | 日韩av电影中文字幕在线观看 | 久久精品国产精品亚洲精品 | 精品中文字幕在线播放 | 天天综合网 天天 | av一级免费| 四虎亚洲精品 | 国产日产欧美在线观看 | 2018亚洲男人天堂 | 免费日韩av片 | 欧美黑人xxxx猛性大交 | 在线观看中文字幕dvd播放 | 精品视频在线免费观看 | av中文字幕网址 | 亚洲国产精品va在线看黑人动漫 | 国产黄影院色大全免费 | 丁香六月婷婷开心婷婷网 | 国产精品久久久777 成人手机在线视频 | 伊人黄 | 国产成人在线网站 | 中文字幕在线观看第一区 | 久久久久久片 | 亚洲精品国偷拍自产在线观看蜜桃 | 综合激情 | 午夜三级福利 | 免费网站在线观看人 | 国产精品久久一区二区三区, | 狠狠操综合 | 日韩精品免费一线在线观看 | 福利一区视频 | 久久精品女人毛片国产 | 精品久久久久久久久久久久 | 99国产精品免费网站 | 欧美福利视频一区 | 黄色一级免费 | 日本一区二区免费在线观看 | 日韩乱色精品一区二区 | 91精品久久久久久久久久久久久 | 狠狠色噜噜狠狠狠狠 | 亚洲精选在线观看 | 久久久久久久国产精品视频 | 在线观看的av网站 | 97精品欧美91久久久久久 | 欧美日韩一区二区三区不卡 | 久久亚洲成人网 | 精品影院一区二区久久久 | 欧美日韩91 | 亚洲视频一区二区三区在线观看 | 狠狠色丁香婷婷综合久久片 | 麻花豆传媒mv在线观看 | 国产黄色精品 | 在线观看日本韩国电影 | 精品在线视频一区 | 日韩在线观看精品 | 婷婷丁香激情五月 | 婷婷激情综合五月天 | 日日夜夜操av| 色视频在线免费观看 | 99热精品在线观看 | 日本一区二区三区视频在线播放 | 亚洲 欧美 国产 va在线影院 | 日韩av一区二区三区在线观看 | 国产中年夫妇高潮精品视频 | 深夜激情影院 | 亚洲视频axxx| 99免费在线观看视频 | 激情av资源 | 视频在线观看亚洲 | 99视频精品| 日韩性色 | 免费看精品久久片 | 日本精品中文字幕 | 精品一区 在线 | 久久视频国产精品免费视频在线 | 天天色天天操天天爽 | 91精品专区 | av免费网站在线观看 | 日韩精品视频免费在线观看 | 亚洲精品国产自产拍在线观看 | 一区二区三区四区不卡 | 日韩在线观看不卡 | 国产精品久久久久久模特 | 亚洲精品午夜国产va久久成人 | 婷婷久月| 9992tv成人免费看片 | 操操操日日 | www.夜夜干.com | 91成人精品一区在线播放69 | 亚洲成人精品在线观看 | 亚洲人成人在线 | 男女靠逼app | 97视频在线播放 | 久草在线播放视频 | 正在播放一区二区 | 色com网| www.福利| 精品久久精品久久 | 99热手机在线 |