RS-232 직렬 포트를 통해 통신하는 산업용 계측기를 제어하는 프로젝트를 시작했습니다. 통신 속도는 9600 ... 상당히 느립니다.직렬 통신 기반 계측기 제어 애플리케이션을위한 아키텍처 제안
이 계측기는 폴링 모드 (PC가 요청을 보내고 계측기가 데이터로 응답하는 모드)에서 작동 할 수 있습니다. 또는 계측기가 일정한 스트림 데이터를 전송하는 연속적입니다. 데이터를 ASCII에서 부동 소수점 숫자로 변환하고 플롯해야합니다.
SerialPort DataRecieved 이벤트를 사용하는 샘플 프로그램을 사용한 나의 초기 실험은 길조가 아니 었습니다 ... 계측기의 연속 전송으로 인해 사용자 인터페이스가 응답하지 않게하는 것이 매우 쉬웠습니다.
별도의 작업 등을 생성하는 다른 샘플 프로젝트를 살펴 봤지만 모두 상당히 복잡해 보였습니다. 특히 최신 .NET 런타임 (4.5 버전)의 기능이 더 좋은지 궁금합니다. .1 내가 이것을 쓴 것처럼).
비동기 API 및 데이터 흐름은 특히 이러한 유형의 응용 프로그램에 유망한 것으로 보입니다. 데이터 수신을 위해 Async API를 실험하기 시작했습니다. 코드는 매우 간단하지만 강력하게 만드는 데 문제가 있습니다 (예외 처리).
가장 간단한 접근법은 비동기 메서드를 사용하여 데이터를 일종의 스레드 안전 큐로 구문 분석하는 것입니다.이 대기열은 플로팅을 위해 UI에 이벤트를 발생시킵니다. 그러나 나는 아직도 세부 사항을 연구 중이다.
이 문제를 해결하는 가장 좋은 방법에 대한 제안을 찾고 있습니다.
, 사용자 인터페이스가 응답하게 종류를이 문서를 추천 할 것입니다. 그건 highfalutin 아키텍처는 필요 없지만 단순히 코드를 수정하면됩니다. 우리는 그것을 볼 수 없다. –