2010-01-19 48 views
5

我正在通过C#中的串行端口与设备通信的驱动程序。 我并不总是可以使用该设备进行物理测试。有没有一种方法可以模拟串口上的设备,从而以理想的方式进行响应?如何模拟串行设备?

回答

8

获取第二个COM端口并使用空调制解调器电缆连接COM端口以允许两个C#程序相互通信。

6

我用Com0Com一段时间,并写了一些模拟器/仿真器代码。

0

在一个设计一些自定义硬件的团队工作时,我使用了一个叫ZTerm的伟大终端仿真器(我相信只适用于Mac)。它允许您编写响应文件,使我能够将软件完成到我们预先商定的规范,而定制控制器芯片仍处于设计迭代阶段。

1

什么样的驱动程序?如果它是串行接口驱动程序,那就相当棘手。但是,如果您的驱动程序是Windows设备驱动程序之上的应用程序级别,那么通过更改传递给CreateFile的字符串或该C#使用的顶层上的任何层来替换I ​​/ O行为是相当容易的。

== ==更多

由于您使用.NET库工具,这种技术可能太令人讨厌的打扰。然而,这个想法是取代你的代码在某处开放COM1:或其他地方。将其改为具有模拟数据的文件,例如`c:/com1testdata.txt'。识别文件内容的暂停和/或响应的其他仿真代码可能对某些协议有用。根据您的要求,写入端口的数据可以被记录或忽略。

+0

它是一个应用程序层驱动程序,我只是使用.NET串行工具在端口上发送和接收字符串...你能给我多一点信息吗? – PICyourBrain 2010-01-19 17:44:46

0

如果您正在虚拟机中运行,您可能可以将某些东西附加到串行端口。例如,QEMU允许您将虚拟串行端口连接到TTY,然后您可以手动或使用主机上运行的程序进行交互。