QSensor Class
La clase QSensor representa un único sensor de hardware. Más...
| Cabecera: | #include <QSensor> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Sensors)target_link_libraries(mytarget PRIVATE Qt6::Sensors) |
| qmake: | QT += sensors |
| Hereda: | QObject |
| Heredado por: |
Tipos públicos
| enum | AxesOrientationMode { FixedOrientation, AutomaticOrientation, UserOrientation } |
| enum | Feature { Buffering, AlwaysOn, SkipDuplicates, GeoValues, FieldOfView, …, AxesOrientation } |
Propiedades
|
|
Funciones públicas
| QSensor(const QByteArray &type, QObject *parent = nullptr) | |
| virtual | ~QSensor() |
| void | addFilter(QSensorFilter *filter) |
| qrangelist | availableDataRates() const |
| QSensor::AxesOrientationMode | axesOrientationMode() const |
| int | bufferSize() const |
| bool | connectToBackend() |
| int | currentOrientation() const |
| int | dataRate() const |
| QString | description() const |
| int | efficientBufferSize() const |
| int | error() const |
| QList<QSensorFilter *> | filters() const |
| QByteArray | identifier() const |
| bool | isActive() const |
| bool | isAlwaysOn() const |
| bool | isBusy() const |
| bool | isConnectedToBackend() const |
| bool | isFeatureSupported(QSensor::Feature feature) const |
| int | maxBufferSize() const |
| int | outputRange() const |
| qoutputrangelist | outputRanges() const |
| QSensorReading * | reading() const |
| void | removeFilter(QSensorFilter *filter) |
| void | setActive(bool active) |
| void | setAlwaysOn(bool alwaysOn) |
| void | setAxesOrientationMode(QSensor::AxesOrientationMode axesOrientationMode) |
| void | setBufferSize(int bufferSize) |
| void | setCurrentOrientation(int currentOrientation) |
| void | setDataRate(int rate) |
| void | setEfficientBufferSize(int efficientBufferSize) |
| void | setIdentifier(const QByteArray &identifier) |
| void | setMaxBufferSize(int maxBufferSize) |
| void | setOutputRange(int index) |
| void | setSkipDuplicates(bool skipDuplicates) |
| void | setUserOrientation(int userOrientation) |
| bool | skipDuplicates() const |
| QByteArray | type() const |
| int | userOrientation() const |
Ranuras públicas
Señales
| void | activeChanged() |
| void | alwaysOnChanged() |
| void | availableSensorsChanged() |
| void | axesOrientationModeChanged(QSensor::AxesOrientationMode axesOrientationMode) |
| void | bufferSizeChanged(int bufferSize) |
| void | busyChanged() |
| void | currentOrientationChanged(int currentOrientation) |
| void | dataRateChanged() |
| void | efficientBufferSizeChanged(int efficientBufferSize) |
| void | identifierChanged() |
| void | maxBufferSizeChanged(int maxBufferSize) |
| void | readingChanged() |
| void | sensorError(int error) |
| void | skipDuplicatesChanged(bool skipDuplicates) |
| void | userOrientationChanged(int userOrientation) |
Miembros públicos estáticos
| QByteArray | defaultSensorForType(const QByteArray &type) |
| QList<QByteArray> | sensorTypes() |
| QList<QByteArray> | sensorsForType(const QByteArray &type) |
No miembros relacionados
Descripción detallada
El ciclo de vida de un sensor es tipicamente:
- Crear una subclase de QSensor en la pila o heap.
- Configurar como lo requiera la aplicación.
- Empieza a recibir valores.
- Los datos del sensor son usados por la aplicación.
- Dejar de recibir valores.
Los datos del sensor se entregan a través de QSensorReading y sus subclases.
Orientación
Algunos sensores reaccionan a los cambios de orientación de la pantalla, como QAccelerometer, QMagnetometer y QRotationSensor. Estos son los llamados sensores orientables. Para los sensores orientables, QSensor soporta el cambio de la información de los valores de lectura basados en la orientación de la pantalla.
Para los sensores orientables, la propiedad axesOrientationMode controla cómo afecta la orientación a los valores de lectura.
En el modo por defecto, QSensor::FixedOrientation, los valores de lectura no se ven afectados por la orientación. En el modo QSensor::AutomaticOrientation, los valores de lectura se giran automáticamente teniendo en cuenta la orientación actual de la pantalla. Y, por último, en el modo QSensor::UserOrientation, los valores de lectura se giran según una orientación especificada por el usuario.
Esta funcionalidad sólo está disponible si está soportada por el backend y si el sensor es orientable, lo que puede comprobarse llamando a QSensor::isFeatureSupported() con la bandera QSensor::AxesOrientation.
Los valores de orientación aquí son siempre de la orientación de la pantalla, no la orientación del dispositivo. La orientación de la pantalla es la orientación de la GUI. Por ejemplo, cuando se gira un dispositivo 90 grados en sentido contrario a las agujas del reloj, la orientación de la pantalla lo compensa girando 90 grados en el sentido de las agujas del reloj, de forma que la GUI sigue mirando hacia arriba después de girar el dispositivo. Ten en cuenta que las aplicaciones pueden bloquear la orientación de la pantalla, por ejemplo para forzar el modo vertical u horizontal. Para las orientaciones bloqueadas, los sensores orientables no reaccionarán con cambios de lectura si se cambia la orientación del dispositivo, ya que los sensores orientables sólo reaccionan a los cambios de orientación de la pantalla. Esto tiene sentido, ya que el propósito de los sensores orientables es mantener la orientación del sensor sincronizada con la orientación de la pantalla.
Los valores de orientación van de 0 a 270 grados. La orientación se aplica en el sentido de las agujas del reloj, por ejemplo, un valor de orientación de 90 grados significa que la pantalla se ha girado 90 grados a la derecha desde su posición de origen, para compensar una rotación del dispositivo de 90 grados a la izquierda.
Véase también QSensorReading.
Documentación de tipos de miembros
enum QSensor::AxesOrientationMode
Describe cómo los valores de lectura se ven afectados por la orientación de la pantalla.
| Constante | Valor | Descripción |
|---|---|---|
QSensor::FixedOrientation | 0 | No se aplica rotación automática a los valores de lectura. |
QSensor::AutomaticOrientation | 1 | Los valores de lectura se rotan automáticamente en función de la orientación de la pantalla. |
QSensor::UserOrientation | 2 | Los valores de lectura se rotan basándose en el ángulo de la propiedad userOrientation. |
Véase también QSensor::axesOrientationMode.
enum QSensor::Feature
Lista las características opcionales que un backend puede soportar.
Las características comunes a todos los tipos de sensores son
| Constante | Valor | Descripción |
|---|---|---|
QSensor::Buffering | 0 | El backend soporta buffering de lecturas, controlado por la propiedad QSensor::bufferSize. |
QSensor::AlwaysOn | 1 | El backend soporta cambiar la política sobre si suspender cuando está inactivo, controlado por la propiedad QSensor::alwaysOn. |
QSensor::SkipDuplicates | 5 | El backend admite la omisión de lecturas sucesivas iguales o muy similares. Esto puede activarse estableciendo la propiedad QSensor::skipDuplicates en true. |
Las características de QMagnetometer son:
| Constante | Valor | Descripción |
|---|---|---|
QSensor::GeoValues | 2 | El backend permite devolver valores geográficos, que pueden controlarse con la propiedad QMagnetometer::returnGeoValues. |
Las características de QLightSensor son:
| Constante | Valor | Descripción |
|---|---|---|
QSensor::FieldOfView | 3 | El backend especifica su campo de visión, que puede leerse en la propiedad QLightSensor::fieldOfView. |
Las características de QAccelerometer son:
| Constante | Valor | Descripción |
|---|---|---|
QSensor::AccelerationMode | 4 | El backend permite cambiar el modo de aceleración del acelerómetro con la propiedad QAccelerometer::accelerationMode. |
Las características de QPressureSensor son:
| Constante | Valor | Descripción |
|---|---|---|
QSensor::PressureSensorTemperature | 7 | El backend proporciona la temperatura de la matriz del sensor de presión |
Las características de todos los sensores orientables son:
| Constante | Valor | Descripción |
|---|---|---|
QSensor::AxesOrientation | 6 | El backend soporta cambiar la orientación de los ejes del valor por defecto de QSensor::FixedOrientation a otra. |
Ver también QSensor::isFeatureSupported().
Documentación de propiedades
active : bool
Esta propiedad contiene un valor para indicar si el sensor está activo.
Es true si el sensor está activo (devolviendo valores). Es false en caso contrario.
Tenga en cuenta que establecer este valor a true no tendrá un efecto inmediato. En su lugar, el sensor se iniciará una vez alcanzado el bucle de eventos.
Funciones de acceso:
| bool | isActive() const |
| void | setActive(bool active) |
Señal del notificador:
| void | activeChanged() |
alwaysOn : bool
Esta propiedad contiene un valor para indicar si el sensor debe permanecer funcionando cuando la pantalla está apagada.
Algunas plataformas tienen una política de suspender los sensores cuando la pantalla se apaga. Establecer esta propiedad a true asegurará que el sensor continúe funcionando.
Funciones de acceso:
| bool | isAlwaysOn() const |
| void | setAlwaysOn(bool alwaysOn) |
Señal del notificador:
| void | alwaysOnChanged() |
[read-only] availableDataRates : qrangelist
Esta propiedad contiene las velocidades de datos que soporta el sensor.
Esta es una lista de las velocidades de datos que soporta el sensor. Medido en Hertz.
Las entradas en la lista pueden representar tasas discretas o un rango continuo de tasas. Una tasa discreta se nota por tener ambos valores iguales.
Tenga en cuenta que esta información no es obligatoria ya que no todos los sensores tienen una tasa a la que funcionan. En tales casos, la lista estará vacía.
Funciones de acceso:
| qrangelist | availableDataRates() const |
Véase también QSensor::dataRate y qrangelist.
axesOrientationMode : AxesOrientationMode
Esta propiedad contiene el modo que afecta a cómo la orientación de la pantalla cambia los valores de lectura.
Cuando se establece en FixedOrientation, que es el modo por defecto, no se aplica ninguna rotación automática a la lectura. Este es el único modo disponible para los backends que no soportan la función QSensor::AxesOrientation.
Si se selecciona AutomaticOrientation, los valores de lectura se rotan automáticamente cuando cambia la orientación de la pantalla. En efecto, la orientación de la pantalla se anula.
Como ejemplo, supongamos que el dispositivo se gira 180 grados y, por lo tanto, la orientación de la pantalla también se gira 180 grados con respecto a la orientación nativa. Sin la orientación automática de los ejes, los valores de lectura cambiarían: tanto el valor X como el Y se negarían, forzando al desarrollador de aplicaciones a cancelar manualmente la negación en el código de la aplicación. La orientación automática de los ejes hace esto automáticamente, en este modo los valores X e Y serían los mismos que con la orientación por defecto de la pantalla.
Esta rotación automática de los ejes es útil en algunos casos, por ejemplo en una aplicación de nivel de burbuja que mide el nivel de una superficie mirando el valor del eje X de un acelerómetro. Cuando el dispositivo y la orientación de la pantalla cambian 90 grados, un desarrollador de aplicaciones no necesita cambiar nada, puede seguir utilizando el valor del eje X aunque el dispositivo esté rotado. Sin la orientación automática de los ejes, el desarrollador de aplicaciones tendría que mirar los valores Y en su lugar, añadiendo así código a la aplicación que lee de un eje diferente dependiendo de la orientación de la pantalla.
El modo UserOrientation es bastante similar a AutomaticOrientation, sólo que la orientación de la pantalla se controla manualmente en lugar de determinarse automáticamente. El ángulo de la propiedad userOrientation se utiliza entonces para rotar los valores de lectura.
Dado que la rotación de los valores de lectura se basa en la orientación de la pantalla, los valores Z nunca cambiarán, ya que el eje Z es perpendicular a la pantalla. Como la orientación de la pantalla cambia en pasos de 90 grados, la rotación de los valores de lectura también se realiza en pasos de 90 grados.
Esta propiedad sólo se utiliza para sensores orientables.
Funciones de acceso:
| QSensor::AxesOrientationMode | axesOrientationMode() const |
| void | setAxesOrientationMode(QSensor::AxesOrientationMode axesOrientationMode) |
Señal del notificador:
| void | axesOrientationModeChanged(QSensor::AxesOrientationMode axesOrientationMode) |
bufferSize : int
Esta propiedad contiene el tamaño del búfer. Por defecto, el tamaño del buffer es 1, lo que significa que no hay buffering. Si el tamaño máximo del buffer es 1, entonces el buffering no es soportado por el sensor.
Poniendo bufferSize mayor que maxBufferSize causará que maxBufferSize sea usado.
El buffering se activa cuando bufferSize es mayor que 1. El sensor recogerá el número solicitado de muestras y las entregará todas a la aplicación de una vez. Serán entregadas a la aplicación como una ráfaga de lecturas cambiadas así que es particularmente importante que la aplicación procese cada lectura inmediatamente o guarde los valores en algún otro lugar.
Si stop() es llamado cuando el buffer está en curso, el buffer parcial no es entregado.
Cuando el sensor se inicia con la opción de buffering, los valores se recogen a partir de ese momento. No hay un buffer pre-existente que pueda ser utilizado.
Algunos backends sólo soportan habilitar o deshabilitar el buffer y no dan control sobre el tamaño. En este caso, es posible que las propiedades maxBufferSize y efficientBufferSize no se establezcan en absoluto, aunque se admita el almacenamiento en búfer. Establecer la propiedad bufferSize a cualquier valor mayor que 1 habilitará el buffering. Después de que el sensor haya sido iniciado, la propiedad bufferSize será establecida al valor actual por el backend.
Funciones de acceso:
| int | bufferSize() const |
| void | setBufferSize(int bufferSize) |
Señal notificadora:
| void | bufferSizeChanged(int bufferSize) |
Véase también QSensor::maxBufferSize y QSensor::efficientBufferSize.
[read-only] busy : bool
Esta propiedad contiene un valor para indicar si el sensor está ocupado.
Algunos sensores pueden estar en el sistema pero no disponibles para su uso. Esta función regresará true si el sensor está ocupado. Usted no podrá start() el sensor.
Note que esta función no regresa true si usted está usando el sensor, sólo si otro proceso está usando el sensor.
Funciones de acceso:
| bool | isBusy() const |
Señal de notificador:
| void | busyChanged() |
Véase también busyChanged().
[read-only] connectedToBackend : bool
Esta propiedad contiene un valor que indica si el sensor se ha conectado a un backend.
Un sensor que no ha sido conectado a un backend no puede hacer nada útil.
Llame al método connectToBackend() para forzar al sensor a conectarse a un backend inmediatamente. Se llama automáticamente si se llama a start(), así que sólo es necesario hacerlo si se necesita acceder a las propiedades del sensor (por ejemplo, para sondear los metadatos del sensor antes de usarlo).
Funciones de acceso:
| bool | isConnectedToBackend() const |
[read-only] currentOrientation : int
Esta propiedad contiene la orientación actual que se utiliza para rotar los valores de lectura.
Puede no coincidir con la orientación de la pantalla. Por ejemplo, en el modo FixedOrientation, los valores de lectura no se rotan, y por lo tanto la propiedad es 0.
En el modo UserOrientation, las lecturas se rotan basándose en la propiedad userOrientation, y por lo tanto esta propiedad es igual a la propiedad userOrientation.
En el modo AutomaticOrientation, las lecturas se rotan basándose en la orientación de la pantalla, y por lo tanto esta propiedad será igual a la orientación actual de la pantalla.
Esta propiedad la establece el backend y sólo es válida para sensores orientables.
Funciones de acceso:
| int | currentOrientation() const |
Señal del notificador:
| void | currentOrientationChanged(int currentOrientation) |
dataRate : int
Esta propiedad contiene la velocidad de transmisión de datos a la que debe funcionar el sensor.
Se mide en hercios.
La tasa de datos es la frecuencia máxima a la que el sensor puede detectar cambios.
Establecer esta propiedad no es portable y puede causar conflictos con otras aplicaciones. Verifique con la documentación del sensor y la plataforma para cualquier política con respecto a múltiples aplicaciones solicitando una tasa de datos.
El valor por defecto (0) significa que a la aplicación no le importa cual es la tasa de datos. Las aplicaciones deberían considerar el uso de un sondeo basado en temporizador del valor actual o asegurarse de que el código que procesa los valores puede ejecutarse muy rápidamente ya que la plataforma puede proporcionar actualizaciones cientos de veces cada segundo.
Esto debería establecerse antes de llamar a start() porque el sensor puede no notar cambios en este valor mientras se está ejecutando.
Tenga en cuenta que no hay ningún mecanismo para determinar la velocidad de datos actual en uso por la plataforma.
Funciones de acceso:
| int | dataRate() const |
| void | setDataRate(int rate) |
Señal del notificador:
| void | dataRateChanged() |
Véase también QSensor::availableDataRates.
[read-only] description : QString
Esta propiedad contiene una cadena descriptiva del sensor.
Funciones de acceso:
| QString | description() const |
[read-only] efficientBufferSize : int
La propiedad contiene el tamaño de búfer más eficiente. Normalmente es 1 (lo que significa que ningún tamaño en particular es el más eficiente). Algunos controladores de sensor tienen un buffer FIFO que hace más eficiente entregar el tamaño FIFO de lecturas de una sola vez.
Funciones de acceso:
| int | efficientBufferSize() const |
Señal notificadora:
| void | efficientBufferSizeChanged(int efficientBufferSize) |
Véase también QSensor::bufferSize y QSensor::maxBufferSize.
[read-only] error : int
Esta propiedad contiene el último código de error establecido en el sensor.
Tenga en cuenta que los códigos de error son específicos de cada sensor.
Funciones de acceso:
| int | error() const |
Señal del notificador:
| void | sensorError(int error) |
identifier : QByteArray
Esta propiedad contiene el identificador de backend para el sensor.
Tenga en cuenta que el identificador se rellena automáticamente cuando el sensor se conecta a un backend. Si quieres conectar un backend específico, deberías llamar a setIdentifier() antes de connectToBackend().
Funciones de acceso:
| QByteArray | identifier() const |
| void | setIdentifier(const QByteArray &identifier) |
Señal del notificador:
| void | identifierChanged() |
[read-only] maxBufferSize : int
La propiedad contiene el tamaño máximo del buffer.
Tenga en cuenta que puede ser 1, en cuyo caso el sensor no soporta ninguna forma de buffering. En ese caso, isFeatureSupported(QSensor::Buffering) también devolverá false.
Funciones de acceso:
| int | maxBufferSize() const |
Señal de notificador:
| void | maxBufferSizeChanged(int maxBufferSize) |
Véase también QSensor::bufferSize y QSensor::efficientBufferSize.
outputRange : int
Esta propiedad contiene el rango de salida en uso por el sensor.
Este valor representa el índice en la lista QSensor::outputRanges a utilizar.
Establecer esta propiedad no es portable y puede causar conflictos con otras aplicaciones. Compruebe con la documentación del sensor y la plataforma para cualquier política con respecto a múltiples aplicaciones solicitando un rango de salida.
El valor por defecto (-1) significa que a la aplicación no le importa cual es el rango de salida.
Tenga en cuenta que no hay ningún mecanismo para determinar el rango de salida actual en uso por la plataforma.
Funciones de acceso:
| int | outputRange() const |
| void | setOutputRange(int index) |
Véase también QSensor::outputRanges.
[read-only] outputRanges : qoutputrangelist
Esta propiedad contiene una lista de rangos de salida que el sensor soporta.
Un sensor puede tener más de un rango de salida. Típicamente esto se hace para dar un mayor rango de medida a costa de reducir la precisión.
Note que esta información no es obligatoria. Esta información normalmente sólo está disponible para sensores que tienen rangos de salida seleccionables (como los típicos acelerómetros).
Funciones de acceso:
| qoutputrangelist | outputRanges() const |
Véase también QSensor::outputRange y qoutputrangelist.
[read-only] reading : QSensorReading*
Esta propiedad contiene la clase de lectura.
La clase de lectura proporciona acceso a las lecturas del sensor. El objeto de lectura es una caché volátil de la lectura de sensor más reciente que se ha recibido, por lo que la aplicación debería procesar las lecturas inmediatamente o guardar los valores en algún lugar para procesarlos más tarde.
Tenga en cuenta que esto devolverá 0 hasta que un sensor backend esté conectado a un backend.
También hay que tener en cuenta que las lecturas no están disponibles inmediatamente después de llamar a start(). Las aplicaciones deben esperar a que se emita la señal readingChanged().
Funciones de acceso:
| QSensorReading * | reading() const |
Señal de notificador:
| void | readingChanged() |
Véase también isConnectedToBackend() y start().
skipDuplicates : bool
Indica si deben omitirse los valores de lectura duplicados.
Cuando se activa la omisión de duplicados, se omiten las lecturas sucesivas con valores iguales o muy similares. Esto ayuda a reducir la cantidad de procesamiento realizado, ya que se dispone de menos lecturas del sensor. Como consecuencia, las lecturas llegan a intervalos irregulares.
La omisión de duplicados no sólo se activa para lecturas que son exactamente iguales, sino también para lecturas que son bastante similares, ya que cada sensor tiene un poco de fluctuación aunque el dispositivo no se mueva.
El soporte de esta propiedad depende del backend. Utilice isFeatureSupported() para comprobar si es compatible con la plataforma actual.
La omisión de duplicados está desactivada por defecto.
La omisión de duplicados tiene efecto cuando se inicia el sensor, cambiar la propiedad mientras el sensor está activo no tiene efecto inmediato.
Funciones de acceso:
| bool | skipDuplicates() const |
| void | setSkipDuplicates(bool skipDuplicates) |
Señal del notificador:
| void | skipDuplicatesChanged(bool skipDuplicates) |
[read-only] type : const QByteArray
Esta propiedad contiene el tipo de sensor.
Funciones de acceso:
| QByteArray | type() const |
userOrientation : int
Esta propiedad contiene el ángulo utilizado para rotar los valores de lectura en el modo UserOrientation.
Cuando la propiedad axesOrientationMode se establece en UserOrientation, el ángulo para rotar los valores de lectura se toma de esta propiedad. En otros modos, la propiedad no tiene efecto.
El valor por defecto es 0. Los únicos valores válidos son 0, 90, 180 y 270, ya que son las únicas orientaciones de pantalla posibles.
Esta propiedad sólo es válida para sensores orientables.
Funciones de acceso:
| int | userOrientation() const |
| void | setUserOrientation(int userOrientation) |
Señal del notificador:
| void | userOrientationChanged(int userOrientation) |
Documentación de la función miembro
[explicit] QSensor::QSensor(const QByteArray &type, QObject *parent = nullptr)
Construye el sensor type como un hijo de parent.
No use este constructor si existe una clase derivada para el tipo de sensor específico.
La forma incorrecta es usar el constructor de la clase base:
QSensor *magnetometer = new QSensor(QMagnetometer::sensorType, this);
La forma correcta es crear una instancia de la clase derivada:
QMagnetometer *magnetometer = new QMagnetometer(this);
Las clases derivadas tienen propiedades adicionales y miembros de datos que son necesarios para ciertas características como el soporte del valor geo en QMagnetometer o el soporte del modo de aceleración en QAccelerometer. Estas características sólo funcionarán correctamente cuando se cree una instancia de sensor desde una subclase de QSensor.
Sólo use este constructor si no hay una clase de sensor derivado disponible. Note que todos los sensores incorporados tienen una clase derivada, así que usar este constructor sólo debería ser necesario cuando se implementan sensores personalizados.
[virtual noexcept] QSensor::~QSensor()
Destruye el sensor. Detiene el sensor si aún no se ha detenido.
[signal] void QSensor::activeChanged()
Esta señal se emite cuando la propiedad QSensor::active ha cambiado.
Nota: Señal notificadora para la propiedad active.
Véase también QSensor::active.
void QSensor::addFilter(QSensorFilter *filter)
Añade un filter al sensor.
El sensor no se apropia del filtro. QSensorFilter informará al sensor si se destruye.
Véase también QSensorFilter.
[signal] void QSensor::alwaysOnChanged()
Esta señal se emite cuando cambia la propiedad alwaysOn.
Nota: Señal notificadora para la propiedad alwaysOn.
[signal] void QSensor::availableSensorsChanged()
Esta señal se emite cuando la lista de sensores disponibles ha cambiado. Los sensores disponibles para un programa generalmente no cambiarán con el tiempo, sin embargo algunos de los sensores disponibles pueden representar hardware que no está conectado permanentemente. Por ejemplo, un mando de juegos que está conectado vía bluetooth estaría disponible cuando estuviera encendido y dejaría de estarlo cuando estuviera apagado.
Véase también QSensor::sensorTypes() y QSensor::sensorsForType().
[signal] void QSensor::busyChanged()
Esta señal se emite cuando el sensor deja de estar ocupado. Se puede utilizar para coger un sensor cuando esté disponible.
sensor.start(); if (sensor.isBusy()) { // need to wait for busyChanged signal and try again }
Nota: Señal notificadora para la propiedad busy.
[invokable] bool QSensor::connectToBackend()
Intenta conectarse a un servidor de sensores.
Devuelve true si se pudo encontrar un backend adecuado, false en caso contrario.
El tipo debe ser establecido antes de llamar a este método si está usando QSensor directamente.
Nota: Esta función puede ser invocada a través del sistema de meta-objetos y desde QML. Véase Q_INVOKABLE.
Véase también isConnectedToBackend().
[static] QByteArray QSensor::defaultSensorForType(const QByteArray &type)
Devuelve el identificador de sensor predeterminado para type. Esto se establece en un archivo de configuración y puede ser anulado si es necesario. Si no hay ningún valor por defecto disponible, el sistema devolverá el primer sensor registrado para type.
Tenga en cuenta que hay una lógica especial para evitar que los backends del plugin genérico se conviertan en los predeterminados cuando otro backend se registra para el mismo tipo. Esta lógica significa que un identificador de backend que empiece con generic. sólo será el predeterminado si ningún otro backend ha sido registrado para ese tipo o si está especificado en Sensors.conf.
Véase también Determinar el sensor por defecto para un tipo.
QList<QSensorFilter *> QSensor::filters() const
Devuelve los filtros actualmente conectados al sensor.
Véase también QSensorFilter.
[invokable] bool QSensor::isFeatureSupported(QSensor::Feature feature) const
Comprueba si una función específica está soportada por el backend.
QtSensors soporta una rica API para controlar y proporcionar información sobre los sensores. Naturalmente, no toda esta funcionalidad puede ser soportada por todos los backends.
Para comprobar si el backend actual es compatible con la función feature, llame a esta función.
El backend debe estar conectado, de lo contrario se devolverá false. Llamando a connectToBackend() o start() se creará una conexión con el backend.
Los backends tienen que implementar QSensorBackend::isFeatureSupported() para que esto funcione.
Devuelve si la función está soportada o no si el backend está conectado, o false si el backend no está conectado.
Nota: Esta función puede invocarse a través del sistema de metaobjetos y desde QML. Véase Q_INVOKABLE.
[signal] void QSensor::readingChanged()
Esta señal se emite cuando se recibe una nueva lectura del sensor.
La lectura del sensor puede encontrarse en la propiedad QSensor::reading. Tenga en cuenta que el objeto de lectura es una caché volátil de la lectura más reciente del sensor que se ha recibido, por lo que la aplicación debe procesar la lectura inmediatamente o guardar los valores en algún lugar para su posterior procesamiento.
Antes de que esta señal haya sido emitida por primera vez, el objeto de lectura tendrá datos sin inicializar.
Nota: Señal notificadora para la propiedad reading.
Véase también start().
void QSensor::removeFilter(QSensorFilter *filter)
Retire filter del sensor.
Véase también QSensorFilter.
[signal] void QSensor::sensorError(int error)
Esta señal se emite cuando se establece un código error en el sensor. Tenga en cuenta que algunos errores harán que el sensor deje de funcionar. Debería llamar a isActive() para determinar si el sensor sigue funcionando.
Nota: Señal notificadora para la propiedad error.
[static] QList<QByteArray> QSensor::sensorTypes()
Devuelve una lista de todos los tipos de sensores.
[static] QList<QByteArray> QSensor::sensorsForType(const QByteArray &type)
Devuelve una lista de ids para cada uno de los sensores de type. Si no hay sensores de ese tipo disponibles, la lista estará vacía.
void QSensor::setCurrentOrientation(int currentOrientation)
Establece la orientación actual de la pantalla en currentOrientation. Esto debe ser llamado desde el backend siempre que cambie la orientación de la pantalla o la propiedad userOrientation.
Véase también currentOrientation().
void QSensor::setEfficientBufferSize(int efficientBufferSize)
Establece el tamaño del búfer eficiente en efficientBufferSize. Esto debe ser llamado desde el backend.
Véase también efficientBufferSize().
void QSensor::setMaxBufferSize(int maxBufferSize)
Establece el tamaño máximo del búfer en maxBufferSize. Esto debe ser llamado desde el backend.
Véase también maxBufferSize().
void QSensor::setSkipDuplicates(bool skipDuplicates)
Establece la omisión de duplicados en skipDuplicates.
Nota: Función Setter para la propiedad skipDuplicates.
Véase también skipDuplicates().
[signal] void QSensor::skipDuplicatesChanged(bool skipDuplicates)
Esta señal se emite cuando cambia la propiedad skipDuplicates.
Nota: Señal notificadora para la propiedad skipDuplicates.
[slot] bool QSensor::start()
Comienza a recuperar valores del sensor. Devuelve true si el sensor se inició, false en caso contrario.
El sensor puede fallar por varias razones.
Una vez que una aplicación ha iniciado un sensor debe esperar hasta que el sensor reciba un nuevo valor antes de que pueda consultar los valores del sensor. Esto es debido a cómo el sensor recibe valores del sistema. Los sensores (en general) no preguntan por nuevos valores, más bien los nuevos valores son empujados a los sensores cuando suceden.
Por ejemplo, este código no funcionará como se pretende.
sensor->start(); sensor->reading()->x(); // no data available
Para que funcione correctamente, el código que accede a la lectura debe asegurarse de que la señal readingChanged() ha sido emitida.
connect(sensor, SIGNAL(readingChanged()), this, SLOT(checkReading())); sensor->start(); } void MyClass::checkReading() { sensor->reading()->x();
Véase también QSensor::busy.
[slot] void QSensor::stop()
Deja de recuperar valores del sensor.
Esto libera el sensor para que otros procesos puedan usarlo.
Véase también QSensor::busy.
Relacionados No-Miembros
[alias] qoutputrangelist
Este tipo se define como una lista de valores qoutputrange.
typedef QList<qoutputrange> qoutputrangelist;
Véase también QList, qoutputrange, y QSensor::outputRanges.
[alias] qrange
Este tipo se define como QPair.
typedef QPair<int,int> qrange;
Véase también QPair, qrangelist, y QSensor::availableDataRates.
[alias] qrangelist
Este tipo se define como una lista de valores qrange.
typedef QList<qrange> qrangelist;
Véase también QList, qrange, y QSensor::availableDataRates.
© 2026 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.