2014-03-05 62 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: 沒人能幫忙嗎?

回答

相關問題