C 中USB轉串列埠的拔插捕獲

2021-06-16 16:09:25 字數 842 閱讀 1422

from:

c#中usb轉串列埠的拔插捕獲

最近乙個c#專案使用者要求能夠實現插入usb介面,自動識別所接入的串列埠,而無需人工去選擇插入的是那個串列埠。通過一陣子的資料蒐羅,總算找到乙個最佳的實現方案。以前是通過執行緒迴圈逐個開啟串列埠,傳送握手包來確認接入的是那個串列埠,這麼做能實現,不過會產生通訊的資料報資訊。現在,採用windows的訊息機制來捕獲插入的usb狀態,然後,獲取對應的串列埠名稱。**如下:

// usb訊息定義

public const int wm_device_change = 0x219;

public const int dbt_devicearrival = 0x8000;

public const int dbt_device_remove_complete = 0x8004;

public const uint32 dbt_devtyp_port = 0x00000003;

[structlayout(layoutkind.sequential)]

struct dev_broadcast_hdr

[structlayout(layoutkind.sequential)]        

protected struct dev_broadcast_port_fixed

///

/// 檢測usb串列埠的拔插

///

///

protected override void wndproc(ref message m)

break;

}                

}base.wndproc(ref m);

}

虛擬機器中的LINUX使用USB轉串列埠

先在windows 中安裝和 u轉串列埠驅動,然後虛擬機器中新增乙個相應的串列埠。可以在裝置管理器中檢視使用的是 com幾口。如果虛擬機器新增串列埠時沒有提供可用的串列埠,可以通過在裝置管理器中,修改相應串列埠的屬性 埠設定 高階 com埠號設定。如果虛擬機器下沒有檢測出相應的串列埠,則設定為自動檢...

usb轉串列埠的串列埠名自動查詢和匹配

因為從事的測試領域涉及到很多嵌入式的產品,所以經常需要用串列埠去控制裝置,目前最多的是usb轉串列埠的方式,但是串列埠名隨著插入的usb口會發生變化,每次用時需要到裝置管理器中查詢,給程式化的測試工作帶來諸多不便。過去我們設計測試service的時候,這些串列埠資訊是通過配置檔案的形式儲存的。近日做...

usb轉串列埠工作的準備工作

以防忘記,記錄下來,需要用到的東西及技術或環境。1 usb轉串列埠線,剛taobao了乙個,還沒寄來 至於我前面文章提到的有三種模組,以後需要的話再買其他模組的線吧 2 安裝ubuntu系統,暉哥說,要給我個專門的pc機做,周一去搞搞吧,本來想在筆記本上裝的 3 把我的arm板拿公司去,測試時候會用...