• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    WindML下PM6500觸摸屏驅(qū)動設(shè)計及實現(xiàn)

    2023-11-03 11:54:00劉麗霞劉志鵬
    計算機工程與設(shè)計 2023年10期
    關(guān)鍵詞:設(shè)備

    劉麗霞,劉志鵬,張 力

    (1.中國航天科工集團第二研究院 七〇六所,北京 100854;2.32379部隊第一科室,北京 100072)

    0 引 言

    VxWorks是Wind River System公司推出的一種嵌入式實時操作系統(tǒng),以其良好的可靠性和實時性被廣泛應(yīng)用在通信、軍事、航空、航天等實時性要求較高的領(lǐng)域。Wind River Workbench 3.2是基于VxWorks6.8操作系統(tǒng)的軟件開發(fā)環(huán)境,它提供了豐富的調(diào)試、仿真環(huán)境和工具。WindML是VxWorks操作系統(tǒng)下的多媒體庫(wind media library)。它支持多媒體程序運行在嵌入式系統(tǒng)中,提供基本圖形、視頻和音頻技術(shù),以及提供一個通用設(shè)備驅(qū)動程序架構(gòu)。

    WindML包含兩個組件,軟件開發(fā)包(SDK)和驅(qū)動程序開發(fā)包(DDK)。

    SDK組件用來開發(fā)應(yīng)用程序,它提供了一個全面的API接口,包括圖形、輸入處理、多媒體、字體和內(nèi)存管理。

    DDK組件用來實現(xiàn)驅(qū)動程序,它提供完整的驅(qū)動程序參考集,以使開發(fā)者能迅速實現(xiàn)驅(qū)動開發(fā)。

    本文接下來分析了VxWorks6.8操作系統(tǒng)下使用WindML驅(qū)動程序開發(fā)包(DDK)開發(fā)輸入設(shè)備驅(qū)動程序原理。設(shè)計并開發(fā)了觸摸屏驅(qū)動軟件以及觸摸屏校準(zhǔn)算法。

    本文實現(xiàn)的驅(qū)動和觸摸屏校準(zhǔn)算法豐富了WindML庫輸入設(shè)備驅(qū)動,也填補了WindML庫中觸摸屏校準(zhǔn)算法的空白。通過設(shè)計應(yīng)用程序測試驗證驅(qū)動的正確性和有效性,也說明了該算法可以進(jìn)行推廣和應(yīng)用。

    1 觸摸屏介紹

    鼠標(biāo)(PS2鼠標(biāo)、USB鼠標(biāo))、鍵盤、觸摸屏均屬于輸入設(shè)備,其中PS2鼠標(biāo)、USB鼠標(biāo)、觸摸屏設(shè)備等都是指針設(shè)備。

    本文選用的觸摸屏控制器型號是PenMount PM6500,它通過標(biāo)準(zhǔn)RS232串口接入到主控設(shè)備。觸摸屏控制器將觸摸點坐標(biāo)信息通過RS232串口傳遞給主控設(shè)備,主控設(shè)備經(jīng)觸摸屏驅(qū)動解析、處理后實現(xiàn)觸摸點顯示可控等功能。

    觸摸屏控制器按表1所示數(shù)據(jù)包格式進(jìn)行通信:數(shù)據(jù)包大小是6個字節(jié),其中前5個字節(jié)是數(shù)據(jù),最后一個字節(jié)是校驗和。Byte 0是觸摸狀態(tài),0×70表示按下狀態(tài),0×30表示抬起狀態(tài)。Byte 1、Byte 2組合成X坐標(biāo)位置,Byte 3、Byte 4組合成Y坐標(biāo)位置,Byte 5為校驗和。

    表1 串口通信協(xié)議

    2 基于WindML觸摸屏驅(qū)動設(shè)計原理

    2.1 WindML輸入設(shè)備驅(qū)動分層架構(gòu)

    基于WindML的輸入設(shè)備驅(qū)動由兩層驅(qū)動構(gòu)成,一層是底層驅(qū)動(low-level),用于處理硬件設(shè)備控制器,一層是頂層驅(qū)動(high-level),用于解析來自硬件設(shè)備的原始數(shù)據(jù)。

    WindML底層輸入驅(qū)動(low-level)是一種I/O驅(qū)動,常常配置到系統(tǒng)內(nèi)核。初始化時,該驅(qū)動掛接到操作系統(tǒng)的IO系統(tǒng)上,它的功能如下:

    (1)初始化設(shè)備控制器和輸入設(shè)備;

    (2)處理由設(shè)備控制器產(chǎn)生的中斷;

    (3)接收來自輸入設(shè)備的原始數(shù)據(jù),通過IO系統(tǒng)傳遞給high-level輸入驅(qū)動;

    (4)接收來自high-level輸入驅(qū)動的命令并進(jìn)行響應(yīng)。

    本文使用的觸摸屏通過串口接入IO系統(tǒng),RS232串口為標(biāo)準(zhǔn)串口,VxWorks6.8自帶該設(shè)備驅(qū)動,對應(yīng)的設(shè)備名稱為/tyCo/1。

    IO系統(tǒng)驅(qū)動標(biāo)準(zhǔn)函數(shù)有:open、close、read、write、ioctl、select。這些函數(shù)被high-level輸入驅(qū)動調(diào)用,實現(xiàn)輸入設(shè)備的原始數(shù)據(jù)由low-level驅(qū)動向high-level輸入驅(qū)動傳遞。

    high-level輸入驅(qū)動主要功能是從low-level輸入驅(qū)動中接收原始數(shù)據(jù),處理數(shù)據(jù),再將其打包成輸入事件消息,最后將消息發(fā)送到輸入消息隊列中。

    基于WindML觸摸屏驅(qū)動,涉及的low-level輸入驅(qū)動使用VxWorks6.8系統(tǒng)自帶串口驅(qū)動即可,因此本文重點是實現(xiàn)觸摸屏high-level輸入驅(qū)動設(shè)計開發(fā)。

    2.2 應(yīng)用層響應(yīng)WindML驅(qū)動機制

    WindML提供了與應(yīng)用層傳遞信息的可擴展機制。輸入設(shè)備(如觸摸屏)通過輸入服務(wù)(input service)將輸入信息(坐標(biāo))傳遞給應(yīng)用層。輸入設(shè)備、應(yīng)用層以及窗口均通過消息方式實現(xiàn)信息交互。

    在應(yīng)用層中,每一個顯示端均有輸入服務(wù)對應(yīng)。所有的輸入服務(wù)通過輸入任務(wù)控制high-level輸入驅(qū)動。該任務(wù)通過select()函數(shù)被掛起,用來等待來自low-level輸入驅(qū)動的數(shù)據(jù),當(dāng)輸入設(shè)備產(chǎn)生數(shù)據(jù)后,該任務(wù)被底層驅(qū)動(low-level)喚醒后,輸入服務(wù)(input service)借助high-level驅(qū)動處理來自輸入設(shè)備的原始數(shù)據(jù)。high-level輸入驅(qū)動從low-level輸入驅(qū)動上獲取觸摸屏原始數(shù)據(jù),將原始數(shù)據(jù)封裝成WindML指針類數(shù)據(jù)(UGL_POINTER_DATA)后,再將指針類數(shù)據(jù)打包成WindML消息(UGL_MSG_DATA),最后通過WindML標(biāo)準(zhǔn)接口uglInputMsgPost()函數(shù)將其放入消息隊列中。應(yīng)用層通過uglInputMsgGet()函數(shù)從缺省的輸入隊列中獲取輸入消息。獲取消息后,通過uglInputCbAdd()函數(shù)注冊輸入回調(diào)函數(shù),實現(xiàn)消息響應(yīng),如鼠標(biāo)指針移動、鼠標(biāo)左擊。

    WindML輸入消息定義如下:

    typedef union ugl_msg_data

    {

    /* The data for MSG_KEYBOARD */

    UGL_KEYBOARD_DATA keyboard;

    /* The data for MSG_POINTER */

    UGL_POINTER_DATA pointer;

    /* The data for MSG_RAW_KBD */

    UGL_RAW_KBD_DATA rawKbd;

    /* The data for MSG_RAW_PTR */

    UGL_RAW_PTR_DATA rawPtr;

    /* for compatability with ver. 2.X */

    UGL_EVENT event;

    char reserved [UGL_MAX_MSG_SIZE];

    } UGL_MSG_DATA;

    3 實現(xiàn)觸摸屏high-level輸入驅(qū)動

    3.1 創(chuàng)建驅(qū)動頭文件和源文件

    設(shè)計觸摸屏驅(qū)動源文件uglPM6500ts.c。

    將其放置在“installDir/components/windml-5.3/src/ugl/driver/pointer/uglPM6500ts”路徑下。其中“installDir”指WindRiver安裝路徑。在該源文件中定義觸摸屏驅(qū)動以及相應(yīng)函數(shù)實現(xiàn)。uglPM6500TsPtrDriver是high-level輸入驅(qū)動入口函數(shù),驅(qū)動函數(shù)包含設(shè)備打開、關(guān)閉、控制(讀取及處理觸摸點數(shù)據(jù)、獲取指針設(shè)備類型、校正觸摸點等功能)。

    UGL_INPUT_DRV uglPM6500TsPtrDriver=

    {

    (UGL_INPUT_DEV_OPEN)uglPM6500TsPtrOpen,

    (UGL_INPUT_DEV_CLOSE)uglPM6500TsPtr-Close,

    (UGL_INPUT_DEV_CONTROL)uglPM6500Ts-PtrControl

    };

    源程序?qū)?yīng)的頭文件uglPM6500ts.h放置在“installDir/components/windml-5.3 /h/ugl/driver/pointer”路徑下。該文件定義了PM6500觸摸屏指針設(shè)備數(shù)據(jù)結(jié)構(gòu)UGL_PM6500_TS_PTR_DEVICE以及函數(shù)實現(xiàn)聲明。

    typedef struct ugl_PM6500_ts_ptr_device

    {

    /* inherits input device structure輸入設(shè)備描述符*/

    UGL_INPUT_DEV inputDevice;

    /* display rectangle size 觸摸屏分辨率大小*/

    UGL_RECT dispRect;

    /*與校準(zhǔn)點對應(yīng)的觸摸屏坐標(biāo),PM6500_TS_NUM_CALIB_POINTS 設(shè)置校準(zhǔn)點個數(shù)*/

    UGL_POINT tcPoint[PM6500_TS_NUM_CALIB_POINTS];

    /*標(biāo)準(zhǔn)校準(zhǔn)點坐標(biāo)*/

    UGL_POINT calibPoint[PM6500_TS_NUM_CALIB_POINTS];

    /*校準(zhǔn)系數(shù):依次為A/B/C/H/E/F*/

    float calibCoef[6];

    } UGL_PM6500_TS_PTR_DEVICE;

    下面對uglPM6500ts.c中實現(xiàn)的驅(qū)動函數(shù)進(jìn)行詳細(xì)闡述。

    3.2 實現(xiàn)打開函數(shù)驅(qū)動

    實現(xiàn)原理是:通過low-level輸入驅(qū)動接口open()函數(shù)打開觸摸屏控制器RS232串口;設(shè)置串口波特率;通過串口從觸摸屏控制器上讀取觸摸校準(zhǔn)參數(shù)、初始化其它參數(shù)等。

    UGL_LOCAL UGL_INPUT_DEV_ID uglPM6500Ts-PtrOpen(char* pDevName,UGL_INPUT_DRV * pDriver);

    {

    /* pDevName 是串口名稱*/

    pDevice->inputDevice.fd = open (pDevName, O_RDWR, 0); //設(shè)置串口參數(shù), 包括波特率

    //從控制器的NVRAM中讀取觸摸校準(zhǔn)參數(shù)A/B/C/H/E/F

    //獲取顯示屏中用于校準(zhǔn)觸摸點(XTi,YTi)對應(yīng)的顯示點坐標(biāo)(XLi,YLi)。

    }

    在應(yīng)用層,通過調(diào)用WindML標(biāo)準(zhǔn)函數(shù)UGL_INPUT_DEV_ID uglInputDevOpen(UGL_CHAR *pName,/* device name */UGL_INPUT_DRV * pDriver /* input driver */),實現(xiàn)對uglPM6500TsPtrOpen驅(qū)動函數(shù)調(diào)用。uglInputDevOpen函數(shù)返回輸入設(shè)備ID,應(yīng)用層通過將輸入設(shè)備ID作為參數(shù),通過調(diào)用UGL_STATUS uglInputDevAdd(UGL_INPUT_SERVICE_ID inputServiceId,UGL_INPUT_DEV_ID inputDeviceId)函數(shù)實現(xiàn)了輸入設(shè)備與輸入服務(wù)綁定。

    3.3 實現(xiàn)控制函數(shù)驅(qū)動

    實現(xiàn)原理:根據(jù)上層用戶發(fā)送的請求類型分別執(zhí)行控制功能,主要包括讀取及處理原始數(shù)據(jù)、校準(zhǔn)觸摸屏、獲取指針設(shè)備類型等。

    UGL_LOCAL UGL_STATUS uglPM6500TsPtrControl (UGL_PM6500_TS_PTR_DEVICE *pDevice, UGL_DEVICE_REQ request,void * pArg)

    {

    /*判斷用戶控制請求類型*/

    switch (request)

    {

    //讀取串口原始數(shù)據(jù)

    case ICR_READ: /* read PTR data */

    {

    return (uglPM6500TsPtrReadMessages (pDevice));

    }

    //獲取指針設(shè)備類型,有鼠標(biāo)類型、觸摸屏類型等。UGL_PTR_TYPE_TOUCH_SCREEN是WindML中對觸摸屏設(shè)備的宏定義

    case ICR_GET_PTR_TYPE:

    {

    if(pArg != UGL_NULL)

    {

    *(int *)pArg = UGL_PTR_TYPE_TOUCH_SCREEN;

    return(UGL_STATUS_OK);

    }else

    {

    return(UGL_STATUS_ERROR);

    }

    }

    //開始獲取觸摸校準(zhǔn)點

    case ICR_CALIBRATION_START:

    {

    //pArg為校正點順序, 對應(yīng)標(biāo)準(zhǔn)點順序。 獲取觸摸點初始數(shù)據(jù), 并保存。

    return(GetTcData(pDevice, pArg));

    }

    //結(jié)束獲取觸摸校正點

    case ICR_CALIBRATION_STOP:

    {

    //函數(shù)CalGetCoef利用標(biāo)準(zhǔn)校準(zhǔn)點和獲取的觸摸點計算校正參數(shù)。

    return(CalGetCoef(pDevice));

    }

    }

    在應(yīng)用層,使用顯示端對應(yīng)的輸入服務(wù)(input server)找到關(guān)聯(lián)的輸入設(shè)備ID,然后將輸入設(shè)備ID作為參數(shù),通過調(diào)用uglInputDevControl(inputDevId,requestType,argument)函數(shù),實現(xiàn)對uglPM6500TsPtrControl驅(qū)動函數(shù)調(diào)用。

    3.3.1 獲取及解析原始數(shù)據(jù)

    用戶請求類型為ICR_READ:

    實現(xiàn)原理:通過low-level輸入驅(qū)動接口read()函數(shù)讀取串口原始數(shù)據(jù),將其解析成UGL_POINTER_DATA數(shù)據(jù),然后封裝該數(shù)據(jù)為輸入消息,再由uglInputMsgPost將消息發(fā)送到輸入消息隊列中。應(yīng)用層用戶通過uglInputMsgGet捕獲該消息后,再通過調(diào)用該消息相關(guān)的回調(diào)函數(shù),實現(xiàn)觸摸點移動或按鍵功能。

    3.3.2 實現(xiàn)觸摸屏校準(zhǔn)

    用戶請求類型為:

    ICR_CALIBRATION_START:開始獲取校準(zhǔn)觸摸點。

    ICR_CALIBRATION_STOP:停止獲取校準(zhǔn)觸摸點。

    鼠標(biāo)指示的是相對位置,而觸摸屏指示的是絕對位置。觸摸點數(shù)據(jù)通過校準(zhǔn)參數(shù)轉(zhuǎn)換為屏幕上的坐標(biāo),這樣就要求不管在什么情況下,同一點的輸出數(shù)據(jù)是穩(wěn)定的,如果不穩(wěn)定,那么觸摸屏就不能保證絕對坐標(biāo)定位,因此在定位不準(zhǔn)時需要校準(zhǔn)觸摸屏幕。校準(zhǔn)的核心內(nèi)容就是獲取觸摸點向屏幕顯示點轉(zhuǎn)換的校準(zhǔn)參數(shù)。

    如果PT(x,y) 表示觸摸屏上的一個點,PL(x,y) 表示顯示屏LCD上的一個點,校正的結(jié)果就是得到一個轉(zhuǎn)換矩陣M,通過式(1)實現(xiàn)觸摸屏點坐標(biāo)與顯示屏點坐標(biāo)的變換。M屬于二維幾何變換包含平移、旋轉(zhuǎn)和縮放3種變換

    PL(x,y)=M·PT(x,y)

    (1)

    若PL(x,y) 與PT(x,y) 是平移關(guān)系,轉(zhuǎn)換關(guān)系通過式(2)表示。MT為如式(3)中描述的矩陣

    PL(x,y)=MT·PT(x,y)

    (2)

    (3)

    若PL(x,y) 與PT(x,y) 是縮放關(guān)系,轉(zhuǎn)換關(guān)系通過式(4)表示。MS為如式(5)中描述的矩陣

    PL(x,y)=MS·PT(x,y)

    (4)

    (5)

    若PL(x,y) 與PT(x,y) 是旋轉(zhuǎn)關(guān)系,轉(zhuǎn)換關(guān)系通過式(6)表示。MR為如式(7)中描述的矩陣

    PL(x,y)=MR·PT(x,y)

    (6)

    (7)

    實際情況中,觸摸屏到顯示屏坐標(biāo)變換涉及到3種變換,如式(8)所示。展開此公式,其結(jié)果如式(9)、式(10)所示

    PL(x,y)=MT·MS·MR·PT(x,y)

    (8)

    XL=XT(Sx·cosθ)+YT(-Sy·sinθ)+
    (Tx·cosθ-Ty·sinθ)

    (9)

    YL=XT(Sx·sinθ)+YT(Sy·cosθ)+
    (Tx·sinθ+Ty·cosθ)

    (10)

    在式(9)、式(10)中,顯示屏上的坐標(biāo)(XL,YL)和觸摸屏上的坐標(biāo)(XT,YT)是已知的,而其它參數(shù)則是需要求解的:θ,Sx,Sy,Tx,Ty,共有5個變量。為了簡化運算,將式(9)、式(10)變?yōu)槭?11)、式(12)。其中A、B、C、H、E、F為待求解的校準(zhǔn)參數(shù),在式(11)、式(12)中雖然增加了未知變量,但是避免了三角函數(shù)運算,計算更簡便

    XL=A·XT+B·YT+C

    (11)

    YL=H·XT+E·YT+F

    (12)

    其中,(XL,YL)是屏幕顯示點坐標(biāo),(XT,YT)是觸摸點坐標(biāo)。至此,觸摸屏校準(zhǔn)過程就是求解A、B、C、H、E、F參數(shù)的過程。

    將式(11)乘以常量XTi, 或YTi后,再執(zhí)行求和運算等價變換為式(13)~式(15)這3個表達(dá)式。n表示觸摸點數(shù)量。 (XTi,YTi) 表示第i個觸摸點的絕對坐標(biāo),(XLi,YLi) 表示第i個觸摸點對應(yīng)的屏幕顯示坐標(biāo)

    (13)

    (14)

    (15)

    上述3個方程式中,A、B、C可以作為待求解的未知數(shù),獲取到的每個觸摸點 (XTi,YTi) 與顯示標(biāo)準(zhǔn)點 (XLi,YLi) 的坐標(biāo)為已知數(shù),n表示坐標(biāo)點的數(shù)量,它可以是任意值,但是采集點過少會影響計算參數(shù)精度,過多又會冗余,且增加了計算時間。根據(jù)實驗室驗證值,得出n=5,具有較好的表現(xiàn)。

    依據(jù)克萊姆法則,通過計算上述3個方程式對應(yīng)的行列式,來求解A、B、C。其中

    A=D0/D

    (16)

    B=D1/D

    (17)

    C=D2/D

    (18)

    上述式(16)~式(18)中,D為式(13)~式(15)方程式等號右側(cè)已知數(shù)系數(shù)構(gòu)成的行列式;Di是把D中第i列元素對應(yīng)地?fù)Q成式(13)~式(15)方程式等號左側(cè)常數(shù)項而其余列保持不變所得到的行列式

    (19)

    (20)

    (21)

    (22)

    同理可以計算得到H、E、F參數(shù)。這樣根據(jù)式(11)、式(12),就可以將觸摸點坐標(biāo) (XT,YT) 通過A、B、C、H、E、F參數(shù)運算后,轉(zhuǎn)換成屏幕上的顯示坐標(biāo) (XL,YL)。

    程序初始化時,用戶自定義了n(n=5)個用于校準(zhǔn)的顯示點坐標(biāo) (XLi,YLi), 在本文3.3節(jié)中,使用GetTcData函數(shù)用來采集顯示點坐標(biāo) (XLi,YLi) 對應(yīng)的觸摸點 (XTi,YTi), 通過表1中串口協(xié)議解析獲得顯示點對應(yīng)的觸摸點坐標(biāo) (XTi,YTi), 本文3.3節(jié)中CalGetCoef()函數(shù)的實現(xiàn)就是依據(jù)式(16)~式(22),求解得到式(11)中的參數(shù)A,B,C,同樣也能計算出式(12)中的參數(shù)H,E,F(xiàn)。

    當(dāng)用戶去觸摸屏幕時,觸摸坐標(biāo)點 (XTi,YTi), 就可以通過式(11)、式(12)轉(zhuǎn)換為對應(yīng)的顯示坐標(biāo)點 (XLi,YLi) 供用戶使用。

    將轉(zhuǎn)換的坐標(biāo)點以及從串口中按表1獲取的按鍵狀態(tài)封裝成UGL_MSG消息,通過uglInputMsgPost函數(shù)發(fā)送到消息隊列中,接著應(yīng)用層通過調(diào)用uglInputMsgGet()函數(shù)從缺省的輸入隊列中獲取輸入消息。應(yīng)用層獲取消息后,通過uglInputCbAdd()函數(shù)注冊輸入回調(diào)函數(shù),實現(xiàn)消息響應(yīng),如鼠標(biāo)指針移動、鼠標(biāo)左擊。

    3.4 實現(xiàn)驅(qū)動關(guān)閉函數(shù)

    實現(xiàn)原理:通過low-level輸入驅(qū)動接口close()函數(shù)關(guān)閉觸摸屏控制器RS232串口;釋放內(nèi)存、析構(gòu)相關(guān)參數(shù)。

    UGL_LOCAL UGL_STATUS uglPM6500TsPtrClose (UGL_INPUT_DEV * pDevice)

    {

    if (pDevice != UGL_NULL)

    {

    //調(diào)用low-level層close函數(shù)實現(xiàn)串口關(guān)閉

    close (pDevice->fd);

    UGL_FREE (pDevice);

    }

    return UGL_STATUS_OK;

    }

    在應(yīng)用層,使用顯示端對應(yīng)的輸入服務(wù)(input server)找到關(guān)聯(lián)的輸入設(shè)備ID,然后將輸入設(shè)備ID作為參數(shù),通過調(diào)用UGL_STATUSuglInputDevClose(UGL_INPUT_DEV_ID inDevId),實現(xiàn)對uglPM6500TsPtrClose驅(qū)動函數(shù)調(diào)用。

    3.5 創(chuàng)建一個驅(qū)動配置數(shù)據(jù)庫

    驅(qū)動功能實現(xiàn)后,需要創(chuàng)建一個驅(qū)動配置數(shù)據(jù)庫,供用戶在Wind River Workbench 3.2工程下通過WindML選擇需要配置的輸入設(shè)備信息。WindML配置是由一系列數(shù)據(jù)庫控制的,這些數(shù)據(jù)庫文件定義驅(qū)動特征。它們位于“installDircomponentswindml-5.3configwrmdb”目錄下。在Wind River Workbench 3.2工程中的config.windml配置工具會讀取這些數(shù)據(jù)庫文件加載相應(yīng)的信息,用戶可通過下拉列表信息選擇配置對象。

    本文,在“installDircomponentswindml-5.3configwrmdb”目錄下創(chuàng)建windML_PTR_DEVICE_PM6500_TS.wrmdb文件,用于配置PM6500觸摸屏驅(qū)動。配置內(nèi)容如下:

    //設(shè)備名稱

    pm6500ts.NAME="PM6500 Touchscreen Pointer"

    //定義設(shè)備驅(qū)動支持的處理器類型

    pm6500ts.ARCH=&ARMARCH5:&ARMARCH6:&MIPSI2:&MIPSI3:&MIPSI32:&MIPSI64:&I80486:&PENTIUM:&PENTIUM2:&PENTIUM3:&PENTIUM4:&PPC32

    //定義編譯該驅(qū)動時處理器字節(jié)的順序:大端或小端

    pm6500ts.ENDIAN=&le:&be

    //是否支持RTPs

    pm6500ts.RTPENABLED=true

    //指針設(shè)備必須定義的宏定義

    pm6500ts.DEFINE=INCLUDE_UGL_INPUT

    //條件宏定義

    pm6500ts.SELECT=INCLUDE_PM6500_TS_POINTER

    //對應(yīng)的high-level輸入驅(qū)動入口

    pm6500ts.CREATE=uglPM6500TsPtrDriver

    //定義缺省的IO設(shè)備名稱

    pm6500ts.DEVNAME=/tyCo/1

    //對應(yīng)的low-level輸入驅(qū)動入口及參數(shù)(缺省為系統(tǒng)自帶IO驅(qū)動)

    pm6500ts.IODRV=/*缺省狀態(tài), 默認(rèn)使用系統(tǒng)自帶16550串口驅(qū)動*/

    pm6500ts.IODRV_PARAM1=0

    pm6500ts.IODRV_PARAM2=0

    4 實驗與分析

    4.1 觸摸屏驅(qū)動使用方法

    本文第3章實現(xiàn)了觸摸屏驅(qū)動,那么應(yīng)用層就可以通過調(diào)用WindML標(biāo)準(zhǔn)函數(shù)實現(xiàn)觸摸屏操控。在應(yīng)用層,用戶通過配置WindML驅(qū)動庫,實現(xiàn)用戶定制的顯示端配置,包括顯示界面驅(qū)動、輸入設(shè)備驅(qū)動、顯示字體驅(qū)動等配置。

    Wind River Workbench 3.2軟件是開發(fā)VxWorks6.8操作系統(tǒng)下軟件的開發(fā)環(huán)境,在Wind River Workbench 3.2開發(fā)環(huán)境下,建立基于Media Libray 5.3組件的配置工程“VxWorks Downloadable Kernel Module Project”。在生成的工程中,在配置信息文件config.windml中對輸入設(shè)備進(jìn)行配置,配置為本文設(shè)計的觸摸屏驅(qū)動,配置內(nèi)容如下:Device=PM6500 Touchscreen Pointer;Device Name=/tyCo/1。這些參數(shù)的選擇均來自于本文第3.5節(jié)驅(qū)動配置數(shù)據(jù)庫,windML_PTR_DEVICE_PM6500_TS.wrmdb。

    顯示終端配置完成后,編譯該工程,生成相應(yīng)Wind Media Libray組件。

    用戶新建應(yīng)用工程后,需要在應(yīng)用工程中添加使用觸摸屏驅(qū)動的組件。

    包含Wind Media Libray組件如下:INCLUDE_WINDML、INCLUDE_WINDML_NECESSARY;

    包含一個圖像組件:INCLUDE_PCI_WINDML_GRAPHICS;

    包含一個識別設(shè)備映射方法:INCLUDE_WINDML_GRAPHICS_SHARED_DATA或 INCLUDE_WINDML_GRAPHICS_NO_SHARED_DATA。

    添加完成后,編譯該應(yīng)用工程使WindML組件在該工程中生效。自此,用戶可以在應(yīng)用程序中調(diào)用WindML標(biāo)準(zhǔn)函數(shù)實現(xiàn)觸摸可控及觸摸校準(zhǔn)等應(yīng)用功能。

    4.2 驅(qū)動軟件測試

    為了驗證觸摸屏驅(qū)動的正確性和觸摸屏校準(zhǔn)算法的有效性,本文設(shè)計了測試用例進(jìn)行評估。用例中設(shè)計了10個不同大小的正方形按鈕,大小從10像素*10像素,20像素*20像素,……100像素*100像素依次遞增10個像素構(gòu)成10個按鈕,按鈕經(jīng)編號后隨機分布在全屏幕,顯示屏幕像素為1024*768。

    根據(jù)人為對觸摸屏與鼠標(biāo)點擊按鈕的響應(yīng)靈敏度對比結(jié)果作為評估標(biāo)準(zhǔn)。由5人操作體驗進(jìn)行主觀評測。

    同一個按鈕用觸摸屏和用鼠標(biāo)點擊主觀靈敏度響應(yīng)對比分4個等級:觸摸按鈕沒有按下響應(yīng)計0分,觸摸屏響應(yīng)靈敏小于鼠標(biāo),計1分,觸摸屏響應(yīng)和鼠標(biāo)相近,計2分,觸摸屏響應(yīng)靈敏大于鼠標(biāo),計3分。每個按鈕點擊操作完成后,將5人的累計得分作為最終評測得分,若每個按鈕響應(yīng)對比累計分?jǐn)?shù)大于等于10分以上,說明觸摸屏靈敏度幾乎與鼠標(biāo)接近,甚至優(yōu)于鼠標(biāo),若分?jǐn)?shù)小于5分,說明觸摸屏響應(yīng)錯誤,若分?jǐn)?shù)在5分與10分間,說明觸摸屏靈敏度弱于鼠標(biāo)。

    驗證過程中,觸摸屏按鈕響應(yīng)正常,無響應(yīng)失效發(fā)生,計算機運行良好。評估結(jié)果見表2,可以明顯看出觸摸屏響應(yīng)靈敏度和鼠標(biāo)響應(yīng)靈敏度接近。進(jìn)一步驗證了本文設(shè)計的觸摸屏驅(qū)動的正確以及校準(zhǔn)算法的有效性。

    5 結(jié)束語

    本文討論了VxWorks操作系統(tǒng)下WindML實現(xiàn)輸入設(shè)備驅(qū)動的原理,詳細(xì)設(shè)計了觸摸屏驅(qū)動以及校準(zhǔn)算法。在Wind River Workbench 3.2開發(fā)環(huán)境下設(shè)計了按鈕響應(yīng)程序,通過實驗評估,驗證了本文實現(xiàn)的觸摸屏驅(qū)動及校準(zhǔn)功能在用戶體驗上的及時性和準(zhǔn)確性方面與鼠標(biāo)響應(yīng)幾乎無差別。本文實現(xiàn)的觸摸屏驅(qū)動擴展了用戶對輸入設(shè)備的使用,封裝成的觸摸屏驅(qū)動組件也豐富了WindML庫的種類,為用戶直接使用提供了便利。

    猜你喜歡
    設(shè)備
    諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
    調(diào)試新設(shè)備
    基于VB6.0+Access2010開發(fā)的設(shè)備管理信息系統(tǒng)
    基于MPU6050簡單控制設(shè)備
    電子制作(2018年11期)2018-08-04 03:26:08
    廣播發(fā)射設(shè)備中平衡輸入與不平衡輸入的轉(zhuǎn)換
    電子制作(2018年10期)2018-08-04 03:24:48
    食之無味,棄之可惜 那些槽點滿滿的可穿戴智能設(shè)備
    500kV輸變電設(shè)備運行維護探討
    HTC斥資千萬美元入股虛擬現(xiàn)實設(shè)備商WEVR
    IT時代周刊(2015年8期)2015-11-11 05:50:37
    Automechanika Shanghai 2014 之“看” 汽保設(shè)備篇
    如何在設(shè)備采購中節(jié)省成本
    99香蕉大伊视频| 亚洲中文av在线| 亚洲七黄色美女视频| 最黄视频免费看| 国产一区二区 视频在线| 国产老妇伦熟女老妇高清| 在线观看人妻少妇| 精品国产乱码久久久久久男人| 一进一出抽搐动态| 午夜福利视频精品| 人人妻,人人澡人人爽秒播| 19禁男女啪啪无遮挡网站| 一区二区三区精品91| 男女高潮啪啪啪动态图| 丰满饥渴人妻一区二区三| 国产av一区二区精品久久| 亚洲av日韩在线播放| 首页视频小说图片口味搜索| 久久久久网色| 人妻 亚洲 视频| 在线看a的网站| 亚洲第一欧美日韩一区二区三区 | 一进一出好大好爽视频| 成年人黄色毛片网站| 欧美久久黑人一区二区| 在线观看www视频免费| 亚洲视频免费观看视频| 最新的欧美精品一区二区| 国产精品 欧美亚洲| 国产精品久久久久久精品电影小说| 国产精品久久久av美女十八| 国产有黄有色有爽视频| 欧美黄色淫秽网站| 久久久久网色| kizo精华| 久久香蕉激情| 国产精品电影一区二区三区 | 久久久久精品人妻al黑| 欧美日韩一级在线毛片| 黑人操中国人逼视频| 丝瓜视频免费看黄片| 国产一区二区激情短视频| 午夜精品久久久久久毛片777| 久久人人爽av亚洲精品天堂| 免费在线观看影片大全网站| 国产精品自产拍在线观看55亚洲 | 欧美日韩亚洲国产一区二区在线观看 | av又黄又爽大尺度在线免费看| av电影中文网址| 久久精品国产a三级三级三级| 岛国毛片在线播放| 国产成人免费观看mmmm| 777久久人妻少妇嫩草av网站| 日韩精品免费视频一区二区三区| 超色免费av| 欧美久久黑人一区二区| 韩国精品一区二区三区| 亚洲精品中文字幕一二三四区 | 一本一本久久a久久精品综合妖精| 免费人妻精品一区二区三区视频| 国产1区2区3区精品| 三上悠亚av全集在线观看| 国产一区二区三区综合在线观看| 老司机午夜十八禁免费视频| 99国产精品一区二区三区| 国产xxxxx性猛交| 大型av网站在线播放| 亚洲精品国产一区二区精华液| 亚洲一区中文字幕在线| 久久久欧美国产精品| 久久天躁狠狠躁夜夜2o2o| 一级毛片电影观看| 亚洲精品中文字幕在线视频| 欧美激情极品国产一区二区三区| 成人国语在线视频| 国产精品1区2区在线观看. | 肉色欧美久久久久久久蜜桃| 午夜激情久久久久久久| 亚洲精品在线美女| 在线天堂中文资源库| 99久久国产精品久久久| 我要看黄色一级片免费的| 日本欧美视频一区| 欧美乱码精品一区二区三区| 91成人精品电影| 18禁美女被吸乳视频| 大片电影免费在线观看免费| 在线观看免费视频日本深夜| 日韩三级视频一区二区三区| e午夜精品久久久久久久| 欧美 亚洲 国产 日韩一| 精品视频人人做人人爽| 亚洲色图 男人天堂 中文字幕| 99精品在免费线老司机午夜| 久久精品国产a三级三级三级| 久久中文字幕人妻熟女| 老司机午夜十八禁免费视频| 777久久人妻少妇嫩草av网站| 热99久久久久精品小说推荐| 别揉我奶头~嗯~啊~动态视频| 免费一级毛片在线播放高清视频 | 亚洲欧美日韩另类电影网站| 午夜福利乱码中文字幕| 亚洲人成电影观看| 亚洲国产欧美网| 亚洲成人免费av在线播放| 香蕉丝袜av| 亚洲综合色网址| 欧美日韩精品网址| www.999成人在线观看| 人人妻人人澡人人看| 欧美日韩国产mv在线观看视频| 欧美av亚洲av综合av国产av| 黄片大片在线免费观看| 久久精品国产综合久久久| 少妇精品久久久久久久| 国产精品偷伦视频观看了| av国产精品久久久久影院| 久久精品国产a三级三级三级| 国产亚洲精品久久久久5区| 2018国产大陆天天弄谢| 欧美日韩亚洲高清精品| 国内毛片毛片毛片毛片毛片| 91大片在线观看| 国产成人欧美| 狠狠狠狠99中文字幕| 男女高潮啪啪啪动态图| 亚洲 国产 在线| 精品国产乱码久久久久久男人| 久久久国产一区二区| 欧美成人午夜精品| 99国产综合亚洲精品| 欧美一级毛片孕妇| 久久婷婷成人综合色麻豆| 国产一区二区三区在线臀色熟女 | 免费不卡黄色视频| 一边摸一边做爽爽视频免费| 俄罗斯特黄特色一大片| 最近最新中文字幕大全电影3 | 国产主播在线观看一区二区| 欧美精品一区二区免费开放| 不卡av一区二区三区| 另类亚洲欧美激情| 99热国产这里只有精品6| 一区二区三区乱码不卡18| 国产不卡一卡二| 汤姆久久久久久久影院中文字幕| 久久青草综合色| 精品亚洲成a人片在线观看| 欧美精品人与动牲交sv欧美| 成人精品一区二区免费| 80岁老熟妇乱子伦牲交| aaaaa片日本免费| 手机成人av网站| 男女床上黄色一级片免费看| 精品午夜福利视频在线观看一区 | 亚洲av欧美aⅴ国产| 国产成人av激情在线播放| 乱人伦中国视频| 国产免费福利视频在线观看| 啦啦啦中文免费视频观看日本| 在线观看人妻少妇| 国产熟女午夜一区二区三区| 中文字幕精品免费在线观看视频| 国产欧美日韩精品亚洲av| 亚洲免费av在线视频| 亚洲欧美日韩另类电影网站| 欧美激情高清一区二区三区| 欧美久久黑人一区二区| 精品一区二区三区视频在线观看免费 | 亚洲精品乱久久久久久| 国产黄色免费在线视频| 免费av中文字幕在线| 精品国产亚洲在线| 国产伦理片在线播放av一区| 亚洲国产精品一区二区三区在线| 欧美乱妇无乱码| 怎么达到女性高潮| 亚洲精品中文字幕在线视频| 美女高潮喷水抽搐中文字幕| 久久中文字幕人妻熟女| 亚洲人成电影观看| 国产亚洲欧美精品永久| 男女高潮啪啪啪动态图| 大码成人一级视频| 亚洲色图av天堂| 久久毛片免费看一区二区三区| 男女无遮挡免费网站观看| 男女下面插进去视频免费观看| av又黄又爽大尺度在线免费看| 真人做人爱边吃奶动态| 侵犯人妻中文字幕一二三四区| 久久狼人影院| 免费观看人在逋| 日本撒尿小便嘘嘘汇集6| 99九九在线精品视频| 嫩草影视91久久| 色94色欧美一区二区| 国产精品偷伦视频观看了| 久久ye,这里只有精品| 在线观看66精品国产| 午夜福利欧美成人| 狠狠狠狠99中文字幕| 一级片'在线观看视频| 国产精品国产高清国产av | 欧美黑人精品巨大| 亚洲一码二码三码区别大吗| 成人三级做爰电影| 五月天丁香电影| 国产一区有黄有色的免费视频| 99热国产这里只有精品6| 国产免费视频播放在线视频| 免费少妇av软件| 久9热在线精品视频| 91九色精品人成在线观看| 亚洲成人免费av在线播放| 国产精品九九99| 亚洲 国产 在线| 日韩熟女老妇一区二区性免费视频| 性少妇av在线| 热99国产精品久久久久久7| 少妇精品久久久久久久| 天堂中文最新版在线下载| 777米奇影视久久| 一级黄色大片毛片| 女人久久www免费人成看片| 精品欧美一区二区三区在线| 一边摸一边做爽爽视频免费| 国产精品一区二区在线观看99| 国产成人免费观看mmmm| 两性午夜刺激爽爽歪歪视频在线观看 | av视频免费观看在线观看| 亚洲国产欧美一区二区综合| 高清av免费在线| 国产亚洲精品一区二区www | 午夜免费成人在线视频| 成在线人永久免费视频| 成人国产av品久久久| 久久精品aⅴ一区二区三区四区| 日韩人妻精品一区2区三区| 黑人猛操日本美女一级片| 在线 av 中文字幕| 亚洲精品久久成人aⅴ小说| 国产黄色免费在线视频| 99精品在免费线老司机午夜| 日韩免费av在线播放| 国产成人精品久久二区二区91| 国产免费视频播放在线视频| 久久久久精品人妻al黑| 成人影院久久| 国产高清激情床上av| 亚洲人成伊人成综合网2020| 国产欧美日韩一区二区三区在线| 日本av免费视频播放| 下体分泌物呈黄色| 在线看a的网站| 亚洲中文日韩欧美视频| 亚洲精品国产精品久久久不卡| www.熟女人妻精品国产| 啦啦啦免费观看视频1| 99久久国产精品久久久| 国产精品久久久久久精品古装| 亚洲av欧美aⅴ国产| 亚洲欧美一区二区三区久久| 久久精品人人爽人人爽视色| 久久久久久久久免费视频了| 日韩 欧美 亚洲 中文字幕| 女警被强在线播放| 免费在线观看影片大全网站| tocl精华| 精品国产超薄肉色丝袜足j| 满18在线观看网站| 中文字幕精品免费在线观看视频| 99精国产麻豆久久婷婷| 侵犯人妻中文字幕一二三四区| 岛国毛片在线播放| 黄色怎么调成土黄色| 久久精品aⅴ一区二区三区四区| e午夜精品久久久久久久| 免费在线观看影片大全网站| 国产av又大| 亚洲色图av天堂| 精品国产乱码久久久久久男人| 国产精品电影一区二区三区 | 久久亚洲真实| 脱女人内裤的视频| 一个人免费看片子| 国产精品一区二区精品视频观看| 在线观看一区二区三区激情| 91av网站免费观看| www.熟女人妻精品国产| 婷婷成人精品国产| 精品久久久久久久毛片微露脸| 亚洲成a人片在线一区二区| 精品卡一卡二卡四卡免费| 韩国精品一区二区三区| 叶爱在线成人免费视频播放| www.精华液| 超碰97精品在线观看| 精品久久久久久久毛片微露脸| 少妇的丰满在线观看| 少妇 在线观看| 久久中文看片网| 99精品久久久久人妻精品| 一本久久精品| 成年动漫av网址| 两性夫妻黄色片| 丰满少妇做爰视频| 一区二区日韩欧美中文字幕| 美女主播在线视频| 美国免费a级毛片| 久久精品国产亚洲av香蕉五月 | 男人操女人黄网站| 国产精品99久久99久久久不卡| 国产伦理片在线播放av一区| 中文字幕色久视频| 日韩欧美国产一区二区入口| 久久久久国内视频| 久久精品国产综合久久久| 亚洲av日韩精品久久久久久密| 50天的宝宝边吃奶边哭怎么回事| 亚洲成人国产一区在线观看| 成人影院久久| 久久精品国产亚洲av香蕉五月 | 亚洲精品一卡2卡三卡4卡5卡| 狠狠狠狠99中文字幕| av电影中文网址| 久久国产精品大桥未久av| 久久国产亚洲av麻豆专区| 精品人妻熟女毛片av久久网站| 两个人看的免费小视频| 免费在线观看完整版高清| 国产片内射在线| 一区二区日韩欧美中文字幕| 国产片内射在线| 久久久精品免费免费高清| 国产亚洲欧美精品永久| 精品一品国产午夜福利视频| 一级毛片电影观看| 国产91精品成人一区二区三区 | 十八禁网站免费在线| 精品第一国产精品| 91精品三级在线观看| 欧美久久黑人一区二区| 十八禁网站网址无遮挡| 中文字幕av电影在线播放| 久久久水蜜桃国产精品网| 久久国产精品人妻蜜桃| 午夜福利,免费看| 最新美女视频免费是黄的| 久久天堂一区二区三区四区| 久久热在线av| 日本黄色日本黄色录像| 少妇猛男粗大的猛烈进出视频| 99在线人妻在线中文字幕 | 欧美日韩视频精品一区| 少妇粗大呻吟视频| 国产精品美女特级片免费视频播放器 | 男女下面插进去视频免费观看| 亚洲va日本ⅴa欧美va伊人久久| 中文字幕人妻丝袜制服| 五月天丁香电影| 国产成人精品久久二区二区91| 在线 av 中文字幕| 色精品久久人妻99蜜桃| 亚洲中文字幕日韩| 最新的欧美精品一区二区| 国产亚洲av高清不卡| 最新的欧美精品一区二区| 日韩一区二区三区影片| 青草久久国产| 12—13女人毛片做爰片一| 免费观看a级毛片全部| 免费在线观看影片大全网站| 国产成人一区二区三区免费视频网站| 免费看a级黄色片| 国产区一区二久久| 巨乳人妻的诱惑在线观看| 自拍欧美九色日韩亚洲蝌蚪91| 亚洲欧美色中文字幕在线| 精品欧美一区二区三区在线| 一区二区日韩欧美中文字幕| 丰满迷人的少妇在线观看| 高清视频免费观看一区二区| 黄色毛片三级朝国网站| 极品教师在线免费播放| 不卡av一区二区三区| 满18在线观看网站| 少妇 在线观看| 欧美日韩成人在线一区二区| 飞空精品影院首页| 极品人妻少妇av视频| 国产野战对白在线观看| 色综合欧美亚洲国产小说| 在线观看免费视频网站a站| 丰满人妻熟妇乱又伦精品不卡| 久久久欧美国产精品| 国产日韩一区二区三区精品不卡| 久久久水蜜桃国产精品网| 91精品国产国语对白视频| 亚洲av日韩精品久久久久久密| 精品卡一卡二卡四卡免费| 亚洲九九香蕉| 成年人午夜在线观看视频| 日韩人妻精品一区2区三区| 国产精品免费视频内射| 久久午夜亚洲精品久久| 亚洲av成人不卡在线观看播放网| 成年女人毛片免费观看观看9 | 9191精品国产免费久久| 久久久国产精品麻豆| 精品国产国语对白av| 少妇裸体淫交视频免费看高清 | av天堂久久9| 国产精品二区激情视频| 国产成人精品久久二区二区免费| 性色av乱码一区二区三区2| a级毛片黄视频| 亚洲精华国产精华精| 亚洲精品成人av观看孕妇| 香蕉国产在线看| 12—13女人毛片做爰片一| 精品国产一区二区久久| 日本欧美视频一区| 啦啦啦 在线观看视频| 久久热在线av| 成年人免费黄色播放视频| 热re99久久国产66热| 中文字幕人妻丝袜制服| 九色亚洲精品在线播放| 成人黄色视频免费在线看| 好男人电影高清在线观看| 亚洲免费av在线视频| 日韩 欧美 亚洲 中文字幕| 久久久精品94久久精品| 十八禁网站网址无遮挡| 欧美乱码精品一区二区三区| 精品福利永久在线观看| 不卡一级毛片| aaaaa片日本免费| 国产真人三级小视频在线观看| 一级毛片电影观看| 亚洲熟妇熟女久久| 一本大道久久a久久精品| 精品福利永久在线观看| 超碰97精品在线观看| 99久久国产精品久久久| 国产真人三级小视频在线观看| 久久久久精品国产欧美久久久| 一二三四社区在线视频社区8| 国产aⅴ精品一区二区三区波| h视频一区二区三区| 久久精品国产99精品国产亚洲性色 | 国产激情久久老熟女| 亚洲精品国产区一区二| av超薄肉色丝袜交足视频| 免费一级毛片在线播放高清视频 | 成在线人永久免费视频| 黄色怎么调成土黄色| 国产在线观看jvid| 如日韩欧美国产精品一区二区三区| 午夜日韩欧美国产| 亚洲男人天堂网一区| 午夜成年电影在线免费观看| 国产亚洲精品第一综合不卡| 在线观看免费午夜福利视频| 黄色视频在线播放观看不卡| 99国产综合亚洲精品| 久久99热这里只频精品6学生| 日韩成人在线观看一区二区三区| 国产精品美女特级片免费视频播放器 | 日本黄色日本黄色录像| 夜夜骑夜夜射夜夜干| 一级,二级,三级黄色视频| 黄色 视频免费看| av片东京热男人的天堂| 日韩欧美一区二区三区在线观看 | 岛国在线观看网站| 一区二区三区精品91| 韩国精品一区二区三区| 国产激情久久老熟女| 亚洲成av片中文字幕在线观看| 9191精品国产免费久久| 男女边摸边吃奶| 在线亚洲精品国产二区图片欧美| 婷婷丁香在线五月| 99精品欧美一区二区三区四区| 9191精品国产免费久久| 最近最新免费中文字幕在线| 亚洲专区中文字幕在线| 欧美成人免费av一区二区三区 | 国产精品av久久久久免费| 777久久人妻少妇嫩草av网站| 国产欧美日韩一区二区精品| 欧美精品高潮呻吟av久久| 国产高清国产精品国产三级| 亚洲人成77777在线视频| 老司机在亚洲福利影院| 精品熟女少妇八av免费久了| 国产真人三级小视频在线观看| 国产精品一区二区免费欧美| 丝袜美腿诱惑在线| 黄网站色视频无遮挡免费观看| 精品一区二区三区四区五区乱码| 久久精品国产亚洲av香蕉五月 | 乱人伦中国视频| 法律面前人人平等表现在哪些方面| 欧美日本中文国产一区发布| 成人永久免费在线观看视频 | 成人国产一区最新在线观看| 法律面前人人平等表现在哪些方面| 久久久水蜜桃国产精品网| 欧美国产精品va在线观看不卡| 青草久久国产| 国产一区有黄有色的免费视频| 9色porny在线观看| 中文字幕人妻丝袜制服| 国产无遮挡羞羞视频在线观看| 十分钟在线观看高清视频www| 精品一品国产午夜福利视频| 国产精品一区二区在线不卡| 久久久国产精品麻豆| 午夜激情av网站| 操出白浆在线播放| av线在线观看网站| 正在播放国产对白刺激| 大陆偷拍与自拍| 久久国产精品影院| 免费不卡黄色视频| 国产精品免费一区二区三区在线 | 国产日韩欧美视频二区| 国产成人免费观看mmmm| 久久av网站| 无限看片的www在线观看| 成人手机av| 国产成人系列免费观看| 淫妇啪啪啪对白视频| 狠狠婷婷综合久久久久久88av| 丰满饥渴人妻一区二区三| 首页视频小说图片口味搜索| 亚洲久久久国产精品| 99国产精品一区二区三区| 亚洲熟女精品中文字幕| 少妇精品久久久久久久| xxxhd国产人妻xxx| cao死你这个sao货| 嫩草影视91久久| 久久久久精品国产欧美久久久| 黑丝袜美女国产一区| 亚洲成人免费电影在线观看| 一本色道久久久久久精品综合| 欧美黑人欧美精品刺激| 757午夜福利合集在线观看| 中文字幕人妻熟女乱码| 久久亚洲精品不卡| 9191精品国产免费久久| 亚洲五月婷婷丁香| 日本欧美视频一区| 国产1区2区3区精品| 色精品久久人妻99蜜桃| 免费看a级黄色片| 久久人人爽av亚洲精品天堂| 狠狠狠狠99中文字幕| 纯流量卡能插随身wifi吗| 国产精品欧美亚洲77777| 日韩视频一区二区在线观看| 动漫黄色视频在线观看| 大码成人一级视频| 国产三级黄色录像| 女同久久另类99精品国产91| 一本—道久久a久久精品蜜桃钙片| 人妻一区二区av| 在线十欧美十亚洲十日本专区| 在线观看免费午夜福利视频| 日韩欧美一区二区三区在线观看 | 在线观看免费视频日本深夜| 首页视频小说图片口味搜索| 亚洲精品美女久久av网站| 黄色视频在线播放观看不卡| 亚洲伊人久久精品综合| 欧美黄色片欧美黄色片| 欧美激情久久久久久爽电影 | 亚洲精品久久成人aⅴ小说| 色综合婷婷激情| 久久亚洲真实| www.自偷自拍.com| 两个人看的免费小视频| 亚洲欧美一区二区三区黑人| 在线亚洲精品国产二区图片欧美| av一本久久久久| 久久人妻熟女aⅴ| 国产高清视频在线播放一区| 久久久久精品国产欧美久久久| 91av网站免费观看| 丝袜在线中文字幕| 免费久久久久久久精品成人欧美视频| 色94色欧美一区二区| 久久久精品区二区三区| 成人三级做爰电影| 久久久久精品人妻al黑| 在线观看66精品国产| 亚洲免费av在线视频| 成年人免费黄色播放视频| 一级黄色大片毛片| 中文字幕色久视频| 久久久国产精品麻豆| 精品一区二区三区视频在线观看免费 | 人妻一区二区av| 曰老女人黄片| 夜夜夜夜夜久久久久| 啦啦啦 在线观看视频| 国产视频一区二区在线看| 亚洲综合色网址| 黑丝袜美女国产一区| 飞空精品影院首页|