我正在开发通过C#中的串口与设备通信的驱动程序。 我并不总是可以使用该设备进行物理测试。有没有办法在串口上模拟设备,以便以理想的方式响应?
答案 0 :(得分:8)
获取第二个COM端口并使用Null-modem电缆连接COM端口,以允许两个C#程序相互通信。
答案 1 :(得分:6)
我使用了Com0Com一段时间并编写了一些模拟器/模拟器代码。
答案 2 :(得分:1)
什么样的司机?如果它是串行接口驱动程序,那就非常棘手。
但是,如果您的驱动程序是Windows设备驱动程序之上的应用程序级别,那么通过更改传递给CreateFile
的字符串或者C#之上的任何层来替换i / o行为相当容易。
==更多==
由于你使用.net库工具,这种技术可能太麻烦了。但是,我们的想法是在某些时候替换您的代码开放COM1:
或其他任何地方。将其更改为具有模拟数据的文件,例如`c:/com1testdata.txt'。识别文件内容暂停和/或响应的附加仿真代码可能对某些协议有用。根据您的要求,可以记录或忽略写入端口的数据。
答案 3 :(得分:0)
在设计一些自定义硬件的团队中工作时,我使用了一个名为ZTerm的优秀终端模拟器(我相信只适用于Mac)。它允许您编写响应脚本,使我能够在预定的控制器芯片处于设计迭代阶段时完成软件到我们预先商定的规范。
答案 4 :(得分:0)
如果您在VM中运行,则可以将内容附加到串行端口。例如,QEMU允许您将虚拟串行端口连接到TTY,然后您可以手动或与主机上运行的程序进行交互。