2014-03-05 15 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 : 아무도 도와 드릴 수 있습니까?

답변

0

com0com을 테스트 할 수 있다고 생각합니다. 가상 직렬 포트를 연결 한 다음 하나에 쓰고 다른 포트에서 읽은 포트를 읽을 수 있습니다. enter link description here