중국시가넷 - 메시지 플랫폼 - QT 에서 직렬 데이터를 읽는 방법
QT 에서 직렬 데이터를 읽는 방법
파일 다운로드 주소:
제가 스크린에 올린 것도 다운로드 할 수 있습니다.
둘째, 문서 내용 소개
1. 다운로드한 파일은 qextserialport-1.2 win-alpha 이며, 압축을 풀면 다음과 같습니다.
(명확한 큰 그림을 보려면 그림을 클릭하십시오)
다음은 별도로 설명합니다.
(1)doc 폴더의 파일 내용은 QextSerialPort 클래스 및 QextBaseType 에 대한 간단한 설명이며 메모장 프로그램을 사용하여 열 수 있습니다.
(2) 샘플 폴더에는 몇 가지 샘플 프로그램이 있습니다. 소스 코드를 볼 수 있지만, 실행하고 싶다면 많은 문제가 있을 수 있습니다.
(3)html 폴더는 QextSerialPort 클래스의 사용 문서입니다.
④ 나머지 서류가 뒤 따른다. 여기서 qextserialenumerator.cpp 및 qextserialenumerator.h 파일이 지정됩니다.
QextSerialEnumerator 클래스는 플랫폼에서 사용 가능한 직렬 포트 정보를 가져오는 데 사용됩니다. 하지만 이 클래스는 별로 유용하지도 않고, 우리의 중점도 아니기 때문에 아래에 있습니다.
나는 더 이상 소개하지 않을 것이다.
(5)QextSerialBase. CPP 및 qextserialbase.h 파일은 qextserialbase 를 정의합니다.
클래스, win_qextserialport.cpp 및 win_qextserialport.h 파일은 win_qextserialport 를 정의합니다.
클래스에서 posix_qextserialport.cpp 및 posix_qextserialport.h 파일은 하나를 정의합니다.
Posix_QextSerialPort 클래스, qextserialport.cpp 및 qextserialport.h 파일은 하나를 정의합니다.
QextSerialPort 클래스. 이 QextSerialPort 클래스는 위에서 언급 한 클래스입니다. 이 모든 클래스의 하위 클래스이자 가장 높은 추상화입니다. 플랫폼 기능을 차단합니다.
따라서 모든 플랫폼에서 사용할 수 있습니다.
2. 몇 가지 수업 소개.
다음은 이러한 클래스에 대한 차트입니다.
QIODevice 클래스에서 상속된 것을 볼 수 있으므로 이 클래스의 일부 함수를 직접 사용할 수도 있습니다. 그림에는 QextBaseType 클래스도 있는데, 실제로는 하나의 태그일 뿐이다.
구체적인 내용은 거의 없습니다. Win_QextSerialPort 또는 Posix_QextSerialPort 를 나타내는 데 사용됩니다.
QextSerialPort 클래스는 조건부 컴파일을 사용하므로 QextSerialPort 클래스는 에서 사용할 수 있습니다.
Win_QextSerialPort 클래스는 Posix_QextSerialPort 클래스에서 상속될 수도 있으므로 QextBaseType 으로 표시됩니다. 지금 이 순간
Qextserialport.h 파일에서 볼 수 있습니다. 또한 QextSerialPort 클래스는 실제로 프로그램 간 플랫폼 컴파일을 용이하게 하기 위해 다양한 용도로 사용될 수 있습니다
플랫폼에서는 조건에 따라 서로 다른 클래스를 컴파일하고 상속합니다. 그래서 추상적인 것일 뿐, 몇 개의 구성자를 제공하며, 구체적인 내용은 없다. Qextserialport.h 파일에서 다음을 수행합니다.
조건부 컴파일은 다음과 같습니다.
#ifdef_TTY_POSIX_
# include "POSIX _ qextserialport.h"
# qextbasetypeposix _ qextserialport 정의
# 그렇지 않으면
# "win_qextserialport.h" 포함
# QextBaseTypeWin_QextSerialPort 정의
#endif
따라서 실제로 이 클래스를 사용할 필요가 없습니다. Win_QextSerialPort 또는 Posix_QextSerialPort 만 사용하면 됩니다. 물론, 만약
이 클래스를 사용하여 동일한 소스 프로그램을 구현하려는 경우 Windows 및 Linux 에서 직접 컴파일하고 실행할 수 있으므로 Linux 아래의 여기에 추가해야 합니다.
#define _TTY_POSIX_. 프로그램을 더 명확하게 하기 위해서, 우리는 여기서 이 클래스를 사용하지 않기 때문에, 우리는 여기서 그것을 소개하지 않는다.
QextSerialBase 클래스는 QIODevice 클래스에서 상속되며, qextserialbase 클래스는 직렬 포트를 조작하는 데 필요한 변수와 함수를 제공합니다
Win_QextSerialPort 및 Posix_QextSerialPort 는 QextSerialBase 에서 상속됩니다.
클래스, Win_QextSerialPort 클래스는 Windows 플랫폼에서 직렬 포트를 조작하는 일부 기능을 추가하고 Posix_QextSerialPort 클래스는 추가합니다.
리눅스 플랫폼에서 직렬 포트를 조작하는 일부 기능. 따라서 Windows 에서는 Win_QextSerialPort 클래스를 사용하고 Linux 에서는 이를 사용합니다.
Posix_QextSerialPort 클래스.
3.QextSerialBase 클래스에는 열거 변수 QueryMode 도 포함됩니다.
Polling 과 EventDriven 의 두 가지 값이 있습니다.
。 QueryMode 는 직렬 포트를 읽는 방식이며 쿼리 모드, 폴링 모드 및 이벤트 중심 모드라고 합니다.
이벤트 중심 방법은 이벤트를 사용하여 직렬 포트 읽기를 처리하는 것입니다. 데이터가 도착하면 readyRead () 신호가 전송되며 직렬 포트 데이터를 읽기 위해 연결할 수 있습니다. 이벤트 중심 모드에서 직렬 포트의 읽기 및 쓰기는 비동기적이며 읽기 및 쓰기 함수를 호출하면 즉시 반환되며 호출 스레드가 고정되지 않습니다.
그러나 폴링 방법은 다릅니다. 읽기 및 쓰기 기능은 동시에 실행되므로 신호가 이 모드에서 작동하지 않으며 일부 기능은 구현되지 않습니다. 그러나, 이 모델의 지출은 매우 적다. 직렬 데이터를 읽으려면 자체 타이머를 설정해야 합니다.
위 두 모드는 Windows 에서는 지원되지만 Linux 에서는 폴링 모드만 지원됩니다.
셋째, 요약.
마지막으로, 이 클래스를 사용하여 Qt 에서 직렬 프로그램을 작성하는데, 플랫폼에 따라 네 개의 파일만 사용하면 됩니다.
- 관련 기사
- 중국건설은행 온라인 지불은 왜 문자확인코드가 없나요?
- 휴대폰 문자 메시지를 통해 비즈니스 계정의 잔액을 확인하는 방법은 무엇입니까? 혜상은행에서 개설한 기본계좌입니다.
- 기업 청렴성 품질 슬로건
- 통신 인터넷 카드는 어떻게 활성화합니까?
- 농은행이 불완전한 문자 메시지를 보냈다.
- 편지가 있으면 어떻게 상대방에게 문자를 보내나요?
- 오늘 한 네티즌, 기혼남을 만났는데, 나에게 매우 예의 바르고 무례를 요구하지 않았다. 우리는 함께 밥을 먹고 커피를 마셨고, 그는 "나를 좋아해, 나를 사랑해, 안돼" 라고 말했다
- Qidong 넓은 병원 예약 전문가
- 공상은행으로부터 위험 정보를 받다
- 인사, 문자, 인사.