le_gnss_interface.h

Go to the documentation of this file.
1 
2 
3 /*
4  * ====================== WARNING ======================
5  *
6  * THE CONTENTS OF THIS FILE HAVE BEEN AUTO-GENERATED.
7  * DO NOT MODIFY IN ANY WAY.
8  *
9  * ====================== WARNING ======================
10  */
11 
12 /**
13  * @page c_gnss GNSS
14  *
15  * @ref le_gnss_interface.h "API Reference" <br>
16  * @ref platformConstraintsGnss <br>
17  * @ref howToGNSS "How To Use GNSS" <br>
18  * @ref toolsTarget_gnss "GNSS target tool" <br>
19  *
20  * <HR>
21  *
22  * This API provides access to the GNSS device.
23  *
24  * GNSS or Global Navigation Satellite System is a satellite navigation system with global coverage.
25  *
26  * This API provides function to configure the GNSS device and retrieve position information.
27  *
28  * @section le_gnss_binding IPC interfaces binding
29  *
30  * All the functions of this API are provided by the @b positioningService application service.
31  *
32  * Here's a code sample binding to Positioning services:
33  * @verbatim
34  bindings:
35  {
36  clientExe.clientComponent.le_gnss -> positioningService.le_gnss
37  }
38  @endverbatim
39  *
40  * @section le_gnss_ControlApi GNSS Control API
41  *
42  * @subsection le_gnss_EnableDisable Enable/Disable GNSS device
43  *
44  * The application can enable/disable the GNSS device with the le_gnss_Enable()
45  * / le_gnss_Disable() functions.
46  * By default the GNSS device is enabled for the positioningService application service.
47  * Also see @ref howToGNSS.
48  *
49  * A sample code can be seen in the following page:
50  * - @subpage c_gnssSampleCodeEnableDisable
51  *
52  * @subsection le_gnss_StartStop Start/Stop GNSS device
53  *
54  * The application can start/stop the GNSS device with the le_gnss_Start() / le_gnss_Stop()
55  * functions.
56  * The default "HOT" start condition is applied and all assistance data are used.
57  * Also see @ref howToGNSS.
58  *
59  * A sample code can be seen in the following page:
60  * - @subpage c_gnssSampleCodeStartStop
61  *
62  * @subsubsection le_gnss_StartingMode Starting mode
63  *
64  * Starting modes are used only for test purposes and allow start performance measurement.
65  * @note For more information about start performances, please refer to your specific
66  * platform documentation.
67  *
68  * @subsubsection SettingConfiguration Setting configuration
69  *
70  * @warning The GNSS setting configuration depends on the platform. Please refer to
71  * @ref platformConstraintsGnss_SettingConfiguration section for full details.
72  *
73  * @subsubsection le_gnss_Data GNSS data
74  * The following table describes the <b>minimum</b> required data for those starting modes:
75  *
76  * | GNSS Data / Starting mode | HOT | WARM | COLD | FACTORY |
77  *| -----------------------| -----| ------| ----- | ------- |
78  *| Broadcasted Ephemeris | Used | | | |
79  *| Extended Ephemeris | Used(1) | Used(2) | Used(2) | Removed (3) |
80  *| Approximate Time and Position | Used | Used | | |
81  *| Almanac | Used | Used | Used | Used (Factory) |
82  *
83  * For example, a requested HOT start without valid broadcasted ephemeris will be treated
84  * as a WARM start.
85  *
86  * @note (1) Extended Ephemeris can be used if Broadcasted Ephemeris are not valid.
87  * The Extended Ephemeris could be loaded using the le_gnss_LoadExtendedEphemerisFile()
88  * function.
89  * @note (2) Extended Ephemeris is used if the Extended Ephemeris file is loaded and valid.
90  * @note (3) Extended Ephemeris are removed when a FACTORY start is requested.
91  * The Extended Ephemeris could be loaded again using the le_gnss_LoadExtendedEphemerisFile()
92  * function.
93  *
94  * @subsubsection le_gnss_TTFF Time To First Fix (TTFF)
95  * The le_gnss_GetTtff() function provides the TTFF (first between 2-Dimensional or 3-Dimensional
96  * position fix) of the last position fix.
97  * The GNSS fix position is calculated by the GNSS engine. Its state can be retrieved by
98  * le_gnss_GetPositionState() function. The GNSS fix position states are given by le_gnss_FixState_t
99  * enum.
100  * @note The "estimated" fix is obtained when less than 3 Satellites Vehicle (SV) are used to
101  * establish the fix. It includes the case when no SVs are used.
102  *
103  * Please refer to @ref le_gnss_APIcallsRequirements. Also see @ref howToGNSS.
104  *
105  * A sample code can be seen in the following page:
106  * - @subpage c_gnssSampleCodeReStart
107  *
108  * @subsubsection le_gnss_InjectUtcTime Inject UTC time
109  * The le_gnss_InjectUtcTime() function injects the UTC time into the location engine. Providing an
110  * accurate UTC time reduces the time to find the first fix.
111  * @note It is mandatory to enable the 'Extended Ephemeris' file injection into the GNSS device with
112  * le_gnss_EnableExtendedEphemerisFile() before injecting time with le_gnss_InjectUtcTime API.
113  * @warning Your GNSS device may require a restart to take into account the enabling of the
114  * 'Extended Ephemeris' file injection.
115  * Please refer to your platform documentation @ref platformConstraintsGnss_SettingConfiguration for
116  * further details.
117  *
118  * @subsubsection le_gnss_ForceHotRestart Force HOT restart
119  * The le_gnss_ForceHotRestart() function performs a "HOT" restart of the GNSS device. The current
120  * GNSS session is stopped, then started using the available @ref le_gnss_Data.
121  * Please refer to @ref le_gnss_APIcallsRequirements. Also see @ref howToGNSS.
122  *
123  * @subsubsection le_gnss_ForceWarmRestart Force WARM restart
124  * The le_gnss_ForceWarmRestart() function performs a "WARM" restart of the GNSS device. The current
125  * GNSS session is stopped, then started using the available @ref le_gnss_Data.
126  * Please refer to @ref le_gnss_APIcallsRequirements. Also see @ref howToGNSS.
127  * @Note This API has a platform dependent feature. Please refer to
128  * @ref platformConstraintsGnss_WarmRestart for further details.
129  *
130  * @subsubsection le_gnss_ForceColdRestart Force COLD restart
131  * The le_gnss_ForceColdRestart() function performs a "COLD" restart of the GNSS device. The current
132  * GNSS session is stopped, then started using the available @ref le_gnss_Data.
133  * Please refer to @ref le_gnss_APIcallsRequirements. Also see @ref howToGNSS.
134  *
135  * @subsubsection le_gnss_ForceFactoryRestart Force FACTORY restart
136  * The le_gnss_ForceFactoryRestart() function performs a "FACTORY" restart of the GNSS device.
137  * The current GNSS session is stopped, then started using the available @ref le_gnss_Data.
138  * Please refer to @ref le_gnss_APIcallsRequirements. Also see @ref howToGNSS.
139  *
140  * @subsection le_gnss_AcquisitionRate Acquisition rate
141  * The GNSS position is computed and delivered each acquisition rate. The acquisition rate defines
142  * the time interval that must elapse between two final GPS positions calculation and reports.
143  * Its default value is 1 second.
144  * The application can configure/retreive the GNSS device acquisition rate with the
145  * le_gnss_SetAcquisitionRate() / le_gnss_GetAcquisitionRate() functions.
146  *
147  * Please refer to @ref le_gnss_APIcallsRequirements.
148  *
149  * A sample code can be seen in the following page:
150  * - @subpage c_gnssSampleCodeAcquisitionRate
151  *
152  * @subsection le_gnss_SetGetConstellation GNSS constellation selection
153  *
154  * The le_gnss_SetConstellation() function selects the GNSS constellation(s) used in solution.
155  * If all GNSS constellations are disabled, the GNSS engine is disabled.
156  *
157  * @warning Your GNSS device may require a restart to take into account this change.
158  * Please refer to your platform documentation @ref platformConstraintsGnss_SettingConfiguration for
159  * further details.
160  *
161  * Combinations of constellation for GPS, GLONASS, BDS, GALILEO and QZSS satellites are currently
162  * supported. Constellation for SBAS satellites is not supported.
163  *
164  * @warning Some constellation types are unsupported depending on the plateform. Please refer to
165  * @ref platformConstraintsGnss_ConstellationType section for full details.
166  *
167  * All supported GNSS constellations are enabled by default.
168  * The le_gnss_GetConstellation() function gets the GNSS constellation(s) enabled to be used
169  * in solution.
170  *
171  * le_gnss_SetConstellationArea sets the area for a GNSS constellation. le_gnss_GetConstellationArea
172  * gets the area for a GNSS constellation.
173  *
174  * A sample code can be seen in the following page:
175  * - @subpage c_gnssSampleCodeConstellation
176  *
177  * @subsection le_gnss_SetGetMinElevation GNSS minimum elevation selection
178  *
179  * The le_gnss_SetMinElevation() function sets the GNSS minimum elevation.
180  * Satellites with elevation lower than the minimum elevation will be ignored.
181  *
182  * The le_gnss_GetMinElevation() function gets the GNSS minimum elevation.
183  *
184  * A sample code can be seen in the following page:
185  * - @subpage c_gnssSampleCodeMinElevation
186  *
187  * @subsection le_gnss_NmeaSentences NMEA sentences selection
188  *
189  * The le_gnss_SetNmeaSentences() function selects the enabled NMEA sentences in the
190  * @ref le_gnss_NMEA with a bit mask. The supported values are listed in @ref le_gnss_NmeaBitMask_t.
191  *
192  * @note This function may be subject to limitations depending on the platform. Please refer to the
193  * @ref platformConstraintsGnss page.
194  *
195  * @warning Your GNSS device may require a restart to take into account this change.
196  * Please refer to your platform documentation @ref platformConstraintsGnss_SettingConfiguration for
197  * further details.
198  *
199  * @warning Some NMEA sentences are unsupported depending on the plateform. Please refer to
200  * @ref platformConstraintsGnss_nmeaMask section for full details.
201  *
202  * @note All supported NMEA sentences are enabled by default.
203  *
204  * The le_gnss_GetNmeaSentences() function gets the bit mask of the enabled NMEA sentences in the
205  * @ref le_gnss_NMEA.
206  *
207  * Please refer to @ref le_gnss_APIcallsRequirements.
208  *
209  * A sample code can be seen in the following page:
210  * - @subpage c_gnssSampleCodeNmeaSentences
211  *
212  * @subsection le_gnss_APIcallsRequirements API calls Requirements
213  * The following table shows the pre-requisites when using the GNSS service API function set.
214  * ''LE_OK or error code'' means the function is authorized in the corresponding state, the request
215  * is performed and the result is returned; otherwise the returned error is indicated for each state
216  *.
217  * | Function / GNSS state | UNINITIALIZED | READY | ACTIVE | DISABLED |
218  *| ----------------------------- | --------------------------- | -----------------------------| --------------------------- | --------------------------- |
219  *| le_gnss_Start() | LE_NOT_PERMITTED | LE_OK or error code | LE_DUPLICATE | LE_NOT_PERMITTED |
220  *| le_gnss_Stop() | LE_NOT_PERMITTED | LE_DUPLICATE | LE_OK or error code | LE_NOT_PERMITTED |
221  *| le_gnss_ForceHotRestart() | LE_NOT_PERMITTED | LE_NOT_PERMITTED | LE_OK or error code | LE_NOT_PERMITTED |
222  *| le_gnss_ForceWarmRestart() | LE_NOT_PERMITTED | LE_NOT_PERMITTED | LE_OK or error code | LE_NOT_PERMITTED |
223  *| le_gnss_ForceColdRestart() | LE_NOT_PERMITTED | LE_NOT_PERMITTED | LE_OK or error code | LE_NOT_PERMITTED |
224  *| le_gnss_ForceFactoryRestart() | LE_NOT_PERMITTED | LE_NOT_PERMITTED | LE_OK or error code | LE_NOT_PERMITTED |
225  *| le_gnss_Disable() | LE_NOT_PERMITTED | LE_OK or error code | LE_NOT_PERMITTED | LE_DUPLICATE |
226  *| le_gnss_Enable() | LE_NOT_PERMITTED | LE_DUPLICATE | LE_DUPLICATE | LE_OK or error code |
227  *| le_gnss_SetConstellation() | LE_NOT_PERMITTED | LE_OK or error code | LE_NOT_PERMITTED | LE_NOT_PERMITTED |
228  *| le_gnss_GetConstellation() | LE_NOT_PERMITTED | LE_OK or error code | LE_NOT_PERMITTED | LE_NOT_PERMITTED |
229  *| le_gnss_SetConstellationArea() | LE_NOT_PERMITTED | LE_OK or error code | LE_NOT_PERMITTED | LE_NOT_PERMITTED |
230  *| le_gnss_GetConstellationArea() | LE_NOT_PERMITTED | LE_OK or error code | LE_NOT_PERMITTED | LE_NOT_PERMITTED |
231  *| le_gnss_GetTtff() | LE_NOT_PERMITTED | LE_OK or error code | LE_OK or error code | LE_NOT_PERMITTED |
232  *| le_gnss_SetAcquisitionRate() | LE_NOT_PERMITTED | LE_OK or error code | LE_NOT_PERMITTED | LE_NOT_PERMITTED |
233  *| le_gnss_GetAcquisitionRate() | LE_NOT_PERMITTED | LE_OK or error code | LE_NOT_PERMITTED | LE_NOT_PERMITTED |
234  *| le_gnss_SetNmeaSentences() | LE_NOT_PERMITTED | LE_OK or error code | LE_NOT_PERMITTED | LE_NOT_PERMITTED |
235  *| le_gnss_GetNmeaSentences() | LE_NOT_PERMITTED | LE_OK or error code | LE_NOT_PERMITTED | LE_NOT_PERMITTED |
236  *
237  * Also see @ref howToGNSS.
238  *
239  * @section le_gnss_Information GNSS position information
240  * @ref le_gnss_NMEA
241  *
242  * @ref le_gnss_GetInfo
243  *
244  * @subsection le_gnss_NMEA NMEA Flow
245  * The National Marine Electronics Association (NMEA) standard defines an electrical interface
246  * and data protocol for communications between marine instrumentation.
247  *
248  * The NMEA-0183, scope of this document, defines a set of frame prefixed by
249  * $GP (concerning Global Positioning System),
250  * $GL (concerning GLONASS)
251  * and $GN (concerning combination of navigation systems).
252  * For more details about NMEA standards, please refer to http://www.nmea.org/.
253  *
254  * That NMEA frames flow can be retrieved from the "/dev/nmea" device folder, using for example
255  * the shell command $<EM> cat /dev/nmea | grep '$G'</EM>
256  *
257  * @subsection le_gnss_GetInfo Get position information
258  * The position information is referenced to a position sample object.
259  *
260  * An application can register a handler to be notified of the
261  * updated position each @ref le_gnss_AcquisitionRate, returning a position sample object.
262  *
263  * The GNSS information commonly used such as
264  * device state, position, time and date, satellites information and accuracy
265  * can be queried using the following functions:
266  * - le_gnss_GetState()
267  * - le_gnss_GetPositionState()
268  * - le_gnss_GetLocation()
269  * - le_gnss_GetAltitude()
270  * - le_gnss_GetDate()
271  * - le_gnss_GetTime()
272  * - le_gnss_GetGpsTime()
273  * - le_gnss_GetGpsLeapSeconds()
274  * - le_gnss_GetEpochTime()
275  * - le_gnss_GetTimeAccuracy()
276  * - le_gnss_GetHorizontalSpeed()
277  * - le_gnss_GetVerticalSpeed()
278  * - le_gnss_GetDirection()
279  * - le_gnss_GetSatellitesInfo()
280  * - le_gnss_GetSbasConstellationCategory()
281  * - le_gnss_GetSatellitesStatus()
282  * - le_gnss_GetDop()
283  * - le_gnss_GetDilutionOfPrecision()
284  * - le_gnss_GetAltitudeOnWgs84()
285  * - le_gnss_GetMagneticDeviation()
286  *
287  * le_gnss_SetDataResolution() function can be called to configure the resolution of position data
288  * type per client session. Currently, three data types are supported:
289  * - Vertical position accuracy provided by le_gnss_GetAltitude().
290  * - Vertical speed accuracy provided by le_gnss_GetVerticalSpeed().
291  * - Horizontal speed accuracy provided by le_gnss_GetHorizontalSpeed().
292  * Each data type can be set with a resolution from 0 to 3 decimal place.
293  *
294  * For example, to get the vertical position accuracy with a resolution of 2 decimal places,
295  * le_gnss_SetDataResolution() function is called with vertical position accuracy set as data type
296  * and 2 decimal place is set as resolution, then le_gnss_GetAltitude() function is called.
297  *
298  * @note If le_gnss_SetDataResolution() function is not called, the position data types are received
299  * in their default accuracies.
300  *
301  * le_gnss_GetDilutionOfPrecision() gets the DOP parameters (Dilution Of Precision) with a
302  * resolution of 3 decimal places by default. This resolution can be modified by calling the
303  * @c le_gnss_SetDopResolution() function first.
304  *
305  * As @c le_gnss_SetDopResolution() sets the resolution per client session,
306  * @c le_gnss_SetDopResolution() and @c le_gnss_GetDilutionOfPrecision() functions should be called
307  * in the same thread or client session.
308  *
309  * A sample code can be seen in the following page:
310  * - @subpage c_gnssSampleCodePosition
311  *
312  * The handler can be managed using le_gnss_AddPositionHandler()
313  * and le_gnss_RemovePositionHandler().
314  * When a position is computed, the handler is called.
315  *
316  * The application has to release each position sample object received by the handler,
317  * using the le_gnss_ReleaseSampleRef().
318  *
319  * A sample code can be seen in the following page:
320  * - @subpage c_gnssSampleCodePosition
321  *
322  * @section le_gnss_Assisted_GNSS Assisted GNSS
323  *
324  * @ref le_gnss_Assisted_GNSS_EE
325  * @ref le_gnss_Assisted_GNSS_UP
326  *
327  * @subsection le_gnss_Assisted_GNSS_EE Server based Extended Ephemeris
328  *
329  * @todo Add detailed documentation.
330  *
331  * With le_gnss_LoadExtendedEphemerisFile() , you can load an 'Extended Ephemeris' file into
332  * the GNSS device from the filesystem.
333  * You have to download the file before loading it.
334  * @warning Ensure to check that the downloaded file is supported for your specific platform.
335  *
336  * With le_gnss_GetExtendedEphemerisValidity(), you will to get the validity of the last injected
337  * Extended Ephemeris.
338  *
339  * You can enable/disable the use of the 'Extended Ephemeris' file into the GNSS device with
340  * le_gnss_EnableExtendedEphemerisFile() / le_gnss_DisableExtendedEphemerisFile() functions.
341  * @warning Ensure to check configuration capabilities for your specific platform.
342  * A reboot must be required if your platform doesn't allow run-time configuration.
343  *
344  * A sample code can be seen in the following page:
345  * - @subpage c_gnssSampleCodeXtra
346  *
347  * @subsection le_gnss_Assisted_GNSS_UP 3GPP User Plane (OMA SUPL)
348  *
349  * That 3GPP User Plane A-GNSS (Assisted GNSS) protocol is defined by two different standardization
350  * bodies, 3GPP and Open Mobile Alliance (OMA). For more information, please refer to the standard.
351  *
352  * Both MS-Assisted and MS-Based position determination methods are supported in the User Plane.
353  *
354  * In MS-Assisted mode, the MS (Mobile Station) measures the signals from the GNSS satellites
355  *, then returns the retrieved GNSS data to the SUPL (Secure User Plan Location) server, where the
356  * position calculation is performed.
357  *
358  * In MS-Based mode, the MS gets the assistance data from the SUPL (Secure User Plan Location)
359  * server. The MS measures the signals from the GNSS satellites and makes the position calculation.
360  *
361  * The data transport over User Plan is done using the TCP/IP protocol.
362  *
363  * The Assisted-GNSS mode can be configured thru the le_gnss_SetSuplAssistedMode() function.
364  *
365  * The supported modes are the following:
366  * - Standalone mode: That 3GPP User Plane A-GNSS feature is deactivated.
367  * - MS-Based mode
368  * - MS-Assisted mode
369  *
370  * Moreover, the le_gnss_GetSuplAssistedMode() function reads the configured Assisted-GNSS mode.
371  *
372  * The SUPL server is configured using the le_gnss_SetSuplServerUrl() function. That function sets
373  * the SUPL server URL and optionally the port number.
374  *
375  * The SUPL certificate to be used in A-GNSS sessions is injected through the
376  * le_gnss_InjectSuplCertificate() function and deleted through the le_gnss_DeleteSuplCertificate()
377  * function.
378  * The SUPL certificate lenght given as parameter to le_gnss_InjectSuplCertificate() must be less
379  * than LE_GNSS_SUPL_CERTIFICATE_MAX_LEN.
380  *
381  * <HR>
382  *
383  * Copyright (C) Sierra Wireless Inc.
384  */
385 /**
386  * @page c_gnssSampleCode Sample code for GNSS device
387  *
388  * @include "apps/test/positioning/gnssTest/gnssTest/gnssTest.c"
389  */
390 /**
391  * @page c_gnssSampleCodeEnableDisable Sample code for Enable/Disable GNSS device
392  *
393  * @snippet "apps/test/positioning/gnssTest/gnssTest/gnssTest.c" GnssEnable
394  */
395 /**
396  * @page c_gnssSampleCodeStartStop Sample code for Start/Stop GNSS device
397  *
398  * @snippet "apps/test/positioning/gnssTest/gnssTest/gnssTest.c" GnssControl
399  */
400 /**
401  * @page c_gnssSampleCodeReStart Sample code for restart GNSS device and get TTFF
402  *
403  * @snippet "apps/test/positioning/gnssTest/gnssTest/gnssTest.c" GnssReStart
404  */
405 /**
406  * @page c_gnssSampleCodeAcquisitionRate Sample code for GNSS acquisition rate configuration
407  *
408  * @snippet "apps/test/positioning/gnssTest/gnssTest/gnssTest.c" GnssControl
409  */
410 /**
411  * @page c_gnssSampleCodeConstellation Sample code for GNSS constellation selection
412  *
413  * @snippet "apps/test/positioning/gnssTest/gnssTest/gnssTest.c" GnssControl
414  */
415 /**
416  * @page c_gnssSampleCodeMinElevation Sample code for GNSS minimum elevation
417  *
418  * @snippet "apps/test/positioning/gnssTest/gnssTest/gnssTest.c" GnssControl
419  */
420 /**
421  * @page c_gnssSampleCodeNmeaSentences Sample code for GNSS NMEA sentences selection
422  *
423  * @snippet "apps/test/positioning/gnssTest/gnssTest/gnssTest.c" GnssControl
424  */
425 /**
426  * @page c_gnssSampleCodePosition Sample code for GNSS position information
427  *
428  * @snippet "apps/test/positioning/gnssTest/gnssTest/gnssTest.c" GnssPosition
429  */
430 /**
431  * @page c_gnssSampleCodeXtra Sample code for GNSS Server based Extended Ephemeris
432  *
433  * @include "apps/test/positioning/gnssXtraTest/gnssXtraTest/xtraTest.c"
434  */
435 /**
436  * @file le_gnss_interface.h
437  *
438  * Legato @ref c_gnss include file.
439  *
440  * Copyright (C) Sierra Wireless Inc.
441  */
442 
443 #ifndef LE_GNSS_INTERFACE_H_INCLUDE_GUARD
444 #define LE_GNSS_INTERFACE_H_INCLUDE_GUARD
445 
446 
447 #include "legato.h"
448 
449 
450 //--------------------------------------------------------------------------------------------------
451 /**
452  * Type for handler called when a server disconnects.
453  */
454 //--------------------------------------------------------------------------------------------------
455 typedef void (*le_gnss_DisconnectHandler_t)(void *);
456 
457 //--------------------------------------------------------------------------------------------------
458 /**
459  *
460  * Connect the current client thread to the service providing this API. Block until the service is
461  * available.
462  *
463  * For each thread that wants to use this API, either ConnectService or TryConnectService must be
464  * called before any other functions in this API. Normally, ConnectService is automatically called
465  * for the main thread, but not for any other thread. For details, see @ref apiFilesC_client.
466  *
467  * This function is created automatically.
468  */
469 //--------------------------------------------------------------------------------------------------
471 (
472  void
473 );
474 
475 //--------------------------------------------------------------------------------------------------
476 /**
477  *
478  * Try to connect the current client thread to the service providing this API. Return with an error
479  * if the service is not available.
480  *
481  * For each thread that wants to use this API, either ConnectService or TryConnectService must be
482  * called before any other functions in this API. Normally, ConnectService is automatically called
483  * for the main thread, but not for any other thread. For details, see @ref apiFilesC_client.
484  *
485  * This function is created automatically.
486  *
487  * @return
488  * - LE_OK if the client connected successfully to the service.
489  * - LE_UNAVAILABLE if the server is not currently offering the service to which the client is
490  * bound.
491  * - LE_NOT_PERMITTED if the client interface is not bound to any service (doesn't have a binding).
492  * - LE_COMM_ERROR if the Service Directory cannot be reached.
493  */
494 //--------------------------------------------------------------------------------------------------
496 (
497  void
498 );
499 
500 //--------------------------------------------------------------------------------------------------
501 /**
502  * Set handler called when server disconnection is detected.
503  *
504  * When a server connection is lost, call this handler then exit with LE_FATAL. If a program wants
505  * to continue without exiting, it should call longjmp() from inside the handler.
506  */
507 //--------------------------------------------------------------------------------------------------
509 (
510  le_gnss_DisconnectHandler_t disconnectHandler,
511  void *contextPtr
512 );
513 
514 //--------------------------------------------------------------------------------------------------
515 /**
516  *
517  * Disconnect the current client thread from the service providing this API.
518  *
519  * Normally, this function doesn't need to be called. After this function is called, there's no
520  * longer a connection to the service, and the functions in this API can't be used. For details, see
521  * @ref apiFilesC_client.
522  *
523  * This function is created automatically.
524  */
525 //--------------------------------------------------------------------------------------------------
527 (
528  void
529 );
530 
531 
532 //--------------------------------------------------------------------------------------------------
533 /**
534  * Maximum length of the SUP Server URL string.
535  */
536 //--------------------------------------------------------------------------------------------------
537 #define LE_GNSS_SUPL_SERVER_URL_MAX_LEN 256
538 
539 //--------------------------------------------------------------------------------------------------
540 /**
541  * Maximum length of the SUP Server URL string.
542  * One extra byte is added for the null character.
543  */
544 //--------------------------------------------------------------------------------------------------
545 #define LE_GNSS_SUPL_SERVER_URL_MAX_BYTES 257
546 
547 //--------------------------------------------------------------------------------------------------
548 /**
549  * Maximum SUPL certificate size.
550  */
551 //--------------------------------------------------------------------------------------------------
552 #define LE_GNSS_SUPL_CERTIFICATE_MAX_LEN 2000
553 
554 //--------------------------------------------------------------------------------------------------
555 /**
556  * Maximum SUPL certificate string size.
557  * One extra byte is added for the null character.
558  */
559 //--------------------------------------------------------------------------------------------------
560 #define LE_GNSS_SUPL_CERTIFICATE_MAX_BYTES 2001
561 
562 //--------------------------------------------------------------------------------------------------
563 /**
564  * Define the maximum length of the Satellites Vehicle information list
565  */
566 //--------------------------------------------------------------------------------------------------
567 #define LE_GNSS_SV_INFO_MAX_LEN 80
568 
569 //--------------------------------------------------------------------------------------------------
570 /**
571  * Define the maximal bit mask for enabled NMEA sentences
572  *
573  * @note This maximal value should be coherent with @ref le_gnss_NmeaBitMask_t
574  */
575 //--------------------------------------------------------------------------------------------------
576 #define LE_GNSS_NMEA_SENTENCES_MAX 4194303
577 
578 //--------------------------------------------------------------------------------------------------
579 /**
580  * @deprecated LE_GNSS_NMEA_MASK_PQXFI is deprecated. LE_GNSS_NMEA_MASK_PTYPE is to be used instead.
581  * Setting LE_GNSS_NMEA_MASK_PTYPE will also set LE_GNSS_NMEA_MASK_PQXFI.
582  * LE_GNSS_NMEA_MASK_PTYPE supports all Proprietary type masks: PQXFI, PQGSA and PQGSV.
583  */
584 //--------------------------------------------------------------------------------------------------
585 #define LE_GNSS_NMEA_MASK_PQXFI 16384
586 
587 //--------------------------------------------------------------------------------------------------
588 /**
589  * Define the maximal degree for the minimal elevation
590  */
591 //--------------------------------------------------------------------------------------------------
592 #define LE_GNSS_MIN_ELEVATION_MAX_DEGREE 90
593 
594 //--------------------------------------------------------------------------------------------------
595 /**
596  * Satellite Vehicle (SV) ID to PRN offset definitions
597  *
598  * @note SV ID is given both in le_gnss_GetSatellitesInfo() API and NMEA flow. Its corresponding
599  * PRN code can be computed adding the following offset according to its constellation.
600  */
601 //--------------------------------------------------------------------------------------------------
602 #define LE_GNSS_PRN_OFFSET_GPS 0
603 
604 //--------------------------------------------------------------------------------------------------
605 /**
606  */
607 //--------------------------------------------------------------------------------------------------
608 #define LE_GNSS_PRN_OFFSET_SBAS 87
609 
610 //--------------------------------------------------------------------------------------------------
611 /**
612  */
613 //--------------------------------------------------------------------------------------------------
614 #define LE_GNSS_PRN_OFFSET_GLONASS -64
615 
616 //--------------------------------------------------------------------------------------------------
617 /**
618  */
619 //--------------------------------------------------------------------------------------------------
620 #define LE_GNSS_PRN_OFFSET_GALILEO -300
621 
622 //--------------------------------------------------------------------------------------------------
623 /**
624  */
625 //--------------------------------------------------------------------------------------------------
626 #define LE_GNSS_PRN_OFFSET_BEIDOU -200
627 
628 //--------------------------------------------------------------------------------------------------
629 /**
630  */
631 //--------------------------------------------------------------------------------------------------
632 #define LE_GNSS_PRN_OFFSET_QZSS 0
633 
634 //--------------------------------------------------------------------------------------------------
635 /**
636  * Reference type for dealing with GNSS position samples.
637  */
638 //--------------------------------------------------------------------------------------------------
639 typedef struct le_gnss_Sample* le_gnss_SampleRef_t;
640 
641 
642 //--------------------------------------------------------------------------------------------------
643 /**
644  * Enumeration for GNSS device state
645  */
646 //--------------------------------------------------------------------------------------------------
647 typedef enum
648 {
650  ///< The GNSS device is not initialized
652  ///< The GNSS device is ready
654  ///< The GNSS device is active
656  ///< The GNSS device is disabled
658  ///< Do not use
659 }
661 
662 
663 //--------------------------------------------------------------------------------------------------
664 /**
665  * GNSS fix position states.
666  */
667 //--------------------------------------------------------------------------------------------------
668 typedef enum
669 {
671  ///< The GNSS fix position is not fixed.
673  ///< 2-Dimensional position fix.
675  ///< 3-Dimensional position fix.
677  ///< Estimated (i.e. forward predicted) position fix.
678 }
680 
681 
682 //--------------------------------------------------------------------------------------------------
683 /**
684  * Resolutions values.
685  */
686 //--------------------------------------------------------------------------------------------------
687 typedef enum
688 {
690  ///< Resolution of 0 decimal place.
692  ///< Resolution of 1 decimal place.
694  ///< Resolution of 2 decimal places.
696  ///< Resolution of 3 decimal places.
698  ///< Unknown resolution.
699 }
701 
702 
703 //--------------------------------------------------------------------------------------------------
704 /**
705  ** Data types.
706  */
707 //--------------------------------------------------------------------------------------------------
708 typedef enum
709 {
711  ///< Vertical accuracy data.
713  ///< Vertical speed accuracy data.
715  ///< Horizontal speed accuracy data.
717  ///< Unknown data type.
718 }
720 
721 
722 //--------------------------------------------------------------------------------------------------
723 /**
724  * SBAS constellation category
725  */
726 //--------------------------------------------------------------------------------------------------
727 typedef enum
728 {
730  ///< Satellite Vehicle of Satellite-based augmentation system
731  ///< (SBAS) EGNOS constellation.
733  ///< Satellite Vehicle of Satellite-based augmentation system
734  ///< (SBAS) WAAS constellation.
736  ///< Satellite Vehicle of Satellite-based augmentation system
737  ///< (SBAS) GAGAN constellation.
739  ///< Satellite Vehicle of Satellite-based augmentation system
740  ///< (SBAS) MSAS constellation.
742  ///< Satellite Vehicle of Satellite-based augmentation system
743  ///< (SBAS) SDCM constellation.
745  ///< Satellite Vehicle of Satellite-based augmentation system
746  ///< (SBAS) unknown constellation.
747 }
749 
750 
751 //--------------------------------------------------------------------------------------------------
752 /**
753  * GNSS constellation type.
754  */
755 //--------------------------------------------------------------------------------------------------
756 typedef enum
757 {
759  ///< GNSS constellation field not defined.
761  ///< Satellite Vehicle of GPS constellation.
762  ///< North American satellite navigation system
764  ///< Satellite Vehicle of SBAS constellation.
765  ///< Satellite-based augmentation system
767  ///< Satellite Vehicle of Glonass constellation.
768  ///< Russian satellite navigation system
770  ///< Satellite Vehicle of Galileo constellation.
771  ///< European Union satellite navigation system
773  ///< Satellite Vehicle of Beidou constellation.
774  ///< Chinese satellite navigation system
776  ///< Satellite Vehicle of QZSS constellation.
777  ///< Japanese satellite navigation system
779  ///< Maximum value.
780 }
782 
783 
784 //--------------------------------------------------------------------------------------------------
785 /**
786  * Assisted-GNSS mode
787  */
788 //--------------------------------------------------------------------------------------------------
789 typedef enum
790 {
792  ///< Standalone mode.
794  ///< MS-Based mode.
796  ///< MS-Assisted mode.
797 }
799 
800 
801 //--------------------------------------------------------------------------------------------------
802 /**
803  * Dilution of precision type
804  */
805 //--------------------------------------------------------------------------------------------------
806 typedef enum
807 {
809  ///< Position dilution of precision.
811  ///< Horizontal dilution of precision.
813  ///< Vertical dilution of precision.
815  ///< Geometric dilution of precision.
817  ///< Time dilution of precision.
818  LE_GNSS_DOP_LAST = 5
819  ///<
820 }
822 
823 
824 //--------------------------------------------------------------------------------------------------
825 /**
826  * GNSS constellation area type
827  */
828 //--------------------------------------------------------------------------------------------------
829 typedef enum
830 {
832  ///< Unset area.
834  ///< Worldwide area.
836  ///< Outside US area.
837 }
839 
840 
841 //--------------------------------------------------------------------------------------------------
842 /**
843  * GNSS constellation Bit Mask (8 bits) indicating the GNSS constellation(s)
844  * used in solution.
845  *
846  */
847 //--------------------------------------------------------------------------------------------------
848 typedef enum
849 {
850  LE_GNSS_CONSTELLATION_GPS = 0x1, ///< GPS constellation used in solution.
851  ///< North American satellite navigation system
852  LE_GNSS_CONSTELLATION_GLONASS = 0x2, ///< GLONASS constellation used in solution.
853  ///< Russian satellite navigation system
854  LE_GNSS_CONSTELLATION_BEIDOU = 0x4, ///< BEIDOU constellation used in solution.
855  ///< Chinese satellite navigation system
856  LE_GNSS_CONSTELLATION_GALILEO = 0x8, ///< GALILEO constellation used in solution.
857  ///< European Union satellite navigation system
858  LE_GNSS_CONSTELLATION_SBAS = 0x10, ///< SBAS constellation used in solution.
859  LE_GNSS_CONSTELLATION_QZSS = 0x20 ///< QZSS constellation used in solution.
860  ///< Japanese satellite navigation system
861 }
863 
864 
865 //--------------------------------------------------------------------------------------------------
866 /**
867  * NMEA sentences Bit Mask indicating the NMEA sentences enabled in the NMEA flow.
868  *
869  * @warning The supported NMEA sentences depend on the platform. Please refer to your platform
870  * documentation for further details.
871  *
872  * @note The bit mask values should be coherent with @ref LE_GNSS_NMEA_SENTENCES_MAX
873  */
874 //--------------------------------------------------------------------------------------------------
875 typedef enum
876 {
877  LE_GNSS_NMEA_MASK_GPGGA = 0x1, ///< GPGGA type enabled: GPS fix data.
878  LE_GNSS_NMEA_MASK_GPGSA = 0x2, ///< GPGSA type enabled: GPS DOP and active satellites.
879  LE_GNSS_NMEA_MASK_GPGSV = 0x4, ///< GPGSV type enabled: GPS satellites in view.
880  LE_GNSS_NMEA_MASK_GPRMC = 0x8, ///< GPRMC type enabled: GPS recommended minimum data.
881  LE_GNSS_NMEA_MASK_GPVTG = 0x10, ///< GPVTG type enabled: GPS vector track and speed over the ground.
882  LE_GNSS_NMEA_MASK_GLGSV = 0x20, ///< GLGSV type enabled: GLONASS satellites in view.
883  LE_GNSS_NMEA_MASK_GNGNS = 0x40, ///< GNGNS type enabled: GNSS fix data.
884  LE_GNSS_NMEA_MASK_GNGSA = 0x80, ///< GNGSA type enabled: GNSS DOP and active satellites.
885  LE_GNSS_NMEA_MASK_GAGGA = 0x100, ///< GAGGA type enabled: Galileo fix data.
886  LE_GNSS_NMEA_MASK_GAGSA = 0x200, ///< GAGSA type enabled: Galileo DOP and active satellites.
887  LE_GNSS_NMEA_MASK_GAGSV = 0x400, ///< GAGSV type enabled: Galileo satellites in view.
888  LE_GNSS_NMEA_MASK_GARMC = 0x800, ///< GARMC type enabled: Galileo recommended minimum data.
889  LE_GNSS_NMEA_MASK_GAVTG = 0x1000, ///< GAVTG type enabled: Galileo vector track and speed over the ground.
890  LE_GNSS_NMEA_MASK_PSTIS = 0x2000, ///< PSTIS type enabled: GPS session start indication.
891  LE_GNSS_NMEA_MASK_REMOVED = 0x4000, ///<
892  LE_GNSS_NMEA_MASK_PTYPE = 0x8000, ///< PTYPE type enabled: Proprietary Type mask.
893  LE_GNSS_NMEA_MASK_GPGRS = 0x10000, ///< GPGRS type enabled: GPS Range residuals.
894  LE_GNSS_NMEA_MASK_GPGLL = 0x20000, ///< GPGLL type enabled: GPS Geographic position, latitude / longitude.
895  LE_GNSS_NMEA_MASK_DEBUG = 0x40000, ///< DEBUG type enabled: Debug NMEA indication.
896  LE_GNSS_NMEA_MASK_GPDTM = 0x80000, ///< GPDTM type enabled: Local geodetic datum and datum offset from
897  LE_GNSS_NMEA_MASK_GAGNS = 0x100000 ///< GAGNS type enabled: Fix data for Galileo.
898 }
900 
901 
902 //--------------------------------------------------------------------------------------------------
903 /**
904  * Reference type used by Add/Remove functions for EVENT 'le_gnss_Position'
905  */
906 //--------------------------------------------------------------------------------------------------
907 typedef struct le_gnss_PositionHandler* le_gnss_PositionHandlerRef_t;
908 
909 
910 //--------------------------------------------------------------------------------------------------
911 /**
912  * Handler for position information.
913  *
914  */
915 //--------------------------------------------------------------------------------------------------
916 typedef void (*le_gnss_PositionHandlerFunc_t)
917 (
918  le_gnss_SampleRef_t positionSampleRef,
919  ///< Position's sample reference
920  void* contextPtr
921  ///<
922 );
923 
924 //--------------------------------------------------------------------------------------------------
925 /**
926  * Set the GNSS constellation bit mask
927  *
928  * @return
929  * - LE_FAULT The function failed.
930  * - LE_UNSUPPORTED If the request is not supported.
931  * - LE_NOT_PERMITTED If the GNSS device is not initialized, disabled or active.
932  * - LE_OK The function succeeded.
933  *
934  * @warning Some constellation types are unsupported depending on the plateform. Please refer to
935  * @ref platformConstraintsGnss_ConstellationType section for full details.
936  *
937  * @warning The settings are platform dependent. Please refer to
938  * @ref platformConstraintsGnss_SettingConfiguration section for full details.
939  */
940 //--------------------------------------------------------------------------------------------------
942 (
943  le_gnss_ConstellationBitMask_t constellationMask
944  ///< [IN] GNSS constellation used in solution.
945 );
946 
947 //--------------------------------------------------------------------------------------------------
948 /**
949  * Get the GNSS constellation bit mask
950  *
951  * @return
952  * - LE_OK on success
953  * - LE_FAULT on failure
954  */
955 //--------------------------------------------------------------------------------------------------
957 (
958  le_gnss_ConstellationBitMask_t* constellationMaskPtr
959  ///< [OUT] GNSS constellation used in solution.
960 );
961 
962 //--------------------------------------------------------------------------------------------------
963 /**
964  * Set the area for the GNSS constellation
965  *
966  * @return
967  * - LE_OK The function succeeded.
968  * - LE_FAULT The function failed.
969  * - LE_UNSUPPORTED If the request is not supported.
970  * - LE_NOT_PERMITTED If the GNSS device is not initialized, disabled or active.
971  * - LE_BAD_PARAMETER Invalid constellation area.
972  *
973  * @warning The settings are platform dependent. Please refer to
974  * @ref platformConstraintsGnss_SettingConfiguration section for full details.
975  */
976 //--------------------------------------------------------------------------------------------------
978 (
979  le_gnss_Constellation_t satConstellation,
980  ///< [IN] GNSS constellation type.
981  le_gnss_ConstellationArea_t constellationArea
982  ///< [IN] GNSS constellation area.
983 );
984 
985 //--------------------------------------------------------------------------------------------------
986 /**
987  * Get the area for the GNSS constellation
988  *
989  * @return
990  * - LE_OK On success
991  * - LE_FAULT On failure
992  * - LE_UNSUPPORTED Request not supported
993  * - LE_NOT_PERMITTED If the GNSS device is not initialized, disabled or active.
994  */
995 //--------------------------------------------------------------------------------------------------
997 (
998  le_gnss_Constellation_t satConstellation,
999  ///< [IN] GNSS constellation type.
1000  le_gnss_ConstellationArea_t* constellationAreaPtr
1001  ///< [OUT] GNSS constellation area.
1002 );
1003 
1004 //--------------------------------------------------------------------------------------------------
1005 /**
1006  * This function enables the use of the 'Extended Ephemeris' file into the GNSS device.
1007  *
1008  * @return
1009  * - LE_FAULT The function failed.
1010  * - LE_OK The function succeeded.
1011  *
1012  * @warning The settings are platform dependent. Please refer to
1013  * @ref platformConstraintsGnss_SettingConfiguration section for full details.
1014  */
1015 //--------------------------------------------------------------------------------------------------
1017 (
1018  void
1019 );
1020 
1021 //--------------------------------------------------------------------------------------------------
1022 /**
1023  * This function disables the use of the 'Extended Ephemeris' file into the GNSS device.
1024  *
1025  * @return
1026  * - LE_FAULT The function failed.
1027  * - LE_OK The function succeeded.
1028  *
1029  * @warning The settings are platform dependent. Please refer to
1030  * @ref platformConstraintsGnss_SettingConfiguration section for full details.
1031  */
1032 //--------------------------------------------------------------------------------------------------
1034 (
1035  void
1036 );
1037 
1038 //--------------------------------------------------------------------------------------------------
1039 /**
1040  * This function must be called to load an 'Extended Ephemeris' file into the GNSS device.
1041  *
1042  * @return
1043  * - LE_FAULT The function failed to inject the 'Extended Ephemeris' file.
1044  * - LE_TIMEOUT A time-out occurred.
1045  * - LE_FORMAT_ERROR 'Extended Ephemeris' file format error.
1046  * - LE_OK The function succeeded.
1047  *
1048  */
1049 //--------------------------------------------------------------------------------------------------
1051 (
1052  int fd
1053  ///< [IN] Extended ephemeris file descriptor
1054 );
1055 
1056 //--------------------------------------------------------------------------------------------------
1057 /**
1058  * This function must be called to get the validity of the last injected Extended Ephemeris.
1059  *
1060  * @return
1061  * - LE_FAULT The function failed to get the validity
1062  * - LE_OK The function succeeded.
1063  *
1064  */
1065 //--------------------------------------------------------------------------------------------------
1067 (
1068  uint64_t* startTimePtr,
1069  ///< [OUT] Start time in seconds (since Jan. 1, 1970)
1070  uint64_t* stopTimePtr
1071  ///< [OUT] Stop time in seconds (since Jan. 1, 1970)
1072 );
1073 
1074 //--------------------------------------------------------------------------------------------------
1075 /**
1076  * This function must be called to inject the UTC time into the GNSS device.
1077  *
1078  * @return
1079  * - LE_OK The function succeeded.
1080  * - LE_FAULT The function failed to inject the UTC time.
1081  * - LE_TIMEOUT A time-out occurred.
1082  *
1083  * @note It is mandatory to enable the 'Extended Ephemeris' file injection into the GNSS device with
1084  * le_gnss_EnableExtendedEphemerisFile() before injecting time with this API.
1085  */
1086 //--------------------------------------------------------------------------------------------------
1088 (
1089  uint64_t timeUtc,
1090  ///< [IN] [IN] UTC time since Jan. 1, 1970 in milliseconds
1091  uint32_t timeUnc
1092  ///< [IN] [IN] Time uncertainty in milliseconds
1093 );
1094 
1095 //--------------------------------------------------------------------------------------------------
1096 /**
1097  * This function starts the GNSS device.
1098  *
1099  * @return
1100  * - LE_FAULT The function failed.
1101  * - LE_DUPLICATE If the GNSS device is already started.
1102  * - LE_NOT_PERMITTED If the GNSS device is not initialized or disabled.
1103  * - LE_OK The function succeeded.
1104  *
1105  */
1106 //--------------------------------------------------------------------------------------------------
1108 (
1109  void
1110 );
1111 
1112 //--------------------------------------------------------------------------------------------------
1113 /**
1114  * This function stops the GNSS device.
1115  *
1116  * @return
1117  * - LE_FAULT The function failed.
1118  * - LE_DUPLICATE If the GNSS device is already stopped.
1119  * - LE_NOT_PERMITTED If the GNSS device is not initialized or disabled.
1120  * - LE_OK The function succeeded.
1121  *
1122  */
1123 //--------------------------------------------------------------------------------------------------
1125 (
1126  void
1127 );
1128 
1129 //--------------------------------------------------------------------------------------------------
1130 /**
1131  * This function performs a "HOT" restart of the GNSS device.
1132  *
1133  * @return
1134  * - LE_FAULT The function failed.
1135  * - LE_NOT_PERMITTED If the GNSS device is not enabled or not started.
1136  * - LE_OK The function succeeded.
1137  *
1138  */
1139 //--------------------------------------------------------------------------------------------------
1141 (
1142  void
1143 );
1144 
1145 //--------------------------------------------------------------------------------------------------
1146 /**
1147  * This function performs a "WARM" restart of the GNSS device.
1148  *
1149  * @return
1150  * - LE_FAULT The function failed.
1151  * - LE_NOT_PERMITTED If the GNSS device is not enabled or not started.
1152  * - LE_OK The function succeeded.
1153  *
1154  * @Note This API has a platform dependent feature. Please refer to
1155  * @ref platformConstraintsGnss_WarmRestart for further details.
1156  */
1157 //--------------------------------------------------------------------------------------------------
1159 (
1160  void
1161 );
1162 
1163 //--------------------------------------------------------------------------------------------------
1164 /**
1165  * This function performs a "COLD" restart of the GNSS device.
1166  *
1167  * @return
1168  * - LE_FAULT The function failed.
1169  * - LE_NOT_PERMITTED If the GNSS device is not enabled or not started.
1170  * - LE_OK The function succeeded.
1171  *
1172  */
1173 //--------------------------------------------------------------------------------------------------
1175 (
1176  void
1177 );
1178 
1179 //--------------------------------------------------------------------------------------------------
1180 /**
1181  * This function performs a "FACTORY" restart of the GNSS device.
1182  *
1183  * @return
1184  * - LE_FAULT The function failed.
1185  * - LE_NOT_PERMITTED If the GNSS device is not enabled or not started.
1186  * - LE_OK The function succeeded.
1187  *
1188  */
1189 //--------------------------------------------------------------------------------------------------
1191 (
1192  void
1193 );
1194 
1195 //--------------------------------------------------------------------------------------------------
1196 /**
1197  * Get the TTFF in milliseconds
1198  *
1199  * @return
1200  * - LE_BUSY The position is not fixed and TTFF can't be measured.
1201  * - LE_NOT_PERMITTED If the GNSS device is not enabled or not started.
1202  * - LE_OK Function succeeded.
1203  * - LE_FAULT If there are some other errors.
1204  *
1205  */
1206 //--------------------------------------------------------------------------------------------------
1208 (
1209  uint32_t* ttffPtr
1210  ///< [OUT] TTFF in milliseconds
1211 );
1212 
1213 //--------------------------------------------------------------------------------------------------
1214 /**
1215  * This function enables the GNSS device.
1216  *
1217  * @return
1218  * - LE_FAULT The function failed.
1219  * - LE_DUPLICATE If the GNSS device is already enabled.
1220  * - LE_NOT_PERMITTED If the GNSS device is not initialized.
1221  * - LE_OK The function succeeded.
1222  *
1223  * @warning The settings are platform dependent. Please refer to
1224  * @ref platformConstraintsGnss_SettingConfiguration section for full details.
1225  */
1226 //--------------------------------------------------------------------------------------------------
1228 (
1229  void
1230 );
1231 
1232 //--------------------------------------------------------------------------------------------------
1233 /**
1234  * This function disables the GNSS device.
1235  *
1236  * @return
1237  * - LE_FAULT The function failed.
1238  * - LE_DUPLICATE If the GNSS device is already disabled.
1239  * - LE_NOT_PERMITTED If the GNSS device is not initialized or started.
1240  * - LE_OK The function succeeded.
1241  *
1242  * @warning The settings are platform dependent. Please refer to
1243  * @ref platformConstraintsGnss_SettingConfiguration section for full details.
1244  */
1245 //--------------------------------------------------------------------------------------------------
1247 (
1248  void
1249 );
1250 
1251 //--------------------------------------------------------------------------------------------------
1252 /**
1253  * This function sets the GNSS device acquisition rate.
1254  *
1255  * @return
1256  * - LE_OK on success
1257  * - LE_FAULT on failure
1258  * - LE_UNSUPPORTED request not supported
1259  * - LE_TIMEOUT a time-out occurred
1260  * - LE_NOT_PERMITTED If the GNSS device is not in "ready" state.
1261  * - LE_OUT_OF_RANGE if acquisition rate value is equal to zero
1262  *
1263  * @warning This function may be subject to limitations depending on the platform. Please refer to
1264  * the @ref platformConstraintsGnss page.
1265  *
1266  * @warning The settings are platform dependent. Please refer to
1267  * @ref platformConstraintsGnss_SettingConfiguration section for full details.
1268  */
1269 //--------------------------------------------------------------------------------------------------
1271 (
1272  uint32_t rate
1273  ///< [IN] Acquisition rate in milliseconds.
1274 );
1275 
1276 //--------------------------------------------------------------------------------------------------
1277 /**
1278  * This function gets the GNSS device acquisition rate.
1279  *
1280  * @return
1281  * - LE_OK on success
1282  * - LE_FAULT on failure
1283  * - LE_NOT_PERMITTED If the GNSS device is not in "ready" state.
1284  */
1285 //--------------------------------------------------------------------------------------------------
1287 (
1288  uint32_t* ratePtr
1289  ///< [OUT] Acquisition rate in milliseconds.
1290 );
1291 
1292 //--------------------------------------------------------------------------------------------------
1293 /**
1294  * Add handler function for EVENT 'le_gnss_Position'
1295  *
1296  * This event provides information on position.
1297  *
1298  * - A handler reference, which is only needed for later removal of the handler.
1299  *
1300  * @note Doesn't return on failure, so there's no need to check the return value for errors.
1301  */
1302 //--------------------------------------------------------------------------------------------------
1304 (
1305  le_gnss_PositionHandlerFunc_t handlerPtr,
1306  ///< [IN]
1307  void* contextPtr
1308  ///< [IN]
1309 );
1310 
1311 //--------------------------------------------------------------------------------------------------
1312 /**
1313  * Remove handler function for EVENT 'le_gnss_Position'
1314  */
1315 //--------------------------------------------------------------------------------------------------
1317 (
1318  le_gnss_PositionHandlerRef_t handlerRef
1319  ///< [IN]
1320 );
1321 
1322 //--------------------------------------------------------------------------------------------------
1323 /**
1324  * This function gets the position sample's fix state
1325  *
1326  * - LE_OK on success
1327  * - LE_FAULT on failure
1328  *
1329  * @note If the caller is passing an invalid Position sample reference into this function,
1330  * it is a fatal error, the function will not return.
1331  */
1332 //--------------------------------------------------------------------------------------------------
1334 (
1335  le_gnss_SampleRef_t positionSampleRef,
1336  ///< [IN] Position sample's reference.
1337  le_gnss_FixState_t* statePtr
1338  ///< [OUT] Position fix state.
1339 );
1340 
1341 //--------------------------------------------------------------------------------------------------
1342 /**
1343  * Get the location's data (Latitude, Longitude, Horizontal accuracy).
1344  *
1345  * @return
1346  * - LE_FAULT Function failed to get the location's data
1347  * - LE_OUT_OF_RANGE One of the retrieved parameter is invalid (set to INT32_MAX).
1348  * - LE_OK Function succeeded.
1349  *
1350  * @note latitudePtr, longitudePtr and hAccuracyPtr can be set to NULL if not needed.
1351  *
1352  * @note The latitude and longitude values are based on the WGS84 standard coordinate system.
1353  *
1354  * @note The latitude and longitude values are given in degrees with 6 decimal places like:
1355  * Latitude +48858300 = 48.858300 degrees North
1356  * Longitude +2294400 = 2.294400 degrees East
1357  * (The latitude and longitude values are given in degrees, minutes, seconds in NMEA frame)
1358  *
1359  * @note If the caller is passing an invalid Position sample reference into this function,
1360  * it is a fatal error, the function will not return.
1361  */
1362 //--------------------------------------------------------------------------------------------------
1364 (
1365  le_gnss_SampleRef_t positionSampleRef,
1366  ///< [IN] Position sample's reference.
1367  int32_t* latitudePtr,
1368  ///< [OUT] WGS84 Latitude in degrees, positive North [resolution 1e-6].
1369  int32_t* longitudePtr,
1370  ///< [OUT] WGS84 Longitude in degrees, positive East [resolution 1e-6].
1371  int32_t* hAccuracyPtr
1372  ///< [OUT] Horizontal position's accuracy in meters [resolution 1e-2].
1373 );
1374 
1375 //--------------------------------------------------------------------------------------------------
1376 /**
1377  * Get the position sample's altitude.
1378  *
1379  * @return
1380  * - LE_FAULT Function failed to get the altitude. Invalid Position reference provided.
1381  * - LE_OUT_OF_RANGE One of the retrieved parameter is invalid (set to INT32_MAX).
1382  * - LE_OK Function succeeded.
1383  *
1384  * @note Altitude is in meters, above Mean Sea Level, with 3 decimal places (3047 = 3.047 meters).
1385  *
1386  * @note For a 2D position fix, the altitude will be indicated as invalid and set to INT32_MAX
1387  *
1388  * @note Vertical position accuracy is default set to meters with 1 decimal place (3047 = 3.0
1389  * meters). To change its accuracy, call the @c le_gnss_SetDataResolution() function. Vertical
1390  * position accuracy is set as data type and accuracy from 0 to 3 decimal place is set as
1391  * resolution.
1392  *
1393  * @note If the caller is passing an invalid Position reference into this function,
1394  * it is a fatal error, the function will not return.
1395  *
1396  * @note altitudePtr, altitudeAccuracyPtr can be set to NULL if not needed.
1397  */
1398 //--------------------------------------------------------------------------------------------------
1400 (
1401  le_gnss_SampleRef_t positionSampleRef,
1402  ///< [IN] Position sample's reference.
1403  int32_t* altitudePtr,
1404  ///< [OUT] Altitude in meters, above Mean Sea Level [resolution 1e-3].
1405  int32_t* vAccuracyPtr
1406  ///< [OUT] Vertical position's accuracy in meters.
1407 );
1408 
1409 //--------------------------------------------------------------------------------------------------
1410 /**
1411  * Get the position sample's time.
1412  *
1413  * @return
1414  * - LE_FAULT Function failed to get the time.
1415  * - LE_OUT_OF_RANGE The retrieved time is invalid (all fields are set to 0).
1416  * - LE_OK Function succeeded.
1417  *
1418  * @note If the caller is passing an invalid Position sample reference into this function,
1419  * it is a fatal error, the function will not return.
1420  */
1421 //--------------------------------------------------------------------------------------------------
1423 (
1424  le_gnss_SampleRef_t positionSampleRef,
1425  ///< [IN] Position sample's reference.
1426  uint16_t* hoursPtr,
1427  ///< [OUT] UTC Hours into the day [range 0..23].
1428  uint16_t* minutesPtr,
1429  ///< [OUT] UTC Minutes into the hour [range 0..59].
1430  uint16_t* secondsPtr,
1431  ///< [OUT] UTC Seconds into the minute [range 0..59].
1432  uint16_t* millisecondsPtr
1433  ///< [OUT] UTC Milliseconds into the second [range 0..999].
1434 );
1435 
1436 //--------------------------------------------------------------------------------------------------
1437 /**
1438  * Get the position sample's GPS time.
1439  *
1440  * @return
1441  * - LE_FAULT Function failed to get the time.
1442  * - LE_OUT_OF_RANGE The retrieved time is invalid (all fields are set to 0).
1443  * - LE_OK Function succeeded.
1444  *
1445  * @note If the caller is passing an invalid Position sample reference into this function,
1446  * it is a fatal error, the function will not return.
1447  */
1448 //--------------------------------------------------------------------------------------------------
1450 (
1451  le_gnss_SampleRef_t positionSampleRef,
1452  ///< [IN] Position sample's reference.
1453  uint32_t* gpsWeekPtr,
1454  ///< [OUT] GPS week number from midnight, Jan. 6, 1980.
1455  uint32_t* gpsTimeOfWeekPtr
1456  ///< [OUT] Amount of time in milliseconds into the GPS week.
1457 );
1458 
1459 //--------------------------------------------------------------------------------------------------
1460 /**
1461  * Get the position sample's epoch time.
1462  *
1463  * @return
1464  * - LE_FAULT Function failed to acquire the epoch time.
1465  * - LE_OK Function succeeded.
1466  * - LE_OUT_OF_RANGE The retrieved time is invalid (all fields are set to 0).
1467  *
1468  * @note The epoch time is the number of seconds elapsed since January 1, 1970
1469  * (midnight UTC/GMT), not counting leaps seconds.
1470  *
1471  * @note If the caller is passing an invalid position sample reference into this function,
1472  * it is a fatal error, the function will not return.
1473  */
1474 //--------------------------------------------------------------------------------------------------
1476 (
1477  le_gnss_SampleRef_t positionSampleRef,
1478  ///< [IN] Position sample's reference.
1479  uint64_t* millisecondsPtr
1480  ///< [OUT] Milliseconds since Jan. 1, 1970.
1481 );
1482 
1483 //--------------------------------------------------------------------------------------------------
1484 /**
1485  * Get the position sample's time accurary.
1486  *
1487  * @return
1488  * - LE_FAULT Function failed to get the time.
1489  * - LE_OUT_OF_RANGE The retrieved time accuracy is invalid (set to UINT16_MAX).
1490  * - LE_OK Function succeeded.
1491  *
1492  * @note If the caller is passing an invalid Position sample reference into this function,
1493  * it is a fatal error, the function will not return.
1494  */
1495 //--------------------------------------------------------------------------------------------------
1497 (
1498  le_gnss_SampleRef_t positionSampleRef,
1499  ///< [IN] Position sample's reference.
1500  uint32_t* timeAccuracyPtr
1501  ///< [OUT] Estimated time accuracy in nanoseconds
1502 );
1503 
1504 //--------------------------------------------------------------------------------------------------
1505 /**
1506  * Get the position sample's UTC leap seconds in advance
1507  *
1508  * @return
1509  * - LE_FAULT Function failed to get the leap seconds.
1510  * - LE_OUT_OF_RANGE The retrieved time accuracy is invalid (set to UINT8_MAX).
1511  * - LE_OK Function succeeded.
1512  *
1513  * @note The leap seconds in advance is the accumulated time in seconds since the start of GPS Epoch
1514  * time (Jan 6, 1980). This value has to be added to the UTC time (since Jan. 1, 1970)
1515  *
1516  * @note Insertion of each UTC leap second is usually decided about six months in advance by the
1517  * International Earth Rotation and Reference Systems Service (IERS).
1518  *
1519  * @note If the caller is passing an invalid position sample reference or a null pointer into this
1520  * function, it is a fatal error, the function will not return.
1521  */
1522 //--------------------------------------------------------------------------------------------------
1524 (
1525  le_gnss_SampleRef_t positionSampleRef,
1526  ///< [IN] Position sample's reference.
1527  uint8_t* leapSecondsPtr
1528  ///< [OUT] UTC leap seconds in advance in seconds
1529 );
1530 
1531 //--------------------------------------------------------------------------------------------------
1532 /**
1533  * Get the position sample's date.
1534  *
1535  * @return
1536  * - LE_FAULT Function failed to get the date.
1537  * - LE_OUT_OF_RANGE The retrieved date is invalid (all fields are set to 0).
1538  * - LE_OK Function succeeded.
1539  *
1540  * @note If the caller is passing an invalid Position sample reference into this function,
1541  * it is a fatal error, the function will not return.
1542  */
1543 //--------------------------------------------------------------------------------------------------
1545 (
1546  le_gnss_SampleRef_t positionSampleRef,
1547  ///< [IN] Position sample's reference.
1548  uint16_t* yearPtr,
1549  ///< [OUT] UTC Year A.D. [e.g. 2014].
1550  uint16_t* monthPtr,
1551  ///< [OUT] UTC Month into the year [range 1...12].
1552  uint16_t* dayPtr
1553  ///< [OUT] UTC Days into the month [range 1...31].
1554 );
1555 
1556 //--------------------------------------------------------------------------------------------------
1557 /**
1558  * Get the position sample's horizontal speed.
1559  *
1560  * - LE_FAULT Function failed to find the positionSample.
1561  * - LE_OUT_OF_RANGE One of the retrieved parameter is invalid (set to UINT32_MAX).
1562  * - LE_OK Function succeeded.
1563  *
1564  * @note hSpeedPtr, hSpeedAccuracyPtr can be set to NULL if not needed.
1565  *
1566  * @note Horizontal speed is in meters/second with 2 decimal places (3047 = 30.47 meters/second).
1567  *
1568  * @note Horizontal speed accuracy estimate is default set to meters/second with 1 decimal place
1569  * (304 = 30.4 meters/second). To change its accuracy, call the @c le_gnss_SetDataResolution()
1570  * function. Horizontal speed accuracy estimate is set as data type and accuracy from 0 to 3
1571  * decimal place is set as resolution.
1572  *
1573  * @note If the caller is passing an invalid Position sample reference into this function,
1574  * it is a fatal error, the function will not return.
1575  *
1576  * @warning The Horizontal speed accuracy is platform dependent. Please refer to
1577  * @ref platformConstraintsGnss_speedAccuracies section for full details.
1578  */
1579 //--------------------------------------------------------------------------------------------------
1581 (
1582  le_gnss_SampleRef_t positionSampleRef,
1583  ///< [IN] Position sample's reference.
1584  uint32_t* hspeedPtr,
1585  ///< [OUT] Horizontal speed in meters/second [resolution 1e-2].
1586  uint32_t* hspeedAccuracyPtr
1587  ///< [OUT] Horizontal speed's accuracy estimate in meters/second.
1588 );
1589 
1590 //--------------------------------------------------------------------------------------------------
1591 /**
1592  * Get the position sample's vertical speed.
1593  *
1594  * @return
1595  * - LE_FAULT The function failed to find the positionSample.
1596  * - LE_OUT_OF_RANGE One of the retrieved parameter is not valid (set to INT32_MAX).
1597  * - LE_OK The function succeeded.
1598  *
1599  * @note vSpeedPtr, vSpeedAccuracyPtr can be set to NULL if not needed.
1600  *
1601  * @note For a 2D position Fix, the vertical speed will be indicated as invalid
1602  * and set to INT32_MAX.
1603  *
1604  * @note Vertical speed accuracy estimate is default set to meters/second with 1 decimal place
1605  * (304 = 30.4 meters/second). To change its accuracy, call the @c le_gnss_SetDataResolution()
1606  * function. Vertical speed accuracy estimate is set as data type and accuracy from 0 to 3
1607  * decimal place is set as resolution.
1608  *
1609  * @note If the caller is passing an invalid Position sample reference into this function,
1610  * it is a fatal error, the function will not return.
1611  *
1612  * @warning The Vertical speed accuracy is platform dependent. Please refer to
1613  * @ref platformConstraintsGnss_speedAccuracies section for full details.
1614  */
1615 //--------------------------------------------------------------------------------------------------
1617 (
1618  le_gnss_SampleRef_t positionSampleRef,
1619  ///< [IN] Position sample's reference.
1620  int32_t* vspeedPtr,
1621  ///< [OUT] Vertical speed in meters/second [resolution 1e-2],
1622  ///< positive up.
1623  int32_t* vspeedAccuracyPtr
1624  ///< [OUT] Vertical speed's accuracy estimate in meters/second.
1625 );
1626 
1627 //--------------------------------------------------------------------------------------------------
1628 /**
1629  * Get the position sample's direction. Direction of movement is the direction that the vehicle or
1630  * person is actually moving.
1631  *
1632  * @return
1633  * - LE_FAULT Function failed to find the positionSample.
1634  * - LE_OUT_OF_RANGE One of the retrieved parameter is invalid (set to UINT32_MAX).
1635  * - LE_OK Function succeeded.
1636  *
1637  * @note Direction and direction accuracy are given in degrees with 1 decimal place: 1755 = 175.5
1638  * degrees.
1639  * Direction ranges from 0 to 359.9 degrees, where 0 is True North.
1640  *
1641  * @note directionPtr, directionAccuracyPtr can be set to NULL if not needed.
1642  *
1643  * @note If the caller is passing an invalid Position sample reference into this function,
1644  * it is a fatal error, the function will not return.
1645  */
1646 //--------------------------------------------------------------------------------------------------
1648 (
1649  le_gnss_SampleRef_t positionSampleRef,
1650  ///< [IN] Position sample's reference.
1651  uint32_t* directionPtr,
1652  ///< [OUT] Direction in degrees [resolution 1e-1].
1653  ///< Range: 0 to 359.9, where 0 is True North
1654  uint32_t* directionAccuracyPtr
1655  ///< [OUT] Direction's accuracy estimate
1656  ///< in degrees [resolution 1e-1].
1657 );
1658 
1659 //--------------------------------------------------------------------------------------------------
1660 /**
1661  * Get the Satellites Vehicle information.
1662  *
1663  * @return
1664  * - LE_FAULT Function failed to find the positionSample.
1665  * - LE_OUT_OF_RANGE One of the retrieved parameter is invalid.
1666  * - LE_OK Function succeeded.
1667  *
1668  * @note satId[] can be set to 0 if that information list index is not configured, so
1669  * all satellite parameters (satConst[], satSnr[],satAzim[], satElev[]) are fixed to 0.
1670  *
1671  * @note For LE_OUT_OF_RANGE returned code, invalid value depends on field type:
1672  * UINT16_MAX for satId, LE_GNSS_SV_CONSTELLATION_UNDEFINED for satConst, false for satUsed,
1673  * UINT8_MAX for satSnr, UINT16_MAX for satAzim, UINT8_MAX for satElev.
1674  *
1675  * @note If the caller is passing an invalid Position sample reference into this function,
1676  * it is a fatal error, the function will not return.
1677  */
1678 //--------------------------------------------------------------------------------------------------
1680 (
1681  le_gnss_SampleRef_t positionSampleRef,
1682  ///< [IN] Position sample's reference.
1683  uint16_t* satIdPtr,
1684  ///< [OUT] Satellites in View ID number, referring
1685  ///< to NMEA standard.
1686  size_t* satIdSizePtr,
1687  ///< [INOUT]
1688  le_gnss_Constellation_t* satConstPtr,
1689  ///< [OUT] GNSS constellation type.
1690  size_t* satConstSizePtr,
1691  ///< [INOUT]
1692  bool* satUsedPtr,
1693  ///< [OUT] TRUE if satellite in View Used
1694  ///< for Navigation.
1695  size_t* satUsedSizePtr,
1696  ///< [INOUT]
1697  uint8_t* satSnrPtr,
1698  ///< [OUT] Satellites in View Signal To
1699  ///< Noise Ratio [dBHz].
1700  size_t* satSnrSizePtr,
1701  ///< [INOUT]
1702  uint16_t* satAzimPtr,
1703  ///< [OUT] Satellites in View Azimuth [degrees].
1704  ///< Range: 0 to 360
1705  ///< If Azimuth angle is currently unknown,
1706  ///< the value is set to UINT16_MAX.
1707  size_t* satAzimSizePtr,
1708  ///< [INOUT]
1709  uint8_t* satElevPtr,
1710  ///< [OUT] Satellites in View Elevation [degrees].
1711  ///< Range: 0 to 90
1712  ///< If Elevation angle is currently unknown,
1713  ///< the value is set to UINT8_MAX.
1714  size_t* satElevSizePtr
1715  ///< [INOUT]
1716 );
1717 
1718 //--------------------------------------------------------------------------------------------------
1719 /**
1720  * Get the SBAS constellation category given the SBAS satellite number ID.
1721  *
1722  */
1723 //--------------------------------------------------------------------------------------------------
1725 (
1726  uint16_t satId
1727  ///< [IN] SBAS satellite number ID, referring to NMEA standard.
1728 );
1729 
1730 //--------------------------------------------------------------------------------------------------
1731 /**
1732  * Get the Satellites Vehicle status.
1733  *
1734  * @return
1735  * - LE_FAULT Function failed to find the positionSample.
1736  * - LE_OUT_OF_RANGE One of the retrieved parameter is invalid.
1737  * - LE_OK Function succeeded.
1738  *
1739  * @note If the caller is passing an invalid Position sample reference into this function,
1740  * it is a fatal error, the function will not return.
1741  */
1742 //--------------------------------------------------------------------------------------------------
1744 (
1745  le_gnss_SampleRef_t positionSampleRef,
1746  ///< [IN] Position sample's reference.
1747  uint8_t* satsInViewCountPtr,
1748  ///< [OUT] Number of satellites expected to be in view.
1749  uint8_t* satsTrackingCountPtr,
1750  ///< [OUT] Number of satellites in view, when tracking.
1751  uint8_t* satsUsedCountPtr
1752  ///< [OUT] Number of satellites in view used for Navigation.
1753 );
1754 
1755 //--------------------------------------------------------------------------------------------------
1756 /**
1757  * Get the DOP parameters (Dilution Of Precision) for the fixed position.
1758  *
1759  * @return
1760  * - LE_FAULT Function failed to find the positionSample.
1761  * - LE_OUT_OF_RANGE One of the retrieved parameter is invalid (set to UINT16_MAX).
1762  * - LE_OK Function succeeded.
1763  *
1764  * @deprecated This function is deprecated, le_gnss_GetDilutionOfPrecision() should be used for
1765  * new code.
1766  *
1767  * @note The DOP values are given with 3 decimal places like: DOP value 2200 = 2.200
1768  *
1769  * @note If the caller is passing an invalid Position sample reference into this function,
1770  * it is a fatal error, the function will not return.
1771  */
1772 //--------------------------------------------------------------------------------------------------
1774 (
1775  le_gnss_SampleRef_t positionSampleRef,
1776  ///< [IN] Position sample's reference.
1777  uint16_t* hdopPtr,
1778  ///< [OUT] Horizontal Dilution of Precision [resolution 1e-3].
1779  uint16_t* vdopPtr,
1780  ///< [OUT] Vertical Dilution of Precision [resolution 1e-3].
1781  uint16_t* pdopPtr
1782  ///< [OUT] Position Dilution of Precision [resolution 1e-3].
1783 );
1784 
1785 //--------------------------------------------------------------------------------------------------
1786 /**
1787  * Get the DOP parameter (Dilution Of Precision) for the fixed position.
1788  *
1789  * @return
1790  * - LE_FAULT Function failed to find the DOP value.
1791  * - LE_OUT_OF_RANGE The retrieved parameter is invalid (set to UINT16_MAX).
1792  * - LE_OK Function succeeded.
1793  *
1794  * @note This function replaces the deprecated function le_gnss_GetDop().
1795  *
1796  * @note The DOP value is given with 3 decimal places by default like: DOP value 2200 = 2.200
1797  * The resolution can be modified by calling the @c le_gnss_SetDopResolution() function.
1798  *
1799  * @note If the caller is passing an invalid Position sample reference into this function,
1800  * it is a fatal error, the function will not return.
1801  */
1802 //--------------------------------------------------------------------------------------------------
1804 (
1805  le_gnss_SampleRef_t positionSampleRef,
1806  ///< [IN] Position sample's reference.
1807  le_gnss_DopType_t dopType,
1808  ///< [IN] Dilution of Precision type.
1809  uint16_t* dopPtr
1810  ///< [OUT] Dilution of Precision corresponding to the dopType
1811 );
1812 
1813 //--------------------------------------------------------------------------------------------------
1814 /**
1815  * Get the position sample's altitude with respect to the WGS-84 ellipsoid
1816  *
1817  * @return
1818  * - LE_FAULT Function failed to get the altitude.
1819  * - LE_OUT_OF_RANGE One of the retrieved parameter is invalid (set to INT32_MAX).
1820  * - LE_OK Function succeeded.
1821  *
1822  * @note altitudeOnWgs84 is in meters, with respect to the WGS-84 ellipsoid with 3 decimal
1823  * places (3047 = 3.047 meters).
1824  *
1825  * @note For a 2D position fix, the altitude with respect to the WGS-84 ellipsoid will be indicated
1826  * as invalid and set to INT32_MAX.
1827  *
1828  * @note If the caller is passing an invalid Position reference into this function,
1829  * it is a fatal error, the function will not return.
1830  */
1831 //--------------------------------------------------------------------------------------------------
1833 (
1834  le_gnss_SampleRef_t positionSampleRef,
1835  ///< [IN] Position sample's reference.
1836  int32_t* altitudeOnWgs84Ptr
1837  ///< [OUT] Altitude in meters, between WGS-84 earth ellipsoid
1838  ///< and mean sea level [resolution 1e-3].
1839 );
1840 
1841 //--------------------------------------------------------------------------------------------------
1842 /**
1843  * Get the position sample's magnetic deviation. It is the difference between the bearing to
1844  * true north and the bearing shown on a magnetic compass. The deviation is positive when the
1845  * magnetic north is east of true north.
1846  *
1847  * @return
1848  * - LE_FAULT Function failed to find the positionSample.
1849  * - LE_OUT_OF_RANGE One of the retrieved parameter is invalid (set to INT32_MAX).
1850  * - LE_OK Function succeeded.
1851  *
1852  * @note magneticDeviation is in degrees, with 1 decimal places (47 = 4.7 degree).
1853  *
1854  * @note If the caller is passing an invalid Position sample reference into this function,
1855  * it is a fatal error, the function will not return.
1856  */
1857 //--------------------------------------------------------------------------------------------------
1859 (
1860  le_gnss_SampleRef_t positionSampleRef,
1861  ///< [IN] Position sample's reference.
1862  int32_t* magneticDeviationPtr
1863  ///< [OUT] MagneticDeviation in degrees [resolution 1e-1].
1864 );
1865 
1866 //--------------------------------------------------------------------------------------------------
1867 /**
1868  * This function gets the last updated position sample object reference.
1869  *
1870  * @return A reference to last Position's sample.
1871  *
1872  * @note
1873  * On failure, the process exits, so you don't have to worry about checking the returned
1874  * reference for validity.
1875  */
1876 //--------------------------------------------------------------------------------------------------
1878 (
1879  void
1880 );
1881 
1882 //--------------------------------------------------------------------------------------------------
1883 /**
1884  * This function must be called to release the position sample.
1885  *
1886  * @note If the caller is passing an invalid Position sample reference into this function,
1887  * it is a fatal error, the function will not return.
1888  */
1889 //--------------------------------------------------------------------------------------------------
1891 (
1892  le_gnss_SampleRef_t positionSampleRef
1893  ///< [IN] Position sample's reference.
1894 );
1895 
1896 //--------------------------------------------------------------------------------------------------
1897 /**
1898  * This function sets the SUPL Assisted-GNSS mode.
1899  *
1900  * @return
1901  * - LE_OK on success
1902  * - LE_FAULT on failure
1903  * - LE_UNSUPPORTED request not supported
1904  * - LE_TIMEOUT a time-out occurred
1905  *
1906  * @warning The settings are platform dependent. Please refer to
1907  * @ref platformConstraintsGnss_SettingConfiguration section for full details.
1908  */
1909 //--------------------------------------------------------------------------------------------------
1911 (
1912  le_gnss_AssistedMode_t assistedMode
1913  ///< [IN] Assisted-GNSS mode.
1914 );
1915 
1916 //--------------------------------------------------------------------------------------------------
1917 /**
1918  * This function gets the SUPL Assisted-GNSS mode.
1919  *
1920  * @return
1921  * - LE_OK on success
1922  * - LE_FAULT on failure
1923  */
1924 //--------------------------------------------------------------------------------------------------
1926 (
1927  le_gnss_AssistedMode_t* assistedModePtr
1928  ///< [OUT] Assisted-GNSS mode.
1929 );
1930 
1931 //--------------------------------------------------------------------------------------------------
1932 /**
1933  * This function sets the SUPL server URL.
1934  * That server URL is a NULL-terminated string with a maximum string length (including NULL
1935  * terminator) equal to 256. Optionally the port number is specified after a colon.
1936  *
1937  * @return
1938  * - LE_OK on success
1939  * - LE_FAULT on failure
1940  * - LE_BUSY service is busy
1941  * - LE_TIMEOUT a time-out occurred
1942  *
1943  * @note If the SUPL server URL size is bigger than the maximum string length (including NULL
1944  * terminator) size, it is a fatal error, the function will not return.
1945  *
1946  * @warning The settings are platform dependent. Please refer to
1947  * @ref platformConstraintsGnss_SettingConfiguration section for full details.
1948  */
1949 //--------------------------------------------------------------------------------------------------
1951 (
1952  const char* LE_NONNULL suplServerUrl
1953  ///< [IN] SUPL server URL.
1954 );
1955 
1956 //--------------------------------------------------------------------------------------------------
1957 /**
1958  * This function injects the SUPL certificate to be used in A-GNSS sessions. Certificates must
1959  * be encoded in DER. Other certificate encryptions (e.g., PEM, CER and CRT)
1960  * aren't supported.
1961  *
1962  * @return
1963  * - LE_OK on success
1964  * - LE_BAD_PARAMETER on invalid parameter
1965  * - LE_FAULT on failure
1966  * - LE_BUSY service is busy
1967  * - LE_TIMEOUT a time-out occurred
1968  *
1969  * @note If the SUPL certificate size is bigger than the Maximum SUPL certificate size,
1970  * it is a fatal error, the function will not return.
1971  */
1972 //--------------------------------------------------------------------------------------------------
1974 (
1975  uint8_t suplCertificateId,
1976  ///< [IN] ID of the SUPL certificate.
1977  ///< Certificate ID range is 0 to 9
1978  uint16_t suplCertificateLen,
1979  ///< [IN] SUPL certificate size in Bytes.
1980  const char* LE_NONNULL suplCertificate
1981  ///< [IN] SUPL certificate contents.
1982 );
1983 
1984 //--------------------------------------------------------------------------------------------------
1985 /**
1986  * This function deletes the SUPL certificate.
1987  *
1988  * @return
1989  * - LE_OK on success
1990  * - LE_BAD_PARAMETER on invalid parameter
1991  * - LE_FAULT on failure
1992  * - LE_BUSY service is busy
1993  * - LE_TIMEOUT a time-out occurred
1994  */
1995 //--------------------------------------------------------------------------------------------------
1997 (
1998  uint8_t suplCertificateId
1999  ///< [IN] ID of the SUPL certificate.
2000  ///< Certificate ID range is 0 to 9
2001 );
2002 
2003 //--------------------------------------------------------------------------------------------------
2004 /**
2005  * This function sets the enabled NMEA sentences using a bit mask.
2006  *
2007  * @return
2008  * - LE_OK Success
2009  * - LE_BAD_PARAMETER Bit mask exceeds the maximal value
2010  * - LE_FAULT Failure
2011  * - LE_BUSY Service is busy
2012  * - LE_TIMEOUT Timeout occurred
2013  * - LE_NOT_PERMITTED GNSS device is not in "ready" state
2014  *
2015  * @warning This function may be subject to limitations depending on the platform. Please refer to
2016  * the @ref platformConstraintsGnss page.
2017  *
2018  * @note Some NMEA sentences are unsupported depending on the plateform. Please refer to
2019  * @ref platformConstraintsGnss_nmeaMask section for full details. Setting an unsuported NMEA
2020  * sentence won't report an error.
2021  *
2022  * @warning The settings are platform dependent. Please refer to
2023  * @ref platformConstraintsGnss_SettingConfiguration section for full details.
2024  *
2025  * @deprecated LE_GNSS_NMEA_MASK_PQXFI is deprecated. LE_GNSS_NMEA_MASK_PTYPE should be used
2026  * instead. Setting LE_GNSS_NMEA_MASK_PTYPE will also set LE_GNSS_NMEA_MASK_PQXFI.
2027  */
2028 //--------------------------------------------------------------------------------------------------
2030 (
2031  le_gnss_NmeaBitMask_t nmeaMask
2032  ///< [IN] Bit mask for enabled NMEA sentences.
2033 );
2034 
2035 //--------------------------------------------------------------------------------------------------
2036 /**
2037  * This function gets the bit mask for the enabled NMEA sentences.
2038  *
2039  * @return
2040  * - LE_OK Success
2041  * - LE_FAULT Failure
2042  * - LE_BUSY Service is busy
2043  * - LE_TIMEOUT Timeout occurred
2044  * - LE_NOT_PERMITTED GNSS device is not in "ready" state
2045  *
2046  * @note If the caller is passing an null pointer to this function, it is a fatal error
2047  * and the function will not return.
2048  *
2049  * @note Some NMEA sentences are unsupported depending on the plateform. Please refer to
2050  * @ref platformConstraintsGnss_nmeaMask section for full details. The bit mask for an unset
2051  * or unsupported NMEA sentence is zero.
2052  */
2053 //--------------------------------------------------------------------------------------------------
2055 (
2056  le_gnss_NmeaBitMask_t* nmeaMaskPtrPtr
2057  ///< [OUT] Bit mask for enabled NMEA sentences.
2058 );
2059 
2060 //--------------------------------------------------------------------------------------------------
2061 /**
2062  * This function returns the status of the GNSS device.
2063  *
2064  */
2065 //--------------------------------------------------------------------------------------------------
2067 (
2068  void
2069 );
2070 
2071 //--------------------------------------------------------------------------------------------------
2072 /**
2073  * This function sets the GNSS minimum elevation.
2074  *
2075  * @return
2076  * - LE_OK on success
2077  * - LE_FAULT on failure
2078  * - LE_OUT_OF_RANGE if the minimum elevation is above range
2079  * - LE_UNSUPPORTED request not supported
2080  *
2081  * @warning The settings are platform dependent. Please refer to
2082  * @ref platformConstraintsGnss_SettingConfiguration section for full details.
2083  */
2084 //--------------------------------------------------------------------------------------------------
2086 (
2087  uint8_t minElevation
2088  ///< [IN] Minimum elevation in degrees [range 0..90].
2089 );
2090 
2091 //--------------------------------------------------------------------------------------------------
2092 /**
2093  * This function gets the GNSS minimum elevation.
2094  *
2095  * @return
2096  * - LE_OK on success
2097  * - LE_FAULT on failure
2098  * - LE_UNSUPPORTED request not supported
2099  *
2100  * @note If the caller is passing an null pointer to this function, it is a fatal error
2101  * and the function will not return.
2102  */
2103 //--------------------------------------------------------------------------------------------------
2105 (
2106  uint8_t* minElevationPtrPtr
2107  ///< [OUT] Minimum elevation in degrees [range 0..90].
2108 );
2109 
2110 //--------------------------------------------------------------------------------------------------
2111 /**
2112  * Set the resolution for the DOP parameters
2113  *
2114  * @return LE_OK Function succeeded.
2115  * @return LE_BAD_PARAMETER Invalid parameter provided.
2116  * @return LE_FAULT Function failed.
2117  *
2118  * @note The function sets the same resolution to all DOP values returned by
2119  * le_gnss_GetDilutionOfPrecision() API. The resolution setting takes effect immediately.
2120  *
2121  * @note The resolution setting is done per client session.
2122  */
2123 //--------------------------------------------------------------------------------------------------
2125 (
2126  le_gnss_Resolution_t resolution
2127  ///< [IN] Resolution.
2128 );
2129 
2130 //--------------------------------------------------------------------------------------------------
2131 /**
2132  * Set the resolution for the specific type of data
2133  *
2134  * @return LE_OK Function succeeded.
2135  * @return LE_BAD_PARAMETER Invalid parameter provided.
2136  * @return LE_FAULT Function failed.
2137  *
2138  * @note The resolution setting takes effect immediately and is not persistent to reset.
2139  *
2140  * @note The resolution setting is done per client session.
2141  */
2142 //--------------------------------------------------------------------------------------------------
2144 (
2145  le_gnss_DataType_t dataType,
2146  ///< [IN] Data type.
2147  le_gnss_Resolution_t resolution
2148  ///< [IN] Resolution.
2149 );
2150 
2151 #endif // LE_GNSS_INTERFACE_H_INCLUDE_GUARD
Definition: le_gnss_interface.h:729
le_gnss_AssistedMode_t
Definition: le_gnss_interface.h:789
le_result_t le_gnss_GetDirection(le_gnss_SampleRef_t positionSampleRef, uint32_t *directionPtr, uint32_t *directionAccuracyPtr)
le_gnss_DopType_t
Definition: le_gnss_interface.h:806
le_result_t le_gnss_GetAltitude(le_gnss_SampleRef_t positionSampleRef, int32_t *altitudePtr, int32_t *vAccuracyPtr)
The GNSS device is not initialized.
Definition: le_gnss_interface.h:649
le_gnss_SbasConstellationCategory_t le_gnss_GetSbasConstellationCategory(uint16_t satId)
le_result_t le_gnss_InjectSuplCertificate(uint8_t suplCertificateId, uint16_t suplCertificateLen, const char *LE_NONNULL suplCertificate)
Do not use.
Definition: le_gnss_interface.h:657
le_result_t le_gnss_GetSatellitesInfo(le_gnss_SampleRef_t positionSampleRef, uint16_t *satIdPtr, size_t *satIdSizePtr, le_gnss_Constellation_t *satConstPtr, size_t *satConstSizePtr, bool *satUsedPtr, size_t *satUsedSizePtr, uint8_t *satSnrPtr, size_t *satSnrSizePtr, uint16_t *satAzimPtr, size_t *satAzimSizePtr, uint8_t *satElevPtr, size_t *satElevSizePtr)
Resolution of 3 decimal places.
Definition: le_gnss_interface.h:695
Definition: le_gnss_interface.h:769
le_result_t le_gnss_GetExtendedEphemerisValidity(uint64_t *startTimePtr, uint64_t *stopTimePtr)
GNGSA type enabled: GNSS DOP and active satellites.
Definition: le_gnss_interface.h:884
le_result_t
Definition: le_basics.h:35
Vertical dilution of precision.
Definition: le_gnss_interface.h:812
le_result_t le_gnss_Start(void)
Standalone mode.
Definition: le_gnss_interface.h:791
le_gnss_PositionHandlerRef_t le_gnss_AddPositionHandler(le_gnss_PositionHandlerFunc_t handlerPtr, void *contextPtr)
Russian satellite navigation system.
Definition: le_gnss_interface.h:852
le_result_t le_gnss_GetEpochTime(le_gnss_SampleRef_t positionSampleRef, uint64_t *millisecondsPtr)
le_result_t le_gnss_ForceFactoryRestart(void)
struct le_gnss_Sample * le_gnss_SampleRef_t
Definition: le_gnss_interface.h:639
le_result_t le_gnss_LoadExtendedEphemerisFile(int fd)
PSTIS type enabled: GPS session start indication.
Definition: le_gnss_interface.h:890
le_result_t le_gnss_GetAcquisitionRate(uint32_t *ratePtr)
void le_gnss_DisconnectService(void)
Definition: le_gnss_interface.h:738
Horizontal speed accuracy data.
Definition: le_gnss_interface.h:714
GAGNS type enabled: Fix data for Galileo.
Definition: le_gnss_interface.h:897
Definition: le_gnss_interface.h:760
PTYPE type enabled: Proprietary Type mask.
Definition: le_gnss_interface.h:892
Definition: le_gnss_interface.h:772
Chinese satellite navigation system.
Definition: le_gnss_interface.h:854
Resolution of 2 decimal places.
Definition: le_gnss_interface.h:693
GNGNS type enabled: GNSS fix data.
Definition: le_gnss_interface.h:883
Position dilution of precision.
Definition: le_gnss_interface.h:808
GAGGA type enabled: Galileo fix data.
Definition: le_gnss_interface.h:885
le_result_t le_gnss_ForceColdRestart(void)
Unknown resolution.
Definition: le_gnss_interface.h:697
GAGSA type enabled: Galileo DOP and active satellites.
Definition: le_gnss_interface.h:886
Estimated (i.e. forward predicted) position fix.
Definition: le_gnss_interface.h:676
le_result_t le_gnss_ForceWarmRestart(void)
le_gnss_State_t
Definition: le_gnss_interface.h:647
le_result_t le_gnss_InjectUtcTime(uint64_t timeUtc, uint32_t timeUnc)
GPGSV type enabled: GPS satellites in view.
Definition: le_gnss_interface.h:879
le_result_t le_gnss_SetDataResolution(le_gnss_DataType_t dataType, le_gnss_Resolution_t resolution)
GPGRS type enabled: GPS Range residuals.
Definition: le_gnss_interface.h:893
Outside US area.
Definition: le_gnss_interface.h:835
Definition: le_gnss_interface.h:741
Definition: le_gnss_interface.h:766
Japanese satellite navigation system.
Definition: le_gnss_interface.h:859
le_result_t le_gnss_SetConstellationArea(le_gnss_Constellation_t satConstellation, le_gnss_ConstellationArea_t constellationArea)
le_result_t le_gnss_GetTtff(uint32_t *ttffPtr)
le_result_t le_gnss_GetConstellation(le_gnss_ConstellationBitMask_t *constellationMaskPtr)
Resolution of 0 decimal place.
Definition: le_gnss_interface.h:689
The GNSS device is active.
Definition: le_gnss_interface.h:653
void le_gnss_RemovePositionHandler(le_gnss_PositionHandlerRef_t handlerRef)
le_result_t le_gnss_SetSuplServerUrl(const char *LE_NONNULL suplServerUrl)
Maximum value.
Definition: le_gnss_interface.h:778
le_result_t le_gnss_EnableExtendedEphemerisFile(void)
Unset area.
Definition: le_gnss_interface.h:831
3-Dimensional position fix.
Definition: le_gnss_interface.h:674
le_result_t le_gnss_GetAltitudeOnWgs84(le_gnss_SampleRef_t positionSampleRef, int32_t *altitudeOnWgs84Ptr)
le_result_t le_gnss_GetTime(le_gnss_SampleRef_t positionSampleRef, uint16_t *hoursPtr, uint16_t *minutesPtr, uint16_t *secondsPtr, uint16_t *millisecondsPtr)
le_result_t le_gnss_GetSuplAssistedMode(le_gnss_AssistedMode_t *assistedModePtr)
le_result_t le_gnss_GetLocation(le_gnss_SampleRef_t positionSampleRef, int32_t *latitudePtr, int32_t *longitudePtr, int32_t *hAccuracyPtr)
le_result_t le_gnss_DisableExtendedEphemerisFile(void)
Time dilution of precision.
Definition: le_gnss_interface.h:816
GAVTG type enabled: Galileo vector track and speed over the ground.
Definition: le_gnss_interface.h:889
le_result_t le_gnss_TryConnectService(void)
le_result_t le_gnss_SetAcquisitionRate(uint32_t rate)
le_result_t le_gnss_SetMinElevation(uint8_t minElevation)
Definition: le_gnss_interface.h:732
le_gnss_NmeaBitMask_t
Definition: le_gnss_interface.h:875
le_result_t le_gnss_GetDilutionOfPrecision(le_gnss_SampleRef_t positionSampleRef, le_gnss_DopType_t dopType, uint16_t *dopPtr)
le_result_t le_gnss_DeleteSuplCertificate(uint8_t suplCertificateId)
North American satellite navigation system.
Definition: le_gnss_interface.h:850
le_gnss_FixState_t
Definition: le_gnss_interface.h:668
2-Dimensional position fix.
Definition: le_gnss_interface.h:672
le_result_t le_gnss_GetMagneticDeviation(le_gnss_SampleRef_t positionSampleRef, int32_t *magneticDeviationPtr)
Definition: le_gnss_interface.h:775
void le_gnss_ReleaseSampleRef(le_gnss_SampleRef_t positionSampleRef)
Definition: le_gnss_interface.h:763
le_result_t le_gnss_GetNmeaSentences(le_gnss_NmeaBitMask_t *nmeaMaskPtrPtr)
DEBUG type enabled: Debug NMEA indication.
Definition: le_gnss_interface.h:895
GPGLL type enabled: GPS Geographic position, latitude / longitude.
Definition: le_gnss_interface.h:894
The GNSS device is disabled.
Definition: le_gnss_interface.h:655
le_result_t le_gnss_GetVerticalSpeed(le_gnss_SampleRef_t positionSampleRef, int32_t *vspeedPtr, int32_t *vspeedAccuracyPtr)
MS-Assisted mode.
Definition: le_gnss_interface.h:795
le_result_t le_gnss_SetSuplAssistedMode(le_gnss_AssistedMode_t assistedMode)
Unknown data type.
Definition: le_gnss_interface.h:716
le_result_t le_gnss_GetDate(le_gnss_SampleRef_t positionSampleRef, uint16_t *yearPtr, uint16_t *monthPtr, uint16_t *dayPtr)
le_gnss_ConstellationBitMask_t
Definition: le_gnss_interface.h:848
le_result_t le_gnss_SetDopResolution(le_gnss_Resolution_t resolution)
GPVTG type enabled: GPS vector track and speed over the ground.
Definition: le_gnss_interface.h:881
Vertical accuracy data.
Definition: le_gnss_interface.h:710
void le_gnss_ConnectService(void)
GPRMC type enabled: GPS recommended minimum data.
Definition: le_gnss_interface.h:880
le_result_t le_gnss_GetSatellitesStatus(le_gnss_SampleRef_t positionSampleRef, uint8_t *satsInViewCountPtr, uint8_t *satsTrackingCountPtr, uint8_t *satsUsedCountPtr)
European Union satellite navigation system.
Definition: le_gnss_interface.h:856
le_result_t le_gnss_Stop(void)
Definition: le_gnss_interface.h:744
Worldwide area.
Definition: le_gnss_interface.h:833
le_gnss_State_t le_gnss_GetState(void)
le_result_t le_gnss_SetNmeaSentences(le_gnss_NmeaBitMask_t nmeaMask)
Horizontal dilution of precision.
Definition: le_gnss_interface.h:810
le_gnss_ConstellationArea_t
Definition: le_gnss_interface.h:829
le_result_t le_gnss_GetPositionState(le_gnss_SampleRef_t positionSampleRef, le_gnss_FixState_t *statePtr)
le_result_t le_gnss_GetMinElevation(uint8_t *minElevationPtrPtr)
le_result_t le_gnss_Disable(void)
GPGGA type enabled: GPS fix data.
Definition: le_gnss_interface.h:877
void le_gnss_SetServerDisconnectHandler(le_gnss_DisconnectHandler_t disconnectHandler, void *contextPtr)
Definition: le_gnss_interface.h:735
le_result_t le_gnss_GetHorizontalSpeed(le_gnss_SampleRef_t positionSampleRef, uint32_t *hspeedPtr, uint32_t *hspeedAccuracyPtr)
void(* le_gnss_PositionHandlerFunc_t)(le_gnss_SampleRef_t positionSampleRef, void *contextPtr)
Definition: le_gnss_interface.h:917
le_gnss_SampleRef_t le_gnss_GetLastSampleRef(void)
le_result_t le_gnss_SetConstellation(le_gnss_ConstellationBitMask_t constellationMask)
le_gnss_Resolution_t
Definition: le_gnss_interface.h:687
GNSS constellation field not defined.
Definition: le_gnss_interface.h:758
Vertical speed accuracy data.
Definition: le_gnss_interface.h:712
le_result_t le_gnss_ForceHotRestart(void)
SBAS constellation used in solution.
Definition: le_gnss_interface.h:858
MS-Based mode.
Definition: le_gnss_interface.h:793
le_result_t le_gnss_Enable(void)
void(* le_gnss_DisconnectHandler_t)(void *)
Definition: le_gnss_interface.h:455
le_result_t le_gnss_GetGpsTime(le_gnss_SampleRef_t positionSampleRef, uint32_t *gpsWeekPtr, uint32_t *gpsTimeOfWeekPtr)
GPDTM type enabled: Local geodetic datum and datum offset from.
Definition: le_gnss_interface.h:896
GPGSA type enabled: GPS DOP and active satellites.
Definition: le_gnss_interface.h:878
le_gnss_SbasConstellationCategory_t
Definition: le_gnss_interface.h:727
le_result_t le_gnss_GetConstellationArea(le_gnss_Constellation_t satConstellation, le_gnss_ConstellationArea_t *constellationAreaPtr)
le_result_t le_gnss_GetGpsLeapSeconds(le_gnss_SampleRef_t positionSampleRef, uint8_t *leapSecondsPtr)
The GNSS device is ready.
Definition: le_gnss_interface.h:651
Resolution of 1 decimal place.
Definition: le_gnss_interface.h:691
The GNSS fix position is not fixed.
Definition: le_gnss_interface.h:670
Geometric dilution of precision.
Definition: le_gnss_interface.h:814
GLGSV type enabled: GLONASS satellites in view.
Definition: le_gnss_interface.h:882
GAGSV type enabled: Galileo satellites in view.
Definition: le_gnss_interface.h:887
le_result_t le_gnss_GetTimeAccuracy(le_gnss_SampleRef_t positionSampleRef, uint32_t *timeAccuracyPtr)
le_gnss_DataType_t
Definition: le_gnss_interface.h:708
struct le_gnss_PositionHandler * le_gnss_PositionHandlerRef_t
Definition: le_gnss_interface.h:907
GARMC type enabled: Galileo recommended minimum data.
Definition: le_gnss_interface.h:888
le_gnss_Constellation_t
Definition: le_gnss_interface.h:756
le_result_t le_gnss_GetDop(le_gnss_SampleRef_t positionSampleRef, uint16_t *hdopPtr, uint16_t *vdopPtr, uint16_t *pdopPtr)