VC++를 사용하여 직렬 포트 응용 프로그램을 작성합니다. 스위치 장치에 포트를 열고 명령을 보내고 출력을 표시 할 수 있습니다. 주어진 명령의 출력을 위해 항상 열린 포트를 읽는 스레드를 실행 중입니다. 내 메인 스레드는 읽기가 완료 될 때까지 기다린다. 그러나 문제는 명령 출력이 끝나는 것을 어떻게 인식 할 수 있는가이며, 나는 주 스레드에게 신호를 보내야한다.직렬 포트 프로그래밍 - 수신 된 데이터의 끝을 인식합니다.
0
A
답변
2
거의 모든 직렬 포트 통신에는 프로토콜이 필요합니다. 수신자가 응답이 완전히 수신되었음을 발견하는 몇 가지 방법. 아주 간단한 방법은 나머지 데이터에는 나타나지 않는 고유 한 바이트 또는 문자를 사용하는 것입니다. 라인 피드는 표준이며, 예를 들어 모든 모뎀에서 사용됩니다.
임의의 바이너리 데이터를 전송해야 할 때 더욱 정교 해져야합니다. 이에 대한 일반적인 해결책은 먼저 응답의 길이를 보내는 것입니다. 수신기는 수신 된 바이트를 카운트 다운하여 언제 완료되었는지 알 수 있습니다. 이것은 수신기가 송신기와 재 동기화 할 수있는 기회를 갖기 위해 특정 시작 바이트 값으로 더해질 필요가있다. 수신자가 전송 오류를 감지 할 수 있도록 체크섬 또는 CRC가 포함되는 경우가 많습니다. 그 결과, 수신기로부터 ACK/NAK 응답으로 오류를 복구 할 수있게되었습니다. 그러면 TCP를 다시 발명하는 과정에 잘 적응할 수 있습니다. RFC-916의 RATP 프로토콜은 널리 무시되지만 좋은 예입니다.
관련 문제
- 1. 직렬 포트 프로그래밍?
- 2. Windows에서 직렬 포트 프로그래밍
- 3. 직렬 포트 프로그래밍
- 4. iPhone에서 직렬 포트 프로그래밍
- 5. 직렬 포트 데이터 수신 문제
- 6. 직렬 포트 데이터 수신 처리
- 7. C에서 직렬 포트 수신 버퍼 지우기 #
- 8. 직렬 포트 데이터의 실시간 그래프 표시
- 9. 직렬 포트
- 10. 직렬 포트 + C# 데이터 수신 문제
- 11. 직렬 포트 데이터 수신 이벤트가 확실하지 않다면
- 12. 지속적인 직렬 포트
- 13. MacPython : 프로그래밍 방식으로 모든 직렬 포트 찾기
- 14. C에서 다중 스레드로 직렬 포트 프로그래밍
- 15. Win32 API를 통한 직렬 포트 프로그래밍 VB6
- 16. Windows CE 프로그래밍 직렬 포트 - 왜곡 된 출력 받기
- 17. .NET에서 직렬 포트 통신
- 18. 직렬 포트 데이터 구조
- 19. 직렬 포트 성능
- 20. D를 사용하는 직렬 포트 또는 USB 포트?
- 21. 직렬 포트 통신의 버그
- 22. 직렬 포트 액세스가 거부되었습니다.
- 23. 직렬 포트에서 데이터를 처리하는 동안 직렬 포트 스레드 잠금
- 24. Visual C++로 직렬 포트 프로그래밍 arduino 프로그래밍
- 25. 루비 직렬/병렬 포트 조작
- 26. 직렬 포트 통신 프로젝트
- 27. micaz에서 직렬 포트 읽기.
- 28. 직렬 포트, RTS CTS, 어셈블리
- 29. 직렬 포트 데이터가 양식과 별도 클래스로 수신 됨
- 30. 리눅스 직렬 포트 - mulithread 프로그램
이것은 출력의 가변성 때문에 문제입니다. 기다릴 이유가없는 한 수신 된 문자가 도착하거나 매 xms마다 표시하십시오. – dbasnett