99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

基于Arm與Qt的智能車載系統(tǒng)源碼解析:V4L2與超聲波測距的驅(qū)動(dòng)設(shè)計(jì)

基于Arm與Qt的智能車載系統(tǒng)源碼解析:V4L2與超聲波測距的驅(qū)動(dòng)設(shè)計(jì) 簡介面向Arm嵌入式開發(fā)與Qt應(yīng)用學(xué)習(xí)者這份C智能車載系統(tǒng)源碼實(shí)現(xiàn)了天氣預(yù)報(bào)、音視頻播放、倒車?yán)走_(dá)、行車記錄儀及多語言切換等常見車機(jī)模塊。整套代碼共115個(gè)文件包含cpp/h/ui核心源碼、png圖片與gif動(dòng)圖界面素材、m4a/mp3測試音頻、ts/qm國際化翻譯文件、ko驅(qū)動(dòng)模塊及makefile構(gòu)建腳本壓縮包大小26.54MB目錄結(jié)構(gòu)貼近真實(shí)項(xiàng)目便于按模塊查閱。已有468人學(xué)習(xí)下載。從預(yù)覽來看資源覆蓋攝像頭圖像采集與格式轉(zhuǎn)換、超聲波測距驅(qū)動(dòng)、按鍵輸入處理、音樂播放、倒車邏輯及多語言切換等具體實(shí)現(xiàn)讀者可同時(shí)看到底層驅(qū)動(dòng)與上層Qt界面代碼適合課程設(shè)計(jì)、畢業(yè)設(shè)計(jì)或想了解QtLinux車載項(xiàng)目整體搭建的開發(fā)者作為參考。1. 這套車載源碼最值錢的地方不在Qt界面在驅(qū)動(dòng)與界面之間的那條鏈路把C基于Arm和Qt的智能車載系統(tǒng)源碼.zip解壓之后我第一反應(yīng)是它的文件命名相當(dāng)工程化v4l2.c、yuv2bgr.c、sr04_drv.c、key_drv.c這幾個(gè)文件一眼就能看出底層數(shù)據(jù)通路是怎么設(shè)計(jì)的而music.cpp、monitor.cpp、language.cpp又把 Qt 側(cè)的功能切得很干凈。整套源碼解決的是一個(gè)非常典型的嵌入式問題在 Arm 平臺(tái)上讓一塊 LCD 既能跑多媒體娛樂又能實(shí)時(shí)接管倒車影像和超聲波雷達(dá)數(shù)據(jù)同時(shí)保留多語言切換這類產(chǎn)品化能力。對于正在做車載 HMI、或者想把現(xiàn)有 Qt 程序遷到 Arm 板子上的開發(fā)者來說這套源碼的參考價(jià)值集中在三條線上V4L2 采集與格式轉(zhuǎn)換、SR04 測距與中斷交互、Qt 應(yīng)用層與底層驅(qū)動(dòng)的接口設(shè)計(jì)。需要先說清楚的是這套源碼里 Qt 版本屬于常規(guī)的 Widgets 工程真正需要花時(shí)間理解的是 C 驅(qū)動(dòng)文件和 C 界面之間如何通過事件和共享內(nèi)存協(xié)同工作。2. 交叉編譯環(huán)境與源碼分層把每個(gè)文件映射到車載系統(tǒng)的真實(shí)模塊2.1 源碼文件與模塊映射關(guān)系先別急著編譯把這幾個(gè)文件按功能歸類比直接讀代碼更有效率。carsystem.cpp是主程序入口負(fù)責(zé)初始化窗口和管理各模塊的調(diào)度v4l2.c封裝了 Video4Linux2 攝像頭采集通道對應(yīng)行車記錄儀和倒車影像的視頻源yuv2bgr.c是顏色空間轉(zhuǎn)換因?yàn)?V4L2 默認(rèn)輸出的 YUYV 格式無法直接被 Qt 的 QImage 使用sr04_drv.c封裝了 HC-SR04 超聲波測距負(fù)責(zé)倒車?yán)走_(dá)的距離計(jì)算key_drv.c處理實(shí)體按鍵用于在音樂、視頻、倒車界面之間切換music.cpp和monitor.cpp分別是音樂播放器和行車記錄儀的邏輯模塊backoff.cpp專門處理倒車時(shí)的界面切換與雷達(dá)數(shù)據(jù)疊加language.cpp則負(fù)責(zé)加載和切換翻譯文件。源文件職責(zé)依賴鏈路v4l2.c攝像頭設(shè)備打開、格式協(xié)商、幀緩沖映射內(nèi)核 V4L2 框架/dev/video0yuv2bgr.cYUYV 到 BGR888 轉(zhuǎn)換僅內(nèi)存操作無系統(tǒng)調(diào)用sr04_drv.c超聲波的觸發(fā)與 Echo 回波計(jì)時(shí)GPIO 操作需 root 權(quán)限key_drv.c按鍵狀態(tài)讀取與去抖按鍵 GPIO 或 input 子系統(tǒng)carsystem.cpp主窗口、模塊調(diào)度、信號(hào)鏈接依賴以上全部模塊music.cpp音頻播放、播放列表管理Qt Multimediamonitor.cpp視頻幀采集入庫、循環(huán)覆蓋舊文件v4l2.c 文件系統(tǒng)backoff.cpp倒車觸發(fā)邏輯、距離閾值判斷sr04_drv.c 視頻鏈路language.cppQTranslator 加載與切換Qt Core.qm文件從這張表能看出來這套源碼的耦合方式是典型的「底層 C 驅(qū)動(dòng) 上層 C 封裝」底層文件不依賴 Qt只暴露 C 接口上層 Qt 模塊通過 extern C 聲明或封裝類調(diào)用這些接口。這樣做的好處是驅(qū)動(dòng)部分可以單獨(dú)用 gcc 編譯驗(yàn)證不牽涉 Qt 元對象編譯調(diào)試問題面會(huì)小很多。2.2 Arm 交叉編譯工具鏈與 Qt 構(gòu)建配置這套源碼要跑在 Arm 開發(fā)板上交叉編譯是繞不開的第一步。項(xiàng)目實(shí)際編譯時(shí)我傾向于用aarch64-linux-gnu-g配合 Qt 的嵌入式 mkspec而不是直接在板子上裝編譯器——板載編譯性能和依賴完整度都不適合。常見的 Qt 交叉編譯配置有兩種一種是直接在 Qt Creator 里設(shè)置 Kit另一種是寫 Makefile 或 CMakeLists 指定交叉工具鏈。這套源碼從文件結(jié)構(gòu)看不是 CMake 工程更像手工 Makefile所以我一般建議直接用 Qt Creator 的 qmake在.pro文件里做以下配置# carsystem.pro QT widgets multimedia network TARGET carsystem TEMPLATE app # 交叉編譯工具鏈前綴根據(jù)實(shí)際編譯器調(diào)整 QMAKE_CXX aarch64-linux-gnu-g QMAKE_CC aarch64-linux-gnu-gcc # 底層C驅(qū)動(dòng)文件用gcc編譯而非g SOURCES carsystem.cpp music.cpp monitor.cpp backoff.cpp language.cpp SOURCES v4l2.c yuv2bgr.c sr04_drv.c key_drv.c HEADERS v4l2.h yuv2bgr.h sr04_drv.h key_drv.h # 鏈接數(shù)學(xué)庫超聲波距離計(jì)算需要 LIBS -lmQMAKE_CXX和QMAKE_CC分別指定 C 和 C 的交叉編譯器qmake 會(huì)根據(jù)源文件后綴自動(dòng)選擇。.c文件走 gcc 編譯路徑.cpp文件走 g 路徑這一點(diǎn)比手動(dòng)把 C 代碼改成.cpp更穩(wěn)妥因?yàn)関4l2.c里的ioctl調(diào)用在 C 編譯時(shí)必須顯式轉(zhuǎn)換void*牽一發(fā)動(dòng)全身。LIBS -lm是給sqrt()這類數(shù)學(xué)函數(shù)準(zhǔn)備的SR04 測距最終算距離時(shí)要開方。2.3 交叉編譯時(shí)最容易踩的三個(gè)環(huán)境坑第一個(gè)坑是 Qt 庫路徑不匹配。目標(biāo)板是 armv8 架構(gòu)就必須用aarch64構(gòu)建的 Qt 庫如果用armv7的庫鏈接程序啟動(dòng)時(shí)會(huì)直接報(bào)非法指令。常見做法是在板子文件系統(tǒng)上放一份libQt5Core.so等運(yùn)行時(shí)庫編譯時(shí)用-L指向交叉編譯好的庫目錄。第二個(gè)坑是qt_qpa_platform_plugin_path環(huán)境變量Qt 在 Arm 板子上啟動(dòng)時(shí)報(bào)could not find a Qt platform plugin絕大多數(shù)是 plugin 路徑?jīng)]指對。我一般會(huì)把 Qt 移植后的platforms/目錄放到與可執(zhí)行文件同級的plugins下然后通過 export 指定export QT_QPA_PLATFORMlinuxfb export QT_QPA_PLATFORM_PLUGIN_PATH/opt/carsystem/plugins export LD_LIBRARY_PATH/opt/carsystem/lib:$LD_LIBRARY_PATH這里用linuxfb平臺(tái)插件是因?yàn)樗恍枰?X11 或者 Wayland直接在frame buffer上繪圖適合當(dāng)前這種帶 LCD 但沒有桌面環(huán)境的車載硬件。LD_LIBRARY_PATH必須包含 Qt 運(yùn)行時(shí)庫目錄否則程序啟動(dòng)階段就會(huì)停在./carsystem: error while loading shared libraries。第三個(gè)坑是文件系統(tǒng)權(quán)限v4l2.c打開/dev/video0、sr04_drv.c操作 GPIO 節(jié)點(diǎn)都需要 root 權(quán)限常見做法是在啟動(dòng)腳本里加chmod 666 /dev/video0或者直接把程序放進(jìn) rootfs 的 init 啟動(dòng)鏈里。3. 底層視頻與測距鏈路v4l2.c、yuv2bgr.c 與 sr04_drv.c 的配合3.1 V4L2 采集流程與關(guān)鍵 ioctl 時(shí)序v4l2.c是整條視頻鏈路的源頭。它做的事情可以拆成四步打開設(shè)備、設(shè)置采集格式、申請幀緩沖并 mmap、啟動(dòng)流。這套流程看似標(biāo)準(zhǔn)化但實(shí)際調(diào)參時(shí)每個(gè) ioctl 都可能成為瓶頸。拿采集格式來說VIDIOC_S_FMT設(shè)置的分辨率和像素格式必須和攝像頭驅(qū)動(dòng)以及后續(xù)的yuv2bgr.c轉(zhuǎn)換邏輯匹配。// v4l2.c 中采集初始化核心片段 static int v4l2_open_device(const char *devpath, int width, int height) { int fd open(devpath, O_RDWR); if (fd 0) { perror(open video device); return -1; } struct v4l2_format fmt; memset(fmt, 0, sizeof(fmt)); fmt.type V4L2_BUF_TYPE_VIDEO_CAPTURE; fmt.fmt.pix.width width; /* 采集寬度如 640 或 720 */ fmt.fmt.pix.height height; /* 采集高度 */ fmt.fmt.pix.pixelformat V4L2_PIX_FMT_YUYV; /* 與 yuv2bgr.c 匹配 */ if (ioctl(fd, VIDIOC_S_FMT, fmt) 0) { perror(set format failed); close(fd); return -1; } return fd; }VIDIOC_S_FMT成功后可以再通過VIDIOC_G_FMT回讀實(shí)際的寬度和高度因?yàn)橛行?USB 攝像頭會(huì)強(qiáng)制對齊到 32 像素整數(shù)倍。比如你請求 640x480驅(qū)動(dòng)可能返回 640x480 不變但換成 1280x720 時(shí)部分 sensor 會(huì)按 16 字節(jié)對齊調(diào)整 stride此時(shí)yuv2bgr.c轉(zhuǎn)換時(shí)就必須把行字節(jié)數(shù)計(jì)算正確否則畫面會(huì)斜切。代碼里我用V4L2_PIX_FMT_YUYV而不是MJPEG或NV12理由是 YUYV 是裸數(shù)據(jù)無需硬解碼轉(zhuǎn)換邏輯完全可控MJPEG 雖然帶寬占用低但需要額外集成 libjpeg在 Qt 側(cè)還要把 JPEG 解成 RGB鏈路變長。V4L2 常用 ioctl 命令及含義如下ioctl作用失敗時(shí)的常見表現(xiàn)VIDIOC_QUERYCAP查詢設(shè)備能力確認(rèn)是捕獲設(shè)備Invalid argument多半不是 video 設(shè)備VIDIOC_S_FMT設(shè)置采集格式EBUSY設(shè)備被占用或已有應(yīng)用獨(dú)占VIDIOC_REQBUFS申請幀緩沖個(gè)數(shù)ENOMEM顯存或 DMA 內(nèi)存不足VIDIOC_QBUF/DQBUF入隊(duì)/出隊(duì)緩沖幀出隊(duì)超時(shí)通常是幀率設(shè)太高VIDIOC_STREAMON開始傳輸數(shù)據(jù)流EPIPE攝像頭發(fā)出的流格式與設(shè)置不一致這里特別提醒VIDIOC_REQBUFS的數(shù)量不能簡單拍腦袋。常見做法是申請 4 個(gè)緩沖區(qū)而不是默認(rèn)的 2 個(gè)因?yàn)?Qt 界面繪制和yuv2bgr.c轉(zhuǎn)換都會(huì)消耗額外時(shí)間緩沖太少時(shí)DQBUF會(huì)頻繁阻塞影響 UI 線程幀率。但申請?zhí)嘁矔?huì)占滿 DMA 內(nèi)存板子上如果同時(shí)跑音樂播放和視頻采集可能出現(xiàn)物理內(nèi)存碎片導(dǎo)致 mmap 失敗。3.2 YUYV 到 BGR 的轉(zhuǎn)換少一個(gè)顏色分量圖就花了v4l2.c采集到的是 YUYV 交錯(cuò)格式每個(gè)像素由亮度和色度交織表示4 字節(jié)承載 2 個(gè)像素。Qt 的QImage雖然能直接識(shí)別Format_RGB888但不認(rèn) YUYV所以yuv2bgr.c的作用就是把這種交錯(cuò)數(shù)據(jù)展開成連續(xù)的 BGR 像素流。轉(zhuǎn)換的核心是 BT.601 標(biāo)準(zhǔn)這也是本套源碼里算法難度最集中、最值得細(xì)看的地方。// yuv2bgr.c —— YUYV 到 RGB888 的 BT.601 轉(zhuǎn)換 static unsigned char clamp_u8(int value) { return (unsigned char)(value 0 ? 0 : (value 255 ? 255 : value)); } void yuyv_to_bgr(const unsigned char *yuyv, unsigned char *bgr, int width, int height) { int total width * height / 2; /* 每 4 字節(jié)攜帶 2 個(gè)像素 */ for (int i 0; i total; i) { int y0 yuyv[0]; int u yuyv[1] - 128; int y1 yuyv[2]; int v yuyv[3] - 128; /* 像素 0 */ bgr[0] clamp_u8((int)(y0 1.772 * u)); /* B */ bgr[1] clamp_u8((int)(y0 - 0.344 * u - 0.714 * v)); /* G */ bgr[2] clamp_u8((int)(y0 1.402 * v)); /* R */ /* 像素 1 */ bgr[3] clamp_u8((int)(y1 1.772 * u)); bgr[4] clamp_u8((int)(y1 - 0.344 * u - 0.714 * v)); bgr[5] clamp_u8((int)(y1 1.402 * v)); yuyv 4; bgr 6; } }轉(zhuǎn)換時(shí)需要注意幾個(gè)參數(shù)色度信號(hào)u、v必須減去 128 才能得到有符號(hào)的范圍否則暗部會(huì)整體偏綠或偏紫clamp_u8是必要的因?yàn)楦↑c(diǎn)運(yùn)算結(jié)果可能溢出到負(fù)值或超過 255不 clamp 會(huì)導(dǎo)致QImage里出現(xiàn)噪點(diǎn)條紋。但如果板子 CPU 性能弱浮點(diǎn)運(yùn)算在 1280x720 分辨率下每幀耗時(shí)會(huì)到 20ms 以上實(shí)際項(xiàng)目里更快的方式是查表法——預(yù)計(jì)算 256 x 256 的乘法查找表把浮點(diǎn)乘改成整數(shù)查表。這套源碼作為教學(xué)驗(yàn)證用浮點(diǎn)沒問題但你要上 720p 行車記錄儀最好改成整數(shù)定點(diǎn)運(yùn)算。3.3 SR04 超聲波測距時(shí)序與中斷的取舍sr04_drv.c的活兒不是讀一個(gè)寄存器就完事而是要精確模擬 SR04 的觸發(fā)時(shí)序拉高 Trig 引腳 10us然后監(jiān)聽 Echo 引腳的高電平時(shí)長。高電平持續(xù)時(shí)間乘以聲速 340m/s 再除以 2就是障礙物距離。這個(gè)時(shí)序?qū){秒級延遲也有要求如果直接用usleep(10)觸發(fā)內(nèi)核調(diào)度的不確定性會(huì)讓 10us 變成 15us 或 20us測距結(jié)果會(huì)系統(tǒng)性偏差。// sr04_drv.c —— 超聲波距離讀取關(guān)鍵流程 int sr04_get_distance(int trig_fd, int echo_fd) { struct gpio_handle *trig gpio_open(trig_fd); struct gpio_handle *echo gpio_open(echo_fd); gpio_write(trig, 1); /* 常見的做法是用帶 ns 延遲的定時(shí)器自旋等待而不是 usleep */ for (volatile int i 0; i 120; i) __asm__(nop); gpio_write(trig, 0); while (gpio_read(echo) 0); /* 等待 Echo 拉高 */ struct timespec start, end; clock_gettime(CLOCK_MONOTONIC, start); while (gpio_read(echo) 1); /* 等待 Echo 拉低 */ clock_gettime(CLOCK_MONOTONIC, end); double delta (end.tv_sec - start.tv_sec) * 1e9 (end.tv_nsec - start.tv_nsec); return (int)(delta * 0.034 / 2); /* 單位 cm */ }這里clock_gettime(CLOCK_MONOTONIC)必須用單調(diào)時(shí)鐘不能用gettimeofday的墻上時(shí)鐘否則系統(tǒng)同步時(shí)間或 NTP 校時(shí)會(huì)導(dǎo)致時(shí)間跳變測距結(jié)果會(huì)突然變成負(fù)數(shù)或超大值。等 Echo 從高到低的這段循環(huán)里如果超聲波沒收到回波Echo 引腳會(huì)維持高電平約 60ms導(dǎo)致線程阻塞。實(shí)際使用時(shí)要給等待循環(huán)加一個(gè)超時(shí)退出常見做法是把回波超時(shí)時(shí)間設(shè)為 30ms超過就按「測距失敗」處理避免倒車時(shí) UI 卡死?;氐絙ackoff.cpp的功能邏輯它會(huì)每隔 50ms 調(diào)用一次sr04_get_distance()把距離值取整數(shù)后轉(zhuǎn)發(fā)到主界面顯示并和用戶設(shè)置的安全閾值比對決定是否彈出倒車警告畫面。4. Qt 應(yīng)用層功能落地音樂播放、行車記錄儀與多語言切換4.1 music.cpp用 Qt Multimedia 搭播放核心music.cpp在車載場景里承擔(dān)的是音頻娛樂模塊代碼本身不復(fù)雜但有兩處需要調(diào)通一是音頻輸出設(shè)備的生命周期管理二是播放列表的切換策略。Qt 5.15 的QMediaPlayer配合QMediaPlaylist是最常見的組合播放本地 U 盤里的歌曲或廣播流都能覆蓋。// music.cpp —— 音樂播放模塊初始化 PlaylistWidget::PlaylistWidget(QWidget *parent) : QWidget(parent) { m_playlist new QMediaPlaylist(this); m_player new QMediaPlayer(this); /* 設(shè)置播放模式循環(huán)播放當(dāng)前列表 */ m_playlist-setPlaybackMode(QMediaPlaylist::Loop); m_player-setPlaylist(m_playlist); m_player-setVolume(70); /* 把列表與 UI 選擇綁定 */ connect(m_playlist, QMediaPlaylist::currentIndexChanged, this, [this](int idx) { QUrl url m_playlist-currentMedia(); ui-titleLabel-setText(url.fileName()); }); }注意setPlaybackMode的參數(shù)決定歌單循環(huán)還是單曲循環(huán)車載系統(tǒng)一般用Loop或Sequential前者適合后臺(tái)連續(xù)播放不中斷。這里我用到的是把播放列表和 UI 標(biāo)簽綁定的寫法當(dāng)currentIndexChanged信號(hào)觸發(fā)時(shí)更新界面標(biāo)題信號(hào)槽的idx參數(shù)可以用于同步歌詞或封面。整個(gè)模塊真正容易出問題的不是播放本身而是文件獲取方式——如果歌曲放在 U 盤和 SD 卡需要監(jiān)聽 Linux 的mdev或udev熱插拔事件在設(shè)備節(jié)點(diǎn)出現(xiàn)后再去掛載目錄掃描 mp3否則插拔后就找不到播放列表。另一個(gè)常被忽略的點(diǎn)是音頻焦點(diǎn)沖突當(dāng)?shù)管嚴(yán)走_(dá)發(fā)出蜂鳴提醒時(shí)音樂音量如果保持原樣駕駛員會(huì)聽不清距離提示。常見做法是在backoff.cpp中調(diào)用m_player-setVolume(20)倒車結(jié)束后恢復(fù)原音量。這種控制需要music.cpp暴露一個(gè)公共接口給主窗口調(diào)用我在主界面是用單個(gè)實(shí)例管理音樂模塊通過MusicPlayer::instance()獲取單例后調(diào)音量。4.2 monitor.cpp行車記錄儀到底在記錄什么monitor.cpp的輸入來自v4l2.c采集的連續(xù)幀但行車記錄儀不是把所有幀直接排隊(duì)寫入 SD 卡而是按時(shí)間片段切文件并做循環(huán)覆蓋。這套源碼里 monitor 模塊干的核心事情是取 V4L2 的幀、打時(shí)間戳、寫入文件、超過預(yù)設(shè)容量刪最老的片段。// monitor.cpp —— 錄像文件輪轉(zhuǎn)策略 void MonitorWorker::saveFrame(const QImage frame) { qint64 now QDateTime::currentSecsSinceEpoch(); if (now - m_currentSegmentStart m_segmentSeconds) { m_segmentWriter-close(); /* 生成帶時(shí)間戳的新文件名便于回放索引 */ QString name QString(/rec/%1_%2.h264) .arg(now) .arg(m_segmentSeconds); m_segmentWriter-open(name); m_currentSegmentStart now; /* 刪除最老文件保持總?cè)萘吭?GB以內(nèi) */ while (m_totalBytes m_limitBytes) { QString oldest m_files.takeFirst(); QFile::remove(oldest); } } m_segmentWriter-write(frame); }從這個(gè)實(shí)現(xiàn)能看到監(jiān)控錄像的存儲(chǔ)策略本質(zhì)是「滑動(dòng)窗口」m_segmentSeconds決定每個(gè)文件有多長常見設(shè)置為 60 秒或 120 秒。文件越小回放查找時(shí)間越短但文件系統(tǒng) inode 開銷增加文件越大單文件損壞影響面越大。如果是普通 720p 攝像頭每秒約 2MB 數(shù)據(jù)120 秒一個(gè)文件約 240MB16GB 存儲(chǔ)大約能存 66 個(gè)文件這個(gè)數(shù)量級在QFile::remove循環(huán)里是秒級完成的。注意這里我給出的偽代碼用m_segmentWriter-write(frame)直接寫未壓縮幀實(shí)際項(xiàng)目中會(huì)接一個(gè)硬件編碼器或libx264否則裸 YUV 數(shù)據(jù)寫入速度和存儲(chǔ)空間都撐不住長時(shí)間記錄。這套源碼的 monitor 模塊更像一個(gè)框架占位真正上產(chǎn)品時(shí)要在寫入前加 H.264 編碼你需要關(guān)注的是「時(shí)間戳命名」和「覆蓋策略」這兩個(gè)設(shè)計(jì)點(diǎn)。4.3 language.cppQt 國際化的三件套language.cpp處理的是產(chǎn)品級需求——多語言切換。Qt 國際化三件套是tr()、翻譯文件.ts、以及運(yùn)行時(shí)QTranslator。翻譯文件在開發(fā)期用lupdate掃描源碼提取詞條生成.ts用 Qt Linguist 翻譯后通過lrelease編譯成二進(jìn)制.qm文件。這套源碼里language.cpp做的事情就是把.qm加載進(jìn)運(yùn)行時(shí)并讓界面所有可見文本立即刷新。// language.cpp —— 運(yùn)行時(shí)切換語言 void LanguageWidget::changeLanguage(const QString langCode) { /* 先移除舊翻譯器再加載新翻譯器 */ qApp-removeTranslator(m_translator); if (m_translator.load(QString(:/i18n/carsystem_%1.qm).arg(langCode))) { qApp-installTranslator(m_translator); /* 關(guān)鍵點(diǎn)重發(fā)語言變更事件讓已創(chuàng)建控件刷新文本 */ QEvent ev(QEvent::LanguageChange); QApplication::sendEvent(this, ev); } else { qWarning(load translator failed: %s, qPrintable(langCode)); } }這段代碼里qApp-installTranslator之后Qt 會(huì)向所有頂層窗口發(fā)送LanguageChange事件。每個(gè)窗口的changeEvent(QEvent::LanguageChange)里要重新執(zhí)行一遍ui-label-setText(tr(xxx))界面才能立即更新。如果不重設(shè)文本只是 installTranslator已創(chuàng)建的 QLabel 文本不會(huì)自動(dòng)變化。langCode建議用系統(tǒng)語言標(biāo)準(zhǔn)比如中文用zh_CN英文用en_US這樣后續(xù)擴(kuò)展語言包和系統(tǒng) locale 對齊不用自造編碼。多語言模塊和車載功能的關(guān)系是橫向的倒車?yán)走_(dá)、行車記錄儀、天氣界面都要通過tr()包住字符串否則切換只對當(dāng)前頁面生效其他模塊文本還是舊語言。5. 聯(lián)調(diào)收尾倒車邏輯、按鍵映射與運(yùn)行時(shí)驗(yàn)證方法5.1 backoff.cpp 與 sr04 聯(lián)動(dòng)的邊界條件倒車功能是這套源碼里驅(qū)動(dòng)與 Qt 交互最直接的部分。backoff.cpp大致邏輯是定時(shí)器每 50ms 讀取sr04_get_distance()返回值當(dāng)距離小于m_dangerThreshold常見設(shè) 80cm主界面通過信號(hào)觸發(fā)切換到倒車影像視圖并在畫面上用紅色字體繪制距離值。實(shí)際聯(lián)調(diào)時(shí)我建議給這個(gè) threshold 做兩層判斷小于 80cm 只彈出警告色小于 30cm 才觸發(fā)高頻蜂鳴否則低速倒車時(shí)雷達(dá)會(huì)一直處于「過度警告」?fàn)顟B(tài)。超聲波傳感器還有一個(gè)盲區(qū)問題探測角度約 15 度車輛兩側(cè)低矮障礙物測不到所以要和倒車影像的畫面做互補(bǔ)顯示界面左側(cè)顯示影像右側(cè)顯示雷達(dá)圖。5.2 key_drv.c 映射到 Qt 事件key_drv.c讀取實(shí)體按鍵之后不能直接操作 Qt 對象因?yàn)轵?qū)動(dòng)層是一個(gè)獨(dú)立線程。常見做法是用 Linux input 子系統(tǒng)上報(bào)按鍵事件Qt 面板程序里通過讀取/dev/input/eventX或者用QSocketNotifier監(jiān)聽設(shè)備文件描述符把按鍵事件轉(zhuǎn)換成 Qt 的鍵盤事件。最省事的驗(yàn)證命令是evtest /dev/input/eventX能直接看到按鍵碼是否上報(bào)成功。如果按下去沒反應(yīng)優(yōu)先查key_drv.c里 GPIO 配置的 pin 是否和原理圖一致而不是先查 Qt 代碼。5.3 啟動(dòng)階段二十分鐘排查法把程序部署到板子后我通常按這個(gè)順序排查先跑v4l2-ctl --list-formats-ext -d /dev/video0確認(rèn)攝像頭支持的像素格式和分辨率如果返回空則攝像頭上電時(shí)序有問題再單獨(dú)調(diào)用sr04_get_distance的測試程序在終端里看距離輸出是否隨障礙物移動(dòng)而變化最后再啟動(dòng) Qt 程序。如果 Qt 畫面黑屏查看/var/log/syslog里有沒有qt.qpa相關(guān)報(bào)錯(cuò)QT_QPA_PLATFORMlinuxfb模式下還需要確認(rèn)FRAMEBUFFER和 LCD 驅(qū)動(dòng)匹配。這套源碼和一般純 Qt 工程不同它的調(diào)試順序必須從驅(qū)動(dòng)往上層走因?yàn)榻缑鎸拥漠惓:芏鄷r(shí)候是底層采集線程沒有往共享緩沖里寫入新的幀數(shù)據(jù)而不是界面代碼本身的 bug。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
狠狠做深爱婷婷久久综合一区| 精品人妻久久久久久| 久99在线视频| 久久ri精品视频| 99精品久久| 国产26uuu视频| 色婷婷综合在线| a网站免费观看| 婷婷操逼网| 99毛片| 六月丁丁香| 国产色99| 99er这里只有精品视频| 操逼视频一区| 超碰在线网站| 久久婷婷色综合老司机| 色五月丁香com| 超碰在线人人| 九月婷婷激情| 人妻久久人妻久久第一区| 久久精典| 国产AV不卡福利| 色久九| 怕怕av| 青青草原伊人网| 超碰在线免费观看日韩| 综合色色网| 香蕉人在线香蕉人在线 | 婷婷五月激情基地| 狠狠色综合777| 亞洲自怕| 超PEN精品在线| 久久人人九| 丁香六月 人妻| 色五月婷婷久久| 69久久99精品久久久久| …亚洲黄色在线播放日韩、av中文a…| 亚洲欧洲中文日韩久久AV乱码| 综合久久婷婷| 五月丁香综合在线| 狠狠狠狠狠| 日韩99视频| 国产成人+亚洲+欧洲| 久久黄色网扯| 亚洲精| 那里有AV网址| 日本va欧美va精品发布视频| 久碰视频| 婷婷丁香五月麻豆| 99视频网址| 去色色五月天| 五月婷婷婷| 久草婷| 风流少妇A片一区二区蜜桃| 色色婷婷五月| 不卡在线超碰| 亚洲色图啪啪| 色婷婷精品视频| 五月丁香中文婷婷中文| 色综合中文色综合网| 91操黄| 色色色九九九五月婷婷| 国精产品一区二区三区| 久久久激情视频| 4399在线观看免费高清黄色视频| 婷婷色情网| 日本久久精品18| Caop在线| AAA久久| 亚洲国产精品VA在线看黑人| 欧美色99| 另类少妇人与禽zOZZ0性伦| 啊v视频在线观看| 中文av网| 久久久全国免费视频| 99青青草99| 超碰在线资源| 九九热欧美| 六月丁香深深爱综合网| www.五月激情红色| 影音先锋天天日| 影音先锋色婷婷| 欧美色色色色色色色| 久热欧美| 日韩熟女啪啪视频| 国产av基地| 久久99三级在线视频| 91无码高清| 亚洲色图五月丁香| 五月婷婷久久开心网| 亚洲精品性色| 91色噜噜狠狠狠狠色综合| 久久东京热婷婷五月| 丁香五月电影| 丁香婷婷影院| 亚洲小视频免费播放| 久久久er热| 婷婷久久六月费| 99免费热视频| 91久久久久久久| 97色婷婷| 久久色婷婷| 色日本丁香婷婷| 99色一| 色情五月综合婷婷| 欧美性丁香色色五月天干干| 噜噜五月天综合| WWW久| 啊V视频在线观看| site:pzdcoin.com| 五月婷婷视频在线观看| 精品夜夜澡人妻无码AV| 综合久久影院| 婷婷激情五月色综合| 91ncm视频| AV在线免费网站| 午夜69成人做爰视频| 色停停影院五月天| 色婷婷综合中心| 天天噜噜| 午夜不卡久久精品无码免费| 色五月天堂| 色天天综合色| 久久怡红院| 久久天堂女人| 日本九九热| 国产无人区大片| 亚洲亚洲人成综合网络| 91精品综合久久久久久五月丁香| 五月激情站| www99热| 久草九九| 天天碰夜夜爽| 亚洲中字AV电影在线网站| 99久久精品国产色欲| 婷婷另类开心| 色婷婷五月天偷拍| 深夜男女福利刺激影院一区完整| jiZZdr| 国产又黄又爽又色的免费| 大香蕉娱乐| 久久久er热| 婷婷午夜综合| 亚洲中文AV| 人妻久久久久久久久妻久久久久久久久| 丁香六月婷婷激情| a免费在线| 久久九九国产| 久久人妻精品| 激情五月份婷婷| 视色综合| 91人人爱| 激情六月婷| 乱岳熟女50岁| ji'qing'luan'ren'lun| 中文毛片无遮挡高潮免费| 99九色视频在线观看| 噜噜色噜噜网| 日本 色综合| 丁香五月激情六月| 国产肥白大熟妇BBBB视频| 中文字幕综合网| 丁婷婷五月天在线播放| 色五月天丁香婷婷色| 亚洲五月综合色播| 综合久久五| 亚洲精品乱码久久久久久综合| 99热这里只有精品1025| 激情九月婷婷| 99热6这里只有精品| 久热丁香| 色色激情| 五月天婷亚洲天综合网综合| 亚洲精品无码一区二区| 国产另类综合| 成人 九九九九| 第四色首页| 欧美 色婷婷| ...婷婷国产成人亚洲日韩| 婷婷五月激情中文字幕| 婷婷六月色丁香视频在线观看| 亚洲综合视频在线| 丁香五月婷婷亚洲色图| 无码 av电影| 婷婷激情五月天在线视频| 久热这里| 热99只有精品| 五月丁香视频色色| 91九色国产| 六月婷婷综合久久| 天天日天天舔| 激情五月天www| 免费色婷婷| 17.c黄色| 色色五月天网站| 激情九月综合| 日批在线看| 亚洲性爱AV在线| 欧美综合五月丁香六月婷| 青青草大香| 久草xx性爱视频| 1024在线视频| 大香蕉综合在线| 99热综合| 丁香五月亚洲综合| 久久色情| 亚洲VA在线| www色哟哟| 九九精品综合| 秋霞AV吧| 五月丁香成人视频| 色九月| 丁香六月天| 色色色欧美色色| 丁香五月www| 欧美日韩123| 日本黄色在线观看| 无码少妇高潮喷水A片免费| 99在线视频在线观看| 婷婷碰碰| 人人草开心五月天| 日本在线免费中文com.| 97电影99热| 五月婷六月| 亚洲国产精品成人免费一区久久久在线观看AAAA | 99久在线精品99re8| 日本色色网站| 黄色片久久| 人人舔人人| caop在线| 操b视频在线观看一区二区| 欧美五月婷婷| 五月天激情视频五月天| 激情五月天婷婷激情| 久热婷婷综合| 婷婷五月电影院| 天天艹夜夜爽| 久久99视频| 亚洲网综合在线| 黄色五月婷婷| 久久婷婷激情视频| 翔田千里aV中文字幕| 五月丁香另类网| 亚洲综合九九| AV操操操| 久久婷婷五月草视频| 超碰不卡在线| 五月丁香 狠狠爱| 天天插天天插| 99ri视频在线观看| 国产伦亲子伦亲子视频观看| 色啪网| 午夜国产精品AV在线播放| 人人操人人操919999| 少妇性BBB搡BBB爽爽爽电影| 综合色图区| 五月色丁香激情| 天天色天天射天天日| 激情人妻蜜夜系列区| av在线免费播放| 激情婷婷五月天在线观看| 色婷婷888| 蜜桃五月天| 激情综合网色播五月| 五丁香激情综合| 五月婷婷丁香综合| 色五月婷婷综合在线| 激情综合丁香六| 秋霞学生妹一二级| 狠狠搞五月天| 色综合大香蕉| 丁香婷婷色色| 亚洲乱码w在线观看| 久久性爱网| 能看的av| 婷婷丁香成人| 婷婷五月激情五月激情| 丁香五月婷婷大香蕉| 不卡影院午夜理论片| 亚洲综合激情五月天婷婷| 久久女人天堂| 婷婷五月激情图片| 99在线观看视频| 91 九色 入口| 九九色院| 全高清无码视頻| 色丁香五月婷婷综合久久| 开心激情站| 久久婷婷激情| 色色性爱视频| 亚洲综合五月天| 国产成人在线精品| 五月天综合久久| 九色七七| 操碰97| 午夜色婷婷| 亚洲va综合va国产va中文| 99精吕视频在线观看了| 婷婷五月天伊人网| 99视频激情四射| 人妻精品久久久久久| 丁香五月AV综合激情| 久久婷婷丁香五月一二三| 亚洲操人| site:picc-up.com| 婷婷综合五月色播| 成人精品亚洲性爱| 丁香六月激情综合啪啪| 久久人妻系列| 激情欧美五月丁香| 91精品久久久久久久久| 婷婷伊人网| 思思久久99| 婷婷综合五月天| 日日夜夜干| 五月婷婷啪啪| 久久9情免费| 31色区视频免费看| 人妻AV在线观看| 97色片| 天堂A∨在线| 婷婷亚洲色| 超碰人人在线| 五月天婷婷丁香视频| 五月婷婷丁香五月婷婷| 激情综合激情五月一起草| 久久婷婷五月综合色和| 丁香色成人| 久久一热| 337久久| 四色五月视频| 久99久热| 五月婷婷六月爱| 99热这里只有精品在线播放| 欧美色五月| 9999久久久久| 婷婷丁香综合色AV| 99 热国产在| 黄色99网| 六月婷婷久久| 亚洲精品无人区| 五月天综合久久| 91精品久久久久久| 激情丁香五月婷婷| 久久丁香九| 久久总和99| 91九色首页| 丁香久久AV| 欧洲激情精品婷婷| www.色婷婷| 五月丁香 狠狠爱| 中文AV在线播放| 丁香婷婷人妻综合网| 婷婷 月 丁香| 婷婷伊人綜合中文字幕小说| 色色婷婷色色| 伊人国产婷婷五月天| 五月婷婷六月奇米网丁香| 91人操| 国产精品扒开腿做爽爽爽A片唱戏| 区欧美日韩成人| 丁香婷婷啪啪| 九九偷拍网| 狠狠色噜噜狠狠色噜噜噜999| 思思热久久婷婷五月天| 色色五月天丁香婷婷| 日本天天色| 97婷婷狠狠久久综合9色| 丁香五月激情宗合| 99色视频| 99久久超级| 99热9999| 青草五月天| 来吧亚洲综合网| 国产成人精品一区二三区熟女在线| 人操91在线| 久久五月人人摸| 丁香激情五月天| 日本操天堂| 亚洲第一黄网| 五月丁香婷婷视频| 欧美黑人巨大性生话| 婷婷五月综合色中文字幕| 色婷婷欧美在线| 亚洲99在线| 综合久久婷婷99| 九九色影视| 久久99激情丁香婷婷小说网| 婷婷六月啪啪| 婷婷 伊人 久久| 九九这里只这里只有精品| 久婷五月| 综合激情专区| 久狠日av| 天天插天天干| 狠狠干天天内射| 久久婷婷啪啪视频| 991精品在线视频| 五月天婷婷网站| 日韩色色色99| 久久五月丁香| 超碰在线91| 日本WWW九九九| 9久热在线精品| 开心五月激情五月丁香五月婷婷| 性做久久久久久久免费看| 色婷婷久久综合| 久久玖玖综合| 综合色影院| 五月婷婷五月天激情网| 丁香五月婷婷激情97| 熟女婷婷网站一婷婷五月一丁香婷婷一婷婷激情网 | 欧美激情五月天| 日本色婷婷| 日韩久热| 五月婷丁香久久综合| 五月天成人在线视频丁香| 日韩999| 国产精品人妻在线网址| 另类小说色婷婷| 婷婷亚洲久久| 99ri视频在线播放| www999日韩精品| 九九热视频99| 色噜噜狠狠色综合无码久久欧美| 五月天com| 久久只有这里精品免费| 婷婷丁香六月| 夜夜夜叫天天天做| 国产jd1024基地手机看国产| 成人开心五月天| 婷综合六月| 99亚洲精品视频| 99五月婷| 99综合视频| 午夜色色色极品视频| 丁香六月综合| 欧美丁香六月激情视频| 一级韩国产精品毛| 97人人操人人| 色色色999| 欧美精品999| 九九热视频网站| 成人中文网| 色噜噜婷婷| 国产精品岛国片在线观看免费| 激情五月丁香亭亭| 免费AV在线| 五月丁香婷婷色色色| 99ri精品| 欧美色片中文字幕久久久久| 五月婷婷婷婷网| 百度4399有码精品V在线观看| 色色激情五月| 亚洲激情高潮| 激情丁香久久久久久| 色婷婷六月天| 丁香五月AV综合激情| 日韩欧美成人一区二区三区| 另类 在线| 婷婷丁香五月天综合AV| 91男同视频| 丁香色五月婷婷| 九九色综合网| 亚洲春色奇米影视| 丁香五月激情网| 婷婷在线精品| 熟妇无码乱子成人精品| 激情五月天综合网| 五月丁香啪啪激情| 亚洲99在线| 丁香五月成人网| 99热精品一| 五月婷婷丁香大香蕉| 天天爽天天干| 欧美久热| 99视频在线观看视频| 国产激情久久久| 色999;丁香五月| 五月婷婷婷| 欧美99热| 99国产精品久久久久久久久久久 | 婷婷五月天AV在| 色综合色综合网| 99精品福利视频| 成人日韩欧美| 冬月かえでAV无码播放| 五月丁香婷婷欧美| 超碰99资源站| 婷婷五月伦理| 九九九九九无码| 77777亚洲午夜久久| 亚洲丁香花色| 日韩综合天堂| 99色精品| 91人妻视频| 狠狠操综合| 热久91| 国产亚洲在线观看| 粉嫩av蜜桃av蜜臀av| 日日干日日s| 五月婷婷影| 色综合久久久无码中文字幕999| 啊V视频在线观看| 99成人小视频| 超碰精品手机在线| 五月丁香综合啪啪啪啪啪| 男人的天堂97| 久草视频大香蕉99| 99精品视频免费观看近期发布| 婷婷五月天伊人在线| 成人做爰A片免费看视频| 激情综合色图| 色婷婷的五月天| 色情激情五月| 99er免费在线观看| 俺也去在线久久精品23欧美综合视频网站,丰满人妻一区二区三区在线视频53,丰满 | 91人操人人人操人| 天天天天天日| 天天色激情| 五月丁六月香av| 婷婷五月天av| 操逼国产91| 182无码| 96精品久久久久久久久| 噜噜狠狠色综无码久久合欧美| 婷婷六月激情丁香| 男人综合网| 五月天亚洲图片婷婷| www91在线| 丁香六月成人网| 性爱激情久久| 久久久潮喷-久久久九九-成人AV| 日操夜操天天操不卡| 欧美三级巜人妻互换| 丁香大香蕉| 26UUU精品一区二区c〇m| WWW.五月天9999| 激情五月天视频| 另类专区在线| 大香蕉婷婷| 午夜成人AV在线| 九九婷婷综合| 操操啪| 天天玩天天摸| 色婷婷成人影片| 丁香婷婷免费| 五月丁综合在线观看| 欧美激情Va| 综合激情网| 日日干夜夜撸夜夜骑| 丁香六月啪啪| 天天爽日日搞| 成人做爰A片免费看网站找不到了| 97碰操| 丁香久久九九99| 婷婷自拍| 亚洲无码另类| .操區COm| 精久久色| 色色亚洲五月天| 午夜成人综合| 丁香五月天视频| 五月开心激情| 超碰在线免费观看日韩| 欧美色偷偷大香| 久久在线大香蕉| 亚洲视频二区| 五月天亚洲最大成人| 久久婷婷五月激情网站| 成人色五婷婷| 色人久久| 婷婷五月天国产传媒| 成人av在线网| 99WWW免费视频| 热中文字幕| 国产日日夜夜操| 99re99热| 天天激情视频| 天天干天天日天天操| 六月丁香av| 综合久| 欧美电影在线观看| 91啪啪啪啪| 东京热免费视频| 久久婷婷六月综合| 色噜综| 我去色色网五雨天| 高清一区二区三区日本久| 欧美成人精品三区综合A片 | 久久久婷丁香五月| 日本3级片一区2区| 少妇性BBB搡BBB爽爽爽电影| 六六久久黄色| 色婷五月天| 五月丁香婷婷六月天| 五月婷婷官网色| 91视频精品99| 人人爱人人草| 99ri国产精品| 婷婷欧美色| 性爱视频99| 激情99| 狠狠干最新地址| 婷婷97碰碰| 色五月丁香在线| 99在线视频精品| 九九九九精品精| 亚洲啪| 婷婷色色狠狠| 婷婷丁香五月,狠狠综合| 99热最新| 日本理论久久| 五月天久久婷婷婷| 中文字幕在线播放视频| 色婷婷狠狠禁久久| 男人天堂 久久| 操操操www.com| 亚洲va欧美va天堂v国产综合| 色噜噜婷婷| 久一网站| 激情五月综合网最新| 久久曰曰| 超碰女人天堂| 99热66| 色综合天天综合成人网| 久久综合五月天激情小说网站| 久久精品99久久久久久| 国产色色色色| 丁香五月天91| 五月婷丁香花| 人人摸人人操人人爽| 9久9久9久女女女九九九一九| 婷婷五月亚洲激情| 九九综合九九| 九九色院| 美女五月天| 久99999热视频在线观看免费| 91久久久久久| 久9热视频| 国产探花一片区| 人妻肉射免费观看| 99国产精品白浆在线观看免费| PORNY九色9l自拍视频成人| 婷婷五月丁香基地| 久久婷五月影院| 内射激情在线| 欧美大肥婆大肥BBBBB| 岛国操B不卡在线| 五五月五月| 欧美在线视频99| 999热在线视频| 99久久性爱| 成人精品一区日本无码网| 婷婷五月天AV| 97啪啪| 久久精品4| 在线观看av网站| 2022人人操人人看| 婷婷综合五月天| 欧美精品久| 九九热在线99| 婷婷色基地在线看| 小视频一区| 激情AV网| 有哪些A片网站| 五月丁香久久激情综合| 色婷婷五月天堂资源| 激情五月四色| 综合激情五月天六月婷免费视频| 真实熟女-91九色| 婷婷五月花丁香| 91干在线视频| 99成人| 五月婷在线影院| 婷婷色网站| 色10月婷婷视频| 五月丁香六月婷| xx色综合| 五月婷婷欧洲| 99热这里只有精品最新| 精品一二三区久久AAA片| 人妻久久久久久久久妻久久久久久久久| 日韩1区2区| 精品99久久久久成人网站免费| 女人高潮内射99精品| 亚洲色色在线| 激情五月天天| 亚洲色五月婷婷| 97婷婷丁香五月天激情图片| 五月天婷婷视频小说| 97人人搞| 九九色色| 婷婷开心激情五月激情网| 九九九午夜视频| 亚州色婷婷| 婷婷五月蜜桃成人桃色丁香| 五月停性愛| 久久婷婷视频| 国产精品大香蕉| 亚洲无AV在线中文字幕| 深爱五月激情| 大香蕉AV在线| 狠狠爱青青草| 五月情色天| 色99视| 久久婷婷视频| 丁香五月开心五月激情| 久久精品五月| 亚洲操操操| 凹凸操Av| 五月婷婷激情综合在线| 色婷婷久久综合中文久久一本| 99在线资源| 99网| 天天舔天天爽| 日韩三级片一区二区| 久99999热视频在线观看免费| 色色99色色| 墨西哥毛片内射精| 人人爱人人草| 久久色情综合免费网站| 五月份婷婷| 婷婷五月日本| 大香蕉九九| 五月天色不卡| 管管補管管紱| 99色中文| 六月丁香AV| 欧美va视频| 一本伊人色婷| 99re熱| 天花AV无码| 五月天婷婷综合网| 夜夜资源站| 婷婷五月六月激情| 性色播| 99九九中文字幕视频| 97精品人人A片免费看| 99啪啪网| 99热在线观看免费| 久热这里这里有精品| 在线成人视频免费| 久久久GOGO无码啪啪艺术| 久久多色| 韩国激情五月天综合网| 亚洲婷婷丁香五月天激情小说| 玖玖婷婷精品| 十二区无码| 九九热精品| 色~性~乱~伦~噜| 免费不卡狠操美女视频网 | 欧美日韩成人| 超碰99热精品| 五月天色婷婷网| 日本在线免费中文com.| 欧美在线干| 六月色激情| 七七色综合| 色爆五月| 免费看欧美成人A片无码| 91 九色 熟女| 99噜噜| 婷婷五月婷婷| 亚洲热久久| www.热99热| 66久久视频在线| 色噜噜97视频在线观看| 91日日日| www.99热这里精品| 啪啪九九色| 久久se 综合网 | 日韩无码AV电影网站| 91久热| 99热6精品| 婷婷91| 狼人久草| 久久伊人五月天| 成人婷99最新| 人人操97| 日本在线视频www色| 久热亚洲| 丁香婷婷九月| 婷婷五月免费视频| 五月婷婷综合在线| 久久Xx| h亚洲| 综合五月天| 六月激情网| 蜜臀av粉嫩av懂色av| 天天天在线观看| 日本爆乳片手机在线播放| 久色激情| 久久婷婷网| 级情九色| 91一起操| 成人做爰A片免费看视频| 色婷婷欧美| 中文字幕成人| 午夜五月天| 伊人久久婷婷| 青草视频在线播放| 婷婷五月五月丁香| 黄色aa观看aaguochan| 色婷婷色和| 欧美丁香五月| 五月丁香啪啪激情| 婷婷开心深爱五月天| 亚洲性天天| 久草五月天电影网| 色婷婷色人人射| 丁香五月Av| 啪啪 综合网| 色婷婷电影| 性做久久久久久久免费看| 香蕉婷婷五月| 亚洲久艹| 97操在线视频| 婷婷五月天无码熟女| 五月婷婷六月奇米网丁香| 伊人啪啪网| 色五月在线观看| 色情综合网| 夜夜穞天天穞狠狠穞AV美女按摩| 狠狠爱深色婷婷综合| 97久久超视频| 999热在线视频| 秋霞三级影视资源| 五月天色婷婷成人| 97婷婷狠狠| 激情久久久| 丁香影院五月综合| 中文精品在| 三级三久久线久久99久目本WW| 天天做天天干天天综合网| 噜噜噜久久亚洲精品国产品91| 六月份天丁香婷婷| 婷婷综合视频| 1024久婷| 婷婷大香蕉| 天天天摸夜夜夜玩| 女同激情久久av久久| 噼里啪啦在线观看免费完整版视频| 日本韩国视频在线观看社区免费的9| 欧美、日韩、中文、制服、人妻| 97色色色色| 色五月婷婷内射| 亚洲日日日| 最近中文字幕在线中文视频| 午夜日韩久久久网站| 九九av| 天天干狠狠艹| 99爱视频在线观看| 五月天丁香花婷婷| 九九热99re8热免费观看| 五月婷婷亞洲中文| 开心五月深爱五月| 色色色天堂网| 欧美日韩大黄| 99乱视频| 婷婷五月欧美| 夜夜躁狠狠| 婷婷综合五月| 99精品偷自拍| 五月丁香啪啪综合网| 99九九视屏| AA丁香综合激情| www,久久久人人| 五月情四婷婷| 中文字幕不卡+婷婷五月| 天堂在线观看视频| 激情五月综合网| 色五婷婷开心缴| 国产精品涩涩涩视频网站| 9999三级片| 精品人妻久久久久| 欧美三级巜人妻互换| 91精品婷婷国产综合久久| 激情五月,激情综合网| 99久热| 久操激情| 夜夜干天天操| 激情综合网婷婷五夜| 99热免费精品热久久66| 婷婷五月色播放| 亚洲婷婷性爱| 国产精品久久在线观看技巧| 丁香五月综合婷婷| 停停综合色色| 亚洲第一精品网站| 亚洲在线免费成人| 亚洲丁香五月综合| 色区久久| 六月丁香婷婷综合狠狠爱夜夜爱| 天天做天天爱天天综合网| 色色99| 超碰成人电影| 99久久精品国产色欲| 中文字幕人妻AV| 亚洲噜色| 电影91久久久| 手机看片日日做夜夜| 26UUU精品一区二区| 人人操97| 色婷天天| 91丨九色丨丰满人妖| 婷婷综合网| 婷婷干六月综合旧址| 五月天婷婷激情春色小说| 国产成人精品亚洲线观看| 激情图片亚洲| 亚洲激情五月| 婷婷综合日本| 综合网天天| 超碰伊人碰婷婷五月| 这里只有久久精99| 婷婷狠狠爱| 天天插插天天| 91精品国产综合久久蜜芽解析速度| 久久久五月四色| 老师的粉嫩小又紧水又多A片视频| 婷婷伊人激情婷婷| 成 人片 黄 色 大 片| 丁香五月天网站| 天天久久狠狠色综合| 大香蕉九操| 亚洲激情在线| 丁香五月天无码AV| 丁香五月激情综合| 婷婷激情综合无月| 国自产拍偷拍精品啪啪一区二区| 丁香五月亚洲无码| 久久婷婷五月天激情新地址| 五月婷色啪| 9久热视频| 国产精品VA在线| 大伊香蕉玖玖爱| 久99在线视频| 久久精彩综合视频| 日本久久99| 淫荡综合网| 欧美碰碰碰| 97色在线观看视频| 丁香六月综合激情| 色五月综合| 99热精品9| 久热在线观看视频9| 四月婷婷五月丁香| 丁香六月婷婷综合啪啪| 99久久激情视频| 热久久77777| 草草色情综合网| 色导航色婷婷五月天在线观看| 91精产一区三区免费观看| 午夜成人天堂久久无码日韩久久| 密黄站| 婷婷五月天国产传媒| 99久在线精品99re8热| 日本久久综合| 中文幕无线码中文字蜜桃| 婷婷六月花| 亚洲无aV在线中文字幕| 狠狠色婷婷| 99热骚货| 97五月婷婷| 婷婷五月激情中文字幕| 久久婷婷丁香六月天| 91岛国片| 丁香六月综合激情| 色99热| 伊人碰碰碰| 国产69精品久久久久999小说| 日日爽日日爽| 激情小说五月天| 国自产拍偷拍精品啪啪一区二区| 洗浴中心操B视频| 激情另类综合| 一区二区三区四日本| 中文成人在线| A√天堂网在线| 色五月开心久久网| 五月婷婷婷婷| 色婷婷成人五月| 色啪网| 日韩国产AV播放| 日本高清久久| 色婷婷综合网站| www久久99| 热久久999| 99九九久久| 五月天综合婷婷| 五月天丁香六月综合| 中文字幕不卡网站| 色婷婷狠狠| 狠狠色婷婷777| 天天色综合天天| 久久九九囯产| 丁香五月另类色婷婷麻豆| 思思99re这里只有| 久久99婷婷| 国产成人片| 在线视频另类| 久久成人人妻| A一级操| 久久精品系列| 欧美婷婷丁香社区在线播放| 99操逼| 五月婷婷真爱激情网| 婷婷综合五月激情| 久久精品4| 黄色AAAAAAA| 第九色区av天堂| 亚洲av成人在线| 色色综合网络| www.久久五月天.com| 狠狠五月激情丁香六月| 五月久久丁香| 九九热AV| 色色五月丁香婷婷| www.狠狠艹| 六月丁香激情最新更新| 久久五月丁香婷婷| 20253AV| 中字幕视频在线永久在线观看免费| 人人操日| 深爱激情五月天| 天天情色综合网| 五月丁香亭亭成人电影| www.五月婷婷| 射久久丁香五月| 激情碰碰碰| 中日韩美欧成人一区二区精品在线| 色五月天在线观看| 操逼六区| 夜夜谢天天干| 天天做天天摸| 天天干天天色天天干| 欧洲激情五月天婷婷| 丁香五月激情宗合网| 五月天婷婷綜合院| 亚洲四色五月| 狠狠 久久| 97综合视频在线| 亚洲精品V天堂中文字幕| 成人综合视频在线| 99热免费| 婷婷五月天成人| 思思热精品在线| 天天操夜夜爽歪歪| 草做免费在线观看| 久色五月婷婷综合| 第2色五月婷| 99精品视频在线6| 欧美激情五月天婷婷| 综合97五月| 秋霞免费三级片| 九九青青草成人| 99久久综合网| 97综合色片| 大香蕉狼人久久| 97欧美在线| 黄网在线观看免费| 久久99激情| www.久久久久久久| 98色花堂98t.R| 久久sp免费视频| 狠狠干在线| 丁香久久五月婷综合| 九热免费视频| 丁香五月综合婷婷| 婷婷五月色| 精品国产人人爱人人| 性小说五月天| 另类激情五月| 天天爽天天草| 性爱视频99| 天天综合精品| 99热精品在线播放| 色综合五月天| 99热在线观看| 色色色激情网| 97热超碰| 超碰93在线观看| 久久精品爱爱| 色国产五月| 天天色官网| 玖玖热视频| 中文字幕综合网| 99免费视频| 91色性感五月婷婷丁香| 大香伊人婷婷| 久久色天堂| 色色色精品无码区| 色综合综合色| 99色 色| 性色婷婷| 99热色精品| 欧美熟女视频 色婷婷| 久久丁香九| 婷婷激情综合| 丁香五月综合图片在线观看| 五月开心深深爱激情综合 | AV九九| 午夜69成人做爰视频| 9 7总站超级碰免费视频| 丁香六月婷婷色播| 婷婷五月天成人网| 五月丁香在线国产 | 91久操| 就爱日五月天| 玖玖爱综合网| 综合在线丁香五月| 亚洲操B| 五月丁香六月综合激情| 电影91久久久| 亚洲熟女乱色综合亚洲网站| 久久久久久久丁香五月天婷婷| 色五月开心婷婷| 丁香六月激情网C0W| 国产97色在线| 强壮公让我夜夜高潮A片视频| 色婷婷aV四虎| 丁香婷婷大香蕉| 丁香五月宝贝激情网| 综合啪啪| 嫩草AV久久伊人妇女超级A| 色九九丁香九月色九九色| 亚洲激情综合网| 五月丁香六月激情综合在线| 伊人五月综合网| 777影视理论片大全在线观看| 婷婷亚洲久久| 天天成人五月天| 玖玖五月丁香| 亚洲亚洲人成综合网络| 国产成人AV在线播放| 婷婷五月天无码熟女| 五月丁香六月激情综合| 中文字幕无码AV| 操碰99| 五月色网| 欧美一级色| 97热九九| 久久久久人妻中文| 天天干天天干天天操| 狠狠色狠狠色综合日日91| 99精品视频免费在线播放| 99精品亚洲| 中文字幕视频色婷婷| 91九色精品熟女内射| 狠狠激情五月天| 一级黄色影片| 日本久久超碰| 久久五月综合| 亚洲日本韩国| 色五月婷婷久久| 久久a热| 亚洲精品视频在线播放| a九九热www| www、色色色| 国产成人精品一区二区三区视频 | 丁香婷婷综合激情五月色| 91精品婷婷国产综合| 婷婷丁香五月在线播放| 国产成人精品一区二三区熟女在线 | 丁香五月综合激情啪啪| 日韩五月婷婷久久| 丁香婷婷激情五月| 丁香啪啪| 五月婷婷六月丁香综合| 99久久6| 东京热五月婷婷| 色六月天天激情综合网| 久久性操| 亚洲免费99| 亚洲色网址| 九月婷婷综合色干| 五月色 亚洲| 黄色成人网站在线播放| 久久综合色五月| 久久人妻视步| 五月天开心色色网| 99er免费在线观看| 99热在线精品观看| 欧美WW在线网| 色爱亚洲| 日日操无码| 日日日影院| 蒲京久久无码视频| 夜夜夜叫天天天做| 日本熟妇乱妇熟色A片蜜桃| 丁香五月激情六月欧亚激情综合导航| 99热九九热| 色很久综合| 啪啪六月婷婷| 91呦呦呦| 五月丁香激情深爱婷婷| 在线播放人妻| 丁香涩涩五月天| 亚洲成人无码专区| 五月婷婷中文网| 国产亚洲在线观看| 五月激情丁香五月| 综合色播| 亚洲国产精品五月天| 激情五月天影院| 丁香六月天AV| 99精品在线| 色综合天天网| 亚洲欧洲中文日韩久久AV乱码| 天天综合网、天天综合色 | 九九综合精品| 久久久97| 超碰色综合| 亚洲网视屏| 欧美色图天堂网| 欧美人妻一区二区| 成人综合视频在线| 婷婷99| 丁香五月,开心五月,成人婷婷| 九九久久99| 婷婷五月天最新综合你懂的| 久久免片| 成人丁香五月| 五月色网| 婷婷五月天色网久| 另类丁香五月天区图| 99热在线免费| 婷婷五月综合色拍| 五月婷婷色色| 亚洲俩性性爱图片久久第六页| 成人免费120分钟啪啪| 色宗合久久五月婷婷| 久热99久热| 伊人五月婷婷| 他改变了拜占庭| WWW.国产| 九九久久99| 狠狠色大香蕉| 久久久18| 欧美精品久久久久久视频观看| 中文字幕网伦射乱中文| av五月天婷婷丁香| 亚洲有码在线视频| 九九99精品视频在线观看| 丁香狠狠| 在线亚洲综合| 97色婷| 天天操天天爽天天爱| 91熟妇大香蕉| 91综合国免费久入| 好好干Av| 六月五月天婷婷涩播在线| 丁香婷婷基地| 大香蕉手机视频| 天天操天天操天天操天天操天天操 | 吾爱AV导航| 91精品久久久久久| 综合狠狠五月婷婷| 涩婷婷视频快播人妻| 噜噜色婷婷| 99er精品| 色色97丁香婷婷五月天| 亚洲中文字幕AV| 亚洲五月天婷婷综合| 变态另类9|