2012-02-21 3 views
0

데이터를 직렬 포트로 보내는 코드가 있습니다. 난 그냥 그것이 제대로 데이터를 전송하고 있는지 확인 싶습니다. 나는 함수의 반환 값과 쓰여진 바이트 수를 검사했는데 성공했다. 내가 쓰는 모든 데이터를 실제로 볼 수있는 다른 방법이 있습니까?테스트 직렬 포트 응용 프로그램

if(WriteFile(m_hSerialComm, pszBuf, dwSize, &dwNumberOfBytesWritten, NULL) != 0) 

나는 "Advanced Terminal Port software"

을 사용하려고하지만 데이터는 창에 오는되지 않습니다.

답변

3

소프트웨어를 테스트하는 방법은 여러 가지가 있습니다. 두 개의 시리얼 포트가있는 경우 다음과 연결할 케이블을 연결하고 언급 한 것과 같은 터미널 응용 프로그램을 사용하여 다른 포트에서 수신하십시오. 그렇지 않으면 핀 2와 3을 함께 연결하여 동일한 포트에서 루프백 할 수 있습니다. 하드웨어가 필요없는 옵션은 가상 직렬 포트를 com0com과 같은 도구에서 제공.

+0

유용한 정보 이제 터미널 응용 프로그램을 사용하여 데이터를 보낼 수 있으며 작동합니다. C# 코드에서도 작동하지만 CreateFile을 사용할 때 오류 메시지를 찾을 수 없다는 오류가 발생합니다. – Jeeva

0

Microsoft Windows 운영 체제에서 개발중인 코드 조각을 가정 할 때 Portmon for Windows "공식적인"직렬 포트 모니터링 유틸리티를 사용하는 것이 좋습니다. 필자는 과거에이 도구를 사용해 왔으며, 여러 가지 필터링/검색 옵션 (특히 직렬 포트에서 전달되는 데이터의 양이 엄청나기 때문에)을 충분히 간단하게 사용할 수있었습니다.

당신이 원하는 것은 당신 자신의 포트에 쓰여진 데이터의 로그입니다. WriteFile (그리고 아마도 ReadFile) 함수를 둘 다 읽고 쓰기를하는 "유틸리티"함수로 캡슐화하지 마십시오. 직렬 포트 및 일부 로그 파일에 있습니까? 타임 스탬프를 추가하고 자신이 작성한 코드에서 "찾고있는 모든 것"을 바로 필터링 할 수도 있습니다.

이 마지막 옵션은 고객과의 응용 프로그램을 원격으로 디버깅 할 때 매우 유용합니다. 로깅을 토글하는 애플리케이션의 버튼을 추가 한 다음 고객에게 "로그"버튼을 누르고 결과를 보내달라고 요청하면됩니다.

+0

64 비트 버전의 Windows에서는 PortMon이 지원되지 않습니다. –