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