2014-03-05 49 views
1

我有一个程序可以将串口设备分成多个虚拟串口并将所有数据发送给它们。C++ - 在没有物理设备的情况下测试串口

    ---- /dev/ttyS1.a [data]-> 
        | 
[data]-> /dev/ttyS1 ---- /dev/ttyS1.b [data]-> 
        | 
        ---- /dev/ttyS1.c [data]-> 

我的工作程序(伪的可读性和简单起见代码):

poll(...) { 
    // Route data from master to vsp 
    master.read(buf) 
    for(virtual serial ports as vsp) { 
     vsp.write(buf) 
    } 
    // Route data from vsp to master (if need be) 
    for(virtual serial ports as vsp) { 
     if(vsp.needs_to_write()) { 
      vsp.read(buf) 
      master.write(buf) 
     } 
    } 
} 

我有我的机器上的一个物理串行端口设备,通过连续地将数据,这是我怎么测试,如果我的程序最初工作正常,但我想写一个测试来模拟/模拟写入和读取两个方向并验证两端的数据。由于我从物理串行端口设备接收到的数据看似是随机数据,因此很难验证进入的内容正在写什么。

我怎么能做到这一点? (伪代码)

1. fork process that feeds a known char sequence into /dev/ttyS2 in a loop 
2. use my program to read from the COM `master.read(buf)` and then write to the vsp `vsp.write(buf)` 
3. how can I verify that after writing to the buf that the vsp has the correct data? 

任何帮助表示赞赏我很困惑如何自动测试这个。

编辑1: 没人能帮忙吗?

回答

相关问题