AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / WLanguage / Funciones WLanguage / Funciones específicas para móviles / Funciones Sensor
  • Condiciones de uso
  • Aceleración de un dispositivo: definiciones
  • Detener la detección
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
SensorDetectChangeAcceleration( Función)
Notifica cuando se aplican fuerzas de aceleración al dispositivo a lo largo de cualquiera de los tres ejes.
Ejemplo
// Detect the changes of acceleration
SensorDetectChangeAcceleration("ProcDetectAcceleration", snrVertical)
// Procedure called by the SensorDetectChangeAcceleration function
PROCÉDURE ProcDetectAcceleration(VerticalAcceleration is real, ...
HorizontalAcceleration is real, LateralAcceleration is real)
ToastDisplay(StringBuild("Vertical acceleration detected (%1 m/s²)", VerticalAcceleration))


// Stop detecting the changes of acceleration
SensorDetectChangeAcceleration("", snrVertical)
Sintaxis
<Result> = SensorDetectChangeAcceleration(<WLanguage procedure> [, <Movement Axis> [, <Frequency> [, <Threshold>]]])
<Result>: Integro
  • True si se pudo iniciar la detección,
  • False en caso contrario.
<WLanguage procedure>: Nombre de Procedure
Nombre del WLanguage Procedure ("callback" Procedure) que se llamará cuando se detecte la aceleración del dispositivo en uno de sus ejes. Este procedimiento tiene el siguiente formato :
PROCEDURE <Procedure Name> (<Vertical>, <Longitudinal>, <Lateral>)
donde
  • <Vertical> es un real correspondiente a la medida de la aceleración del dispositivo en el eje vertical (Z) en m/s²,
  • <Longitudinal> es un real correspondiente a la medida de la aceleración del dispositivo en el eje longitudinal (Y) en m/s²,
  • <Lateral> es un real correspondiente a la medida de la aceleración del dispositivo en el eje horizontal (X) en m/s²..
Los parámetros de este Procedure son opcionales. No hay necesidad de pasarle parámetros a este Procedure. De hecho, estos parámetros se rellenan automáticamente durante cada llamada, siempre que el eje de movimiento correspondiente se especifique en <Eje de movimiento>.. Por lo demás, estos parámetros son set a 0.
Si el nombre de la Procedure corresponde a una cadena vacía (""), las notificaciones ya no se enviarán cuando cambie la aceleración.
<Movement Axis>: Constante opcional de tipo Integer
Ejes de movimiento del dispositivo para los que se requiere una Notification durante el cambio de aceleración:
snrLateralNotification cuando el dispositivo acelera sobre el eje horizontal.
snrLongitudinalNotification cuando el dispositivo acelera en el eje longitudinal.
snrVerticalNotification cuando el dispositivo acelera sobre el eje vertical.

Por defecto, se enviará una notificación cuando la aceleración cambie en cualquiera de los tres ejes (equivalente a snrVertical + snrLateral + snrLongitudinal).
<Frequency>: Constante opcional de tipo Integer
Frecuencia con arreglo a la cual deben enviarse las notificaciones de cambios de aceleración:
snrFrequencyGameFrecuencia Notification necesaria cuando se utiliza SensorDetectChangeAcceleration en un juego.
snrFrequencyNormal
(Valor predeterminado)
Frecuencia estándar de Notification.
snrFrequencyQuickFrecuencia rápida de Notification.

iPhone/iPad Este parámetro no se tiene en cuenta. La frecuencia es la misma, independientemente de la constante especificada.
<Threshold>: Real opcional
Umbral de tolerancia al cambio (en m/s²). Las notificaciones se enviarán para los cambios de aceleración superiores a este umbral..
No se fijará ningún umbral si no se especifica este parámetro.: las notificaciones se enviarán para cada cambio de aceleración (equivalente a un umbral set a 0).
Observaciones

Condiciones de uso

  • Esta función no se puede utilizar en el emulador o en el simulador.. En ambos casos, el resultado de la función siempre corresponderá a False.
  • La detección de los cambios de aceleración utiliza el sensor del acelerómetro del dispositivo. Los cambios de aceleración no se detectarán si este sensor no está en el dispositivo. La sensibilidad de la detección depende de la calidad del sensor del dispositivo.

Aceleración de un dispositivo: definiciones

La aceleración puede definirse como la medida de la variación de la velocidad del dispositivo en una dirección determinada..
El sensor de movimiento considera que el dispositivo está en reposo cuando está acostado, la pantalla orientada hacia el cielo y en modo vertical.
Origen de la aceleración
Sistema de coordenadas (teniendo en cuenta que el dispositivo se encuentra en posición horizontal, la pantalla dirigida hacia el techo):
  • El origen se encuentra en la Corner inferior izquierda de la pantalla.
  • El eje X representa el eje horizontal y apunta a la derecha de la pantalla.
  • El eje Y representa el eje longitudinal y apunta a la parte superior de la pantalla.
  • El eje Z representa el eje vertical y apunta fuera del frente de la pantalla.
El cambio de aceleración se puede especificar según las tres dimensiones siguientes:
  • Aceleración vertical: Aceleración del dispositivo en el eje vertical (Z). Esta aceleración se expresa en m/s².. Cuando el dispositivo está acostado en posición horizontal con la pantalla apuntando al cielo, si el dispositivo sigue un movimiento ascendente con una aceleración set a A m/s², el valor total de la aceleración vertical es igual a ~= A + 9,81, que corresponde a la aceleración vertical del dispositivo menos la fuerza de gravedad en la Tierra.
  • Aceleración longitudinal: Aceleración del dispositivo en el eje longitudinal (Y). Esta aceleración se expresa en m/s².. Su valor es positivo cuando el dispositivo se mueve hacia atrás y negativo cuando el dispositivo se mueve hacia adelante.
  • Aceleración lateral: Aceleración del dispositivo en el eje horizontal (X). Esta aceleración se expresa en m/s².. Su valor es positivo cuando el dispositivo se mueve a la izquierda y negativo cuando el dispositivo se mueve a la derecha.
Observación: El sensor de movimiento (acelerómetro) no puede diferenciar entre las aceleraciones causadas por un movimiento y las aceleraciones causadas por la atracción terrestre.. Por lo tanto, la aceleración vertical medida cuando el dispositivo está en reposo será set a -9,8m/s², correspondiente a la gravedad terrestre media.

Detener la detección

Le aconsejamos que detenga la detección de los cambios de aceleración cuando ya no sea necesaria para reducir el consumo de batería. Para ello, <WLanguage Procedure> debe corresponder a una cadena vacía ("").
SensorEnd se utiliza para detener todas las detecciones actuales.
Componente: WDJS.DLL
Ver también
Versión mínima requerida
  • Versión 16
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 27/05/2022

Señalar un error o enviar una sugerencia | Ayuda local