欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Qt開發:UDP、TCP發送文字消息、檢測U盤插拔、S

系統 2100 0

開發環境為Linux+Qt, 功能是實現tcp 、udp發送消息,檢測U盤插拔、同時在arm端移植syszuxpinyin軟鍵盤出入法。 下面是我當時的工作總結。下面是效果圖:

Qt開發:UDP、TCP發送文字消息、檢測U盤插拔、SYSZUXpinyin軟鍵盤輸入法移植------[源碼奉送]

關于tcp、udp:

工作

狀況

總結

工作狀況:

1, 調通了 Qt 下的 TCP 通信模塊,并在板子上測試通過, A8 開發板與 PC 通信良好,發送中文無亂碼。

2, TCP 模塊和 UDP 模塊整合到一起,做到一個 GUI 界面里。由于 TCP 的服務端和客戶端是不同的,所以合到一起后代碼分兩份。

3, 解決 Tiny210 開發板上沒有鍵盤的情況下不能輸入的問題,尤其是不能輸入中文。移植并改進了 SYSZUXpinyin 輸入法,在 Qt 的程序里能正常調出軟鍵盤,利用軟鍵盤輸入中文。由于 SYSZUXpinyin 的文字編碼方式是 GB2312 ,而 linux qt 默認的正常顯示中文編碼方式是 UTF-8 ,為了解決兩者之間的沖突,費了一些功夫。最終順利解決,發送和接收都能正常顯示中文。

4, 利用 Qt 檢測 U 盤的插拔情況。具體用到了 Qt dbus 模塊。在 PC 上已經初步檢測成功,但移植到 arm 時發現默認的編譯 Qt 時是不帶 dbus 模塊的。現在需要重新編譯帶 dbus 模塊的 arm Qt 。在編譯時發現需要先安裝 dbus 庫。

總結:

1, 移植輸入法后,由于既要解決 GB2312 UTF-8 編碼的矛盾,又要解決 UDP TCP 通信模塊在對端收到文字時能正常解析,讓我費了不少事。這方便網上資料基本沒有,最后通過看 qt 自帶的幫助文檔參考眾多資料,才得以解決。

2, 利用 Qt 檢測 U 盤的插拔,通過研究發現,在 linux U 盤插進去后會注冊大約 7 usb-device ,只里面只有最后一個是真正的 USB 存儲設備。也只有真正的 USB 存儲設備注冊成功后,用戶才可以正常讀寫 U 盤。

關于檢測U盤:

工作

狀況

總結

工作狀況:

1, PC x86 平臺下,實現了基于 HAL 機制和 UDISKS 機制的 qdbus 檢測 U 盤插拔的設計,在 pc 平臺下能正常檢測 U 盤插拔。

2, 在將以上兩種方法移植到 arm 平臺時,發現 arm 平臺并不支持 HAL UDISKS 。原因是 HAL UDISKS 機制都是接收的 udev 的消息,而 udev 需要 sysfs 文件系統做支持,而現在的嵌入式文件系統大多數為 yaffs 系統。

3, 基于以上種種問題,最終選擇了內核的 hotplug 機制, hotplug 接收內核的消息。當有 U 盤插入或拔出時會有消息從內核發出。利用這些消息發出的關鍵字如“ add ”和“ remove ”可以檢測 U 盤的插拔,及整個內核識別 usb 的過程。

4, 考慮到當用戶還在 U 盤目錄的下拔出 U 盤,此后若不重啟開發板就會識別異常。在未重啟開發板前,希望程序對 U 盤的這種情況進行檢測并提醒用戶。試驗了很多種方法,最終采用了往 U 盤內寫測試文件,來檢驗 U 盤是否真正識別。

總結:經過仔細研究發現,當用戶還在 U 盤目錄下直接拔出 U 盤, linux 系統還來不及對 U 盤原掛載目錄 /udisk 進行卸載,因此當未重啟再次插入 U 盤, U 盤依舊要訪問申請掛載到 /udisk 就會出錯。這種狀況除了往 /udisk 里寫數據進行測試外,很難檢測。因此,不妨在檢測拔出 U 盤時,判斷 /udisk 目錄是否存在,如果存在則執行 umount /udisk ,這樣再次插入 U 盤就能正常訪問。

代碼分為服務器端和客戶端,每個端都有x86版本和編譯好的arm版本,共4份源碼,供大家參考。

下面是說明:

Esto-client-arm.tar ----------交叉編譯后arm版本的客戶端程序,實現功能有:udp傳輸、tcp傳輸、U盤監測,交叉編譯器為arm-linux-gcc-4.5.1
Esto-server-arm.tar ----------交叉編譯后arm版本的服務器端程序,實現功能有:udp傳輸、tcp傳輸、軟鍵盤移植
Esto-client-x86.tar ----------PC機上,客戶端程序,實現功能有:udp傳輸、tcp傳輸、u盤監測
Esto-server-x86.tar ----------PC機上,服務器端程序,實現功能有:udp傳輸、tcp傳輸
備注:SYSZUXpinyin只能在arm上編譯,無法再x86上編譯運行,原因是其實現基于QWSInputMethod,這個類是arm版本的庫所特有的。

客戶端的兩份源碼: http://www.pudn.com/downloads529/sourcecode/embedded/detail2190912.html

服務器端的兩份源碼: http://www.pudn.com/downloads529/sourcecode/embedded/detail2190909.html

Qt開發:UDP、TCP發送文字消息、檢測U盤插拔、SYSZUXpinyin軟鍵盤輸入法移植------[源碼奉送]


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 关键词| 日韩欧美在线观看视频 | 特级一级毛片免费看 | 黄色成年在线观看 | 久久蜜桃av一区二区天堂 | 国产成人在线视频 | 国产精品视频网站 | 亚洲第一页在线视频 | 亚洲一区二区三区免费在线观看 | 视频一区二区三区免费观看 | 亚洲欧美日韩中文不卡 | 亚洲国产天堂久久综合226 | 国产日韩精品一区二区 | 污版视频在线观看 | 99精品视频3 | 国产精品v欧美精品∨日韩 一级免费黄色免费片 | 日本一区二区三区中文字幕 | 91伊人久久 | 亚洲国产视频网站 | 亚洲第一黄色网 | 亚洲综合激情另类小说区 | 无码人妻精品1国产婷婷 | 午夜第一页 | 久久久精品一区二区三区 | 九九九热在线精品免费全部 | 欧美在线视频一区 | 久草免费在线播放 | 亚洲线精品一区二区三区 | 欧美成人午夜免费完成 | 欧美激情精品久久久久久黑人 | 亚洲综合精品一区二区三区中文 | 男人的天堂亚洲 | 老司机免费福利视频无毒午夜 | 国产人成精品综合欧美成人 | 免费午夜不卡毛片 | 婷婷国产在线观看 | 国产激情久久久久久熟女老人AV | 久草最新在线 | 午夜a狂野欧美一区二区 | 国产成人自拍视频在线观看 | 国产成人精品区一区二区不卡 |