亚洲 A V无 码免 费 成_18无码国产在线看不卡_欧美成人欧美激情欧美风情_欧美日韩精品在线直播_亚洲一区无码视频在线_日韩精品无码毛片免费看_国产成人高清无码_尤物网站永久点击进入_欧美精品色视频在线视频_a级成人免费毛片完整版

/ EN
13922884048

技術(shù)交流

Technology Exchange
/
/

基于樹莓派RP2040游戲機的簡易網(wǎng)絡(luò)氣象站

發(fā)布時間:2022-09-06作者來源:薩科微瀏覽:4021


一、設(shè)計目標

1.RP2040 Game Kit板通過提供的ESP32-S2的WiFi模塊連接網(wǎng)絡(luò)。

2.在RP2040 Game Kit上顯示某一個城市的氣象信息 - 時間、天氣實況、生活指數(shù)、天氣預(yù)報...

3.通過RP2040 Game Kit上的按鍵和四向搖桿配合能夠切換顯示不同城市的信息 ,做到能切換顯示、刷新數(shù)據(jù)、修改城市名。

4. 通過顯示屏與搖桿按鍵交互來模擬一個九鍵鍵盤,實現(xiàn)城市名的自主輸入,輸入錯誤也會有錯誤提示。

5. 搭配上圖片來豐富顯示內(nèi)容,包括天氣氣象符號、各生活指數(shù)示意圖等。

二、準備工作

1?硬件連接

Rp2040游戲機與esp32-s2模塊的連線如下圖所示。

    pico                        esp32s2
    tx = Pin(16)   -->    RXD_PIN (GPIO_NUM_21)
    rx = Pin(17)   -->    RXD_PIN (GPIO_NUM_21)
    3V3               -->    3V3
    GND             -->    GND

2. 開發(fā)環(huán)境

(1)thonny。安裝過程具體可參考 https://class.eetree.cn/live_pc/l_60fe7f4fe4b0a27d0e360f74

(2)  Vscode的插件Espressif IDF v1.3.0。

3. 參考例程

(1)ESP32 IDF v4.3.1:樂鑫ESP開發(fā)環(huán)境,本項目參考了其中的http request,uart,wifi station 例程。具體可參考官方文檔ESP-IDF 編程指南。

(2)硬禾學堂2022寒假在家練:基于樹莓派RP2040的嵌入式系統(tǒng)學習平臺,相關(guān)內(nèi)容可參考https://www.eetree.cn/project/detail/698

4.源代碼目錄結(jié)構(gòu)

(1)Rp2040

-/
   -weather_main.py 主函數(shù)
   -draw.py 畫圖部分
   -http_deal.py http數(shù)據(jù)處理部分
   -location.py 鍵盤鍵位內(nèi)容
   -button.py 按鍵
   -board.py 引腳定義
   -vga2_8x8.py字體小
   -vga1_16x32.py字體大
   -vga1_8x16.py 字體中
   -weather_picture_small/ 天氣現(xiàn)象圖片(?。?br style="box-sizing: border-box;"/>   -weather_picture_big/ 天氣現(xiàn)象圖片(大)
   -index of living/ 生活指數(shù)插圖

(2)ESP32-S2

    - http_request/
             - CMakeLists.txt
             - sdkconfig
             - main/       - CMakeLists.txt
                                - http_main.c   esp32主函數(shù),http請求,json解析
                                - http.h        
                                - uart.c        串口通信部分
                                - uart.h
                                - wifi.c        wifi連接部分
                                - wifi.h

5.使用說明

(1)先將wifi_name和wifi_passwd分別修改成要連接的熱點的名字和密碼。
(2)分別編譯下載程序到pico和esp32s2(esp32s2可用vscode),具體可參照上面的源代碼目錄結(jié)構(gòu)。
(3)使用杜邦線進行硬件連接,具體連線請參照上面的硬件連接。
(4)上電開機。

6.注意事項

(1)部分wifi可能不能被esp32識別。

(2)使用過程中請保持網(wǎng)絡(luò)順暢,若失去網(wǎng)絡(luò)連接或產(chǎn)生一些其它錯誤,可以試著先按下esp32的reset鍵重啟,再運行RP2040的主程序。

(3)由于使用心知天氣平臺的免費版,暫時只支持國內(nèi)部分城市。

三、軟件流程圖

image.png

 

 

四、實現(xiàn)過程

1?網(wǎng)絡(luò)連接

(1)WiFi連接

wifi名和密碼需提前設(shè)定,具體在RP2040的weather_main.py中修改,如下。

# 在此處修改你要連接的wifi名和密碼wifi_name = "123"wifi_passwd = "12345678"

 

發(fā)送wifi信息給esp32前需進行簡單編碼以供esp32識別,具體請參考下面的多機通信部分。

在esp32接收到信息后立即調(diào)用wifi_init_sta()函數(shù)進行wifi連接,這里是在esp32idf的例程 ~\Espressif\frameworks\esp-idf-v4.4.1\examples\wifi\getting_started\station   的基礎(chǔ)上修改的,具體如下。

/**********wifi初始化函數(shù)**************/void wifi_init_sta( char *wifi_ssid , char *wifi_password){
    s_wifi_event_group = xEventGroupCreate();

    // ESP_ERROR_CHECK(esp_netif_init());

    // ESP_ERROR_CHECK(esp_event_loop_create_default());
    esp_netif_create_default_wifi_sta();

    wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
    ESP_ERROR_CHECK(esp_wifi_init(&cfg));

    esp_event_handler_instance_t instance_any_id;
    esp_event_handler_instance_t instance_got_ip;
    ESP_ERROR_CHECK(esp_event_handler_instance_register(WIFI_EVENT,
                                                        ESP_EVENT_ANY_ID,
                                                        &event_handler,
                                                        NULL,
                                                        &instance_any_id));
    ESP_ERROR_CHECK(esp_event_handler_instance_register(IP_EVENT,
                                                        IP_EVENT_STA_GOT_IP,
                                                        &event_handler,
                                                        NULL,
                                                        &instance_got_ip));

    wifi_config_t wifi_config = {
        .sta = {
            // .ssid = wifi_ssid ,
            // .password = wifi_password ,
            /* Setting a password implies station will connect to all security modes including WEP/WPA.
             * However these modes are deprecated and not advisable to be used. Incase your Access point
             * doesn't support WPA2, these mode can be enabled by commenting below line */
	     .threshold.authmode = WIFI_AUTH_WPA2_PSK,
        },
    };


    memcpy(wifi_config.sta.ssid, wifi_ssid, sizeof(wifi_config.sta.ssid));
    memcpy(wifi_config.sta.password, wifi_password, sizeof(wifi_config.sta.password));


    ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA) );
    ESP_ERROR_CHECK(esp_wifi_set_config(WIFI_IF_STA, &wifi_config) );
    ESP_ERROR_CHECK(esp_wifi_start() );

    ESP_LOGI(TAG, "wifi_init_sta finished.");

    /* Waiting until either the connection is established (WIFI_CONNECTED_BIT) or connection failed for the maximum
     * number of re-tries (WIFI_FAIL_BIT). The bits are set by event_handler() (see above) */
    EventBits_t bits = xEventGroupWaitBits(s_wifi_event_group,
            WIFI_CONNECTED_BIT | WIFI_FAIL_BIT,
            pdFALSE,
            pdFALSE,
            portMAX_DELAY);

    /* xEventGroupWaitBits() returns the bits before the call returned, hence we can test which event actually
     * happened. */
    if (bits & WIFI_CONNECTED_BIT) {       
        ESP_LOGI(TAG, "connected to ap SSID:%s password:%s",
                 wifi_ssid, wifi_password);
                  http_get_task();  //連接成功,發(fā)送http請求
        // sendData(TAG,"connectsucess");
    } else if (bits & WIFI_FAIL_BIT) {
        ESP_LOGI(TAG, "Failed to connect to SSID:%s, password:%s",
                 wifi_ssid, wifi_password);
        sendData(TAG,"Connectfail");  //連接失敗,發(fā)送狀態(tài)告知pico
        
    } else {
        ESP_LOGE(TAG, "UNEXPECTED EVENT");
        sendData(TAG,"Connectfail"); //連接失敗,發(fā)送狀態(tài)告知pico
    }

    /* The event will not be processed after unregister */
    ESP_ERROR_CHECK(esp_event_handler_instance_unregister(IP_EVENT, IP_EVENT_STA_GOT_IP, instance_got_ip));
    ESP_ERROR_CHECK(esp_event_handler_instance_unregister(WIFI_EVENT, ESP_EVENT_ANY_ID, instance_any_id));
    vEventGroupDelete(s_wifi_event_group);}

wifi連接成功后就立即發(fā)送http請求,失敗則返回狀態(tài)給RP2040。

(2)http請求

這里參考了esp32idf的例程~\Espressif\frameworks\esp-idf-v4.4.1\examples\protocols\http_request,將其中的循環(huán)任務(wù)改成了單次調(diào)動并根據(jù)不同的請求內(nèi)容增加了參數(shù)判斷,就能根據(jù)需要進行http請求,并在發(fā)生錯誤時發(fā)送狀態(tài)給RP2040,具體內(nèi)容在http_main.c中,如下。

//HTTP請求函數(shù)void http_get(char arg){
    const struct addrinfo hints = {
        .ai_family = AF_INET,
        .ai_socktype = SOCK_STREAM,
    };
    struct addrinfo *res;
    struct in_addr *addr;
    int s, r;
    
    char recv_buf[64];
    char mid_buf[1400];   //接受http報文正文部分

    memset(mid_buf,0,sizeof(mid_buf));
    char WEB_PATH[200] = "GET " ;  
    
    // 組合字段構(gòu)成http請求的發(fā)送內(nèi)容,根據(jù)不同的請求進行不同的組合
    switch (arg){
       //實時天氣,例:http://api.seniverse.com/v3/weather/now.json?key=your_api_key&location=beijing&language=en&unit=c
       case WEATHER_CURRENT: 
        strcat(WEB_PATH,WEB_PATH_CURRENT_1);
        strcat(WEB_PATH,reqLocation);
        strcat(WEB_PATH,WEB_PATH_CURRENT_2);
        strcat(WEB_PATH,REQUEST_ED);
        break;
        //生活指數(shù),例:http://api.seniverse.com/v3/life/suggestion.json?key=SzOM2PDJp7crLA0Ug&location=haikou&language=en
        case WEATHER_LIFE:         
        strcat(WEB_PATH,WEB_PATH_LIFE_1);
        strcat(WEB_PATH,reqLocation);
        strcat(WEB_PATH,WEB_PATH_LIFE_2);
        strcat(WEB_PATH,REQUEST_ED);
        break;
        //天氣預(yù)報,例:http://api.seniverse.com/v3/weather/daily.json?key=your_api_key&location=beijing&language=zh-Hans&unit=c&start=0&days=5
        case WEATHER_FORECAST:  
        strcat(WEB_PATH,WEB_PATH_FORECAST_1);
        strcat(WEB_PATH,reqLocation);
        strcat(WEB_PATH,WEB_PATH_FORECAST_2);
        strcat(WEB_PATH,REQUEST_ED);
        break;

        default:ESP_LOGI(TAG, "wrong");

    }
 
        
    int err = getaddrinfo(WEB_SERVER, WEB_PORT, &hints, &res);

    if(err != 0 || res == NULL) {
        ESP_LOGE(TAG, "DNS lookup failed err=%d res=%p", err, res);
        vTaskDelay(1000 / portTICK_PERIOD_MS);
        sendData(TAG,"httprequestfail");     //http初始化失敗,告知pico
        
    }else {
        /* Code to print the resolved IP.

           Note: inet_ntoa is non-reentrant, look at ipaddr_ntoa_r for "real" code */
        addr = &((struct sockaddr_in *)res->ai_addr)->sin_addr;
        ESP_LOGI(TAG, "DNS lookup succeeded. IP=%s", inet_ntoa(*addr));

        s = socket(res->ai_family, res->ai_socktype, 0);
        if(s < 0) {
            ESP_LOGE(TAG, "... Failed to allocate socket.");
            freeaddrinfo(res);
            vTaskDelay(1000 / portTICK_PERIOD_MS);
            sendData(TAG,"httprequestfail"); //http初始化失敗,告知pico
        }else{
            ESP_LOGI(TAG, "... allocated socket");

            if(connect(s, res->ai_addr, res->ai_addrlen) != 0) {
                ESP_LOGE(TAG, "... socket connect failed errno=%d", errno);
                close(s);
                freeaddrinfo(res);
                vTaskDelay(4000 / portTICK_PERIOD_MS);
                sendData(TAG,"httprequestfail"); //http初始化失敗,告知pico
            }else{
                ESP_LOGI(TAG, "... connected");
                freeaddrinfo(res);

                if (write(s, WEB_PATH, strlen(WEB_PATH)) < 0) {
                    ESP_LOGE(TAG, "... socket send failed");
                    close(s);
                    vTaskDelay(4000 / portTICK_PERIOD_MS);
                    sendData(TAG,"httprequestfail"); //http初始化失敗,告知pico
                }else{
                    ESP_LOGI(TAG, "... socket send success");

                    struct timeval receiving_timeout;
                    receiving_timeout.tv_sec = 5;
                    receiving_timeout.tv_usec = 0;
                    if (setsockopt(s, SOL_SOCKET, SO_RCVTIMEO, &receiving_timeout,
                        sizeof(receiving_timeout)) < 0) {
                        ESP_LOGE(TAG, "... failed to set socket receiving timeout");
                        close(s);
                        vTaskDelay(4000 / portTICK_PERIOD_MS);
                        sendData(TAG,"httprequestfail"); //http初始化失敗,告知pico
                    }else{
                        ESP_LOGI(TAG, "... set socket receiving timeout success");

                       
                        /* Read HTTP response */
                        do {
                            bzero(recv_buf, sizeof(recv_buf));
                            r = read(s, recv_buf, sizeof(recv_buf)-1);
                            strcat(mid_buf,recv_buf);
                            for(int i = 0; i < r; i++) {
                                putchar(recv_buf[i]);
                            }
                        } while(r > 0);
                        // ESP_LOGI(TAG,"return=%s",mid_buf);
                        //json格式轉(zhuǎn)化 
                        cjson_to_struct_info(mid_buf,arg);


                        ESP_LOGI(TAG, "... done reading from socket. Last read return=%d errno=%d.", r, errno);
                        close(s);
                        
                    }
                }
            }

        }
        
    }    }

由于要請求的內(nèi)容有三項(天氣實況、生活指數(shù)、天氣預(yù)報),分別對應(yīng)三個不同的請求行:

void http_get_task(void){
    memset(send_data_quene,0,sizeof(send_data_quene));
    http_get(WEATHER_CURRENT); //天氣實況
    vTaskDelay(1000 / portTICK_PERIOD_MS);  //適當延時
    http_get(WEATHER_FORECAST); //天氣預(yù)報
    vTaskDelay(1000 / portTICK_PERIOD_MS);
    http_get(WEATHER_LIFE);     //生活指數(shù)
    vTaskDelay(1000 / portTICK_PERIOD_MS);
    ESP_LOGI(TAG,"send_data:%s",send_data_quene);
    sendData(TAG,send_data_quene);//整合發(fā)送}
實時天氣,例:http://api.seniverse.com/v3/weather/now.json?key=your_api_key&location=beijing&language=en&unit=c
生活指數(shù),例:http://api.seniverse.com/v3/life/suggestion.json?key=SzOM2PDJp7crLA0Ug&location=haikou&language=en
天氣預(yù)報,例:http://api.seniverse.com/v3/weather/daily.json?key=your_api_key&location=beijing&language=zh-Hans&unit=c&start=0&days=5
所以在函數(shù)在加入判斷到底發(fā)送哪一個,相應(yīng)的請求行要進行不同組合,在http_get()函數(shù)中做判斷,具體內(nèi)容在http.h中,如下。
#define WEB_SERVER "api.seniverse.com"#define WEB_PORT "80"#define reqUserKey "SzOM2PDJp7crLA0Ug"// #define reqLocation "Shenzhen"#define reqUnit "c"//天氣實況#define WEATHER_CURRENT 'C' #define WEB_PATH_CURRENT_1 "/v3/weather/now.json?key=" reqUserKey "&location="  #define WEB_PATH_CURRENT_2 "&language=en&unit=" reqUnit//生活指數(shù)#define WEATHER_LIFE 'L'#define WEB_PATH_LIFE_1 "/v3/life/suggestion.json?key=" reqUserKey "&location="  #define WEB_PATH_LIFE_2 "&language=en"//天氣預(yù)報#define WEATHER_FORECAST 'F'#define WEB_PATH_FORECAST_1 "/v3/weather/daily.json?key=" reqUserKey "&location="  #define WEB_PATH_FORECAST_2 "&language=en&unit=" reqUnit "&start=0&days=5"//http請求尾static const char *REQUEST_ED = " HTTP/1.0\r\n"
        "Host: "WEB_SERVER":"WEB_PORT"\r\n"
        "User-Agent: esp-idf/1.0 esp32\r\n"
        "\r\n";//城市名char *reqLocation ;

由于請求的城市名是會變化的,所以利用C語言strcat函數(shù)進行組合,組合好后就可以發(fā)送完整的請求行了。

而接收到的數(shù)據(jù)都是json格式,這里調(diào)用了cjson庫來進行解碼,針對不同的http報文有不同的處理方式,具體在http_main.c中,如下。

/***********json格式解析************/void cjson_to_struct_info(char *text,char arg){

    cJSON *root,*psub;
    cJSON *arrayItem;
    //截取有效json
    char *index=strchr(text,'{');
    strcpy(text,index);
 
    root = cJSON_Parse(text);
    
    if(root!=NULL)
    {
        /*******************天氣實況**********/
        if(arg == WEATHER_CURRENT){
            psub = cJSON_GetObjectItem(root, "results");
            arrayItem = cJSON_GetArrayItem(psub,0);
    
            cJSON *locat = cJSON_GetObjectItem(arrayItem, "location");
            cJSON *now = cJSON_GetObjectItem(arrayItem, "now");
            if((locat!=NULL)&&(now!=NULL))
            {
                psub=cJSON_GetObjectItem(locat,"name");
                sprintf(weathe.cit,"%s",psub->valuestring);
                ESP_LOGI(TAG,"city:%s",weathe.cit);
                strcat(send_data_quene,weathe.cit);  //拼接發(fā)送字符串
                strcat(send_data_quene,"+");         //分割符,讓pico識別
    
                psub=cJSON_GetObjectItem(now,"text");
                sprintf(weathe.weather_text,"%s",psub->valuestring);
                ESP_LOGI(TAG,"weather:%s",weathe.weather_text);
                strcat(send_data_quene,weathe.weather_text);
                strcat(send_data_quene,"+");
                
                psub=cJSON_GetObjectItem(now,"code");
                sprintf(weathe.weather_code,"%s",psub->valuestring);
                ESP_LOGI(TAG,"%s",weathe.weather_code);
                strcat(send_data_quene,weathe.weather_code);
                strcat(send_data_quene,"+");
    
                psub=cJSON_GetObjectItem(now,"temperature");
                sprintf(weathe.temperatur,"%s",psub->valuestring);
                ESP_LOGI(TAG,"temperatur:%s",weathe.temperatur);
                strcat(send_data_quene,weathe.temperatur);
                strcat(send_data_quene,"+");                
         
            }else{
                sendData(TAG,"httprequestfail"); //json格式有誤。http請求失敗
            }
        
        }

        /*****************天氣預(yù)報*************************/
        if(arg == WEATHER_FORECAST){
            psub = cJSON_GetObjectItem(root, "results");
            arrayItem = cJSON_GetArrayItem(psub,0);
            
            cJSON *locat = cJSON_GetObjectItem(arrayItem, "location");
            cJSON *daily = cJSON_GetObjectItem(arrayItem, "daily");
            if((locat!=NULL)&&(daily!=NULL))
            {
     
                for(int i = 0;i<3;i++){
                    arrayItem = cJSON_GetArrayItem(daily,i);
                    psub = cJSON_GetObjectItem(arrayItem, "date");
                    sprintf(weathe.daily_weathe[i].date,"%s",psub->valuestring);
                    ESP_LOGI(TAG,"date:%s",weathe.daily_weathe[i].date);
                    strcat(send_data_quene,weathe.daily_weathe[i].date);
                    strcat(send_data_quene,"+");

                    psub = cJSON_GetObjectItem(arrayItem, "text_day");
                    sprintf(weathe.daily_weathe[i].text_day,"%s",psub->valuestring);
                    ESP_LOGI(TAG,"text_day:%s",weathe.daily_weathe[i].text_day);
                    strcat(send_data_quene,weathe.daily_weathe[i].text_day);
                    strcat(send_data_quene,"+");

                    psub = cJSON_GetObjectItem(arrayItem, "code_day");
                    sprintf(weathe.daily_weathe[i].code_day,"%s",psub->valuestring);
                    ESP_LOGI(TAG,"code_day:%s",weathe.daily_weathe[i].code_day);
                    strcat(send_data_quene,weathe.daily_weathe[i].code_day);
                    strcat(send_data_quene,"+");

                    psub = cJSON_GetObjectItem(arrayItem, "text_night");
                    sprintf(weathe.daily_weathe[i].text_night,"%s",psub->valuestring);
                    ESP_LOGI(TAG,"text_night:%s",weathe.daily_weathe[i].text_night);
                    strcat(send_data_quene,weathe.daily_weathe[i].text_night);
                    strcat(send_data_quene,"+");

                    psub = cJSON_GetObjectItem(arrayItem, "code_night");
                    sprintf(weathe.daily_weathe[i].code_night,"%s",psub->valuestring);
                    ESP_LOGI(TAG,"code_night:%s",weathe.daily_weathe[i].code_night);
                    strcat(send_data_quene,weathe.daily_weathe[i].code_night);
                    strcat(send_data_quene,"+");

                    psub = cJSON_GetObjectItem(arrayItem, "high");
                    sprintf(weathe.daily_weathe[i].high,"%s",psub->valuestring);
                    ESP_LOGI(TAG,"high:%s",weathe.daily_weathe[i].high);
                    strcat(send_data_quene,weathe.daily_weathe[i].high);
                    strcat(send_data_quene,"+");

                    psub = cJSON_GetObjectItem(arrayItem, "low");
                    sprintf(weathe.daily_weathe[i].low,"%s",psub->valuestring);
                    ESP_LOGI(TAG,"low:%s",weathe.daily_weathe[i].low);
                    strcat(send_data_quene,weathe.daily_weathe[i].low);
                    strcat(send_data_quene,"+");

                    psub = cJSON_GetObjectItem(arrayItem, "precip");
                    sprintf(weathe.daily_weathe[i].precip,"%s",psub->valuestring);
                    ESP_LOGI(TAG,"precip:%s",weathe.daily_weathe[i].precip);
                    strcat(send_data_quene,weathe.daily_weathe[i].precip);
                    strcat(send_data_quene,"+");

                    psub = cJSON_GetObjectItem(arrayItem, "humidity");
                    sprintf(weathe.daily_weathe[i].humidity,"%s",psub->valuestring);
                    ESP_LOGI(TAG,"humidity:%s",weathe.daily_weathe[i].humidity);
                    strcat(send_data_quene,weathe.daily_weathe[i].humidity);
                    strcat(send_data_quene,"+");
                }
 
            }
            else{
                sendData(TAG,"httprequestfail");  //json格式有誤。http請求失敗
            }

        }
        
         /**************************生活指數(shù)****************************************/
        if(arg == WEATHER_LIFE){
            psub = cJSON_GetObjectItem(root, "results");
            arrayItem = cJSON_GetArrayItem(psub,0);
    
            cJSON *locat = cJSON_GetObjectItem(arrayItem, "location");
            cJSON *suggestion = cJSON_GetObjectItem(arrayItem, "suggestion");
            if((locat!=NULL)&&(suggestion!=NULL))
            {

                cJSON *car_washing=cJSON_GetObjectItem(suggestion,"car_washing");
                psub=cJSON_GetObjectItem(car_washing,"brief");
                sprintf(weathe.car_washing,"%s",psub->valuestring);
                ESP_LOGI(TAG,"car_washing:%s",weathe.car_washing);
                strcat(send_data_quene,weathe.car_washing);
                strcat(send_data_quene,"+");
                
    
                cJSON *dressing=cJSON_GetObjectItem(suggestion,"dressing");
                psub=cJSON_GetObjectItem(dressing,"brief");
                sprintf(weathe.dressing,"%s",psub->valuestring);
                ESP_LOGI(TAG,"dressing:%s",weathe.dressing);
                strcat(send_data_quene,weathe.dressing);
                strcat(send_data_quene,"+");

                cJSON *flu=cJSON_GetObjectItem(suggestion,"flu");
                psub=cJSON_GetObjectItem(flu,"brief");
                sprintf(weathe.flu,"%s",psub->valuestring);
                ESP_LOGI(TAG,"flu:%s",weathe.flu);
                strcat(send_data_quene,weathe.flu);
                strcat(send_data_quene,"+");

                cJSON *sport=cJSON_GetObjectItem(suggestion,"sport");
                psub=cJSON_GetObjectItem(sport,"brief");
                sprintf(weathe.sport,"%s",psub->valuestring);
                ESP_LOGI(TAG,"sport:%s",weathe.sport);
                strcat(send_data_quene,weathe.sport);
                strcat(send_data_quene,"+");

                cJSON *travel=cJSON_GetObjectItem(suggestion,"travel");
                psub=cJSON_GetObjectItem(travel,"brief");
                if (psub->valuestring[0] == '\0'){
                    sprintf(weathe.travel,"%s","No Result");
                }else{
                    sprintf(weathe.travel,"%s",psub->valuestring);
                }
                ESP_LOGI(TAG,"travel:%s",weathe.travel);
                strcat(send_data_quene,weathe.travel);
                strcat(send_data_quene,"+");
                
                cJSON *uv=cJSON_GetObjectItem(suggestion,"uv");
                psub=cJSON_GetObjectItem(uv,"brief");
                sprintf(weathe.uv,"%s",psub->valuestring);
                ESP_LOGI(TAG,"uv:%s",weathe.uv);
                strcat(send_data_quene,weathe.uv);
                // strcat(send_data_quene,"+");
            
 
            }else{
                sendData(TAG,"httprequestfail"); //json格式有誤。http請求失敗
            }
        }
        
    }
    
    cJSON_Delete(root);}

cjson解析完后進行組合,將消息發(fā)送給RP2040。

2. 多機串口通信

本項目涉及到兩個模塊之間的通信問題,在開機后雙方都各持有一定信息,但需要相互通信才能完成工作。

流程基本為:RP2040發(fā)給esp32需要的wifi名和密碼,esp32在http請求成功后發(fā)給RP2040需要的天氣信息。RP2040可根據(jù)需要發(fā)送城市名給esp32讓其去發(fā)送http請求,esp32在網(wǎng)絡(luò)產(chǎn)生異常后也能及時發(fā)送狀態(tài)給RP2040。

(1)RP2040發(fā)送wifi名和wifi密碼給esp32

image.png

在本項目中esp32主要接收來自三種數(shù)據(jù):城市名,wifi名,wifi密碼,并不復雜,設(shè)置簡單的識別規(guī)則即可。

wifi名:在消息頭部添加"+"

wif密碼:在消息頭部添加"-"

城市名:不處理

具體處理代碼詳見weather_main.py的initialise_wifi()函數(shù),如下。

    async def initialise_wifi(self):#          初始化界面
        self.drawing.draw_opening()
        await asyncio.sleep_ms(2000)
       #        "+"和"-"用于讓esp32識別是wifi名還是密碼
        self.send_quene = "+" + wifi_name
        self.uart.write(self.send_quene)
        await asyncio.sleep_ms(1000)
        self.send_quene = "-" + wifi_passwd
        self.uart.write(self.send_quene)
        
        self.picture_index = 0
        self.drawing.draw_sending()  #發(fā)送中
        self.err = True
#         檢測wifi是否連接成功        while self.err == True:
            await self.uart_task()

在esp32接收識別后把頭部去掉即可,具體請見esp32的uart.c的rx_task()函數(shù)的相關(guān)部分,如下。

void rx_task(void *arg){
               ........................
            if (data[0] == '+'){
                //收到“+”開頭,判斷為wifi名
                Wifi_ssid = &data[1];    //截取
                strcpy (ssid,Wifi_ssid); //轉(zhuǎn)存
        
            }
            else if(data[0] == '-'){
                //收到“-”開頭,判斷為wifi密碼
                Wifi_password = &data[1];  //截取
                strcpy (passwd,Wifi_password);  //轉(zhuǎn)存
                ESP_LOGI(RX_TASK_TAG, "ssid %s password: '%s'", ssid, passwd);

                wifi_init_sta(ssid,passwd);  //wifi初始化
            }else{
                    
                ...............................

            }
            
      
    }

(2)esp32把處理好的數(shù)據(jù)整合發(fā)送給RP2040

image.png

由于更新一次數(shù)據(jù)需要發(fā)送3次http請求,所以方案有3種:

1.收到即發(fā):這樣的話要求RP2040需要嚴格控制讀取順序,容易出錯。

2.完成一個請求才發(fā)。

3.全部整合在一起再發(fā)。

顯然第二種方法除了整合數(shù)據(jù)之外,還需要進行接收信息的判斷,在考慮盡可能少判斷和少發(fā)送次數(shù)的前提下,采用第3種方法。只需設(shè)置合適的分隔符,將所有數(shù)據(jù)一次發(fā)送即可,接收端接收后去除分割符,按照次序讀取即可。

這里我采用"+"作為分隔符,在esp32中利用strcat()函數(shù)拼接(詳見上文json解析部分),利用python中的字符串內(nèi)建函數(shù)split()可以很容易分解并讀取,具體請參考RP2040的http_deal.py。

def data_deal(self):
        if self.text.find(b'+') != -1:
            decode_receiveStr = self.text.decode()   #去編碼,轉(zhuǎn)化為文本
            self.receive_items = decode_receiveStr.split('+')
            print(self.receive_items)
            http_get_data.city_name_text = self.receive_items[0]
            http_get_data.weather_current_text = self.receive_items[1]
            http_get_data.weather_current_code = self.receive_items[2]
            http_get_data.current_temperature = self.receive_items[3]
            http_get_data.date0 = self.receive_items[4]
            http_get_data.date0_day_text = self.receive_items[5]
            http_get_data.date0_day_code = self.receive_items[6]
            http_get_data.date0_night_text = self.receive_items[7]
            http_get_data.date0_night_code = self.receive_items[8]
           ........

(3)RP2040發(fā)送城市名給ESP32

image.png

發(fā)送城市名不做處理直接發(fā)送,在RP2040的wearher_main.py中,先是發(fā)送標志生效(self.send_flag = True),然后在uart_task()函數(shù)中發(fā)送,具體如下。

  async def uart_task(self):
         ......
        #         發(fā)送任務(wù)
        if self.send_flag == True:
            self.uart.write(self.send_quene)
            self.send_flag = False

esp32則直接接收,修改reqLocation變量,執(zhí)行http請求,具體見esp32的uart.c的rx_task()函數(shù)。

 void rx_task(void *arg){

            ...................................
     if (rxBytes > 0) {
            data[rxBytes] = 0;
            ESP_LOGI(RX_TASK_TAG, "Read %d bytes: '%s'", rxBytes, data);
            ESP_LOG_BUFFER_HEXDUMP(RX_TASK_TAG, data, rxBytes, ESP_LOG_INFO);
            if (data[0] == '+'){
                //收到“+”開頭,判斷為wifi名
                Wifi_ssid = &data[1];    //截取
                strcpy (ssid,Wifi_ssid); //轉(zhuǎn)存
        
            }
            else if(data[0] == '-'){
                //收到“-”開頭,判斷為wifi密碼
                Wifi_password = &data[1];  //截取
                strcpy (passwd,Wifi_password);  //轉(zhuǎn)存
                ESP_LOGI(RX_TASK_TAG, "ssid %s password: '%s'", ssid, passwd);

                wifi_init_sta(ssid,passwd);  //wifi初始化
            }else{
                //一般字符串,城市名
                reqLocation = data;
                ESP_LOGI(RX_TASK_TAG, "Re: '%s'", reqLocation);
                http_get_task();   //接受到立即發(fā)送請求
                

            }
            
        ......................
        

    }

(4)esp32錯誤消息發(fā)送給RP2040

esp32可能會出現(xiàn)兩種錯誤:wifi連接失敗和http請求失敗,可以直接讓RP2040讀取判斷,讀取后在屏幕上顯示相應(yīng)信息,具體詳見RP2040的weather_main.py的uart_task()函數(shù)中,如下。

    async def uart_task(self):
        self.receive_flag = self.uart.any()
         ...........
            #             wifi連接失敗
            if receiveStr == b'Connectfail':
                self.drawing.draw_wificonnectfail()
                await asyncio.sleep_ms(1500)
                self.err = True                
#             http請求失敗
            elif receiveStr == b'httprequestfail':
                self.drawing.draw_httprequestfail()
                self.err = True
                await asyncio.sleep_ms(1500)
            
             ..........................

3. 顯示

RP2040顯示主要使用st7789c庫,來自(https://github.com/russhughes/st7789_mpy)或(https://github.com/picospuch/RP2040_Game_Kit),以下討論的代碼均在RP2040源代碼的draw.py中。

該庫的優(yōu)勢在于顯示速度快而且能夠顯示jpg圖片,所以可以參考心知天氣平臺的天氣符號代碼與符號對應(yīng)關(guān)系(詳見https://docs.seniverse.com/api/start/code.html),就能夠根據(jù)顯示官方的天氣信息及符號。

根據(jù)官方文檔可知,每一個天氣代碼對應(yīng)一種天氣現(xiàn)象,所以可以利用這個代碼判斷該畫哪一張圖,由于python沒有switch語句而且循環(huán)判斷程序的執(zhí)行效率會很低,所以這里我采用了在類中定義不同的方法(方法名有一定的規(guī)則),然后通過getattr函數(shù)來進行實現(xiàn)判斷,我在后面判斷周幾以及的鍵盤鍵位判斷都用到了這個思路。具體詳見RP2040的draw.py的weather類和weekday類,以及l(fā)ocation.py的location類,具體如下。

class weather:
    
    picture_big = "/weather_picture_big/Unknown.jpg"
    picture_small = "/weather_picture_small/Unknown.jpg"
    
    def weather0(self):
        weather.picture_big = "/weather_picture_big/Sunny.jpg"
        weather.picture_small = "/weather_picture_small/Sunny.jpg"
    
    def weather1(self):
        weather.picture_big = "/weather_picture_big/Clear.jpg"
        weather.picture_small = "/weather_picture_small/Clear.jpg"
        
        ................

    def Default(self):
        weather.picture_big = "/weather_picture_big/Unknown.jpg"
        weather.picture_small = "/weather_picture_small/Unknown.jpg"
    
    def getweather(self, weather):
        weather_name = "weather" + str(weather)
        fun = getattr(self, weather_name, self.Default)
        return fun()class draw:

       .........................

   def draw_real_time_weather_picture(self,city_name,weather_current_code,weather_current_text,current_temperature):
        self.display.init()
        self.code.getweather(weather_current_code)  #天氣代碼判斷

          ................

        self.display.jpg(self.code.picture_big ,0 , 0, st7789.FAST)

(1)天氣實況顯示

image.png

天氣實況要顯示的內(nèi)容不多,但要注意心知天氣平臺返回的天氣字段有些會很長(如Thundershower with Hail),就有可能影響顯示,所以這里要先對部分長字段進行處理,經(jīng)過觀察后發(fā)現(xiàn)可以采用以下方式處理:

1.將有“Thunder”字段的換成"T","Thundershower"變?yōu)椤癟shower”,這可以接受,有些天氣平臺就是這么表示的。

2.將有空格的字段分兩行顯示。

這樣就能把一行顯示的字符控制在10個以內(nèi),具體詳見RP2040的draw.py中的draw_real_time_weather_picture()函數(shù),如下。

    def draw_real_time_weather_picture(self,city_name,weather_current_code,weather_current_text,current_temperature):

        ..................

        if weather_current_text.find('Thunder') != -1:      
            weather_current_text = weather_current_text.replace('Thunder','T')
            
        if weather_current_text.find(' ') != -1:
            item = weather_current_text.split(' ',1)
            self.display.text(font2,item[0],0,130)
            self.display.text(font2,item[1],0,170)
        else:
            self.display.text(font2,weather_current_text,0,150)
        
          ...........................

(2)生活指數(shù)顯示

image.png               image.png

由于返回的參數(shù)都是英文,生活指數(shù)部分字段長度不定,所以這里分兩頁來顯示,具體詳見draw.py中的draw_index_of_living()函數(shù),如下。

    def draw_index_of_living(self,index1,index2,index3,picture_index):

           ............................#         由于6向指數(shù)很難在同一幅畫面顯示,所以分開顯示
        if picture_index == 2:
            self.display.text(font3,"car_washing",60,0)          #洗車指數(shù)
            self.display.jpg("/index of living/car_washing.jpg" ,0 , 0, st7789.FAST)
            self.display.text(font2,index1,60,20,st7789.BLUE)
            
            self.display.text(font3,"dressing",0,81)                    #穿衣指數(shù)
            self.display.jpg("/index of living/dressing.jpg" ,180 , 81, st7789.FAST)
            self.display.text(font2,index2,0,100,st7789.RED)
            
            self.display.text(font3,"flu",60,161)                #流感指數(shù) 
            self.display.jpg("/index of living/flu.jpg" ,0 , 161, st7789.FAST)
            self.display.text(font2,index3,60,180,st7789.GREEN)
            
        if picture_index == 3:
            self.display.text(font3,"sport",60,0)            #運動指數(shù)
            self.display.jpg("/index of living/sport.jpg" ,0 , 0, st7789.FAST)
            self.display.text(font2,index1,60,20,st7789.BLUE)
            
            self.display.text(font3,"travel",0,81)            #旅游指數(shù)
            self.display.jpg("/index of living/travel.jpg" ,180 , 81, st7789.FAST)
            self.display.text(font2,index2,0,100,st7789.RED)
            
            self.display.text(font3,"uv",60,161)             #紫外線指數(shù)
            self.display.jpg("/index of living/uv.jpg" ,0 , 161, st7789.FAST)
            self.display.text(font2,index3,60,180,st7789.GREEN)

(3)天氣預(yù)報顯示

image.png

天氣預(yù)報要顯示的內(nèi)容是最多的,因此如何合理安排布局并使數(shù)據(jù)直觀是一個挑戰(zhàn)。

這里的天氣圖標對應(yīng)的是小版的,使用和上面一樣的在類中定義不同的方法(方法名有一定的規(guī)則),然后通過getattr函數(shù)來進行實現(xiàn)判斷的方式來實現(xiàn)。

在每日[敏感詞][敏感詞]氣溫的顯示上,我采用了比較簡約的方法,用紅色字體+H表示[敏感詞]氣溫,用藍色字體+L表示[敏感詞]氣溫,具體代碼詳見draw_weather_forcast()函數(shù)。

    def draw_weather_forcast(self,date0,date0_day_text,date0_day_code,date0_high_temperature,date0_low_temperature,date0_precip,date0_humidity,
                             date1,date1_day_text,date1_day_code,date1_high_temperature,date1_low_temperature,date1_precip,date1_humidity,
                             date2,date2_day_text,date2_day_code,date2_high_temperature,date2_low_temperature,date2_precip,date2_humidity):       

          .......................

 
        self.display.text(font3,"H"+date0_high_temperature,5,120,st7789.RED)       #[敏感詞]氣溫
        self.display.text(font3,"L"+date0_low_temperature,5,140,st7789.BLUE)       #[敏感詞]氣溫
        self.display.text(font2,"C",43,125)
        self.display.text(font1,"o",40,120)


            .........................

而關(guān)于降水概率(POP)和相對濕度(HR)都是百分數(shù),可以采用類似長度條的方式直觀的表現(xiàn)其大小,而且占用空間小。




   def draw_weather_forcast(self,date0,date0_day_text,date0_day_code,date0_high_temperature,date0_low_temperature,date0_precip,date0_humidity,
                             date1,date1_day_text,date1_day_code,date1_high_temperature,date1_low_temperature,date1_precip,date1_humidity,
                             date2,date2_day_text,date2_day_code,date2_high_temperature,date2_low_temperature,date2_precip,date2_humidity):

          ..........................

       self.display.text(font3,"POP:",0,160,st7789.MAGENTA)       #降雨概率POP
        num_date0_precip = float(date0_precip)
        length = int(num_date0_precip * 70)
        self.display.fill_rect(5,183,length,5,st7789.MAGENTA)       #顏色條顯示,越長百分比越大
        self.display.fill_rect(3,182,5,7,st7789.WHITE)
        num_date0_precip = num_date0_precip * 100
        num_date0_precip= int(num_date0_precip)
        self.display.text(font3,str(num_date0_precip)+"%",50,160,st7789.MAGENTA)
        
        self.display.text(font3,"HR:",0,190,st7789.CYAN)          #相對濕度HR
        num_date0_humidity= int(date0_humidity)
        length = int(num_date0_humidity * 70 /100)
        self.display.fill_rect(5,213,length,5,st7789.CYAN)
        self.display.fill_rect(3,212,5,7,st7789.WHITE)
        self.display.text(font3,str(num_date0_humidity)+"%",50,190,st7789.CYAN)

        ....................................

(4)實時時間顯示

若要得到實時時間,可以通過RP2040的RTC(實時時鐘)獲得當前時間,調(diào)用也十分方便。不過要顯示時間的話,則需要一個變量來記錄時間的變化,時間數(shù)值變化了才刷新屏幕顯示,這樣就能在屏幕上實現(xiàn)時間變化的效果。本項目使用 self.last 來記錄時間,具體實現(xiàn)代碼詳見weather_main.py的draw_times函數(shù):

    def draw_times(self):
        if self.rtc.datetime() != self.last :
            time_index = self.rtc.datetime()
            #             只在實時天氣界面顯示時間
            if self.picture_index == 1 :
                self.drawing.draw_time(str(time_index[0]),str(time_index[1]),str(time_index[2]),str(time_index[3]),str(time_index[4]),str(time_index[5]),str(time_index[6]))
            self.last = time_index
        gc.collect()

由于時間的顯示是需要實時更新的,所以這個函數(shù)在總進程中也要調(diào)用。

    async def process(self):

        self.hardware_init()
        await self.initialise_wifi()  #初始化界面
        
        self.last_hour = self.rtc.datetime()[4]
        self.last = self.rtc.datetime()
        while True:
            self.dir_select()     #遙感檢測
            self.regular_update() #定時更新
            self.draw_times()     #更新時間
            self.city_choose()    #修改城市名
            await self.uart_task()  #串口任務(wù)

 

 

3.操作交互

本項目顯示主要分為兩個模式:一般模式和鍵盤模式。一般模式下主要顯示天氣信息,鍵盤模式下顯示并修改城市名。

(1)一般模式

即接收到http報文后顯示各類天氣信息的模式。

基本操作:搖桿左右移動可切換顯示內(nèi)容,上下移動則無效,通過變量 self-picture-index 決定顯示哪一個畫面,具體內(nèi)容請參考 weather_main.py中的 dir_select()函數(shù),如下。

    def dir_select(self):

        xValue = self.xAxis.read_u16()
        yValue = self.yAxis.read_u16()

        if xValue <1000:
            self.picture_index -= 1
            if self.picture_index < 1 :
                self.picture_index = 4
            self.draw_picture()   #遙感有動作時才更新畫面
        elif xValue >40000:
            self.picture_index += 1
            if self.picture_index > 4 :
                self.picture_index = 1
            self.draw_picture()

        gc.collect()

該模式下B鍵用于刷新天氣數(shù)據(jù),即按下B鍵后就使發(fā)送標志生效,發(fā)送城市名給ESP32,讓其發(fā)送http請求,具體詳見weather_main的refresh_callback()函數(shù),如下。

    def refresh_callback(self, p):
        print("k2 pressed")
        self.send_flag = True

A鍵則用于打開鍵盤模式,具體詳見weather_main的keyboard_callback()函數(shù),如下。

    def keyboard_callback(self, p):
        print("kkk pressed")
        self.keyboard_cw = True

(2)鍵盤模式

即顯示一個虛擬的9鍵鍵盤,讓使用者能修改城市名。

基本操作:參考我門平時聽熟悉的9鍵鍵盤,其會把26個英文字母分成不同段安排在不同按鍵中,當我們選中按鈕后會彈出一欄字母的分支選擇,在分支欄中再進行一次選擇才能把內(nèi)容寫入(當然這是以前的9鍵鍵盤,現(xiàn)在的可以模糊選擇),所以基本的邏輯如下。

image.png

 

所以操作的流程為:按A打開鍵盤,用四項搖桿進行上下左右鍵位選擇,最左邊一欄為功能鍵,其余為字符鍵,按A選中,選擇不同的功能鍵會有不同的效果,字符鍵分為有效字符和無效字符(.用 ">_<"表示),選擇無效字符是無反應(yīng)的,選擇有效字符后最左側(cè)的功能鍵欄會被替換為分支內(nèi)容,此時只能上下移動搖桿,按A選中寫入字母到發(fā)送序列,按B則回退到9鍵選擇,在選中發(fā)送鍵"ENT”前會一直保留鍵盤界面,按“ENT”后才會退出并發(fā)送城市名給ESP32進行http請求。若http請求失敗(城市名有誤,網(wǎng)絡(luò)斷開),則會進入httprequestfail界面,若是城市名輸入有誤,此時按A鍵可重新打開鍵盤修改信息。

代碼實現(xiàn)過程:

實現(xiàn)一個虛擬鍵盤本質(zhì)上就是,使用按鍵進行信息操作,操作過程通過屏幕顯示出來。

關(guān)于鍵位顯示:移動光標的結(jié)果可以用x,y坐標表示,對應(yīng)RP2040中的 self.locat_x和self.locat_y,關(guān)鍵在于每一個位置對應(yīng)不同的功能和字段,因此我利用上文說到的在類中定義不同的方法(方法名有一定的規(guī)則),然后通過getattr函數(shù)來進行實現(xiàn)判斷,相干內(nèi)容在location.py的location類中,如下。

class location:
    caps = 1       #大小寫開關(guān)
    number = 0     #數(shù)字開關(guān)
    
    def location1_1(self):
       return "123"    #切換為數(shù)字


    def location2_1(self):
        if location.number == 1:
            return "1  "
        elif location.caps == 1:
            return "abc"
        else:
            return "ABC"
        
    def location3_1(self):
        
       if location.number == 1:
            return "2  "
       elif location.caps == 1:
            return "def"
       else:
            return "DEF"
        
    def location4_1(self):
        
        if location.number == 1:
            return "3  "
        elif location.caps == 1:
            return "ghi"
        else:
            return "GHI"
    
    def location1_2(self):
        return "A/a"         #切換大小寫


    def location2_2(self):
        if location.number == 1:
            return "4  "
        elif location.caps == 1:
            return "jkl"
        else:
            return "JKL"
        
    def location3_2(self):
        if location.number == 1:
            return "5  "
        elif location.caps == 1:
            return "mno"
        else:
            return "MNO"
        
    def location4_2(self):
        if location.number == 1:
            return "6   "
        elif location.caps == 1:
            return "pqrs"
        else:
            return "PQRS"
        
    def location1_3(self):
        return "DEL"     #刪除字符
    
    
    def location2_3(self):
       if location.number == 1:
            return "7  "
       elif location.caps == 1:
            return "tuv"
       else:
            return "TUV"
        
    def location3_3(self):
        if location.number == 1:
            return "8   "
        elif location.caps == 1:
            return "wxyz"
        else:
            return "WXYZ"
        
    def location4_3(self):
        if location.number == 1:
            return "9  "
        else:
            return '>_<'   #英文字母不需要這一位      
    def location1_4(self):
        return "ENT"    #發(fā)送字符
    
    
    def location2_4(self):
        return '>_<'    
    def location3_4(self):
        if location.number == 1:
            return "0  "
        else:
            return '>_<' #英文字母不需要這一位
            
    def location4_4(self):
        return '>_<'
        
    def Default(self):
        print("wrong")
        
    def getlocation(self, locationx,locationy):
        location_name = "location" + str(locationx)+"_"+str(locationy)
        fun = getattr(self, location_name, self.Default)
        return fun()

這樣就將鍵位內(nèi)容和鍵位聯(lián)系起來了,就可以實現(xiàn)畫鍵盤(draw.py的draw_keyboard()函數(shù))和高亮按鍵(draw.py的draw_highlight()函數(shù)),如下:

    def draw_keyboard(self):
        a = location()
        self.display.fill_rect(0,101,34,139,st7789.BLACK)
        self.display.fill_rect(36,206,63,33,st7789.BLACK)
        self.display.fill_rect(176,206,63,33,st7789.BLACK)
        self.display.vline(35,100,140,st7789.YELLOW)
        self.display.vline(105,100,140,st7789.YELLOW)
        self.display.vline(175,100,240,st7789.YELLOW)
        self.display.hline(0,100,240,st7789.YELLOW)
        self.display.hline(0,135,240,st7789.YELLOW)
        self.display.hline(0,170,240,st7789.YELLOW)
        self.display.hline(0,205,240,st7789.YELLOW)
        
        self.display.text(font2,a.getlocation(2,1),36,101 )
        self.display.text(font2,a.getlocation(3,1),106,101 )
        self.display.text(font2,a.getlocation(4,1),176,101 )
        
        self.display.text(font2,a.getlocation(2,2),36,136 )
        self.display.text(font2,a.getlocation(3,2),106,136 )
        self.display.text(font2,a.getlocation(4,2),176,136 )
        
        self.display.text(font2,a.getlocation(2,3),36,171 )
        self.display.text(font2,a.getlocation(3,3),106,171 )
        self.display.text(font2,a.getlocation(4,3),176,171 )
        
        self.display.text(font2,a.getlocation(3,4),106,206 )
        
        self.display.text(font3,a.getlocation(1,1),0,101 )
        self.display.text(font3,a.getlocation(1,2),0,136 )
        self.display.text(font3,a.getlocation(1,3),0,171 )
        self.display.text(font3,a.getlocation(1,4),0,206 )
        #     選中按鍵字體變成[敏感詞]表示高亮
    def draw_highlight(self,x,y):
        a = location()
        locat_x = 36 + 70 * (x-2)
        locat_y = 101 + 35 * (y-1)#         功能鍵字體大小偏小需另外處理
        if x == 1:
            self.display.text(font3,a.getlocation(x,y),0,locat_y,st7789.YELLOW)
        else:
            self.display.text(font2,a.getlocation(x,y),locat_x,locat_y,st7789.YELLOW)

那么怎么判斷功能鍵并實行相應(yīng)功能呢?本項目把功能鍵設(shè)置成特定字段(123,A/a,DEL,ENT),并在鍵盤循環(huán)中判斷相應(yīng)字段是否對應(yīng)即可,然后實現(xiàn)相應(yīng)功能,具體詳見weather_main的keyboard()函數(shù),如下。

    def keyboard(self):#         畫出鍵盤
        self.drawing_keyboard()
        self.drawing.draw_quene(self.send_quene)#         修改按鍵AB的回調(diào)函數(shù)        
        self.k1 = button(game_kit.key_a, self.k1_callback)
        self.k2 = button(game_kit.key_b, self.k2_callback)#         保持鍵盤畫面,在確認發(fā)送后退出畫面
        while self.keyboard_cw == True:
            self.backup = False
            xValue = self.xAxis.read_u16()
            yValue = self.yAxis.read_u16()
            sleep(0.2)
            if xValue <1000:
                self.locat_x -= 1
                if self.locat_x < 1:
                    self.locat_x = 1
                self.drawing_keyboard()  #每次移動搖桿后更新畫面
            elif xValue >40000:
                self.locat_x += 1
                if self.locat_x > 4:
                    self.locat_x = 4
                self.drawing_keyboard()
            if yValue <1000:
                self.locat_y -= 1
                if self.locat_y < 1:
                    self.locat_y = 1
                self.drawing_keyboard()
            elif yValue >40000:
                self.locat_y += 1
                if self.locat_y > 4:
                    self.locat_y = 4
                self.drawing_keyboard()
            #             選中一格
            if self.chosen :
                self.chosen = False
                a= location()
                s_list=list(self.send_quene )#將字符串轉(zhuǎn)換為列表
                #                 選中發(fā)送鍵
                if a.getlocation(self.locat_x,self.locat_y) == "ENT":
                    self.keyboard_cw = False   #關(guān)閉鍵盤退出循環(huán)
                    #                     選中刪除鍵
                elif a.getlocation(self.locat_x,self.locat_y) == "DEL" :#                     判斷是否已經(jīng)全部刪除完了
                    if len(s_list)!= 0 :
                        s_list.pop(-1)#pop掉列表最后一個值,返回被pop掉的值
                        self.send_quene = ''.join(s_list)#將pop之后的列表通過join()函數(shù)轉(zhuǎn)換為字符串
                        self.drawing.draw_quene(self.send_quene) #更新已寫入內(nèi)容
                        #                         選中有效區(qū)域
                elif a.getlocation(self.locat_x,self.locat_y) != ">_<" :
                    if a.getlocation(self.locat_x,self.locat_y) == "123":   #選中切換數(shù)字
                        location.number = 1
                        self.drawing_keyboard()
                    elif a.getlocation(self.locat_x,self.locat_y) == "A/a": #選中切換大小寫
                        location.number = 0
                        location.caps = 1-location.caps
                        self.drawing_keyboard()
                    else:
                        self.branch_choose(self.locat_x,self.locat_y) #選中字符串

而選擇有效字符后需要顯示分支,按照鍵位信息中的內(nèi)容顯示在原功能欄即可,此時修改搖桿為只能上下移動,并利用按鍵AB實現(xiàn)選擇或回退,邏輯部分詳見weather_main.py的branch_choose()函數(shù),畫圖部分詳見draw.py的draw_branch()函數(shù),如下。

/weather_main.py    def branch_choose(self,x,y):
        index = 1
        a = location()
        index_max = len(a.getlocation(self.locat_x,self.locat_y)) #按鍵內(nèi)容占格數(shù)
        self.drawing_branch(index)
        #         是否按下回退鍵,若按下則回到鍵位選擇
        while self.backup == False  :
            sleep(0.2)
            yValue = self.yAxis.read_u16()
            if yValue <1000:
                index -= 1
                if index < 1:
                    index = 1
                self.drawing_branch(index)
            elif yValue >40000:
                index += 1
                if index > index_max:
                    index = index_max
                self.drawing_branch(index)
                #            選中字符
            if self.chosen :
                self.chosen = False
                self.send_quene = ''.join([self.send_quene,a.getlocation(self.locat_x,self.locat_y)[index-1]]) #將字符加入發(fā)送隊列
                self.backup =True  #退出分支
                
            self.drawing.draw_quene(self.send_quene) #更新寫入內(nèi)容
        self.backup = False
        self.drawing_keyboard()/draw.py    def draw_branch(self,index,str):
    
       self.display.fill_rect(0,101,34,33,st7789.BLACK)
       self.display.fill_rect(0,136,34,33,st7789.BLACK)
       self.display.fill_rect(0,171,34,33,st7789.BLACK)
       self.display.fill_rect(0,206,34,33,st7789.BLACK)
       locat_y = 101 + 35*(index -1)
       for i in range(0,len(str)):
           self.display.text(font2,str[i],0,101 + 35 * i)
       self.display.text(font2,str[index-1],0,locat_y,st7789.YELLOW)

最后在發(fā)送數(shù)據(jù)退出鍵盤模式回到一般模式時,要還原現(xiàn)場,具體操作詳見weather_main.py中的city_choose()函數(shù),如下。

    def city_choose(self):
        if self.keyboard_cw == True:
            self.drawing.clear()  #清屏
            self.drawing.draw_tip("city_name:")
            self.keyboard()
            self.picture_index = 0  
            self.drawing.draw_sending()  #發(fā)送中畫面
            #             將按鍵回調(diào)函數(shù)修改回一般模式下的情況
            self.k1 = button(game_kit.key_a, self.keyboard_callback)
            self.k2 = button(game_kit.key_b, self.refresh_callback)
            self.send_flag = True  #可以發(fā)送
            gc.collect()
            self.last = self.rtc.datetime()  #還原現(xiàn)場,保持時間更新

四、后記

這是我第二次用樹莓派的rp 2040來開發(fā)項目了,這次的過程比上一次要復雜許多,雖然總的思路很清晰,但這一次新引入的esp32-s2模塊給我?guī)砹巳碌奶魬?zhàn),網(wǎng)絡(luò)編程和多機通信,很多都是我[敏感詞]次接觸的東西,比如esd32-idf的開發(fā),不過最后我也充分體會到了多機互聯(lián)的快樂。就本項目而言,未來還有值得提高的地方。

  1. 加入中文顯示。有關(guān)這方面的知識我還不太了解,如果能有中文顯示界面將可以進一步優(yōu)化。
  2. 加入WiFi掃描與連接。既然有了鍵盤理論上就能通過操作游戲機來聯(lián)網(wǎng),這樣使用起來將更加靈活。    
  3. 利用Esp 32的 NVM儲存WiFi的相關(guān)信息,這樣在每次斷電后再恢復供電時能自動連接WiFi?

由于時間原因以上兩點尚未實現(xiàn),但我相信在不久的將來定能實現(xiàn)。






免責聲明:本文轉(zhuǎn)載自“電子森林”,本文僅代表作者個人觀點,不代表薩科微及行業(yè)觀點,只為轉(zhuǎn)載與分享,支持保護知識產(chǎn)權(quán),轉(zhuǎn)載請注明原出處及作者,如有侵權(quán)請聯(lián)系我們刪除。

服務(wù)熱線

0755-83044319

霍爾元件咨詢

肖特基二極管咨詢

TVS/ESD咨詢

獲取產(chǎn)品資料

客服微信

微信客服號

狠狠色婷婷丁香综合久久| 日韩欧美高清一区| 欧美性爱视频免费| 久久久无码精品亚洲日韩麻豆| 富二代短视频app| 国产精品久久久午夜视频| 亚洲国产精品自拍小视频| 青青草久久伊人| 影音先锋AV色噜噜影院| 97人妻无码视频在线| 91PORN桃色在线网站| 国产又粗又大又爽又免费视频| 亚洲精品成人网线在线播放ⅤA | 亚洲毛片不卡一区二区| 中文字幕成人无码人妻| 少妇的滋味2做爰动漫观看| 在线观看肉片av网站免费| 国产一区二区三区久久久精品| 亚洲Ⅴa无码吞精在线观看| 欧美中日韩一二三区高清视频| 国产精品日本一区二区不卡视频| 日本人妻巨大乳挤奶水陈述| 久久天堂综合亚洲鲁鲁五月天| 亚洲性爱无码视频| 欧美深度内射狠狠干| 男女无遮挡羞羞的事情网站| 国产欧美日韩手机在线不卡| 欧美亚洲综合久久久| 67id国产在线观看| 国产熟女高潮av6666| 亚洲a日韩综合一区在线观看| 天天躁日日躁狠狠躁欧美一区 | 重口xx00视频变态另类| 精品麻豆高清一区二区三区| 亚洲高清日韩一区二区久久| 欧美国产日韩成人在线| 精灵宝可梦狂桶小霞网站| 欧美日韩国产aⅴ| 亚洲av最新在线观看网址下载| 国产另类欧美日韩| 国产人妻人伦精品熟女麻豆| 色综合av男人的天堂伊人| 无码中文字幕一区| 怡春院国产精品视频不卡| 国产91精品久久久久久久网曝门| 国产精品色无码视频| 国产免费之久久精品| 亚洲天堂三级片| 国产亚洲欧美另类中文| 超碰在线97国产久中文| 4438亚洲五月丁香综合| 91精品视频在线浏览| 国产精品美女视频| 九一国偷资产视频在线观看| 日韩精品久久无码人妻免费| 国产精品亚洲片在线牛牛影视| 欧美人妻一区二区91| 无码精品A∨夜夜嗨| 中文字幕一级淫片| 69pao精品视频在线观看| 91麻豆精品视频在线| 大屁股熟女白浆一区二区三区| 久久久久夜夜夜夜综合国产| 久久免费国产精品一区二区 | 中文字幕av毛片不卡| 欧产日产国产精品99在线| 久久中文高清欧美| 欧洲性开放老妇人太大人妻| 亚洲欧洲闷骚AⅤ妇女影院| 久久无色码中文字幕婷婷| 久久精品无码一区二区国产区| 无码一区二区三区毛片| 日韩在线制服人妻有码| 一本一道伊人99久久综合蜜臀| 日本人妻一区二区三区| 曰韩一区二区三区免费视频| 日韩 欧美 国产 精品 综合| 欧美ol丝袜高跟秘书在线观看| 日本香蕉一区二区在线观看| 91亚洲激情另类| sao虎在线精品永久观看入口| 亚洲男人的天堂成人| 国产亚洲一区二区三区伦理| 91麻豆果冻不卡在线观看| 伪娘高潮av免费在线观看| 超碰在线观看av| 天天日天天干天天弄天天操| 国产高潮无套免费视频| 狠狠色精品视频免费观看| 日韩?V无码专区国产乱码| 日本羞羞黄A视频在线观看| 爱v在线一区二区国产精品| 中文字幕av毛片不卡| 亚洲精品国产品国语| 蜜月久久夜色国产精品| 色天天综合色天天碰| 午夜影视免费观看| aⅴ无码一区二区三区免费| 美女视频自拍一区亚洲| 丝袜美腿视频欧美一区二区| 午夜福利片手机在线播放片源豐富 | 国产精品一级二级日韩久无码 | 黄色一级在线三级日a在线| 日日噜狠狠噜天天噜av| 久久天堂综合亚洲鲁鲁五月天| 国产又色又爽又黄刺激又硬的视频| 久久公开免费视频| 久久国产欧美一区二区免费| 欧美日韩国精品久久人人爽天天玩人人妻产精品 | 海外免费人成视频x8x8在线观看| 免费看看一区二区三区视频| 精品成人伦理片久久久久久| 午夜日韩成人在线观看| 潮喷失禁大喷水aⅴ无码| 中文字幕无线码一区二区理论| 少妇高潮惨叫久久久久电影70| 狠狠操天天操| 日本怡春院一区二区三区| av在线免费不卡电影大全| 91少妇高潮喷水流白浆15| 青青青爽在线视频观看| 亚洲一区二区三区久本道| 中文字幕亚洲精品1| 国产特色毛片| 国产老熟女真实网站| 曰韩一区二区三区免费视频| 加勒比人妻AV无码中文字幕| 久久久一二三无码免费| 欧美丰满少妇人妻HD高清在线| 永久免费的拍拍拍网站| 狠狼鲁亚洲综合在线| 午夜成人亚洲理论片在线观看| 婷婷97狠狠的狠狠的愛| 综合亚洲桃色第一影院| 最新亚洲人成人蜜芽| 国产欧美日韩老妇人| 永久免费视频网站| 青青草原网站在线观看| 综合精品国产丝袜长腿久久| 日本怡春院一区二区三区| 亚洲成色在线99精品亚洲| 日韩AV高潮喷吹在线观看| 亚洲Av库在线观看国产| 日韩一区二区影院| 日韩一级在线免费观看| 视频思思久久免费国产| 色综合天天狠狠爱高清| 日韩精品一区二区三区成人vr| 中文字幕人妻在线视频| 国产成人观看在线视频| 国产好紧好爽好大再浪一点| 2022福利综合导航永久地址| (凹凸視頻)久久综合亚洲鲁鲁五月| 国产三级视频网站大全 | 久久婷婷毛片视频| 国产亚洲欧美另类中文| 国产一区二区精品久久呦互動交流| 日韩久久精品免费播放| 國產成人一區二區三區視頻免費| 日韩中文字幕2020| 国产精品亚洲青涩| 久久久久免费激情视频| 国产毛片国语版手机在线| 老阿姨才是最有味的| 国产国产人成免费视频77777| 成H动漫精品一区二区无码 | 在线观看高清黄网站免费视频| 无码专区中文字幕专区| 免费韩国三级毛片 | 亚洲AV日韩AV伊人| 黄色av网站免费在线观看| 亚洲a∨无码专区在线看| 国产日韩欧美中文另类| 91抖音在线观看| 日韩欧美在线一二区| 菠萝蜜app成年视频| 国产l精品国产亚洲| 亚洲AV日韩久荜AV在线| 欧美浓毛老太大泬毛茸茸| 激情欧美日韩亚洲| 国产精品丝袜老师剧情演绎| 重口xx00视频变态另类| 400部精品国偷自产在线| 成人亚洲中文字幕| 一级一区二区在免费线观看| 粉嫩av国内精品人人爽| 99亚洲国产精品v在线播放| 2022能看的黄色网站| 又湿又紧又大又爽A视频| 精品日韩在线视频| 法国《熟妇的荡欲》在线观看| 国模安雅宾馆私拍鲜嫩玉门| 国产欧美日韩精品二区浪潮| 中文字幕婷婷综合| 午夜福利激情国产av| 色综合天天狠狠爱高清| 无码网站天天爽免费看| 打扑克又疼又叫原声视频软件| 日韩亚洲欧洲在线| 中文字幕亚洲一区二区系列| 亚洲乱码一区二区三区三上悠亚| 免费区无码 国产网站| 中文字幕自拍一区400| 又湿又紧又大又爽A视频| 被老汉糟蹋怀孕H双性| 男男羞羞视频在线观看| 免费无码一区二区精品视频| 午夜中文无码无删减| 久久天堂av综合色无码专区| 久久久久久国产精品一区 | 日韩国产欧美经典一区二区三区| 亚洲综合操逼免费| 福利美剧影视大全电影大全在线观看免费版全集 | 一区二区三区四区无区av性色av| 國產成人一區二區三區影院動漫| av毛片在线播放免费| 午夜视频精品一区二区三区| 国产日韩欧美另类一区二区三区| 综合三级亚洲高清| 得得干在线视频| 嗯灬啊灬把腿张开灬所有漫画 | 中文字幕亚洲一区二区系列| 精品亚洲国产成人a片在线鸭王| 欧美一区二区三区精品久久| 污污污18禁图片| 中文字幕不卡每日更新| 操美女视频网站| 国产精品美女视频| 久久亚洲欧美精品一区二区三区| 久久久久久91精品免费 | 美利坚一级片久久网| 成人先锋影音福利导航| 男男19禁啪啪无遮挡免费| 乱码一卡二卡三卡免费| 国产精品爽爽在线免费观看| 在线看黄AV免费安全| 免费黄色毛片免费黄色毛片| 亚洲嫩草研究院久久久精品| 好爽太紧了再快点小宝贝| 欧美国产大片在线播放| 国产中文字幕在线一区| 欧美国产大片在线播放| 日日噜狠狠噜天天噜av| 日韩毛片大全| 国产精品小视频91| 亚洲色中文字幕无码av| 日本三级久久精品三级| 少妇中文字幕乱码 | 歐美成人免費高清視頻| 国产精品音频在线一区| 99久久精品免费国产一区二区| 天天看天天射| 欧美影院亚洲区一区二区| 97久久久人妻精品一区| 久久99精品二区| 老司机亚洲精品影院国产免费看污网站 | 越南美女内射BBWXZ| 国产精品一区免费视频| 国产亚洲一区二区三区伦理| 日本成人在线免费观看网址| 黑人入室粗暴人妻中出 | 日本熟妇中文在线视频| 成人在线播放网站| 美女动漫视频一区二区三区| 给我播放亚洲电影| 国模自慰一区二区三区| 亚洲亚洲AV日韩综合一区| 又黄又湿又紧的视频| 狠狠色成人综合网图片区| 丰满少妇被猛烈高清播放多人| 免费人成视频在线观看播放网站| 久久精品苍井空精品久久| 免费观看视频一区| 91免费到线观看免费搞J| 欧美亚洲综合5月婷婷 | 91成人国产综合久久精品九色| 中文字幕在线永久在线视频| 久久精品人人做人人爽老司| 好色先生APP污版| 苍井空qvod+在线| 亚欧自拍视频在线看免费看| 一本色道久久久888| 97久久一区中文字幕久久| 亚洲欧洲闷骚AⅤ妇女影院| 欧美日韩亚洲另类激情| 男男国产成人无码区免费网站| 欧美亚洲日产另类 | 國產成人一區二區三區視頻免費 | 国产无遮挡又爽又黄| 国产一级特黄特黄片| 国产一区在线无码精品| 无码网站天天爽免费看| 欧洲M∨日韩M∨国产无限观看 | 国内精品亚洲| 丰满人妻一区二区三区色网视频不卡| 亚洲精品区二区三区蜜桃| 被老汉糟蹋怀孕H双性| 宅男黄色软件| 国产猛烈高潮大叫视频九色| 日韩精品有码无码国产| 亚洲欧美日韩激情网| 午夜av无码福利免费看网站| 国产成人无码av在线宽看| 91正在播放超美丝袜| 日本人妻少妇一区二区三区在线不卡 | 国产美女主播av微拍| 2021国产麻豆剧传媒古装| 日韩欧美激情91| 另类国产日韩欧美综合| 亚洲?V无码专区国产乱码4SE| 亚洲国产日本丰满| 国产人伦精品一区二区三区| 菠萝蜜app成年视频| av在线免费观看午夜福利| AV永久天堂网色欲国产一区二区亚洲高清 | 国产伦子伦一级A片免费看老牛 | 草莓视频在线免费观看的直播内容| avaⅴ亚洲电影天堂| 18禁视频全免费含羞草| 一级少妇无码专区| 日本三级韩国三级久久久久 | 久久免费国产精品一区二区| 亚洲国产日韩v在线欧美 | 亚洲av色香蕉一区二区三区性色| 98中文字幕第一区| 亚洲av成人av一区二区| 国产一区二区精品久久呦互動交流 | 初尝黑人巨砲波多野结衣| 无码丰满熟妇一区二区浪潮Av| 久久久久夜夜夜夜综合国产| 国产高清在线观看网站| 国产乱码精品一品二品| 中文字幕黃色的| 久久久久成人香蕉网站| 夜夜夜夜曰天天天天拍国产| 毛片无码网站| 国产欧美第一区二区| 国产精品免费无码不卡视频| 2024久久国产综合精品| 国产精品欧美一区麻豆系列| 一本大道香蕉亚洲久蜜臀| 欧美精品免费观看欧美影视| 日本高清不卡一区| 日产欧美人妻av大片黄瓜视频| 欧美老熟妇xB水多毛多rv| 丰满人妻大屁股一区二区香蕉| 久久免费视频播放平台| 欧美亚洲激情五月| 色欲人妻AV久久无码精品| 欧美一本大道香蕉综| 亚欧乱色束缚一区二区三区| 亚洲综合日韩第十页| 有码欧美日韩精品一区二区| 日本少妇一级做α| 欧美精品第一页影音先锋| 欧美性爱视频和小说| 日韩一区二区三区不卡中文字幕| 国产特色毛片| 久久五月丁香综合中文亚洲| 日本少妇一级做α| 国产精品午夜成人一区二区| 动漫精品一区二区三区视频| av在线观看亚洲免费| 免费一区二区视频| 99亚洲男女激情在线观看| 国产午夜不卡精品午夜电影| 伊人天堂av无码av日韩av| 啪啪免费观看网站| 日韩?V无码专区国产乱码| 日韩av免费无码一区二区三区| 精品国产911在线观看婷婷| 国产精品美熟女一二区| 天天干夜夜操天堂操操| 欧美国产一级片黄片免费观看| 亚洲一区二区三区极品av| 亚洲日批视频| 国产每日更新| 亚洲午夜福利毛片| 69pao精品视频在线观看| 2018国产午夜主播福利| 欧美视频免费一区二区| 精品亚洲国产成人a片在线鸭王| 老阿姨才是最有味的| **字幕一区完整视频免费看| 免费韩国三级毛片| 又长又粗又硬视频太爽了快来| 国产成人自拍大片在线观看| 精品国产第一精品国产综合色戒| 日韩一区精品无码二区| 在线观看高清黄网站免费视频| 老司机亚洲精品影院国产免费看污网站 | 海外免费人成视频x8x8在线观看| 女人18毛片久久| 亚洲高清aⅴ日本| 欢迎访问国产中日韩久久久噜噜久久 | 中文 有码 亚洲 自拍 偷拍| 精品國產專區91在線尤物| 朱竹清又紧又深又湿又爽| 久久久这里有的精品无码| 乱码一卡二卡三卡免费| 成片免费一卡三卡四卡| 美女插免费性色亚洲日韩伦理中字| 无码av一级蜜桃| SM强制高潮调教无码视频| 手机国产日韩高清免费看片| 日韩亚洲欧美A∨| 国产高清在线观看网站| 成年美女黄网站色大全| 宅男的天堂天天影视网可乐影院| 亚洲天天骚女现场视频| 欧美熟女另类久久久久| 性动态视频在线观看免费| 日韩一级无码电影| 最新网站亚洲人成无码| 国产免费网址| 国产精品天天堂网| 久久精品国产亚洲成人满18免费网站| 成人性色生活片免费看爆迷你| 女同精品一区二区网站| 久久精品国产亚洲?v热网站| 日本高清免費不卡視頻| 国产午夜福利在线播放1000| 伊人天堂偷偷看热草| 亚洲国产一区二区三区久久| 69pao精品视频在线观看| 午夜小视频男女在线观看| 日本按摩高潮?级中文片不| 国产日韩欧美另类一区二区三区| 俺来也俺也啪www色| 亚洲综合爱爱| 丰满少妇被猛烈高清播放多人| 亚洲欧美日韩一区在线直播| 欧美一级搡BBBB搡BBBB | 很色很黄的视频网站免费| 国产一级特黄特黄片| 99久久久精品国产乱码| 人人舔人人摸人人用| 亚洲熟妇国产熟妇肥婆| 在线看人与动人物A级网址| 亚洲国产一级片一级特黄高清aaaa大片| 婷婷五月天影视OL无码综合不卡| 日韩电影手机在线| www.三级在线观看.com| 国产精品亚洲片久久久| 欧美黄三级视频在线| 亚洲色大成网站WWW看下面| 亚洲欧美日韩高清| 先锋影音国产视频精品三区| 91人妻人人澡人人爽人人DVD| 国产午夜aⅴ免费不卡在线| avtt天堂永久网| 超清中国国产一级毛卡片在线| 张开双腿高潮喷水抽搐| 国产美女一区二区免费视频| 男女互舔中出水抽插视频| 亚洲不卡网站一区二区三区| 亚洲无码午夜小电影| 又黄又粗又大免费观看网址| 在线观看免费人成片| 国产精品一区二区三区99| 国产丝袜老师喷水| 亚洲午夜精品在线| 免费女人18毛a级毛片视频| 亚欧日韩欧美一区| 久久精品无码午夜福利| 中文字幕婷婷综合| 欧美一本大道香蕉综| 日韩国产欧美经典一区二区三区| 免费一级毛片不卡在线播放| 亚洲不卡一区二区三区视频 | 国产精品久久成人午夜一区二区| 久久精品日韩Av无码不卡| 亚洲a∨无码专区在线看| 日日人人爽人人爽人人片av| 亚洲精品国产精品国产自| 日韩一级在线免费观看| 久久国产乱子伦精品免| 日韩 欧美 国产 精品 综合| 国产三级专区精品| 亚洲一区制服丝袜在线| 女人让男人桶到爽的视频| 日本三级理论人妻中文字电影 | 亚洲天堂三级片| 老司机亚洲精品一区二区| 任我爽精品视频| 永久免费视频网站| 加勒比精品在线观看视频这里只有精品| 麻豆aa精品无码一区二区| 欧美日韩国产在线人成日| 中文字幕一区二区日产乱码| 国产又粗又大又硬点视频| 人人狠狠弄五月丁香 | 草莓视频APP污在线下载| 手机免费1024看片| 午夜中文无码无删减| 久久精品日本亚洲官网| 日韩午夜无码播放器视频| 大香中文字幕视频蕉免费| 五月丁香久久伊人本道开心| 国产免费观看扒开腿做爽爽爽爽爽| 天干天干天啦啦夜爽爽色| 久久久久爽爽爽爽一区老女人 | 国产精品亚洲一区二区在线观看 | bbox撕裂bass俄罗斯| 国产午夜亚洲精品理论片久久| 亚洲日韩欧美另类不卡| 成人在线第一页| 娇妻张妍与大肉楱的交换| 全国一级黄色大片| 亚洲色大成网站WWW看下面| 久久久久久久久人妻一区精品| 精品久久人妻AⅤ中文字幕| 国产精品久久久影片| 亲乱VA视频一区二区网站| 国产制服丝袜第一页| 久久久国产精品亚洲一区电影| 三个人C了我半小时| av无码精品一区二区三区宅噜噜| 国内偷拍高清精品免费视频| 欧美国产一级片在线播放| 久久er99热精品一区二区久久国产成人精品麻豆 | 91PORN桃色在线网站| 亚洲国产99999在线精品一区| 超乳爆乳一区二.区三区| 55精品视频在线观看专区| 久久国产成人午夜aⅴ影院宅| 亚洲一区av无码少妇电影| 中文有码日本高清在线视频| 久久丝袜控制服av一区二区免费| 性欧美video视频另类| 这里只有精品福利视频导航| 这里只有精品福利视频导航 | 中文字幕一区二区日产乱码| 亚洲亚洲AV日韩综合一区| 国产亚洲视频第一入口| 久久精品欧美日韩亚洲| 99热国产这里只有精品导航| 免费欧美人妻视频在线| 免费看黄色一级大片| 床震边吃奶边做视频激烈国产| 国产亚洲精品久久久久秋霞不卡| 韩国三级观影久久 | 免费欧美人妻视频在线| 成人在线第一页| 扒开两腿揉捏黑人粗大视频| 久久亚洲?V午夜福利精品一区二区三区| 男女啪啪免费视频| 国产在线尤物在线不卡网站| 日本欧美视频在线观看三区| 日韩精品欧美综合自拍偷| 欧美精品自拍三级| 欧洲M∨日韩M∨国产无限观看| 少女国产免费观看高清电视剧| 日韩精品综合无码一区二区日韩| 东京热无码中文字幕视频| 国产色欲浪潮av在线播放| 久久精品乱子伦免费| 娇小身材的美少妇三P大站| 中文字幕熟人丝袜人妻痴汉| 国产成人国拍亚洲精品| 免费亚洲永久一区二区三区| 欧美日韩国产有码| 久久Vfd;产精品1区2区3区网页 | 免费精品国偷自产在线观看| 国内自拍青青草| 欧美老熟妇xB水多毛多rv| 国产伊伊免费观看视频| 亚洲午夜精品在线| 久久久久99999亚洲精品| 久久免费视频播放平台| 一区精品亚洲| 尤妮丝首次三点尽露视频| 亚洲欧美 日韩另类| 影音先锋AV色噜噜影院| 久久伊人婷婷在线不卡福利 | 精品国产免费一区二区三区资讯| 中文字幕淫荡人妻| 亚洲?v成人精品一区二区三区| 亚洲欧美日韩自慰一区| 久久久精产国品一产二产三产区 | 丰满人妻一区二区三区色网视频不卡| 欧美另类不卡在线| 亚洲国产中文日韩欧美高清片 | 精品中文字幕第九在线| 久久亚洲AV成人无码电影A片| 国产成人精品日本亚洲黑人| A级无码免费毛片视频| 日韩三级免费看| 999精品久久三级黄片| 精品国产一区二区三区免费看| 日本免费不卡网站| 黄色网址免费在线看| 18禁视频全免费含羞草| 处破好疼哭视频在线观看| 无码免费网站视频黄| 中文字幕无码毛片免费看 | 国产午夜福利红片| 久久久无码精品亚洲日韩麻豆| 香蕉视频在线播放| 亚洲乱亚洲乱码妇无码| 又黄又湿又紧的视频| 亚洲无码在线在线一区二区| 日韩欧美另类在线六区| 三级国产一区二区三区高清| 久久久久久91精品免费| 虎白女粉嫩极品在线观看网站 | 欧美视频蜜桃视频| 香蕉视频在线观看污| 男女爽爽爽 视频| 欧美韩国日本在线| 99国产美女露脸口爆吞精| 亚洲日本中文字幕天堂| 国产精品1000部啪视频| 亚洲二区三区在线免费观看| 日韩国产亚洲一区二区在线观看| 99国产剧情演绎在线播放| 日韩精品欧美综合自拍偷| 最近中文字幕2018mv高清在线| 麻豆福利AV在线播放| 日产中文字乱码芒果在线播放| 国产成人国拍亚洲精品| 伊人色综合久久天天伊人| 国产久一视频在线观看蜜臀| 国产精品涩涩网站| 国产精品一区二区三区无| 暗夜免费观看在线完整版| 加勒比精品视频第一页| 欧美日韩手机在线一区| 少妇视频一区在线精品| 福利在线观看欧美| 美女动漫视频一区二区三区| 好吊色在线视频观看| 先锋影音国产视频精品三区| caoprom国产超碰人人看| 日本特黄乱人伦片| 国产成人久久精品视品| 国产va激情在线影院| av免费观看网址| 又大又粗又长又硬好爽视频| 中文字幕日本不卡84视线| 亚洲欧美日本视频在线观看| 亚州日本乱码一区二区三区 | 向日葵视频成人app下载| 538prom国产一区二区三区| 国产人与zoxxxx另类91 | 98久久人人超碰超碰窝窝| 日本三级韩国三级久久久久| 男人的天堂五月天 | 精产国品一二三产品麻豆| 欧洲一级欧洲一级a黑寡妇| 中文乱码人妻系列无码专区| 国产精品女教师久久二区二区| 日韩不卡综合视频| 加勒比精品视频第一页| 超碰国产极品在线| 国产美女啪啪一区二区| 日韩精品秒播在线观看| 国产精品久久国产三级麻豆| 超碰国产第二页| 久久影视免费看国产电影| 成全视频免费观看在线观看| 免費分享福利視頻、宅男福利| 国产好紧好爽好大再浪一点| AV无码国产麻豆映画传媒| 国产99视频 精品免费| 国产xxxx色视频在线观看免费| 国产精品精品一区二区三区网站| 最近中文字幕2018mv高清在线| 亚洲AV电影在线看韩国无码 | 国产午夜福利在线播放1000| 吸奶头吸到高潮视频免费视频| 久在线免费视频2| 18禁视频全免费含羞草| 久久久国产精品亚洲一区电影| 日本熟日本熟妇中文在线视频| 日韩一级在线免费观看| 嫩草影院国产精品| 午夜无遮羞禁视频在线观看 | 亚洲欧美日韩免费一区二区| 欧美日韩综合一级亚洲| 午夜高清国产拍精品福利| 国产精品视频一区二区三区w | 国产精品第一二三区| 国产日韩欧美另类一区二区三区| 无码精品亚洲第一叶| 精品亚洲免费大片国产| 被老汉糟蹋怀孕H双性| 先锋影音亚洲视频一区| 欧美一区不卡精品综合| 久久精品99国产精品| 国产精品久久久美女爽av| 亚洲狠狠婷婷中文字幕| 亚洲一级在线播放在线观看| 日本宜春院中文字幕| 国产精品部在线观看| 精品中文字幕男人的天堂| 男男黄gay免费网站www| 欧美成人免费全部观看国产 | 国产91精品黄网在线观看| 被男狂揉吃奶40分钟| 亚洲av综合a∨一区二区| 2020无码天堂在线观看| 日韩一区一区二区毛片| 國產色視頻一區二區三區QQ號| 中文字幕av天天爽| 自拍偷拍亚洲日韩欧美| 亚洲午夜国产精品福利| 青青草av在线免费观看| 欧美一区二区精品人妖系列| 久久午夜色播影院免费| 精品无人区一区二区三区| 亚洲日韩欧美卡通在线观看| 天天躁日日躁狠狠躁欧美一区| 国产不卡的丝袜综合在线| 欧美色拨婷婷激情四射| 国产免费观看扒开腿做爽爽爽爽爽| 国产一级av在线免费看| 国产精品白丝久久| 国产美女精品aⅤ在线播放 | 人人色人人干五月天| 久久天堂综合亚洲鲁鲁五月天| 亚洲中文字幕av无码爆乳| 色色色一区二区三区| 中国一级特黄特级毛片| 久久久久爽爽爽爽一区老女人| 国产又黄又爽无遮挡不要VIP| 国产乱妇无码喷水大片| 国产?V人人夜夜澡人人爽麻豆| 精品无码不卡av在线播放| 免费福利资源站在线视频| 老鸭窝精品电影蜜桃成| 久久国产精品久久精品九九| 呦交小u女国产精品视频| 伦理社区一区二区精品| 欧美国产一级片黄片免费观看| 亚洲欧洲美洲日韩综合| 啦啦啦在线观看视频高清www| 国精品在亚洲欧美| 美丽的姑娘在线播放国语版| 老鸭窝精品电影蜜桃成| 美女一级毛片中国国产片| 美女视频网福利日韩| 青青草视频在线观看免费 | 久久久国产精品va麻豆天美| 在线精品视频raPPer| 女性爽爽影院免费观看国产| 九九这里有精品| 国产精品一线免费精品播放| 日韩a级一区二区三区四区| 少妇三级无码高清| 总裁被机器人c到失禁微博文| 欧美成人免费全部观看国产| 日本少妇三级视频在线播放| 国产日产在线免费视频播放| 亚洲欧美丝袜美腿另类在线| 亚洲成人卡一卡二| 51国产偷自视频区视频222| 最新精品影视播放网站| 欧美高潮性爱爆乳护士视频| 国产91午夜视频| 亚洲无码图片一区| 日韩电影久久久被窝网| 怡春院国产精品视频不卡| 国产真实迷jian在线看| 国产公开人成乱码在线播放| 日韩精品成人网页| 草莓视频在线免费观看的直播内容 | 999精品久久三级黄片| 亚洲成AV人在线播放无码| 玖玖在线资源站| 国产精品午夜理论片在线播放| 最近中文字幕2018mv高清在线| 吸奶头吸到高潮视频免费视频 | 啦啦啦在线观看视频高清www| 精品国色天香一期二期| 日韩精品亚洲男人色天堂av在线| 欧美日韩国产一级成人黄片专区久久| 欧美区一区二中文福利视频| 美女扒开腿让男生桶爽免费网站| 午夜视频在线观看免费观看在线观看| 俄罗斯美女在线观看一区| 国产精品极品清纯露脸最新| 国产精品涩涩网站| 人妻夜夜添夜夜无码A∨| 可以看女人隐私的软件| 深夜福利视频日韩| 亚洲国产中文欧美日韩一区| 自拍偷拍国语欧美对白| 免费看一级婬片A片| 成年后在线观看免费视频| 91视频黄污APP十大禁| 国产日韩一区二区三玖玖爱| 国产精品午夜成人一区二区| 三级无码乱伦视频| 日韩AV丝袜无码| 免费亚洲永久一区二区三区| 助力高品质国产亚洲精品俞拍视频| 日韩精品一级二级片| 强伦人妻一区二区三区| 国产成人精品电影| 97精品一区二区视频在线| 婷婷五月天影视OL无码综合不卡| 中文字幕成人无码人妻| 成Av人片青青草GOGOGO麻烦| 久久一日本道色综合久久88| 欧美三级二区三区| 236宅宅最新日韩伦埋片| 国产日产女人视频一区二区| 国产强伦姧在线观看午夜| 无码 综合 色 在线| 加勒比五月天婷婷网| 久久国产亚洲精品福利亚洲欧美日韩综合 | 狠狠插综合网| 男人天堂亚洲黄色片| 亚洲制服麻豆国产尤物av尤物在线观看 | 在线观看不卡免费视频| 国产情侣制服在线播放| 精品久久白浆少妇| 现在不卡a国产在线观看| 国产无套粉嫩白浆内射在线| 亚州无限乱码一二三四| 99国产剧情演绎在线播放| 久久中文字幕一级| 麻豆视频污下载| 最新av资源每日更新网| 中文字幕人妻在线视频| 国产精品久久精神品三级n| 日韩一区福利视频| 日韩SE情网站在线网站在线| 精品亚洲成AV人天堂网| 国产精品欧美一区麻豆系列| 国产亚洲高清观看5388| 狠狠插综合网| 操美女视频网站| 国产精品视频无码中文每日更新| 久久久无码精品亚洲日韩麻豆| 亚洲无码在线在线一区二区| 中文无码一区二区不卡| 国产视频色大全| 日本大香伊一区二区三区| 囗交免费三级片| 亚洲首页一区二区三区| 91超精品碰国产在线观看| 91精品国产高清久久久久久1o| 久久精品无码一区二区国产区| 亚洲综合无码久久| 国产成人精品一区二三区熟女视频| 国产精品久久1区2区| 亚洲色偷偷网站色偷偷一区| 精品毛片乱码1区2区3区| 亚洲成AⅤ人在线观看无码| 亚洲欧美日韩激情网| 惠民福利亚洲av无码乱码国产精品 | 国产成人精品无码视频免费视频| 亚洲悠悠色综合中文字幕| 农民人伦一区二区三区| 国产精品亚洲一区二区在线观看 | 影音先锋中文看片网在线观看| 国产日韩一区二区三玖玖爱| 日韩不卡av一二三| 日韩一区二区四区在线| 日本高清中文字幕免费一区二区377P欧洲日本亚洲大胆 | www.三级在线观看.com| 国产情侣制服在线播放| 欧美黄色色图亚洲涩色| 亚洲一区中文高清无码| 日韩高清国产在线观看 | 国产精品免费裸体视频| 女人18毛片久久| 吸奶头吸到高潮视频免费视频| 69pao精品视频在线观看| 中文字幕手机在线视频| 97双人妻人人看人人爽| 亚洲?v最新在线观看网址| 成年女人免费大片视频| 深夜免费福利一区二区国产| 亚洲av日韩av综合aⅴ| 疯狂揉肉蒂高潮H失禁视频| 美丽的姑娘在线播放国语版| 欧美亚洲国产网| 在线观看精品国产福利片app| 一级毛片午夜电影| 黑人与日本人妻中文字幕| 永久免费视频网站| 免费看男女高潮又爽又猛| 日产欧美人妻av大片黄瓜视频| 六月丁香婷婷久久| 婷婷五月天AV免费在线| 久久6热视频免费一级片| 无码中文字幕av一区二区三区| 天堂网码中文字幕在线观看| 午夜视频精品一区二区三区| 日韩av在线免费观看完整版| 国产影视亚洲精品手机版| 国产一级做a爱片久久精品| 精品国产亚洲AⅤ麻豆| 國產精品國產三級國產AV品愛網| 国产精品久久久久麻豆视频 | 国产日产女人视频一区二区| 亚洲A∨乱码久久精品蜜桃| 乱人伦视频中文字幕免费| 被农民工玩成浪娃张晓婷| 人人干夜夜操| 人妻一区二区三区成人| 最新国产人妖TS视频| 91黄色视频在线观看| 国语对白在线播放| 乱人伦视频中文字幕免费| 日韩欧美国产精品第一页不卡| 亚洲色欲久久精品| 亚洲无码在线观看中文字幕| 91PORN桃色在线网站| 手机免费1024看片| 亚洲天堂少妇色图| 老阿姨才是最有味的| 香蕉污网站久久精品国产秘| 粗大猛烈进出白浆直流在线观看 | 免费播放特黄视频| 中日韩中文字幕一二三| 国产成人精品高清在线观看63| 男女爽爽爽 视频| 色综合天天综合中文网| 精品成人伦理片久久久久久| 国产一级片大全| 永久免费视频网站| 女人荫蒂添的好舒服视频| 一级毛片高清在线播放| 亚洲黄色一级电影| 亚洲av无码蜜臀久久寂寞少妇 | 综合亚洲欧美在线视频观看| 免费精品国偷自产在线观看| 国产蜜臀AV无码不卡在线观看| 亚洲精品日韩av无码一二区| 97国产综合在线影院| 成年人网站免费看| 国产AV无码国产一区二区三区| 中文字幕自拍一区400| 亚洲制服丝袜欧美日韩| 亚洲乱妇熟一区二区 | 18禁国产精品久久久久久男男 | 100个禁用流氓游戏| 亚洲美女一区| 一国产大片在线观看| 香蕉黄色APP网址| 久久91热狠狠色精品一区| 亚洲一区中文高清无码| 久久免费区一区二区三波多野结依| 日本96视频免费下载| 伊人久久大香线蕉无码av| 国产精品极品清纯露脸最新| rrr523亚洲国产片| 黑人与日本人妻中文字幕| 欧美日本亚洲一级在线观看| 国产高清午夜福利| 免费人成视频在线观看播放网站| 国产一区二区激情对白在线 | 97久久久人妻精品一区| 欧洲M∨日韩M∨国产无限观看| 在线视频一区二区日韩国产| 亚洲精品色午夜无码专区| 国产免费之久久精品| 久久影视欧美高清| 国产亚洲精品久久久久秋霞不卡| 久久久久99九九久久小草| 欧美高潮性爱爆乳护士视频| 色综合久久精品中文字幕首页| 亚洲嫩模一区二区三区系列| 2022最新国产不卡精品| 无码专区中文字幕专区| 2018最新福利天堂视频| 国产精品一区67194| 正在播放海南少妇推油自拍| 国产在线精品99一卡| 丝瓜视频污在线观看| 一级a性色生活片在线播放| 国产97色网视频| 在线观看国产乱人视频| 强伦人妻一区二区三区| 國產成人一區二區三區視頻免費 | 国产精品欧美一二区| a久久国产视频| 伊人伊成久久人綜合網777| 久久99精品久久久久久久清纯| 中文字线高清无水印| 亚洲中字在线| 中国黄色一级| 中文字幕在线免费观看色网视频| 无码网站天天爽免费看| 日韩女人免费一区二区三区| 69pao精品视频在线观看| 三级无码乱伦视频| 我使劲进了她的下身视频| 日本成熟少妇喷白浆色网视频| 一级毛片中出无码| 亚洲Av库在线观看国产| 久久久久99九九久久小草| 日本高清va在线播放| 国产是中文视频手机在线| 69爱这里只有精品在线观看| 欧美国产在线高清视视频 | 在线观看AV黄片| 久久亚洲女同第一区免费看的一级毛片| 无码自拍偷拍不卡| 一区二区欧美精品动图gif| 国产精品成人综合在线| 2021最新国产精品网站| 日韩午夜福利免费理论片秋秋| 福利影音国产在线观看| 狠狠色成人综合网图片区| 亚洲精品一无码天堂| 国产日韩在线视频免费观看| 自拍偷拍国语欧美对白| 最新2019人摸人人人澡人人超碰 | avtt天堂永久网| 國產精品怡紅院永久免費| 免费欧美一级毛片特黄AAAA大片| 五月丁香久久伊人本道开心| 十八禁视频网站免费观看| 国产精品久久1区2区| 亚洲欧美 日韩另类| 久草一级欧美一黄| 精品擁有海量的影視| 久久久久久国产精品一区 | 打扑克又疼又叫原声视频软件 | 成人午夜在线观看不卡| 成年日本片黄网站色大全免费| 久色免费视频| 亚偷熟乱区视频在线观看| 福利影院成人影院| 日韩欧美激情91| 国产精品天天堂网| 久久免费国产精品一区二区| 色婬网站av水蜜桃无码区免费| 久久久精品午夜免費不卡| 少妇三级无码高清| 亚洲 丝袜 日韩 国产 欧美| 十八禁止黄网站视频| 午夜激情经典国产福利| 午夜激情爱爱视频网| 国产亚洲欧美日韩在线观看一区 | 欧一美一性一交一精品| 老司机亚洲精品一区二区| 韩国理伦电影ok天堂影院| 国产精品乱人伦精品区二区 | 公车上雪柔被猛烈的进出小说| 成人性色生活片全黄| 亚洲Ⅴ欧洲第一的日产AV| 在线欧美一区| v欧美精品v日本精品| 中文字幕的内射视频| 国产一级特黄特黄片| 少妇厨房愉情理伦bd在线观 | 永久无码免费看aⅴ片| 亚洲va欧美va国产va| 欧美一区二区女区| 狠狠插综合网| 国产人妖兮兮在线视频| 国产女精品视频| AV无码精品一区二区三区四区| 亚洲色偷偷偷网站色偷二区| 亚洲综合久久免费| 玉蒲团ⅲ艳乳欲仙2| 色天天天天综合男人的天堂| 欧美一区二区三区免费播放| 综合精品国产丝袜长腿免费| 国产一区二区精美视频| 国产精品第一二三区| 虎白女粉嫩极品在线观看网站 | 亚洲精品污污污在线观看女同| 午夜无码精品在线观看| 久久久一二三无码免费| 欧美 v乱码一区二区三区| 日韩欧美激情91| 亚洲中文字幕中出在线| 精品久久久国产免费| 妖精视频直播免费看| 婷婷五月天97波多野结衣| 国产成人国拍亚洲精品| 久久国产精品二国产精品| 中文字幕第一页国产在线| 亚洲人成网大伊香蕉| 91少妇高潮喷水流白浆15| 日本免费一区二区三区最新+vr | 97双人妻人人看人人爽| 女生高潮视频 国产| 久久精品国产亚洲蜜臀?v| 亚洲成av人在线无码观看| 91香蕉视频免费下载黄色| 夜色精品国产噜噜| 99亚洲国产精品v在线播放| 亚洲色欧美2019最新在线| 女同亚洲国产中文字幕| 亚洲图片成人影片在线| 日本一区二区中文字幕久久| 手机国产日韩高清免费看片| 97无码精品综合| 久久精品国产亚洲A∨高清| 久久国产福利| 亚洲高清aⅴ日本| 精品视频在线观看九九| 日韩精品综合无码一区二区日韩 | 日日摸夜夜添夜夜添国产9118| 日美国女人视频鸡巴大| 青青草视频在线观看免费| 侵犯女教师一区二区三区视频| 午夜小视频男女在线观看| 欧美成人aⅴ免费在线| 亚洲乱妇熟一区二区 | 精品国产乱码一区二区三区小黄书 | 一区二区欧美精品动图gif| 美女动漫视频一区二区三区| 好色先生TV黄污版在线观看| 亚洲码无人客一区二区三区| 亚洲自拍av一区二区三区| 草莓视频在线免费观看的直播内容 | 精品久久久久久久国产美女| 国产精品乱人伦精品区二区| 精品日韩嗷嗷视频在线观看| 惠民福利欧美国产一区二区二区| 欧美一级a爱片免费观看看| 久久午夜色播影院免费| 国产三级专区精品| 黄色网址免费在线看| 欧美韩国日本在线| 尤物视频在线进入网| 国产欧美另类在线制服| 三级网站在线观看播放| 天下第一视频日本社区WWW| 亚洲色中文字幕无码av| 欧美丝袜中文字幕一区| 无码精品A∨夜夜嗨| 日本美女天堂在线亚洲性爱另类综合 | 国产一区二区三区的视频| 久久久久久91精品免费| 亚洲无码高清影院| 国模自慰一区二区三区| 欧美制服诱惑啪啪视频| 亚洲色无码国产精品色欲| 高清情侣国语自产拍在线| 色综合av男人的天堂伊人| 欧美zooz人禽交免费观看| 青青香蕉国产在线观看| 不卡无毒的黄色av| 国产区视频免费观看| 加勒比精品在线观看视频这里只有精品| 国产精品亚洲аv无码播放| 亚洲综合无码久久| 亚洲av无码专区首页| 啊哈~快把跳d关了我都喷了| 草莓视频污视频在线观看| 精品呦啊呦v视频在线观看| 国产精品一级特黄aa毛片| 视频思思久久免费国产| 日韩va无码中文字幕不卡无码中 | 日本高清va在线播放| 久久精品人人人妻人人爱| 精品国产亚洲av麻豆色哟哟| 天下第一社区免费观看| 国产成人午夜在线观看91| 欧产日产国产精品99在线| 无码AV午夜福利一区| 亚洲码无人客一区二区三区| 香蕉尤物視頻| 榴莲视频下载app网站| 男女爱爱动态视频免费网站| 一区二区三区四区高清免费视频| 国产亚洲精品影视在线产品| 两个人的视频免费在线观看| 人妻少妇无码专区免费视频| 精品人妻无码一区二区6919| 中文字幕手机在线视频| 一二三四免费中文字幕| 亚洲色精品三区二区一区月av| 苏小小传媒JD008| 色界吧福利导航大全在线观看| 青草社区在线播放av| 天堂mv在线mv免费mv香蕉| 欧美日韩国精品久久人人爽天天玩人人妻产精品 | 国产精品美女视频| 影音先锋亚洲色图| 欧美精品久久99| 中文字幕免费不卡二区| 色综合久久中文字幕无码| 2019最新中文字幕| 麻豆视传媒短网站视频APP| 国产亚洲精品久久久久动漫| 亚洲中文字幕综合| 国内自拍第7页| 粉嫩av国内精品人人爽| 女人被添荫蒂洗澡视频| 东京热人妻丝袜无码AV一二三区观 | 欧美成人三级网站现在观看| 韩国做爰三级在线观看| 男女乱婬真视频免费一级毛片| 国产免费之久久精品| 五月天永久免费的网站| 日韩一区一区二区毛片| 美女裸体巨黄网站无遮挡| 亚洲人成无遮挡在线观看| 国产日韩欧美国产欧美日韩| 日韩久久精品电影| 91视频黄污APP十大禁| 欧美亚洲视频久久| 好爽要高潮了在线播放| 妖精视频直播免费看| 亚洲狠狠狠一区二区三区| 亚洲男人的天堂成人| 欧美午夜精品久久久久免费| 亚洲欧美久久久| 看看妇女的B免费看| 成人综合视频在线播放| 一本色道久久久888| 国产疯狂女同互磨高潮在线观看| 精品無碼人妻一區二區三區不卡| 九九视频这里只有精品在线观看互動交流| 92午夜福利伦理合集| 加勒比精品视频第一页| 又粗又硬又黄的免费视频| 国产精品免费无码不卡视频| 久久精品亚洲国产影院| 日韩国产综合久久| 中文字幕無碼無碼專區| 东京热无码中文字幕视频| 亚洲黄色伊人成人电影| 惠民福利国产成人精品视频一区二区不卡| 成年美女黄网站色大全| 免费观看视频一区| 国产亚洲VA在线观看| 国产97视频在线观看免费| 国产在线aaa视频免费观看| 国产一二三区有声小说 | 国产精品丝袜视频| 欧美一区在线看| 在线观看国产囯内视频| 国产精品永久在线观看av| 久久久久夜夜夜夜综合国产| 日本少妇三级视频在线播放| 美女av在线毛片| 996久久久无码国产精品| 午夜秋霞无码鲁丝A片一级| 国产亚洲韩国AV无码| 欧美一级黄色影院| 久久免费视频播放平台| 亚洲女人天堂12P| 色欲人妻AV久久无码精品| 成人在线亚洲av| 亚州不卡av在线播放| 國產成人一區二區三區影院動漫| 在线视频国产日韩| 打卜克大喊大叫的软件| 伊人久久大香线蕉无码av| 9I国产麻豆国产AV旗袍| 亚洲aⅤ无码专区影院在线播放| 91精品人妻AⅤ区九色| www深夜视频在线观看高清| 日韩少妇视频无码不卡| 亚洲综合自拍| 欧美一级旡码高清在线↘| 日日操夜夜操視頻| 高清成人av在线不卡| 91精品最新国内在线播放| 亚洲韩国国产AV| 向日葵视频成人app下载| 苏小小传媒JD008| 精品伊人久久久大香线蕉| 人妻无语不卡久久| 日本无遮羞肉体动漫在线播放| 日本不卡高字幕在线2019| 丝袜mm无码网站樱花av| 国产精品人成在线二区| 五月婷婷深爱| 亚洲欧美日韩一区在线直播| 一二三四在线资源欧美日韩性爱精品 | 怡红院宜春院十次综合啦首页| 国产迷奸醉酒小视频在线| 亚洲av综合a∨一区二区| 国产伊伊免费观看视频| 一国产大片在线观看| 久久亚洲女同第一区免费看的一级毛片| 中国农村毛片免费播放| 无码av一级蜜桃| 午夜高清国产拍精品福利| 久久久久夜夜夜夜综合国产| 国产αv不卡播放网站| aav视频日韩观看| 二区视频欧美精品| 99久久e免费热视频百度| 午夜福利91久久福利| 日韩午夜福利免费理论片秋秋| 中文字幕人妻在线视频| sao虎在线精品永久观看入口| 东京热精品无码av| 国产亚洲日韩欧美综合| 国产又粗又猛又爽又黄成人| 午夜三级网站| 欧美精品黑人粗大中文字字幕| 国产嫖妓女免费视频| 综合社区 中文字幕| 欧美日韩一区三区不卡在线| 久久久久爽爽爽爽一区老女人| 欧美亚洲综合5月婷婷 | 成人免费观看全部免费| 另类国产日韩欧美综合 | 香蕉黄色APP网址| 久久精品一区二区三区综合| 激情影院亚洲天堂| 超碰草棚最新加入| 亚洲av综合a∨一区二区| 国产真人黄色视频| 精品少妇高清三级| 国产精品人成在线二区| 了解最新久草国产精品视频| 亚洲欧洲中文字幕在线| 日韩少妇视频无码不卡| 国产精品色无码视频| 日韩午夜无码a级毛片免费| 我在开会他在下添的好爽| 亚洲一级生活片| 国产美女啪啪一区二区| 精品國產專區91在線尤物| 无码丰满熟妇一区二区浪潮Av| 污污污视频免费黄色精品| 在线视频一区二区日韩国产| 最新日本免费完整版a| 国产精品成人本无码视频梅处视频| 真人做爰欧美aaaaa| 人人色人人干五月天| 亚洲一区二区三区极品av| 午夜福利不卡av| 中国亚洲免费福利片| 成人性色生活片全黄| 精品国产高清免费第一区二区三区 | 国产免费网址| 国产精品久久1区2区| 午夜福利电影久久精品| 久久久久免费电影| 欧美亚洲视频久久| 麻豆精品A级毛片免费看| av在线不卡的观看| 亚洲av无码久久精品蜜臀av| 欧美浓毛老太大泬毛茸茸| 富二代短视频app| 国产美女主播av微拍| 国产高潮精品无码视频| 欧美日韩一区二区三区四区中文字幕| 美女av在线毛片| 天天爽天天狠久久久综合麻豆| 苏小小传媒JD008| 欧美区一区二中文福利视频| 午夜秋霞无码鲁丝A片一级| 性爱av片片网首页| 欧美日韩a在线播放| 人妻丰满熟妇av无码区动漫 | 一区二区三区在线欧洲无码| 精品日韩在线视频| 午夜福利91久久福利| 国内精品欧美日韩| 黄色有码视频| 亚洲成色在线99精品亚洲| 亚洲?∨无码日韩精品影片| 亚洲av综合a∨一区二区| 亚洲中文字幕综合| 亚洲精品色婷婷一区二区| 国产精品人人爽人人做我的| 国产精品亚洲аv无码播放| 中日韩aⅴ伊人艺术探花高清| а∨天堂在线手机版| 婷婷五月天AV免费在线| 欧美熟女另类久久久久| 日本免费一区二区三区最新+vr| 久久九九av免费| 国产毛片真人网站| 女人18毛片A级女人18水真多| 男人边吃奶边做呻吟免费视频| 日韩中文无码一级片| 在线日本视频亚洲五月| 久色免费视频| 93精91精品国产综合久久香蕉 | 精品国产成?v在线观看 | 午夜精品一区二区三区66 | 欧洲性开放老妇人太大人妻| 无码丰满熟妇一区二区浪潮Av| 翘臀美女XX00后进式视频| 国产情侣制服在线播放| 国产91午夜视频| 嗯搞你臭逼逼逼视频| 亚洲色精品三区二区一区月av| 18禁国产精品久久久久久男男| 色综合久久精品中文字幕首页| 精品国产一区二区三区免费看| 日韩3级无毒不卡在线观看| av麻豆出品免费在线观看 | 一区二区欧美精品动图gif| 一本之之道久久| 2021在线观看中文字幕| 三级黄色拍拍视频| 国产成人无码一区二区在线| 九九九久久久国产精品999| 91在线播放精品| 福利二区视频在线观看| 国产日产在线免费视频播放| 欧美日韩高清在线观看有码| 亚洲AV日韩AV伊人| 日本强乱中文字幕在线播放| 亚洲成av人在线无码观看| 色偷偷人人澡久久天天| 亚洲国产中文欧美日韩一区| 91精品视频在线浏览| 免费区无码 国产网站| 免費分享福利視頻、宅男福利 | а√天堂网www在线资源| 奇米 7777久久综合网| 亚洲视频日本有码中文2019| 亚洲色老妇色在线精品播放| 欧美人成在线观看| 爱v在线一区二区国产精品| 91免费到线观看免费搞J| 天天躁日日躁狠狠躁欧美一区| 一级做一级a做片性视频品善网| 永久免费的拍拍拍网站| 午夜精品一区二区三区66| 亚洲无av码在线中文字幕| 精品视频无码一区二区三区| 欧美性爱网站小说| 动漫精品一区二区三区视频| 2021亚洲卡一卡二新区入口| 91香蕉视频免费下载黄色| 三级黄色拍拍视频| 国产又粗又猛又大爽老大爷| 国产精品久久久电影视频| 午夜日韩成人在线观看| 在线观看黄色x视频| 午夜老司机免费视频| 亚洲国产中文欧美日韩一区| 中文字幕av制服丝袜电影| 看欧美精品久久久久| 中文无码人妻有码人妻中文字幕| 日韩无码毛片二三区| 亚洲国产精品va在线观看黑人| 五月天综合久久久| 午夜三级中文字幕不卡| 色噜噜综合网| 国内精品亚洲| 精品泄密7记录精彩时刻| 久久婷婷毛片视频| 午夜福利片手机在线播放片源豐富 | 三级中文字幕不卡| 99久久久国产精品免费蜜臀| 国产熟女高潮av6666| 中文字幕粉色AV| 久久国产综合亚洲综合成人| 国产又粗又大又硬点视频| 日本成熟少妇喷白浆色网视频| 久久久久久久久人妻一区精品| 性爱国产亚洲性爱在线观看| 欧美zooz人禽交免费观看| 女同调教女同奶奴在线观看 | 亚洲人成日韩中文字幕无卡| 制服丝袜91AV影院| 少妇人妻偷人精品免费视频浪潮| 97午夜国产亚洲精品| 国产丝袜推油在线播放| 97久久一区中文字幕久久| 中文字幕人妻在线视频| 欧美黄色色图亚洲涩色| 亚洲日韩精品高潮无码久久岛国| 神马影院在线观看午夜片一区二区 | 看免费5XXAAA毛片百度百度百度| 亚洲美女在线色网视频| 总裁被机器人c到失禁微博文| 奇米影色777四色在线622| 少妇高潮惨叫久久久久电影70| 亚洲国产边添边摸边做边爱 | 国产一区二区在线观看美女| 久久免费看少妇高潮V片特一黄| 欧美韩国日本在线| 午夜视频在线观看免费完整版| 国产A级无码裸体毛片| 五月天激情国产综合婷婷婷| 一级一区二区在免费线观看| 欧美性爱视频免费| 色图在线免费视频| 麻豆丨国产丨白浆秘洗澡| 五月丁香久久伊人本道开心| 国产欧美色一区二区三区在线观看| 助力高品质国产亚洲精品俞拍视频| 亚洲一级生活片| 日韩欧美久久久免费精品| 天天爱添天天爱添天天爱添| 日韩精品亚洲中文字幕无码| 国产一级特黄特黄片| 成人在线第一页| 国产美女主播av微拍| 亚洲高清无码视频在线播放| 久久免费无码高潮看片a片| 国产怡红院精品视频| 国产午夜aⅴ免费不卡在线| 亚洲精品国产成人片| 国产按摩院在线网站| 亚洲二区三区在线免费观看| 天天综合亚洲日韩在线| 日韩AV高清中出人妻| 无码网站天天爽免费看| 996久久久无码国产精品| 四虎成人在线永久免费视频| 日本强乱中文字幕在线播放| 隔壁的少妇2做爰完整版电影| 亚洲成AV人在线播放无码| 一个人高清在线观看永久免费 | 精品福利网站国产| 欧美性爱网站小说| 欧美制服诱惑啪啪视频| 九九精品久久中文字幕噜大| 一本大道香蕉在线视频中文| 日本在線理論片| 国产AV无码专区亚洲AⅤ中文| 好爽又高潮了毛片| 国产日韩一区二区三玖玖爱| 国产亚洲综合午夜精品区不卡| 日韩2024亚洲天堂在线| 性无码专区色吊丝中文字幕 | 国产主播国产精品自拍| 高清无码在线观看免费| 久久伊人婷婷在线不卡福利| 在线看人与动人物A级网址 | 被农民工玩成浪娃张晓婷| 久久精品99国产精品| 精品少妇高清三级| 国产成人无码av在线宽看| 美女动漫视频一区二区三区| 日韩电影手机在线| 14美女爱做视频免费| 久久丝袜控制服av一区二区免费| 国产高清亚洲精品26u| 超碰caopor国产公开| 成人在线第一页| 欧美综合日韩另类视频一区| 影音先锋最新看片资源网址| 四虎影视8848hh国产传媒| 成人综合视频在线播放| 丰满人妻大屁股一区二区香蕉| 成人亚洲精品一区二区三区| 100个禁用流氓游戏| 国产在线精品99一卡2卡| 欧洲熟妇色之亚洲熟妇色| 日本特黄乱人伦片| 一级a性色生活片在线播放| 400部精品国偷自产在线| 日本特黄乱人伦片| 日韩国产综合久久| 国产久一视频在线观看蜜臀| AV永久永久永久在线| 欧美三级韩国三级少妇99 | 中文字幕AV天堂| 男女互舔中出水抽插视频| 国产91九色刺激露脸对白| 在线大陆成人网视频观看| 最近中文字幕免费mv视频7| 永久免费观看美女裸体视频的网站| 国产一级av在线免费看| 午夜福利视频一二三| 三级国产一区二区三区高清| 日韩三级免费看| 妓女爽爽爽爽爽妓女8888| 果冻传媒国产精品| 操美女视频网站| 国产精品久久久久久亚洲A∨| 国产在线aaa视频免费观看| 国产一二三四在线播放| 2014av手机天堂网免费| 国产成人综合亚洲中国xxxx| av一区二区在线观看免费| 无码中文字幕一区| 亚洲图片成人影片在线| 91免费到线观看免费搞J| 成年人网站免费看| 国产成人无码a∨制服丝袜综合| 亚洲av综合色区手机无码一区 | 亚洲女同自慰一区二区| 欧美深度内射狠狠干| 亚洲最大的成人网站| 91精品视频在线浏览| 99久久免费精品国产七三年| 国产精品亚洲аv无码播放| 精品亚洲aⅴ无码国产一区在线| 男女啪啪免费视频| 亚洲Aⅴ福利天堂导导航| 欧美成人国产一区二区| 国产91九色刺激露脸对白| 玩弄丰满少妇xxxxx性多毛 | 国产激情片免费在线观看| 日韩精品综合无码一区二区日韩| 亚洲无码在线在线一区二区| 麻豆丨国产丨白浆秘洗澡| 男女互舔中出水抽插视频| 免费成人亚洲电影| 日韩?V无码电影网站| 男女啪啪免费视频| 国产精品久久久2| 宇都宫ssni700在线播放| 久久国产综合亚洲综合成人| 精品久久久久久综合字幕| 国产一区二区精美视频| 国产精品涩涩网站| 亚洲制服麻豆国产尤物av尤物在线观看| 午夜福利91久久福利| 歐美三級中文字幕在線觀看| 屁股又白又大肥熟女人视频| 免费高清精品国产精品| 久久精品综合热久久| 美丽的姑娘在线播放国语版| 国产精品一二二区在线网站| 麻豆aa精品无码一区二区| 久久精品女人天堂an| av毛片在线播放免费| 99亚洲国产精品v在线播放| 欧美亚洲激清在线搜索| 香蕉黄色APP网址| 三级av免费无码无需播放| 无码人妻久久1区2区3区| 国产亚洲日韩网曝欧| 国产中文字幕在线一区| 夜夜夜夜曰天天天天拍国产| 国产侵犯亲女丰满大屁股熟女啪播放| 成年人视频在线播放| 影音先锋亚洲色图| 特级毛片免费播放三级网站| 肉肉AV在线第一页| 一区 二区 三区 国产在线| 边摸边做爽的色网视频107国产| 亚洲欧美日韩在线观看不卡一区二区| 欧美成人aⅴ免费在线| 欧美老妇人与黑人做爰| 久久綜合琪琪狠狠天天| 国产亚洲VA在线观看| 成人性色生活片免费看爆迷你| 欧美日韩国产有码| 亚洲高清成人A∨电影网站| 精品久久久国产免费| 亚洲无码高清影院| 天天爽天天狠久久久综合麻豆| 国产精品第一二三区| 成年人视频在线播放| 国产极品美女在线播放不卡| 国产欧美另类制服丝袜美腿| 中文字幕在线视频亚洲色图 | 精品呦啊呦v视频在线观看| 一本色道久久鬼综合88| av毛片在线播放免费| 久久人妻少妇出轨中文字幕| 天下第一社区免费观看| 男人皇宫一区二区无码| 无码绝顶抽搐潮喷在线观看| 永久免费观看美女裸体视频的网站| 影视精品自拍少妇| 最新的国产成人精品2022| 午夜激情爱爱视频网| 国产露脸精品产三级国产av | 亚洲日韩精品欧美在线| 久久天堂综合亚洲鲁鲁五月天| 美女国产免费| 欧美日韩人成综合黄色| 欧美另类不卡在线| 九七影院在线观看免费| 国产亚洲视频在线观看网址| 92国产精品午夜福利| 亚洲欧av在线播放| 全身赤裸裸美女出白浆| 久久久国产夜夜我| 在线不卡成人av| 最新在线黄色网址国产一区二区| 免费久久99精品国产自在观| 日韩视频精品免费播放| 婷婷午夜天午夜福利综合| 亚洲一级生活片| 久热香蕉在线播放| 国产主播国产精品自拍| 日韩三级免费看| 國產成人一區二區三區視頻免費| 午夜av无码精品综合色| 國產精品國產三級國產AV品愛網| 男男羞羞视频在线观看| 欧美激情在线观看伊人网 | 2020无码天堂在线观看| 内射香蕉视频性生活片| 中文字幕不卡每日更新| 成人免费观看全部免费| 亚洲国产精品丝袜国自产拍av| 亚洲综合精品在线2022| 无码丰满熟妇一区二区浪潮Av| 色综合欲色一区二区三区| 亚洲欧美日韩高清| 国产精品视频一区二区三区w| 欧美一本大道香蕉综| 青柠在线视频精品一区二区| 日韩国产欧美经典一区二区三区| 日本ⅴs亚洲ⅴs韩国一区三区| aⅴ男人的天堂在线观看| 久久少妇无码专区| 久热香蕉在线播放| 99re6在线视频精品免费bd| 2018国产午夜主播福利| 助力高品质国产亚洲精品俞拍视频| 久久成年人电影| 中国农村毛片免费播放| 另类国产日韩欧美综合 | 国产精品∨a在线播放| 国区av在线一区| 国产粉嫩嫩00在线正式播放| 久久亚洲欧美精品一区二区三区| 欧美乱人伦一区二区| 激情欧美第一季在线播放| 免費分享福利視頻、宅男福利| 三上悠亚亚洲一区高清| 国产强奷完整是免费| 丰满少妇被猛烈高清播放多人| 国产美女一区二区免费视频| 国产日韩欧美精品a在线看| 精品一卡2卡3卡4卡免费网址| 久久精品亚洲国产影院| 亚洲码无人客一区二区三区| AV无码精品一区二区三区四区| 五月婷婷热六月激综合| 国产精品美女午夜爽爽爽免费| 久久99精品二区| 久久免费无码高潮看片a片| 日韩?V无码专区国产乱码| 国产人与zoxxxx另类91| 成人国产视频一区二区三区| 精品国色天香一期二期| 激情小说:欧美久久| 国产一二三区在线不卡| 高清成年美女网免费视频| 轻轻色青青青在线观看视频| 变态另类重口味AV| 久久精品人妻系列无码专区| 国产美女一区二区免费视频| 在线va无卡无码免费| 一级亚洲视频在线精品观看毛片a播放| 全国三级成年网站在线观看| 女人爰高潮一级AA视频| 美女动漫视频一区二区三区| 午夜激情经典国产福利| 四虎4hu永久在线观看| 国产免费网址| 阿v片在线播放毛片| 欧美精品三线二区在线观看| 男男女女爽爽爽免费视频| www欧美一区二区三区| 国产亚洲视频第一入口| 免费无遮挡毛片中文字幕| 欧美在线视频精品免费观看| 免费日逼视频| 亚洲性av无码gif动态图| 成年人网站免费看| 免费久久99精品国产自在观| 精品夜夜爽欧美毛片视频| 午夜av无码精品综合色| av在线免费观看午夜福利| 久久精品国产亚洲A∨高清| 精品擁有海量的影視| 亚洲欧av在线播放| 无码AV午夜福利一区| 91青草久久久久久清纯| 国产人妻人伦精品熟女麻豆| 夜色福利站www国产在线观看| 男女xo嘿咻嘿咻免费视频| 高清成人av在线不卡| 欧美性爱视频和小说| 国产高清免费视频免费观看| 国产强伦姧在线观看午夜| 日本特黄乱人伦片| 亚洲综合日韩第十页| 国产微拍短视频迅雷下载| 黄色成人在线电影| 手机国产日韩高清免费看片| 99亚洲男女激情在线观看| 日韩精品久久无码人妻免费| 国产综合第7页| 狠狼鲁亚洲综合在线| 中文乱码字幕国产一区| 日韩亚洲欧美A∨| 日韩亚洲欧洲在线| 精品国产亚洲综合一区| 日本高清va在线播放| 国产精品人人爽人人做我的| 新婚夜少妇被躁BD免费视频| 超碰97国产精品人人cao| 性欧美video视频另类| 超碰国产亚洲Av人人爱| 中文字幕在线永久在线视频| 最好看的色婷婷五月综合亚洲| 久久精品99久久久青青91| 精品国产第一精品国产综合色戒| 国产精品永久免费视频| 久久久久国产精品调教性奴| 国产伊伊免费观看视频 | 加勒比精品视频第一页| 边摸边做爽的色网视频107国产| 亚洲第一黄片免费观看| 男女男网站在线播放| 久久国产这里有精品| 一国产大片在线观看| 日本不卡高字幕在线2019| 日本欧美视频在线观看三区| 欧美区一区二中文福利视频| 2022最新网站男人vip推荐| 国产免费观看扒开腿做爽爽爽爽爽| 福利美剧影视大全电影大全在线观看免费版全集 | 成人午夜影视全部免费看| 亚州日本乱码一区二区三区 | 动漫精品3d无尽视频在线看| 欧美丶日韩专区国产专区| 美女插免费性色亚洲日韩伦理中字| 欧美国产日韩成人在线| 久久久久99999亚洲精品| 538prom国产一区二区三区| aⅴ无码一区二区三区免费| 久久丝袜控制服av一区二区免费| 加勒比无码一区人妻| 久久视屏这里只有精品6国产| 久久影视免费看国产电影| 免费看看一区二区三区视频| 国语中国熟女XX| 国产一二三区在线观看播放| 我使劲进了她的下身视频| 精品亚洲人一成伊成| 欧美乱人伦一区二区| 成人影院在线无码| 黄色三级片国产免费看| 国产极品高清在线播放| 成人欧美亚洲一区| 久久精品张柏芝国产门事件| 无码av最新清无码专区吞精| 寡妇高潮一级毛片免费看大胸| 色婷婷久久中文久久综合一百| 一区二区三区在线网站| 空姐一级毛片免费看| 久久久777天天躁狠狠躁av| 国产情侣自拍资源在线| 了解最新国产亚洲婷婷香蕉久久精品| 欧洲熟妇色之亚洲熟妇色| 亚洲图片成人影片在线| 无码专区人妻系列 视频| 亚洲综合无码久久| 日本一区二区中文字幕久久| 日日操夜夜操視頻| 67id国产在线观看| 日韩国产欧美经典一区二区三区 | 久久影视免费看国产电影| 亚洲国产人成自拍| 狠狠色精品视频免费观看| 亚洲精品明星十八禁在线观看| 99re6在线视频精品免费bd| 國內精品免費| 草草影院色视频免费在线观看| a级片a级片a片a级片| 另类国产日韩欧美综合| 美女黄片亚洲免费| 男女啪啪免费视频| jyzz在线观看免费观看| 草莓视频在线观看下载WWW| 国产av蜜臀一区二区三区精品| √天堂资源地址中文在线| 欧美激情a片无码大尺度| 白袜自慰GAY网站可播放| 欧美不卡午夜视频| 亚洲中文字幕高清乱码在线| 国产欧美第一区二区| 日本大香伊一区二区三区| 又粗又猛又大爽又黄的老大爷| 人人澡人摸人人添学生av| 最近手机高清中文字幕大全| 2021國產三級精品三級在專區| 在线观看黄色x视频| 国产精品久久国产三级麻豆| 我在开会他在下添的好爽| 亚洲熟妇国产熟妇肥婆 | 人人看人人模97| 免费一级中文字幕高清| 日韩久久精品免费播放| 欧美日韩国精品久久人人爽天天玩人人妻产精品 | 久久亚洲欧美精品一区二区三区| baoyu166.永久免费视频| 日韩欧美精品在线观看网址| 亚洲精品国产字幕久久不卡 | 欧美 亚洲 日韩 国产中文字幕在线| 久久精品张柏芝国产门事件| 亞洲韓精品歐美一區二區三區 | 欧美一区二区精品人妖系列| 成人免费看片软件| 免费看黄色片的网站| 最近在线更新8中文字幕免费| 精品无码不卡av在线播放| 亚洲综合久久免费| 一级毛片高清在线播放| 国产欧美另类在线| 国产老熟妇乱XXXXX| 狼友视频十八禁免费| 久久久精产国品一产二产三产区| 欧美特黄A级视频| 一本精品99久久精品77国产一区| 亚欧日韩欧美一区| 免费无码床戏视频网站| 宅男黄色软件| 超碰97免费超碰97人人操人人摸| 日韩少妇视频无码不卡| 成H动漫精品一区二区无码| 国产一区二区三区精品尤物| 国产一区二区三区精品尤物| 人妻丰满熟妇av无码区动漫| 国产无套内精一级毛片农民工| 欧美一级99在线观看国产| 好爽要高潮了在线播放| 亚洲欧美另类制服| 91中文字幕视频| 免费亚洲av网址| 日韩久久无码精品不卡一区电影| 国产好紧好爽好大再浪一点| 欧美日韩国产aⅴ| 国产亚洲精彩久久| 久久99精品久久水蜜桃| 欧美 v乱码一区二区三区| 国产99视频 精品免费| 婷婷色香五月综合缴缴情香蕉| 国产精品久久久2| 五月天激情国产综合婷婷婷| 2017亚洲男人天堂天堂| 国产超碰人人做人人爽86| 久久免费国产精品一区二区 | 亚洲第一天堂中文字幕a∨| 国产成人精品无码?区在线观看| 国产深夜福利在线播放| 最新在线黄色网址国产一区二区| 国产一级天堂无码| 少妇人妻偷人精品一区| 美女插免费性色亚洲日韩伦理中字| 国产按摩院在线网站| 日韩?V无码电影网站| 精品国产福利在线观看一区| 内射校花射在线看| 久久中文字幕人妻| 久久99久国产精品黄毛片软件| 国产免费永久黄色国产一级| 高潮喷水久久精品| 免费二级c片观看a| 欧美日韩亚洲综合激情在线| 高跟丝袜熟女国产一区| 国产三级片网站免费播放| 欧美性爱丁香导航观看视频| 高清情侣国语自产拍在线| 一级黄片中文子幕| 午夜福利无码免费转区| 国产A级无码裸体毛片| 欧美浓毛老太大泬毛茸茸| 美女与黑人福利在线视频| 星野娜美中文字幕在线| 日韩欧美久久久免费精品| 天天躁日日躁狠狠躁欧美一区 | 美国成人节目在线观看| 免费一级毛片不卡在线播放| 精品人妻系列无码人妻网| 乱人伦视频中文字幕免费| 亚洲AU秘一区二区三区| 99久高清在线播放| 精品国产肉丝袜久久不卡| 玖玖在线资源站| 午夜热门精品一区二区三区| 久久综网色亚洲美女亚洲av| 国产一区在线无码精品| 老师洗澡让我吃她胸视频| av在线观看亚洲免费| 4399高清在线观看| 被男狂揉吃奶40分钟| 狠狠综合久久久午夜无码鲁丝片午夜精品| 久久国产精品免费看小草| 中文字幕熟女诱惑免费视频| 在线看黄AV免费安全| 三上悠亚亚洲一区高清| 亚洲欧美另类激情综合| 韩国日本欧美www| 成年人视频在线播放| 国精品在亚洲欧美| 亚洲精品色婷婷一区二区| 色婷婷国产免费日逼视频| 婷婷伊人精品一区二区| 在线视频国产日韩| 91久久久久久久久久久久| 女人荫蒂添的好舒服视频| 亚洲欧洲美洲日韩综合| 日本人视频jizz69页码| 好色先生TV黄污版在线观看| 欧美成人免费全部观看国产| 室友内裤被涂满了春药| 国产亚洲韩国AV无码| √天堂资源地址中文在线| 国产无套粉嫩白浆内射在线| 日本av天堂中文字幕| 91chinese在线观看网站| 69综合精品国产二区无码| 成人毛片18毛片免费| 九月丁香婷婷| 丝袜足液精子免费视频| 嗯又粗又大哦插我呀| 国产亚洲VA在线观看| 东京热人妻丝袜无码AV一二三区观 | 精品国产第一福利网站| 男同嗟嗟嗟很痛无马| 怡春院国产精品视频不卡| 国产视频不卡一区二区三区| 国产高清视院在线观看无缓冲| 国产伊伊免费观看视频| 啪啪网视频免费观看| 国产欧美迷晕在线观看| 欧美一级99在线观看国产| 少妇中文字幕乱码| A v免费在线观看在线播放亚洲视频| 日本三级中文字幕久久久| 国产高潮精品无码视频| 中文字幕伦伦在线中文字| 日本道东京热加勒比大香蕉| 榴莲视频app在线观看| 91视频黄污APP十大禁| 国产精品一区二区高清在线观看| HEYZO熟女欲求不满视频精品| 国产人妖兮兮在线视频| 免费人成视频在线观看播放网站| 在线看黄AV免费安全| 91久久久久久波多野高潮| 久久綜合琪琪狠狠天天| 国产一区在线无码精品| 国产日产女人视频一区二区| 国产中出在线一区二区| 国产★蜜臀av无码| 超碰国产第二页| 亚洲性av无码gif动态图| 亚洲色网视频三区 | 大香中文字幕视频蕉免费| 欧美日本男人的天堂| 91超精品碰国产在线观看| 亚洲av无码蜜臀久久寂寞少妇| 精品第一国产综合精品Aⅴ蜜臀| 国产精品免费无码不卡视频| 激情视频激情小说激情图片 | 国产精品三级一区| 国产成人亚洲综合一区| 国产视频不卡一区二区三区| jyzz在线观看免费观看| 欧美成人午夜精品| 欧美人成在线观看| 国产一级av在线免费看| 国产精品久久久电影视频| 男人皇宫一区二区无码| 日日夜夜精品视频绝对精品7799男男| 亞洲日本在線觀看網址| 俺来也俺去啦视频在线观看| 国产午夜精品一区二区嫩草| 999精品久久三级黄片| 成人在线亚洲av| 日韩亚洲欧美A∨| 亚洲成在人网站无码天堂| 九九久久这里只有精品| 精品中文三级亚洲| 国产精品 91在线| 成人综合视频在线播放| 国产国拍亚洲精品午夜不卡17| 国产精品一区67194| 欧美SSS在线视频| 美女动漫视频一区二区三区| 欧美一级免费看| 久久午夜色播影院免费| 久久国产精品久久精品九九| 国内自拍青青草| 永久免费视频网站| 在线视频国产日韩一区二区| 国产色高清在线播放| 久久綜合琪琪狠狠天天| 日本不码不卡免费高清v| 亚洲一区av无码少妇电影| 国产在线每日更新| 国产精品自拍啪啪啪啪| 欧美日韩国产aⅴ| 最新av偷拍av偷窥av网站| 92国产精品午夜福利| 青青香蕉国产在线观看 | 久久精品影视影院| 亚洲gv天堂gv无码男男| av一区二区在线观看免费| 人妻少妇无码专区免费视频| 日韩欧美国产精品久久电影| 亚洲综合另类小说色区一 | 99久高清在线播放| 成人18女人毛片免费看| 国产精品无码av免费| 亚洲av永久无码天堂网一线| 欧亚激情偷人伦小说专区| 粉嫩av国内精品人人爽| 亚洲一级在线播放在线观看| 日本成人午夜影院| 亚洲中文字幕在线看全集| 国产特色毛片| 国产午夜精品三区理论片| 一本色道久久鬼综合88| 日韩丰满少妇无码| 亚洲av永久无精品mmd| 2021亚洲卡一卡二新区入口| 自拍中文亚洲欧美制服| 久热只有这里只有精品| 一级女人真人毛片免费视频| 香蕉视频在线播放| 亚洲aⅤ无码专区影院在线播放| 国产成人a一区二区三区黄| 影音先锋亚洲色图| 在线亚洲欧洲一区二区观看| 最近中文字幕2018mv高清在线| 亚洲成AⅤ人片天堂网无码| 男女乱婬真视频免费一级毛片| 丰满少妇被猛烈高清播放多人| 日韩精品在线观看一区二区三区| 熟女人妻潮喷电影网| 97双人妻人人看人人爽| 亚洲色图综合图区| 久久精品无码一区二区国产区| 久久免费看少妇高潮V片特一黄| AV永久永久永久在线 | 亚洲成人自拍| 亚洲成AV人在线播放无码| 三级中文字幕不卡| 亂倫近親相姦中文字幕av| 最新91在线中文字幕| 国产高潮精品无码视频| 国产精品一二三区无码免费| aav视频日韩观看| 久久亚洲AV成人无码电影A片| 日韩?V无码专区国产乱码| 特级淫片欧美高清视频蜜桃| 尤物iaⅤ视频在线看| 肉肉AV在线第一页| 久久久777天天躁狠狠躁av| 热re久久精品天堂| 亚洲av最新在线观看网址下载| 高清痴汉一区二区三区| AV无码精品一区二区三区四区| 亚洲中文字幕中出在线| 国产高潮无套免费视频| 国产是中文视频手机在线| 国产日韩一区二区三区在线播放| 男女爽爽爽 视频| 99国产美女露脸口爆吞精| 成人精品高清视频在线观看| 巨大的乳专区中文字幕在线| 色老精品视频| 高清无码专区av| 亚洲视频福利一区| 欧美国产一级片黄片免费观看 | 强伦人妻一区二区三区| 小说区av一区二区| 婷婷伊人精品一区二区| 日韩少妇视频无码不卡| 国产成人午夜在线观看91| 久久精品中文字幕免费视频 | 久久精品国产亚洲蜜臀?v| 久草午夜尤物视频在线观看| 亚洲第一女人精品网第1页| 亚洲国产欧美三区| 麻豆福利AV在线播放| 国产免费之久久精品| 中文字幕完整一级一区三级| 国产91午夜视频| 日韩?V无码专区国产乱码| 亚洲?V无码专区国产乱码4SE| 国产精鲁鲁视频在线观看| 日韩一区一区二区毛片| 精品亚洲aⅴ无码国产一区在线| 色综合国产一区二区成熟美女大全| 成人毛片18毛片免费| 九九精品视频免费| 虎白女粉嫩极品在线观看网站 | 免费高清av专区中文字幕| 爆乳女神VIP版私人玩物| 苍井空qvod+在线| 精品欧美一二在线观看| 亚洲最新电影先生大全免费全部| 精品无马国产自在现线一| 欧美三级韩国三级少妇99 | 久久免费无码高潮看片a片| 国产97色网视频| 玩弄丰满少妇xxxxx性多毛 | 女人18毛片A级毛片直播| 中文字幕内射无码制服剧情| 日韩精品久久无码人妻免费| 2021精品日本视频不卡| 91香蕉APP免费下载| 高清在线不卡无码| 亚洲中文字幕综合| 菠萝蜜app成年视频| 男插女爽到内射的视频| 亚洲国产精品特色大片| 日韩中文有码高清| 变态另类重口味AV| 哺乳期喂奶人妻3p| 婷婷色香五月综合缴缴情香蕉| 亚洲美女少妇av| 日韩一级在线免费观看| 国产情侣自拍资源在线| av麻豆出品免费在线观看 | 国语疯狂3p刺激视频| AV美腿丝袜在线资源网| 中文字幕毛片在线免费观看| 三级中文字幕不卡| 三级黄色拍拍视频| 亚洲制服一区二区在线| 久久国产成人午夜aⅴ影院宅 | 国产粉嫩嫩06在线正在播放| 国产精品v亚洲精品色欲| 国产成人精品一区二三区熟女视频| 色婷婷综合久久久久中文图片| 中国免费黄网站日韩| 精品国产一区二区三区免费看| 日本人妻一区二区三区| 中文字幕av毛片不卡| 91chinese在线观看网站| 免费看男女高潮又爽又猛| 巜被部长玩弄的人妻5| 欧美另类亚洲综合在线影院m| 亲乱VA视频一区二区网站 | 男女爽爽爽 视频| 综合中文在线观看亚洲| 成人国产免费小视频| 国产av剧情演绎| 精品擁有海量的影視| 伊人久久大香线蕉综合5g| 中文字幕一级淫片| 国产日韩一区二区三区在线播放| 亚洲中文字幕高清乱码在线| av在线免费观看午夜福利| 人人妻人人澡人人爽超污| 亚洲制服一区二区在线| 欧美一级免费看| 久久综合综合久久| 大乳videos巨大吃奶| 亚洲高清成人A∨电影网站| 十八禁止无遮挡免费视频在线观看| 体内射精日本视频免费看| 风骚女人AV一区二区| 黑人h视频免费在线| 精品国产911在线观看婷婷| 婷婷97狠狠的狠狠的愛| 中文字幕毛片在线免费观看| 一本大道香蕉亚洲久蜜臀| 日本亚洲精品专区在线观看| 欧美成人免费全部观看国产 | 公车上雪柔被猛烈的进出小说| 97午夜国产亚洲精品| 国产免费之久久精品| 久久99精品二区| 欧洲日韩国产在线观看| 久久天堂av综合色无码专区| 成年女人看片的网站| 国产一区视频一区视频在线观看国产免费| 91人妻人人澡人人爽人人DVD| 任我爽精品视频| 中文乱码字幕国产一区| 疯狂揉肉蒂高潮H失禁视频| 久久精品综合热久久| 亚洲自拍偷拍综合网| 中文字幕无码毛片免费看.| 中国三级高潮爽三级网站| 精品视频国产狼友视频| 日韩av毛片中文字幕| 婷婷97狠狠的狠狠的愛| 久久免费无码高潮看片a片| 久久97人人超碰| 国语疯狂3p刺激视频| 中文字幕在线永久在线视频| 欧美成人激情一区二区三区| 国产精品情侣露脸专区在线| 午夜视频精品在线视频| 欧美ol丝袜高跟秘书在线观看| 亚洲AV日韩AV伊人| 欧美另类亚洲综合在线影院m| 一级毛片午夜电影| 国产疯狂女同互磨高潮在线观看| 久久久av深夜影院| 中文字幕淫荡人妻| 欧美丝袜中文字幕一区| 巜被部长玩弄的人妻5| 亚洲国产精品特色大片| 亚洲久99极品人妻| 男女性猛进猛出性视频| 日本不码不卡免费高清v| 男女做爽爽爽视频免费官方网站| 国产精品久久久久久一级片| 免费亚洲永久一区二区三区| 欧美激情国产日韩精品一区18| 欧美激情国产日韩精品一区18| 亚洲综合无码久久| 蜜桃狠狠干在| 一区二三区高中清| 国产高清午夜福利| 欧美成人久久久| sao虎在线精品永久观看入口| 国产亚洲高清观看5388| 国产成人精品日本亚洲黑人| 男女xb后进式动态图| 亚洲国产边添边摸边做边爱 | 好爽好硬好深高潮视频456| 国产免费三级a在线观看| 国产精品三级一区| 在线观看黄色x视频| 无码人妻精品一区二区三| 好色先生APP污版| 久久免费一级特黄真人大片看| 欧美日韩国产免费一区二三播放 | 国产日韩欧美第一区二区| 这里只有精品福利视频导航 | 国产猛烈高潮大叫视频九色| 又黄又粗又爽动漫免费观看| 中文字幕有码无码人妻a∨蜜桃| 少妇疯狂高潮欠久久| 国产超碰人人做人人爽86| 色综合国产一区二区成熟美女大全| 熟女少妇亚洲区| 国产最顶级国精产品一二三区| 中日韩三级片免费| 亲乱VA视频一区二区网站| 国产主播户外搭讪自拍系列| 337p日本大胆欧洲噜噜| 中文字幕欧美日韩一| 国产免费三级a在线观看| 男女爱爱动态视频免费网站 | 欧洲性开放老妇人太大人妻| 国产凸凹视频熟女A片| 欧美日本男人的天堂| 中文字幕AV天堂| 亚偷熟乱区视频在线观看| 777米奇色888狠狠狠俺| 国产亚洲欧美精品久999浪潮| 日本少妇一级做α| 日本午夜免?费看大片中文4| 伦理片电影在线观看| 日本强伦姧人妻一区二区| 国产成人Av一区二区三区不卡| 菠萝蜜app成年视频| 亚洲成人卡一卡二| 国产另类欧美日韩| 99亚洲国产综合一区二区| 欧美激情国产日韩精品一区18| 欧洲成人免费av| 亞洲韓精品歐美一區二區三區| 亚洲综合自拍| 天天日天天干天天弄天天操| 欧美人妻性爱中文字幕不卡视频| 免费久久99精品国产自在观| 国产精品久久久久麻豆视频| 免费 无码 国产真| 国产一区二区在线观看美女| 打扑克又疼又叫原声视频软件 | 欧美激情亚洲视频国产精品| 国产三级专区精品| 亚洲欧美日韩久久综合| 男女性猛进猛出性视频| 成人区人妻精品线看二区不卡视频| 美女国产免费| 亚洲成av人在线无码观看| 亚洲国产午夜精品久久| 精品亚洲成AV人天堂网| 欧美日韩亚洲综合激情在线| 亚洲一区AV二区三区在线观看| 婷婷伊人综合中文字幕| 欧洲精品一区二区三区的视频| 国产伊伊免费观看视频| 国产ts视频一区二区三区| 亚洲综合日韩第十页| 性色少妇av蜜臀人妻无码| 久久中文高清欧美| 草莓视频app未满十八禁| 亚洲日韩1区2区| 高清痴汉一区二区三区| 国产女精品视频| 欧美亚洲日本精品| 婷婷午夜天午夜福利综合| 日韩中文无码一级片| 忘忧草在线影院www日本99| 精品人妻无码一区二区6919| 欧美SSS在线视频| 亚洲成人肉体福利| 精品久久白浆少妇| 国产精品无圣光播放一区| 国产成人午夜av无码专区| 国产精品一级毛片国语| 亚洲有码薄码区bt连接| 国产精品69亚洲特级黄片| 亚洲av综合a∨一区二区| 国产老熟妇乱XXXXX| 精品国产肉丝袜久久不卡| 久久五月丁香综合中文亚洲| 欧美视频蜜桃视频| 又粗又硬又黄的免费视频| 亚洲欧美日韩高清| 色欲久久久天天天综合网精 | 久久久精品午夜免費不卡| 屁股又白又大肥熟女人视频| 久久国产精品免费看小草| 天天干夜夜操天堂操操| 午夜激情爱爱视频网| 久久久久国产精品调教性奴| 成人国产999视频在线观看| 国产素人在线观看| 国产永久av福利在线观看麻豆| 天天躁日日躁狠狠躁欧美一区| 亚洲成人肉体福利| 俺来也俺也啪www色| 日本国产在线播放| 成人网视频免费在线观看| 无码专区中文字幕无码精品视频| 五月婷婷综合免费| a级男女仿爱免费视频| 日韩中文字幕在线观看网址| 国产精品白丝久久| 国产精品爽爽在线免费观看| 日本亚洲精品专区在线观看| 日本一高清二区视频久二区| 成年女人免费大片视频| 99精品国产自在现线观看| 亚洲中文无码av二区97| 久草网站在线| 免费在线日韩| 三级网站在线观看播放| 国产97色在线 日韩影视资讯和在线播放 | 久久99精品二区| 久久精品亚洲?V三区麻豆| 国产日产在线免费视频播放| 天天日天天干天天弄天天操| 日韩电影手机在线| 日韩亚洲不卡中文字幕在线| 亚洲精品自产拍在线看国产| 亚洲一卡久4卡5卡6卡7卡| 日本三区二区一区爱| 久久视屏这里只有精品6国产 | 九月丁香婷婷| 亚洲AV乱码久久精品蜜桃| 草莓视频下载污污| 久久精品国产亚洲蜜臀?v| 2021无码自拍产精品视频| 99精品国产自在现线观看| 亚洲aⅤ无码专区影院在线播放| 毛茸茸成熟亚洲人| 四虎成人在线永久免费视频| 无码中文字幕av一区二区三区| 69综合精品国产二区无码| 操逼动画无马赛克色费看| 国产按摩院在线网站| 91chinese在线观看网站| 亚洲国产精品特色大片| 伊人久久大香线蕉无码av| 又色又粗又黄又爽视频| 美女黄片亚洲免费| 国产精品久久久久久亚洲A∨ | 日韩欧美成人影视中文字幕| 在线 免费 国产 日韩 欧美| 在线视频91日本免费观看| 女人18毛片A级女人18水真多| 制服丝袜91AV影院| 婷婷五月开心亚洲综合在线| 亚洲一区操逼| 三级av免费无码无需播放| 无码在线观看国产| 久久青草费线频观看怡红院| 国产精品一线免费精品播放| 精品自拍日韩无码| 亚洲AV成人一区二区三区在线看| 情趣色诱免费视频在线观看| 亚洲欧洲中文字幕在线| 亚洲高清aⅴ日本| 国产8x8ⅹ华人永久免费网站| 激情小说:欧美久久| 欧美亚洲激清在线搜索| 国产精品部在线观看| 国产精品爽爽在线免费观看| 日本三级理论人妻中文字电影| 日本高清视频无码免费播| 日韩一区二区三区不卡中文字幕| 國產成人一卡2卡3卡4卡| 四虎欧美精品在线视频| 亚洲动漫第一页| 性爱高清国产专区亚洲一区日本在线| 在线看人与动人物A级网址 | 欧美日韩手机在线一区| 小小的日本在线观看免费高清| 欧美日韩人妻精品成人一区二区三区 | 久久国产乱子伦精品免| 欧美日韩一区二区三区四区中文字幕| 东京热人妻丝袜无码AV一二三区观| 92021国产精品偷窥盗摄| 日韩国产综合久久| 亚洲天堂一区二区三区在线观看| 猛男猛女午夜免费视频网| 精品一级片内射视国| 国产日韩欧美精品a在线看| 夜色精品国产噜噜| 国产av无码国产永久播放| 狠狠色婷婷丁香综合久久 | 亞洲女人天堂a在線播放| 久久只有精品亚洲伊人| 富二代短视频app| 久久伊人婷婷在线不卡福利 | 日本人妻巨大乳挤奶水陈述| 欧美精品一区在线观看播放| 日本一区二区中文字幕久久| 黄色一级在线三级日a在线| 久久久精品午夜免費不卡| 国产亚洲日韩网曝欧| 国产黄色小视频免费观看| 精品国产高清免费第一区二区三区| 精品国产成?v在线观看| 中文字幕無碼無碼專區| 精品欧美在线播放| 欧美韩日国产在线| 丰满少妇愉情中文精品字幕| 久在线免费视频2| 69pao精品视频在线观看| 欧美最新福利视频| 果冻传媒国产精品| 国产成人精品无码视频免费视频| 欧美亚洲国产网| 亚洲无码午夜小电影| 成人欧美亚洲一区| 中文字幕人妻在线视频| 91大神在线电影| 又长又粗又硬视频太爽了快来| 国产欧美久久久精品影院| 一区二区在线观看免费| 男女性猛进猛出性视频| 中日韩三级片免费| 少妇暴力深喉囗交3p| 超碰97免费超碰97人人操人人摸| 日本一在线中文字幕| 国国产成人在线免费视频 | 国产精品欧美黄色| 青青青爽在线视频观看| 中文字幕亚洲无限码一区二区 | 国产精品精品一区二区三区网站| 成人黄色国产av| 欧美日韩国产aⅴ| 国产黄的网站免费| 在线看人与动人物A级网址| 无码丰满熟妇一区二区浪潮Av| 无码av一级蜜桃| 91超精品碰国产在线观看| 伦理片电影在线观看| 一区二区欧美精品动图gif| 亚洲区自拍偷拍视频| 中文字幕欧美日韩一| 奇米影色777四色在线622| 午夜人妇精品一区二区| 最新国产在线视频第三页| 老宋翁熄高潮怀孕| 亚洲一级生活片| 欧美一区二区精品人妖系列| 欧洲性开放老妇人太大人妻| 国产欧美日韩另类在线视频| 亚洲欧洲中文字幕在线| 日韩精品一级二级片| 欧美最新福利视频| 在线看人与动人物A级网址| 丰满熟妞区欧美黄色免费| 成全视频免费观看在线观看| 久久久久无码国产精品一区av综合精| 中文乱码人妻系列无码专区| 国产精品自拍啪啪啪啪| 草逼视频网站| 欧美一级免费看| 丝袜美腿视频欧美一区二区| 欢迎访问国产中日韩久久久噜噜久久 | 操美女视频网站| 精品国免费一区二区三中文字幕三级专区| 亚洲色中文字幕无码av| 亚洲国产午夜99综合| 久久国产福利精品| 国产一二三区有声小说| 日韩国产欧美亚洲精品一二三区| 國產精品怡紅院永久免費| 精品無碼人妻一區二區三區不卡| 国产精品午夜成人一区二区| 激情欧美第一季在线播放| 欧美制服诱惑啪啪视频| 人人看人人模97| 免费在线日韩| 丝瓜视频污在线观看| 超碰草棚最新加入| 处破好疼哭视频在线观看| 久久久久99九九久久小草| 在线视频国产日韩| 日韩少妇视频无码不卡| 精品国产乱码一区二区三区小黄书 | 国产在线无码国产| 侵犯女教师一区二区三区视频| 任我爽精品视频| 亚洲AV无码合乱码精品国产| 国语中国熟女XX| 午夜精品久久久久久xyz | 成人精品一区二区三区在线| 国语疯狂3p刺激视频| 无码AV午夜福利一区| 98中文字幕第一区| 樱桃视频黄色一级片| 国产精品自拍啪啪啪啪| 久久6热视频免费一级片| 日韩国产欧美经典一区二区三区| av毛片在线播放免费| 国产一区视频一区视频在线观看国产免费| 久久精品人人做人人爽老司| 亚洲乱码婷婷国产精品| 欧洲一级欧洲一级a黑寡妇| 91香蕉APP免费下载| 俺来也俺也啪www色| 91大神在线电影| 色老精品视频| 四虎成人在线永久免费视频| 超碰国产极品在线| 韩国日本三级在线观看樱花草在线社区| 国产一级特黄a大片免费 | 国产精品丝袜高跟一区| 猛男猛女午夜免费视频网| 好色先生TV黄污版在线观看| 性高湖久久久久久久久aaaaa| 亚洲日韩精品欧美在线| 韩国一区二区熟睡人妻视频| 久久精品国产亚洲7777小说| 欧美福利大秀在线观看极品| 久久亚洲春色字幕久久| 亚州第一网站男人都知道| AV美腿丝袜在线资源网| 國產成人精品白漿免費視頻試看| 男插女爽到内射的视频| 免费人成网站在线视频| 国产ts视频一区二区三区| 电影天堂久久无码高清| 日日噜狠狠噜天天噜av| 综合精品国产丝袜长腿免费| 久久国产综合亚洲综合成人| 亚洲av日韩av综合aⅴ| 国产情景剧AV无码无遮挡| 日韩无码毛片二三区| 成人精品高清视频在线观看| 99re久久这里只有精品15| 亚洲AV日韩久荜AV在线| 东京热精品无码av| H女主从小被C到大荤话视频| 两个人看的www免费视频中文| 中国女人高潮hd| 日本少妇三级视频在线播放| 日本一区二区中文字幕| 黑人h视频免费在线| 青草草久久久| 亚洲自拍偷拍综合网| 午夜老司机免费视频| 999成人国产精品| 国产三级韩国三级日产三级剧情 | 精品国产第一福利网站| 日韩丰满少妇无码| 欧亚av无码vr电影| 国自产拍精品超清在线| 中文子幕无线码一区tr| 日韩av免费无码一区二区三区| 永久免费视频网站| sM捆绑一区二区三区| 日韩毛片大全| 日韩人妻无码久久久| 污污污18禁图片| 午夜影院一區二區三區| 日韩精品成人亚洲专区| 日韩?V无码专区国产乱码| 国产一区二区三区的视频| 亚洲av永久无精品mmd| 成人福利片在线观看网站福利| 十八禁视频网站免费观看| 被男狂揉吃奶40分钟| 亚洲高清中文字幕综合网| 日本成熟少妇喷白浆色网视频| 羞羞视频成人| 国产A级无码裸体毛片 | 怡红院宜春院十次综合啦首页| 国产精品视频无码中文每日更新| 青青久久尤物视频| 91夜夜欢国产视频大全| 成人性色生活片全黄| 久久婷婷毛片视频| 免费久久亚洲精品| 被草出奶水的视频| 少妇脱了内裤在客厅被| 天下第一社区免费观看| 天堂一区二区三区在线观看| 国产亚洲丰满人妻视频中文字幕在线 | 久久美女国产热视频网站| 挺进美妇的肉蚌小说| 欧美丝袜中文字幕一区| 青青国产91久久久久久香蕉| 2021国产麻豆剧传媒古装| 九九在线视频这里只有精品| 自拍偷拍国语欧美对白| 日本特大a级猛片| 国产蜜臀AV无码不卡在线观看| 免费韩国三级毛片| 欧美日韩亚洲国产三级| 欧美韩日国产在线| 香港高清一区二区视频| 精品麻豆高清一区二区三区| 我使劲进了她的下身视频| 91精品无码一区二区三区| 色界吧福利导航大全在线观看| 51国产偷自视频区视频222| 男人的天堂五月天| 91精品亚洲蜜月| 91视频国产精品美女高潮| 又黄又爽又粗又大又舒舒| 国语中国熟女XX| 亚洲av色香蕉一区二区三区性色| 久久国产成人午夜aⅴ影院宅| 精品久久久久久久国产美女| 欧洲熟妇色xxxxx| 手机在线伦理电影| 爱操视频无码一区二区免费| 少妇太爽了在线观看免费| 一级日本牲交大片免费网站| 香港三日本香港三级人妇| 亚洲成AV人片在一线观看| 国产精品v亚洲精品色欲| 在线观看自拍高清无码| 国产成人三级电影在线播放| 98中文字幕第一区| 精品久久久国产免费| 一区二区三区在线欧洲无码| 免费在线日韩| 亚洲欧美综合日韩久久久久| 欧美亚洲综合5月婷婷| 欧美3p大片在线观看完整版| 精品久久久国产免费| 久久精品一区二区三区综合| 欧美日韩视频视频二区| 亚洲黄色午夜蜜桃无码| 免费无遮挡毛片中文字幕| 日韩欧精品国产一区二区三区| 羞羞国产美女裸体免费网站| 欧美丝袜中文字幕一区| 国产成人精品怡红院在线观看不卡 | 99精品免费丝袜美女国产| 了解最新久草国产精品视频| 日韩精品成人亚洲专区| 成人亚洲中文字幕| 欧美一区不卡精品综合| 亚洲美女少妇av| 亚洲国产人成自拍| 日韩女人免费一区二区三区| 精品国产成?v在线观看| 精品中文字幕第九在线| 被草出奶水的视频| 国内无遮挡18禁无码网站免费| 欧美黄三级视频在线| 日韩女人免费一区二区三区| 国产精品午夜成人一区二区| 久久人妻少妇出轨中文字幕| 亚洲人成无码网www动漫| 果冻传媒国产精品| 欧美人妻性爱中文字幕不卡视频| 国产每日更新| 秋霞午夜伦理在线观看| 九九久久这里只有精品| 国产日韩欧美中文另类| 色婬网站av水蜜桃无码区免费| 91PORN桃色在线网站| 亚洲制服 视频在线观看| 在线观看精品国产福利片app| 爱操视频无码一区二区免费| 中文无码字幕一二区| 久久午夜av一区二区| 国产黄在线播放免费观看| 欧美日韩在线一区二区三区不卡| 国产一级a毛一级a看免费视国产乱人伦偷精品视频免下载 | 欧美区一区二中文福利视频| www爽爽爽国产美女| 精品日韩岛国一区二区三区| 午夜视频精品一区二区三区| 国产日韩欧美中文另类| 欧美一级a爱片免费观看看| 精品久久久久久无码人妻另类| 自拍偷拍亚洲日韩欧美| 另类国产日韩欧美综合| 很污很黄很爽的网站| 国产精品午夜理论片在线播放| 久久国产成人午夜aⅴ影院宅| 日本成熟少妇喷白浆色网视频| 中文无码不卡人妻在线看| 国产综合无码一区二区| 无码精品A∨夜夜嗨| 国产清纯白嫩极品爽爽| 亚洲色欧美2019最新在线| 打扑克又疼又叫原声视频软件 | A三级三级成人网站在线视频| 超清中国国产一级毛卡片在线| 日韩精品免费无码专区午夜| 打卜克大喊大叫的软件| 秋霞久久久国产精品电影| 毛片在线网站| 精品国产亚洲综合一区| 中文字幕av制服丝袜电影| 激情精品在线观看| 日本一区二区中文字幕| 日韩欧美人妻视频| 浪潮AV一区二区色欲无码| 国产精品久久精神品三级n| 天天添夜夜摸日日| 青青香蕉国产在线观看| av免费观看网址| 挺进美妇的肉蚌小说| 性爱国产亚洲性爱在线观看| 热久久精品久久久| 三上悠亚亚洲一区高清| а∨天堂在线手机版| 国产精品高清自产拍| 国产欧美另类制服丝袜美腿| 国产黄色小视频免费观看| 2022最新国产不卡精品| 曰韩一区二区三区免费视频| 午夜激情爱爱视频网| 国产久一视频在线观看蜜臀| 五月天堂丁香| 99国产剧情演绎在线播放| 制服丝袜91AV影院| 美女av在线毛片| 亚洲国产a∨乱码无码znlu| 色欲色香天天天综合网www| 97精品一区二区视频在线| 婷婷午夜天午夜福利综合| 成年日本片黄网站色大全免费| 综合中文在线观看亚洲| 鲁一鲁手机在线视频2018| 91亚洲欧美精品| 香港一级特黄大片试看等最新內容| 真人毛片免费观看久久精品| 国产亚洲日韩网曝欧| 国产又大又粗又猛的视频| 亚洲精品成人网线在线播放ⅤA | 亚洲色老妇色在线精品播放| 午夜小视频男女在线观看 | 国产黄片很黄免费视频| 最好看的2018中文字幕无码| 韩国做爰三级在线观看| 精品久久久久久久无码伊人| 中文乱码字幕国产一区| 午夜视频在线观看免费完整版| 国产精品嘿咻嘿咻网站视频| 一级做一级a做片性视频品善网 | 国产欧美迷晕在线观看| 日韩久久无码精品不卡一区电影| 亚洲中文字幕在线看全集| 五月丁香久久伊人本道开心| 欧美日韩国产在线人成日| 日本做受高潮好舒服视频| 亞洲人成小說網站色在線| 一个人高清在线观看永久免费 | 久久久久免费激情视频| h网站免费在线观看| A∨日本三级成人一区电影| 一级a一级a爱片免费兔兔软件| 欧美高清 一级片| 国内偷拍高清精品免费视频| 宅男的天堂天天影视网可乐影院| 白袜自慰GAY网站可播放 | 日韩私拍高清无码| av在线免费观看午夜福利| 精品国产伦一区二区三区在线观看 | 久久中文字幕一级| 国产AV无码专区亚洲AⅤ中文 | 女人荫蒂添的好舒服视频| 亚洲欧美成人精品中文字幕| 国产成人午夜在线观看91| 久久久久成人香蕉网站| 国产伊伊免费观看视频 | 色图在线免费视频| 99久高清在线播放| 久久久精品一区二区三区老牛 | 69视频国产成人一区二区 | 九九免费视频在线播放| 青青草久久伊人| 成年女人一级毛片免费看| 精品国色天香一期二期| 变态另类重口味AV| 青青青爽在线视频观看| 永久无码免费看aⅴ片| 国产精品乱人伦精品区二区 | 暗夜免费观看在线完整版| 国产剧情无码播放在线看| 国产中文字幕在线一区| 国产精品三级激情视频| 999成人国产精品| 91超精品碰国产在线观看| 久久久精品日韩免费观看| 初尝黑人巨砲波多野结衣| 果冻传媒国产精品| 国产一级做a爱片久久精品| 中文字幕AV天堂| av麻豆出品免费在线观看| 欧美成人牲色生活片| ?超超碰中文字幕伊人| 亚洲人成网大伊香蕉| 久久无色码中文字幕婷婷| 2022最新国产不卡精品| 我故意没有穿内裤让别人看| 嗯灬啊灬把腿张开灬所有漫画| 国产欧美日韩精品久久| 免费一区二区视频| 文字幕乱码精品久久久久| 亚洲日韩大片在线| 久久久无码精品亚洲日韩麻豆| 国产国片精品国产美女主播| 日韩中文无码一级片| 国产精品免费裸体视频| 亚洲AV无码秘 蜜桃| 欧美日韩在线一区二区三区不卡| 丝袜mm无码网站樱花av| 精品成人伦理片久久久久久| 日本欧美视频在线观看三区| av在线观看亚洲免费| 精品久久久久久久国产美女| 满足用户免费在线观看视频的需求.| 五月天永久免费的网站| 日韩午夜无码播放器视频| 国产91情侣在线精品国产| 满足用户免费在线观看视频的需求.| h成人3d动漫在线观看网站| 国产美女啪啪一区二区| 欧美性色XXXXⅩ一区| 91偷拍裸体一区二区三区 | 国产一区二区三区的视频| 亚洲αv无码一区二区三小说| 国产亚洲综合午夜精品区不卡| 国产精品一区婬乱a级毛片多女久| 亚洲国产精品特色大片| 国产精品亚洲二区在线观看| 国产一二三四在线播放| 亚美黑人区欧美日韩高清| 日本成熟少妇喷白浆色网视频| 国产精品一区二区三区99| 被公侵犯的漂亮人妻| a级黄色片视在线播放| h成人3d动漫在线观看网站| 2021无码自拍产精品视频| 日韩欧美福利电影在线| 亚洲欧美日韩一区二区在线播放 | 成人精品久久一区视频| 日本96视频免费下载| 国产精品永久在线观看av| 老熟婦高潮一區二區三區| 性爱国产亚洲性爱在线观看| 爱操视频无码一区二区免费| 日本少妇三级视频在线播放 | 国产精品亚洲片在线牛牛影视| 呦交小u女国产精品视频| 欧美一本大道香蕉综| 五月天永久免费的网站| fc2成人免费人成在线观看播放| 155fun.黑料热点事件| 无码又黄又湿又免费视频| 国产xxxx色视频在线观看免费 | 国产嫖妓女免费视频| 无码av天堂永久资源网| 国产人妻人伦精品熟女麻豆| 欧美三级韩国三级少妇99| 亚洲和欧美毛片久久久久| 欧美午夜久久婷婷| 亚洲国产精品丝袜国自产拍av| 国产av自拍一区| 中文字幕在线视频一区| 免费女人18毛a级毛片视频| 国产精品一区婬乱a级毛片多女久 精品国产三级aⅴ一区二区三区 | 欧洲熟妇色之亚洲熟妇色| 国产精品性爱不卡色欲AV| 精灵宝可梦狂桶小霞网站| 欧美成人网站免费| 亚欧乱色束缚一区二区三区| 欧美乱伦国产综合| 国产公开人成乱码在线播放| 亚洲一区二区三区无卡午夜| 久久少妇无码专区| 免费a级毛片网站| 久久成年人电影| 国产亚洲高清观看5388| 虎白女粉嫩极品在线观看网站| 亚洲精品日韩av无码一二区| 无码国产激情在线观看把视频| 日韩国产欧美经典一区二区三区 | 两女女百合互慰AV赤裸无遮挡| 日本国产在线播放| av无码精品一区二区三区宅噜噜| 成人免费看片软件| 午夜视频精品一区二区三区| A级无码免费毛片视频| 亚洲第一女人精品网第1页|