PC SOFT

ONLINE HELP
FOR WINDEV, WEBDEV AND WINDEV MOBILE

Home | Sign in | English US
  • Use conditions
  • Orientation of a device: definitions
  • Stopping the detection
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Others
Stored procedures
SensorDetectChangeOrientation (Function)
In French: CapteurDétecteChangementOrientation
Allows you to be notified when the orientation of the device changes on any one of its 3 axes.
Versions 17 and later
Universal Windows 10 App This function is now available for the Windows Phone applications.
New in version 17
Universal Windows 10 App This function is now available for the Windows Phone applications.
Universal Windows 10 App This function is now available for the Windows Phone applications.
Versions 18 and later
Android Widget This function is now available in Android Widget mode.
New in version 18
Android Widget This function is now available in Android Widget mode.
Android Widget This function is now available in Android Widget mode.
Versions 19 and later
WEBDEV - Browser code This function is now available in Browser code.
iPhone/iPad This function is now available for the iPhone/iPad applications.
New in version 19
WEBDEV - Browser code This function is now available in Browser code.
iPhone/iPad This function is now available for the iPhone/iPad applications.
WEBDEV - Browser code This function is now available in Browser code.
iPhone/iPad This function is now available for the iPhone/iPad applications.
Versions 21 and later
Universal Windows 10 App This function is now available in Universal Windows 10 App mode.
New in version 21
Universal Windows 10 App This function is now available in Universal Windows 10 App mode.
Universal Windows 10 App This function is now available in Universal Windows 10 App mode.
Example
// Detect the changes of orientation on several axes
SensorDetectChangeOrientation(DetectOrientation, snrAzimuth + snrPitch + snrRoll)
// Procedure called by the SensorDetectChangeOrientation function
PROCÉDURE DetectOrientation(nAzimuth is int, nPitch is int, nRoll is int)
IF nAzimuth = 0 OR nAzimuth = 360 THEN
ToastDisplay("The device is oriented to the North.")
END

// Stop detecting the changes of orientation:
SensorEnd()
Syntax
<Result> = SensorDetectChangeOrientation(<Procedure Name> [, <Orientation> [, <Frequency> [, <Threshold>]]])
<Result>: Boolean
  • True if the detection was triggered,
  • False otherwise.
<Procedure Name>: Character string (with or without quotes)
Name of WLanguage procedure ("callback" procedure) that will be called when the orientation changes on the device. This procedure has the following format:
PROCEDURE <Procedure Name> (<Azimuth>, <Pitch>, <Roll>)
where:
  • <Azimuth> is an integer corresponding to the angle between the direction of the magnetic North and the direction of the longitudinal axis (Y) of the device,
  • <Pitch> is an integer corresponding to the rotation angle of the device around the horizontal axis (X)
  • <Roll> is an integer corresponding to the rotation angle of the device around the longitudinal axis (Y).
The parameters of this procedure are optional. There is no need to pass parameters to this procedure. Indeed, these parameters are automatically filled during each call providing that the corresponding type of orientation is specified in <Orientation>. Otherwise, these parameters are set to 0.
If the name of the procedure corresponds to an empty string (""), the notifications for change of orientation corresponding to <Orientation> will not be sent anymore.
<Orientation>: Optional Integer constant (or combination of constants)
Type of orientation change that must be noted:
snrAzimuthNotification when the orientation changes around the vertical axis (Z).
snrPitchNotification when the orientation changes around the horizontal axis (X).
snrRollNotification when the orientation changes around the longitudinal axis (Y).
By default, a notification will be sent when the orientation changes on any one of the three axes (equivalent to snrAzimuth + snrPitch + snrRoll).
<Frequency>: Optional Integer constant
Frequency according to which the notifications for changes of orientation must be sent:
snrFrequencyGameFrequency of notification required when using SensorDetectChangeOrientation in a game.
snrFrequencyNormal
(Default value)
Standard frequency of notification.
snrFrequencyQuickFast frequency of notification.
iPhone/iPad This parameter is ignored. The frequency is the same, regardless of the specified constant.
<Threshold>: Optional integer
Threshold for tolerance in changing (in degrees). The notifications will be sent for the changes of orientation greater than this threshold.
No threshold will be fixed if this parameter is not specified: the notifications will be sent for each change of orientation (equivalent to a threshold set to 0).
Remarks

Use conditions

  • This function cannot be used in the emulator or in the simulator. In both cases, the result of the function will always be set to False.
  • The detection of orientation changes uses the accelerometer sensor found on the device. No detection of orientation changes will be performed if this sensor is not found on the device. The sensitivity of detection depends on the quality of the sensor found in the device.
  • Only the last call to SensorDetectChangeOrientation is taken into account. Indeed, there can only be one detection at a time. To perform a detection according to multiple axes, you must combine the orientations.

Orientation of a device: definitions

The change of orientation can be specified according to the three following dimensions:
  • Azimuth: Direction of the device in relation to the magnetic North around the vertical axis (Z). This direction is expressed in degrees (from 0 to 360 degrees). In this case, 0 or 360 corresponds to the North, 90 corresponds to the East, 180 corresponds to the South and 270 corresponds to the West.
  • Pitch: Rotation of the device around the horizontal axis (X). This rotation is expressed in degrees (from -180 to 180). Its value is set to 0 degree when the device lies down flat with the screen pointing to the ceiling, -90 degrees when the device stands still with the top of the device pointing to the ceiling, 90 degrees when the device stands still with the top of the device pointing to the ground and -180/180 degrees when the device lies down flat with the screen pointing to the ground.
  • Roll: Rotation of the device around the longitudinal axis (Y). This rotation is expressed in degrees (from -90 to 90). Its value is set to 0 degree when the device lies down flat with the screen pointing to the ceiling, -90 degrees when the screen is oriented to the left and 90 degrees when the screen is oriented to the right.
Origin of the orientation
System of coordinates (considering that the device lies down flat, the screen directed to the ceiling):
  • The origin is found in the bottom left corner of the screen.
  • The X axis represents the horizontal axis and it points to the right of the screen.
  • The Y axis represents the longitudinal axis and it points to the top of the screen.
  • The Z axis represents the vertical axis and it points outside the front of the screen.

Stopping the detection

We advise you to stop detecting the changes of orientation when no longer required in order to save the battery of the device. To do so, <Procedure Name> must correspond to an empty string ("").
SensorEnd is used to stop all the current detections.
Related Examples:
iOS System iPhone/iPad (WINDEV Mobile): iOS System
[ + ] This application is an example presenting the use of various features.
The features are as follows:
- Playing videos
- Trace in the logs
- Slider
- Popup control
- Hourglass
...
Components
WEBDEV - Browser code WDJS.DLL
Android wd230android.jar
See also
Minimum required version
  • Version 16
This page is also available for…
Comments
Click [Add] to post a comment