欧美三区_成人在线免费观看视频_欧美极品少妇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條評論
主站蜘蛛池模板: 久久中文字幕不卡一二区 | 亚洲精品日韩精品一区 | 人人舔人人舔 | 久久99精品视免费看 | 久久成人免费网 | 九九综合九九 | 欧美亚洲视频在线观看 | 99色综合 | 国产欧美一区二区三区在线看 | 亚洲一区二区三 | 国产精品大片在线观看 | 日韩在线视频导航 | 91精品观看91久久久久久 | 欧美色欧美亚洲另类二区精品 | 日韩中文字幕一区 | 日本99热 | 九一国产在线观看 | 操一操 | 美女午夜色视频在线观看 | 国产成+人+综合+亚洲 欧美 | 国产精品亚欧美一区二区三区 | 看黄色毛片 | 国产成人综合在线观看网站 | 久久久久亚洲精品影视 | 亚洲国产成人精品女人久久久 | 国产 麻豆| 亚洲第一在线 | 天堂在线视频 | 国产偷国产偷在线高清 | 狠狠操狠狠操狠狠操 | 国产视频首页 | 热久久久 | 99久久免费中文字幕精品 | 青青青青久久久久国产的 | 国产在线视频2019最新视频 | 全免费午夜一级毛片一级毛 | 蜜桃视频一区二区三区 | 亚洲AV成人天堂影院 | 日韩欧美国产网站 | 99pao成人国产永久免费视频 | 91成人午夜性a一级毛片 |