mfc 시리얼 통신 예제

| 0

예를 들어 기기에서 최대 문자 블록을 전송하는 경우를 예로 들 수 있습니다. 각 문자 간에 500ms의 시간 시간 값, 당신은 SetCommunicationTimeouts (0,500,0,0,0)로 시간 시간 함수를 설정할 수 있습니다.) 함수가 성공하면 반환 값은 true 그렇지 않으면 false입니다. SerialCtrlDemo 프로젝트는 CSerialIO 클래스를 사용하는 방법을 보여 주며 다음 UI에 설명 된 대로 직렬 통신 이벤트 정보를 쉽게 표시 할 수 있습니다 : CSerialIO 클래스는 외부 API에 대해 정의되고 아래에 나열된 기본 방법은 이제 호출 할 수 있습니다. 아래와 같이 외부 장치와 통신하려는 경우 CSerialCom의 멤버 함수입니다. 대화 상자의 .cpp 파일에서: 다음 단계를 수행하여 CSerialIO 클래스를 사용합니다: 포트 설정은 DCB(데이터 통신 블록)에 지정되어 있습니다. DCB를 초기화하는 가장 쉬운 방법은 GetCommState를 호출하여 기본값을 채우고 변경할 값을 재정의한 다음 SetCommState를 호출하여 값을 설정하는 것입니다. 주구성포트() 함수는 외부 장치에서 지원하는 프로토콜에 기초하여 통신 흐름 제어가 완전히 제어된다는 가정 하에 작성됩니다. CTS/RTS 및 Xon/Xoff 하드웨어 흐름 제어를 확인하지 않고 데이터를 송수신합니다. SerialCom.cpp에서 ConfigurePort()를 구현할 때 이를 담당하는 DCB 멤버의 값을 변경하여 요구 사항에 맞게 수정할 수 있습니다. CreateFile() 함수는 통신 포트를 엽니다. CreateFile()을 호출하여 포트를 여는 방법에는 겹쳐진 방법과 겹치지 않는 방법이 있습니다. 오버랩된 IO 작업 및 중첩되지 않은 IO 작업에 대한 통신 포트를 열 수 있습니다.

CSerialCom 클래스는 겹치지 않는 IO 작업에 대해 작성되었습니다. 오버랩및 중첩되지 않은 IO에 대한 자세한 내용은 MSDN 설명서를 참조하십시오. 이 코드는 RS-232 커넥터로 확인되었으며 SerialThread 클래스의 실행 함수에서 이벤트 처리기를 쉽게 사용자 지정할 수 있습니다. CSerialCom 클래스는 위에서 언급한 기능을 달성하기 위해 6개의 멤버 함수를 사용합니다. 통신 시간 설정은 선택 사항이지만 DCB 값과 유사하게 설정할 수 있습니다. 오래 전에, 나는 직렬 데이터 전송에 대한 몇 가지 도움을 codeguru.com 검색하고 나는 몇 가지 귀중한 정보를 얻었다. 그 이후로 직렬 데이터 전송을 구현하기위한 간단한 클래스를 개발하는 것이 꿈이었습니다. 저는 Ontrak의 클라이언트 중 한 명의 Windows 프로그래머입니다. 우리는 우리의 응용 프로그램에서 사용자 정의 ADR2000을 사용합니다. MFC를 사용하여 Visual C++를 사용하여 직렬 포트에 액세스하는 방법을 보여 달라는 요청을 받았습니다. 샘플 코드는 Windows NT용으로 개발된 프로그램에서 추출되었습니다. 이 프로그램은 윈도우 95로 테스트되었습니다.

다양한 API 호출에 사용되는 모든 매개 변수를 설명하기 위해 노력하지 않습니다. 컴파일러와 함께 제공된 설명서를 참조하십시오. MSDN 종속이 있는 사람들은 “Win32의 직렬 통신” 기사를 참조할 수 있습니다.이 문서에서 설명 된 설명 중 일부는 MSDN 라이브러리에서 가져옵니다. 델파이 버전에서 포팅 MFC 클래스를 지원, 파일 만 두 : Spcomm.h Spcomm.cpp SPCOMM 델파이 유명한 직렬 소프트웨어, 쓰기 멀티 스레드 메시지 방법의 사용.

Follow admin:

Latest posts from