258911c6c1f2ced47e64e0af12f7d8dccb26e856
[project/uqmi.git] / qmi-enums-pds.h
1 /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * uqmi -- tiny QMI support implementation
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the
17  * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18  * Boston, MA 02110-1301 USA.
19  *
20  * Copyright (C) 2012 Google Inc.
21  */
22
23 #ifndef _LIBQMI_GLIB_QMI_ENUMS_PDS_H_
24 #define _LIBQMI_GLIB_QMI_ENUMS_PDS_H_
25
26 /**
27  * SECTION: qmi-enums-pds
28  * @title: PDS enumerations and flags
29  *
30  * This section defines enumerations and flags used in the PDS service
31  * interface.
32  */
33
34 /*****************************************************************************/
35 /* Helper enums for the 'QMI PDS Event Report' indication */
36
37 /**
38  * QmiPdsOperationMode:
39  * @QMI_PDS_OPERATION_MODE_UNKNOWN: Unknown (position not fixed yet).
40  * @QMI_PDS_OPERATION_MODE_STANDALONE: Standalone.
41  * @QMI_PDS_OPERATION_MODE_MS_BASED: MS based.
42  * @QMI_PDS_OPERATION_MODE_MS_ASSISTED: MS assisted.
43  *
44  * Operation mode used to compute the position.
45  */
46 typedef enum {
47     QMI_PDS_OPERATION_MODE_UNKNOWN     = -1,
48     QMI_PDS_OPERATION_MODE_STANDALONE  =  0,
49     QMI_PDS_OPERATION_MODE_MS_BASED    =  1,
50     QMI_PDS_OPERATION_MODE_MS_ASSISTED =  2
51 } QmiPdsOperationMode;
52
53 /**
54  * QmiPdsPositionSessionStatus:
55  * @QMI_PDS_POSITION_SESSION_STATUS_SUCCESS: Success.
56  * @QMI_PDS_POSITION_SESSION_STATUS_IN_PROGRESS: In progress.
57  * @QMI_PDS_POSITION_SESSION_STATUS_GENERAL_FAILURE: General failure.
58  * @QMI_PDS_POSITION_SESSION_STATUS_TIMEOUT: Timeout.
59  * @QMI_PDS_POSITION_SESSION_STATUS_USER_ENDED_SESSION: User ended session.
60  * @QMI_PDS_POSITION_SESSION_STATUS_BAD_PARAMETER: Bad parameter.
61  * @QMI_PDS_POSITION_SESSION_STATUS_PHONE_OFFLINE: Phone is offline.
62  * @QMI_PDS_POSITION_SESSION_STATUS_ENGINE_LOCKED: Engine locked.
63  * @QMI_PDS_POSITION_SESSION_STATUS_E911_SESSION_IN_PROGRESS: Emergency call in progress.
64  *
65  * Status of the positioning session.
66  */
67 typedef enum {
68     QMI_PDS_POSITION_SESSION_STATUS_SUCCESS                  = 0x00,
69     QMI_PDS_POSITION_SESSION_STATUS_IN_PROGRESS              = 0x01,
70     QMI_PDS_POSITION_SESSION_STATUS_GENERAL_FAILURE          = 0x02,
71     QMI_PDS_POSITION_SESSION_STATUS_TIMEOUT                  = 0x03,
72     QMI_PDS_POSITION_SESSION_STATUS_USER_ENDED_SESSION       = 0x04,
73     QMI_PDS_POSITION_SESSION_STATUS_BAD_PARAMETER            = 0x05,
74     QMI_PDS_POSITION_SESSION_STATUS_PHONE_OFFLINE            = 0x06,
75     QMI_PDS_POSITION_SESSION_STATUS_ENGINE_LOCKED            = 0x07,
76     QMI_PDS_POSITION_SESSION_STATUS_E911_SESSION_IN_PROGRESS = 0x08
77 } QmiPdsPositionSessionStatus;
78
79 /**
80  * QmiPdsDataValid:
81  * @QMI_PDS_DATA_VALID_TIMESTAMP_CALENDAR: Timestamp calendar (GPS time).
82  * @QMI_PDS_DATA_VALID_TIMESTAMP_UTC: Timestamp (UTC).
83  * @QMI_PDS_DATA_VALID_LEAP_SECONDS: Leap seconds.
84  * @QMI_PDS_DATA_VALID_TIME_UNCERTAINTY: Time uncertainty.
85  * @QMI_PDS_DATA_VALID_LATITUDE: Latitude.
86  * @QMI_PDS_DATA_VALID_LONGITUDE: Longitude.
87  * @QMI_PDS_DATA_VALID_ELLIPSOID_ALTITUDE: Ellipsoid altitude.
88  * @QMI_PDS_DATA_VALID_MEAN_SEA_LEVEL_ALTITUDE: Mean sea level altitude.
89  * @QMI_PDS_DATA_VALID_HORIZONTAL_SPEED: Horizontal speed.
90  * @QMI_PDS_DATA_VALID_VERTICAL_SPEED: Vertical speed.
91  * @QMI_PDS_DATA_VALID_HEADING: Heading.
92  * @QMI_PDS_DATA_VALID_HORIZONTAL_UNCERTAINTY_CIRCULAR: Horizontal uncertainty circular.
93  * @QMI_PDS_DATA_VALID_HORIZONTAL_UNCERTAINTY_ELLIPSE_SEMI_MAJOR: Horizontal uncertainty ellipse semi-major.
94  * @QMI_PDS_DATA_VALID_HORIZONTAL_UNCERTAINTY_ELLIPSE_SEMI_MINOR: Horizontal uncertainty ellipse semi-minor.
95  * @QMI_PDS_DATA_VALID_HORIZONTAL_UNCERTAINTY_ELLIPSE_ORIENT_AZIMUTH: Horizontal uncertainty ellipse orient azimuth.
96  * @QMI_PDS_DATA_VALID_VERTICAL_UNCERTAINTY: Vertical uncertainty.
97  * @QMI_PDS_DATA_VALID_HORIZONTAL_VELOCITY_UNCERTAINTY: Horizontal velocity uncertainty.
98  * @QMI_PDS_DATA_VALID_VERTICAL_VELOCITY_UNCERTAINTY: Vertical velocity uncertainty.
99  * @QMI_PDS_DATA_VALID_HORIZONTAL_CONFIDENCE: Horizontal confidence.
100  * @QMI_PDS_DATA_VALID_POSITION_DOP: Position dillution of precision.
101  * @QMI_PDS_DATA_VALID_HORIZONTAL_DOP: Horizontal dillution of precision.
102  * @QMI_PDS_DATA_VALID_VERTICAL_DOP: Vertical dillution of precision.
103  * @QMI_PDS_DATA_VALID_OPERATING_MODE: Operating mode.
104  *
105  * Flags to indicate which position data parameters are valid.
106  */
107 typedef enum {
108     QMI_PDS_DATA_VALID_TIMESTAMP_CALENDAR      = 1 << 0,
109     QMI_PDS_DATA_VALID_TIMESTAMP_UTC           = 1 << 1,
110     QMI_PDS_DATA_VALID_LEAP_SECONDS            = 1 << 2,
111     QMI_PDS_DATA_VALID_TIME_UNCERTAINTY        = 1 << 3,
112     QMI_PDS_DATA_VALID_LATITUDE                = 1 << 4,
113     QMI_PDS_DATA_VALID_LONGITUDE               = 1 << 5,
114     QMI_PDS_DATA_VALID_ELLIPSOID_ALTITUDE      = 1 << 6,
115     QMI_PDS_DATA_VALID_MEAN_SEA_LEVEL_ALTITUDE = 1 << 7,
116     QMI_PDS_DATA_VALID_HORIZONTAL_SPEED        = 1 << 8,
117     QMI_PDS_DATA_VALID_VERTICAL_SPEED          = 1 << 9,
118     QMI_PDS_DATA_VALID_HEADING                 = 1 << 10,
119     QMI_PDS_DATA_VALID_HORIZONTAL_UNCERTAINTY_CIRCULAR               = 1 << 11,
120     QMI_PDS_DATA_VALID_HORIZONTAL_UNCERTAINTY_ELLIPSE_SEMI_MAJOR     = 1 << 12,
121     QMI_PDS_DATA_VALID_HORIZONTAL_UNCERTAINTY_ELLIPSE_SEMI_MINOR     = 1 << 13,
122     QMI_PDS_DATA_VALID_HORIZONTAL_UNCERTAINTY_ELLIPSE_ORIENT_AZIMUTH = 1 << 14,
123     QMI_PDS_DATA_VALID_VERTICAL_UNCERTAINTY                          = 1 << 15,
124     QMI_PDS_DATA_VALID_HORIZONTAL_VELOCITY_UNCERTAINTY               = 1 << 16,
125     QMI_PDS_DATA_VALID_VERTICAL_VELOCITY_UNCERTAINTY                 = 1 << 17,
126     QMI_PDS_DATA_VALID_HORIZONTAL_CONFIDENCE   = 1 << 18,
127     QMI_PDS_DATA_VALID_POSITION_DOP            = 1 << 19,
128     QMI_PDS_DATA_VALID_HORIZONTAL_DOP          = 1 << 20,
129     QMI_PDS_DATA_VALID_VERTICAL_DOP            = 1 << 21,
130     QMI_PDS_DATA_VALID_OPERATING_MODE          = 1 << 22
131 } QmiPdsDataValid;
132
133 /*****************************************************************************/
134 /* Helper enums for the 'QMI PDS Get GPS Service State' request/response */
135
136 /**
137  * QmiPdsTrackingSessionState:
138  * @QMI_PDS_TRACKING_SESSION_STATE_UNKNOWN: Unknown state.
139  * @QMI_PDS_TRACKING_SESSION_STATE_INACTIVE: Session inactive.
140  * @QMI_PDS_TRACKING_SESSION_STATE_ACTIVE: Session active.
141  *
142  * State of the tracking session.
143  */
144 typedef enum {
145     QMI_PDS_TRACKING_SESSION_STATE_UNKNOWN  = 0,
146     QMI_PDS_TRACKING_SESSION_STATE_INACTIVE = 1,
147     QMI_PDS_TRACKING_SESSION_STATE_ACTIVE   = 2
148 } QmiPdsTrackingSessionState;
149
150 #endif /* _LIBQMI_GLIB_QMI_ENUMS_PDS_H_ */