PySide6.QtPositioning.QNmeaSatelliteInfoSource

class QNmeaSatelliteInfoSource

QNmeaSatelliteInfoSource 类使用 NMEA 数据源提供卫星信息。更多

PySide6.QtPositioning.QNmeaSatelliteInfoSource 的继承图

概要

方法

虚拟方法

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

NMEA 是一种常用的协议,用于指定某人在某个时间点的全球位置。QNmeaSatelliteInfoSource 类读取 NMEA 数据,并使用它以 QGeoSatelliteInfo 对象列表的形式提供有关可见卫星和使用中卫星的信息。

一个QNmeaSatelliteInfoSource实例可以在RealTimeModeSimulationMode中运行。这些模式允许从实时数据源读取NMEA数据,或者从先前记录的NMEA数据中回放以进行模拟。

NMEA数据的来源通过setDevice()设置。

使用startUpdates()开始接收定期的卫星信息更新,使用stopUpdates()停止这些更新。如果你只需要偶尔更新,可以调用requestUpdate()请求一次性的更新,包括可见卫星和使用中的卫星。

关于可见卫星的信息是通过satellitesInViewUpdated()信号接收的。

有关使用中的卫星信息是通过satellitesInUseUpdated()信号接收的。

class UpdateMode

定义可用的更新模式。

常量

描述

QNmeaSatelliteInfoSource.UpdateMode.RealTimeMode

卫星信息在数据源可用时被读取和分发。如果您使用的是实时的NMEA数据源(例如GPS硬件设备),请使用此模式。

QNmeaSatelliteInfoSource.UpdateMode.SimulationMode

卫星信息以给定的速率从数据源读取并分发。该速率由SimulationUpdateInterval参数确定。如果数据源包含先前记录的NMEA数据,并且您希望为了模拟目的重放数据,请使用此模式。

class SatelliteInfoParseStatus

定义卫星信息的解析状态。卫星信息可以分成多个句子,我们需要解析所有这些句子。

常量

描述

QNmeaSatelliteInfoSource.NotParsed

数据不包含有关卫星的信息。

QNmeaSatelliteInfoSource.PartiallyParsed

接收到并解析了有效的卫星信息,但它不完整,因此我们需要等待另一个NMEA句子。

QNmeaSatelliteInfoSource.FullyParsed

卫星信息已完全收集并解析。

PySide6.QtPositioning.QNmeaSatelliteInfoSource.SimulationUpdateInterval
__init__(mode[, parent=None])
Parameters:

使用给定的parentmode构造一个QNmeaSatelliteInfoSource实例。

device()
Return type:

QIODevice

返回NMEA数据源。

另请参阅

setDevice()

parseSatelliteInfoFromNmea(data, infos, system)
Parameters:
  • dataQByteArrayView

  • infos – QGeoSatelliteInfo 的列表

  • 系统SatelliteSystem

Return type:

SatelliteInfoParseStatus

parseSatelliteInfoFromNmea(data, size, infos, system)
Parameters:
  • data – 字符串

  • size – int

  • infos – QGeoSatelliteInfo 的列表

  • systemSatelliteSystem

Return type:

SatelliteInfoParseStatus

解析NMEA语句字符串以提取有关可见卫星的信息。

默认实现将解析标准的NMEA $GPGSV语句。当需要处理非标准的NMEA语句时,应在子类中重新实现此方法。

解析器从data中读取size字节,并使用该信息填充infos列表。

返回带有解析结果的SatelliteInfoParseStatus。如果返回PartiallyParsedFullyParsed,则修改infos列表。同时将system设置为正确的卫星系统类型。这在没有可见卫星的情况下确定系统类型是必需的。

parseSatellitesInUseFromNmea(data, pnrsInUse)
Parameters:
  • dataQByteArrayView

  • pnrsInUse – 整数列表

Return type:

SatelliteSystem

parseSatellitesInUseFromNmea(data, size, pnrsInUse)
Parameters:
  • data – 字符串

  • size – int

  • pnrsInUse – 整数列表

Return type:

SatelliteSystem

解析NMEA句子字符串以提取使用中的卫星ID。

默认实现将解析标准的NMEA $GPGSA语句。当需要处理非标准的NMEA语句时,应在子类中重新实现此方法。

解析器从data中读取size字节,并使用该信息填充pnrsInUse列表。

如果句子成功解析,则返回系统类型,否则返回Undefined,并且不应修改pnrsInUse

setDevice(source)
Parameters:

QIODevice

将NMEA数据源设置为device。如果设备未打开,它将以QIODevice::ReadOnly模式打开。

源设备只能设置一次,并且必须在调用startUpdates()requestUpdate()之前设置。

注意

device 必须发出 QIODevice::readyRead() 以便在有数据可供读取时通知源。QNmeaSatelliteInfoSource 不拥有该设备的所有权,因此在销毁时不会释放它。

另请参阅

device()

setError(satelliteError)
Parameters:

satelliteErrorError

updateMode()
Return type:

UpdateMode

返回更新模式。