如何模拟SerialPort交互以进行测试?

CJM*_*CJM 19 c# simulation serial-port

我即将开始开发一个小型应用程序(C#),通过串行端口与PLC和测试单元进行通信 - 这是我第一次进入该领域.

本质上,我将向PLC发送信号以启动操作,然后我将等待来自测试单元(将与PLC独立通信)的操作结果返回ASCII字符串.

根据该字符串的内容,我可能想收听来自PLC的信号......

这对我来说都是新手,所以目前我只是在研究System.IO.Ports.SerialPort; 题外话:那里有第三部分产品,而不是简化与串口的互动,还是内置的课程和你一样好?我想的是易用性而不是更好的功能.

但是,在硬件可用于开发和测试之前几周,我想知道如何模拟与串口之间的通信,以便我可以开始开发我的应用程序?

[我还不知道PLC和PC是如何通信的 - 我知道它将是二进制而不是文本,但此刻,这就是我所知道的.]

Dav*_*uge 15

摘要接口后面的串口通信,以便您可以针对接口编写应用程序代码,然后使用"假"实现进行测试.当你拥有真实的硬件时,你可以编写接口的"真实"实现并换掉假的.

例如,你有一个界面

public interface ISerialComms
{
    void SendMessage(string message)
}
Run Code Online (Sandbox Code Playgroud)

并且您使用虚假实现针对该界面编写应用程序代码:

public class FakeSerialComms : ISerialComms
{
    public void SendMessage(string message)
    {
        //some implementation
    }
}
Run Code Online (Sandbox Code Playgroud)

希望有所帮助!

  • 我喜欢这个解决方案.对于集成测试,虽然我经常发现我无法访问我正在接口的设备,除非我在客户站点.这有点限制了我有效地进行集成测试的能力,除非我编写某种模拟器. (2认同)

fry*_*bob 12

我过去使用com0com取得了一些成功.