documentation for the Serial Port 상태 :직렬 포트를 통해 두 메시지 사이의 기간을 확인하는 방법
가 DataReceived 이벤트가 보장되지는 받은 모든 바이트에 대해 발생합니다. BytesToRead 속성을 사용하여 의 데이터가 버퍼에 얼마나 남았는지 확인합니다.
우리가 구현하려는 프로토콜은 유휴 기간별로 메시지를 분리합니다. 우리는 각 캐릭터의 수신 시간에 의존해야하기 때문에 .NET의 제한이 문제인 것처럼 보입니다.
누구든지 .NET의 SerialPort가 이벤트 발생 여부를 결정하는 방법을 알고 있습니다. 높은 전송 속도로 스팸 메일을 보내는 것을 피하는 것입니까?
적어도 한 번의 이벤트가 XY 밀리 초 내에 발생한다는 보장이 있습니까? 최소한의 기간은 무엇입니까?
이 문제를 해결하는 방법은 무엇입니까?
EDIT : 좀 더 많은 조사에 따르면 제한 시간을 설정하여 수행 할 수 있음을 보여줍니다. 바보 야!
단순히 for 호출로 for 루프를 사용하십시오. 읽고 읽을 바이트가 있는지 확인하고 메시지 경계를 검색 할 시간을 추적하십시오. 일부 높은 정밀도 수면을 사용합니다. – CodingBarfield