d0ace60c61eb5a7bf75ecc4cab1276390740946d
[staging/basesystem.git] / service / system / interface_unified / library / include / system_service / ss_power_service_if.h
1 /*
2  * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 /**
18  * @file ss_power_service_if.h
19  * @brief \~english This file supports the Power Service client interface.
20  */
21 /**
22  * @file
23  */
24 /** @addtogroup BaseSystem
25  *  @{
26  */
27 /** @addtogroup system_service
28  *  @ingroup BaseSystem
29  *  @{
30  */
31 /** @addtogroup power_service
32  *  @ingroup system_service
33  *  @{
34  */
35
36 #ifndef POWER_SERVICE_CLIENT_INCLUDE_SYSTEM_SERVICE_SS_POWER_SERVICE_IF_H_  // NOLINT (build/header_guard)
37 #define POWER_SERVICE_CLIENT_INCLUDE_SYSTEM_SERVICE_SS_POWER_SERVICE_IF_H_
38
39 #include "system_service/ss_power_service.h"
40 #include "system_service/ss_power_service_protocol.h"
41
42
43 ////////////////////////////////////////////////////////////////////////////////////////////
44 /// \ingroup OpenPowerService
45 /// \~english @par Summary
46 ///       Obtain a handle for using the PowerService.
47 /// \~english @param [in] f_hApp
48 ///       HANDLE    - Application handle
49 /// \~english @retval Handle     Success
50 /// \~english @retval NULL       Failed
51 /// \~english @par Classification
52 ///       Public
53 /// \~english @par Type
54 ///       Sync only(None communication)
55 /// \~english @par Detail
56 ///       - The API creates a communication resource between
57 ///         the user service and the PowerService
58 ///         and returns a handle for using the PowerService.\n
59 ///       \n
60 ///       - Include    ss_power_service_ifc.h
61 ///       - Library    libSS_PowerServiceIf.so
62 /// \~english @see
63 ///       None
64 ////////////////////////////////////////////////////////////////////////////////////////////
65 HANDLE OpenPowerService(HANDLE f_hApp);
66
67 ////////////////////////////////////////////////////////////////////////////////////////////
68 /// \ingroup ClosePowerService
69 /// \~english @par Summary
70 ///       Free a handle for using PowerService.
71 /// \~english @param [in] f_hApp
72 ///       HANDLE    - Application handle
73 /// \~english @param [in] f_hService
74 ///       HANDLE    - PowerService handle
75 /// \~english @retval eFrameworkunifiedStatusOK             Success
76 /// \~english @retval eFrameworkunifiedStatusInvldHandle    Invalid handle
77 /// \~english @retval eFrameworkunifiedStatusFail           Failed
78 /// \~english @par Classification
79 ///       Public
80 /// \~english @par Type
81 ///       Sync only
82 /// \~english @par Detail
83 ///       - The API terminates the communication resource between
84 ///         the user service and the PowerServiceand frees the given handle. \n
85 ///       \n
86 ///       - Include    ss_power_service_ifc.h
87 ///       - Library    libSS_PowerServiceIf.so
88 /// \~english @see
89 ///       None
90 ////////////////////////////////////////////////////////////////////////////////////////////
91 EFrameworkunifiedStatus ClosePowerService(HANDLE f_hApp, HANDLE f_hService);
92
93 ////////////////////////////////////////////////////////////////////////////////////////////
94 /// \ingroup PwrServiceOpenSessionRequest
95 /// \~english @par Summary
96 ///       Make the PowerService available.
97 /// \~english @param [in] f_hService
98 ///       HANDLE    - PowerService handle
99 /// \~english @param [in] f_eSessionType
100 ///       EPWR_SESSION_TYPE    - Session type
101 /// \~english @retval eFrameworkunifiedStatusOK             Success
102 /// \~english @retval eFrameworkunifiedStatusInvldHandle    Invalid handle
103 /// \~english @retval eFrameworkunifiedStatusInvldParam     Invalid parameter
104 /// \~english @retval eFrameworkunifiedStatusFail           Failed
105 /// \~english @par Classification
106 ///       Public
107 /// \~english @par Type
108 ///       Fire and Forget x Method
109 /// \~english @par Detail
110 ///       - The API opens a session between the user service
111 ///         and the PowerService and makes the PowerService available. \n
112 ///       \n
113 ///       - Include    ss_power_service_ifc.h
114 ///       - Library    libSS_PowerServiceIf.so
115 /// \~english @see
116 ///       None
117 ////////////////////////////////////////////////////////////////////////////////////////////
118 EFrameworkunifiedStatus PwrServiceOpenSessionRequest(HANDLE f_hService,
119                                         EPWR_SESSION_TYPE f_eSessionType);
120
121 ////////////////////////////////////////////////////////////////////////////////////////////
122 /// \ingroup PwrServiceCloseSessionRequest
123 /// \~english @par Summary
124 ///       End using the PowerService.
125 /// \~english @param [in] f_hService
126 ///       HANDLE    - PowerService handle
127 /// \~english @param [in] f_hSession
128 ///       HANDLE    - Session type
129 /// \~english @retval eFrameworkunifiedStatusOK             Success
130 /// \~english @retval eFrameworkunifiedStatusInvldHandle    Invalid handle
131 /// \~english @retval eFrameworkunifiedStatusFail           Failed
132 /// \~english @par Classification
133 ///       Public
134 /// \~english @par Type
135 ///       Fire and Forget x Method
136 /// \~english @par Detail
137 ///       - The API closes the session between the user service
138 ///         and the PowerService and terminatesthe PowerSerivce use. \n
139 ///       \n
140 ///       - Include    ss_power_service_ifc.h
141 ///       - Library    libSS_PowerServiceIf.so
142 /// \~english @see
143 ///       None
144 ////////////////////////////////////////////////////////////////////////////////////////////
145 EFrameworkunifiedStatus PwrServiceCloseSessionRequest(HANDLE f_hService, HANDLE f_hSession);
146
147 ////////////////////////////////////////////////////////////////////////////////////////////
148 /// \ingroup PwrServiceDecodeOpenSessionResponse
149 /// \~english @par Summary
150 ///       Obtain a handle for OpenSessionRequest response message.
151 /// \~english @param [in] f_hApp
152 ///       HANDLE     - Application handle
153 /// \~english @param [in] f_hSession
154 ///       HANDLE&    - Address of storing session handle
155 /// \~english @retval eFrameworkunifiedStatusOK             Success
156 /// \~english @retval eFrameworkunifiedStatusInvldHandle    Invalid handle
157 /// \~english @retval eFrameworkunifiedStatusNullPointer    NULL Pointer
158 /// \~english @par Classification
159 ///       Public
160 /// \~english @par Type
161 ///       Sync only(None communication)
162 /// \~english @par Detail
163 ///       - The API obtains a handle for OpenSessionRequest
164 ///         response message using the given application handle.\n
165 ///       \n
166 ///       - Include    ss_power_service_ifc.h
167 ///       - Library    libSS_PowerServiceIf.so
168 /// \~english @see
169 ///       None
170 ////////////////////////////////////////////////////////////////////////////////////////////
171 EFrameworkunifiedStatus PwrServiceDecodeOpenSessionResponse(HANDLE f_hApp,
172                                                HANDLE& f_hSession);  // NOLINT (runtime/references)
173
174 ////////////////////////////////////////////////////////////////////////////////////////////
175 /// \ingroup PwrServiceSetVoltageState
176 /// \~english @par Summary
177 ///       Set power supply state.
178 /// \~english @param [in] f_hSession
179 ///       HANDLE    - Session handle
180 /// \~english @param [in] f_eVoltage_state
181 ///       EPWR_VOLTAGE_STATE_TYPE    - Power supply status value
182 /// \~english @par
183 ///       - Power supply status value
184 ///         <table>
185 ///         <tr bgcolor="black"><th>Name</th><th>Value</th></tr>
186 ///         <tr><td>epsvsINVALID</td><td>0xFF</td></tr>
187 ///         <tr><td>epsvsNORMAL</td><td>0x20</td></tr>
188 ///         <tr><td>epsvsLVI1</td><td>0x22</td></tr>
189 ///         <tr><td>epsvsLVI2</td><td>0x24</td></tr>
190 ///         </table>
191 /// \~english @retval eFrameworkunifiedStatusOK             Success
192 /// \~english @retval eFrameworkunifiedStatusInvldHandle    Invalid handle
193 /// \~english @retval eFrameworkunifiedStatusInvldParam     Invalid parameter
194 /// \~english @retval eFrameworkunifiedStatusFail           Failed
195 /// \~english @par Classification
196 ///       Public
197 /// \~english @par Type
198 ///       Method only
199 /// \~english @par Detail
200 ///       - The API sets power supply state to the PowerService. \n
201 ///       \n
202 ///       - Include    ss_power_service_ifc.h
203 ///       - Library    libSS_PowerServiceIf.so
204 /// \~english @see
205 ///       None
206 ////////////////////////////////////////////////////////////////////////////////////////////
207 EFrameworkunifiedStatus PwrServiceSetVoltageState(HANDLE f_hSession,
208                     EPWR_VOLTAGE_STATE_TYPE  f_eVoltage_state);
209
210 ////////////////////////////////////////////////////////////////////////////////////////////
211 /// \ingroup PwrServiceSetCrankState
212 /// \~english @par Summary
213 ///       Set crank state.
214 /// \~english @param [in] f_hSession
215 ///       HANDLE    - Session handle
216 /// \~english @param [in] f_eCrank_state
217 ///       EPWR_CRANK_STATE_TYPE    - Crank state value
218 /// \~english @par
219 ///       - Crank state value
220 ///         <table>
221 ///         <tr bgcolor="black"><th>Name</th><th>Value</th></tr>
222 ///         <tr><td>epscsINVALID</td><td>0xFF</td></tr>
223 ///         <tr><td>epscsENTRY</td><td>0xA0</td></tr>
224 ///         <tr><td>epscsEXIT</td><td>0xA2</td></tr>
225 ///         </table>
226 /// \~english @retval eFrameworkunifiedStatusOK             Success
227 /// \~english @retval eFrameworkunifiedStatusInvldHandle    Invalid handle
228 /// \~english @retval eFrameworkunifiedStatusInvldParam     Invalid parameter
229 /// \~english @retval eFrameworkunifiedStatusFail           Failed
230 /// \~english @par Classification
231 ///       Public
232 /// \~english @par Type
233 ///       Fire and Forget only
234 /// \~english @par Detail
235 ///       - The API sets crank state to the PowerService.\n
236 ///       \n
237 ///       - Include    ss_power_service_ifc.h
238 ///       - Library    libSS_PowerServiceIf.so
239 /// \~english @see
240 ///       None
241 ////////////////////////////////////////////////////////////////////////////////////////////
242 EFrameworkunifiedStatus PwrServiceSetCrankState(HANDLE f_hSession,
243                   EPWR_CRANK_STATE_TYPE f_eCrank_state);
244
245 ////////////////////////////////////////////////////////////////////////////////////////////
246 /// \ingroup PwrServiceSystemModeInfoRequest
247 /// \~english @par Summary
248 ///       Request to obtain the system mode information.
249 /// \~english @param [in] f_hSession
250 ///       HANDLE    - Session handle
251 /// \~english @retval eFrameworkunifiedStatusOK             Success
252 /// \~english @retval eFrameworkunifiedStatusInvldHandle    Invalid handle
253 /// \~english @retval eFrameworkunifiedStatusFail           Failed
254 /// \~english @par Classification
255 ///       Public
256 /// \~english @par Type
257 ///       Method x Method
258 /// \~english @par Detail
259 ///       - The API requests the PowerService to obtain
260 ///         the system mode information.\n
261 ///       \n
262 ///       - Include    ss_power_service_ifc.h
263 ///       - Library    libSS_PowerServiceIf.so
264 /// \~english @see
265 ///       None
266 ////////////////////////////////////////////////////////////////////////////////////////////
267 EFrameworkunifiedStatus PwrServiceSystemModeInfoRequest(HANDLE f_hSession);
268
269 ////////////////////////////////////////////////////////////////////////////////////////////
270 /// \ingroup PwrServiceSendInitCompReport
271 /// \~english @par Summary
272 ///       Send an initialize complete response.
273 /// \~english @param [in] f_hSession
274 ///       HANDLE    - Session handle
275 /// \~english @retval eFrameworkunifiedStatusOK             Success
276 /// \~english @retval eFrameworkunifiedStatusInvldHandle    Invalid handle
277 /// \~english @retval eFrameworkunifiedStatusFail           Failed
278 /// \~english @par Classification
279 ///       Public
280 /// \~english @par Type
281 ///       Fire and Forgeat x Fire and Forget
282 /// \~english @par Detail
283 ///       - The API sends an initialize complete response to the PowerService.\n
284 ///       \n
285 ///       - Include    ss_power_service_ifc.h
286 ///       - Library    libSS_PowerServiceIf.so
287 /// \~english @see
288 ///       None
289 ////////////////////////////////////////////////////////////////////////////////////////////
290 EFrameworkunifiedStatus PwrServiceSendInitCompReport(HANDLE f_hSession);
291
292 ////////////////////////////////////////////////////////////////////////////////////////////
293 /// \ingroup PwrServiceSendSetShutdownPopupRequest
294 /// \~english @par Summary
295 ///       Obtain shutdown state.
296 /// \~english @param [in] f_hSession
297 ///       HANDLE    - Session handle
298 /// \~english @param [in] f_eShutdownPopup
299 ///       EPWR_SHUTDOWN_POPUP_TYPE    - Shutdown state
300 /// \~english @retval eFrameworkunifiedStatusOK             Success
301 /// \~english @retval eFrameworkunifiedStatusInvldHandle    Invalid handle
302 /// \~english @retval eFrameworkunifiedStatusInvldParam     Invalid parameter
303 /// \~english @retval eFrameworkunifiedStatusFail           Failed
304 /// \~english @par Classification
305 ///       Public
306 /// \~english @par Type
307 ///       Method only
308 /// \~english @par Detail
309 ///       - The API obtains the shutdown state from the PowerService. \n
310 ///       \n
311 ///       - Include    ss_power_service_ifc.h
312 ///       - Library    libSS_PowerServiceIf.so
313 /// \~english @see
314 ///       None
315 ////////////////////////////////////////////////////////////////////////////////////////////
316 EFrameworkunifiedStatus PwrServiceSendSetShutdownPopupRequest(HANDLE f_hSession,
317                              EPWR_SHUTDOWN_POPUP_TYPE f_eShutdownPopup);
318
319 ////////////////////////////////////////////////////////////////////////////////////////////
320 /// \ingroup PwrServiceSendStartupConfirmationMsgRequest
321 /// \~english @par Summary
322 ///       Send startup confirmation request.
323 /// \~english @param [in] f_hSession
324 ///       HANDLE    - Session handle
325 /// \~english @param [in] f_eState
326 ///       EPWR_SC_MSG_STRUCT
327 ///       - Address of the structure for startup confirmation request message
328 /// \~english @par
329 ///       - Structure for startup confirmation request message
330 /// \~english @code
331 ///       typedef struct {
332 ///           EPWR_SC__CWORD56__BOOT_MODE_TYPE _CWORD56_BootMode;
333 ///           EPWR_SC_WAKEUP_TYPE         wakeupType;
334 ///           EPWR_SC_COLD_START_REQ_TYPE coldStartRequest;
335 ///           EPWR_SC_SECURITY_STATUS     securityStatus;
336 ///           UI_32                       HWVersion;
337 ///           UI_32                       matchedHardwareType;
338 ///           UI_32                       softwareType;
339 ///           UI_32                       imageType;
340 ///           UI_32                       majorVersion;
341 ///           UI_32                       minorVersion;
342 ///           UI_32                       SWVersionYear;
343 ///           UI_32                       SWVersionWeek;
344 ///           UI_32                       SWVersionPatchLevel;
345 ///       } StartupConfirmationMsgStrut, EPWR_SC_MSG_STRUCT;
346 ///            @endcode\n
347 ///       \n
348 ///       - EPWR_SC__CWORD56__BOOT_MODE_TYPE
349 ///         <table>
350 ///         <tr bgcolor="black"><th>Name</th><th>Value</th></tr>
351 ///         <tr><td>eps_CWORD56_bmINVALID</td><td>0xFF</td></tr>
352 ///         <tr><td>eps_CWORD56_bmAPPLICATION_MODE</td><td>0x00</td></tr>
353 ///         <tr><td>eps_CWORD56_bmPROGRAMMING_MODE</td><td>0x08</td></tr>
354 ///         </table>\n
355 ///       \n
356 ///       - EPWR_SC_WAKEUP_TYPE
357 ///         <table>
358 ///         <tr bgcolor="black"><th>Name</th><th>Value</th></tr>
359 ///         <tr><td>epsstINVALID</td><td>0xFF</td></tr>
360 ///         <tr><td>epsstWARMSTART</td><td>0x00</td></tr>
361 ///         <tr><td>epsstCOLDSTART</td><td>0x01</td></tr>
362 ///         </table>\n
363 ///       \n
364 ///       - EPWR_SC_COLD_START_REQ_TYPE
365 ///         <table>
366 ///         <tr bgcolor="black"><th>Name</th><th>Value</th></tr>
367 ///         <tr><td>epsscrtINVALID</td><td>0xFF</td></tr>
368 ///         <tr><td>epsscrtNOT_REQUIRED</td><td>0x00</td></tr>
369 ///         <tr><td>epsscrtREQUIRED</td><td>0x01</td></tr>
370 ///         </table>\n
371 ///       \n
372 ///       - EPWR_SC_SECURITY_STATUS
373 ///         <table>
374 ///         <tr bgcolor="black"><th>Name</th><th>Value</th></tr>
375 ///         <tr><td>epsssINVALID</td><td>0xFF</td></tr>
376 ///         <tr><td>epsssUNLOCK</td><td>0x00</td></tr>
377 ///         <tr><td>epsssLOCK</td><td>0x01</td></tr>
378 ///         </table>\n
379 ///       \n
380 /// \~english @retval eFrameworkunifiedStatusOK             Success
381 /// \~english @retval eFrameworkunifiedStatusInvldHandle    Invalid handle
382 /// \~english @retval eFrameworkunifiedStatusFail           Failed
383 /// \~english @par Classification
384 ///       Public
385 /// \~english @par Type
386 ///       Fire and Forget x Fire and Forget
387 /// \~english @par Detail
388 ///       - The API sends a startup confirmation request to the PowerService.\n
389 ///       \n
390 ///       - Include    ss_power_service_ifc.h
391 ///       - Library    libSS_PowerServiceIf.so
392 /// \~english @see
393 ///       None
394 ////////////////////////////////////////////////////////////////////////////////////////////
395 EFrameworkunifiedStatus PwrServiceSendStartupConfirmationMsgRequest(HANDLE f_hSession
396                                           , EPWR_SC_MSG_STRUCT f_eState);
397
398 ////////////////////////////////////////////////////////////////////////////////////////////
399 /// \ingroup PwrServiceSendPowerRequest
400 /// \~english @par Brief
401 ///       Send power request.
402 /// \~english @param [in] f_hSession
403 ///       HANDLE    - Session handle
404 /// \~english @param [in] f_eState
405 ///       \ref PowerRequestMsgStrutWithUMCR "EPWR_POWER_REQUEST_MSG_STRUCT_WITH_UMCR&" - Address of the structure for power request message
406 /// \~english @par
407 ///       \n
408 ///       Of the eight elements of the \ref PowerRequestMsgStrutWithUMCR "EPWR_POWER_REQUEST_MSG_STRUCT_WITH_UMCR" structure, five elements set fixed values.\n
409 ///       startupType = \ref epsprm_CWORD102_si_CWORD102__STARTUP_NORMAL\n
410 ///       openingType = \ref epsprmotTIMING_TYPE_1\n
411 ///       lastUserMode = \ref epsumON\n
412 ///       manResetInfo = \ref epsprmriNORMAL\n
413 ///       lastSystemRetentionReq = \ref epsprlsrrLAST_SYSTEM_OFF\n 
414 ///       \n
415 ///       For the following, set different values at system startup and shutdown.\n
416 ///       (Element name) = (Startup settings or Shutdown settings)\n
417 ///       startupReason = (\ref epswfIGN_ACC or \ref epswfINVALID)\n
418 ///       userMode = (\ref epsumON or \ref epsumOFF)\n
419 ///       \n
420 ///       For the following, set different values at power state transition.\n
421 ///       <table>
422 ///       <tr bgcolor="black"><th>Element name</th><th>Power state</th><th>Value</th></tr>
423 ///       <tr><td rowspan=7>userModeChangeReason</td><tr><td>Not Available</td><td>\ref epsumcrNOT_AVAILABLE</td></tr>
424 ///       <tr><td>  </td><td>\ref epsumcrON_KEY</td></tr>
425 ///       <tr><td>Parking(+B)</td><td>\ref epsumcrPARKING_B</td></tr>
426 ///       <tr><td>Pre-boot(+BA)</td> <td>\ref epsumcrPRE_BA</td></tr>
427 ///       <tr><td>Normal-boot</td> <td>\ref epsumcrNORMAL</td></tr>
428 ///       <tr><td>Background-boot(+BA)</td> <td>\ref epsumcrBACKGROUND_BA</td></tr>
429 ///       </table>
430 ///       \n
431 /// \~english @retval eFrameworkunifiedStatusOK             Success
432 /// \~english @retval eFrameworkunifiedStatusInvldHandle    Invalid handle
433 /// \~english @retval eFrameworkunifiedStatusFail           Failed
434 /// \~english @par Prerequisite
435 ///       None
436 /// \~english @par Change of internal state
437 ///       None
438 /// \~english @par Conditions of processing failure
439 ///     - When the session handle (f_hSession) specified by the argument is NULL. [eFrameworkunifiedStatusInvldHandle]
440 ///     - The process fails for some reason. [eFrameworkunifiedStatusFail]
441 /// \~english @par Classification
442 ///       Public
443 /// \~english @par Type
444 ///       Method only
445 /// \~english @par Detail
446 ///       - The API send a power request to the PowerService.\n
447 ///       \n
448 ///       - Include    ss_power_service_ifc.h
449 ///       - Library    libSS_PowerServiceIf.so
450 /// \~english @see
451 ///       None
452 ////////////////////////////////////////////////////////////////////////////////////////////
453 EFrameworkunifiedStatus PwrServiceSendPowerRequest(HANDLE f_hSession,
454                                       EPWR_POWER_REQUEST_MSG_STRUCT_WITH_UMCR& f_eState);
455
456
457 ////////////////////////////////////////////////////////////////////////////////////////////
458 /// \ingroup PwrServiceSendShutdownRequest
459 /// \~english @par Summary
460 ///       Send shutdown request.
461 /// \~english @param [in] f_hSession
462 ///       HANDLE    - Session handle
463 /// \~english @param [in] f_eState
464 ///       EPWR_SHUTDOWN_REQUEST_MSG_STRUCT&
465 ///      - Address of the structure for shutdown request message
466 /// \~english @par
467 ///       - Structure for shutdown request message
468 /// \~english @code
469 ///       typedef struct {
470 ///           EPWR_ONS_TYPE                  ONS_Type;
471 ///           EPWR_SHUTDOWN_TRIGGER_TYPE     shutdownTrigger;
472 ///           EPWR_USER_MODE_TYPE            lastUserMode;
473 ///           EPWR_TRANSPORT_MODE_TYPE       transportMode;
474 ///           EPWR_PROD_MODE_TYPE            productionMode;
475 ///           EPWR_LHC_TYPE                  limpHomeCutoffRequest;
476 ///       } ShutdownRequestMsgStrut, EPWR_SHUTDOWN_REQUEST_MSG_STRUCT
477 ///            @endcode\n
478 ///       \n
479 ///       - EPWR_ONS_TYPE
480 ///         <table>
481 ///         <tr bgcolor="black"><th>Name</th><th>Value</th></tr>
482 ///         <tr><td>epssdmonsINVALID</td><td>0xFF</td></tr>
483 ///         <tr><td>epssdmonsNO_ONS</td><td>0x00</td></tr>
484 ///         <tr><td>epssdmonsONS</td><td>0x01</td></tr>
485 ///         </table>\n
486 ///       \n
487 ///       - EPWR_SHUTDOWN_TRIGGER_TYPE
488 ///         <table>
489 ///         <tr bgcolor="black"><th>Name</th><th>Value</th></tr>
490 ///         <tr><td>epssdmsdtINVALID</td><td>0xFF</td></tr>
491 ///         <tr><td>epssdmsdtTESTACC_OFF</td><td>0x00</td></tr>
492 ///         <tr><td>epssdmsdtON_KEY</td><td>0x01</td></tr>
493 ///         <tr><td>epssdmsdtIGN_LOCK</td><td>0x02</td></tr>
494 ///         <tr><td>epssdmsdtPWR_SAVE</td><td>0x03</td></tr>
495 ///         <tr><td>epssdmsdtTMP_STARTUP</td><td>0x04</td></tr>
496 ///         <tr><td>epssdmsdtDIAG_DEACTIVATION</td><td>0x05</td></tr>
497 ///         <tr><td>epssdmsdtABNORMAL_VOLTAGE</td><td>0x06</td></tr>
498 ///         <tr><td>epssdmsdtABNORMAL_TEMP</td><td>0x07</td></tr>
499 ///         <tr><td>epssdmsdtBATTERYCUTOFF</td><td>0x08</td></tr>
500 ///         <tr><td>epssdmsdtLIMPHOME</td><td>0x09</td></tr>
501 ///         <tr><td>epssdmsdtHU_CAN_ERROR</td><td>0x0A</td></tr>
502 ///         <tr><td>epssdmsdtBODY_CAN_ERROR</td><td>0x0B</td></tr>
503 ///         <tr><td>epssdmsdtTRANSPORT_MODE</td><td>0x0C</td></tr>
504 ///         <tr><td>epssdmsdtPRODUCTION_MODE</td><td>0x0D</td></tr>
505 ///         <tr><td>epssdmsdtIGN_OFF</td><td>0x0E</td></tr>
506 ///         <tr><td>epssdmsdtGENERIC_ERROR_RESET</td><td>0x0F</td></tr>
507 ///         <tr><td>epssdmsdtFATAL_ERROR_RESET</td><td>0x10</td></tr>
508 ///         <tr><td>epssdmsdtUSER_DATA_RESET</td><td>0x11</td></tr>
509 ///         <tr><td>epssdmsdtFACTORY_DATA_RESET</td><td>0x12</td></tr>
510 ///         <tr><td>epssdmsdtFAST_SLEEP_MODE</td><td>0x13</td></tr>
511 ///         <tr><td>epssdmsdtNORMAL_RESET</td><td>0x14</td></tr>
512 ///         <tr><td>epssdmsdtPROGUPDATE_RESET</td><td>0x15</td></tr>
513 ///         </table>\n
514 ///       \n
515 ///       - EPWR_USER_MODE_TYPE
516 ///         <table>
517 ///         <tr bgcolor="black"><th>Name</th><th>Value</th></tr>
518 ///         <tr><td>epsumINVALID</td><td>0xFF</td></tr>
519 ///         <tr><td>epsumOFF</td><td>0x00</td></tr>
520 ///         <tr><td>epsumON</td><td>0x01</td></tr>
521 ///         </table>\n
522 ///       \n
523 ///       - EPWR_TRANSPORT_MODE_TYPE
524 ///         <table>
525 ///         <tr bgcolor="black"><th>Name</th><th>Value</th></tr>
526 ///         <tr><td>epstmINVALID</td><td>0xFF</td></tr>
527 ///         <tr><td>epstmDISABLED</td><td>0x00</td></tr>
528 ///         <tr><td>epstmENABLED</td><td>0x01</td></tr>
529 ///         </table>\n
530 ///       \n
531 ///       - EPWR_PROD_MODE_TYPE
532 ///         <table>
533 ///         <tr bgcolor="black"><th>Name</th><th>Value</th></tr>
534 ///         <tr><td>epspmINVALID</td><td>0xFF</td></tr>
535 ///         <tr><td>epspmDISABLED</td><td>0x00</td></tr>
536 ///         <tr><td>epspmENABLED</td><td>0x01</td></tr>
537 ///         </table>\n
538 ///       \n
539 ///       - EPWR_LHC_TYPE
540 ///         <table>
541 ///         <tr bgcolor="black"><th>Name</th><th>Value</th></tr>
542 ///         <tr><td>epslhcINVALID</td><td>0xFF</td></tr>
543 ///         <tr><td>epslhcDISABLED</td><td>0x00</td></tr>
544 ///         <tr><td>epslhcENABLED</td><td>0x01</td></tr>
545 ///         </table>\n
546 ///       \n
547 /// \~english @retval eFrameworkunifiedStatusOK             Success
548 /// \~english @retval eFrameworkunifiedStatusInvldHandle    Invalid handle
549 /// \~english @retval eFrameworkunifiedStatusFail           Failed
550 /// \~english @par Classification
551 ///       Public
552 /// \~english @par Type
553 ///       Method x Method
554 /// \~english @par Detail
555 ///       - The API sends shutdown request to the PowerService.\n
556 ///       \n
557 ///       - Include    ss_power_service_ifc.h
558 ///       - Library    libSS_PowerServiceIf.so
559 /// \~english @see
560 ///       None
561 ////////////////////////////////////////////////////////////////////////////////////////////
562 EFrameworkunifiedStatus PwrServiceSendShutdownRequest(
563           HANDLE f_hSession
564         , EPWR_SHUTDOWN_REQUEST_MSG_STRUCT &f_eState);  // NOLINT (runtime/references)
565
566 ////////////////////////////////////////////////////////////////////////////////////////////
567 /// \ingroup PwrServiceSendHeartBeatRequest
568 /// \~english @par Summary
569 ///       Send a request for HeartBeat monitoring start.
570 /// \~english @param [in] f_hSession
571 ///       HANDLE    - Session handle
572 /// \~english @param [in] f_eHbReqMsg
573 ///       EPWR_HB_REQ_MSG_STRUCT*
574 ///    - Address of the structure for HeartBeat monitoring start request message
575 /// \~english @par
576 ///       - Structure for HeartBeat monitoring start request message
577 /// \~english @code
578 ///       typedef struct {
579 ///           UI_8  IntervalSec;
580 ///       } EPWR_HB_REQ_MSG_STRUCT;
581 ///            @endcode\n
582 ///       \n
583 /// \~english @retval eFrameworkunifiedStatusOK             Success
584 /// \~english @retval eFrameworkunifiedStatusInvldHandle    Invalid handle
585 /// \~english @retval eFrameworkunifiedStatusFail           Failed
586 /// \~english @par Classification
587 ///       Public
588 /// \~english @par Type
589 ///       Method x Method
590 /// \~english @par Detail
591 ///       - The API sends HeartBeat monitoring start\n
592 ///       request to the PowerService\n
593 ///       - Include    ss_power_service_ifc.h
594 ///       - Library    libSS_PowerServiceIf.so
595 /// \~english @see
596 ///       None
597 ////////////////////////////////////////////////////////////////////////////////////////////
598 EFrameworkunifiedStatus PwrServiceSendHeartBeatRequest(
599                                 HANDLE f_hSession,
600                                 EPWR_HB_REQ_MSG_STRUCT  *f_eHbReqMsg);
601
602 #endif  // POWER_SERVICE_CLIENT_INCLUDE_SYSTEM_SERVICE_SS_POWER_SERVICE_IF_H_  // NOLINT (build/header_guard)
603
604 /** @}*/  // end of PowerService
605 /** @}*/  // end of SystemService
606 /** @}*/  // end of BaseSystem