Qt Positioning NMEA 플러그인
개요
Qt Positioning 에 포함된 위치 플러그인은 NMEA 문장을 위치 업데이트로 파싱하는 위치 플러그인입니다. 이 플러그인은 직렬 포트, 소켓 또는 파일을 소스로 사용할 수 있습니다.
이 플러그인은 공급자 이름 nmea를 사용하여 로드할 수 있습니다.
파라미터
다음 표에는 nmea 플러그인에 전달할 수 있는 매개변수가 나열되어 있습니다.
파라미터 | 설명 |
---|---|
nmea.source | NMEA 데이터를 가져오는 데 사용할 소스입니다. |
nmea.baudrate | 직렬 포트 연결에 사용할 전송 속도(양수 정수로 표시)입니다. 일반적으로 QSerialPort::BaudRate 열거형에 있는 값 중 하나이어야 합니다. 매개변수가 지정되지 않았거나 양의 정수를 포함하지 않으면 기본값인 4800 이 사용됩니다. |
nmea.satellite_info_simulation_interval | 시뮬레이션 모드에서 파일에서 위성 정보 데이터를 읽는 간격입니다. |
소스마다 데이터를 제공하는 방법이 다릅니다. 다음 표에는 소켓, 직렬 포트 및 파일 입력에 대한 nmea.source
파라미터를 제공하는 다양한 방법이 나와 있습니다.
방식 | 예제 | 설명 |
---|---|---|
소켓://호스트명:포트 | socket://localhost:12345 | 소켓 : 키워드를 사용하여 소켓에서 nmea 데이터를 가져오도록 지정합니다. 포트 port 를 사용하여 호스트 hostname 에 연결을 시도하는 TCP 소켓이 생성됩니다. 연결에 성공하면 서버로부터 텍스트 NMEA 스트림이 수신될 것으로 예상됩니다. |
serial:포트명 | serial:/dev/ttyUSB0 | serial: 키워드를 사용하여 직렬 포트에서 NMEA 데이터를 가져올 것을 지정합니다. 플러그인은 기본 전송 속도 = 4800 Bd로 portname 포트에 연결을 시도합니다(전송 속도 값은 nmea.baudrate 매개 변수를 사용하여 지정할 수 있음). 연결에 성공하면 직렬 포트에서 텍스트 NMEA 스트림이 수신될 것으로 예상됩니다. 포트 이름 없이 serial: 을 사용하는 경우, 플러그인은 공급업체 식별자를 사용하여 잘 알려진 직렬 장치 중 하나를 찾으려고 시도합니다. 그러나 잘 알려진 장치 목록이 적고 사용 중인 하드웨어가 포함되지 않을 가능성이 높으므로 직렬 포트 연결을 사용하는 권장 방법은 아닙니다. |
serial:COM1 | ||
serial: | ||
파일 경로 | /home/user/nmealog.txt | 로컬 파일의 경로를 지정하려면 file:/// 또는 전체 파일 경로를 사용합니다. |
file:///filepath | file:///home/user/nmealog.txt | |
qrc:///filepath | qrc:///nmealog.txt | 애플리케이션 리소스에 있는 파일의 경로를 지정하려면 qrc:/// 접두사를 사용합니다. |
참고: nmea.source
파라미터를 지정하지 않으면 플러그인은 잘 알려진 직렬 장치 중 하나를 찾으려고 시도합니다( nmea.source = serial:
지정한 경우처럼).
위치 소스 사용 예
다음 예는 다양한 데이터 소스를 사용하여 nmea PositionSource 를 만드는 방법을 보여줍니다.
QML
// text file PositionSource { name: "nmea" PluginParameter { name: "nmea.source"; value: "qrc:///nmealog.txt" } } // socket PositionSource { name: "nmea" PluginParameter { name: "nmea.source"; value: "socket://localhost:22222" } } // serial port PositionSource { name: "nmea" PluginParameter { name: "nmea.source"; value: "serial:/dev/ttyACM0" } PluginParameter { name: "nmea.baudrate"; value: 4800 } }
C++
// text file QVariantMap params; params["nmea.source"] = "qrc:///nmealog.txt"; QGeoPositionInfoSource *textPositionSource = QGeoPositionInfoSource::createSource("nmea", params, this); // socket params["nmea.source"] = "socket://localhost:22222"; QGeoPositionInfoSource *socketPositionSource = QGeoPositionInfoSource::createSource("nmea", params, this); // serial port params["nmea.source"] = "serial:/dev/ttyACM0"; params["nmea.baudrate"] = 4800; QGeoPositionInfoSource *serialPositionSource = QGeoPositionInfoSource::createSource("nmea", params, this);
참고: PositionSource 을 생성한 후에는 다른 유형의 소스 데이터를 사용하도록 재구성할 수 없습니다.
위성 정보 소스 사용 예
nmea 플러그인은 위치 정보 외에도 위성 정보도 제공할 수 있습니다.
QML
// serial port SatelliteSource { name: "nmea" PluginParameter { name: "nmea.source"; value: "serial:/dev/ttyUSB0" } PluginParameter { name: "nmea.baudrate"; value: 9600 } } // socket SatelliteSource { name: "nmea" PluginParameter { name: "nmea.source"; value: "socket://localhost:22222" } }
C++
// serial port QVariantMap parameters; parameters["nmea.source"] = "serial:/dev/ttyUSB0"; params["nmea.baudrate"] = 9600; QGeoSatelliteInfoSource *serialSource = QGeoSatelliteInfoSource::createSource("nmea", parameters, this); // socket parameters["nmea.source"] = "socket://localhost:22222"; QGeoSatelliteInfoSource *socketSource = QGeoSatelliteInfoSource::createSource("nmea", parameters, this);
사용자 지정 시뮬레이션 속도 설정
QGeoSatelliteInfoSource 을 사용하여 NMEA 스트림으로 파일을 읽으려면 추가 매개변수 "nmea.satellite_info_simulation_interval"
를 사용할 수도 있습니다. 이 매개변수는 위성 정보 메시지의 재생 속도(밀리초 단위)를 지정하는 데 사용됩니다. 허용되는 최소 주파수는 minimumUpdateInterval()로 지정합니다. 이보다 작은 값을 지정하면 무시됩니다. 값을 지정하지 않으면 기본값은 qMax(100, minimumUpdateInterval())
입니다. 런타임에 QNmeaSatelliteInfoSource::setBackendProperty() 메서드를 사용하여 이 매개 변수를 업데이트할 수 있습니다.
// file QVariantMap parameters; parameters["nmea.source"] = "qrc:///nmealog.txt"; parameters["nmea.satellite_info_simulation_interval"] = 1000; QGeoSatelliteInfoSource *fileSource = QGeoSatelliteInfoSource::createSource("nmea", parameters, this);
NMEA 프로토콜에는 이미 위치 메시지에 타임스탬프가 있기 때문에 이 매개변수는 위치 소스에 적용할 수 없습니다. 이 타임스탬프는 파일을 데이터 소스로 QGeoPositionInfoSource 을 사용하는 동안 올바른 메시지 속도를 시뮬레이션하는 데 사용됩니다.
참고: QGeoSatelliteInfoSource 을 생성한 후에는 다른 유형의 소스 데이터를 사용하도록 재구성할 수 없습니다.
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.