많은 페이지를 선택했지만 여전히 답을 찾지 못했습니다.직렬 포트에서 C# 주기적으로 새 줄을 읽는 중
내 문제는 다음과 같습니다. RS232를 통해 컴퓨터에 연결된 장치가 있습니다. 기기가 다음과 같이 두 번째 줄을 보내고 있습니다.
"*X;0;bbb;cc;d;eee;f\r\n"
필드는 고정 폭 숫자 필드입니다. 매 분마다 0 플래그가 1로 올라가고 "cc"가 변경됩니다. 그 때 내가 필요로하는이 번호.
C# 응용 프로그램에서는 제대로 작동하지 않습니다. recieve 이벤트를 사용하여 데이터를 얻으려고했지만 새로 고친 결과에 10 초 이상 처리해야합니다. 이것은 플래그가 올라간 지 10 초 후에 결과를 얻는다는 것을 의미합니다. 때로는 더 오래 걸리는 경우도 있습니다.
먼저 RecieveEvent로 시도해 보았습니다. 심지어 라인을 채울 때까지 버퍼를 채우려고했지만, 다시 같은 결과가 나타납니다. 그런 다음 Timer를 사용하여 300ms마다 호출하고 행을 읽습니다. 여전히 같은 문제.
제 질문은 직렬 포트에서 최신 데이터를 읽고 최신 상태로 유지하는 방법입니다.
당신은 매우 혼란스럽고, 저처럼 될 수도 있습니다. 결과를 계산하는 데 10 초가 걸리고 더 빨리 원하면 시간 기계가 필요합니다. 당신은 충분한 jiggawatts가 없습니다. –
아니요, 여기서 문제는 지연이 있다는 것입니다. 내가 관심있는 문자열이 지금 (시간 = t) 보내졌고, 나는 보통 그것을 얻는다 (시간 = t + 10 초). 아마도 어딘가에 버퍼에 저장되어있을 것입니다. 그러나 ReadLine() 함수가 올 때까지 10 초 이상이 지나면 –