在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

拓普微智能液晶顯示模塊HMI自定義通信協(xié)議

Topway_LCD ? 2021-12-09 14:01 ? 次閱讀

一. HMI與通訊協(xié)議

隨著工業(yè)技術(shù)的發(fā)展,HMI(人機(jī)界面)的應(yīng)用領(lǐng)域愈加廣泛。通過(guò)拓普微的智能液晶顯示模塊實(shí)現(xiàn)的自定義通信協(xié)議能在一定程度上維護(hù)企業(yè)的數(shù)據(jù)隱秘性,提升產(chǎn)品功能的多樣性,并且能夠解決企業(yè)通信協(xié)議不兼容問(wèn)題。

HMI的串口通信規(guī)則,除了標(biāo)準(zhǔn)Modbus協(xié)議產(chǎn)品,大多都是根據(jù)原廠制定的協(xié)議規(guī)則進(jìn)行。然而許多企業(yè)也有其各自的通信規(guī)則及報(bào)文格式,在配套使用HMI開發(fā)應(yīng)用時(shí),企業(yè)希望保留或使用自己的功能特性和數(shù)據(jù)交互規(guī)則,用以匹配自己協(xié)議的應(yīng)用開發(fā)。

基于此,拓普微的HMI串口屏有一套較為成熟的設(shè)計(jì)方案。本文將介紹智能顯示模塊HMT050DTA-D如何基于LUA腳本設(shè)計(jì)實(shí)現(xiàn),在原廠提供的庫(kù)函數(shù)中,有開放串口控制類的API,通過(guò)這些API函數(shù)能夠?qū)崿F(xiàn)企業(yè)的自定義通信協(xié)議設(shè)計(jì)。

二. 自定義通訊協(xié)議

此次設(shè)計(jì)將通過(guò)拓普微的智能液晶屏HMI的串口,配合LUA程序,應(yīng)用串口控制類API,實(shí)現(xiàn)目標(biāo)協(xié)議通信功能。

HMI串口通信協(xié)議,常見的報(bào)文格式一般由“幀頭”、“長(zhǎng)度碼”、“功能碼”、“參數(shù)數(shù)據(jù)信息”、“幀尾”、“校驗(yàn)碼”幾個(gè)部分組成。通信過(guò)程中,系統(tǒng)將實(shí)時(shí)查詢串口的數(shù)據(jù)接收,獲取符合協(xié)議的報(bào)文數(shù)據(jù),執(zhí)行規(guī)定的指令功能。

如下“表2-1:自定義協(xié)議通信報(bào)文格式”,定義了一種常見的通信報(bào)文格式。(硬件串口參數(shù)說(shuō)明:波特率“115200”;數(shù)據(jù)位“8”;停止位“1”;校驗(yàn)如下表)

?

表2-1:自定義協(xié)議通信報(bào)文格式

*1. 指令長(zhǎng)度碼,計(jì)算“命令碼”到“校驗(yàn)碼”中所有數(shù)據(jù)的字節(jié)總數(shù)。
*2. 指令地址、數(shù)據(jù)、參數(shù)信息,是多字節(jié)數(shù)據(jù),數(shù)據(jù)都是高位在前,低位在后。
*3. 指令校驗(yàn)碼,計(jì)算“幀頭”到“幀尾”中所有的數(shù)據(jù)的ModbusCRC-16校驗(yàn)。

三. 功能需求分析

1. HMI原通信協(xié)議屏蔽

目前使用的型號(hào)HMT050DTA-D默認(rèn)是TOPWAY協(xié)議通信的,存在指令錯(cuò)誤碼回復(fù)機(jī)制。因此在自定義協(xié)議通信過(guò)程中,如果沒(méi)有屏蔽原協(xié)議,可能會(huì)存在串口占用,回復(fù)數(shù)據(jù)混亂的情況。所以在設(shè)計(jì)自己協(xié)議通信時(shí)首先要把原廠的協(xié)議屏蔽,避免數(shù)據(jù)沖突。

2. 接收指令數(shù)據(jù)處理與解析回復(fù)

獲取串口數(shù)據(jù)后,需要提取符合自定義協(xié)議規(guī)則的指令以便后續(xù)對(duì)指令進(jìn)行解析并執(zhí)行指令功能。因此需要定義接收指令數(shù)組,用以存儲(chǔ)串口中符合協(xié)議規(guī)則的指令數(shù)據(jù)。

協(xié)議通信中,也存在指令回復(fù)功能,比如讀取/訪問(wèn)地址數(shù)據(jù)的指令。在解析完接收到的指令后,我們要對(duì)部分指令進(jìn)行響應(yīng),所以需要定義回復(fù)指令數(shù)組,對(duì)讀取/訪問(wèn)操作的指令進(jìn)行回復(fù)。

3. 協(xié)議通信指令功能要求

在LUA程序設(shè)計(jì)中,需要實(shí)現(xiàn)的功能板塊有:①?gòu)拇诮邮諈^(qū)中獲取符合規(guī)定自定義規(guī)則的指令,存儲(chǔ)在接收指令數(shù)組;②調(diào)用接收到的指令數(shù)據(jù),對(duì)指令數(shù)據(jù)進(jìn)行解析;③調(diào)用相應(yīng)的功能處理函數(shù),執(zhí)行指令功能。對(duì)于讀取/訪問(wèn)信息類的指令,還需要操作串口發(fā)送數(shù)據(jù)進(jìn)行回復(fù)。

解析的指令目前主要實(shí)現(xiàn)4功能板塊。①功能碼“0x01”:訪問(wèn)/讀取變量數(shù)據(jù);②功能碼“0x02”:改寫變量數(shù)據(jù);③功能碼“0x03”:工程顯示跳頁(yè);④功能碼“0x04”:屏幕背光亮度控制。主要板塊功能關(guān)系如圖3-1所示。

?


圖3-1 協(xié)議通信主要功能板塊

四. Lua實(shí)現(xiàn)自定義協(xié)議

1. 屏蔽原廠通信協(xié)議

在拓普微提供的LUA庫(kù)函數(shù)中存在TOPWAY協(xié)議禁用函數(shù),可以在程序初始化時(shí)調(diào)用該函數(shù)對(duì)原廠的通信協(xié)議進(jìn)行屏蔽。如圖4-1

?

調(diào)用函數(shù):hmt.bypass(is)
輸入:參數(shù)“is”使能開關(guān)。
使用說(shuō)明:當(dāng)“is=1”時(shí)屏蔽原TOPWAY協(xié)議,“is=0”時(shí)使用TOPWAY協(xié)議。

2. 自定義協(xié)議的數(shù)據(jù)結(jié)構(gòu)

2.1 接收指令數(shù)組

定義數(shù)組:CustProt_recvcmd = {}
類型:全局?jǐn)?shù)組,初始化時(shí)定義。
說(shuō)明:存儲(chǔ)串口接收區(qū)中符合協(xié)議規(guī)則的指令數(shù)據(jù)。接收指令數(shù)據(jù)過(guò)程中,如過(guò)不符合定義的規(guī)則,需清空接收數(shù)組。

2.2 回復(fù)指令數(shù)組

定義數(shù)組:CustProt_sendcmd = {}
類型:全局?jǐn)?shù)組,初始化時(shí)定義。
說(shuō)明:根據(jù)協(xié)議規(guī)則,存儲(chǔ)需要通過(guò)串口進(jìn)行回復(fù)的指令數(shù)據(jù)。發(fā)送完成后清空數(shù)組。


3. 自定義協(xié)議設(shè)計(jì)實(shí)現(xiàn)

LUA程序設(shè)計(jì),主要實(shí)現(xiàn)函數(shù)功能見流程圖4-2。

?

3.1 檢查串口接收區(qū)數(shù)據(jù)

調(diào)用函數(shù):hmt.uartisempty()
輸出:返回“1”時(shí)表示串口接收buf為空;返回“0”時(shí)表示串口接收區(qū)存在數(shù)據(jù)。
使用說(shuō)明:使用該函數(shù)判斷串口接收區(qū)是否存在數(shù)據(jù)。等于0時(shí)再去執(zhí)行指令獲取函數(shù)。

3.2 獲取符合自定義協(xié)議的指令數(shù)據(jù)

構(gòu)造函數(shù):get_CustProtrecvcmd()
輸出:接收指令數(shù)組 CustProt_recvcmd。
說(shuō)明:將符合自定義協(xié)議的指令存儲(chǔ)在全局的接收指令數(shù)組;期間會(huì)對(duì)指令中幀頭、幀尾、長(zhǎng)度碼3種類型的數(shù)據(jù)格式進(jìn)行判斷。不符合自定義協(xié)議時(shí)將清空指令數(shù)組。

調(diào)用函數(shù):hmt.getchar()
輸出:串口接收隊(duì)列的第一個(gè)字節(jié)數(shù)據(jù)。
使用說(shuō)明:在函數(shù)get_CustProtrecvcmd()中,獲取符合自定義協(xié)議指令時(shí)會(huì)頻繁調(diào)用該函數(shù),對(duì)串口接收區(qū)的數(shù)據(jù)進(jìn)行篩選。

3.3 自定義協(xié)議的數(shù)據(jù)檢查及校驗(yàn)

構(gòu)造函數(shù):CmdCheck(CustProt_recvcmd)
輸入:接收指令數(shù)組 CustProt_recvcmd。
說(shuō)明:函數(shù)會(huì)對(duì)接收指令數(shù)組中的數(shù)據(jù)碼和校驗(yàn)碼2個(gè)類型的數(shù)據(jù)格式進(jìn)行判斷。不符合自定義協(xié)議時(shí)將清空指令數(shù)組,回復(fù)錯(cuò)誤碼,并重新開始獲取指令。

3.4 指令數(shù)據(jù)解析

構(gòu)造函數(shù):CmdHandle(CustProt_recvcmd)
輸入:接收指令數(shù)組 CustProt_recvcmd。
說(shuō)明:函數(shù)根據(jù)指令中的功能碼,分類處理指令數(shù)據(jù),如數(shù)字?jǐn)?shù)據(jù)和字符串?dāng)?shù)據(jù)。

3.5 執(zhí)行指令功能

3.5.1 讀變量數(shù)據(jù)功能

構(gòu)造函數(shù):_ReadvariableReturnCmd (Addr)
調(diào)用函數(shù):hmt.readvp16(Addr)\hmt.readvp32(Addr)\hmt.readvpstr(Addr)等。
輸入:自定義協(xié)議中指令的地址數(shù)據(jù)。
說(shuō)明:當(dāng)功能碼為“0x01”時(shí)使用該函數(shù)處理,函數(shù)將根據(jù)指令中的地址類型,分類調(diào)用hmt讀變量函數(shù),讀回?cái)?shù)據(jù)并存儲(chǔ)在回復(fù)指令數(shù)組,最后通過(guò)串口發(fā)送返回。

調(diào)用函數(shù):hmt.putchar(byte)
輸入:指令字節(jié)數(shù)據(jù)。
說(shuō)明:讀取后回復(fù)指令時(shí),會(huì)頻繁調(diào)用該函數(shù),將回復(fù)指令數(shù)組中的數(shù)據(jù)通過(guò)串口發(fā)送。

3.5.2 寫變量數(shù)據(jù)功能

構(gòu)造函數(shù):_Writevariable(addr, value)
_Writevariable1(addr, strvalue)
調(diào)用函數(shù):hmt.writevp16(Addr, value)\hmt.writevp32(Addr, value)\hmt.writevpstr(Addr, strvalue)等。
輸入:“Addr”自定義協(xié)議中指令的地址數(shù)據(jù),“value/strvalue”自定義協(xié)議中需要寫入變量的數(shù)字?jǐn)?shù)據(jù)或字符串?dāng)?shù)據(jù)。
說(shuō)明:當(dāng)功能碼為“0x02”時(shí)使用該函數(shù)處理,函數(shù)將根據(jù)指令中的地址類型,分類調(diào)用hmt寫變量函數(shù),將數(shù)字?jǐn)?shù)據(jù)或字符串?dāng)?shù)據(jù)寫入相應(yīng)的變量。

調(diào)用函數(shù):string.char(byte)
輸入:接收自定義指令中的字節(jié)。
輸出:字符數(shù)據(jù)。
使用說(shuō)明:寫入字符串變量時(shí),需要通過(guò)該函數(shù)將數(shù)字指令數(shù)據(jù)轉(zhuǎn)成字符數(shù)據(jù)寫入變量??梢耘浜献址B接符“..”轉(zhuǎn)成字符串?dāng)?shù)據(jù)。

3.5.3 工程跳頁(yè)功能

調(diào)用函數(shù):hmt.changepage(pageid)
輸入:“pageid”自定義協(xié)議中指令的頁(yè)面ID信息。
使用說(shuō)明:當(dāng)功能碼為“0x03”時(shí)使用該函數(shù)處理,CmdHandle中會(huì)處理自定義指令中雙字節(jié)的ID信息為數(shù)字?jǐn)?shù)據(jù),然后將數(shù)字?jǐn)?shù)據(jù)傳入該函數(shù),跳轉(zhuǎn)到指定頁(yè)面。

3.5.4 設(shè)置屏幕背光功能

定義數(shù)組:setBLcmd = {0x5F, 0x00}
類型:局部數(shù)組,在函數(shù)CmdHandle中定義。
說(shuō)明:函數(shù)CmdHandle會(huì)將自定義指令中亮度值傳入數(shù)組setBLcmd的第二個(gè)字節(jié);配合hmt庫(kù)函數(shù)hmt.runcmd(cmdtable, len)使用,用以執(zhí)行內(nèi)部調(diào)光指令。

調(diào)用函數(shù):hmt.runcmd(cmdtable, len)
輸入:“cmdtable”內(nèi)部指令數(shù)組,“l(fā)en”調(diào)用數(shù)組長(zhǎng)度。
使用說(shuō)明:當(dāng)功能碼為“0x04”時(shí)使用該函數(shù)處理,調(diào)用局部數(shù)組setBLcmd,執(zhí)行自定義協(xié)議的調(diào)節(jié)背光功能。

五. 結(jié)語(yǔ)

本文所介紹的使用拓普微智能液晶顯示模塊測(cè)試通信協(xié)議,旨在引出通信協(xié)議實(shí)現(xiàn)的一種思路,因?yàn)?a target="_blank">工業(yè)控制、物聯(lián)網(wǎng)智能家居、環(huán)境監(jiān)控、數(shù)據(jù)安全等領(lǐng)域,應(yīng)用層的功能設(shè)計(jì)很大程度會(huì)影響甚至決定協(xié)議層的數(shù)據(jù)傳輸格式。

智能顯示模塊HMI的串口自定義協(xié)議通信的實(shí)現(xiàn),用戶可以按照自己的需求靈活設(shè)計(jì)協(xié)議規(guī)則,控制產(chǎn)品實(shí)現(xiàn)期望功能,在一定程度上為應(yīng)用的功能設(shè)計(jì)提供了新的解決方案。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 通信協(xié)議
    +關(guān)注

    關(guān)注

    28

    文章

    1007

    瀏覽量

    40975
  • lcd
    lcd
    +關(guān)注

    關(guān)注

    34

    文章

    4507

    瀏覽量

    170863
  • 液晶屏
    +關(guān)注

    關(guān)注

    18

    文章

    728

    瀏覽量

    43748
  • 串口通信
    +關(guān)注

    關(guān)注

    34

    文章

    1636

    瀏覽量

    56601
  • HMI
    HMI
    +關(guān)注

    關(guān)注

    9

    文章

    631

    瀏覽量

    49742
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    HarmonyOS應(yīng)用自定義鍵盤解決方案

    自定義鍵盤是一種替換系統(tǒng)默認(rèn)鍵盤的解決方案,可實(shí)現(xiàn)鍵盤個(gè)性化交互。允許用戶結(jié)合業(yè)務(wù)需求與操作習(xí)慣,對(duì)按鍵布局進(jìn)行可視化重構(gòu)、設(shè)置多功能組合鍵位,使輸入更加便捷和舒適。在安全防護(hù)層面,自定義鍵盤可以
    的頭像 發(fā)表于 06-05 14:19 ?391次閱讀

    如何添加自定義單板

    在開發(fā)過(guò)程中,用戶有時(shí)需要?jiǎng)?chuàng)建自定義板配置。本節(jié)將通過(guò)一個(gè)實(shí)例講解用戶如何創(chuàng)建屬于自己的machine,下面以g2l-test.conf為例進(jìn)行說(shuō)明。
    的頭像 發(fā)表于 03-12 14:43 ?497次閱讀

    10.1英寸串口屏 高清智能終端串口顯示模塊1365*768分辨率 工業(yè)工控觸摸觸控液晶顯示

    10.1英寸串口屏 1365*768分辨率高清智能終端串口顯示模塊 工業(yè)工控觸摸觸控液晶顯示
    的頭像 發(fā)表于 02-18 16:02 ?414次閱讀
    10.1英寸串口屏 高清<b class='flag-5'>智能</b>終端串口<b class='flag-5'>顯示</b><b class='flag-5'>模塊</b>1365*768分辨率 工業(yè)工控觸摸觸控<b class='flag-5'>液晶顯示</b>器

    如何快速創(chuàng)建用戶自定義Board和App工程

    概述自HPM_SDKv1.7.0發(fā)布開始,在HPM_ENV中新增了user_template文件夾,以方便用戶快速創(chuàng)建自定義的Board和App工程。user_template是用戶模板工程,用戶
    的頭像 發(fā)表于 02-08 13:38 ?420次閱讀
    如何快速創(chuàng)建用戶<b class='flag-5'>自定義</b>Board和App工程

    Altium Designer 15.0自定義元件設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《Altium Designer 15.0自定義元件設(shè)計(jì).pdf》資料免費(fèi)下載
    發(fā)表于 01-21 15:04 ?0次下載
    Altium Designer 15.0<b class='flag-5'>自定義</b>元件設(shè)計(jì)

    自定義Modbus通信塊指令的搭建教程

    和歐姆龍E5EZ的智能溫控儀表作為從站為例,為大家分享如何使用自定義的Modbus RTU的通信程序塊,來(lái)實(shí)現(xiàn)快速高效的Modbus通信程序設(shè)計(jì)。同時(shí)在本文的結(jié)尾會(huì)為大家提供參考程序和
    的頭像 發(fā)表于 01-20 10:37 ?998次閱讀
    <b class='flag-5'>自定義</b>Modbus<b class='flag-5'>通信</b>塊指令的搭建教程

    think-cell:自定義think-cell(四)

    C.5 設(shè)置默認(rèn)議程幻燈片布局 think-cell 議程可以在演示文稿中使用特定的自定義布局來(lái)定義議程、位置和議程幻燈片上的其他形狀,例如標(biāo)題或圖片。通過(guò)將此自定義布局添加到模板,您可以為整個(gè)組織
    的頭像 發(fā)表于 01-13 10:37 ?461次閱讀
    think-cell:<b class='flag-5'>自定義</b>think-cell(四)

    智能語(yǔ)音識(shí)別照明解決方案,平臺(tái)自定義,中英切換

    智能語(yǔ)音識(shí)別照明方案引入NRK3502芯片,支持平臺(tái)自定義,離線控制,中英雙語(yǔ)切換。NRK3502具備高性能和靈活自定義能力,可推動(dòng)智能照明革新,控制其他
    的頭像 發(fā)表于 01-10 13:23 ?375次閱讀
    <b class='flag-5'>智能</b>語(yǔ)音識(shí)別照明解決方案,平臺(tái)<b class='flag-5'>自定義</b>,中英切換

    think-cell;自定義think-cell(一)

    本章介紹如何自定義 think-cell,即如何更改默認(rèn)顏色和其他默認(rèn)屬性;這是通過(guò) think-cell 的樣式文件完成的,這些文件將在前四個(gè)部分中進(jìn)行討論。 第五部分 C.5 設(shè)置默認(rèn)議程幻燈片
    的頭像 發(fā)表于 01-08 11:31 ?639次閱讀
    think-cell;<b class='flag-5'>自定義</b>think-cell(一)

    總線通信協(xié)議解析及應(yīng)用

    在現(xiàn)代計(jì)算機(jī)系統(tǒng)中,總線通信協(xié)議扮演著至關(guān)重要的角色。它們定義了數(shù)據(jù)如何在處理器、內(nèi)存、輸入/輸出設(shè)備等組件之間傳輸。 總線通信協(xié)議的基本概念 總線通信協(xié)議是一組規(guī)則,它規(guī)定了數(shù)據(jù)在系
    的頭像 發(fā)表于 12-31 10:07 ?888次閱讀

    AUTOSAR通信協(xié)議解析 如何實(shí)現(xiàn)AUTOSAR通信

    通信協(xié)議棧是一個(gè)復(fù)雜的系統(tǒng),它涵蓋了多種通信方式和模塊,以實(shí)現(xiàn)車內(nèi)ECU之間的高效、可靠的數(shù)據(jù)交換。以下是對(duì)AUTOSAR通信協(xié)議的解析及實(shí)現(xiàn)AUTOSAR
    的頭像 發(fā)表于 12-17 14:54 ?2531次閱讀

    液晶顯示屏是什么材料做的

    液晶顯示屏(Liquid Crystal Display,簡(jiǎn)稱LCD)是一種廣泛使用的顯示技術(shù),它利用液晶材料的光學(xué)特性來(lái)控制光線的通過(guò),從而實(shí)現(xiàn)圖像的顯示。
    的頭像 發(fā)表于 10-12 10:41 ?3067次閱讀

    PROFINET通信協(xié)議是什么

    PROFINET通信協(xié)議是一種專為工業(yè)自動(dòng)化領(lǐng)域設(shè)計(jì)的基于以太網(wǎng)的實(shí)時(shí)通信協(xié)議。以下是對(duì)PROFINET通信協(xié)議的詳細(xì)解析,包括其定義、特點(diǎn)、體系結(jié)構(gòu)、工作原理、
    的頭像 發(fā)表于 09-25 18:13 ?4698次閱讀

    創(chuàng)建自定義的基于閃存的引導(dǎo)加載程序(BSL)

    電子發(fā)燒友網(wǎng)站提供《創(chuàng)建自定義的基于閃存的引導(dǎo)加載程序(BSL).pdf》資料免費(fèi)下載
    發(fā)表于 09-19 10:50 ?0次下載
    創(chuàng)建<b class='flag-5'>自定義</b>的基于閃存的引導(dǎo)加載程序(BSL)

    NVIDIA NeMo加速并簡(jiǎn)化自定義模型開發(fā)

    如果企業(yè)希望充分發(fā)揮出 AI 的力量,就需要根據(jù)其行業(yè)需求量身定制的自定義模型。
    的頭像 發(fā)表于 07-26 11:17 ?1155次閱讀
    NVIDIA NeMo加速并簡(jiǎn)化<b class='flag-5'>自定義</b>模型開發(fā)
    主站蜘蛛池模板: 播五月婷婷 | www你懂的 | se94se最新网站| 亚洲成人精品 | 午夜一级毛片看看 | 亚洲欧美4444kkkk| 在线种子资源网 | 又色又爽又黄视频 | 日韩三级一区 | 亚洲精品亚洲人成人网 | 人人干人人舔 | 狠狠色噜噜 | 四虎现在的网址入口 | xvideos国产| 欧美猛交xxx呻吟 | 日本三级理论 | 国产免费播放 | 午夜影院在线视频 | 永久免费观看视频 | 四虎网址大全 | 好大好紧好爽好湿润视频 | 天天想夜夜操 | 久久综合婷婷 | 欧美色婷婷天堂网站 | 免费观看的黄色网址 | 一区二区三区中文字幕 | 五月婷婷色网 | 欧美18videosex性欧美1819 | 天天摸天天碰色综合网 | 在线亚洲综合 | 同性同男小说肉黄 | 中文字幕亚洲一区二区v@在线 | 手机看片福利在线 | 国产成人福利夜色影视 | 天天色色色 | 夜夜天天 | 黄色免费小视频 | 国产精品亚洲精品日韩动图 | 黄色大片日本 | 日本色黄 | 婷婷激情四射网 |