2014-10-06 2 views
0

X 바이트가 버퍼에 도착하면 활성화되는 이벤트를 사용하고 있습니다. 일반적인 buffer(), available() 및 read() 직렬 포트 방법입니다. 제 질문은 무선 (또는 어떤 매체)을 통해 패킷을 보낼 때 패킷이 한 번에 전체 길이로 도착했는지를 예상 할 수 있다는 것입니다. 또는 바이트는 패킷을 형성하는 버퍼를 통해 순차적으로 도착 하는가? 왜냐하면 나는 전체 패킷 길이를 고려하여 buffer()를 사용해야하는지 아니면 패킷을 형성하는 도착 바이트를 고려하여 사용해야하는지 알지 못하기 때문입니다. 제 생각에 펌웨어는 먼저 cheksum 연산을 사용하여 패킷이 완전히 도착했는지 확인한 다음 버퍼로 이동합니다. 그렇지 않니?버퍼 및 패킷

+0

때때로 길이 필드조차도 조각화 될 수 있습니다. "프레이밍 프로토콜"을 찾으십시오. – user373884

답변

1

직렬 포트 및 TCP 연결은 바이트 스트림입니다. 1 바이트보다 큰 메시지 경계는 없습니다. 다른 프로토콜을 사용하지 않고도 1 바이트보다 큰 메시지는 전송할 수 없습니다.