Universidad de Magallanes

Investigación


Dirección de Investigación


facebook twitter youtube
02 de agosto del 2019

mfc rs232 통신 예제

클래스 CSerialPort를 사용 하려면 CSerialPort::Open 다음 읽기 또는 쓰기 작업을 수행, 설정 또는 통신 신호의 상태를 테스트 하 고 일단 완료 된 포트를 닫습니다 (파괴자가 수행 하기 때문에 필수). 읽기 및 쓰기 메서드는 전송 또는 수신된 데이터의 유형과 형식에 대해 가정하지 않으며 유니코드, MBC 등이 있는 경우 문자 또는 이진 형식을 처리하는 경우 고려해야 합니다. 다음과 같이 정의된 개방형 함수: 이 클래스를 사용하는 방법을 배우는 가장 좋은 방법은 제공된 예제를 보는 것입니다. 기본적으로 직렬 포트는 comm 포트(예: “COM1″)의 이름과 원하는 비트 전송률을 클래스 생성자(예: ADR2000에 명령을 보내려면 WriteFile 호출)를 사용하여 열립니다. 예를 들어, 다음 호출은 Re(읽기 이벤트 카운터) 명령을 ADR2000으로 보냅니다. 예가 다소 오래된 경우에도 마찬가지입니다. 최신 Windows 시스템을 사용하여 직렬 포트에 액세스하는 것은 여전히 동일합니다. 이는 모든 것을 잘 설명하는 좋은 예입니다: Windows NT에서 하드웨어에 대한 직접 액세스가 허용되지 않습니다. SerialCtrlDemo 프로젝트는 CSerialIO 클래스를 사용하는 방법을 보여 주며 다음 UI에 설명된 대로 직렬 통신 이벤트 정보를 쉽게 표시할 수 있습니다. 성공적인 의사소통을 확립하기 위해 알려야 합니다. 직렬 포트의 가장 빈번한 이름이 “COM1:”에서 “COM4:”인 경우에도 컴퓨터에 4개 이상의 직렬 포트가 있을 수 있으며 직렬 드라이버는 “COMxx” 이름 규칙을 따르도록 강요받지 않으므로 직렬 포트는 Win32 플랫폼에서 모든 이름을 가질 수 있습니다.

설치된 직렬 포트의 이름을 얻기 위해 정적 함수를 가지는 것이 좋지만, 내가 아는 한 문서화 된 방법은 없습니다. 설치된 포트에 대해 알 수 있는 간단한 방법이 있습니다: 포트 이름이 “COMxx:” 규칙을 따르고 가능한 모든 포트를 열려고 한다고 가정하고 오류가 있고 GetLastError()가 ERROR_FILE_NOT_FOUND를 반환하면 포트가 설치되지 않습니다. 설치된 포트 이름을 알 수있는 또 다른 방법이 있으며 레지스트리에서 검색하지만 문서화되지 않은 플랫폼이 다릅니다. “직렬 포트 c ++ 예”또는 유사한 문구에 대한 인터넷 단지 구글을 arount 훨씬 더 좋은 예가 있으며, 당신은 더 유용한 물건을 찾을 수 있습니다. ZIP 형식의 이 예제 (85K)에서 Visual C++ 프로젝트를 검색하려면 “VISUAL C++ EXAMPLE”를 클릭합니다. com 포트의 이름이 명령줄 매개 변수로 전달될 것으로 예상합니다. 해당 직렬 포트를 열고 115200 bps에서 통신합니다. 다른 비트 레이트가 필요한 경우 소스 코드를 수정해야 합니다. 동기 및 비동기 직렬 통신을 지원하는 많은 샘플을 검색했지만 단점은 항상 직렬 데이터를 계속 읽기 위해 스레드 또는 타이머를 구현해야한다는 것입니다. 직렬 포트에 액세스하는 이벤트(읽기/쓰기/열기/CLOSE)를 쉽게 처리할 수 있습니다.

http://www.codeguru.com/cpp/i-n/network/serialcommunications/article.php/c5425 기사와 함께 언급 된 클래스를 사용하는 간단한 샘플이있다, 예는 직렬 바코드 판독기에서 바코드를 읽는 프로그램입니다.

inicio atrás arriba

DESTACADOS

  • LINKS


  • Dirección de Investigación

    Investigación • Avenida Bulnes 01890 • Punta Arenas • Chile
    Teléfono: +56 61 2 209 397 • Email: dir.investigacion@umag.cl