2013-07-08 88 views
1

我目前正在編寫一個應用程序來與稱爲Fluke 5500A多產品校準器的設備進行通信。C#.Net 4.0中的COM端口

Sub Form_Load() 
    Comm1.CommPort = 1 [if using COM2, enter = 2] 
    Comm1.Settings = 「9600,N,8,1」 [baud, parity, data, stop] 
    Comm1.PortOpen = True 
End Sub 

命令按鈕1:

Sub Command1_Click() 
    Comm1.Output = 「REMOTE」 + Chr(10) 
End Sub 

命令按鈕2:

Sub Command2_Click() 
    Comm1.Output = 「LOCAL」 + Chr(10) 
End Sub 

命令按鈕3:

用於校準的手冊使用以下代碼包括樣本VB6程序
Sub Command3_Click() 
    Comm1.Output = 「UUT_SEND 「「<uut command>」」 」 + Chr(10) 
End Sub 

這裏有一個uut命令的例子:

「UUT_SEND 「「REMS\n」」 

我的問題是這樣的。是否可以使用C#.Net 4.0 SerialPort類來實現此通信?我從來沒有嘗試之前,使用串行端口,並且我非常新的這個,但我有在C#中的以下內容:

 Comm1.PortName = "COM1"; 
     Comm1.BaudRate = 9600; 
     Comm1.Parity = System.IO.Ports.Parity.None; 
     Comm1.DataBits = 8; 
     Comm1.StopBits = System.IO.Ports.StopBits.One; 

如何設置Comm1.Output喜歡在樣本程序的設置?而且,SerialPort的類中有什麼與之相對應的?我正在嘗試什麼工作?

+0

它會工作,是完全有可能的。 – Oscar

+0

@ Yve測試應用程序的寫在VB.Net之前的VB6中。我無法確定它的功能是否相同。 – DanteTheEgregore

+0

@Yve我的希望是,我可以通過C#目前做到這一點。我不太瞭解使用串口的方式,所以我不知道如何實現這一點。如果不可能,我總是可以回到VB6,但是我想避免它,因爲我必須寫一個相當龐大的應用程序,我寧願不花時間在VB 6中編寫它。 – DanteTheEgregore

回答

3

可以使用C#.Net 4.0 SerialPort類來實現這種通信。

請參閱以下鏈接獲取信息和支持。

這個女人寫了書(我用過),她的論壇非常適合串口通信。你可能需要的一切是在這裏:

http://www.lvr.com/forum/index.php

我還建議在MSDN論壇,我覺得這對.NET非常有用的。

http://social.msdn.microsoft.com/Forums/en-us/home

這裏有一些鏈接到MSDN串口類具有不同的框架。

http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.aspx

http://msdn.microsoft.com/en-us/library/system.io.ports.serialport(v=vs.90).aspx

這是不可能涵蓋所有這種類型的編碼選項的來龍去脈。各種writeline,readline,redexisting,檢查要讀取的字節等排列,它取決於發送的數據,是否需要定期包含回車符。

我希望這有助於。我認爲這不是重寫代碼的地方,但是如果你陷入某些地方,我肯定會鼓勵你發佈問題。具體是更好的。

+0

謝謝你的幫助。我編輯了這個問題,因爲還有一點我不太明白。如果你能幫助解答,我將不勝感激。 – DanteTheEgregore

+0

任何機會,你可以包括一個如何使用C#SerialPort類來傳遞相同的數據在Comm1.ouput =「UUT_SEND」「」REMS \ n「」+ Char(10)' – DanteTheEgregore

+1

http ://stackoverflow.com/questions/17535998/passing-a-command-to-a-comm-port-using-cs-serialport-class – DanteTheEgregore