2013-07-08 51 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