精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

小車控制由簡入繁之MQTT控制

開發(fā) 前端
本文主要分享MQTT Broker的搭建、在Openharmony3.0上如何使用harmony_mqtt、并實現(xiàn)MQTT控制小車的Demo。

[[429173]]

想了解更多內(nèi)容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

1. 簡介

  • #開發(fā)板漂流計劃#小車控制由簡入繁之按鍵控制
  • #開發(fā)板漂流計劃#小車控制由簡入繁之UDP控制

本文在前面兩篇帖子的基礎上,在Openharmony3.0上實現(xiàn)小車上電后自動連接到指定WIFI,并與指定的MQTT Broker建立鏈接、訂閱小車控制“carControl”主題。電腦Windows系統(tǒng)下使用paho軟件連接到相同的MQTT Broker,通過發(fā)送主題為“carControl”的消息來控制小車狀態(tài)。

閱讀本文前,推薦閱讀連志安老師的以下文章:

  • MQTT 協(xié)議開發(fā)入門 - MQTT 簡述、設計規(guī)范、主要特性、協(xié)議原理、協(xié)議數(shù)據(jù)包結(jié)構(gòu)
  • 如何在鴻蒙系統(tǒng)中移植 Paho-MQTT 實現(xiàn)MQTT協(xié)議- 基于openharmony1.0移植Paho-MQTT教程
  • 在鴻蒙系統(tǒng)上使用MQTT編程-對應連老師Gitee倉庫 harmony_mqtt的使用介紹,本文基于這個版本實現(xiàn)MQTT控制小車

本文主要分享MQTT Broker的搭建、在Openharmony3.0上如何使用harmony_mqtt、并實現(xiàn)MQTT控制小車的Demo。

2. 在Ubuntu20.04虛擬機安裝mosquitto搭建Broker

安裝前請確保你的Ubuntu能正常上網(wǎng)并且局網(wǎng)內(nèi)可以訪問到。

2.1 Ubuntu下mosquitto 安裝

安裝指令如下:

  1. sudo apt-get install mosquitto 
  2. sudo apt-get install mosquitto-clients 
  3. sudo apt-get install mosquitto-dev 

2.2 安裝完成后可以用以下指令查看狀態(tài)

  1. service mosquitto status 

 正常狀態(tài)顯示如下

#開發(fā)板漂流計劃#小車控制由簡入繁之MQTT控制-鴻蒙HarmonyOS技術(shù)社區(qū)

這樣子測試用的Broker就搭建好了,Broker的IP地址就是你Ubuntu局域網(wǎng)中的IP,端口默認1883,如果搭建有問題歡迎留言交流。

3.在Openharmony3.0上如何使用harmony_mqtt

3.1 讓harmony_mqtt成功編譯

3.1.1 將harmony_mqtt 下載到Openharmony3.0源碼third_party目錄下并重命名為pahomqtt

可以用git clone 下載后重命名也可以下載壓縮包后解壓。如下圖Z:\ohos300_iot\是我Openharmony3.0源碼的根目錄

#開發(fā)板漂流計劃#小車控制由簡入繁之MQTT控制-鴻蒙HarmonyOS技術(shù)社區(qū)

3.1.2 將pahomqtt添加到hispark_pegasus編譯

修改device\hisilicon\hispark_pegasus\sdk_liteos\BUILD.gn在lite_component(“sdk”)中添加"//third_party/pahomqtt:pahomqtt_static"

(注意:此處修改的BUILD.gn 和Openharmony1.0 版本有區(qū)別,1.0 路徑是vendor\hisi\hi3861\hi3861\BUILD.gn)

  1. lite_component("sdk") { 
  2.   features = [] 
  3.  
  4.   deps = [ 
  5.     "//build/lite/config/component/cJSON:cjson_static"
  6.     "//device/hisilicon/hispark_pegasus/hi3861_adapter/kal"
  7.     "//third_party/pahomqtt:pahomqtt_static"
  8.   ] 

修改完成后重新執(zhí)行編譯后從編譯日志中可以用mqtt看下log,修改成功會有以下信息。

#開發(fā)板漂流計劃#小車控制由簡入繁之MQTT控制-鴻蒙HarmonyOS技術(shù)社區(qū)

但是編譯到最后會有錯誤提示如下,接下來就是修這個編譯錯誤了。

#開發(fā)板漂流計劃#小車控制由簡入繁之MQTT控制-鴻蒙HarmonyOS技術(shù)社區(qū)

3.1.3 修改編譯錯誤

錯誤日志截取如下

  1. [OHOS ERROR] riscv32-unknown-elf-ld: ohos/libs/libpahomqtt_static.a(libpahomqtt_static.MQTTLiteOS.o): in function `MutexInit': 
  2. [OHOS ERROR] MQTTLiteOS.c:(.text.MutexInit+0x0): multiple definition of `MutexInit'; ohos/libs/libdiscovery.a(libdiscovery.os_adapter.o):os_adapter.c:(.text.MutexInit+0x0): first defined here 
  3. [OHOS ERROR] riscv32-unknown-elf-ld: ohos/libs/libpahomqtt_static.a(libpahomqtt_static.MQTTLiteOS.o): in function `MutexLock': 
  4. [OHOS ERROR] MQTTLiteOS.c:(.text.MutexLock+0x0): multiple definition of `MutexLock'; ohos/libs/libdiscovery.a(libdiscovery.os_adapter.o):os_adapter.c:(.text.MutexLock+0x0): first defined here 
  5. [OHOS ERROR] riscv32-unknown-elf-ld: ohos/libs/libpahomqtt_static.a(libpahomqtt_static.MQTTLiteOS.o): in function `MutexUnlock': 
  6. [OHOS ERROR] MQTTLiteOS.c:(.text.MutexUnlock+0x0): multiple definition of `MutexUnlock'; ohos/libs/libdiscovery.a(libdiscovery.os_adapter.o):os_adapter.c:(.text.MutexUnlock+0x0): first defined here 
  7. [OHOS ERROR] scons: *** [output/bin/Hi3861_wifiiot_app.out] Error 1 
  8. [OHOS ERROR] BUILD FAILED!!!! 
  9. [OHOS ERROR] Failed building output/bin/Hi3861_wifiiot_app.out: Error 1 
  10. [OHOS ERROR] you can check build log in /home/soon/ohos300_iot/out/hispark_pegasus/wifiiot_hispark_pegasus/build.log 
  11. [OHOS ERROR] command: "/home/soon/ohostool_101/ninja/ninja -w dupbuild=warn -C /home/soon/ohos300_iot/out/hispark_pegasus/wifiiot_hispark_pegasus" failed 
  12. [OHOS ERROR] return code: 1 
  13. [OHOS ERROR] execution path: /home/soon/ohos300_iot 
  14. soon@soon-u20:~/ohos300_iot $  

 我的修改方式是將

third_party\pahomqtt\MQTTClient-C\src\MQTTClient.c

third_party\pahomqtt\MQTTClient-C\src\liteOS\MQTTLiteOS.c

third_party\pahomqtt\MQTTClient-C\src\liteOS\MQTTLiteOS.h

這三個檔案中的所有的

  1. MutexInit(Mutex*); 
  2. MutexLock(Mutex*); 
  3. MutexUnlock(Mutex*); 

 對應替換為

  1. MqttMutexInit(Mutex*); 
  2. MqttMutexLock(Mutex*); 
  3. MqttMutexUnlock(Mutex*); 

 這樣子就能正常編譯通過了

3.1.4 其他修改和修改后的代碼

third_party\pahomqtt\BUILD.gn中以下三個有沒有并不會影響編譯/使用,所以我把他拿掉了。

  1. "MQTTClient-C\src\liteOS"
  2.       "//vendor/hisi/hi3861/hi3861/third_party/lwip_sack/include"
  3.       "//kernel/liteos_m/components/cmsis/2.0"

修改后的代碼可以直接從附件下載或者從碼云 https://gitee.com/soonliao/pahomqtt 下載。

3.2 MQTT控制小車代碼的實現(xiàn)

3.2.1 applications\sample\wifi-iot\app\car_mqtt\BUILD.gn 的修改

在應用的BUILD.gn添加以下三行內(nèi)容才能調(diào)用到pahomqtt的相關函數(shù)

  1. static_library("car_mqtt") { 
  2.     sources = [ 
  3.         ...... 
  4.     ] 
  5.  
  6.     include_dirs = [ 
  7.         ......     
  8.         "//third_party/pahomqtt:pahomqtt_static"
  9.         "//third_party/pahomqtt/MQTTPacket/src"
  10.         "//third_party/pahomqtt/MQTTClient-C/src"
  11.     ] 

 3.2.2 MQTT 初始化主題訂閱

主要在以下函數(shù)實現(xiàn),詳細的說明可以參考在鴻蒙系統(tǒng)上使用MQTT編程

  1. #include "MQTTClient.h" 
  2.  
  3.  
  4. #define MQTT_BROKER                "192.168.123.230"//改成你的MQTT Broker 地址 
  5. #define MQTT_PORT                  1883 
  6.  
  7. MQTTMessage ackmsg; 
  8. int needAck = 0; 
  9.  
  10. struct opts_struct 
  11.     char* clientid; 
  12.     int nodelimiter; 
  13.     char* delimiter; 
  14.     enum QoS qos; 
  15.     char* username; 
  16.     charpassword
  17.     char* host; 
  18.     int port; 
  19.     int showtopics; 
  20. }  
  21. opts = 
  22.     (char*)"stdout-subscriber", 0, (char*)"\n", QOS2, NULLNULL, (char*)MQTT_BROKER, MQTT_PORT, 1 
  23. }; 
  24.  
  25. unsigned char buf[100]; 
  26. unsigned char readbuf[100]; 
  27.  
  28. int car_mqtt(void) 
  29.     int rc = 0; 
  30.      
  31.     MQTTMessage pubmsg; 
  32.     //小車控制主題carControl 
  33.     char* topic = "carControl"
  34.  
  35.     if (strchr(topic, '#') || strchr(topic, '+')) 
  36.         opts.showtopics = 1; 
  37.     if (opts.showtopics) 
  38.         printf("topic is %s\n", topic); 
  39.  
  40.     Network n; 
  41.     MQTTClient c; 
  42.     //網(wǎng)絡初始化 
  43.     NetworkInit(&n); 
  44.     NetworkConnect(&n, opts.host, opts.port); 
  45.     //設置MQTT緩存和啟動MQTT線程 
  46.     MQTTClientInit(&c, &n, 1000, buf, 100, readbuf, 100); 
  47.     MQTTStartTask(&c); 
  48.     //設置MQTT相關參數(shù) 
  49.     MQTTPacket_connectData data = MQTTPacket_connectData_initializer;        
  50.     data.willFlag = 0; 
  51.     data.MQTTVersion = 3; 
  52.     data.clientID.cstring = opts.clientid; 
  53.     data.username.cstring = opts.username; 
  54.     data.password.cstring = opts.password
  55.  
  56.     data.keepAliveInterval = 10; 
  57.     data.cleansession = 1; 
  58.     printf("Connecting to %s %d\n", opts.host, opts.port); 
  59.     //連接到MQTT服務器 
  60.     rc = MQTTConnect(&c, &data); 
  61.     printf("Connected %d\n", rc); 
  62.     //訂閱主題和接收消息 
  63.     printf("Subscribing to %s\n", topic); 
  64.     rc = MQTTSubscribe(&c, topic, opts.qos, messageArrived); 
  65.     printf("Subscribed %d\n", rc); 
  66.     //狀態(tài)變化后發(fā)布主題carStatus,消息內(nèi)容ackmsg.payload 
  67.     memset(&ackmsg, '\0', sizeof(ackmsg)); 
  68.     ackmsg.payload = (void*)"ACK"
  69.     ackmsg.payloadlen = strlen((char*)ackmsg.payload); 
  70.     ackmsg.qos = QOS0; 
  71.     ackmsg.retained = 0; 
  72.     ackmsg.dup = 0;  
  73.  
  74.     while (1) 
  75.     { 
  76.         if(needAck == 1)//收到消息后,發(fā)送主題carStatus并攜帶狀態(tài)消息 
  77.         { 
  78.             needAck = 0; 
  79.             printf("Publish carStatus ackmsg %d %s \n", (int)ackmsg.payloadlen, (char*)ackmsg.payload);  
  80.             MQTTPublish(&c, "carStatus", &ackmsg); 
  81.         } 
  82.         sleep(1);    
  83.     } 
  84.      
  85.     printf("Stopping\n"); 
  86.  
  87.     MQTTDisconnect(&c); 
  88.     NetworkDisconnect(&n); 
  89.  
  90.     return 0; 

3.2.1 小車控制代碼

通過MQTTSubscribe(&c, topic, opts.qos, messageArrived);注冊messageArrived回調(diào)實現(xiàn),代碼如下

  1. void messageArrived(MessageData* md) 
  2.  
  3.     MQTTMessage* message = md->message; 
  4.  
  5.     memset(&ackmsg, '\0', sizeof(ackmsg)); 
  6.     ackmsg.qos = QOS0; 
  7.     ackmsg.retained = 0; 
  8.     ackmsg.dup = 0; 
  9.  
  10.     if (opts.showtopics) 
  11.         printf("%.*s\t", md->topicName->lenstring.len, md->topicName->lenstring.data); 
  12.     if (opts.nodelimiter) 
  13.         printf("%.*s\n", (int)message->payloadlen, (char*)message->payload); 
  14.     else 
  15.         printf("%.*s%s\n", (int)message->payloadlen, (char*)message->payload, opts.delimiter); 
  16.  
  17.     if(strncmp("forward", message->payload, 7)== 0) { 
  18.         needAck = 1; 
  19.         car_go_forward(); 
  20.         ackmsg.payload = (void*)"forward"
  21.     } 
  22.     if(strncmp("back", message->payload, 4) == 0) { 
  23.         needAck = 1; 
  24.         car_go_back(); 
  25.         ackmsg.payload = (void*)"back"
  26.     } 
  27.     if(strncmp("left", message->payload, 4) == 0) { 
  28.         needAck = 1; 
  29.         car_turn_left(); 
  30.         ackmsg.payload = (void*)"left"
  31.     } 
  32.     if(strncmp("right", message->payload, 5) == 0) { 
  33.         needAck = 1; 
  34.         car_turn_right(); 
  35.         ackmsg.payload = (void*)"right"
  36.     } 
  37.     if(strncmp("stop", message->payload, 4) == 0) { 
  38.         needAck = 1; 
  39.         car_stop(); 
  40.         ackmsg.payload = (void*)"stop"
  41.     } 
  42.     if(needAck == 1) { 
  43.         ackmsg.payloadlen = strlen((char*)ackmsg.payload); 
  44.     } 

4.編譯及測試

4.1 小車控制代碼的編譯

完整的代碼請見附件或者Gitee https://gitee.com/soonliao/car_mqtt,使用方式如下

4.1.1 將car_mqtt解壓或者git clone 到applications\sample\wifi-iot\app\路徑下

#開發(fā)板漂流計劃#小車控制由簡入繁之MQTT控制-鴻蒙HarmonyOS技術(shù)社區(qū)

4.1.2 修改applications\sample\wifi-iot\app\BUILD.gn

  1. import("//build/lite/config/component/lite_component.gni"
  2.  
  3. lite_component("app") { 
  4.     features = [ 
  5.         "car_mqtt"
  6.     ] 

4.1.3 修改WIFI SSID、密碼及MQTT Broker IP

修改applications\sample\wifi-iot\app\car_mqtt\src\car_main.c

  1. #define WIFI_SSID                  "SSIDABCD"//WIFI賬號 
  2. #define WIFI_PW                    "MIMA1234"//WIFI密碼 
  3. #define MQTT_BROKER                "192.168.123.230"//改成你的MQTT Broker 地址 
  4. #define MQTT_PORT                  1883//改成你的MQTT Broker 端口,默認1883 

4.1.4 開啟PWM 功能,開啟方式如下

電機驅(qū)動會用到PWM 模塊所以要開啟

device/hisilicon/hispark_pegasus/sdk_liteos/build/config/usr_config.mk

  1. CONFIG_PWM_SUPPORT is not set 

改為

  1. CONFIG_PWM_SUPPORT=y 

加上第3部分中的pahomqtt相關修改,整個Demo就可以編譯通了。

4.2 小車控制代碼的測試

4.2.1 從串口log查看

成功連接WIFI,且連上MQTT Broker訂閱主題的log如下

#開發(fā)板漂流計劃#小車控制由簡入繁之MQTT控制-鴻蒙HarmonyOS技術(shù)社區(qū)

4.2.2 電腦Windows系統(tǒng)下paho軟件發(fā)送測試指令

測試軟件在附件,或者參考連老師的說明下載,控制指令支持前進“forward”、后退“back”、右轉(zhuǎn)“right”、左轉(zhuǎn)“left”、停止“stop”,在小車成功執(zhí)行指令后會返回一條carStatus的主題并攜帶狀態(tài)消息。

#開發(fā)板漂流計劃#小車控制由簡入繁之MQTT控制-鴻蒙HarmonyOS技術(shù)社區(qū)

接收到指令后串口會有以下打印

#開發(fā)板漂流計劃#小車控制由簡入繁之MQTT控制-鴻蒙HarmonyOS技術(shù)社區(qū)

文章相關附件可以點擊下面的原文鏈接前往下載

https://harmonyos.51cto.com/resource/1319

想了解更多內(nèi)容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

 

責任編輯:jianghua 來源: 鴻蒙社區(qū)
相關推薦

2021-10-08 14:48:03

鴻蒙HarmonyOS應用

2021-10-08 14:41:11

鴻蒙HarmonyOS應用

2020-11-30 10:18:02

鴻蒙小車

2022-04-19 11:09:13

Wi-Fi IoT智能小車鴻蒙

2021-09-09 10:06:09

鴻蒙HarmonyOS應用

2011-07-29 13:14:39

趨勢科技中小企業(yè)安全軟件包

2013-12-19 09:32:01

SDN南向網(wǎng)絡控制

2011-02-28 14:34:01

蘋果iOS

2019-06-13 11:50:41

Python面向?qū)ο?/a>編程語言

2012-11-15 10:42:10

云集成大數(shù)據(jù)云應用集成

2019-11-25 15:32:30

虛擬化IO故障

2011-06-20 10:19:27

2011-07-13 10:29:44

域控制器

2017-04-25 10:46:57

Spring BootRESRful API權(quán)限

2021-07-09 13:54:31

零信任網(wǎng)絡安全網(wǎng)絡攻擊

2017-12-21 17:10:26

Teradata

2011-07-13 14:06:15

域控制器服務器

2011-07-06 15:25:33

Windows控制臺

2011-07-12 09:29:10

主域控制器備份域控制器

2020-11-03 11:39:22

wifi小車
點贊
收藏

51CTO技術(shù)棧公眾號

青草在线视频| 亚洲AV无码乱码国产精品牛牛| 久操成人av| 欧美日韩一区三区四区| xxxxxx在线观看| 西西人体44www大胆无码| 日韩va欧美va亚洲va久久| 久久av资源网站| 女~淫辱の触手3d动漫| 亚洲欧美专区| 欧美性精品220| 色香蕉在线观看| 台湾av在线二三区观看| 久久99精品久久久久久动态图 | 在线不卡免费欧美| 无码专区aaaaaa免费视频| 亚洲免费视频一区二区三区| a级精品国产片在线观看| 国产精品色悠悠| 97人人澡人人爽人人模亚洲| 91一区二区| 亚洲色图色老头| 黑人玩弄人妻一区二区三区| 亚洲日本免费电影| 一本久久a久久精品亚洲 | 日韩高清欧美激情| 欧美二区乱c黑人| 91麻豆精品久久毛片一级| 特黄特色欧美大片| 欧美大片拔萝卜| 中文字幕1234区| 成人免费一区| 色婷婷国产精品| 91.com在线| 午夜伦理大片视频在线观看| 中文字幕一区二区三区视频| 欧美一区二区三区在线免费观看 | 日本国产亚洲| 91福利在线免费观看| 男人和女人啪啪网站| 欧美黑人猛交的在线视频| 亚洲人妖av一区二区| 亚洲黄色成人久久久| 免费在线高清av| 久久久久久免费毛片精品| 国产一区在线免费观看| 午夜精品在线播放| 国产激情精品久久久第一区二区| 日韩av手机在线观看| 天天综合网入口| 亚洲黄色成人| 777国产偷窥盗摄精品视频| 国产在线成人精品午夜| 欧美三级不卡| 久久久免费观看| 日本中文字幕在线免费观看| 精品成人在线| 91国产一区在线| 99久在线精品99re8热| 国产美女诱惑一区二区| 欧美在线视频a| 亚洲黄网在线观看| 免费观看在线综合| 91精品久久久久久久久久久久久久 | 中文字幕 欧美 日韩| 日韩在线精品强乱中文字幕| 欧美成人三级在线| 性色av蜜臀av浪潮av老女人| 日韩精品福利一区二区三区| 精品亚洲一区二区三区在线播放| 日本aaa视频| 日韩电影免费网址| 麻豆乱码国产一区二区三区| 久久机热这里只有精品| 亚洲三级网站| 国产精品夫妻激情| 国产浮力第一页| www.亚洲国产| 视频一区二区在线| 国产视频在线播放| 午夜伊人狠狠久久| 五月婷婷狠狠操| 国产精品成人**免费视频| 精品国产一二三区| 国产综合精品久久久久成人av| 婷婷综合激情| 2019亚洲男人天堂| 91 中文字幕| 成人福利视频在线看| 日本午夜精品一区二区三区| 欧美激情二区| 亚洲成a人在线观看| 992kp快乐看片永久免费网址| 国产美女亚洲精品7777| 亚洲精品美女在线| 麻豆一区在线观看| 99精品免费| 国产主播欧美精品| 欧美日韩影视| 亚洲精品国产a久久久久久| 鲁一鲁一鲁一鲁一色| 999精品嫩草久久久久久99| 亚洲第一男人天堂| 99成人在线观看| 国产精品日本欧美一区二区三区| 成人在线视频网| 日韩a在线观看| 亚洲蜜臀av乱码久久精品| 日本在线观看a| 99精品国产高清一区二区麻豆| 在线视频精品一| 日韩黄色在线视频| 国产呦萝稀缺另类资源| 日本一区二区久久精品| 91福利在线尤物| 精品视频一区三区九区| a毛片毛片av永久免费| 亚洲午夜伦理| 亚洲aⅴ男人的天堂在线观看| 欧美亚洲日本| 亚洲高清免费视频| 亚洲一区二区三区三州| 日韩一区电影| 国产精品成人一区| 精品电影在线| 精品毛片网大全| 亚洲欧美综合视频| 欧美一区网站| 91视频九色网站| 在线免费观看黄色| 欧美午夜片在线观看| 人妻无码一区二区三区| 影音先锋久久| 国产精品视频一区二区三区经| 自由的xxxx在线视频| 欧美另类高清zo欧美| 99久久精品久久亚洲精品| 日日骚欧美日韩| 欧美日韩在线一二三| 天堂av中文在线观看| 亚洲成人黄色网址| 粉嫩aⅴ一区二区三区| 成人自拍视频在线观看| 欧美狂野激情性xxxx在线观| 91精品国产乱码久久久竹菊| 色综合男人天堂| 成人av无码一区二区三区| 亚洲精品视频在线观看网站| 一卡二卡三卡四卡五卡| 欧美暴力喷水在线| 亚洲一区二区三区乱码aⅴ| 日韩在线观看www| 91精品国产欧美一区二区| 黄色一级大片在线免费观看| 精品在线免费视频| 亚洲激情免费视频| av成人app永久免费| 久久久久久中文| 婷婷丁香一区二区三区| 欧美日韩在线视频观看| 日韩人妻无码一区二区三区| 美女精品网站| 亚洲国产另类久久久精品极度| 日本欧美在线| 欧美成年人视频网站欧美| 亚洲精品国产精品乱码不卡| 亚洲国产精品人人做人人爽| 国产人妻人伦精品1国产丝袜| 久久xxxx精品视频| 色姑娘综合网| 国产一精品一av一免费爽爽| 欧美黑人性猛交| 外国精品视频在线观看| 欧美激情综合五月色丁香| 色免费在线视频| 亚洲成人精品| 国产尤物91| 日韩制服一区| 久久九九全国免费精品观看| 黄色一级大片在线免费看国产一| 同产精品九九九| 在线免费观看视频| 国产馆精品极品| 国产精品无码专区av在线播放 | 中文字幕av一区二区三区谷原希美| 一级黄色a毛片| 亚洲成在人线免费| 日韩av片在线| 成人午夜激情视频| 奇米影音第四色| 国产一区二区三区自拍| 日韩国产欧美一区| 日韩精品视频一区二区三区| 欧洲成人性视频| 黄色av电影在线观看| 日韩成人网免费视频| 中文字幕在线一| 午夜精品福利一区二区蜜股av| 色欲AV无码精品一区二区久久| 国产一区二区三区免费看| 北条麻妃在线视频观看| 91精品久久久久久久蜜月| 你懂的视频在线一区二区| 国产日韩在线观看视频| 国产成人精品在线观看| 污视频免费在线观看| 中文字幕综合在线| 青青草免费在线| 精品久久久三级丝袜| 一区两区小视频| 日韩欧美在线视频| 久久久精品视频免费| 国产精品久久久久7777按摩| 精品无码在线视频| 成人免费毛片高清视频| 国产资源中文字幕| 人人狠狠综合久久亚洲| 91视频最新入口| 激情六月综合| 国产资源第一页| 99热在线成人| 色一情一乱一伦一区二区三欧美 | 永久免费在线看片视频| 精品视频网站| 鲁片一区二区三区| 国产成人tv| 粉嫩高清一区二区三区精品视频| 成人午夜sm精品久久久久久久| 欧美在线一区二区三区四| 国产精品一区hongkong| 精品中文字幕在线| 亚洲精品天堂| 九九久久久久99精品| 超碰在线观看免费| 久久这里只有精品视频首页| 日本精品在线| 深夜成人在线观看| 日韩在线观看www| www.精品av.com| 欧美性videos| 久久精品成人欧美大片| 黄色网址视频在线观看| 久久精品小视频| 黄色视屏免费在线观看| 久久综合五月天| avtt亚洲| 麻豆国产精品va在线观看不卡 | 精品久久久久人成| 日韩少妇高潮抽搐| 欧美日韩黄色大片| av大片在线免费观看| 色94色欧美sute亚洲线路一久 | 亚洲男人的天堂在线播放| 色就是色亚洲色图| 一区二区三区视频观看| aaa日本高清在线播放免费观看| 在线亚洲国产精品网| 欧美成人三区| 精品中文字幕在线| 欧美调教sm| 国产精品电影观看| 国产成人免费视频网站视频社区 | 国产剧情久久久久久| 日韩美女在线| 成人91视频| 偷拍自拍亚洲色图| 午夜精品电影在线观看| 国产精品黑丝在线播放| 999一区二区三区| 亚洲制服少妇| 亚洲综合欧美激情| 国产精品123| 亚洲综合自拍网| 国产精品免费av| 麻豆疯狂做受xxxx高潮视频| 天天综合网天天综合色| 中文字幕欧美人妻精品| 日韩午夜激情视频| 日本中文字幕电影在线观看 | 精品日本一线二线三线不卡| 天天操天天干天天干| 亚洲色无码播放| h视频在线免费观看| 8x海外华人永久免费日韩内陆视频| 色豆豆成人网| 99re6热在线精品视频播放速度| 另类图片第一页| 亚洲一区精品视频| 国产欧美二区| 亚洲精品永久视频| 26uuu欧美| 国产一区二区视频在线观看免费| 精品久久久久人成| 国产高清免费av| 亚洲美女久久久| www在线观看播放免费视频日本| 欧美一区二区三区免费视| 免费精品一区| 日韩精品成人一区二区在线观看| 亚洲天堂黄色| 成人日韩在线视频| 久久久久久久久伊人| 久久综合加勒比| 欧美日韩精品是欧美日韩精品| 色噜噜在线播放| 久久天天躁日日躁| 精品免费av在线| 久久久久久久久四区三区| 亚洲色图88| 久久撸在线视频| 久久综合久久综合久久| 精品亚洲永久免费| 91麻豆精品国产91久久久久| jyzzz在线观看视频| 日本aⅴ大伊香蕉精品视频| 日韩三级网址| 亚洲综合av一区| 久久在线精品| 亚洲天堂成人av| 亚洲成人动漫精品| 亚洲AV无码一区二区三区性| 综合国产在线视频| 主播大秀视频在线观看一区二区| 免费观看成人在线| 尹人成人综合网| 黑人玩弄人妻一区二区三区| 尤物视频一区二区| 国产美女永久免费| 久久精品国产成人| 欧美天堂在线| 一本色道久久99精品综合| 视频一区中文字幕国产| 中文字幕第4页| 色综合天天综合色综合av| 色呦呦视频在线| 久久久综合av| 国产福利一区二区精品秒拍| 国产爆乳无码一区二区麻豆| 国产在线乱码一区二区三区| 欧美特黄一级片| 制服丝袜在线91| 麻豆网在线观看| 91亚洲va在线va天堂va国| 亚洲在线久久| 毛毛毛毛毛毛毛片123| 一区二区三区四区激情| 亚洲伦理在线观看| 欧美精品videosex性欧美| 成人激情自拍| 波多野结衣50连登视频| 久久只精品国产| 欧美视频xxxx| 日韩在线免费av| 日本精品在线播放| 你真棒插曲来救救我在线观看| 成人高清在线视频| 西西44rtwww国产精品| 亚洲男人第一网站| 国产黄色一区| 青青视频免费在线| av午夜一区麻豆| 五月天激情四射| 日韩在线观看你懂的| 精品国产亚洲一区二区三区在线| 欧美黑人在线观看| 91色乱码一区二区三区| 中文字幕av片| 欧美成人合集magnet| 美女福利一区| 亚洲精品视频导航| 亚洲男人天堂av| 天堂网在线播放| 国产精品久久久久久久久久久不卡| 婷婷综合在线| 亚洲一区二区三区四区五区六区| 日本高清视频一区二区| 黄网站在线免费| 好看的日韩精品| 免费成人小视频| 国产稀缺真实呦乱在线| 在线观看免费高清视频97| 久久一级大片| 妞干网在线免费视频| 亚洲欧美日韩精品久久久久| 老牛影视av牛牛影视av| 国产精品精品久久久| 欧美性久久久| 摸摸摸bbb毛毛毛片| 精品精品国产高清a毛片牛牛| 欧美黑人疯狂性受xxxxx野外| 影音先锋男人的网站| 久久亚区不卡日本| jizz中国女人| 国产精品福利网站| 亚洲理论在线| 成熟的女同志hd| 亚洲视频在线播放| 操欧美女人视频| 欧美日韩精品区别| 在线观看成人免费视频|