le_ecall_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_ecall eCall
14  *
15  * @ref le_ecall_interface.h "API Reference" <br>
16  * @ref legatoServicesModemECall <br>
17  * @ref sampleApps_eCall sample app <br>
18  * @ref le_ecall_samples <br>
19  *
20  * eCall is a technology initiative intended to bring rapid assistance to auto
21  * accidents anywhere in the European Union. When a serious vehicle accident occurs,
22  * sensors automatically trigger an eCall. When activated, the in-vehicle system (IVS)
23  * establishes a 112-voice connection.
24  *
25  * The Mobile Network Operator handles the eCall like any other 112 call and routes the call to the
26  * most appropriate emergency response centre - Public Safety Answering Point (PSAP).
27  *
28  * At the same time, a digital "minimum set of data" (MSD) message is sent over the voice call using
29  * in-band modem signals. The MSD includes accident information like time, location, driving
30  * direction, and vehicle description.
31  *
32  * The eCall can also be activated manually. The mobile network operator identifies that the 112
33  * call is an eCall from the “eCall flag” inserted by the vehicle’s communication module.
34  *
35  * This API applies for both PAN-EUROPEAN and ERA-GLONASS standards.
36  *
37  * @note eCall service is only available on automotive products.
38  *
39  * @section le_ecall_binding IPC interfaces binding
40  *
41  * All the functions of this API are provided by the @b modemService service.
42  *
43  * Here's a code sample binding to modem services:
44  * @verbatim
45  bindings:
46  {
47  clientExe.clientComponent.le_ecall -> modemService.le_ecall
48  }
49  @endverbatim
50  *
51  * @section le_ecall_operation Operation modes
52  *
53  * The modem can be configured to operate in three different operation modes:
54  * - le_ecall_ForceOnlyMode(): this function configures the eCall operation mode to eCall only, only
55  * emergency number can be used to start an eCall session. The modem doesn't try to register on
56  * the Cellular network. This function forces the modem to behave as eCall only mode whatever
57  * U/SIM operation mode. The change doesn't persist over power cycles.
58  * This function can be called before making an eCall.
59  *
60  * - le_ecall_ForcePersistentOnlyMode(): Same as le_ecall_ForceOnlyMode(), but the change persists
61  * over power cycles.
62  *
63  * - le_ecall_ExitOnlyMode(): this function exits from eCall Only mode. It configures the eCall
64  * operation mode to Normal mode, the modem uses the default operation mode at power up (or after
65  * U/SIM hotswap). The modem behaves following the U/SIM eCall operation mode; for example the
66  * U/SIM can be configured only for eCall, or a combination of eCall and commercial service
67  * provision.
68  *
69  * - le_ecall_GetConfiguredOperationMode(): this function allows the user to retrieve the configured
70  * Operation mode.
71  * The configured operation mode can be:
72  * - @c LE_ECALL_NORMAL_MODE : normal mode. The modem behaves following the U/SIM eCall operation
73  * mode.
74  * - @c LE_ECALL_ONLY_MODE : eCall only mode according to U/SIM operation mode or forced by
75  * application through the le_ecall_ForceOnlyMode() function.
76  * - @c LE_ECALL_FORCED_PERSISTENT_ONLY_MODE : persistent eCall only mode.
77  *
78  * @section le_ecall_session eCall Session
79  *
80  * An eCall session is started by creating an eCall object with the le_ecall_Create() function.
81  * The eCall session can then be stopped with le_ecall_End().
82  *
83  * The eCall type and the kind of activation are specified using different functions to start the
84  * eCall session:
85  * - le_ecall_StartManual(): initiate a manual eCall session (triggered by a passenger)
86  * - le_ecall_StartAutomatic(): initiate an automatic eCall session (automatically triggered by
87  * the IVS in case of accident)
88  * - le_ecall_StartTest(): initiate a test eCall session (to test the communication between the
89  * IVS and the PSAP)
90  *
91  * @warning An application must wait for the end of the ongoing eCall before triggering another
92  * one with the @c le_ecall_StartXxx() functions. An eCall is ended when:
93  * - the application successfully ended it with le_ecall_End() returning @c LE_OK
94  * - or the event @ref LE_ECALL_STATE_STOPPED is received
95  * - or the event @ref LE_ECALL_STATE_ALACK_RECEIVED_CLEAR_DOWN is received
96  * - or the event @ref LE_ECALL_STATE_DISCONNECTED is received and no redial is launched (see
97  * @ref le_ecall_redial section for more information about the redial process).
98  *
99  * When the eCall object is no longer needed, call le_ecall_Delete() to free all allocated
100  * resources associated with the object.
101  *
102  * The current state of an eCall session can be queried using le_ecall_GetState().
103  * Alternatively, an application can register a handler be notified when the session state
104  * changes. The handler can be managed using le_ecall_AddStateChangeHandler() and
105  * le_ecall_RemoveStateChangeHandler().
106  *
107  * An application can also call le_ecall_GetTerminationReason() to retrieve the reason of the call
108  * termination when call state is @ref LE_ECALL_STATE_DISCONNECTED, and also
109  * le_ecall_GetPlatformSpecificTerminationCode() to get platform specific termination code (refer
110  * to your platform documentation for further details).
111  *
112  * @section le_ecall_concurrency Concurrency
113  *
114  * If another application tries to use the eCall service while a session is already in progress, the
115  * le_ecall_StartManual(), le_ecall_StartAutomatic(), le_ecall_StartTest() functions will return a
116  * @c LE_BUSY error. The eCall session in progress won't be interrupted or disturbed. The
117  * application can follow the session progress with 'state' functions like le_ecall_GetState() and
118  * le_ecall_AddStateChangeHandler().
119  * A manual eCall can't interrupt an automatic eCall, and an automatic eCall can't interrupt a
120  * manual eCall.
121  *
122  * @section le_ecall_msd Minimum Set of Data (MSD)
123  *
124  * The dynamic values of the MSD can be set with:
125  * - le_ecall_SetMsdPosition() sets the position of the vehicle.
126  * - le_ecall_SetMsdPositionN1() sets the first delta position of the vehicle.
127  * - le_ecall_SetMsdPositionN2() sets the second delta position of the vehicle.
128  * - le_ecall_SetMsdPassengersCount() sets the number of passengers.
129  *
130  * The MSD is automatically encoded with the values previously set.
131  *
132  * @warning Those functions return a LE_DUPLICATE error when the MSD has been already imported with
133  * le_ecall_ImportMsd() function.
134  *
135  * The MSD transmission mode can be set or get with:
136  * - le_ecall_SetMsdTxMode()
137  * - le_ecall_GetMsdTxMode()
138  *
139  * The transmission mode can be:
140  * - @c LE_ECALL_TX_MODE_PUSH : the MSD is pushed by the IVS
141  * - @c LE_ECALL_TX_MODE_PULL : the MSD is sent when requested by the PSAP
142  *
143  * It's possible to import a prepared MSD using the le_ecall_ImportMsd() function.
144  * The prepared MSD must answer the requirements described in the "EN 15722:2013" publication (this
145  * publication has been prepared by Technical Committee CEN/TC 278 “Intelligent Transport Systems").
146  *
147  * @warning The imported MSD doesn't take into account the values provided by the
148  * le_ecall_SetMsdXxx() functions. It overwrites any previous imported MSD or encoded MSD.
149  *
150  * @warning The imported MSD overwrites the control flags (automaticActivation and testCall) set by
151  * le_ecall_StartXxx() functions (Manual, Automatic, Test). The User App is in charge of their
152  * correct settings.
153  *
154  * The encoded MSD can be retrieved with le_ecall_ExportMsd() function.
155  *
156  * @note The User app must perform the MSD transmission by calling le_ecall_SendMsd() when the
157  * LE_ECALL_STATE_PSAP_START_IND_RECEIVED event is received.
158  * The MSD can be updated before calling le_ecall_SendMsd(), using the e_ecall_ImportMsd() function
159  * or the le_ecall_SetMsdXxx() functions.
160  *
161  * Date/time on MSD information is set automatically by fetching the time from linux system time
162  * (epoch time since 1970-01-01 00:00:00 +0000 (UTC)).
163  *
164  * @note If linux system time is not updated automatically, update system date/time with either
165  * Linux date command or by calling le_clk_SetAbsoluteTime() function.
166  *
167  * The time given to le_clk_SetAbsoluteTime() function can be retrieved by:
168  * - le_data_GetTime()/le_data_GetDate(): the time from the network NTP.
169  * - le_gnss_GetEpochTime() the GPS epoch time.
170  *
171  * @section le_ecall_eraglonass ERA-GLONASS compliancy
172  *
173  * To perform an emergency call following the ERA-GLONASS requirements, the 'systemStandard' entry
174  * of the configuration database must be set to 'ERA-GLONASS'.
175  *
176  * Moreover, the User can set some specific configuration settings in accordance with the PSAP
177  * configuration:
178  *
179  * - le_ecall_SetEraGlonassManualDialAttempts(): set the ECALL_MANUAL_DIAL_ATTEMPTS value. If a dial
180  * attempt under manual emergency call initiation failed, it should be repeated maximally
181  * ECALL_MANUAL_DIAL_ATTEMPTS-1 times within the maximal time limit of ECALL_DIAL_DURATION.
182  * The default value is 10.
183  * Redial attempts stop once the call has been cleared down correctly, or if counter / timer
184  * reached their limits.
185  *
186  * Available for both manual and test modes:
187  * - le_ecall_SetEraGlonassAutoDialAttempts(): set the ECALL_AUTO_DIAL_ATTEMPTS value. If a dial
188  * attempt under automatic emergency call initiation failed, it should be repeated maximally
189  * ECALL_AUTO_DIAL_ATTEMPTS-1 times within the maximal time limit of ECALL_DIAL_DURATION.
190  * The default value is 10.
191  * Redial attempts stop once the call has been cleared down correctly, or if counter / timer
192  * reached their limits.
193  * - le_ecall_SetEraGlonassDialDuration(): set the ECALL_DIAL_DURATION time. It is the maximum time
194  * the IVS have to connect the emergency call to the PSAP, including all redial attempts.
195  * If the call is not connected within this time (or ManualDialAttempts/AutoDialAttempts dial
196  * attempts), it will stop.
197  * - le_ecall_SetEraGlonassFallbackTime(): set the ECALL_CCFT time. When the specified timer
198  * duration is reached and IVS NAD didn't receive a call clear-down indication then the call
199  * is automatically terminated.
200  * - le_ecall_SetEraGlonassAutoAnswerTime(): sets the ECALL_AUTO_ANSWER_TIME time, the
201  * maximum time interval wherein IVDS responds to incoming calls automatically after emergency
202  * call completion.
203  * - le_ecall_SetEraGlonassMSDMaxTransmissionTime(): sets the ECALL_MSD_MAX_TRANSMISSION_TIME time,
204  * the maximum time for MSD transmission.
205  *
206  * Available for test mode only:
207  * - le_ecall_SetEraGlonassPostTestRegistrationTime(): sets the ECALL_POST_TEST_REGISTRATION_TIME,
208  * the time interval wherein IVS remains registered in the network after the completion of
209  * transmission of test results to System Operator. The ECALL_POST_TEST_REGISTRATION_TIME default
210  * time value is 120 seconds.
211  *
212  * The corresponding getter functions let you retrieve the configuration settings values:
213  *
214  * - le_ecall_GetEraGlonassManualDialAttempts(): get the ECALL_MANUAL_DIAL_ATTEMPTS value.
215  * - le_ecall_GetEraGlonassAutoDialAttempts(): get the ECALL_AUTO_DIAL_ATTEMPTS value.
216  * - le_ecall_GetEraGlonassDialDuration(): get the ECALL_DIAL_DURATION time.
217  * - le_ecall_GetEraGlonassFallbackTime(): get the ECALL_CCFT time.
218  * - le_ecall_GetEraGlonassAutoAnswerTime(): get the ECALL_AUTO_ANSWER_TIME time.
219  * - le_ecall_GetEraGlonassMSDMaxTransmissionTime(): get the ECALL_MSD_MAX_TRANSMISSION_TIME time.
220  * - le_ecall_GetEraGlonassPostTestRegistrationTime(): get the ECALL_POST_TEST_REGISTRATION_TIME
221  * time.
222  *
223  * @section le_ecall_eraGlonassData ERA-GLONASS MSD additional data
224  *
225  * ERA-GLONASS additional data are optional and provided in the MSD message if any.
226  * They are located in MSD data block number 12 as optional additional data.
227  *
228  * ERA-GLONASS MSD additional data for MSD version 1 describes:
229  * - The crash severity (Accident Severity Index - ASI15)
230  * - The diagnostic result
231  * - The crash information
232  *
233  * ERA-GLONASS MSD additional data for MSD version 2 describes:
234  * - The crash severity (Accident Severity Index - ASI15)
235  * - The diagnostic result
236  * - The crash information
237  * - The coordinate system type
238  *
239  * ERA-GLONASS MSD additional data can be specified through the following functions:
240  * - le_ecall_SetMsdEraGlonassCrashSeverity().
241  * - le_ecall_ResetMsdEraGlonassCrashSeverity().
242  * - le_ecall_SetMsdEraGlonassDiagnosticResult().
243  * - le_ecall_ResetMsdEraGlonassDiagnosticResult().
244  * - le_ecall_SetMsdEraGlonassCrashInfo().
245  * - le_ecall_ResetMsdEraGlonassCrashInfo().
246  * - le_ecall_SetMsdEraGlonassCoordinateSystemType().
247  * - le_ecall_ResetMsdEraGlonassCoordinateSystemType().
248  *
249  * ERA-GLONASS additional data is encoded using the OID version "1.4.1" for
250  * MSD version 1 and the OID version "1.4.2" for MSD version 2.
251  * This was assigned to ERA-GLONASS optional additional data by CEN.
252  *
253  * Content of data block in the AdditionalData for MSD version 1 should be:
254  *
255  * @code
256  *
257  * ERAOADASN1Module
258  * DEFINITIONS
259  * AUTOMATIC TAGS ::=
260  * BEGIN
261  * ERADataFormatId::= INTEGER (1)
262  *
263  * ERAAdditionalData ::= SEQUENCE {
264  * crashSeverity INTEGER(0..2047) OPTIONAL,
265  * diagnosticResult DiagnosticResult OPTIONAL,
266  * crashInfo CrashInfo OPTIONAL,
267  * ...
268  * }
269  *
270  * DiagnosticResult ::= SEQUENCE {
271  * micConnectionFailure BOOLEAN OPTIONAL,
272  * micFailure BOOLEAN OPTIONAL,
273  * rightSpeakerFailure BOOLEAN OPTIONAL,
274  * leftSpeakerFailure BOOLEAN OPTIONAL,
275  * speakersFailure BOOLEAN OPTIONAL,
276  * ignitionLineFailure BOOLEAN OPTIONAL,
277  * uimFailure BOOLEAN OPTIONAL,
278  * statusIndicatorFailure BOOLEAN OPTIONAL,
279  * batteryFailure BOOLEAN OPTIONAL,
280  * batteryVoltageLow BOOLEAN OPTIONAL,
281  * crashSensorFailure BOOLEAN OPTIONAL,
282  * firmwareImageCorruption BOOLEAN OPTIONAL,
283  * commModuleInterfaceFailure BOOLEAN OPTIONAL,
284  * gnssReceiverFailure BOOLEAN OPTIONAL,
285  * raimProblem BOOLEAN OPTIONAL,
286  * gnssAntennaFailure BOOLEAN OPTIONAL,
287  * commModuleFailure BOOLEAN OPTIONAL,
288  * eventsMemoryOverflow BOOLEAN OPTIONAL,
289  * crashProfileMemoryOverflow BOOLEAN OPTIONAL,
290  * otherCriticalFailires BOOLEAN OPTIONAL,
291  * otherNotCriticalFailures BOOLEAN OPTIONAL
292  * }
293  *
294  * CrashInfo ::= SEQUENCE {
295  * crashFront BOOLEAN OPTIONAL,
296  * crashLeft BOOLEAN OPTIONAL,
297  * crashRight BOOLEAN OPTIONAL,
298  * crashRear BOOLEAN OPTIONAL,
299  * crashRollover BOOLEAN OPTIONAL,
300  * crashSide BOOLEAN OPTIONAL,
301  * crashFrontOrSide BOOLEAN OPTIONAL,
302  * crashAnotherType BOOLEAN OPTIONAL
303  * }
304  * END
305  * @endcode
306  *
307  * Content of data block in the AdditionalData for MSD version 2 should be:
308  *
309  * @code
310  *
311  * ERAOADASN1Module
312  * DEFINITIONS
313  * AUTOMATIC TAGS ::=
314  * BEGIN
315  * ERADataFormatId::= INTEGER (1)
316  *
317  * ERAAdditionalData ::= SEQUENCE {
318  * crashSeverity INTEGER(0..2047) OPTIONAL,
319  * diagnosticResult DiagnosticResult OPTIONAL,
320  * crashInfo CrashInfo OPTIONAL,
321  * coordinateSystemType CoordinateSystemType DEFAULT wgs84,
322  * ...
323  * }
324  *
325  * DiagnosticResult ::= SEQUENCE {
326  * micConnectionFailure BOOLEAN OPTIONAL,
327  * micFailure BOOLEAN OPTIONAL,
328  * rightSpeakerFailure BOOLEAN OPTIONAL,
329  * leftSpeakerFailure BOOLEAN OPTIONAL,
330  * speakersFailure BOOLEAN OPTIONAL,
331  * ignitionLineFailure BOOLEAN OPTIONAL,
332  * uimFailure BOOLEAN OPTIONAL,
333  * statusIndicatorFailure BOOLEAN OPTIONAL,
334  * batteryFailure BOOLEAN OPTIONAL,
335  * batteryVoltageLow BOOLEAN OPTIONAL,
336  * crashSensorFailure BOOLEAN OPTIONAL,
337  * firmwareImageCorruption BOOLEAN OPTIONAL,
338  * commModuleInterfaceFailure BOOLEAN OPTIONAL,
339  * gnssReceiverFailure BOOLEAN OPTIONAL,
340  * raimProblem BOOLEAN OPTIONAL,
341  * gnssAntennaFailure BOOLEAN OPTIONAL,
342  * commModuleFailure BOOLEAN OPTIONAL,
343  * eventsMemoryOverflow BOOLEAN OPTIONAL,
344  * crashProfileMemoryOverflow BOOLEAN OPTIONAL,
345  * otherCriticalFailires BOOLEAN OPTIONAL,
346  * otherNotCriticalFailures BOOLEAN OPTIONAL
347  * }
348  *
349  * CrashInfo ::= SEQUENCE {
350  * crashFront BOOLEAN OPTIONAL,
351  * crashLeft BOOLEAN OPTIONAL,
352  * crashRight BOOLEAN OPTIONAL,
353  * crashRear BOOLEAN OPTIONAL,
354  * crashRollover BOOLEAN OPTIONAL,
355  * crashSide BOOLEAN OPTIONAL,
356  * crashFrontOrSide BOOLEAN OPTIONAL,
357  * crashAnotherType BOOLEAN OPTIONAL
358  * }
359  *
360  * CoordinateSystemType ::= ENUMERATED {
361  * wgs64 (1),
362  * ps90 (2)
363  * }
364  * END
365  *
366  * @endcode
367  *
368  * @section le_ecall_redial Redial management
369  *
370  * In the case of PAN-EUROPEAN, the redial can be performed as many times as desired but should be
371  * performed within 2 minutes. (EN 16062:2014 -7.14.3).
372  *
373  * In the case of ERA-GLONASS, the redial can be performed ECALL_MANUAL_DIAL_ATTEMPTS times within
374  * the maximal time limit of ECALL_DIAL_DURATION (GOST 54620 2013 -- Appendix A).
375  *
376  * The \b LE_ECALL_STATE_END_OF_REDIAL_PERIOD state event notifies the User of the redial period
377  * end.
378  *
379  * @section le_ecall_configuration eCall configuration
380  *
381  * Some parameters used by the eCall service can be configured through APIs. This includes the
382  * number to dial, the deregistration time, the redial interval, and some MSD information.
383  *
384  * @subsection le_ecall_configuration_callNumber eCall number
385  *
386  * By default, the number to dial is read from the FDN/SDN (Fixed Dialling Numbers/Service
387  * Dialling Numbers) of the U/SIM, depending upon the eCall operating mode.
388  *
389  * However, the PSAP phone number can be queried and set with:
390  * - le_ecall_GetPsapNumber()
391  * - le_ecall_SetPsapNumber()
392  *
393  * @snippet "apps/test/modemServices/ecall/ecallIntegrationTest/eCallTest/le_ecallTest.c" PsapNumber
394  *
395  * @note That PSAP number is not applied to a manual or an automatically initiated eCall. For these
396  * modes, an emergency call is launched.
397  *
398  * @warning These two functions don't modify or read the U/SIM content.
399  *
400  * When modem is in @ref LE_ECALL_FORCED_PERSISTENT_ONLY_MODE or @ref LE_ECALL_ONLY_MODE,
401  * le_ecall_UseUSimNumbers() API can be called to request the modem to read the number to
402  * dial from the FDN/SDN of the U/SIM.
403  *
404  * @note If FDN directory is updated with new dial numbers, be sure that the SIM card is refreshed.
405  *
406  * @subsection le_ecall_configuration_nad NAD deregistration time
407  *
408  * The NAD (Network Access Device, i.e. the Modem) deregistration time value can be set with the
409  * le_ecall_SetNadDeregistrationTime() API and retrieved with the
410  * le_ecall_GetNadDeregistrationTime() API.
411  *
412  * @snippet "apps/test/modemServices/ecall/ecallIntegrationTest/eCallTest/le_ecallTest.c" NadTime
413  *
414  * 1. PAN-EUROPEAN standard (<em>EN 16062</em>) defines the T9 and T10 timers. After an eCall
415  * clear-down, an <b>eCall only</b> IVS shall:
416  * - Remain registered on the network for at least the duration of T9, which is set to
417  * one hour by default.
418  * - Deregister from the network after the expiration of T10, which duration is set to
419  * twelve hours by default.
420  * 2. ERA-GLONASS standard (<em>ENG_GOST_R_54620</em>) defines the NAD_DEREGISTRATION_TIME
421  * with a minimal value of two hours and a maximum value of twelve hours. After an eCall
422  * clear-down, the IVS shall remain registered on the network and deregister from the network
423  * after the expiration of the NAD_DEREGISTRATION_TIME.
424  *
425  * The le_ecall_SetNadDeregistrationTime() API is used to set the duration of a
426  * <em>deregistration timer</em>: after an eCall clear-down, the IVS remains registered on the
427  * network for the duration of this timer and then automatically deregisters from the network upon
428  * its expiration.
429  *
430  * @subsubsection le_ecall_configuration_nad_panEU PAN-EUROPEAN standard
431  * As the T9 timer duration is fixed to one hour, the notified events depend on the
432  * <em>deregistration timer</em> duration:
433  * - If its duration is set to one hour, the @ref LE_ECALL_STATE_TIMEOUT_T9 event will be reported.
434  * In this case deregistration is automatically performed when the T9 timeout indication is
435  * received.
436  * - If its duration is set to more than one hour and less than twelve hours then the
437  * @ref LE_ECALL_STATE_TIMEOUT_T10 event will be reported when the <em>deregistration timer</em>
438  * expires. The T9 timeout (@ref LE_ECALL_STATE_TIMEOUT_T9 event) will not be notified.
439  * In this case deregistration is automatically performed when the <em>deregistration timer</em>
440  * expires, provided that the application didn't already deregister from the network before.
441  *
442  * @subsubsection le_ecall_configuration_nad_eraGlonass ERA-GLONASS standard
443  * - The @ref LE_ECALL_STATE_TIMEOUT_T9 event is not reported as it is not defined in the
444  * ERA-GLONASS standard.
445  * - The NAD_DEREGISTRATION_TIME default value is eight hours, as defined by
446  * <em>GOST_R 54620 Table A.1</em>. It can be changed with le_ecall_SetNadDeregistrationTime()
447  * and the value must be set between two and twelve hours.
448  * - The @ref LE_ECALL_STATE_TIMEOUT_T10 event will be reported when the NAD_DEREGISTRATION_TIME
449  * expires. In this case deregistration is automatically performed when the timer expires.
450  *
451  * @subsubsection le_ecall_configuration_nad_timerValue Timer value
452  *
453  * Although the time is set in minutes the value is taken in hours, for example:
454  * - from 1 to 60 minutes -> 1 hour
455  * - from 61 to 120 minutes -> 2 hours, etc.
456  *
457  * Example: if @c deregTime parameter unit is minutes, the effective time is:
458  * @code ECallConfiguration.nad_deregistration_time = (deregTime+59)/60; @endcode
459  *
460  * After termination of an emergency call the in-vehicle system remains registered on the network
461  * for the period of time, defined by the installation parameter NAD_DEREGISTRATION_TIME.
462  *
463  * @warning Be sure to check the possible values of NAD_DEREGISTRATION_TIME for your specific
464  * platform.
465  *
466  * @subsection le_ecall_configuration_postTestRegistrationTime Post test registration time
467  *
468  * The ECALL_POST_TEST_REGISTRATION_TIME time value can be set with the
469  * le_ecall_SetEraGlonassPostTestRegistrationTime() function and retrieved by the
470  * le_ecall_GetEraGlonassPostTestRegistrationTime() function.
471  *
472  * @snippet "apps/test/modemServices/ecall/ecallIntegrationTest/eCallTest/le_ecallTest.c" PostTest
473  *
474  * @subsection le_ecall_configuration_redialInterval Redial interval
475  *
476  * The minimum interval value between dial attempts can be set or get with:
477  * - le_ecall_SetIntervalBetweenDialAttempts()
478  * - le_ecall_GetIntervalBetweenDialAttempts()
479  *
480  * @snippet "apps/test/modemServices/ecall/ecallIntegrationTest/eCallTest/le_ecallTest.c" DialTimer
481  *
482  * The default value is set to 30 seconds.
483  *
484  * The time is counted from the start of the first dial attempt.
485  *
486  * If more time has expired during the dial attempt, it will wait for 1 second to allow hangup
487  * before redialing.
488  *
489  * If less time has expired during the dial attempt, it will wait for
490  * (interval - 'dial attempt duration') seconds to allow hangup before redialing.
491  *
492  * In the case the call was connected, the redial will be immediate.
493  *
494  * le_ecall_SetIntervalBetweenDialAttempts() is available for both manual and test modes.
495  *
496  * @subsection le_ecall_configuration_misc Miscellaneous
497  *
498  * The preferred system standard defaults to PAN-EUROPEAN
499  * It can be set an gotten with the following functions:
500  * - le_ecall_SetSystemStandard()
501  * - le_ecall_GetSystemStandard()
502  *
503  * @snippet "apps/test/modemServices/ecall/ecallIntegrationTest/eCallTest/le_ecallTest.c" Standard
504  *
505  * The MSD version can be set and and gotten with the following functions:
506  * - le_ecall_SetMsdVersion()
507  * - le_ecall_GetMsdVersion()
508  *
509  * @snippet "apps/test/modemServices/ecall/ecallIntegrationTest/eCallTest/le_ecallTest.c" MsdVersion
510  *
511  * The vehicle type can be set and gotten with the following functions:
512  * - le_ecall_SetVehicleType()
513  * - le_ecall_GetVehicleType()
514  *
515  * @snippet "apps/test/modemServices/ecall/ecallIntegrationTest/eCallTest/le_ecallTest.c" Vehicle
516  *
517  * The vehicle identifier can be set and gotten with the following functions:
518  * - le_ecall_SetVIN()
519  * - le_ecall_GetVIN()
520  *
521  * @snippet "apps/test/modemServices/ecall/ecallIntegrationTest/eCallTest/le_ecallTest.c" VIN
522  *
523  * The propulsion type can be set and gotten with the following functions:
524  * - le_ecall_SetPropulsionType()
525  * - le_ecall_GetPropulsionType()
526  *
527  * @snippet "apps/test/modemServices/ecall/ecallIntegrationTest/eCallTest/le_ecallTest.c" Propulsion
528  *
529  * @section le_ecall_samples Code samples
530  *
531  * A sample code that implements an eCall test session with a local voice prompt can be found in
532  * \b eCallWPrompt.c file (please refer to @ref c_ecallWPromptSample page).
533  *
534  * A sample code that implements an eCall test session with a voice call connection can be found in
535  * \b eCallWVoice.c file (please refer to @ref c_ecallWVoiceSample page).
536  *
537  * If you want to have a look at a more in-depth usage of these APIs, please refer to the
538  * @ref le_ecall_interface.h.
539  *
540  * <HR>
541  *
542  * Copyright (C) Sierra Wireless Inc.
543  */
544 /**
545  * @file le_ecall_interface.h
546  *
547  * Legato @ref c_ecall include file.
548  *
549  * Copyright (C) Sierra Wireless Inc.
550  */
551 /**
552  * @page c_ecallWPromptSample Sample code of an eCall test session with a local voice prompt
553  *
554  * @include "apps/test/modemServices/ecall/ecallWPrompt/eCallWPrompt/eCallWPrompt.c"
555  */
556 /**
557  * @page c_ecallWVoiceSample Sample code an eCall test session with a voice call connection
558  *
559  * @include "apps/test/modemServices/ecall/ecallWVoice/eCallWVoice/eCallWVoice.c"
560  */
561 
562 #ifndef LE_ECALL_INTERFACE_H_INCLUDE_GUARD
563 #define LE_ECALL_INTERFACE_H_INCLUDE_GUARD
564 
565 
566 #include "legato.h"
567 
568 // Interface specific includes
569 #include "le_mdmDefs_interface.h"
570 #include "le_mcc_interface.h"
571 
572 
573 //--------------------------------------------------------------------------------------------------
574 /**
575  * Type for handler called when a server disconnects.
576  */
577 //--------------------------------------------------------------------------------------------------
578 typedef void (*le_ecall_DisconnectHandler_t)(void *);
579 
580 //--------------------------------------------------------------------------------------------------
581 /**
582  *
583  * Connect the current client thread to the service providing this API. Block until the service is
584  * available.
585  *
586  * For each thread that wants to use this API, either ConnectService or TryConnectService must be
587  * called before any other functions in this API. Normally, ConnectService is automatically called
588  * for the main thread, but not for any other thread. For details, see @ref apiFilesC_client.
589  *
590  * This function is created automatically.
591  */
592 //--------------------------------------------------------------------------------------------------
594 (
595  void
596 );
597 
598 //--------------------------------------------------------------------------------------------------
599 /**
600  *
601  * Try to connect the current client thread to the service providing this API. Return with an error
602  * if the service is not available.
603  *
604  * For each thread that wants to use this API, either ConnectService or TryConnectService must be
605  * called before any other functions in this API. Normally, ConnectService is automatically called
606  * for the main thread, but not for any other thread. For details, see @ref apiFilesC_client.
607  *
608  * This function is created automatically.
609  *
610  * @return
611  * - LE_OK if the client connected successfully to the service.
612  * - LE_UNAVAILABLE if the server is not currently offering the service to which the client is
613  * bound.
614  * - LE_NOT_PERMITTED if the client interface is not bound to any service (doesn't have a binding).
615  * - LE_COMM_ERROR if the Service Directory cannot be reached.
616  */
617 //--------------------------------------------------------------------------------------------------
619 (
620  void
621 );
622 
623 //--------------------------------------------------------------------------------------------------
624 /**
625  * Set handler called when server disconnection is detected.
626  *
627  * When a server connection is lost, call this handler then exit with LE_FATAL. If a program wants
628  * to continue without exiting, it should call longjmp() from inside the handler.
629  */
630 //--------------------------------------------------------------------------------------------------
632 (
633  le_ecall_DisconnectHandler_t disconnectHandler,
634  void *contextPtr
635 );
636 
637 //--------------------------------------------------------------------------------------------------
638 /**
639  *
640  * Disconnect the current client thread from the service providing this API.
641  *
642  * Normally, this function doesn't need to be called. After this function is called, there's no
643  * longer a connection to the service, and the functions in this API can't be used. For details, see
644  * @ref apiFilesC_client.
645  *
646  * This function is created automatically.
647  */
648 //--------------------------------------------------------------------------------------------------
650 (
651  void
652 );
653 
654 
655 //--------------------------------------------------------------------------------------------------
656 /**
657  * MSD message length in bytes.
658  */
659 //--------------------------------------------------------------------------------------------------
660 #define LE_ECALL_MSD_MAX_LEN 140
661 
662 //--------------------------------------------------------------------------------------------------
663 /**
664  * Vehicle Identification Number (VIN) string LENGTH. (without nulltermination)
665  */
666 //--------------------------------------------------------------------------------------------------
667 #define LE_ECALL_VIN_MAX_LEN 17
668 
669 //--------------------------------------------------------------------------------------------------
670 /**
671  * Vehicle Identification Number (VIN) string BYTES. One extra byte is added for the null
672  * character.
673  */
674 //--------------------------------------------------------------------------------------------------
675 #define LE_ECALL_VIN_MAX_BYTES 18
676 
677 //--------------------------------------------------------------------------------------------------
678 /**
679  * Reference returned by Create function and used by other functions
680  */
681 //--------------------------------------------------------------------------------------------------
682 typedef struct le_ecall_Call* le_ecall_CallRef_t;
683 
684 
685 //--------------------------------------------------------------------------------------------------
686 /**
687  * Configured operation modes.
688  */
689 //--------------------------------------------------------------------------------------------------
690 typedef enum
691 {
693  ///< Normal mode.
695  ///< eCall only mode according to U/SIM operation mode or forced
696  ///< by application through the le_ecall_ForceOnlyMode() function.
698  ///< Persistent eCall only mode.
699 }
701 
702 
703 //--------------------------------------------------------------------------------------------------
704 /**
705  * Configure which standard to follow for the eCall, either PAN European eCall or ERA GLONASS.
706  */
707 //--------------------------------------------------------------------------------------------------
708 typedef enum
709 {
711  ///< PAN-EUROPEAN standard
713  ///< ERA GLONASS standard
714 }
716 
717 
718 //--------------------------------------------------------------------------------------------------
719 /**
720  * eCall session states.
721  */
722 //--------------------------------------------------------------------------------------------------
723 typedef enum
724 {
726  ///< Unknown state.
728  ///< eCall session started.
730  ///< Emergency call is established.
732  ///< Emergency call is disconnected.
734  ///< Waiting for PSAP start indication.
736  ///< PSAP start indication received.
738  ///< MSD transmission is started.
740  ///< LL-NACK received.
742  ///< LL-ACK received.
744  ///< MSD transmission is complete.
746  ///< MSD transmission has failed.
748  ///< AL-ACK received.
750  ///< AL-ACK clear-down received.
752  ///< eCall session has been stopped by PSAP
753  ///< or IVS le_ecall_End().
755  ///< eCall session has lost synchronization and starts over.
757  ///< eCall session completed. The modem successfully completed
758  ///< the MSD transmission and received two AL-ACKs (positive).
759  ///< Can now switch to voice path.
761  ///< Unsuccessful eCall session.
763  ///< End of the redial period.
765  ///< Timeout for Timer T2 (see CEN-EN 16062, annex A)
767  ///< Timeout for Timer T3 (see CEN-EN 16062, annex A)
769  ///< Timeout for Timer T5 (see CEN-EN 16062, annex A)
771  ///< Timeout for Timer T6 (see CEN-EN 16062, annex A)
773  ///< Timeout for Timer T7 (see CEN-EN 16062, annex A)
775  ///< Timeout for Timer T9 (see CEN-EN 16062, annex A)
777  ///< Timeout for Timer T10 (see CEN-EN 16062, annex A)
778 }
780 
781 
782 //--------------------------------------------------------------------------------------------------
783 /**
784  * eCall MSD transmission mode.
785  */
786 //--------------------------------------------------------------------------------------------------
787 typedef enum
788 {
790  ///< Pull mode (modem/host waits for MSD request from PSAP to send MSD).
792  ///< Push mode (modem/host sends MSD to PSAP right after eCall is connected).
793 }
795 
796 
797 //--------------------------------------------------------------------------------------------------
798 /**
799  * eCall MSD vehicle type
800  */
801 //--------------------------------------------------------------------------------------------------
802 typedef enum
803 {
805  ///< Passenger vehicle (Class M1)
807  ///< Buses and coaches (Class M2)
809  ///< Buses and coaches (Class M3)
811  ///< Light commercial vehicles (Class N1)
813  ///< Heavy duty vehicles (Class N2)
815  ///< Heavy duty vehicles (Class N3)
817  ///< Motorcycles (Class L1e)
819  ///< Motorcycles (Class L2e)
821  ///< Motorcycles (Class L3e)
823  ///< Motorcycles (Class L4e)
825  ///< Motorcycles (Class L5e)
827  ///< Motorcycles (Class L6e)
829  ///< Motorcycles (Class L7e)
830 }
832 
833 
834 //--------------------------------------------------------------------------------------------------
835 /**
836  * Propulsion type Bit Mask
837  */
838 //--------------------------------------------------------------------------------------------------
839 typedef enum
840 {
841  LE_ECALL_PROPULSION_TYPE_GASOLINE = 0x1, ///< Gasoline propulsion)
842  LE_ECALL_PROPULSION_TYPE_DIESEL = 0x2, ///< Diesel propulsion
843  LE_ECALL_PROPULSION_TYPE_NATURALGAS = 0x4, ///< Compressed natural gas propulsion
844  LE_ECALL_PROPULSION_TYPE_PROPANE = 0x8, ///< Liquid propane gas propulsion
845  LE_ECALL_PROPULSION_TYPE_ELECTRIC = 0x10, ///< Electric propulsion
846  LE_ECALL_PROPULSION_TYPE_HYDROGEN = 0x20, ///< Hydrogen propulsion
847  LE_ECALL_PROPULSION_TYPE_OTHER = 0x40 ///< Other type of propulsions
848 }
850 
851 
852 //--------------------------------------------------------------------------------------------------
853 /**
854  * Diagnostic result Bit Mask (64 bits)
855  *
856  */
857 //--------------------------------------------------------------------------------------------------
858 typedef enum
859 {
860  LE_ECALL_DIAG_RESULT_PRESENT_MIC_CONNECTION_FAILURE = 0x1, ///< Present Mic connection failure.
861  LE_ECALL_DIAG_RESULT_MIC_CONNECTION_FAILURE = 0x2, ///< Mic connection failure status.
862  LE_ECALL_DIAG_RESULT_PRESENT_MIC_FAILURE = 0x4, ///< Present Mic failure.
863  LE_ECALL_DIAG_RESULT_MIC_FAILURE = 0x8, ///< Mic failure status.
864  LE_ECALL_DIAG_RESULT_PRESENT_RIGHT_SPEAKER_FAILURE = 0x10, ///< Present Right speaker failure.
865  LE_ECALL_DIAG_RESULT_RIGHT_SPEAKER_FAILURE = 0x20, ///< Right speaker failure status.
866  LE_ECALL_DIAG_RESULT_PRESENT_LEFT_SPEAKER_FAILURE = 0x40, ///< Present Left speaker failure.
867  LE_ECALL_DIAG_RESULT_LEFT_SPEAKER_FAILURE = 0x80, ///< Left speaker failure status.
868  LE_ECALL_DIAG_RESULT_PRESENT_SPEAKERS_FAILURE = 0x100, ///< Present Speaker failure.
869  LE_ECALL_DIAG_RESULT_SPEAKERS_FAILURE = 0x200, ///< Speaker failure status.
870  LE_ECALL_DIAG_RESULT_PRESENT_IGNITION_LINE_FAILURE = 0x400, ///< Present Ignition line failure.
871  LE_ECALL_DIAG_RESULT_IGNITION_LINE_FAILURE = 0x800, ///< Ignition line failure status.
872  LE_ECALL_DIAG_RESULT_PRESENT_UIM_FAILURE = 0x1000, ///< Present UIM failure.
873  LE_ECALL_DIAG_RESULT_UIM_FAILURE = 0x2000, ///< UIM failure status.
874  LE_ECALL_DIAG_RESULT_PRESENT_STATUS_INDICATOR_FAILURE = 0x4000, ///< Present Status indicator failure.
875  LE_ECALL_DIAG_RESULT_STATUS_INDICATOR_FAILURE = 0x8000, ///< Status indicator failure status.
876  LE_ECALL_DIAG_RESULT_PRESENT_BATTERY_FAILURE = 0x10000, ///< Present Battery failure.
877  LE_ECALL_DIAG_RESULT_BATTERY_FAILURE = 0x20000, ///< Battery failure status.
878  LE_ECALL_DIAG_RESULT_PRESENT_BATTERY_VOLTAGE_LOW = 0x40000, ///< Present Battery voltage low failure.
879  LE_ECALL_DIAG_RESULT_BATTERY_VOLTAGE_LOW = 0x80000, ///< Battery voltage low failure status.
880  LE_ECALL_DIAG_RESULT_PRESENT_CRASH_SENSOR_FAILURE = 0x100000, ///< Present Crash sensor failure.
881  LE_ECALL_DIAG_RESULT_CRASH_SENSOR_FAILURE = 0x200000, ///< Crash sensor failure status.
882  LE_ECALL_DIAG_RESULT_PRESENT_FIRMWARE_IMAGE_CORRUPTION = 0x400000, ///< Present Firmware image corruption failure.
883  LE_ECALL_DIAG_RESULT_FIRMWARE_IMAGE_CORRUPTION = 0x800000, ///< Firmware image corruption failure status.
884  LE_ECALL_DIAG_RESULT_PRESENT_COMM_MODULE_INTERFACE_FAILURE = 0x1000000, ///< Present Comm module interface failure.
885  LE_ECALL_DIAG_RESULT_COMM_MODULE_INTERFACE_FAILURE = 0x2000000, ///< Comm module interface failure status.
886  LE_ECALL_DIAG_RESULT_PRESENT_GNSS_RECEIVER_FAILURE = 0x4000000, ///< Present GNSS receiver failure.
887  LE_ECALL_DIAG_RESULT_GNSS_RECEIVER_FAILURE = 0x8000000, ///< GNSS receiver failure status.
888  LE_ECALL_DIAG_RESULT_PRESENT_RAIM_PROBLEM = 0x10000000, ///< Present RAIM problem.
889  LE_ECALL_DIAG_RESULT_RAIM_PROBLEM = 0x20000000, ///< RAIM problem status.
890  LE_ECALL_DIAG_RESULT_PRESENT_GNSS_ANTENNA_FAILURE = 0x40000000, ///< Present GNSS antenna failure.
891  LE_ECALL_DIAG_RESULT_GNSS_ANTENNA_FAILURE = 0x80000000, ///< GNSS antenna failure status.
892  LE_ECALL_DIAG_RESULT_PRESENT_COMM_MODULE_FAILURE = 0x100000000, ///< Present Comm module failure.
893  LE_ECALL_DIAG_RESULT_COMM_MODULE_FAILURE = 0x200000000, ///< Comm module failure status.
894  LE_ECALL_DIAG_RESULT_PRESENT_EVENTS_MEMORY_OVERFLOW = 0x400000000, ///< Present Events memory overflow.
895  LE_ECALL_DIAG_RESULT_EVENTS_MEMORY_OVERFLOW = 0x800000000, ///< Events memory overflow status.
896  LE_ECALL_DIAG_RESULT_PRESENT_CRASH_PROFILE_MEMORY_OVERFLOW = 0x1000000000, ///< Present Crash profile memory overflow.
897  LE_ECALL_DIAG_RESULT_CRASH_PROFILE_MEMORY_OVERFLOW = 0x2000000000, ///< Crash profile memory overflow status.
898  LE_ECALL_DIAG_RESULT_PRESENT_OTHER_CRITICAL_FAILURES = 0x4000000000, ///< Present Other critical failures.
899  LE_ECALL_DIAG_RESULT_OTHER_CRITICAL_FAILURES = 0x8000000000, ///< Other critical failures status.
900  LE_ECALL_DIAG_RESULT_PRESENT_OTHER_NOT_CRITICAL_FAILURES = 0x10000000000, ///< Present Other not critical failures.
901  LE_ECALL_DIAG_RESULT_OTHER_NOT_CRITICAL_FAILURES = 0x20000000000 ///< Other not critical failures status.
902 }
904 
905 
906 //--------------------------------------------------------------------------------------------------
907 /**
908  * Crash information Bit Mask (16 bits) indicating the type of road accident.
909  *
910  */
911 //--------------------------------------------------------------------------------------------------
912 typedef enum
913 {
914  LE_ECALL_CRASH_INFO_PRESENT_CRASH_FRONT = 0x1, ///< Present Front collision indicator.
915  LE_ECALL_CRASH_INFO_CRASH_FRONT = 0x2, ///< Front collision indicator.
916  LE_ECALL_CRASH_INFO_PRESENT_CRASH_LEFT = 0x4, ///< Present Left collision indicator.
917  LE_ECALL_CRASH_INFO_CRASH_LEFT = 0x8, ///< Left collision indicator.
918  LE_ECALL_CRASH_INFO_PRESENT_CRASH_RIGHT = 0x10, ///< Present Right collision indicator
919  LE_ECALL_CRASH_INFO_CRASH_RIGHT = 0x20, ///< Right collision indicator
920  LE_ECALL_CRASH_INFO_PRESENT_CRASH_REAR = 0x40, ///< Present indicator
921  LE_ECALL_CRASH_INFO_CRASH_REAR = 0x80, ///< Rear impact indicator.
922  LE_ECALL_CRASH_INFO_PRESENT_CRASH_ROLLOVER = 0x100, ///< Present Rollover indicator.
923  LE_ECALL_CRASH_INFO_CRASH_ROLLOVER = 0x200, ///< Rollover indicator.
924  LE_ECALL_CRASH_INFO_PRESENT_CRASH_SIDE = 0x400, ///< Present Side collision indicator.
925  LE_ECALL_CRASH_INFO_CRASH_SIDE = 0x800, ///< Side collision indicator.
926  LE_ECALL_CRASH_INFO_PRESENT_CRASH_FRONT_OR_SIDE = 0x1000, ///< Present Front or side collision indicator.
927  LE_ECALL_CRASH_INFO_CRASH_FRONT_OR_SIDE = 0x2000, ///< Front or side collision indicator.
928  LE_ECALL_CRASH_INFO_PRESENT_CRASH_ANOTHER_TYPE = 0x4000, ///< Present Other types of damage indicator.
929  LE_ECALL_CRASH_INFO_CRASH_ANOTHER_TYPE = 0x8000 ///< Other types of damage indicator.
930 }
932 
933 
934 //--------------------------------------------------------------------------------------------------
935 /**
936  * eCall MSD coordinate system type
937  */
938 //--------------------------------------------------------------------------------------------------
939 typedef enum
940 {
942  ///< Coordinate system type is absent
944  ///< Coordinate system type WGS-84
946  ///< Coordinate system type PZ-90
947 }
949 
950 
951 //--------------------------------------------------------------------------------------------------
952 /**
953  * Reference type used by Add/Remove functions for EVENT 'le_ecall_StateChange'
954  */
955 //--------------------------------------------------------------------------------------------------
956 typedef struct le_ecall_StateChangeHandler* le_ecall_StateChangeHandlerRef_t;
957 
958 
959 //--------------------------------------------------------------------------------------------------
960 /**
961  * Handler for eCall state changes.
962  *
963  */
964 //--------------------------------------------------------------------------------------------------
965 typedef void (*le_ecall_StateChangeHandlerFunc_t)
966 (
967  le_ecall_CallRef_t ecallRef,
968  ///< eCall reference
969  le_ecall_State_t state,
970  ///< eCall state
971  void* contextPtr
972  ///<
973 );
974 
975 //--------------------------------------------------------------------------------------------------
976 /**
977  * This function configures the eCall operation mode to eCall only, only emergency number can be
978  * used to start an eCall session. The modem doesn't try to register on the Cellular network.
979  * This function forces the modem to behave as eCall only mode whatever U/SIM operation mode.
980  * The change doesn't persist over power cycles.
981  * This function can be called before making an eCall.
982  *
983  * @return
984  * - LE_OK on success
985  * - LE_FAULT for other failures
986  * - LE_UNSUPPORTED Not supported on this platform
987  */
988 //--------------------------------------------------------------------------------------------------
990 (
991  void
992 );
993 
994 //--------------------------------------------------------------------------------------------------
995 /**
996  * Same as le_ecall_ForceOnlyMode(), but the change persists over power cycles.
997  *
998  * @return
999  * - LE_OK on success
1000  * - LE_FAULT for other failures
1001  * - LE_UNSUPPORTED Not supported on this platform
1002  */
1003 //--------------------------------------------------------------------------------------------------
1005 (
1006  void
1007 );
1008 
1009 //--------------------------------------------------------------------------------------------------
1010 /**
1011  * This function exits from eCall Only mode. It configures the eCall operation mode to Normal mode,
1012  * the modem uses the default operation mode at power up (or after U/SIM hotswap). The modem behaves
1013  * following the U/SIM eCall operation mode; for example the U/SIM can be configured only for eCall,
1014  * or a combination of eCall and commercial service provision.
1015  *
1016  * @return
1017  * - LE_OK on success
1018  * - LE_FAULT for other failures
1019  * - LE_UNSUPPORTED Not supported on this platform
1020  */
1021 //--------------------------------------------------------------------------------------------------
1023 (
1024  void
1025 );
1026 
1027 //--------------------------------------------------------------------------------------------------
1028 /**
1029  * Get the configured Operation mode.
1030  *
1031  * @return
1032  * - LE_OK on success
1033  * - LE_FAULT for other failures
1034  * - LE_UNSUPPORTED Not supported on this platform
1035  *
1036  * @note If the caller is passing a bad pointer into this function, it is a fatal error, the
1037  * function will not return.
1038  */
1039 //--------------------------------------------------------------------------------------------------
1041 (
1042  le_ecall_OpMode_t* opModePtr
1043  ///< [OUT] Operation mode
1044 );
1045 
1046 //--------------------------------------------------------------------------------------------------
1047 /**
1048  * Add handler function for EVENT 'le_ecall_StateChange'
1049  *
1050  * This event provides information on eCall state changes.
1051  *
1052  */
1053 //--------------------------------------------------------------------------------------------------
1055 (
1057  ///< [IN]
1058  void* contextPtr
1059  ///< [IN]
1060 );
1061 
1062 //--------------------------------------------------------------------------------------------------
1063 /**
1064  * Remove handler function for EVENT 'le_ecall_StateChange'
1065  */
1066 //--------------------------------------------------------------------------------------------------
1068 (
1070  ///< [IN]
1071 );
1072 
1073 //--------------------------------------------------------------------------------------------------
1074 /**
1075  * Create a new eCall object
1076  *
1077  * The eCall is not actually established at this point. It's still up to the caller to call
1078  * le_ecall_Start() when ready.
1079  *
1080  * @return
1081  * - A reference to the new Call object.
1082  *
1083  * @note On failure, the process exits; you don't have to worry about checking the returned
1084  * reference for validity.
1085  */
1086 //--------------------------------------------------------------------------------------------------
1088 (
1089  void
1090 );
1091 
1092 //--------------------------------------------------------------------------------------------------
1093 /**
1094  * Call to free up a call reference.
1095  *
1096  * @note This will free the reference, but not necessarily stop an active eCall. If there are
1097  * other holders of this reference the eCall will remain active.
1098  */
1099 //--------------------------------------------------------------------------------------------------
1100 void le_ecall_Delete
1101 (
1102  le_ecall_CallRef_t ecallRef
1103  ///< [IN] eCall reference
1104 );
1105 
1106 //--------------------------------------------------------------------------------------------------
1107 /**
1108  * Set the system standard.
1109  * Default is PAN EUROPEAN
1110  *
1111  * @return
1112  * - LE_OK on success
1113  * - LE_FAULT for other failures
1114  */
1115 //--------------------------------------------------------------------------------------------------
1117 (
1118  le_ecall_SystemStandard_t systemStandard
1119  ///< [IN] System standard
1120 );
1121 
1122 //--------------------------------------------------------------------------------------------------
1123 /**
1124  * Get the system standard.
1125  *
1126  * @return
1127  * - LE_OK on success
1128  * - LE_FAULT for other failures
1129  * - LE_BAD_PARAMETER parameter is NULL
1130  */
1131 //--------------------------------------------------------------------------------------------------
1133 (
1134  le_ecall_SystemStandard_t* systemStandardPtr
1135  ///< [OUT] System Standard
1136 );
1137 
1138 //--------------------------------------------------------------------------------------------------
1139 /**
1140  * Set the MSDs version.
1141  * Default value is 1
1142  *
1143  * @return
1144  * - LE_OK on success
1145  * - LE_FAULT for other failures
1146  */
1147 //--------------------------------------------------------------------------------------------------
1149 (
1150  uint32_t msdVersion
1151  ///< [IN] Msd version
1152 );
1153 
1154 //--------------------------------------------------------------------------------------------------
1155 /**
1156  * Get the MSD version.
1157  *
1158  * @return
1159  * - LE_OK on success
1160  * - LE_FAULT for other failures
1161  * - LE_BAD_PARAMETER parameter is NULL
1162  */
1163 //--------------------------------------------------------------------------------------------------
1165 (
1166  uint32_t* msdVersionPtr
1167  ///< [OUT] Msd version
1168 );
1169 
1170 //--------------------------------------------------------------------------------------------------
1171 /**
1172  * Set the Vehicled Type
1173  * Default value is 0
1174  *
1175  * @return
1176  * - LE_OK on success
1177  * - LE_FAULT for other failures
1178  */
1179 //--------------------------------------------------------------------------------------------------
1181 (
1182  le_ecall_MsdVehicleType_t vehicleType
1183  ///< [IN] Vehicle type
1184 );
1185 
1186 //--------------------------------------------------------------------------------------------------
1187 /**
1188  * Get the Vehicled Type.
1189  *
1190  * @return
1191  * - LE_OK on success
1192  * - LE_BAD_PARAMETER parameter is NULL
1193  * - LE_FAULT for other failures
1194  */
1195 //--------------------------------------------------------------------------------------------------
1197 (
1198  le_ecall_MsdVehicleType_t* vehicleTypePtr
1199  ///< [OUT] Vehicle type
1200 );
1201 
1202 //--------------------------------------------------------------------------------------------------
1203 /**
1204  * Set the VIN (Vehicle Identification Number).
1205  *
1206  * @return
1207  * - LE_OK on success
1208  * - LE_BAD_PARAMETER parameter is NULL.
1209  * - LE_FAULT for other failures
1210  */
1211 //--------------------------------------------------------------------------------------------------
1213 (
1214  const char* LE_NONNULL vin
1215  ///< [IN] VIN (Vehicle Identification Number)
1216 );
1217 
1218 //--------------------------------------------------------------------------------------------------
1219 /**
1220  * Get the VIN (Vehicle Identification Number).
1221  *
1222  * @return
1223  * - LE_OK on success
1224  * - LE_NOT_FOUND if the value is not set.
1225  * - LE_BAD_PARAMETER parameter is NULL or to small
1226  * - LE_FAULT for other failures
1227  */
1228 //--------------------------------------------------------------------------------------------------
1230 (
1231  char* vin,
1232  ///< [OUT] VIN is gotten with a null termination.
1233  size_t vinSize
1234  ///< [IN]
1235 );
1236 
1237 //--------------------------------------------------------------------------------------------------
1238 /**
1239  * Set the propulsion type.
1240  * Note that a vehicle may have more than one propulsion type.
1241  *
1242  * @return
1243  * - LE_OK on success
1244  * - LE_FAULT for other failures
1245  */
1246 //--------------------------------------------------------------------------------------------------
1248 (
1249  le_ecall_PropulsionTypeBitMask_t propulsionType
1250  ///< [IN] bitmask
1251 );
1252 
1253 //--------------------------------------------------------------------------------------------------
1254 /**
1255  * Get the propulsion stored.
1256  * Note that a vehicle may have more than one propulsion type.
1257  *
1258  * @return
1259  * - LE_OK on success
1260  * - LE_NOT_FOUND if the value is not set.
1261  * - LE_FAULT for other failures
1262  * - LE_BAD_PARAMETER parameter is NULL
1263  */
1264 //--------------------------------------------------------------------------------------------------
1266 (
1267  le_ecall_PropulsionTypeBitMask_t* propulsionTypePtr
1268  ///< [OUT] bitmask
1269 );
1270 
1271 //--------------------------------------------------------------------------------------------------
1272 /**
1273  * Set the push/pull transmission mode.
1274  *
1275  * @return
1276  * - LE_OK on success
1277  * - LE_FAULT for other failures
1278  * - LE_UNSUPPORTED Not supported on this platform
1279  */
1280 //--------------------------------------------------------------------------------------------------
1282 (
1284  ///< [IN] Transmission mode
1285 );
1286 
1287 //--------------------------------------------------------------------------------------------------
1288 /**
1289  * Get the push/pull transmission mode.
1290  *
1291  * @return
1292  * - LE_OK on success
1293  * - LE_FAULT for other failures
1294  * - LE_UNSUPPORTED Not supported on this platform
1295  *
1296  * @note If the caller is passing a bad pointer into this function, it is a fatal error, the
1297  * function will not return.
1298  */
1299 //--------------------------------------------------------------------------------------------------
1301 (
1302  le_ecall_MsdTxMode_t* modePtr
1303  ///< [OUT] Transmission mode
1304 );
1305 
1306 //--------------------------------------------------------------------------------------------------
1307 /**
1308  * Set the position transmitted by the MSD.
1309  *
1310  * @return
1311  * - LE_OK on success
1312  * - LE_DUPLICATE an MSD has been already imported
1313  * - LE_BAD_PARAMETER bad input parameter
1314  * - LE_FAULT on other failures
1315  *
1316  * @note The process exits, if an invalid eCall reference is given
1317  */
1318 //--------------------------------------------------------------------------------------------------
1320 (
1321  le_ecall_CallRef_t ecallRef,
1322  ///< [IN] eCall reference
1323  bool isTrusted,
1324  ///< [IN] true if the position is accurate, false otherwise
1325  int32_t latitude,
1326  ///< [IN] latitude in degrees with 6 decimal places, positive North.
1327  ///< Maximum value is +90 degrees (+90000000), minimum value is -90
1328  ///< degrees (-90000000).
1329  int32_t longitude,
1330  ///< [IN] longitude in degrees with 6 decimal places, positive East.
1331  ///< Maximum value is +180 degrees (+180000000), minimum value is
1332  ///< -180 degrees (-180000000).
1333  int32_t direction
1334  ///< [IN] direction of the vehicle from magnetic north (0 to 358, clockwise)
1335  ///< in 2-degrees unit. Valid range is 0 to 179. If direction of
1336  ///< travel is invalid or unknown, the value 0xFF shall be used.
1337 );
1338 
1339 //--------------------------------------------------------------------------------------------------
1340 /**
1341  * Set the position Delta N-1 from position set in le_ecall_SetMsdPosition() transmitted by the MSD.
1342  *
1343  * @return
1344  * - LE_OK on success
1345  * - LE_DUPLICATE an MSD has been already imported
1346  * - LE_BAD_PARAMETER bad input parameter
1347  * - LE_FAULT on other failures
1348  *
1349  * @note The process exits, if an invalid eCall reference is given
1350  */
1351 //--------------------------------------------------------------------------------------------------
1353 (
1354  le_ecall_CallRef_t ecallRef,
1355  ///< [IN] eCall reference
1356  int32_t latitudeDeltaN1,
1357  ///< [IN] longitude delta from position set in SetMsdPosition
1358  ///< 1 Unit = 100 miliarcseconds, which is approximately 3m
1359  ///< maximum value: 511 = 0 0'51.100'' (+- 1580m)
1360  ///< minimum value: -512 = -0 0'51.200'' (+- -1583m)
1361  int32_t longitudeDeltaN1
1362  ///< [IN] longitude delta from position set in SetMsdPosition
1363  ///< 1 Unit = 100 miliarcseconds, which is approximately 3m
1364  ///< maximum value: 511 = 0 0'51.100'' (+-1580m)
1365  ///< minimum value: -512 = -0 0'51.200'' (+- -1583m) )
1366 );
1367 
1368 //--------------------------------------------------------------------------------------------------
1369 /**
1370  * Set the position Delta N-2 from position set in le_ecall_SetMsdPositionN1() transmitted by the MSD.
1371  *
1372  * @return
1373  * - LE_OK on success
1374  * - LE_DUPLICATE an MSD has been already imported
1375  * - LE_BAD_PARAMETER bad input parameter
1376  * - LE_FAULT on other failures
1377  *
1378  * @note The process exits, if an invalid eCall reference is given
1379  */
1380 //--------------------------------------------------------------------------------------------------
1382 (
1383  le_ecall_CallRef_t ecallRef,
1384  ///< [IN] eCall reference
1385  int32_t latitudeDeltaN2,
1386  ///< [IN] longitude delta from position set in SetMsdPositionN1
1387  ///< 1 Unit = 100 miliarcseconds, which is approximately 3m
1388  ///< maximum value: 511 = 0 0'51.100'' (+-1580m)
1389  ///< minimum value: -512 = -0 0'51.200'' (+- -1583m)
1390  int32_t longitudeDeltaN2
1391  ///< [IN] longitude delta from position set in SetMsdPositionN1
1392  ///< 1 Unit = 100 miliarcseconds, which is approximately 3m
1393  ///< maximum value: 511 = 0 0'51.100'' (+-1580m)
1394  ///< minimum value: -512 = -0 0'51.200'' (+- -1583m) )
1395 );
1396 
1397 //--------------------------------------------------------------------------------------------------
1398 /**
1399  * Set the number of passengers transmitted by the MSD.
1400  *
1401  * @return
1402  * - LE_OK on success
1403  * - LE_DUPLICATE an MSD has been already imported
1404  * - LE_BAD_PARAMETER bad eCall reference
1405  *
1406  * @note The process exits, if an invalid eCall reference is given
1407  */
1408 //--------------------------------------------------------------------------------------------------
1410 (
1411  le_ecall_CallRef_t ecallRef,
1412  ///< [IN] eCall reference
1413  uint32_t paxCount
1414  ///< [IN] number of passengers
1415 );
1416 
1417 //--------------------------------------------------------------------------------------------------
1418 /**
1419  * Import an already prepared MSD.
1420  *
1421  * MSD is transmitted only after an emergency call has been established.
1422  *
1423  * @return
1424  * - LE_OK on success
1425  * - LE_OVERFLOW The imported MSD length exceeds the MSD_MAX_LEN maximum length.
1426  * - LE_BAD_PARAMETER bad eCall reference
1427  * - LE_FAULT for other failures
1428  *
1429  * @note On failure, the process exits; you don't have to worry about checking the returned
1430  * reference for validity.
1431  */
1432 //--------------------------------------------------------------------------------------------------
1434 (
1435  le_ecall_CallRef_t ecallRef,
1436  ///< [IN] eCall reference
1437  const uint8_t* msdPtr,
1438  ///< [IN] the prepared MSD
1439  size_t msdSize
1440  ///< [IN]
1441 );
1442 
1443 //--------------------------------------------------------------------------------------------------
1444 /**
1445  * Export the encoded MSD.
1446  *
1447  * @return
1448  * - LE_OK on success
1449  * - LE_OVERFLOW The encoded MSD length exceeds the user's buffer length.
1450  * - LE_NOT_FOUND No encoded MSD is available.
1451  * - LE_BAD_PARAMETER bad eCall reference.
1452  * - LE_FAULT for other failures.
1453  *
1454  * @note If the caller is passing a bad pointer into this function, it is a fatal error, the
1455  * function will not return.
1456  */
1457 //--------------------------------------------------------------------------------------------------
1459 (
1460  le_ecall_CallRef_t ecallRef,
1461  ///< [IN] eCall reference
1462  uint8_t* msdPtr,
1463  ///< [OUT] the encoded MSD
1464  size_t* msdSizePtr
1465  ///< [INOUT]
1466 );
1467 
1468 //--------------------------------------------------------------------------------------------------
1469 /**
1470  * Send the MSD.
1471  *
1472  * @return
1473  * - LE_OK on success
1474  * - LE_BAD_PARAMETER bad eCall reference
1475  * - LE_FAULT for other failures
1476  * - LE_UNSUPPORTED Not supported on this platform
1477  *
1478  * @note On failure, the process exits, so you don't have to worry about checking the returned
1479  * reference for validity.
1480  */
1481 //--------------------------------------------------------------------------------------------------
1483 (
1484  le_ecall_CallRef_t ecallRef
1485  ///< [IN] eCall reference
1486 );
1487 
1488 //--------------------------------------------------------------------------------------------------
1489 /**
1490  * Start an automatic eCall session
1491  *
1492  * @return
1493  * - LE_OK on success
1494  * - LE_BUSY an eCall session is already in progress
1495  * - LE_BAD_PARAMETER bad eCall reference
1496  * - LE_FAULT for other failures
1497  * - LE_UNSUPPORTED Not supported on this platform
1498  *
1499  * @note The process exits, if an invalid eCall reference is given
1500  */
1501 //--------------------------------------------------------------------------------------------------
1503 (
1504  le_ecall_CallRef_t ecallRef
1505  ///< [IN] eCall reference
1506 );
1507 
1508 //--------------------------------------------------------------------------------------------------
1509 /**
1510  * Start a manual eCall session
1511  *
1512  * @return
1513  * - LE_OK on success
1514  * - LE_BUSY an eCall session is already in progress
1515  * - LE_BAD_PARAMETER bad eCall reference
1516  * - LE_FAULT for other failures
1517  * - LE_UNSUPPORTED Not supported on this platform
1518  *
1519  * @note The process exits, if an invalid eCall reference is given
1520  */
1521 //--------------------------------------------------------------------------------------------------
1523 (
1524  le_ecall_CallRef_t ecallRef
1525  ///< [IN] eCall reference
1526 );
1527 
1528 //--------------------------------------------------------------------------------------------------
1529 /**
1530  * Start a test eCall session
1531  *
1532  * @return
1533  * - LE_OK on success
1534  * - LE_BUSY an eCall session is already in progress
1535  * - LE_BAD_PARAMETER bad eCall reference
1536  * - LE_FAULT for other failures
1537  * - LE_UNSUPPORTED Not supported on this platform
1538  *
1539  * @note The process exits, if an invalid eCall reference is given
1540  */
1541 //--------------------------------------------------------------------------------------------------
1543 (
1544  le_ecall_CallRef_t ecallRef
1545  ///< [IN] eCall reference
1546 );
1547 
1548 //--------------------------------------------------------------------------------------------------
1549 /**
1550  * End the current eCall session
1551  *
1552  * @return
1553  * - LE_OK on success
1554  * - LE_BAD_PARAMETER bad eCall reference
1555  * - LE_FAULT for other failures
1556  * - LE_UNSUPPORTED Not supported on this platform
1557  */
1558 //--------------------------------------------------------------------------------------------------
1560 (
1561  le_ecall_CallRef_t ecallRef
1562  ///< [IN] eCall reference
1563 );
1564 
1565 //--------------------------------------------------------------------------------------------------
1566 /**
1567  * Get the current state for the given eCall
1568  *
1569  * @return
1570  * - The current state for the given eCall
1571  *
1572  * @note The process exits, if an invalid eCall reference is given
1573  */
1574 //--------------------------------------------------------------------------------------------------
1576 (
1577  le_ecall_CallRef_t ecallRef
1578  ///< [IN] eCall reference
1579 );
1580 
1581 //--------------------------------------------------------------------------------------------------
1582 /**
1583  * Set the Public Safely Answering Point telephone number.
1584  *
1585  * @note That PSAP number is not applied to Manually or Automatically initiated eCall. For those
1586  * modes, an emergency call is launched.
1587  *
1588  * @warning This function doesn't modify the U/SIM content.
1589  *
1590  * @return
1591  * - LE_OK On success
1592  * - LE_FAULT For other failures
1593  * - LE_UNSUPPORTED Not supported on this platform
1594  *
1595  * @note If PSAP number is empty or too long (max LE_MDMDEFS_PHONE_NUM_MAX_LEN digits), it is a
1596  * fatal error, the function will not return.
1597  */
1598 //--------------------------------------------------------------------------------------------------
1600 (
1601  const char* LE_NONNULL psap
1602  ///< [IN] Public Safely Answering Point number
1603 );
1604 
1605 //--------------------------------------------------------------------------------------------------
1606 /**
1607  * Get the Public Safely Answering Point telephone number set with le_ecall_SetPsapNumber()
1608  * function.
1609  *
1610  * @note That PSAP number is not applied to Manually or Automatically initiated eCall. For those
1611  * modes, an emergency call is launched.
1612  *
1613  * @warning This function doesn't read the U/SIM content.
1614  *
1615  * @return
1616  * - LE_OK On success
1617  * - LE_FAULT On failures or if le_ecall_SetPsapNumber() has never been called before
1618  * * - LE_OVERFLOW Retrieved PSAP number is too long for the out parameter
1619  * - LE_UNSUPPORTED Not supported on this platform
1620  *
1621  * @note If the passed PSAP pointer is NULL, a fatal error is raised and the function will not
1622  * return.
1623  */
1624 //--------------------------------------------------------------------------------------------------
1626 (
1627  char* psap,
1628  ///< [OUT] Public Safely Answering Point telephone
1629  ///< number
1630  size_t psapSize
1631  ///< [IN]
1632 );
1633 
1634 //--------------------------------------------------------------------------------------------------
1635 /**
1636  * When modem is in ECALL_FORCED_PERSISTENT_ONLY_MODE or ECALL_ONLY_MODE, this function
1637  * can be called to request the modem to read the number to dial from the FDN/SDN of the U/SIM.
1638  *
1639  * @note If FDN directory is updated with new dial numbers, be sure that the SIM card is refreshed.
1640  *
1641  * @return
1642  * - LE_OK on success
1643  * - LE_FAULT for other failures
1644  */
1645 //--------------------------------------------------------------------------------------------------
1647 (
1648  void
1649 );
1650 
1651 //--------------------------------------------------------------------------------------------------
1652 /**
1653  * Set the NAD (network access device) deregistration time value. After termination of an emergency
1654  * call the in-vehicle system remains registered on the network for the period of time, defined by
1655  * the installation parameter NAD (network access device) deregistration time.
1656  *
1657  * @return
1658  * - LE_OK on success
1659  * - LE_FAULT on failure
1660  *
1661  * @note The formula to calculate NAD deregistration time for PAN_EUROPEAN is as below:
1662  * ECallConfiguration.nad_deregistration_time = (deregTime+59)/60;
1663  */
1664 //--------------------------------------------------------------------------------------------------
1666 (
1667  uint16_t deregTime
1668  ///< [IN] the NAD (network access device) deregistration time value (in minutes).
1669 );
1670 
1671 //--------------------------------------------------------------------------------------------------
1672 /**
1673  * Get the NAD (network access device) deregistration time value.
1674  *
1675  * @return
1676  * - LE_OK on success
1677  * - LE_FAULT on failure
1678  */
1679 //--------------------------------------------------------------------------------------------------
1681 (
1682  uint16_t* deregTimePtr
1683  ///< [OUT] the NAD (network access device) deregistration time value
1684 );
1685 
1686 //--------------------------------------------------------------------------------------------------
1687 /**
1688  * Set the minimum interval value between dial attempts.
1689  *
1690  * @return
1691  * - LE_OK on success
1692  * - LE_FAULT for other failures
1693  */
1694 //--------------------------------------------------------------------------------------------------
1696 (
1697  uint16_t pause
1698  ///< [IN] the minimum interval value in seconds
1699 );
1700 
1701 //--------------------------------------------------------------------------------------------------
1702 /**
1703  * Get the minimum interval value between dial attempts.
1704  *
1705  * @return
1706  * - LE_OK on success
1707  * - LE_FAULT for other failures
1708  */
1709 //--------------------------------------------------------------------------------------------------
1711 (
1712  uint16_t* pausePtr
1713  ///< [OUT] the minimum interval value in seconds
1714 );
1715 
1716 //--------------------------------------------------------------------------------------------------
1717 /**
1718  * Set the ECALL_MANUAL_DIAL_ATTEMPTS value. If a dial attempt under manual emergency call
1719  * initiation failed, it should be repeated maximally ECALL_MANUAL_DIAL_ATTEMPTS-1 times within
1720  * the maximal time limit of ECALL_DIAL_DURATION. The default value is 10.
1721  * Redial attempts stop once the call has been cleared down correctly, or if counter/timer reached
1722  * their limits.
1723  *
1724  * @return
1725  * - LE_OK on success
1726  * - LE_FAULT on failure
1727  */
1728 //--------------------------------------------------------------------------------------------------
1730 (
1731  uint16_t attempts
1732  ///< [IN] the ECALL_MANUAL_DIAL_ATTEMPTS value
1733 );
1734 
1735 //--------------------------------------------------------------------------------------------------
1736 /**
1737  * Set the ECALL_AUTO_DIAL_ATTEMPTS value. If a dial attempt under automatic emergency call
1738  * initiation failed, it should be repeated maximally ECALL_AUTO_DIAL_ATTEMPTS-1 times within
1739  * the maximal time limit of ECALL_DIAL_DURATION. The default value is 10.
1740  * Redial attempts stop once the call has been cleared down correctly, or if counter/timer reached
1741  * their limits.
1742  *
1743  * @return
1744  * - LE_OK on success
1745  * - LE_FAULT on failure
1746  */
1747 //--------------------------------------------------------------------------------------------------
1749 (
1750  uint16_t attempts
1751  ///< [IN] the ECALL_AUTO_DIAL_ATTEMPTS value
1752 );
1753 
1754 //--------------------------------------------------------------------------------------------------
1755 /**
1756  * Set the ECALL_DIAL_DURATION time. It's the maximum time the IVS have to connect the emergency
1757  * call to the PSAP, including all redial attempts.
1758  * If the call is not connected within this time (or ManualDialAttempts/AutoDialAttempts dial
1759  * attempts), it will stop.
1760  *
1761  * @return
1762  * - LE_OK on success
1763  * - LE_FAULT on failure
1764  * - LE_UNSUPPORTED if the function is not supported by the target
1765  */
1766 //--------------------------------------------------------------------------------------------------
1768 (
1769  uint16_t duration
1770  ///< [IN] the ECALL_DIAL_DURATION time value (in seconds)
1771 );
1772 
1773 //--------------------------------------------------------------------------------------------------
1774 /**
1775  * Set the ECALL_CCFT time. It's the maximum delay before initiating an an automatic call
1776  * termination.
1777  * When the delay is reached and IVS NAD didn't receive a call clear-down indication then the call
1778  * is immediatly terminated.
1779  *
1780  * @note Allowed range of values is 1 to 720 minutes.
1781  *
1782  * @return
1783  * - LE_OK on success
1784  * - LE_FAULT on failure
1785  * - LE_UNSUPPORTED if the function is not supported by the target
1786  */
1787 //--------------------------------------------------------------------------------------------------
1789 (
1790  uint16_t duration
1791  ///< [IN] the ECALL_CCFT time value (in minutes)
1792 );
1793 
1794 //--------------------------------------------------------------------------------------------------
1795 /**
1796  * Set the ECALL_AUTO_ANSWER_TIME time, the time interval wherein IVDS responds to incoming calls
1797  * automatically after emergency call completion.
1798  *
1799  * @note Default value of auto answer time is 20 minutes. Maximum value is 720 minutes.
1800  *
1801  * @return
1802  * - LE_OK on success
1803  * - LE_FAULT on failure
1804  * - LE_UNSUPPORTED if the function is not supported by the target
1805  */
1806 //--------------------------------------------------------------------------------------------------
1808 (
1809  uint16_t autoAnswerTime
1810  ///< [IN] The ECALL_AUTO_ANSWER_TIME time value (in minutes)
1811 );
1812 
1813 //--------------------------------------------------------------------------------------------------
1814 /**
1815  * Set the ECALL_MSD_MAX_TRANSMISSION_TIME time, the time period for MSD transmission.
1816  *
1817  * @note Default value of MSD transmission time is 20 seconds.
1818  *
1819  * @return
1820  * - LE_OK on success
1821  * - LE_FAULT on failure
1822  * - LE_UNSUPPORTED if the function is not supported by the target
1823  */
1824 //--------------------------------------------------------------------------------------------------
1826 (
1827  uint16_t msdMaxTransTime
1828  ///< [IN] The ECALL_MSD_MAX_TRANSMISSION_TIME time value (in seconds)
1829 );
1830 
1831 //--------------------------------------------------------------------------------------------------
1832 /**
1833  * Set the ERA-GLONASS ECALL_POST_TEST_REGISTRATION_TIME time.
1834  *
1835  * After completion of transmission of test diagnostics results in an eCall test session, the
1836  * in-vehicle system remains registered on the network for the period of time defined by the
1837  * ECALL_POST_TEST_REGISTRATION_TIME value.
1838  *
1839  * @note The ECALL_POST_TEST_REGISTRATION_TIME setting takes effect immediately and is persistent to
1840  * reset.
1841  *
1842  * @note An ECALL_POST_TEST_REGISTRATION_TIME value of zero means the IVS doesn't remain registered
1843  * after completion of transmission of test (diagnostics) results.
1844  *
1845  * @return
1846  * - LE_OK on success
1847  * - LE_FAULT on failure
1848  * - LE_UNSUPPORTED if the function is not supported by the target
1849  */
1850 //--------------------------------------------------------------------------------------------------
1852 (
1853  uint16_t postTestRegTime
1854  ///< [IN] The ECALL_POST_TEST_REGISTRATION_TIME time value (in seconds)
1855 );
1856 
1857 //--------------------------------------------------------------------------------------------------
1858 /**
1859  * Get the ECALL_MANUAL_DIAL_ATTEMPTS value.
1860  *
1861  * @return
1862  * - LE_OK on success
1863  * - LE_FAULT on failure
1864  */
1865 //--------------------------------------------------------------------------------------------------
1867 (
1868  uint16_t* attemptsPtr
1869  ///< [OUT] the ECALL_MANUAL_DIAL_ATTEMPTS value
1870 );
1871 
1872 //--------------------------------------------------------------------------------------------------
1873 /**
1874  * Get the ECALL_AUTO_DIAL_ATTEMPTS value.
1875  *
1876  * @return
1877  * - LE_OK on success
1878  * - LE_FAULT on failure
1879  */
1880 //--------------------------------------------------------------------------------------------------
1882 (
1883  uint16_t* attemptsPtr
1884  ///< [OUT] the ECALL_AUTO_DIAL_ATTEMPTS value
1885 );
1886 
1887 //--------------------------------------------------------------------------------------------------
1888 /**
1889  * Get the ECALL_DIAL_DURATION time.
1890  *
1891  * @return
1892  * - LE_OK on success
1893  * - LE_FAULT on failure
1894  */
1895 //--------------------------------------------------------------------------------------------------
1897 (
1898  uint16_t* durationPtr
1899  ///< [OUT] the ECALL_DIAL_DURATION time value (in seconds)
1900 );
1901 
1902 //--------------------------------------------------------------------------------------------------
1903 /**
1904  * Get the ECALL_CCFT time.
1905  *
1906  * @return
1907  * - LE_OK on success
1908  * - LE_FAULT on failure
1909  */
1910 //--------------------------------------------------------------------------------------------------
1912 (
1913  uint16_t* durationPtr
1914  ///< [OUT] the ECALL_CCFT time value (in minutes)
1915 );
1916 
1917 //--------------------------------------------------------------------------------------------------
1918 /**
1919  * Get the ECALL_AUTO_ANSWER_TIME time.
1920  *
1921  * @return
1922  * - LE_OK on success
1923  * - LE_FAULT on execution failure
1924  */
1925 //--------------------------------------------------------------------------------------------------
1927 (
1928  uint16_t* autoAnswerTimePtr
1929  ///< [OUT] The ECALL_AUTO_ANSWER_TIME time value (in minutes)
1930 );
1931 
1932 //--------------------------------------------------------------------------------------------------
1933 /**
1934  * Get the ECALL_MSD_MAX_TRANSMISSION_TIME time.
1935  *
1936  * @return
1937  * - LE_OK on success
1938  * - LE_FAULT on failure
1939  * - LE_UNSUPPORTED if the function is not supported by the target
1940  */
1941 //--------------------------------------------------------------------------------------------------
1943 (
1944  uint16_t* msdMaxTransTimePtr
1945  ///< [OUT] The ECALL_MSD_MAX_TRANSMISSION_TIME time value (in seconds)
1946 );
1947 
1948 //--------------------------------------------------------------------------------------------------
1949 /**
1950  * Get the ERA-GLONASS ECALL_POST_TEST_REGISTRATION_TIME time.
1951  *
1952  * @return
1953  * - LE_OK on success
1954  * - LE_FAULT on failure
1955  * - LE_UNSUPPORTED if the function is not supported by the target
1956  */
1957 //--------------------------------------------------------------------------------------------------
1959 (
1960  uint16_t* postTestRegTimePtr
1961  ///< [OUT] The ECALL_POST_TEST_REGISTRATION_TIME time value (in
1962  ///< seconds).
1963 );
1964 
1965 //--------------------------------------------------------------------------------------------------
1966 /**
1967  * Set the ERA-GLONASS crash severity parameter.
1968  *
1969  * @return
1970  * - LE_OK on success
1971  * - LE_DUPLICATE an MSD has been already imported
1972  * - LE_BAD_PARAMETER bad eCall reference
1973  * - LE_FAULT on other failures
1974  */
1975 //--------------------------------------------------------------------------------------------------
1977 (
1978  le_ecall_CallRef_t ecallRef,
1979  ///< [IN] eCall reference
1980  uint32_t crashSeverity
1981  ///< [IN] the ERA-GLONASS crash severity parameter
1982 );
1983 
1984 //--------------------------------------------------------------------------------------------------
1985 /**
1986  * Reset the ERA-GLONASS crash severity parameter. Therefore that optional parameter is not included
1987  * in the MSD message.
1988  *
1989  * @return
1990  * - LE_OK on success
1991  * - LE_DUPLICATE an MSD has been already imported
1992  * - LE_BAD_PARAMETER bad eCall reference
1993  * - LE_FAULT on other failures
1994  */
1995 //--------------------------------------------------------------------------------------------------
1997 (
1998  le_ecall_CallRef_t ecallRef
1999  ///< [IN] eCall reference
2000 );
2001 
2002 //--------------------------------------------------------------------------------------------------
2003 /**
2004  * Set the ERA-GLONASS diagnostic result using a bit mask.
2005  *
2006  * @return
2007  * - LE_OK on success
2008  * - LE_DUPLICATE an MSD has been already imported
2009  * - LE_BAD_PARAMETER bad eCall reference
2010  * - LE_FAULT on other failures
2011  */
2012 //--------------------------------------------------------------------------------------------------
2014 (
2015  le_ecall_CallRef_t ecallRef,
2016  ///< [IN] eCall reference
2017  le_ecall_DiagnosticResultBitMask_t diagnosticResultMask
2018  ///< [IN] ERA-GLONASS diagnostic result bit mask.
2019 );
2020 
2021 //--------------------------------------------------------------------------------------------------
2022 /**
2023  * Reset the ERA-GLONASS diagnostic result bit mask. Optional parameter is not
2024  * included in the MSD message.
2025  *
2026  * @return
2027  * - LE_OK on success
2028  * - LE_DUPLICATE an MSD has been already imported
2029  * - LE_BAD_PARAMETER bad eCall reference
2030  * - LE_FAULT on other failures
2031  */
2032 //--------------------------------------------------------------------------------------------------
2034 (
2035  le_ecall_CallRef_t ecallRef
2036  ///< [IN] eCall reference
2037 );
2038 
2039 //--------------------------------------------------------------------------------------------------
2040 /**
2041  * Set the ERA-GLONASS crash type bit mask
2042  *
2043  * @return
2044  * - LE_OK on success
2045  * - LE_DUPLICATE an MSD has been already imported
2046  * - LE_BAD_PARAMETER bad eCall reference
2047  * - LE_FAULT on other failures
2048  */
2049 //--------------------------------------------------------------------------------------------------
2051 (
2052  le_ecall_CallRef_t ecallRef,
2053  ///< [IN] eCall reference
2054  le_ecall_CrashInfoBitMask_t crashInfoMask
2055  ///< [IN] ERA-GLONASS crash type bit mask.
2056 );
2057 
2058 //--------------------------------------------------------------------------------------------------
2059 /**
2060  * Reset the ERA-GLONASS crash type bit mask. Optional parameter is not included
2061  * in the MSD message.
2062  *
2063  * @return
2064  * - LE_OK on success
2065  * - LE_DUPLICATE an MSD has been already imported
2066  * - LE_BAD_PARAMETER bad eCall reference
2067  * - LE_FAULT on other failures
2068  */
2069 //--------------------------------------------------------------------------------------------------
2071 (
2072  le_ecall_CallRef_t ecallRef
2073  ///< [IN] eCall reference
2074 );
2075 
2076 //--------------------------------------------------------------------------------------------------
2077 /**
2078  * Set the ERA-GLONASS coordinate system type.
2079  *
2080  * @return
2081  * - LE_OK on success
2082  * - LE_DUPLICATE an MSD has been already imported
2083  * - LE_BAD_PARAMETER bad eCall reference
2084  * - LE_FAULT on other failures
2085  */
2086 //--------------------------------------------------------------------------------------------------
2088 (
2089  le_ecall_CallRef_t ecallRef,
2090  ///< [IN] eCall reference
2091  le_ecall_MsdCoordinateType_t coordinateSystemType
2092  ///< [IN] the ERA-GLONASS coordinate system type
2093 );
2094 
2095 //--------------------------------------------------------------------------------------------------
2096 /**
2097  * Reset the ERA-GLONASS coordinate system type. Therefore that optional parameter is not included
2098  * in the MSD message.
2099  *
2100  * @return
2101  * - LE_OK on success
2102  * - LE_DUPLICATE an MSD has been already imported
2103  * - LE_BAD_PARAMETER bad eCall reference
2104  * - LE_FAULT on other failures
2105  */
2106 //--------------------------------------------------------------------------------------------------
2108 (
2109  le_ecall_CallRef_t ecallRef
2110  ///< [IN] eCall reference
2111 );
2112 
2113 //--------------------------------------------------------------------------------------------------
2114 /**
2115  * Called to get the termination reason.
2116  *
2117  * @return The termination reason.
2118  *
2119  * @note If the caller is passing a bad pointer into this function, it is a fatal error, the
2120  * function will not return.
2121  */
2122 //--------------------------------------------------------------------------------------------------
2124 (
2125  le_ecall_CallRef_t ecallRef
2126  ///< [IN] eCall reference.
2127 );
2128 
2129 //--------------------------------------------------------------------------------------------------
2130 /**
2131  * Called to get the platform specific termination code.
2132  *
2133  * @return The platform specific termination code.
2134  *
2135  * @note If the caller is passing a bad pointer into this function, it is a fatal error, the
2136  * function will not return.
2137  */
2138 //--------------------------------------------------------------------------------------------------
2140 (
2141  le_ecall_CallRef_t ecallRef
2142  ///< [IN] eCall reference.
2143 );
2144 
2145 #endif // LE_ECALL_INTERFACE_H_INCLUDE_GUARD
End of the redial period.
Definition: le_ecall_interface.h:762
le_ecall_OpMode_t
Definition: le_ecall_interface.h:690
Motorcycles (Class L3e)
Definition: le_ecall_interface.h:820
AL-ACK clear-down received.
Definition: le_ecall_interface.h:749
Present Left collision indicator.
Definition: le_ecall_interface.h:916
int32_t le_ecall_GetPlatformSpecificTerminationCode(le_ecall_CallRef_t ecallRef)
le_result_t le_ecall_SetMsdVersion(uint32_t msdVersion)
le_result_t le_ecall_StartTest(le_ecall_CallRef_t ecallRef)
le_result_t le_ecall_SetMsdPositionN2(le_ecall_CallRef_t ecallRef, int32_t latitudeDeltaN2, int32_t longitudeDeltaN2)
Persistent eCall only mode.
Definition: le_ecall_interface.h:697
Timeout for Timer T5 (see CEN-EN 16062, annex A)
Definition: le_ecall_interface.h:768
le_result_t le_ecall_SetPsapNumber(const char *LE_NONNULL psap)
Motorcycles (Class L1e)
Definition: le_ecall_interface.h:816
Present Battery failure.
Definition: le_ecall_interface.h:876
Definition: le_ecall_interface.h:756
le_result_t le_ecall_ForceOnlyMode(void)
Present Right speaker failure.
Definition: le_ecall_interface.h:864
Front collision indicator.
Definition: le_ecall_interface.h:915
le_result_t le_ecall_SendMsd(le_ecall_CallRef_t ecallRef)
le_result_t le_ecall_ResetMsdEraGlonassCrashSeverity(le_ecall_CallRef_t ecallRef)
le_result_t le_ecall_SetEraGlonassDialDuration(uint16_t duration)
le_result_t le_ecall_GetMsdVersion(uint32_t *msdVersionPtr)
Present Comm module interface failure.
Definition: le_ecall_interface.h:884
Present Other critical failures.
Definition: le_ecall_interface.h:898
Diesel propulsion.
Definition: le_ecall_interface.h:842
le_result_t le_ecall_SetMsdEraGlonassDiagnosticResult(le_ecall_CallRef_t ecallRef, le_ecall_DiagnosticResultBitMask_t diagnosticResultMask)
MSD transmission has failed.
Definition: le_ecall_interface.h:745
le_result_t le_ecall_GetEraGlonassAutoAnswerTime(uint16_t *autoAnswerTimePtr)
Definition: le_ecall_interface.h:694
ERA GLONASS standard.
Definition: le_ecall_interface.h:712
Unknown state.
Definition: le_ecall_interface.h:725
Present Battery voltage low failure.
Definition: le_ecall_interface.h:878
le_result_t
Definition: le_basics.h:35
Motorcycles (Class L5e)
Definition: le_ecall_interface.h:824
le_result_t le_ecall_SetMsdEraGlonassCrashSeverity(le_ecall_CallRef_t ecallRef, uint32_t crashSeverity)
le_ecall_MsdVehicleType_t
Definition: le_ecall_interface.h:802
le_result_t le_ecall_ForcePersistentOnlyMode(void)
Motorcycles (Class L6e)
Definition: le_ecall_interface.h:826
Front or side collision indicator.
Definition: le_ecall_interface.h:927
le_result_t le_ecall_SetMsdTxMode(le_ecall_MsdTxMode_t mode)
void le_ecall_ConnectService(void)
Timeout for Timer T10 (see CEN-EN 16062, annex A)
Definition: le_ecall_interface.h:776
Firmware image corruption failure status.
Definition: le_ecall_interface.h:883
le_mcc_TerminationReason_t
Definition: le_mcc_interface.h:262
Present Side collision indicator.
Definition: le_ecall_interface.h:924
Present Mic connection failure.
Definition: le_ecall_interface.h:860
Right speaker failure status.
Definition: le_ecall_interface.h:865
Present Right collision indicator.
Definition: le_ecall_interface.h:918
Other critical failures status.
Definition: le_ecall_interface.h:899
Crash profile memory overflow status.
Definition: le_ecall_interface.h:897
le_result_t le_ecall_SetEraGlonassMSDMaxTransmissionTime(uint16_t msdMaxTransTime)
le_result_t le_ecall_GetMsdTxMode(le_ecall_MsdTxMode_t *modePtr)
LL-NACK received.
Definition: le_ecall_interface.h:739
le_result_t le_ecall_GetVehicleType(le_ecall_MsdVehicleType_t *vehicleTypePtr)
le_result_t le_ecall_GetEraGlonassPostTestRegistrationTime(uint16_t *postTestRegTimePtr)
Present Crash profile memory overflow.
Definition: le_ecall_interface.h:896
Present Front or side collision indicator.
Definition: le_ecall_interface.h:926
le_result_t le_ecall_ResetMsdEraGlonassCrashInfo(le_ecall_CallRef_t ecallRef)
Left speaker failure status.
Definition: le_ecall_interface.h:867
Rollover indicator.
Definition: le_ecall_interface.h:923
Present Other not critical failures.
Definition: le_ecall_interface.h:900
Ignition line failure status.
Definition: le_ecall_interface.h:871
void(* le_ecall_StateChangeHandlerFunc_t)(le_ecall_CallRef_t ecallRef, le_ecall_State_t state, void *contextPtr)
Definition: le_ecall_interface.h:966
Pull mode (modem/host waits for MSD request from PSAP to send MSD).
Definition: le_ecall_interface.h:789
le_result_t le_ecall_ResetMsdEraGlonassCoordinateSystemType(le_ecall_CallRef_t ecallRef)
Side collision indicator.
Definition: le_ecall_interface.h:925
struct le_ecall_StateChangeHandler * le_ecall_StateChangeHandlerRef_t
Definition: le_ecall_interface.h:956
le_ecall_CrashInfoBitMask_t
Definition: le_ecall_interface.h:912
le_result_t le_ecall_GetConfiguredOperationMode(le_ecall_OpMode_t *opModePtr)
GNSS antenna failure status.
Definition: le_ecall_interface.h:891
le_result_t le_ecall_SetNadDeregistrationTime(uint16_t deregTime)
Present GNSS receiver failure.
Definition: le_ecall_interface.h:886
le_result_t le_ecall_GetEraGlonassMSDMaxTransmissionTime(uint16_t *msdMaxTransTimePtr)
void le_ecall_SetServerDisconnectHandler(le_ecall_DisconnectHandler_t disconnectHandler, void *contextPtr)
Normal mode.
Definition: le_ecall_interface.h:692
RAIM problem status.
Definition: le_ecall_interface.h:889
void le_ecall_DisconnectService(void)
PAN-EUROPEAN standard.
Definition: le_ecall_interface.h:710
le_result_t le_ecall_GetEraGlonassFallbackTime(uint16_t *durationPtr)
Push mode (modem/host sends MSD to PSAP right after eCall is connected).
Definition: le_ecall_interface.h:791
le_result_t le_ecall_SetEraGlonassAutoDialAttempts(uint16_t attempts)
Other types of damage indicator.
Definition: le_ecall_interface.h:929
UIM failure status.
Definition: le_ecall_interface.h:873
Battery failure status.
Definition: le_ecall_interface.h:877
le_result_t le_ecall_SetEraGlonassManualDialAttempts(uint16_t attempts)
Timeout for Timer T6 (see CEN-EN 16062, annex A)
Definition: le_ecall_interface.h:770
Speaker failure status.
Definition: le_ecall_interface.h:869
Liquid propane gas propulsion.
Definition: le_ecall_interface.h:844
PSAP start indication received.
Definition: le_ecall_interface.h:735
Motorcycles (Class L4e)
Definition: le_ecall_interface.h:822
Light commercial vehicles (Class N1)
Definition: le_ecall_interface.h:810
Gasoline propulsion)
Definition: le_ecall_interface.h:841
le_mcc_TerminationReason_t le_ecall_GetTerminationReason(le_ecall_CallRef_t ecallRef)
le_result_t le_ecall_SetMsdEraGlonassCoordinateSystemType(le_ecall_CallRef_t ecallRef, le_ecall_MsdCoordinateType_t coordinateSystemType)
void le_ecall_RemoveStateChangeHandler(le_ecall_StateChangeHandlerRef_t handlerRef)
le_ecall_DiagnosticResultBitMask_t
Definition: le_ecall_interface.h:858
Present RAIM problem.
Definition: le_ecall_interface.h:888
Hydrogen propulsion.
Definition: le_ecall_interface.h:846
Present Front collision indicator.
Definition: le_ecall_interface.h:914
Other not critical failures status.
Definition: le_ecall_interface.h:901
le_result_t le_ecall_SetMsdPassengersCount(le_ecall_CallRef_t ecallRef, uint32_t paxCount)
Timeout for Timer T3 (see CEN-EN 16062, annex A)
Definition: le_ecall_interface.h:766
Coordinate system type WGS-84.
Definition: le_ecall_interface.h:943
Present Other types of damage indicator.
Definition: le_ecall_interface.h:928
le_ecall_State_t le_ecall_GetState(le_ecall_CallRef_t ecallRef)
LL-ACK received.
Definition: le_ecall_interface.h:741
Waiting for PSAP start indication.
Definition: le_ecall_interface.h:733
le_result_t le_ecall_End(le_ecall_CallRef_t ecallRef)
struct le_ecall_Call * le_ecall_CallRef_t
Definition: le_ecall_interface.h:682
le_result_t le_ecall_StartManual(le_ecall_CallRef_t ecallRef)
le_result_t le_ecall_ResetMsdEraGlonassDiagnosticResult(le_ecall_CallRef_t ecallRef)
MSD transmission is complete.
Definition: le_ecall_interface.h:743
le_result_t le_ecall_GetSystemStandard(le_ecall_SystemStandard_t *systemStandardPtr)
Timeout for Timer T7 (see CEN-EN 16062, annex A)
Definition: le_ecall_interface.h:772
Comm module failure status.
Definition: le_ecall_interface.h:893
le_ecall_SystemStandard_t
Definition: le_ecall_interface.h:708
le_result_t le_ecall_SetMsdEraGlonassCrashInfo(le_ecall_CallRef_t ecallRef, le_ecall_CrashInfoBitMask_t crashInfoMask)
Events memory overflow status.
Definition: le_ecall_interface.h:895
Timeout for Timer T2 (see CEN-EN 16062, annex A)
Definition: le_ecall_interface.h:764
Present GNSS antenna failure.
Definition: le_ecall_interface.h:890
void(* le_ecall_DisconnectHandler_t)(void *)
Definition: le_ecall_interface.h:578
Heavy duty vehicles (Class N2)
Definition: le_ecall_interface.h:812
le_result_t le_ecall_SetMsdPosition(le_ecall_CallRef_t ecallRef, bool isTrusted, int32_t latitude, int32_t longitude, int32_t direction)
le_result_t le_ecall_SetVehicleType(le_ecall_MsdVehicleType_t vehicleType)
Present Rollover indicator.
Definition: le_ecall_interface.h:922
le_ecall_CallRef_t le_ecall_Create(void)
Status indicator failure status.
Definition: le_ecall_interface.h:875
Present UIM failure.
Definition: le_ecall_interface.h:872
Present indicator.
Definition: le_ecall_interface.h:920
MSD transmission is started.
Definition: le_ecall_interface.h:737
le_result_t le_ecall_ImportMsd(le_ecall_CallRef_t ecallRef, const uint8_t *msdPtr, size_t msdSize)
eCall session started.
Definition: le_ecall_interface.h:727
Heavy duty vehicles (Class N3)
Definition: le_ecall_interface.h:814
Present Left speaker failure.
Definition: le_ecall_interface.h:866
Rear impact indicator.
Definition: le_ecall_interface.h:921
Present Mic failure.
Definition: le_ecall_interface.h:862
le_result_t le_ecall_UseUSimNumbers(void)
Buses and coaches (Class M3)
Definition: le_ecall_interface.h:808
le_result_t le_ecall_GetEraGlonassManualDialAttempts(uint16_t *attemptsPtr)
Present Status indicator failure.
Definition: le_ecall_interface.h:874
Mic failure status.
Definition: le_ecall_interface.h:863
le_result_t le_ecall_GetNadDeregistrationTime(uint16_t *deregTimePtr)
Right collision indicator.
Definition: le_ecall_interface.h:919
le_result_t le_ecall_GetEraGlonassAutoDialAttempts(uint16_t *attemptsPtr)
Emergency call is established.
Definition: le_ecall_interface.h:729
Unsuccessful eCall session.
Definition: le_ecall_interface.h:760
le_result_t le_ecall_ExitOnlyMode(void)
le_result_t le_ecall_SetMsdPositionN1(le_ecall_CallRef_t ecallRef, int32_t latitudeDeltaN1, int32_t longitudeDeltaN1)
Buses and coaches (Class M2)
Definition: le_ecall_interface.h:806
le_result_t le_ecall_GetPropulsionType(le_ecall_PropulsionTypeBitMask_t *propulsionTypePtr)
Present Crash sensor failure.
Definition: le_ecall_interface.h:880
Motorcycles (Class L7e)
Definition: le_ecall_interface.h:828
le_ecall_MsdCoordinateType_t
Definition: le_ecall_interface.h:939
le_result_t le_ecall_GetEraGlonassDialDuration(uint16_t *durationPtr)
Present Speaker failure.
Definition: le_ecall_interface.h:868
AL-ACK received.
Definition: le_ecall_interface.h:747
Battery voltage low failure status.
Definition: le_ecall_interface.h:879
le_ecall_State_t
Definition: le_ecall_interface.h:723
le_ecall_MsdTxMode_t
Definition: le_ecall_interface.h:787
le_result_t le_ecall_SetIntervalBetweenDialAttempts(uint16_t pause)
Emergency call is disconnected.
Definition: le_ecall_interface.h:731
Definition: le_ecall_interface.h:751
Present Events memory overflow.
Definition: le_ecall_interface.h:894
Compressed natural gas propulsion.
Definition: le_ecall_interface.h:843
le_result_t le_ecall_StartAutomatic(le_ecall_CallRef_t ecallRef)
Comm module interface failure status.
Definition: le_ecall_interface.h:885
Electric propulsion.
Definition: le_ecall_interface.h:845
GNSS receiver failure status.
Definition: le_ecall_interface.h:887
Coordinate system type PZ-90.
Definition: le_ecall_interface.h:945
eCall session has lost synchronization and starts over.
Definition: le_ecall_interface.h:754
Present Comm module failure.
Definition: le_ecall_interface.h:892
Other type of propulsions.
Definition: le_ecall_interface.h:847
Passenger vehicle (Class M1)
Definition: le_ecall_interface.h:804
le_result_t le_ecall_SetEraGlonassPostTestRegistrationTime(uint16_t postTestRegTime)
Timeout for Timer T9 (see CEN-EN 16062, annex A)
Definition: le_ecall_interface.h:774
Mic connection failure status.
Definition: le_ecall_interface.h:861
le_result_t le_ecall_SetEraGlonassAutoAnswerTime(uint16_t autoAnswerTime)
le_result_t le_ecall_TryConnectService(void)
le_result_t le_ecall_SetVIN(const char *LE_NONNULL vin)
le_ecall_StateChangeHandlerRef_t le_ecall_AddStateChangeHandler(le_ecall_StateChangeHandlerFunc_t handlerPtr, void *contextPtr)
le_result_t le_ecall_ExportMsd(le_ecall_CallRef_t ecallRef, uint8_t *msdPtr, size_t *msdSizePtr)
le_result_t le_ecall_SetEraGlonassFallbackTime(uint16_t duration)
Coordinate system type is absent.
Definition: le_ecall_interface.h:941
Left collision indicator.
Definition: le_ecall_interface.h:917
le_result_t le_ecall_GetPsapNumber(char *psap, size_t psapSize)
Motorcycles (Class L2e)
Definition: le_ecall_interface.h:818
le_result_t le_ecall_GetVIN(char *vin, size_t vinSize)
Present Firmware image corruption failure.
Definition: le_ecall_interface.h:882
void le_ecall_Delete(le_ecall_CallRef_t ecallRef)
le_result_t le_ecall_SetSystemStandard(le_ecall_SystemStandard_t systemStandard)
Present Ignition line failure.
Definition: le_ecall_interface.h:870
le_result_t le_ecall_SetPropulsionType(le_ecall_PropulsionTypeBitMask_t propulsionType)
le_ecall_PropulsionTypeBitMask_t
Definition: le_ecall_interface.h:839
le_result_t le_ecall_GetIntervalBetweenDialAttempts(uint16_t *pausePtr)
Crash sensor failure status.
Definition: le_ecall_interface.h:881