The Sensor Utility API provides utility functions. 
Required Header
#include <sensor.h>
Overview
This Sensor API provides utility functions. 
Functions | 
| int  | sensor_util_get_rotation_matrix (float Gx, float Gy, float Gz, float Mx, float My, float Mz, float R[], float I[]) | 
|   | Gets the inclination matrix "I" and rotation matrix "R" transforming a vector from the device coordinate to the world's coordinate.  
  | 
| int  | sensor_util_get_rotation_matrix_from_vector (float Vx, float Vy, float Vz, float R[]) | 
|   | Converts a rotation vector to a rotation matrix.  
  | 
| int  | sensor_util_remap_coordinate_system (float inR[], sensor_util_axis_e x, sensor_util_axis_e y, float outR[]) | 
|   | Rotates the supplied rotation matrix so that it is expressed in a different coordinate system.  
  | 
| int  | sensor_util_get_inclination (float I[], float *inclination) | 
|   | Computes the geomagnetic inclination angle in radians from the inclination matrix I returned by sensor_util_get_rotation_matrix().  
  | 
| int  | sensor_util_get_orientation (float R[], float values[]) | 
|   | Computes the device's orientation based on the rotation matrix.  
  | 
| int  | sensor_util_get_angle_change (float R[], float prevR[], float angleChange[]) | 
|   | Computes the angle change between two rotation matrices.  
  | 
| int  | sensor_util_get_declination (float latitude, float longitude, float altitude, float *declination) | 
|   | Gets the declination of the horizontal component of the magnetic field from true north, in degrees.  
  | 
| int  | sensor_util_get_altitude (float pressure, float sea_level_pressure, float temperature, float *altitude) | 
|   | Gets the altitude from the atmospheric pressure, the pressure at sea level and temperature, in meters.  
  | 
Enumeration Type Documentation
Enumeration of the axis used in sensor_util_remap_coordinate_system(). 
- Since :
 - 2.3 
 
- Enumerator: 
 
| SENSOR_UTIL_AXIS_MINUS_X  | 
 -X  
 | 
| SENSOR_UTIL_AXIS_MINUS_Y  | 
 -Y  
 | 
| SENSOR_UTIL_AXIS_MINUS_Z  | 
 -Z  
 | 
| SENSOR_UTIL_AXIS_X  | 
 +X  
 | 
| SENSOR_UTIL_AXIS_Y  | 
 +Y  
 | 
| SENSOR_UTIL_AXIS_Z  | 
 +Z  
 | 
 
 
 
Function Documentation
Gets the altitude from the atmospheric pressure, the pressure at sea level and temperature, in meters. 
- Since :
 - 4.0
 
- Parameters:
 - 
  
    | [in] | pressure | The atmospheric pressure (hPa)  | 
    | [in] | sea_level_pressure | The sea level pressure (hPa)  
 If the sea level pressure is not known, you can use 1013.25 hPa, mean sea level pressure  | 
    | [in] | temperature | The temperature (degrees Celsius)  
 If the temperature is not known, you can use 15 degrees Celsius  | 
    | [out] | altitude | The altitude (meters) | 
  
   
- Returns:
 - SENSOR_ERROR_NONE on success; Otherwise a negative error value 
 
- Return values:
 - 
  
  
 
 
 
Computes the angle change between two rotation matrices. 
Given a current rotation matrix (R) and a previous rotation matrix (prevR), it computes the rotation around the x,y, and z axes which transforms prevR to R. It outputs a 3 element vector containing the x,y, and z angle change at indexes 0, 1, and 2 respectively. 
 
- Since :
 - 2.3 
 
- Parameters:
 - 
  
    | [in] | R | The current rotation matrix  | 
    | [in] | prevR | The previous rotation matrix  | 
    | [out] | angleChange | An array of floats in which the angle change is stored | 
  
   
- Returns:
 - SENSOR_ERROR_NONE on success; Otherwise a negative error value 
 
- Return values:
 - 
  
  
 
 
 
Gets the declination of the horizontal component of the magnetic field from true north, in degrees. 
- Since :
 - 2.3 
 
- Parameters:
 - 
  
    | [in] | latitude | The latitude in geodetic coordinates  | 
    | [in] | longitude | The longitude in geodetic coordinates  | 
    | [in] | altitude | The altitude in geodetic coordinates  | 
    | [out] | declination | The declination of the horizontal component of the magnetic field in degrees | 
  
   
- Returns:
 - SENSOR_ERROR_NONE on success; Otherwise a negative error value 
 
- Return values:
 - 
  
  
 
 
 
Computes the device's orientation based on the rotation matrix. 
When it returns, the array values are filled with the result:
- values[0]: azimuth, rotation around the Z axis.
 
- values[1]: pitch, rotation around the X axis.
 
- values[2]: roll, rotation around the Y axis. 
- Since :
 - 2.3 
 
- Parameters:
 - 
  
    | [in] | R | A 9 element rotation matrix in the array  | 
    | [out] | values | An array of 3 floats to hold the result | 
  
   
- Returns:
 - SENSOR_ERROR_NONE on success; Otherwise a negative error value 
 
- Return values:
 - 
  
  
 
- See also:
 - sensor_util_get_rotation_matrix() 
 
 
 
 
Gets the inclination matrix "I" and rotation matrix "R" transforming a vector from the device coordinate to the world's coordinate. 
[0 0 g] = R * gravity (g = magnitude of gravity) 
 [0 m 0] = I * R * geomagnetic (m = magnitude of the geomagnetic field) 
 R is the identity matrix when the device is aligned with the world's coordinate system, that is, when the device's X axis points towards the East, the Y axis points to the North Pole and the device is facing the sky. 
 I is a rotation matrix transforming the geomagnetic vector into the same coordinate space as gravity (the world's coordinate space). I is a simple rotation around the X axis. 
 
- Since :
 - 2.3 
 
- Parameters:
 - 
  
    | [in] | Gx | The X-axis gravity vector in the device's coordinate  | 
    | [in] | Gy | The Y-axis gravity vector in the device's coordinate  | 
    | [in] | Gz | The Z-axis gravity vector in the device's coordinate  | 
    | [in] | Mx | The X-axis geomagnetic vector in the device's coordinate  | 
    | [in] | My | The Y-axis geomagnetic vector in the device's coordinate  | 
    | [in] | Mz | The Z-axis geomagnetic vector in the device's coordinate  | 
    | [out] | R | The array of 9 floats that represent the rotation matrix "R"  
 It can be null.  | 
    | [out] | I | The array of 9 floats that represent the inclination matrix "I"  
 It can be null. | 
  
   
- Returns:
 - SENSOR_ERROR_NONE on success; Otherwise a negative error value 
 
- Return values:
 - 
  
  
 
 
 
Converts a rotation vector to a rotation matrix. 
Rotation vectors (Vx, Vy, Vz) can be obtained from SENSOR_ROTATION_VECTOR. It returns a 9 element rotation matrix in the array R. R must have length as 9. 
- Since :
 - 2.3 
 
- Parameters:
 - 
  
    | [in] | Vx | The X-axis rotation vector  | 
    | [in] | Vy | The Y-axis rotation vector  | 
    | [in] | Vz | The Z-axis rotation vector  | 
    | [out] | R | A 9 element rotation matrix in the array R that must have length as 9 | 
  
   
- Returns:
 - SENSOR_ERROR_NONE on success; Otherwise a negative error value 
 
- Return values:
 - 
  
  
 
 
 
Rotates the supplied rotation matrix so that it is expressed in a different coordinate system. 
This is typically used when an application needs to compute the three orientation angles of the device in a different coordinate system. 
- Since :
 - 2.3 
 
- Parameters:
 - 
  
    | [in] | inR | The rotation matrix (3x3) to be transformed  | 
    | [in] | x | The world axis and direction on which the X axis of the device is mapped  | 
    | [in] | y | The world axis and direction on which the Y axis of the device is mapped  | 
    | [out] | outR | The transformed rotation matrix (3x3) | 
  
   
- Returns:
 - SENSOR_ERROR_NONE on success; Otherwise a negative error value 
 
- Return values:
 -