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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CANoe教程:CAPL编程

發布時間:2023/12/31 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CANoe教程:CAPL编程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

CANoe教程 | CAPL編程 - 數據類型

CAPL是一種類C語言,CAPL數據類型的定義很多C語言類似,但也有很多獨特的地方。 CAPL數據類型包括基本類型、結構體、枚舉、關聯類型和對象類型。變量的數據類型決定了變量存儲占用的空間。

1 基本類型

2 枚舉

枚舉變量的定義和使用同C語言:

enum State { State_Off = -1, State_On = 1 };

如果枚舉成員的值未定義,那么第一個成員默認值為1,之后的成員按順序依次加1.?

枚舉變量的定義和使用

variables {enum { Apple, Pear, Banana } fruit = Apple;enum Colors { Red, Green, Blue };enum Colors color; }enum Colors NextColor(enum Colors c) {if (c == Blue) return Red;else return (enum Colors) (c + 1); }

3 關聯類型

CAPL支持一種類似Python字典和C++ Map的關聯類型(Associative Fields),關聯類型的元素是鍵值對(key value pairs)。 關聯類型定義格式如下,左邊是value類型,右邊[ ]內是key類型:

int m[float]; // maps floats to ints float x[int64]; // maps int64s to floats char[30] s[ char[] ] // maps strings (of unspecified length) to strings of length < 30

example 1:關聯浮點型

float m[float]; m[4.1] = 5.5; //key is 4.1 (float) and value is 5.5 (float) m[5.3] = 6.6; write ("4.1 is mapped to %2.2lf", m[4.1]); write ("5.3 is mapped to %2.2lf", m[5.3]); for (float mykey : m) {write("%2.2lf is mapped to %2.2lf.", mykey, m[mykey]); }

example 2:關聯字符串

char[30] namen[char []]; strncpy(namen["Max"], "Mustermann", 30); strncpy(namen["Vector"], "Informatik", 30);for (char[] mykey : namen) {write("%s is mapped to %s", mykey, namen[mykey]); }

4 結構體

結構的定義和使用同C:

variables {struct Point{int x;int y;};struct Point myPoint;struct Point allPoints[50]; } on start {myPoint.x = 7;myPoint.y = 2;allPoints[3].x = 1;allPoints[3].y = 5; }

注意: CAPL中結構體默認按8字節對齊,可以在結構體定義前加_align來改變結構體對齊方式。

example:

struct Point { // note: default _align(8) byte x; // offset 0, size 1 byte y; // alignment 1, offset 1, size 1, padding before: 0 }; // size 2, alignment (of the struct) 1struct LongPoint { // note: default _align(8) byte x; // offset 0, size 1 qword y; // alignment 8, offset 8, size 8, padding before: 7 }; // size 16, alignment (of the struct) 8_align(2) struct Point2 { byte x; // offset 0, size 1, (alignment 1) qword y; // alignment 2, offset 2, size 8, padding before: 1 }; // size 10, alignment (of the struct) 2struct Points { // note: _align(8) per default struct Point p1; // offset 0, size 2, (alignment 1) byte x; // alignment 1, offset 2, size 1, padding before: 0 struct Point2 p2; // alignment 2, offset 4, size 10, padding before: 1 }; // size 14, alignment (of the struct) 2

可以使用如下函數獲取結構體大小(size)、對齊方式(alignment )和偏移量(offset )信息:

example:

struct Points { // note: _align(8) per default Point p1; // offset 0, size 2, (alignment 1) byte x; // alignment 1, offset 2, size 1, padding before: 0 Point2 p2; // alignment 2, offset 4, size 10, padding before: 1 }; // size 14, alignment (of the struct) 2__size_of(struct Points); // returns 14 __alignment_of(struct Points); // returns 2 __offset_of(struct Points, p1); // returns 0 __offset_of(struct Points, x); // returns 2 __offset_of(struct Points, p2); // returns 4

5 對象類型

除了以上介紹的基礎數據類型,CAPL還提供了一些CANoe特有的對象類型來幫助用戶快速完成仿真測試功能的開發。

CAN messages

CAPL提供了各種網絡對應的報文類。本文以CAN message為例進行介紹。 報文變量定義格式:

message + message ID/message name + variable

使用message關鍵字來聲明一個報文變量,message后是message ID或CANoe工程導入DBC后的message name,然后是在CAPL程序中要使用的報文變量名。

message 0xA m1; //定義一個ID為0xA的報文變量m1 message 100x m2; //定義一個ID為100的擴展幀報文變量m2,ID后的x后綴表示這是一個擴展幀 message EngineData m3; //定義一個在DBC中message name為EngineData的報文變量m3 ... output(m1); output(m2); output(m3);

CAPL提供了一系列的選擇器(Selectors)來設置或讀取CAN message的屬性,例如:

?

example:

message 0x100 msg; //定義一個ID為0x100的message變量msg msg.CAN = 1; //將msg的通道設置為1 msg.DLC = 2; //將msg的DLC設置為2 msg.BYTE(0) = 0xAA; //給msg報文數據段的第一個byte賦值為0xAA; msg.BYTE(1) = 0xBB; //給msg報文數據段的第二個byte賦值為0xBB; output(msg); //將定義好的msg發送到總線中

?6 定時器變量

CAPL提供兩種定時器變量: timer:基于秒(s)的定時器 msTimer:基于毫秒(ms)的定時器 example:點擊鍵盤'a'后以20ms為周期發送id為100的報文

msTimer myTimer; //定義一個ms定時器myTimer message 100 msg; ... on key 'a' {setTimer(myTimer,20); //點擊鍵盤'a'將定時器myTimer設置為20ms,并開始計時 } ... on timer myTimer { //響應定時器事件myTimer,將msg發送到總線,output(msg);setTimer(myTimer,20); //重新設置定時器myTimer為20ms }

CANoe教程 | CAPL編程-運算符/流程控制

CAPL中算數運算符、邏輯運算符、位運算以及流程控制語句和C語言一致。?

1 運算符

2 流程控制

?

CANoe教程 | CAPL編程 - 事件驅動

1 事件概述

CAPL是一種面向過程、由事件驅動的類C語言。

事件驅動針對于順序執行,其區別如下:

順序執行:順序執行流程中,子例程或過程函數按照代碼編寫順序逐句執行。

事件驅動:CAPL程序由事件驅動,工程運行過程中發生指定的事件時才會運行相應的事件處理函數。

順序執行VS事件驅動

在CAPL中添加事件處理函數:?

重要的事件處理函數:

事件總覽:?[3]

2 事件詳解

事件起始關鍵字 on

on后加某種事件,工程運行時條件觸發,則執行函數體內的語句。

關鍵字this

系統變量、環境變量或CAN報文事件中,可以用this關鍵字訪問其指代的數據內容,如:

on envvar Switch { // Declare a CAN message to be transmitteed message Controller msg;// Read out the value of the switch // Assign to the signal Stop msg.Stop = getvalue(this); // Output the message on the bus output(msg); }

系統事件

系統事件主要用于處理CANoe測量系統的控制功能,主要有on start、on preStart、onstopMeasurement、on preStop、on key<newKey>以及on timer


系統事件Example:

//on preStart procedureon preStart {write("Measurement started!");msg_Count = 0; }//on start procedureon start {write("start Node A");setTimer(cycTimer,20);CallAllOnEnvVar(); // CANoe only }//on preStop procedureon preStop {message ShutdownReq m;output(m);DeferStop(1000); }//on stopMeasurement procedureon stopMeasurement {write("Message 0x%x received: %d", msg.id, msg_Count); }

CAN控制器事件

當CAN控制器或錯誤計數器狀態變化時調用CAN控制器事件。

CAN控制器事件Example:

//on errorPassive procedure on errorPassive {...write("CAN Controller is in errorPassive state")write(" errorCountTX = %d", this.errorCountTX);write(" errorCountRX = %d", this.errorCountRX); };//on busOff procedure on busOff {int errRxCnt;int errTxCnt;int channel;double timestamp; // [seconds]timestamp = (double)timeNow() / (double)100000;channel = this.can;errRxCnt = this.errorCountRX;errTxCnt = this.errorCountTX;Write("Bus Off: time=%f channel=%d, errRxCnt=%d, errTxCnt=%d",timestamp, channel, errRxCnt, errTxCnt);resetCanEx(channel); }

CAN報文/信號事件

CAN報文或信號變化時調用報文/信號事件。

CAN報文/信號事件

報文事件:

信號事件:

on signal LightSwitch::OnOff {v1 = this.raw;v2 = $LightSwitch::OnOff.raw; }

定時器事件

定義好定時器變量后,由SetTimer函數設置定時器間隔并啟動定時器。當定時器運行到設定的時間間隔時觸發定時器事件,并執行on timer函數體中的程序。

msTimer myTimer; message 100 msg; ... on key 'a' {setTimer(myTimer,20); } ... on timer myTimer {output(msg); }

鍵盤事件

通過定義鍵盤事件,用戶可以在工程運行時通過點擊鍵盤觸發預先定義的行為。這在實際開發和測試時非常常用。比如用戶可以在任意時刻向總線發送特定的消息、改變信號或系統變量的值或是啟動停止測量。

系統變量/環境變量事件

系統變量和環境變量事件分別是對系統變量和環境變量發生變化時的響應。

系統變量事件:

on sysvar IO::DI_0 { $Gateway::IOValue = @this; }

環境變量事件

on envvar Switch { // Declare a CAN message to be transmitteed message Controller msg;// Read out the value of the switch // Assign to the signal Stop msg.Stop = getvalue(this); // Output the message on the bus output(msg); }

?

CANoe教程 | CAPL編程 - 實用CAPL代碼片段

本文根據CAPL編程中經常遇到的案例場景整理簡潔通用的代碼片段。

1 周期消息發送

無論是Simulation Setup中的仿真節點還是Test Setup中的Test Module所關聯的CAPL腳本在做仿真或測試時都經常需要向總線模擬發送周期消息。

點擊鍵盤按鍵 'a' 后向總線發送周期為20ms的can 消息msg:

variables { msTimer myTimer;message 100 msg; } on key 'a' {setTimer(myTimer,20); } on timer myTimer {output(msg);setTimer(myTimer,20); }

2 應用報文Request/Response測試

ECU通常都有很多請求/應答式的功能,比如BCM可以接收用戶點擊車窗、雨刮、遮陽簾等車身相關硬件的控制按鈕向總線發出的開關請求(Request),然后由BCM向總線發出響應消息,并控制車窗、雨刮、遮陽簾等做出相應的反饋動作(Response)。

下面以測試BCM雨刮開關功能為例進行Request/Response測試。

DBC定義:

Signal NameMessage NameSignal Value Description
WiperRequestBCM_RequestOff : 0
On : 1
WiperResponseBCM_ResponseOff : 0
On : 1

參考代碼:

variables {message BCM_Request tBCM_Request;message BCM_Response tBCM_Response;int result = 0;int waitTime = 1000; }void MainTest() {TestModuleTitle ("Test BCM Features");TestModuleDescription ("Check all features in BCM.");TestGroupBegin("BCM Wiper Feature", "Check the perfomance of Wiper");Check_Wiper_Feature(0,0); //測試雨刮關閉功能Check_Wiper_Feature(1,1); //測試雨刮開啟功能TestGroupEnd(); } //Wiper Feature testcase testcase Check_Wiper_Feature(int request, int response ) {tBCM_Request.WiperRequest.phys = request;output(tBCM_Request);//測試請求發出去后1000ms內是否收到BCM的響應信號。result = TestWaitForSignalMatch(BCM_Response::WiperResponse,response,waitTime);passResult(result,request,response); } void passResult(long result,int request,int response) {switch(result){case 1: TestStepPass("1.0","Test Pass - request : %d expect response : %d ",request,response);break;case 0: TestStepFail("1.0","Timeout - request : %d expect response : %d ",request,response);break;case -1: TestStepFail("1.0","General error - request : %d expect response : %d ",request,response);break;case -2: TestStepFail("1.0","Signal is not valid");break;default:break;} }

3 檢測總線中周期報文的發送周期是否在給定范圍內

TSL提供了兩組函數用于測試周期報文:

一組使用相對時間因子,當周期小于 (aMinRelCycleTime * GenMsgCycleTime)或大于(aMaxRelCycleTime* GenMsgCycleTime)時產生事件。

函數原型:

dword ChkCreate_MsgRelCycleTimeViolation (Message aObservedMessage, double aMinRelCycleTime, double aMaxRelCycleTime, Callback aCallback);dword ChkStart_MsgRelCycleTimeViolation (Message aObservedMessage, double aMinRelCycleTime, double aMaxRelCycleTime, Callback aCallback);

另一組使用絕對時間參數,當周期小于 aMinCycleTime 或大于 aMaxCycleTime 時產生事件。

dword ChkCreate_MsgAbsCycleTimeViolation (Message aObservedMessage, duration aMinCycleTime, duration aMaxCycleTime, char[] aCallback);dword ChkStart_MsgAbsCycleTimeViolation (Message aObservedMessage, duration aMinCycleTime, duration aMaxCycleTime, char[] aCallback);

參考代碼:

testcase CheckMsgEngineData() {float aMinRelCycleTime = 0.9; float aMaxRelCycleTime = 1.1; // Information for test report.TestCaseTitle("TC 4", "Check cycle time of message EngineData");// checks the cycle time of the messagegCycCheckId = ChkStart_MsgRelCycleTimeViolation (EngineData, aMinRelCycleTime , aMaxRelCycleTime );TestAddCondition(gCycCheckId);// sequence of different actions and waiting conditionsTestWaitForTimeout(1000);TestRemoveCondition(gCycCheckId); }

測試報告中設置的命令如下,請您自行查閱CANoe幫助文檔,或者查找自帶的模板。

TestModuleTitle ("Test BCM Features");\\測試報告標題。TestModuleDescription ("Check all features in BCM.");\\測試報告描述。

輸出的測試報告如下圖所示:

如上圖所示,測試報告展示了錯誤事件產生的次數以及錯誤事件所處的事件范圍。

4 統一診斷測試(UDS)

診斷測試經常需要進行切換session,22/2E讀寫等request/response式的操作,CANoe Demo工程UDSBasic.cfg中Simulation Setup窗口里的TestModule節點關聯的CAPL腳本為我們提供了一個很好的參考模板:

參考代碼:

/*@!Encoding:1252*/ // -------------------------------------------------- // Simple test module for automated tests. // For the sake of simplicity, this example omits // security access mechanisms, especially for the // write services. In some cases, return parameters // are not checked. // // CANoe 10.0 and higher // --------------------------------------------------includes {// As this is a test module, neither including the CAPL callback interface nor adding// the corresponding transport protocol node layer DLL is necessary, because in this case,// the "built-in" diagnostic channel of CANoe can be used. }variables {enum bool {true=1, false=0};const cAccessModeNumerical=0;const cAccessModePhysical=1;const cAccessModeCoded=2;const test_vehicle_Speed_kmh = 40.0;// This timeout is used just to force CANoe to continue, i.e. normally a TestWaitForDiag...// function will return much earlier due to diagnostic level timing!const cApplicationTimeoutMs = 5000; char gTestIdStr[10]; // Test step ID for test reportword gTestCaseIndex=0;word gTestStepIndex=0;char gResultString[200]; // String for temporary test step result outputs }// Set and increment test step ID for test report updateTestIdStr() {snprintf(gTestIdStr, elcount(gTestIdStr), "%d.%d", gTestCaseIndex, gTestStepIndex); }setTestId(word tcIndex, word tsIndex) {gTestCaseIndex=tcIndex;gTestStepIndex=tsIndex;updateTestIdStr(); }incTestStepId() {gTestStepIndex++;updateTestIdStr(); }word SendRequestAndWaitForResponse(diagRequest *req, enum bool posResponseExpected) {long ret;// Trigger sending the requestif (0 > (ret=req.SendRequest())) { snprintf(gResultString, elcount(gResultString), "Trigger sending the request failed (Return code=%d)!", ret);testStepFail(gTestIdStr, gResultString);return 0;}testStepPass(gTestIdStr, "Trigger sending the request succeded.");incTestStepId();// Wait until the complete request has been sent, e.g. in case of long requests which spread over several messages (segmented message)if (1!=(ret=testWaitForDiagRequestSent(req, cApplicationTimeoutMs))){ snprintf(gResultString, elcount(gResultString), "Failed to finish sending the request (Return code=%d)!", ret);testStepFail(gTestIdStr, gResultString);return 0;}testStepPass(gTestIdStr, "Request was sent successfully.");incTestStepId();// Wait until the complete response has been received, e.g. segmented messages might take some time for transmissionif (1!=(ret=testWaitForDiagResponse(req, cApplicationTimeoutMs))) { snprintf(gResultString, elcount(gResultString), "Valid response missing or received too late (Return code=%d)!", ret);testStepFail(gTestIdStr, gResultString);return 0;}testStepPass(gTestIdStr, "Response received successfully.");incTestStepId();// Check whether the response was a positive responseif (-1==(ret=diagGetLastResponseCode(req))) {if (!posResponseExpected) {snprintf(gResultString, elcount(gResultString), "Positive response received although negative response was expected!");testStepFail(gTestIdStr, gResultString);return 0;}testStepPass(gTestIdStr, "Positive Response received as expected.");}else if (ret>0) {if (posResponseExpected) {snprintf(gResultString, elcount(gResultString), "Negative response received (NRC=0x%02x) although positive response was expected!", ret);testStepFail(gTestIdStr, gResultString);return 0;}testStepPass(gTestIdStr, "Negative Response received as expected (NRC=%d).", ret);}return 1; }// Check whether writing the vehicle speed parameter is done correctly by reading its value after writing testcase tcWriteAndReadVehicleSpeed() {diagRequest Door.Variant_Coding_Write req_write;diagRequest Door.Variant_Coding_Read req_read;double ret;word testCaseIndex; setTestId(1,1);TestStep(gTestIdStr, "Writing variant coding");if (0>req_write.SetParameter(cAccessModePhysical, "Codingstring.VehicleSpeedToLockDoor", test_vehicle_Speed_kmh)) {testStepFail(gTestIdStr, "Could not set parameter 'VehicleSpeedToLockDoor' in write request!");}else {if (0>req_write.SetParameter("Codingstring.VehicleType", "Sedan")) {testStepFail(gTestIdStr, "Could not set parameter 'VehicleType' in write request!");}else {sendRequestAndWaitForResponse(req_write, true);}}incTestStepId();TestStep(gTestIdStr, "Reading variant coding");if (sendRequestAndWaitForResponse(req_read, true)) {incTestStepId();ret=req_read.GetRespParameter(cAccessModePhysical, "Codingstring.VehicleSpeedToLockDoor");if (test_vehicle_Speed_kmh == ret) {testStepPass(gTestIdStr, "VehicleSpeedToLockDoor read as expected!");}else {testStepFail(gTestIdStr, "Read VehicleSpeedToLockDoor value is wrong (value=%f)!", ret);}} }void MainTest () {tcWriteAndReadVehicleSpeed(); }

CANoe提供的Demo工程是學習CANoe最好的資源,熟悉以上示例代碼已經能夠幫助我們開發出大部分診斷測試case。

?

?

總結

以上是生活随笔為你收集整理的CANoe教程:CAPL编程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

美女av在线免费 | 久久久国产视频 | www.888.av| 国产高清在线观看av | 综合网天天射 | 久久午夜剧场 | 日本公妇在线观看 | 欧美黄色成人 | 成人不用播放器 | 久久免费观看少妇a级毛片 久久久久成人免费 | 久久一区二区三区国产精品 | 日韩大片免费观看 | 99精品亚洲 | 欧美电影黄色 | 久久一区二区三区国产精品 | 99久久久久 | 色播亚洲婷婷 | 在线观看视频你懂得 | 亚洲第一区精品 | 69久久久| 婷婷精品| 国产资源在线视频 | 手机色在线 | 96亚洲精品久久 | 成人一级视频在线观看 | 2021国产在线视频 | 国产视 | 99视频| 91香蕉视频色版 | 91在线观看视频网站 | 丝袜美腿av| 精品一区二区三区四区在线 | 中文字幕在 | 91成人观看 | 国产精品国产三级国产不产一地 | 激情综合网五月婷婷 | 国产精品久久久久久69 | 国产中文伊人 | 在线看国产精品 | 视频在线观看入口黄最新永久免费国产 | 青青久草在线 | 日韩有码中文字幕在线 | 国产女人40精品一区毛片视频 | 91麻豆精品一区二区三区 | 五月的婷婷 | 日韩在线视频网 | 国产精品视频 | 国产v在线播放 | 亚洲日本激情 | 国产成人三级三级三级97 | 国产 日韩 在线 亚洲 字幕 中文 | 国产精品综合在线 | 91亚洲欧美激情 | 中文字幕美女免费在线 | 国产精品 国产精品 | 欧美巨大荫蒂茸毛毛人妖 | 狠狠狠色丁香婷婷综合久久五月 | 国产精品va在线观看入 | 日韩av在线免费看 | 狠狠躁日日躁 | 视频二区在线视频 | 亚洲一区二区天堂 | 免费看片日韩 | 免费在线中文字幕 | 亚洲国产成人久久综合 | 中文字幕乱码电影 | 亚洲在线视频观看 | 免费国产一区二区 | 五月综合网站 | 中文字幕 在线 一 二 | 亚洲综合国产精品 | 久久看片网站 | 69精品久久 | 亚洲在线看 | 日韩欧美高清一区二区 | 91精品系列 | 久久精品理论 | 亚洲一二三在线 | 久久久久成人免费 | 国产精品久久久久久久久免费 | 久久免费成人网 | 天堂视频中文在线 | 国产在线观看午夜 | 日韩网站在线观看 | 日韩专区 在线 | 欧美色图东方 | 亚洲欧美日韩一二三区 | 在线影院av | 婷婷深爱| 在线观看完整版免费 | 91久久精品一区二区二区 | 国产精品久久久久9999吃药 | 中文字幕中文字幕在线一区 | 日韩av看片| 亚洲永久字幕 | 色婷婷激婷婷情综天天 | 国产一区二区三区午夜 | 在线a亚洲视频播放在线观看 | 欧美日韩国产在线精品 | 91污污| 日韩av一卡二卡三卡 | 五月天开心 | 黄色免费看片网站 | 国产第一页在线观看 | 欧美日韩后 | 91精品视频在线观看免费 | 黄色一级大片在线观看 | 婷婷久月| 99久久这里有精品 | 啪啪凸凸 | 狠狠色综合网站久久久久久久 | 午夜神马福利 | 911免费视频| 免费中文字幕在线观看 | 黄a网 | 在线视频观看国产 | 国产中文字幕在线观看 | 99色网站 | 一区国产精品 | 国产精品福利无圣光在线一区 | 久久精品伊人 | 日韩精品免费 | 欧美成年人在线视频 | 日韩一区二区免费视频 | 青青色影院 | 免费在线看成人av | 亚洲色图27p | 久久艹免费 | 在线黄色免费 | 国产精品视频内 | 99久久久久久 | 国产麻豆视频网站 | 久久久久久国产精品 | 91av在线国产| 日本中文字幕在线播放 | 成人黄色一级视频 | 亚洲va在线va天堂 | 香蕉91视频 | 久久久噜噜噜久久久 | 欧美视频不卡 | 黄色特级毛片 | 亚洲成人高清在线 | 亚洲精品视频免费在线观看 | 综合激情网 | 国产老太婆免费交性大片 | 91精品久久久久久久99蜜桃 | 欧美福利视频一区 | 美女av在线免费 | 亚洲人人爱 | 亚洲欧美精品在线 | 天天射天天操天天干 | 五月婷婷视频在线观看 | 91在线精品秘密一区二区 | 国产一级做a | 国产在线免费观看 | 欧美人zozo | 亚洲精品国产精品久久99 | 精品中文字幕在线观看 | 日韩精品一区二区三区在线播放 | 亚洲一级黄色av | 国产永久免费 | 国产在线永久 | 91网在线| 国内精品久久久久久久久久久久 | 成人av午夜| 18久久久久久 | 国产中文在线播放 | 欧美一级日韩三级 | 欧美巨大荫蒂茸毛毛人妖 | 精品视频在线免费观看 | 欧美精品午夜 | 色网站在线观看 | 成人性生爱a∨ | 在线观看视频99 | 国产98色在线 | 日韩 | 婷婷亚洲激情 | 中文字幕制服丝袜av久久 | 黄色免费网站大全 | 九九热在线观看视频 | 精品国产一区二区三区在线观看 | 中文字幕文字幕一区二区 | 久久免费播放视频 | 96av视频| 九九视频在线观看视频6 | 波多野结衣一区二区三区中文字幕 | 深爱激情五月综合 | 中文字幕在线观看亚洲 | 色偷偷88欧美精品久久久 | a视频在线观看免费 | 黄色的视频网站 | 国产精品白丝av | 国产视频网站在线观看 | 97视频在线免费观看 | 欧美精品做受xxx性少妇 | 黄色成人影院 | 在线观看av免费 | 中文字幕在线播放一区二区 | 97碰碰视频| 国产精品久久影院 | 波多野结衣视频在线 | 人人爽人人爽人人爽学生一级 | 国产精品一区二区三区电影 | 精品国产一区二区三区久久 | 日韩av一区二区三区在线观看 | 亚洲高清在线 | 中文字幕黄色网 | 日韩在线视频网址 | 日本在线观看中文字幕无线观看 | 日韩视频www | 中文字幕在线观看第一页 | 国产精品成人久久 | 国产打女人屁股调教97 | 91九色porn在线资源 | 日本最新高清不卡中文字幕 | 国产成人三级在线 | 美女很黄免费网站 | 女人18毛片90分钟 | 97av视频| 天天操天天干天天爽 | 亚洲精品国产精品久久99 | 91视频com | 91大神视频网站 | 日韩欧美一区二区三区在线 | av一本久道久久波多野结衣 | 中文字幕在线观看免费高清完整版 | 在线一二区 | 成人资源在线观看 | 在线观看视频一区二区 | 欧美亚洲国产一卡 | 人人插人人舔 | 日韩av在线免费看 | 人人草天天草 | 高清不卡一区二区在线 | 久久高清毛片 | 成人av日韩 | 午夜电影久久 | 91人人插| 免费涩涩网站 | 免费在线观看av网址 | 九九综合九九 | 日韩中文字幕91 | 中文字幕日韩一区二区三区不卡 | 高潮久久久久久久久 | 黄色小视频在线观看免费 | 人人讲下载 | 久久久免费观看完整版 | 一级片免费观看 | 成人免费大片黄在线播放 | 久久夜色精品国产欧美乱 | 欧美色噜噜 | 91视频88av | 亚洲深爱激情 | 精品国偷自产国产一区 | 国产精品久久久久久麻豆一区 | 久久一区二区三区四区 | 国内小视频 | 国产精品视频地址 | 日韩va在线观看 | 国产一区二区在线观看免费 | 伊人影院av | 黄色福利视频网站 | 在线播放 日韩专区 | 成人中心免费视频 | 免费日韩 精品中文字幕视频在线 | 国产美女网站视频 | 欧美成人性网 | 精品国产自在精品国产精野外直播 | 成人中文字幕av | 婷婷久久久久 | 成人免费观看完整版电影 | adn—256中文在线观看 | 亚洲韩国一区二区三区 | 久久国产精品99久久久久久丝袜 | 色 中文字幕| 综合亚洲视频 | 99视频国产精品免费观看 | 99久久久免费视频 | 91自拍视频在线观看 | 久久情侣偷拍 | 中文字幕在线观看完整 | 93久久精品日日躁夜夜躁欧美 | 国产91丝袜在线播放动漫 | 制服丝袜亚洲 | 狠狠操夜夜 | 欧洲亚洲国产视频 | 久久免费国产 | 天天干天天摸 | 黄色成人毛片 | 国产91av视频在线观看 | 婷婷综合亚洲 | 国产午夜精品一区二区三区四区 | 在线亚洲欧美日韩 | 最新国产一区二区三区 | 亚洲综合五月 | 日韩免费在线视频观看 | 久久亚洲福利视频 | 视频一区二区精品 | 久久精品一区二区三区视频 | 91理论电影 | www黄色av| 黄色亚洲大片免费在线观看 | 日韩av电影中文字幕 | 狠狠操狠狠插 | 亚洲黄a | 国产免费又爽又刺激在线观看 | 99视频偷窥在线精品国自产拍 | 国产最新在线观看 | 国产精品一区专区欧美日韩 | 一区二区三区影院 | 欧美色图另类 | 亚洲综合在线播放 | 国产不卡毛片 | 国产中文 | 三三级黄色片之日韩 | 久久久久久久久久久久99 | 在线观看黄色免费视频 | 国产亚洲一区二区在线观看 | av综合站 | 免费看在线看www777 | 日韩精品中文字幕在线不卡尤物 | 久99视频 | 黄色片免费看 | 天天av天天| 欧美性生活小视频 | www成人av | 三级av免费 | 国产美女视频黄a视频免费 久久综合九色欧美综合狠狠 | 99久久久国产精品免费99 | 婷婷久久精品 | 麻豆国产在线播放 | 最近的中文字幕大全免费版 | 国产亚洲免费观看 | 亚洲视频综合 | 国产精品一区在线观看你懂的 | 夜色资源站国产www在线视频 | 蜜臀av夜夜澡人人爽人人 | 狠狠久久综合 | 91中文字幕一区 | 中文字幕网站视频在线 | 精品国自产在线观看 | 久久99精品国产 | 四虎成人精品在永久免费 | 中文字幕免费观看全部电影 | 久草在线手机观看 | 国产伦精品一区二区三区免费 | 99久久夜色精品国产亚洲 | 永久黄网站色视频免费观看w | 91看片一区二区三区 | 日韩大片在线免费观看 | 五月婷婷天堂 | 99r在线观看| 亚洲一区美女视频在线观看免费 | 欧美激情综合五月色丁香 | 成人综合婷婷国产精品久久免费 | 日韩三级精品 | 日韩xxxbbb| 中文字幕丝袜 | 久久av在线 | 亚洲黄色激情小说 | 国产又粗又硬又爽视频 | 在线 国产 亚洲 欧美 | 国产精品精品国产婷婷这里av | 天天搞天天干 | 久久综合狠狠综合 | 久久96国产精品久久99漫画 | 视频国产在线观看18 | av在线播放中文字幕 | 亚洲精品在线视频网站 | av手机版 | 国产99久久久国产精品成人免费 | 久久er99热精品一区二区 | a精品视频 | 天天射,天天干 | 麻豆精品视频在线观看免费 | 国产真实在线 | av亚洲产国偷v产偷v自拍小说 | 日韩毛片久久久 | 久久免费播放 | 国内视频在线 | 免费福利片 | 91av视频播放 | 久久久国产成人 | 国产字幕在线观看 | 国产免费黄色 | 麻豆影视在线免费观看 | 国产 中文 日韩 欧美 | 天天干视频在线 | 午夜12点 | 在线小视频 | 久久精品99北条麻妃 | 日韩在线观看视频在线 | 成年人黄色大片在线 | 色妞色视频一区二区三区四区 | 国产精品理论片在线播放 | v片在线看 | 黄色网www | 最新一区二区三区 | 国产高清在线免费 | 成人黄色在线视频 | 国内精品一区二区 | 美女视频是黄的免费观看 | 最新国产视频 | 亚洲精品成人av在线 | 香蕉视频最新网址 | 97人人看 | 日日综合网 | 天堂av免费看 | 成人久久久久 | 九九免费精品视频在线观看 | 国产亚洲精品精品精品 | 久草青青在线观看 | 色偷偷888欧美精品久久久 | 日韩高清在线一区二区 | 视频在线观看入口黄最新永久免费国产 | 人人看人人爱 | 国产成人精品电影久久久 | 蜜臀av性久久久久av蜜臀妖精 | 丁香久久五月 | 亚洲久草在线 | 成人av在线亚洲 | 免费看日韩 | 久久夜色精品国产欧美乱极品 | 91久久久国产精品 | 97高清视频 | 久久都是精品 | 婷婷精品进入 | 9797在线看片亚洲精品 | 国产精品自产拍在线观看中文 | 婷婷午夜天 | 日操操 | 精产嫩模国品一二三区 | 天天操天天色综合 | 丁香 婷婷 激情 | 日韩一二三区不卡 | 91麻豆高清视频 | 在线成人观看 | 欧洲高潮三级做爰 | 手机看国产毛片 | 国产精品青青 | 丁香九月婷婷 | 久久69精品 | 国产超碰在线观看 | 免费a一级 | 97视频在线观看网址 | 久草视频在线免费播放 | 精品久久久久免费极品大片 | 超碰97.com | 97av精品| 国产高清av免费在线观看 | 久久久久久久久久久久99 | 狠狠的日日 | 日韩在线大片 | 日韩视频在线一区 | 久久久久福利视频 | 久久不射电影院 | 国产在线观看你懂得 | 天天曰天天 | 美女黄频在线观看 | 色网av| av免费观看高清 | 天天视频色 | 久久久久久久久久福利 | 爱爱av网站| 亚洲免费精彩视频 | 日本性高潮视频 | 国产精品成人av在线 | 成人免费ⅴa | 91黄色免费网站 | 天天综合天天综合 | 视频三区在线 | 色99久久| 国产精品免费观看在线 | 国产精品美乳一区二区免费 | 92国产精品久久久久首页 | 麻豆一区在线观看 | 亚洲精品国偷自产在线99热 | 99色国产| 日韩激情免费视频 | 免费日韩一区 | 免费福利视频网站 | 欧美一级免费在线 | 四虎成人免费观看 | 国产精品久久久久久久久久东京 | 18网站在线观看 | 国产免费黄色 | 亚洲在线免费视频 | 国产精品永久免费观看 | 婷婷射五月| 亚洲综合在线视频 | 免费看片网站91 | 黄色小说视频在线 | 中文亚洲欧美日韩 | 国产 日韩 在线 亚洲 字幕 中文 | 国产偷在线 | 久久精品99国产精品酒店日本 | 最新国产精品久久精品 | 韩日电影在线 | 激情综合五月天 | 中文字幕在线播放一区 | 久久人人爽爽 | 91视频在线 | 中文字幕精品www乱入免费视频 | 日韩欧美精品在线观看视频 | 91免费高清视频 | 99精品在线观看视频 | 久久三级毛片 | 久久久久久久久久久久久久免费看 | 丝袜护士aⅴ在线白丝护士 天天综合精品 | 懂色av一区二区三区蜜臀 | 国产视频一区在线播放 | 国产在线小视频 | 黄网站污| 亚洲一区美女视频在线观看免费 | 精品国产视频一区 | 亚洲乱码国产乱码精品天美传媒 | 欧美综合干 | 国产一区在线视频 | 玖玖玖精品 | 色多多视频在线观看 | 免费观看特级毛片 | 超碰伊人网 | 欧美极品xxxxx | 国产97在线播放 | 伊人国产视频 | 久操伊人| 在线免费视频你懂的 | 天天干天天草 | 午夜视频福利 | 黄污视频大全 | 中文字幕91 | 激情五月婷婷丁香 | 在线黄色国产电影 | www.超碰97.com| 一区二区三区四区在线免费观看 | 97国产大学生情侣酒店的特点 | 精品一区91| 国产在线观看99 | 国产亚洲精品久久网站 | 国产亚洲精品久久久久久移动网络 | 日本二区三区在线 | 国产毛片aaa | 香蕉影院在线观看 | 日韩特级毛片 | 奇米影视8888 | 在线观看一区 | 国产午夜激情视频 | 成年人免费在线看 | 亚洲人成人在线 | 国产精品久久久久久久久久久久午夜 | 在线亚洲精品 | 久久影院精品 | 亚洲v欧美v国产v在线观看 | 国产成人精品一区在线 | 五月婷婷网站 | 久久久久久亚洲精品 | 丁香六月在线观看 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 欧美日韩国语 | 日韩高清在线不卡 | 久久精品福利 | 日韩日韩日韩日韩 | 亚洲天堂网在线观看视频 | 三级在线国产 | www.夜夜夜 | 五月婷婷激情综合 | 就要色综合 | 丝袜+亚洲+另类+欧美+变态 | 麻豆极品| 久久久久久国产精品 | 亚洲精选在线 | 91黄视频在线| 亚洲黄色网络 | 一区二区三区四区精品 | 韩日精品中文字幕 | 日本中文字幕久久 | 国产精品二区三区 | 免费久久精品视频 | 国产一区欧美日韩 | 五月花激情 | 亚洲狠狠操 | 日韩一二三 | 天天爽人人爽 | 国产精品黄 | 欧美日韩在线精品 | 欧美成人区 | 久久久免费观看完整版 | 日本黄色免费在线 | 欧美日韩免费视频 | 精品国产一区二区三区久久久久久 | 日韩欧美一区二区在线观看 | 九九综合久久 | 天天干天天做天天爱 | 四虎在线观看网址 | www日韩在线观看 | 91爱爱电影| 亚州欧美视频 | 国产免费观看av | 日韩在线| 成人99免费视频 | 亚洲精品资源 | 久草在线久草在线2 | 亚洲欧洲国产日韩精品 | 亚洲女欲精品久久久久久久18 | 国产精品久久嫩一区二区免费 | 777视频在线观看 | 国产在线欧美日韩 | 欧美在线观看视频一区二区 | 97国产情侣爱久久免费观看 | 成人中文字幕在线观看 | 天天操天天射天天爱 | 亚洲精品欧美专区 | 久久国产精品色婷婷 | 波多野结衣网址 | 国产精品永久免费在线 | 激情欧美在线观看 | 天天爽天天做 | 天堂av观看 | 亚洲最大av网站 | 手机在线看永久av片免费 | 精品久久久久久一区二区里番 | 国产日产av | 精品亚洲欧美一区 | 伊人影院99 | 日本韩国在线不卡 | 国产精品综合久久久 | 999在线精品 | av女优中文字幕在线观看 | 欧美一区二区免费在线观看 | 欧美日韩中文在线 | 五月天婷婷在线视频 | 在线观看亚洲精品 | 久久免费毛片 | 麻豆国产露脸在线观看 | 日韩免费电影在线观看 | 亚洲成人av一区二区 | 欧美极品少妇xxxx | 色综久久 | 亚洲伊人天堂 | 日韩精品欧美专区 | 91av手机在线 | 视频国产在线观看18 | 在线天堂v | 久香蕉| 夜夜嗨av色一区二区不卡 | 日本最大色倩网站www | 久草国产视频 | 中文字幕av在线免费 | 中文字幕在线有码 | 手机色在线| 五月综合 | 五月婷婷操 | 色综合久久88色综合天天人守婷 | 国产成人av | 六月丁香综合 | 中文字幕资源网在线观看 | 在线看国产一区 | 亚洲狠狠婷婷综合久久久 | 免费日韩电影 | 三级黄色网络 | 成人黄色资源 | 久草在线最新免费 | 国产小视频在线观看 | 成人永久免费 | www黄在线 | 免费视频一级片 | 免费亚洲视频在线观看 | 亚洲欧美视频在线播放 | 国产日韩欧美在线免费观看 | 成人精品亚洲 | 日日日操 | 日日夜夜91 | 伊人狠狠色 | 香蕉91视频 | 成人一区二区在线观看 | 91精品国产自产老师啪 | 日本黄色大片免费 | 人交video另类hd | 国产中出在线观看 | 精品成人久久 | 国产精品一区二区久久久久 | 欧美激情视频一二区 | 91成人精品一区在线播放 | 久久国产精品一二三区 | 少妇性bbb搡bbb爽爽爽欧美 | 国产成人一区二区三区电影 | 超碰在线97免费 | 国产成人综合精品 | 在线观看国产成人av片 | 日韩精品大片 | 亚洲精品在线网站 | 美女国产在线 | 97成人啪啪网 | 国产黄在线观看 | 国产成人精品福利 | 黄色免费视频在线观看 | 在线播放你懂 | 日韩在线网址 | 国产一区视频在线播放 | 亚洲精品高清在线 | 综合天天网 | 在线播放精品一区二区三区 | 国产精品 日韩 | 免费福利小视频 | 一级一片免费看 | 久草在线久 | 国产成人一区二区三区 | 久草电影免费在线观看 | 久久精品艹 | 久久人人爽人人爽人人 | 97香蕉超级碰碰久久免费软件 | 国产中文字幕在线免费观看 | 丁香五月网久久综合 | 国产精品美女久久久久久2018 | 亚洲人片在线观看 | 亚洲小视频在线 | 欧美 激情 国产 91 在线 | 国产丝袜制服在线 | 日本爱爱免费 | 亚洲日本国产精品 | 精品亚洲一区二区三区 | 久草综合在线观看 | 免费69视频 | 综合久久影院 | 深夜免费福利视频 | 色老板在线| 奇米网8888| 色婷婷综合久久久 | 久久久久久欧美二区电影网 | 久久撸在线视频 | 色噜噜噜噜 | 免费电影一区二区三区 | 国产精品国产三级国产不产一地 | 97在线播放视频 | 免费看的黄网站 | 六月丁香在线视频 | 国产不卡毛片 | 888av| 欧美一区二区在线 | 九色91在线 | av中文在线观看 | 一区二区三区电影在线播 | 精品久久视频 | 久久精品com| 中文日韩在线视频 | 久久综合狠狠综合久久综合88 | 国产在线一线 | 亚洲精品久久视频 | 波多野结依在线观看 | 三级性生活视频 | av在线免费网 | 97色婷婷 | 欧美另类成人 | 久久久九色精品国产一区二区三区 | 欧美日韩国语 | 射久久久 | 2019中文字幕网站 | 99riav1国产精品视频 | 国产精品久久久久久一二三四五 | 97超碰人人网 | 人人看黄色 | 麻豆视频在线观看 | 在线观看岛国片 | 美女福利视频一区二区 | 国产精品免费视频一区二区 | 免费观看的av | 日韩a在线观看 | 中文字幕日韩一区二区三区不卡 | 欧美日韩综合在线 | 国产精品综合av一区二区国产馆 | 亚洲精品色视频 | 天天干,天天射,天天操,天天摸 | 中文在线8资源库 | 福利二区视频 | 国产一区二区三精品久久久无广告 | 国产四虎在线 | 狠狠干美女 | 97人人人人 | 欧美 亚洲 另类 激情 另类 | 激情综合五月天 | 人人插人人草 | 奇米影视999 | 色综合久 | 精品国产一区二区三区久久 | www久| 在线免费观看视频 | 天海冀一区二区三区 | 久久综合免费视频影院 | 国产精品九九久久久久久久 | 中文字幕在线观看免费高清完整版 | 视频成人 | 久久黄色成人 | 中文字幕第一页在线vr | 蜜桃av观看 | 色婷婷激情电影 | 中文久草 | 日产av在线播放 | 亚州性色| 日韩国产在线观看 | 麻豆精品视频在线观看免费 | 国产精品久久久久婷婷 | 欧美精品亚洲精品日韩精品 | 草久在线播放 | 欧美疯狂性受xxxxx另类 | 99精品视频观看 | 久久的色 | 91成人精品在线 | 亚洲人av免费网站 | 久久精品美女 | 婷婷激情影院 | 国产精品无av码在线观看 | 在线观看亚洲国产精品 | 日本在线成人 | 91麻豆精品久久久久久 | 久久久久久久久黄色 | 一区二区三区三区在线 | 91av手机在线 | 国精产品一二三线999 | 国产精品自产拍在线观看桃花 | 美女网站黄在线观看 | 2019中文最近的2019中文在线 | 99视频网址| 国产.精品.日韩.另类.中文.在线.播放 | 久草网视频在线观看 | 亚洲免费一级电影 | 91探花在线视频 | 在线观看你懂的网址 | 成人精品99 | 99久久婷婷国产 | 国产一区二区高清视频 | 国产精彩视频一区 | 999久久a精品合区久久久 | 成人av高清在线 | 麻豆视频在线免费 | 黄色软件在线观看免费 | 91久久久久久国产精品 | 天堂av网址 | 色婷丁香 | 亚洲精品久久久久58 | aav在线 | 久久综合久久综合这里只有精品 | 国产精品国产三级国产aⅴ9色 | 精品国产乱码久久久久久浪潮 | 亚洲精品乱码久久久一二三 | 日韩视频免费播放 | 色婷婷一 | 午夜视频一区二区三区 | 精品国产一区二区三区免费 | 国产小视频免费观看 | 中文高清av | 亚洲精品色婷婷 | 日韩电影一区二区三区 | 日韩av女优视频 | 国产一区二区三区高清播放 | 国内精品亚洲 | 婷婷色 亚洲 | 91亚洲激情 | 国产成人三级在线播放 | 亚洲在线a| 日韩区欧美久久久无人区 | 菠萝菠萝在线精品视频 | 亚洲高清免费在线 | 狠狠色丁香婷婷综合久小说久 | 在线看污网站 | 亚洲永久国产精品 | 中文字幕日韩一区二区三区不卡 | 99色婷婷 | 成人动图 | 久久免费视频精品 | 色婷婷亚洲精品 | 久久久久亚洲精品男人的天堂 | 日韩欧美观看 | 天天综合天天综合 | 国产精品久久久久三级 | 国产精品成人久久久久久久 | 久久久久网址 | 亚洲激情久久 | 麻豆成人在线观看 | 最近日本字幕mv免费观看在线 | 国产日韩精品一区二区三区在线 | 精品一区二区在线免费观看 | 久草久草久草久草 | 日韩中文字幕a | 狠狠躁日日躁狂躁夜夜躁 | 国产精品麻豆三级一区视频 | 国产精品嫩草影院123 | 在线视频1卡二卡三卡 | 中日韩男男gay无套 日韩精品一区二区三区高清免费 | 日韩三区在线观看 | 美女视频一区 | 看毛片网站 | 午夜在线观看影院 | 午夜黄网 | 日日操天天操夜夜操 | 少妇bbw搡bbbb搡bbbb | 国产亚洲免费观看 | 精品无人国产偷自产在线 | 免费看黄的 | 欧美国产日韩一区二区三区 | 国产成人精品女人久久久 | 五月婷婷六月综合 | 欧美最猛性xxxxx(亚洲精品) | 激情久久久久久久久久久久久久久久 | 精品免费观看 | 久久综合成人 | 国产美女在线免费观看 | 丰满少妇一级 | 爱干视频 | 91免费高清在线观看 | 精品久久在线 | 亚洲美女视频在线 | 久久99热精品 | 亚洲一二三在线 | 91禁看片| 91传媒在线 | 欧美亚洲国产一卡 | 天天看天天干 | 成人va视频| 色综合中文综合网 | 国产不卡一区二区视频 | 国产精品美女久久久久久久 | 国产亚洲片 | 精品国产成人在线 | 免费亚洲精品视频 | 不卡视频一区二区三区 | 久久99精品久久久久蜜臀 | 天天做日日做天天爽视频免费 | 国产精品成人久久久久久久 | 成人在线视频一区 | 久久视频免费在线观看 | 国产精品久久久久一区二区三区共 | 国产只有精品 | 免费美女久久99 | 国产一线在线 | 成人小视频免费在线观看 | 成年人免费在线 | 夜夜骑日日 | 91成人午夜 | 国产免费又爽又刺激在线观看 | 91在线超碰 | 日韩精品中文字幕在线播放 | 亚洲一区二区观看 | 人人舔人人 | 欧美analxxxx| 国产精品久久久久久久久久了 | 亚洲精品视频第一页 | 五月婷婷中文 | 国产艹b视频 | 在线视频免费观看 | 亚洲伊人天堂 | 国产不卡视频在线 | 亚洲精选国产 | 在线免费视频a | 日韩av一区二区在线 | 日韩免费成人av | 久久香蕉电影 | 91完整版在线观看 | 久久亚洲精品国产亚洲老地址 | 91精品欧美| 一级欧美一级日韩 | 黄色av电影在线 | 成人av影院在线观看 | 国产精品色婷婷视频 | 91视频91自拍 | 日韩精品1区2区 | 六月丁香在线视频 | 97在线观看免费观看高清 | 91人人射 | 婷婷在线网站 | 欧美专区日韩专区 | 色噜噜在线观看视频 | 日韩精品一区二区三区外面 | 国产精国产精品 | 中文字幕亚洲欧美日韩2019 | 国产精品久久久久久久av大片 | 日日夜夜爱 | 欧美成年人在线观看 | 久久视频一区二区 | 激情伊人五月天 | 国产极品尤物在线 | 欧美日韩国产在线 | 日日麻批40分钟视频免费观看 | 欧美午夜精品久久久久久浪潮 | 久久精品视频18 | 欧美精品中文在线免费观看 | 三级黄免费看 | 一区二区三区日韩视频在线观看 | www色av| 日日夜夜狠狠操 | 免费观看一级一片 | 一本一道久久a久久精品 | 日韩a欧美 | 中文字幕av播放 | 国产精品美女毛片真酒店 | 日日躁你夜夜躁你av蜜 | 亚洲3级| 手机在线中文字幕 | 亚洲精品国产区 | 久久综合免费视频影院 |