2012-06-01 28 views
2

從來沒有做過任何一種嵌入式或硬件編程,我主要處理web應用程序。但是,我們有必要關閉/可能在C#中使用USB中繼。我獲得了我們購買的設備的PDF文件hereUSB Relay單元編程

在該文件中有一些示例代碼,如:

private void button1_ON_Click(object sender, EventArgs e) 
{ 
serialPort1.Write(new byte[] { 0xFF, 0x01, 0x01 }, 0, 3); 
} 
private void button1_OFF_Click(object sender, EventArgs e) 
{ 
serialPort1.Write(new byte[] { 0xFF, 0x01, 0x00 }, 0, 3); 
} 

的問題是,不,我需要一個DLL /某種庫的訪問serialPort1,遺憾的垃圾問題,但我只是不確定這是如何工作的。我從pdf或網站上看不到任何關於我需要參考的任何圖書館的跡象。

回答

2

不,您只需要使用SerialPort類。據我所知,USB設備可能將自己註冊爲一個名爲'COM ##'的串口,其中哈希表示數字。您需要提供端口名稱和比特率。

+0

因此,一旦USB設備註冊,我只是實例化一個'SerialPort'對象,並通過端口名稱和比特率來獲得句柄,即'serialPort1'如上例所示? – JonH

+0

是的,我相信。我沒有試過在.net中做這個,但是這個模式看起來和.net之前的做法很相似。此外,您可能可以輪詢可用的串行端口以查看哪些是您的設備。 –

1

FTDI製造USB /串行芯片組。使用其芯片組的USB設備將作爲串行設備(COM端口)顯示在您的計算機上。如果沒有包裝產品軟件,FTDI有一個驅動程序,您可以從他們的網站下載。相當標準。

驅動程序鏈接可在該產品PDF上找到。 http://www.ftdichip.com/Drivers/VCP.htm

安裝時,您只需通過串口進行通信。

2

.NET自帶一個System.IO.Ports.SerialPort類,糟糕透頂。這就是示例中正在使用的內容。如果你只需要發送數據,而不需要自動檢測端口,而是有一個存儲的配置文件,那麼它可能會工作得很好。

如果你爲旋轉工作線程和爲了從串口讀取同步而不能使用由hotplug通知生成的即插即用端口名稱這一想法感到惱火,那麼我建議使用另一個串行API。 Win32的一個並不壞,我希望有一天能夠發佈我的工作包,這使得所有這些任務變得簡單(檢測設備何時插入,如何根據USB描述符字符串查找端口,如何提高UI數據到達時的事件)。

+0

感謝您的幫助。 – JonH

+1

說整個班級都很溫和。這是一個非常棒的方式,可以在幕後爲您提供一百個後臺線程,並導致大量計時問題。啊! – ctacke