직렬 장치를 여러 개의 가상 직렬 포트로 분할하고 모든 데이터를 해당 장치로 라우팅하는 프로그램이 있습니다.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 : 아무도 도와 드릴 수 있습니까?