From 8e0e00d21146a84c18f9cf9409e187b4fb0248aa Mon Sep 17 00:00:00 2001 From: Riku Nomoto Date: Thu, 19 Nov 2020 12:45:32 +0900 Subject: Init basesystem source codes. Signed-off-by: Riku Nomoto Change-Id: I55aa2f1406ce7f751ae14140b613b53b68995528 --- .../include/system_service/interface_unified.h | 100 ++ .../interfaceunified_system_application.h | 219 +++ .../system_service/interfaceunified_system_types.h | 165 ++ .../library/include/system_service/ss_boot_map.h | 25 + .../include/system_service/ss_client_names.h | 77 + .../system_service/ss_devicedetection_service.h | 640 +++++++ .../ss_devicedetection_service_ifc.h | 1118 ++++++++++++ .../ss_devicedetection_service_local.h | 37 + .../ss_devicedetection_service_notifications.h | 58 + .../ss_devicedetection_service_protocol.h | 143 ++ .../ss_devicedetection_service_protocol_local.h | 69 + .../ss_devicedetection_service_types.h | 186 ++ .../ss_devicedetection_service_types_local.h | 44 + .../include/system_service/ss_error_event_common.h | 111 ++ .../system_service/ss_error_event_common_local.h | 63 + .../include/system_service/ss_error_message.h | 40 + .../include/system_service/ss_heartbeat_if.h | 165 ++ .../system_service/ss_heartbeat_notifications.h | 46 + .../system_service/ss_heartbeat_service_protocol.h | 72 + .../include/system_service/ss_last_to_order.h | 58 + .../include/system_service/ss_logger_service.h | 255 +++ .../include/system_service/ss_logger_service_ifc.h | 1865 ++++++++++++++++++++ .../system_service/ss_logger_service_local.h | 94 + .../ss_logger_service_notifications.h | 47 + .../system_service/ss_logger_service_protocol.h | 146 ++ .../include/system_service/ss_logger_store_logs.h | 81 + .../include/system_service/ss_power_service.h | 535 ++++++ .../include/system_service/ss_power_service_if.h | 606 +++++++ .../system_service/ss_power_service_local.h | 66 + .../ss_power_service_notifications.h | 48 + .../ss_power_service_notifications_local.h | 67 + .../system_service/ss_power_service_protocol.h | 201 +++ .../library/include/system_service/ss_services.h | 63 + .../include/system_service/ss_sm_client_if.h | 1064 +++++++++++ .../include/system_service/ss_sm_client_if_local.h | 66 + .../include/system_service/ss_sm_thread_names.h | 45 + .../system_service/ss_sm_thread_names_local.h | 46 + .../include/system_service/ss_string_maps.h | 680 +++++++ .../include/system_service/ss_sys_boot_area_map.h | 39 + .../library/include/system_service/ss_system_if.h | 119 ++ .../include/system_service/ss_system_manager_if.h | 335 ++++ .../system_service/ss_system_manager_if_local.h | 40 + .../ss_system_manager_notifications.h | 49 + .../ss_system_manager_notifications_local.h | 51 + .../system_service/ss_system_manager_protocol.h | 329 ++++ .../ss_system_manager_protocol_local.h | 45 + .../include/system_service/ss_system_process.h | 1118 ++++++++++++ .../include/system_service/ss_system_timer.h | 670 +++++++ .../include/system_service/ss_system_types.h | 36 + .../library/include/system_service/ss_templates.h | 303 ++++ .../include/system_service/ss_test_clients.h | 31 + .../library/include/system_service/ss_version.h | 33 + 52 files changed, 12609 insertions(+) create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/interface_unified.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/interfaceunified_system_application.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/interfaceunified_system_types.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_boot_map.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_client_names.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_devicedetection_service.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_devicedetection_service_ifc.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_devicedetection_service_local.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_devicedetection_service_notifications.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_devicedetection_service_protocol.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_devicedetection_service_protocol_local.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_devicedetection_service_types.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_devicedetection_service_types_local.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_error_event_common.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_error_event_common_local.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_error_message.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_heartbeat_if.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_heartbeat_notifications.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_heartbeat_service_protocol.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_last_to_order.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_logger_service.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_logger_service_ifc.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_logger_service_local.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_logger_service_notifications.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_logger_service_protocol.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_logger_store_logs.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_power_service.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_power_service_if.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_power_service_local.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_power_service_notifications.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_power_service_notifications_local.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_power_service_protocol.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_services.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_sm_client_if.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_sm_client_if_local.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_sm_thread_names.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_sm_thread_names_local.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_string_maps.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_sys_boot_area_map.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_system_if.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_system_manager_if.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_system_manager_if_local.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_system_manager_notifications.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_system_manager_notifications_local.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_system_manager_protocol.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_system_manager_protocol_local.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_system_process.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_system_timer.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_system_types.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_templates.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_test_clients.h create mode 100755 video_in_hal/systemservice/interface_unified/library/include/system_service/ss_version.h (limited to 'video_in_hal/systemservice/interface_unified/library/include/system_service') diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/interface_unified.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/interface_unified.h new file mode 100755 index 0000000..a25423a --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/interface_unified.h @@ -0,0 +1,100 @@ +// +// @copyright Copyright (c) 2017-2020 TOYOTA MOTOR CORPORATION. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +/** + * @file interface_unified.h + * @brief \~english include all interface_unified head files + */ +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup interface_unified + * @ingroup system_service + * @{ + */ +// include guard +#ifndef SYSTEMSERVICE_INTERFACEUNIFIED_H_ // NOLINT(build/header_guard) +#define SYSTEMSERVICE_INTERFACEUNIFIED_H_ + +#include "system_service/interfaceunified_system_application.h" +#include "system_service/interfaceunified_system_types.h" +#include "system_service/ss_boot_map.h" +#include "system_service/ss_client_names.h" +#include "system_service/ss_devicedetection_service.h" +#include "system_service/ss_devicedetection_service_ifc.h" +#include "system_service/ss_devicedetection_service_notifications.h" +#include "system_service/ss_devicedetection_service_protocol.h" +#include "system_service/ss_devicedetection_service_types.h" +#include "system_service/ss_error_event_common.h" +#include "system_service/ss_error_message.h" +#include "system_service/ss_heartbeat_if.h" +#include "system_service/ss_heartbeat_notifications.h" +#include "system_service/ss_heartbeat_service_protocol.h" +#include "system_service/ss_last_to_order.h" +#include "system_service/ss_logger_service.h" +#include "system_service/ss_logger_service_ifc.h" +#include "system_service/ss_logger_service_notifications.h" +#include "system_service/ss_logger_service_protocol.h" +#include "system_service/ss_services.h" +#include "system_service/ss_sm_client_if.h" +#include "system_service/ss_sm_thread_names.h" +#include "system_service/ss_string_maps.h" +#include "system_service/ss_sys_boot_area_map.h" +#include "system_service/ss_system_if.h" +#include "system_service/ss_system_manager_if.h" +#include "system_service/ss_system_manager_notifications.h" +#include "system_service/ss_system_manager_protocol.h" +#include "system_service/ss_system_process.h" +#include "system_service/ss_system_timer.h" +#include "system_service/ss_system_types.h" +#include "system_service/ss_templates.h" +#include "system_service/ss_test_clients.h" +#include "system_service/ss_version.h" + +// reference from logger_store_logs +#include "system_service/ss_logger_store_logs.h" + +// files with local +// reference from device_detection_service +#include "system_service/ss_devicedetection_service_local.h" +#include "system_service/ss_devicedetection_service_protocol_local.h" +#include "system_service/ss_devicedetection_service_types_local.h" +// reference from system_manager +#include "system_service/ss_error_event_common_local.h" +#include "system_service/ss_sm_client_if_local.h" +#include "system_service/ss_sm_thread_names_local.h" +#include "system_service/ss_system_manager_if_local.h" +#include "system_service/ss_system_manager_notifications_local.h" + +#include "system_service/ss_system_manager_protocol_local.h" +// reference from logger_service +#include "system_service/ss_logger_service_local.h" + +// reference from power_service +#include "system_service/ss_power_service_if.h" +#include "system_service/ss_power_service_notifications.h" +#include "system_service/ss_power_service_protocol.h" +#include "system_service/ss_power_service.h" +#include "system_service/ss_power_service_local.h" +#include "system_service/ss_power_service_notifications_local.h" + +#endif // SYSTEMSERVICE_INTERFACEUNIFIED_H_ +/** @}*/ +/** @}*/ +/** @}*/ diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/interfaceunified_system_application.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/interfaceunified_system_application.h new file mode 100755 index 0000000..fe5224e --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/interfaceunified_system_application.h @@ -0,0 +1,219 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file interfaceunified_system_application.h + * @brief This file supports the System Manager AGL framework client + * interface. + */ + +#ifndef INTERFACEUNIFIED_SYSTEM_APPLICATION_H_ // NOLINT (build/header_guard) +#define INTERFACEUNIFIED_SYSTEM_APPLICATION_H_ + +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup interface_unified + * @ingroup system_service + * @{ + */ +#include + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup InterfaceunifiedSystemConnectToPowerSerivce + /// \~english @par Summary + /// Subscribe and attach call backs to notifications, to PowerSerivce! + /// \~english @param [in] hApp + /// HANDLE - App handle + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldParam Invalid parameter + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusInvldHndlType Invalid type of handle + /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full + /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor + /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) + /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @retval eFrameworkunifiedStatusErrOther Other error has occurred(Cannot access shared memory, etc.) + /// \~english @par Preconditions + /// \~english @par Change of the internal state + /// - Change of internal state according to the API does not occur. + /// \~english @par Conditions of processing failure + /// - Pointer (pNtfyHandler) is NULL to the structure of the Notification Handler specified in the argument. + /// [eFrameworkunifiedStatusInvldParam] + /// - Notification Handler number specified in the argument (uiHandlerCount) 0. [eFrameworkunifiedStatusInvldParam] + /// - HANDLE specified in the argument (hApp) is NULL. [eFrameworkunifiedStatusInvldParam] + /// - HANDLE specified in the argument (hApp) is not appropriate(which is invalid). [eFrameworkunifiedStatusInvldParam] + /// - Notification Handler number specified in the argument (uiHandlerCount) has exceeded + /// the maximum number of Notification.[eFrameworkunifiedStatusFail] + /// - The acquisition of the buffer for storing a plurality of information of + /// Notification Handler specified by the argument has failed. [eFrameworkunifiedStatusInvldParam] + /// - Can not be acquired memory in the acquisition of the buffer of the message for transmission (malloc). + /// [eFrameworkunifiedStatusFail] + /// - Message queue HANDLE in HANDLE specified in the argument (hApp) is NULL. [eFrameworkunifiedStatusInvldParam] + /// - HANDLE specified in the argument message queue HANDLE in (hApp) is not appropriate (which is invalid). + /// [eFrameworkunifiedStatusInvldParam] + /// - Message queue name of HANDLE specified in the argument (hApp) + /// is not appropriate(The name is NULL, more than 20byte) [eFrameworkunifiedStatusInvldHandle] + /// - Message queue type of HANDLE specified in the argument (hApp) is not a transmission. + /// [eFrameworkunifiedStatusInvldHndlType] + /// - Session message queue is full to the NPP Service. [eFrameworkunifiedStatusMsgQFull] + /// - It is invalid transmission file descriptor of the session message to the NPP Service. + /// [eFrameworkunifiedStatusErrNoEBADF] + /// - Interruption by the system call (signal) has occurred during the transmission of the session message + /// for the NPP Service. [eFrameworkunifiedStatusErrNoEINTR] + /// - Incorrect size of the transmit buffer of the session message to the NPP Service. [eFrameworkunifiedStatusInvldBufSize] + /// - Any errors occur during the transmission of a session message to the NPP Service. [eFrameworkunifiedStatusFail] + /// - It failed to shared memory access for transmission of the session message for the NPP Service. + /// [eFrameworkunifiedStatusErrOther] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// None + /// \~english @par Detail + /// Subscribe and attach call backs to notifications, to PowerSerivce! \n + /// if callback has not subscribe,resubscribe! \n + /// if callback has been subscribed,initialize! + /// \~english @see FrameworkunifiedGetAppName FrameworkunifiedSubscribeNotificationsWithCallback + //////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus InterfaceunifiedSystemConnectToPowerSerivce(HANDLE hApp); + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup InterfaceunifiedSystemConnectToPowerSerivce + /// \~english @par Summary + /// Called from framework for every app to start connection to HeartBeat + /// \~english @param [in] hApp + /// HANDLE - App handle, Handle to message queue of HeartBeat Service. + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldParam Invalid parameter + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusInvldHndlType Invalid type of handle + /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full + /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor + /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) + /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @retval eFrameworkunifiedStatusErrOther Other error has occurred(Cannot access shared memory, etc.) + /// \~english @par Preconditions + /// \~english @par Change of the internal state + /// - Change of internal state according to the API does not occur. + /// \~english @par Conditions of processing failure + /// - Pointer (pNtfyHandler) is NULL to the structure of the Notification Handler specified + /// in the argument. [eFrameworkunifiedStatusInvldParam] + /// - Notification Handler number specified in the argument (uiHandlerCount) 0. [eFrameworkunifiedStatusInvldParam] + /// - HANDLE specified in the argument (hApp) is NULL. [eFrameworkunifiedStatusInvldParam] + /// - HANDLE specified in the argument (hApp) is not appropriate(which is invalid). [eFrameworkunifiedStatusInvldParam] + /// - Notification Handler number specified in the argument (uiHandlerCount) has exceeded + /// the maximum number of Notification. [eFrameworkunifiedStatusFail] + /// - The acquisition of the buffer for storing a plurality of information of + /// Notification Handler specified by the argument has failed. [eFrameworkunifiedStatusInvldParam] + /// - Can not be acquired memory in the acquisition of the buffer of the message for transmission (malloc). + /// [eFrameworkunifiedStatusFail] + /// - Message queue HANDLE in HANDLE specified in the argument (hApp) is NULL. [eFrameworkunifiedStatusInvldParam] + /// - HANDLE specified in the argument message queue HANDLE in (hApp) is not appropriate (which is invalid). + /// [eFrameworkunifiedStatusInvldParam] + /// - Message queue name of HANDLE specified in the argument (hApp) + /// is not appropriate(The name is NULL, more than 20byte) [eFrameworkunifiedStatusInvldHandle] + /// - Message queue type of HANDLE specified in the argument (hApp) is not a transmission. + // [eFrameworkunifiedStatusInvldHndlType] + /// - Session message queue is full to the NPP Service. [eFrameworkunifiedStatusMsgQFull] + /// - It is invalid transmission file descriptor of the session message to the NPP Service. + /// [eFrameworkunifiedStatusErrNoEBADF] + /// - Interruption by the system call (signal) has occurred during the transmission of + /// the session message for the NPP Service. [eFrameworkunifiedStatusErrNoEINTR] + /// - Incorrect size of the transmit buffer of the session message to the NPP Service. + /// [eFrameworkunifiedStatusInvldBufSize] + /// - Any errors occur during the transmission of a session message to the NPP Service. + /// [eFrameworkunifiedStatusFail] + /// - It failed to shared memory access for transmission of the session message + /// for the NPP Service. [eFrameworkunifiedStatusErrOther] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// None + /// \~english @par Detail + /// Called from framework for every app to start connection to HeartBeat \n + /// if app has not connection,reconnection! \n + /// if app has been connectioned,initialize it! + /// \~english @see FrameworkunifiedGetAppName FrameworkunifiedAttachCallbacksToDispatcher + //////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus InterfaceunifiedSystemConnectToHeartBeatService(HANDLE hApp); + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup InterfaceunifiedSystemConnectToPowerSerivce + /// \~english @par Summary + /// Subscribe and attach callbacks to System Manager Service! + /// \~english @param [in] hApp + /// HANDLE - App handle. + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldParam Invalid parameter + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusInvldHndlType Invalid type of handle + /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full + /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor + /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) + /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @retval eFrameworkunifiedStatusErrOther Other error has occurred(Cannot access shared memory, etc.) + /// \~english @par Preconditions + /// \~english @par Change of the internal state + /// - Change of internal state according to the API does not occur. + /// \~english @par Conditions of processing failure + /// - Pointer (pNtfyHandler) is NULL to the structure of + /// the Notification Handler specified in the argument. [eFrameworkunifiedStatusInvldParam] + /// - Notification Handler number specified in the argument (uiHandlerCount) 0. [eFrameworkunifiedStatusInvldParam] + /// - HANDLE specified in the argument (hApp) is NULL. [eFrameworkunifiedStatusInvldParam] + /// - HANDLE specified in the argument (hApp) is not appropriate(which is invalid). [eFrameworkunifiedStatusInvldParam] + /// - Notification Handler number specified in the argument (uiHandlerCount) + /// has exceeded the maximum number of Notification. [eFrameworkunifiedStatusFail] + /// - The acquisition of the buffer for storing a plurality of information of + /// Notification Handler specified by the argument has failed. [eFrameworkunifiedStatusInvldParam] + /// - Can not be acquired memory in the acquisition of the buffer of + /// the message for transmission (malloc). [eFrameworkunifiedStatusFail] + /// - Message queue HANDLE in HANDLE specified in the argument (hApp) is NULL. [eFrameworkunifiedStatusInvldParam] + /// - HANDLE specified in the argument message queue HANDLE in (hApp) + /// is not appropriate (which is invalid). [eFrameworkunifiedStatusInvldParam] + /// - Message queue name of HANDLE specified in the argument (hApp) + /// is not appropriate(The name is NULL, more than 20byte) [eFrameworkunifiedStatusInvldHandle] + /// - Message queue type of HANDLE specified in the argument (hApp) + /// is not a transmission. [eFrameworkunifiedStatusInvldHndlType] + /// - Session message queue is full to the NPP Service. [eFrameworkunifiedStatusMsgQFull] + /// - It is invalid transmission file descriptor of the session message to the NPP Service. + /// [eFrameworkunifiedStatusErrNoEBADF] + /// - Interruption by the system call (signal) has occurred during the transmission of + /// the session message for the NPP Service. [eFrameworkunifiedStatusErrNoEINTR] + /// - Incorrect size of the transmit buffer of the session message to the NPP Service. [eFrameworkunifiedStatusInvldBufSize] + /// - Any errors occur during the transmission of a session message to the NPP Service. [eFrameworkunifiedStatusFail] + /// - It failed to shared memory access for transmission of the session message for + /// the NPP Service. [eFrameworkunifiedStatusErrOther] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// None + /// \~english @par Detail + /// Subscribe and attach callbacks to System Manager Service! \n + /// if app has not Subscribed,resubscribe! + /// \~english @see FrameworkunifiedGetAppName SystemManagerOpenSender + //////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus InterfaceunifiedSystemConnectToSystemManagerService(HANDLE hApp); + +/** @}*/ +/** @}*/ +/** @}*/ + + +#endif /* INTERFACEUNIFIED_SYSTEM_APPLICATION_H_ */ // NOLINT (build/header_guard) diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/interfaceunified_system_types.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/interfaceunified_system_types.h new file mode 100755 index 0000000..d3d3abd --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/interfaceunified_system_types.h @@ -0,0 +1,165 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file interfaceunified_system_types.h + * @brief \~english This file supports the System Manager audio source types. + */ +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup interface_unified + * @ingroup system_service + * @{ + */ +#ifndef INTERFACEUNIFIED_SYSTEM_TYPES_H_ // NOLINT (build/header_guard) +#define INTERFACEUNIFIED_SYSTEM_TYPES_H_ + + +typedef enum _SS_Sources { + SS_SOURCE_NA = 0, + SS_SOURCE_FM = 1, //## To be integrated into SS_SOURCE_AMFM for _CWORD71_ + SS_SOURCE_AM = 2, //## To be integrated into SS_SOURCE_AMFM for _CWORD71_ + + SS_SOURCE_CD = 3, // For Audio CDs + SS_SOURCE_AUX = 4, + + SS_SOURCE_PHONE = 5, // Will be deprecated soon, use specific Incoming or Outgoing call. + SS_SOURCE_TA = 6, // ## To be integrated into SS_SOURCE_AMFM for _CWORD71_ + SS_SOURCE_CHIMES = 7, + SS_SOURCE_NAVI = 8, + + SS_SOURCE_MSC = 9, ///< Any mass storage device (USB-MSC, SD, HDD etc.,) + SS_SOURCE_MTP = 10, ///< _CWORD104_, MTP protocol devices(like _CWORD28_ over USB) + + SS_SOURCE__CWORD57_ = 11, // ## To be integrated into SS_SOURCE_USB and SS_SOURCE_USB2 for _CWORD71_ + + SS_SOURCE__CWORD73__APP = 12, ///< _CWORD73_ based audio application (_CWORD74_ over BT/USB) - _CWORD22_, _CWORD13_ etc., + SS_SOURCE__CWORD73__VIDEO_MODE = 13, ///< _CWORD73_ Video Mode (_CWORD57_ playback) + + SS_SOURCE_STREAMING = 14, ///< Streaming over Wi-fi + SS_SOURCE_BT_AUDIO = 15, ///< Bluetooth Audio + SS_SOURCE_BT_SPP = 16, ///< Bluetooth SPP based audio application (_CWORD28_/BB etc.,) + + SS_SOURCE_SPEECH = 17, ///< Speech audio playback + + SS_SOURCE_USB = SS_SOURCE_MSC, ///< will be deprecated soon + + SS_SOURCE__CWORD59_ = 18, + SS_SOURCE_ADRM = 19, + SS_SOURCE__CWORD60_ = 20, + SS_SOURCE_ADRA = 21, + + + SS_SOURCE_INCOMING_CALL = SS_SOURCE_PHONE, + + SS_SOURCE_PRIVATE_MODE_CALL = 24, + + SS_SOURCE_HANDSFREE_SPEAKING = 25, + + SS_SOURCE_FM_DAB = 29, + SS_SOURCE_SD_CARD = 30, + SS_SOURCE_SDARS = 31, + SS_SOURCE_BROWSER_ENT = 32, + SS_SOURCE_ML_ENT = 33, + SS_SOURCE_ML_INFO = 34, + + SS_SOURCE_DATA_CD = 35, // For Data CDs + + SS_SOURCE_TAS = 40, // TA on same frequency + + SS_SOURCE_DTV = 41, + SS_SOURCE_DVD = 42, + SS_SOURCE_BD = 43, + SS_SOURCE_DELIVERY_APP = 44, + SS_SOURCE_ENTUNE_ENT = 45, + SS_SOURCE_HDD_AUDIO = 46, + SS_SOURCE_JOYFUL_TALK = 47, + SS_SOURCE_CLEARANCE_SONAR = 48, // Not used, To be deleted + SS_SOURCE_DSRC = 49, + SS_SOURCE_ENTUNE_INFO = 50, // Not used, To be deleted + SS_SOURCE_HELPNET = 51, + SS_SOURCE_OTV = 52, + SS_SOURCE_MIRACAST = 53, + SS_SOURCE_RSE = 54, + SS_SOURCE_INSIDER = 55, + SS_SOURCE_MAIL = 56, + SS_SOURCE_MAIL_RINGTONE = 57, + SS_SOURCE_BD_REAR = 58, + SS_SOURCE_HDMI_REAR = 59, + SS_SOURCE_SD_CARD_REAR = 60, + SS_SOURCE_MIRACAST_REAR = 61, + SS_SOURCE_USB_REAR = 62, // Not used, To be deleted + SS_SOURCE_DLNA_REAR = 63, + SS_SOURCE_BROWSER_INFO = 64, + SS_SOURCE_DSRC_ENT = 65, + SS_SOURCE_RECDATA_PLAY = 66, +// add Source ## + SS_SOURCE_AMFM = SS_SOURCE_FM, + SS_SOURCE_DLNA = 67, + SS_SOURCE_USB2 = 68, +// add interrupt audio source ## + SS_SOURCE_VDSP = 69, + SS_SOURCE_NAVI_VR = 70, + SS_SOURCE_STARTUPBGM = 71, + SS_SOURCE_STARTUPBGM_INIT = 72, + SS_SOURCE_MAIL_INFO = 73, + + SS_SOURCE_DIAG = 74, + SS_SOURCE_MAYDAY = 75, + SS_SOURCE_DCM = 76, + SS_SOURCE_SD_VIDEO = 77, + + SS_SOURCE_DELIVERY_APP_INFO = 78, + + SS_SOURCE__CWORD27__INFO = 86, + + // Declaration of special sources starting from 100 + SS_SOURCE_POWER_OFF = 100 // Being used by Mode +}SS_SOURCE, *PSS_SOURCE; + + +typedef enum _SS_Zones { + SS_ZONE_NA = 0, + SS_ZONE_DRIVER = 1, ///< Zero/Driver zone + SS_ZONE_REAR1, + SS_ZONE_REAR2, + SS_ZONE_REAR3, + SS_ZONE_ALL +}SS_ZONE, *PSS_ZONE; + + +typedef enum E_AUDIO_PORT { + SS_AUDIO_INPUT_PORT_1 = 0x01, ///< Enum representing MCASP2 + SS_AUDIO_INPUT_PORT_2 = 0x02, ///< Enum representing MCBSP + SS_AUDIO_INPUT_PORT_3 = 0x03, ///< Enum representing MCASP3 + SS_AUDIO_INPUT_PORT_4 = 0x04, ///< Enum representing MCASP3 + SS_AUDIO_INPUT_PORT_5 = 0x05 ///< Enum representing other port +}SS_AUDIO_INPUT_PORT, *PSS_AUDIO_INPUT_PORT; + +typedef enum _SS_Device_Context { + SINGLE_CONTEXT = 0, + MULTI_CONTEXT = 1 +}SS_DEVICE_CONTEXT, *PSS_DEVICE_CONTEXT; + +#endif /* INTERFACEUNIFIED_SYSTEM_TYPES_H_ */ // NOLINT (build/header_guard) +/** @}*/ +/** @}*/ +/** @}*/ diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_boot_map.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_boot_map.h new file mode 100755 index 0000000..364d5ed --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_boot_map.h @@ -0,0 +1,25 @@ +/* + * @copyright Copyright (c) 2019-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @file + */ +#ifndef _SS_BOOT_MAP_H_ // NOLINT (build/header_guard) +#define _SS_BOOT_MAP_H_ + +#include + +#endif //_SS_BOOT_MAP_H_ // NOLINT (build/header_guard) + diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_client_names.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_client_names.h new file mode 100755 index 0000000..23604a1 --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_client_names.h @@ -0,0 +1,77 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file ss_client_names.h + * @brief This file supports contains the queue names of the client + * services that System Services needs to know about. + */ + +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup interface_unified + * @ingroup system_service + * @{ + */ +#ifndef SS_CLIENT_NAMES_H_ // NOLINT (build/header_guard) +#define SS_CLIENT_NAMES_H_ + +#define SERVICE__CWORD69_ "_CWORD69_" +#define SERVICE_AS_AUDIO "AS_AudioService" +#define SERVICE_AS_MODE "AS_ModeService" +#define SERVICE_BR_BROWSER "BR_BrowserService" +#define SERVICE_CAN_SHADOW "VS_CANShadow" +#define SERVICE__CWORD51__BT "_CWORD51__BT" +#define SERVICE__CWORD51__DR "_CWORD51__DR" +#define SERVICE_DAB "RS_Master_Tuner" +#define SERVICE_HMI "HMI" +#define SERVICE_HMI__CWORD46_ "HMI__CWORD46_Service" +#define SERVICE_HMI__CWORD77_ "HMI__CWORD77_Service" +#define SERVICE_IPC_MP_SHADOW "PS_IPC_MP_Shadow" +#define SERVICE_KEY_HANDLER "PS_KeyHandler" +#define SERVICE_MM_ICD "MM_ICDService" +#define SERVICE_MM_MEDIA "MM_MediaService" +#define SERVICE_MM__CWORD21_ "MM__CWORD21_Service" +#define SERVICE_NAV "NAV_NavigationService" +#define SERVICE_NAV_LOC "NAV_LocationService" +#define SERVICE_NS_NPP "NS_NPPService" +#define SERVICE_NS_SHARED_MEM "NS_SharedMem" +#define SERVICE_NW_BT "NW_BluetoothService" +#define SERVICE_NW_CONNECTION "NW_ConnectionService" +#define SERVICE_NW_MESSAGING "NW_MessagingService" +#define SERVICE_NW_PHONE "NW_PhoneService" +#define SERVICE_NW_PHONE_BOOK "NW_PhoneBookService" +#define SERVICE_PSM_SHADOW "PS_PSMShadow" +#define SERVICE_PS_IPC "PS_IPC" +#define SERVICE_PS_SWDL_SHADOW "PS_SoftwareUpdateShadow" +#define SERVICE_SDARS "RS_XSDARSService" +#define SERVICE_TUNER "RS_Radio" +#define SERVICE_VS__CWORD85_ "VS__CWORD85_Service" +#define SERVICE_VS_DIAG "VS_DiagService" +#define SERVICE_VS_DIAG_DISP "DiagDispatcherService" +#define SERVICE_VS_RVC "VS_RVCService" +#define SERVICE_VS_VEHICLE "VS_VehicleService" + +#endif /* SS_CLIENT_NAMES_H_ */ // NOLINT (build/header_guard) + +/** @}*/ +/** @}*/ +/** @}*/ diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_devicedetection_service.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_devicedetection_service.h new file mode 100755 index 0000000..134ab1f --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_devicedetection_service.h @@ -0,0 +1,640 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file ss_devicedetection_service.h + * @brief This file supports the Device Detection service. + */ + +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup device_detection_service + * @ingroup system_service + * @{ + */ + +#ifndef _SS_DEVICEDETECTION_SERVER_H_ // NOLINT (build/header_guard) +#define _SS_DEVICEDETECTION_SERVER_H_ + + +#include +#include +#include "system_service/ss_devicedetection_service_types.h" + +/** + * \~english The max size of the file path. + */ +#define FILEPATH_SIZE (256) + +/** + * \~english The max size of URL. + */ +#define URL_SIZE (256) + +/** + * \~english The max size of the device name. + */ +#define SS_DEV_DEVICE_NAME_SIZE (64) + +/** + * \~english The max size of the name. + */ +#define SS_DEV_NAME_SIZE (256) + + +/** + * \~english Structure for FuseDAV info. + */ +typedef struct _FuseDAVInfo { + /** + * \~english FuseDAV server address + */ + int8_t url[URL_SIZE]; // FuseDAV server address +}SS_FuseDAVInfo; + +/** + * \~english Structure for USB device info. + */ +typedef struct _UsbInfo { + /** + * \~english Bus Number + */ + uint8_t bus_no; // Bus Number + /** + * \~english Device Number + */ + uint8_t dev_no; // Device Number + /** + * \~english Vendor ID + */ + uint16_t idVendor; // Vendor ID + /** + * \~english Product ID + */ + uint16_t idProduct; // Product ID + /** + * \~english reserved area + */ + uint8_t reserved[2]; + /** + * \~english Manufacturer Name + */ + CHAR manufacturerName[SS_DEV_NAME_SIZE]; // Manufacturer Name + /** + * \~english Product Name + */ + CHAR productName[SS_DEV_NAME_SIZE]; // Product Name + /** + * \~english Serial Number + */ + CHAR serial_no[SS_DEV_NAME_SIZE]; // Serial Number + /** + * \~english Device file path + */ + int8_t deviceFile[FILEPATH_SIZE]; // Device file path +}SS_UsbInfo; + +/** + * \~english CID(Card Identification Register Data)of SD/MMC card + */ +typedef struct _CID { + /** + * \~english Manufacturer ID + */ + uint8_t manufacturerID; /* Manufacturer ID */ + /** + * \~english Application ID + */ + uint16_t applicationID; /* Application ID */ + /** + * \~english Product Revision (PRV) + */ + uint8_t revision; /* Product Revision (PRV) */ + /** + * \~english Product Serial Number (PSN) + */ + uint32_t serialNumber; /* Product Serial Number (PSN) */ + /** + * \~english Product Name (PNM) + */ + uint8_t productName[6]; /* Product Name (PNM) */ + /** + * \~english Reserved area + */ + uint8_t reserve[2]; /* Reserve */ + /** + * \~english Manufacture date (MDT) + */ + uint16_t manufactureDate; /* Manufacture date (MDT) */ +}SS_CID; + +// CSD(Card Specification Register Data)of SD/MMC card +/** + * \~english CSD(Card Specification Register Data)of SD/MMC card + */ +typedef struct _CSD { + /** + * \~english CSD structure + */ + uint8_t csd_structure; /* CSD structure */ + /** + * \~english data read access-time-1 + */ + uint8_t taac; /* data read access-time-1 */ + /** + * \~english data read access-time-2 in CLK cycles (NSAC*100) + */ + uint8_t nsac; /* data read access-time-2 in CLK cycles (NSAC*100) */ + /** + * \~english max. data transfer rate + */ + uint8_t tran_speed; /* max. data transfer rate */ + /** + * \~english card command classes + */ + uint16_t ccc; /* card command classes */ + /** + * \~english max. read data block length + */ + uint8_t read_bl_len; /* max. read data block length */ + /** + * \~english partial blocks for read allowed + */ + uint8_t read_bl_partial; /* partial blocks for read allowed */ + /** + * \~english write block misalignment + */ + uint8_t write_blk_misalign; /* write block misalignment */ + /** + * \~english read block misalignment + */ + uint8_t read_blk_misalign; /* read block misalignment */ + /** + * \~english DSR implemented + */ + uint8_t dsr_imp; /* DSR implemented */ + /** + * \~english Reserve area 1 + */ + uint8_t reserve1; /* Reserve 1 */ + /** + * \~english device size + */ + uint32_t c_size; /* device size */ + /** + * \~english max. read current -VDD min + */ + uint8_t vdd_r_curr_min; /* max. read current @VDD min */ + /** + * \~english max. read current -VDD max + */ + uint8_t vdd_r_curr_max; /* max. read current @VDD max */ + /** + * \~english max. write current -VDD min + */ + uint8_t vdd_w_curr_min; /* max. write current @VDD min */ + /** + * \~english max. write current -VDD max + */ + uint8_t vdd_w_curr_max; /* max. write current @VDD max */ + /** + * \~english device size multiplier + */ + uint8_t c_size_mult; /* device size multiplier */ + /** + * \~english erase single block enable + */ + uint8_t erase_blk_en; /* erase single block enable */ + /** + * \~english erase sector size + */ + uint8_t sector_size; /* erase sector size */ + /** + * \~english write protect group size + */ + uint8_t wp_grp_size; /* write protect group size */ + /** + * \~english write protect group enable + */ + uint8_t wp_grp_enable; /* write protect group enable */ + /** + * \~english write speed factor + */ + uint8_t r2w_factor; /* write speed factor */ + /** + * \~english max. write data block length + */ + uint8_t write_bl_len; /* max. write data block length */ + /** + * \~english partial blocks for write allowed + */ + uint8_t write_bl_partial; /* partial blocks for write allowed */ + /** + * \~english File format group + */ + uint8_t file_format_grp; /* File format group */ + /** + * \~english copy flag + */ + uint8_t copy; /* copy flag */ + /** + * \~english permanent write protection + */ + uint8_t perm_write_protect; /* permanent write protection */ + /** + * \~english temporary write protection + */ + uint8_t tmp_write_protect; /* temporary write protection */ + /** + * \~english File format + */ + uint8_t file_format; /* File format */ + /** + * \~english Reserve area 2 + */ + uint8_t reserve2[3]; /* Reserve 2 */ +} SS_CSD; + +// Structure for SD device info. +/** + * \~english Structure for SD device info. + */ +typedef struct _SdInfo { + /** + * \~english CID + */ + SS_CID cid; // CID + /** + * \~english CSD + */ + SS_CSD csd; // CSD + /** + * \~english Device file path + */ + int8_t deviceFile[FILEPATH_SIZE]; // Device file path + /** + * \~english Current Partion No + */ + int32_t part_num; // Current Partion No + /** + * \~english Number of partions + */ + int32_t nparts; // Number of partions +}SS_SdInfo; + +// Structure for DISC info. +/** + * \~english Structure for DISC info. + */ +typedef struct _DiscInfo { + /** + * \~english Device file path + */ + int8_t deviceFile[FILEPATH_SIZE]; // Device file path + /** + * \~english Disc Type(eCD, eDVD, eBD) + */ + EDISC_TYPE disc_type; // Disc Type(eCD, eDVD, eBD) +}SS_DiscInfo; + +// Structure that is available when SS_DEV_ANY_USB_EV is published. +/** + * \~english Structure that is available when SS_DEV_ANY_USB_EV is published. + */ +typedef struct _UsbDeviceInfo { + /** + * \~english Insert:TURE, Remove:FALSE + */ + BOOL bIsDeviceAvailable; // Insert:TURE, Remove:FALSE + /** + * \~english USB Infomation + */ + SS_UsbInfo usb_info; // USB Infomation +}SS_UsbDeviceInfo; + +// Structure for device info. +/** + * \~english Structure for device info. + */ +typedef union _DeviceInfo { + /** + * \~english usb device info + */ + SS_UsbInfo usb_info; // usb device info + /** + * \~english sd info + */ + SS_SdInfo sd_info; // sd info + /** + * \~english disc info + */ + SS_DiscInfo disc_info; // disc info + /** + * \~english fusedav info + */ + SS_FuseDAVInfo fusedav_info; // fusedav info +}SS_DeviceInfo; + +// Structure for volume label infomation. +/** + * \~english Structure for volume label infomation. + */ +typedef struct _VolumeInfo { + /** + * \~english volume label's availability + */ + BOOL volume_label_availability; // volume label's availability + /** + * \~english volume label + */ + CHAR volume_label[SS_DEV_NAME_SIZE]; // volume label +}SS_VolumeInfo; + +// Structure that is available when SS_DEV_DETECT*_EV is published. +/** + * \~english Structure that is available when SS_DEV_DETECT*_EV is published. + */ +typedef struct _MediaDetectInfo { + /** + * \~english Deive type(eUSB,eSD...) + */ + EDEVICE_TYPE dev_type; // Deive type(eUSB,eSD...) + /** + * \~english Insert:TURE, Remove:FALSE + */ + BOOL bIsDeviceAvailable; // Insert:TURE, Remove:FALSE + /** + * \~english Device Infomation + */ + SS_DeviceInfo dev_info; // Device Infomation + /** + * \~english Mount path + */ + CHAR deviceMountpath[FILEPATH_SIZE]; // Mount path + /** + * \~english Do Not Used.(This member is for compatibility) + */ + CHAR filepathName[FILEPATH_SIZE]; // Do Not Used.(This menber is for compatibility) + /** + * \~english FuseDav:TRUE, Not FuseDav:FALSE + */ + BOOL bIsFuseDav; + /** + * \~english result of mount NORMAL:SS_DEV_OK, ERR:SS_DEV_ERR_MOUNT + */ + SS_DEV_ERROR err_code; // result of mount NORMAL:SS_DEV_OK, ERR:SS_DEV_ERR_MOUNT + /** + * \~english volume infomation (USB mass storage only support) + */ + SS_VolumeInfo volume_info; // volume infomation (USB mass storage only support) +}SS_MediaDetectInfo, *PSS_MediaDetectInfo; + +// Structure that is available when SS_DEV_DETECT_USB_NCM_EV is published. +/** + * \~english Structure that is available when SS_DEV_DETECT_USB_NCM_EV is published. + */ +typedef struct _NcmDetectInfo { + /** + * \~english Insert:TURE, Remove:FALSE + */ + BOOL bIsDeviceAvailable; // Insert:TURE, Remove:FALSE + /** + * \~english USB Infomation + */ + SS_UsbInfo usb_info; // USB Infomation + /** + * \~english Network Name + */ + int8_t networkName[SS_DEV_DEVICE_NAME_SIZE]; // Network Name +}SS_NcmDetectInfo; + +// Structure that is available when SS_DEV_DETECT_USB__CWORD57__EV is published. +/** + * \~english Structure that is available when SS_DEV_DETECT_USB__CWORD57__EV is published. + */ +typedef struct __CWORD57_DetectInfo { + /** + * \~english Insert:TURE, Remove:FALSE + */ + BOOL bIsDeviceAvailable; // Insert:TURE, Remove:FALSE + /** + * \~english USB Infomation + */ + SS_UsbInfo usb_info; // USB Infomation +}SS__CWORD57_DetectInfo; + +// Structure that is available when SS_DEV_DETECT_USB_ACM_EV is published. +/** + * \~english Structure that is available when SS_DEV_DETECT_USB_ACM_EV is published. + */ +typedef struct _AcmDetectInfo { + /** + * \~english Insert:TURE, Remove:FALSE + */ + BOOL bIsDeviceAvailable; // Insert:TURE, Remove:FALSE + /** + * \~english USB Infomation + */ + SS_UsbInfo usb_info; // USB Infomation + /** + * \~english ACM device file + */ + int8_t deviceFile[FILEPATH_SIZE]; // ACM device file +}SS_AcmDetectInfo; + +// Structure that is available when SS_DEV_DETECT_USB_DEV_MNG_EV is published. +/** + * \~english Structure that is available when SS_DEV_DETECT_USB_DEV_MNG_EV is published. + */ +typedef struct _DevMngDetectInfo { + /** + * \~english Insert:TURE, Remove:FALSE + */ + BOOL bIsDeviceAvailable; // Insert:TURE, Remove:FALSE + /** + * \~english USB Infomation + */ + SS_UsbInfo usb_info; // USB Infomation + /** + * \~english Device Manager device file + */ + int8_t deviceFile[FILEPATH_SIZE]; // Device Manager device file +}SS_DevMngDetectInfo; + +// Structure that is available when SS_DEV_DETECT_USB_DEV_VEHICLE_CTRL_EV is published. +/** + * \~english Structure that is available when SS_DEV_DETECT_USB_DEV_VEHICLE_CTRL_EV is published. + */ +typedef struct _VehicleCtrlDetectInfo { + /** + * \~english Insert:TURE, Remove:FALSE + */ + BOOL bIsDeviceAvailable; // Insert:TURE, Remove:FALSE + /** + * \~english USB Infomation + */ + SS_UsbInfo usb_info; // USB Infomation + /** + * \~english Vehicle control device file + */ + int8_t deviceFile[FILEPATH_SIZE]; // Vehicle control device file +}SS_VehicleCtrlDetectInfo; + +// Structure for audio detect info. +/** + * \~english Structure for audio detect info. + */ +typedef struct _AudioDetectInfo { + /** + * \~english Insert:TURE, Remove:FALSE + */ + BOOL bIsDeviceAvailable; + /** + * \~english USB Infomation + */ + SS_UsbInfo usb_info; + /** + * \~english Audio control device file + */ + int8_t audio_ctrl[FILEPATH_SIZE]; + /** + * \~english Audio Playback device file + */ + int8_t audio_play[FILEPATH_SIZE]; + /** + * \~english Audio Capture device file + */ + int8_t audio_capture[FILEPATH_SIZE]; +}SS_AudioDetectInfo; + +// Structure that is available when SS_DEV_DETECT_USB_DSRC_APP_EV is published. +/** + * \~english Structure that is available when SS_DEV_DETECT_USB_DSRC_APP_EV is published. + */ +typedef struct _DsrcAppDetectInfo { + /** + * \~english Insert:TURE, Remove:FALSE + */ + BOOL bIsDeviceAvailable; // Insert:TURE, Remove:FALSE + /** + * \~english USB Infomation + */ + SS_UsbInfo usb_info; // USB Infomation + /** + * \~english Dsrc Application device file + */ + int8_t deviceFile[FILEPATH_SIZE]; // Dsrc Application device file +}SS_DsrcAppDetectInfo; + +// Structure that is available when SS_DEV_DETECT_USB_DSRC_CTRL_EV is published. +/** + * \~english Structure that is available when SS_DEV_DETECT_USB_DSRC_CTRL_EV is published. + */ +typedef struct _DsrcCtrlDetectInfo { + /** + * \~english Insert:TURE, Remove:FALSE + */ + BOOL bIsDeviceAvailable; // Insert:TURE, Remove:FALSE + /** + * \~english USB Infomation + */ + SS_UsbInfo usb_info; // USB Infomation + /** + * \~english Dsrc Control device file + */ + int8_t deviceFile[FILEPATH_SIZE]; // Dsrc Control device file +}SS_DsrcCtrlDetectInfo; + +// Structure that is available when SS_DEV_DETECT_USB_IR_VICS_DATA_EV is published. +/** + * \~english Structure that is available when SS_DEV_DETECT_USB_IR_VICS_DATA_EV is published. + */ +typedef struct _IrVicsDataDetectInfo { + /** + * \~english Insert:TURE, Remove:FALSE + */ + BOOL bIsDeviceAvailable; // Insert:TURE, Remove:FALSE + /** + * \~english USB Infomation + */ + SS_UsbInfo usb_info; // USB Infomation + /** + * \~english Ir Vics Data device file + */ + int8_t deviceFile[FILEPATH_SIZE]; // Ir Vics Data device file +}SS_IrVicsDataDetectInfo; + +/** + * \~english USB overcurrent error info. + */ +typedef struct _UsbOverCurrentErrInfo { + /** + * \~english error port no + */ + uint8_t portNo; // error port no +} SS_UsbOverCurrentErrInfo; + +// Structure that is available when SS_DEV_INFO_USB_NOTIFY_EV is published. +/** + * \~english Structure that is available when SS_DEV_INFO_USB_NOTIFY_EV is published. + */ +typedef struct _UsbNotifyInfo { + /** + * \~english notify code + */ + SS_NOTIFY_CODE nofity_code; // notify code + /** + * \~english USB device information's availability + */ + BOOL usb_info_availability; // USB device information's availability + /** + * \~english USB device information + */ + SS_UsbInfo usb_info; // USB device information +} SS_UsbNotifyInfo; + +// Structure that is available when SS_DEV_DETECT_ANY_USB__CWORD57__ROLE_EV is published. +/** + * \~english Structure that is available when SS_DEV_DETECT_ANY_USB__CWORD57__ROLE_EV is published. + */ +typedef struct __CWORD57_RoleDetectInfo { + /** + * \~english Insert:TURE, Remove:FALSE + */ + BOOL bIsDeviceAvailable; // Insert:TURE, Remove:FALSE +} SS__CWORD57_RoleDetectInfo; + +// Structure that is available when SS_DEV_INFO_SD_FORMAT_COMP_EV is published. +/** + * \~english Structure that is available when SS_DEV_INFO_SD_FORMAT_COMP_EV is published. + */ +typedef struct _SDFormatInfo { + /** + * \~english Result of SD Format. + */ + SS_DEV_ERROR result; // Result of SD Format. +} SS_SDFormatInfo; + +#endif /* _SS_DEVICEDETECTION_SERVER_H_ */ // NOLINT (build/header_guard) + +/** @}*/ // end of device_detection_service +/** @}*/ // end of system_service +/** @}*/ // end of BaseSystem diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_devicedetection_service_ifc.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_devicedetection_service_ifc.h new file mode 100755 index 0000000..1ad7e67 --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_devicedetection_service_ifc.h @@ -0,0 +1,1118 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file ss_devicedetection_service_ifc.h + * @brief This file supports the Device Detection service interface. + */ + +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup device_detection_service + * @ingroup system_service + * @{ + */ +/** @addtogroup device_manager + * @ingroup device_detection_service + * @{ + */ + +#ifndef SS_DEVICE_DETECTION_SERVICE_IFC_H_ // NOLINT (build/header_guard) +#define SS_DEVICE_DETECTION_SERVICE_IFC_H_ + +#include +#include +#include "system_service/ss_devicedetection_service_protocol.h" + +// CID(Card Identification Register Data)of SD/MMC card +typedef struct T_cid { + UI_8 mid; // Manufacture ID + UI_8 oid[3]; // OEM/Application ID + UI_8 pnm[6]; // Product name + UI_8 prv; // Product revision + UI_32 psn; // Product serial number + UI_16 mdt; // Manufacture date code + UI_8 cr7cs; // CRC7 Check sum +} Tcid; + +/** + * @class DeviceDetectionServiceIf + * \~english @brief Device detection + * \~english @par Brief Introduction + * Class to provide the device detection function + * + */ +class DeviceDetectionServiceIf { + public: + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup DeviceDetectionServiceIf + /// \~english @par Summary + /// Constructor of DeviceDetectionServiceIf class. + /// \~english @param None + /// \~english @retval None + /// \~english @par Preconditions + /// - None. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// None + /// \~english @par Classification + /// Public + /// \~english @par Type + /// None + /// \~english @par Detail + /// To generate a DeviceDetectionServiceIf class. \n + /// Member variables (m_hApp, m_hService, m_hSession) to be NULL initialization. \n + /// After the constructor, be sure to call Initialize method. + /// \~english @see ~DeviceDetectionServiceIf, Initialize + //////////////////////////////////////////////////////////////////////////////////// + DeviceDetectionServiceIf(); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup ~DeviceDetectionServiceIf + /// \~english @par Summary + /// Destructor of DeviceDetectionServiceIf class. + /// \~english @param None + /// \~english @retval None + /// \~english @par Preconditions + /// - None. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// None + /// \~english @par Classification + /// Public + /// \~english @par Type + /// None + /// \~english @par Detail + /// To delete a DeviceDetectionServiceIf class. \n + /// Session is the case still open, to close the session.\n + /// Service is the case still open, to close the service. + /// Member variables (m_hApp, m_hService, m_hSession) to be NULL initialization. + /// \~english @see DeviceDetectionServiceIf + //////////////////////////////////////////////////////////////////////////////////// + virtual ~DeviceDetectionServiceIf(); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup Initialize + /// \~english @par Summary + /// API to initialize the DeviceDetectionServiceIf class. + /// \~english @param [in] hApp + /// HANDLE - HANDLE for Application + /// \~english @retval TRUE Success + /// \~english @retval FALSE Failure + /// \~english @par Preconditions + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop etc) \n + /// has been done. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// Conditions for return FALSE is as follows. + /// - NULL handle specified in the argument + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Sync only(None communication) + /// \~english @par Detail + /// Application to use the services of device_detection_service is, after generating a \n + /// DeviceDetectionServiceIf class, which is a method to be executed first. \n + /// Member variable(m_hApp) of DeviceDetectionServiceIf class initialized with hApp \n + /// that has been specified by the argument. + /// \~english @see DeviceDetectionServiceIf + //////////////////////////////////////////////////////////////////////////////////// + BOOL Initialize(HANDLE hApp); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup NotifyOnDeviceDetectionAvailability + /// \~english @par Summary + /// API to set the Callback function for Availability notification of Device Detection Service. + /// \~english @param [in] f_pCallBackFn + /// CbFuncPtr - Pointer to function callback for Device Detection Service Availability Notification + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldParam Invalid parameter + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusInvldHndlType Invalid type of handle + /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full + /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor + /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) + /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @retval eFrameworkunifiedStatusErrOther Other error has occurred(Cannot access shared memory, etc.) + /// \~english @par Preconditions + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop etc) \n + /// has been done. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hApp) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Callback function pointer specified by the argument is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Can not get the App/Thread name from HANDLE in the class member variables (m_hApp). + /// [eFrameworkunifiedStatusInvldHandle] + /// - HANDLE (m_hApp) in the class member variables are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusInvldParam] + /// - The acquisition of the buffer that stores the Callback information specified in the argument failed. + /// [eFrameworkunifiedStatusInvldParam] + /// - Can not be acquired memory in the acquisition of the buffer of the message for transmission (malloc). + /// [eFrameworkunifiedStatusFail] + /// - Message queue HANDLE is NULL in the HANDLE of the class member variables (m_hApp). [eFrameworkunifiedStatusInvldParam] + /// - Message queue HANDLE in HANDLE (m_hApp) of the class member variables are not appropriate(which is + /// invalid). [eFrameworkunifiedStatusInvldParam] + /// - It is not appropriate message queue name of HANDLE (m_hApp) in the class member variables(The name is + /// NULL, more than 20byte). [eFrameworkunifiedStatusInvldHandle] + /// - Is not a transmission type message queue type of HANDLE (m_hApp) in the class member variables. + /// [eFrameworkunifiedStatusInvldHndlType] + /// - Session message queue is full to SS_DeviceDetectionService. [eFrameworkunifiedStatusMsgQFull] + /// - It is invalid transmission file descriptor of the session message to SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusErrNoEBADF] + /// - Interruption by the system call (signal) has occurred during the transmission of the session message for + /// SS_DeviceDetectionService. [eFrameworkunifiedStatusErrNoEINTR] + /// - Incorrect size of the transmit buffer of the session message to SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusInvldBufSize] + /// - Any errors occur during the transmission of a session message to SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusFail] + /// - It failed to shared memory access for transmission of the session message for SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusErrOther] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Method x Pub-Sub + /// \~english @par Detail + /// Which is a method to register a Callback function for the initialization of the \n + /// device_detection_service receives the timing at which the start (open) is possible \n + /// of completed service.\n + /// (Native Service of API: Use the FrameworkunifiedSubscribeNotificationsWithCallback, to register \n + /// a Callback function for Availability notification of Device Detection Service.) + /// \~english @see DetachDeviceDetectionAvailabilityCb + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus NotifyOnDeviceDetectionAvailability(CbFuncPtr f_pCallBackFn); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup NotifyOnOpenSessionAck + /// \~english @par Summary + /// API to set the Callback function for OpenSessionRequest response from the Device Detection Service. + /// \~english @param [in] f_pCallBackFn + /// CbFuncPtr - Callback function pointer for receiving the response of OpenSessionRequest + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldParam Invalid parameter + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @par Preconditions + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop etc) \n + /// has been done. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hApp) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Callback function pointer specified by the argument is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - HANDLE (m_hApp) in the class member variables are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusInvldParam] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Sync only(None communication) + /// \~english @par Detail + /// To register the Callback function for receiving a response of completion of OpenSessionRequest to + /// Dispatcher. \n + /// (Native Service of API: Use the FrameworkunifiedAttachCallbackToDispatcher, to register a Callback function for receiving + /// \n + /// a response of completion of OpenSessionRequest to Dispatcher.) \n + /// On successful session establishment, the client can register for device information. + /// \~english @see DetachOpenSessionAckCb + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus NotifyOnOpenSessionAck(CbFuncPtr f_pCallBackFn); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup NotifyOnCloseSessionAck + /// \~english @par Summary + /// API to set the Callback function for CloseSessionRequest response from the Device Detection Service. + /// \~english @param [in] f_pCallBackFn + /// CbFuncPtr - Callback function pointer for receiving the response of CloseSessionRequest + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldParam Invalid parameter + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @par Preconditions + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop etc) \n + /// has been done. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hApp) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Callback function pointer specified by the argument is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - HANDLE (m_hApp) in the class member variables are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusInvldParam] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Sync only(None communication) + /// \~english @par Detail + /// To register the Callback function for receiving a response of completion of CloseSessionRequest to + /// Dispatcher. \n + /// (Native Service of API: Use the FrameworkunifiedAttachCallbackToDispatcher, to register a Callback function for receiving + /// \n + /// a response of completion of CloseSessionRequest to Dispatcher.) \n + /// \~english @see DetachCloseSessionAckCb + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus NotifyOnCloseSessionAck(CbFuncPtr f_pCallBackFn); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup OpenSessionRequest + /// \~english @par Summary + /// API to perform the generation of the service/session of Device Detection Service + /// \~english @param None + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full + /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor + /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) + /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @retval eFrameworkunifiedStatusErrOther Other error has occurred(Cannot access shared memory, etc.) + /// \~english @par Preconditions + /// - SS_DeviceDetectionService process has been started. + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop etc) \n + /// has been done, and Availability of Device Detection Service is TRUE. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hApp) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Service of Device Detection Service is not Availability state. [eFrameworkunifiedStatusFail] + /// - Service of Device Detection Service can not be opened (can not start). [eFrameworkunifiedStatusFail] + /// - SS_DeviceDetectionService message queue for the session is full. [eFrameworkunifiedStatusMsgQFull] + /// - Is invalid transmission file descriptor of the session message to SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusErrNoEBADF] + /// - Interruption by the system call (signal) has occurred during the transmission of the session message to + /// SS_DeviceDetectionService. [eFrameworkunifiedStatusErrNoEINTR] + /// - It is an incorrect size of the transmit buffer of the session message to SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusInvldBufSize] + /// - Some sort of error has occurred at the time of transmission of the session message to + /// SS_DeviceDetectionService. [eFrameworkunifiedStatusFail] + /// - It failed to shared memory access for transmission of the session message to SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusErrOther] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Method x Pub-Sub + /// \~english @par Detail + /// And generate the service of device_detection_service, which is a method for generating a session.\n + /// (To send the command of PROTOCOL_OPEN_SESSION_REQ to device_detection_service.)\n + /// If you already service has been created, once to close the service. + /// \~english @see CloseSessionRequest + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus OpenSessionRequest(); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup DecodeOpenSessionResponse + /// \~english @par Summary + /// API to perform the generation of the service/session of Device Detection Service + /// \~english @param None + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @par Preconditions + /// - SS_DeviceDetectionService process has been started. + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop etc) \n + /// has been done, and Availability of Device Detection Service is TRUE. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hService/m_hApp) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Incorrect PROTOCOL_OPEN_SESSION_ACK message length of Device Detection Service. [eFrameworkunifiedStatusFail] + /// - PROTOCOL_OPEN_SESSION_ACK message of Device Detection Service can not be acquired. [eFrameworkunifiedStatusFail] + /// - Can not session generation of message transmission to Device Detection Service. [eFrameworkunifiedStatusFail] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Sync only(None communication) + /// \~english @par Detail + /// Get the session initiation response message(PROTOCOL_OPEN_SESSION_ACK) of Device Detection \n + /// Service, and get the session ID from the message. \n + /// Acquired session ID, (after opening the message transmission queue) created after a session \n + /// of message transmission, hold as the session information in the session HANDLE (m_hSession).\n + /// of the class member variable. + /// \~english @see OpenSessionRequest, CloseSessionRequest + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus DecodeOpenSessionResponse(); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup RegisterForDeviceDetectionEvent + /// \~english @par Summary + /// API to register a Callback function for receiving the timing of when an event occurs in the device. + /// \~english @param [in] f_eDevDetectEvent + /// SS_DeviceDetectionServerEvents - Event type (USB/SD/...etc event) + /// \~english @param [in] f_pCallBackFn + /// CbFuncPtr - Pointer to a callback function that corresponds to the event + /// \~english @param [in] pfilepath + /// PCSTR - Pointer to the file path name(Non-support:Be NULL) + /// \~english @par + /// Event type (enum values of SS_DeviceDetectionServerEvents) + /// - SS_DEV_DETECT_ANY_USB_EV : Notify the insertion and mount path of USB MassStorage class(USB + /// mass storage is subject) + /// - SS_DEV_DETECT_ANY_SD_EV : Notify the insertion and mount path of SD card + /// - SS_DEV_INFO_ANY_USB_EV : Notify the USB device insertion and removal detection(All USB + /// devices are subject) + /// - SS_DEV_DETECT_ANY_DISC_EV : Notify the insertion of DISC(BD, DVD, CD) and mount path of block + /// devices + /// - SS_DEV_DETECT_ANY_USB_NCM_EV : Notify the insertion and network IF name of the USB NCM class + /// device(for MirrorLink) + /// - SS_DEV_DETECT_ANY_USB__CWORD57__EV : Notify the insertion and removal and the device file name of the + /// _CWORD57_ device(Rather than the _CWORD57_ only class, the device is subject) + /// - SS_DEV_DETECT_ANY_USB_ACM_EV : Notify the insertion and removal and device file name of the USB + /// ACM class device(for DCM device) + /// - SS_DEV_DETECT_ANY_USB_DEV_MNG_EV : Notify the insertion and removal and device file name of the USB + /// DeviceManagementModel class(for DCM device) + /// - SS_DEV_DETECT_ANY_USB_VEHICLE_CTRL_EV : Notify the insertion and removal and device file name of the USB + /// Vehicle Control class(for DCM device) + /// - SS_DEV_DETECT_ANY_USB_DSRC_APP_EV : Notify the insertion and removal and device file name of the USB + /// DSRC Application class(for DSRC device) + /// - SS_DEV_DETECT_ANY_USB_DSRC_CTRL_EV : Notify the insertion and removal and device file name of the USB + /// DSRC Control class(for DSRC device) + /// - SS_DEV_DETECT_ANY_USB_IR_VICS_DATA_EV : Notify the insertion and removal and device file name of the USB + /// IR-VICS Data class(for DSRC device) + /// - SS_DEV_ERR_USB_OVER_CURRENT_EV : Notify the overcurrent detection error of USB + /// - SS_DEV_DETECT_ANY_USB_MTP_EV : Notify the insertion and mount path of USB MTP class device + /// - SS_DEV_INFO_ANY_USB_NOTIFY_EV : Notify the connection of non-compliant USB device + /// - SS_DEV_DETECT_ANY_USB__CWORD57__ROLE_EV : Notify the insertion and removal of the _CWORD57_ device after + /// RoleSW(Rather than the _CWORD57_ only class, the device is subject) + /// - SS_DEV_INFO_SD_FORMAT_COMP_EV : Notify the SD format results + /// - SS_DEV_DETECT_ANY_USB_DCM_NCM_EV : Notify the insertion and removal and network IF name of the USB + /// NCM class device(for DCM) + /// - SS_DEV_INFO_ANY_USB_DVDP_EV : Notify the insertion and removal of the DVD-P device + /// \~english @par + /// For SS_DEV_INFO_ANY_USB_NOTIFY_EV, it is also notified in the event the following conditions. + /// - When the enumeration failed. + /// - When it detects the current excess of the USB device connected to the bus power HUB. + /// - When it is detected that the number of the USB device has exceeded the number of support. + /// - When it is detected that the HUB is connected beyond the HUB number that supports. + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldParam Invalid parameter + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer + /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full + /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor + /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) + /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory) + /// \~english @par Preconditions + /// - SS_DeviceDetectionService process has been started. + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop etc) \n + /// has been done, and Availability of Device Detection Service is TRUE. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hSession) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Callback function pointer specified by the argument is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - HANDLES in the class member variables (m_hApp) is NULL. [eFrameworkunifiedStatusInvldParam] + /// - HANDLE in the class member variables (m_hApp) is not appropriate (which is invalid) [eFrameworkunifiedStatusInvldParam] + /// - HANDLE in the class member variables (m_hSession) is not appropriate. (which is invalid) + /// [eFrameworkunifiedStatusNullPointer] + /// - SS_DeviceDetectionService message queue for the session is full. [eFrameworkunifiedStatusMsgQFull] + /// - Message Queue HANDLE for the session for SS_DeviceDetectionService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Message Queue HANDLE for the session for SS_DeviceDetectionService are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusInvldHandle] + /// - Session message queue name to SS_DeviceDetectionService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Is invalid transmission file descriptor of the session message to SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusErrNoEBADF] + /// - Interruption by the system call (signal) has occurred during the transmission of the session message to + /// SS_DeviceDetectionService. [eFrameworkunifiedStatusErrNoEINTR] + /// - It is an incorrect size of the transmit buffer of the session message to SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusInvldBufSize] + /// - Some sort of error has occurred at the time of transmission of the session message to + /// SS_DeviceDetectionService. [eFrameworkunifiedStatusFail] + /// - It failed to shared memory access for transmission of the session message to SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusErrOther] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Pub-Sub x Pub-Sub + /// \~english @par Detail + /// Which is a method to register a callback function for receiving the timing of the \n + /// occurrence of an event in the device. \n + /// \~english @see UnRegisterForDeviceDetectionEvent + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus RegisterForDeviceDetectionEvent( + SS_DeviceDetectionServerEvents f_eDevDetectEvent, CbFuncPtr f_pCallBackFn, + PCSTR pfilepath = NULL); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup UnRegisterForDeviceDetectionEvent + /// \~english @par Summary + /// API to release a Callback function that corresponds to the event notification from the device + /// \~english @param [in] f_eDevDetectEvent + /// SS_DeviceDetectionServerEvents - Event notification type (USB/SD/...etc event) + /// \~english @par + /// Releasable event notification type (enum values of SS_DeviceDetectionServerEvents) + /// - SS_DEV_DETECT_ANY_USB_EV : Notify the insertion and mount path of USB MassStorage class(USB + /// mass storage is subject) + /// - SS_DEV_DETECT_ANY_SD_EV : Notify the insertion and mount path of SD card + /// - SS_DEV_INFO_ANY_USB_EV : Notify the USB device insertion and removal detection(All USB + /// devices are subject) + /// - SS_DEV_DETECT_ANY_DISC_EV : Notify the insertion of DISC(BD, DVD, CD) and mount path of block + /// devices + /// - SS_DEV_DETECT_ANY_USB_NCM_EV : Notify the insertion and network IF name of the USB NCM class + /// device(for MirrorLink) + /// - SS_DEV_DETECT_ANY_USB__CWORD57__EV : Notify the insertion and removal and the device file name of the + /// _CWORD57_ device(Rather than the _CWORD57_ only class, the device is subject) + /// - SS_DEV_DETECT_ANY_USB_ACM_EV : Notify the insertion and removal and device file name of the USB + /// ACM class device(for DCM device) + /// - SS_DEV_DETECT_ANY_USB_DEV_MNG_EV : Notify the insertion and removal and device file name of the USB + /// DeviceManagementModel class(for DCM device) + /// - SS_DEV_DETECT_ANY_USB_VEHICLE_CTRL_EV : Notify the insertion and removal and device file name of the USB + /// Vehicle Control class(for DCM device) + /// - SS_DEV_DETECT_ANY_USB_DSRC_APP_EV : Notify the insertion and removal and device file name of the USB + /// DSRC Application class(for DSRC device) + /// - SS_DEV_DETECT_ANY_USB_DSRC_CTRL_EV : Notify the insertion and removal and device file name of the USB + /// DSRC Control class(for DSRC device) + /// - SS_DEV_DETECT_ANY_USB_IR_VICS_DATA_EV : Notify the insertion and removal and device file name of the USB + /// IR-VICS Data class(for DSRC device) + /// - SS_DEV_ERR_USB_OVER_CURRENT_EV : Notify the overcurrent detection error of USB + /// - SS_DEV_DETECT_ANY_USB_MTP_EV : Notify the insertion and mount path of USB MTP class device + /// - SS_DEV_INFO_ANY_USB_NOTIFY_EV : Notify the connection of non-compliant USB device + /// - SS_DEV_DETECT_ANY_USB__CWORD57__ROLE_EV : Notify the insertion and removal of the _CWORD57_ device after + /// RoleSW(Rather than the _CWORD57_ only class, the device is subject) + /// - SS_DEV_INFO_SD_FORMAT_COMP_EV : Notify the SD format results + /// - SS_DEV_DETECT_FILEPATHNAME_EV : Notify the specified file access in pfilepath + /// - SS_DEV_DETECT_ANY_USB_DCM_NCM_EV : Notify the insertion and removal and network IF name of the USB + /// NCM class device(for DCM) + /// - SS_DEV_INFO_ANY_USB_DVDP_EV : Notify the insertion and removal of the DVD-P device + /// \~english @par + /// For SS_DEV_INFO_ANY_USB_NOTIFY_EV, it is also notified in the event the following conditions. + /// - When the enumeration failed. + /// - When it detects the current excess of the USB device connected to the bus power HUB. + /// - When it is detected that the number of the USB device has exceeded the number of support. + /// - When it is detected that the HUB is connected beyond the HUB number that supports. + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldParam Invalid parameter + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer + /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full + /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor + /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) + /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory) + /// \~english @par Preconditions + /// - SS_DeviceDetectionService process has been started. + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop etc) \n + /// has been done, and Availability of Device Detection Service is TRUE. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hSession) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - HANDLES in the class member variables (m_hApp) is NULL. [eFrameworkunifiedStatusInvldParam] + /// - HANDLE in the class member variables (m_hApp) is not appropriate (which is invalid) [eFrameworkunifiedStatusInvldParam] + /// - The service can not be determined from the HANDLE in the class member variables (m_hApp). [eFrameworkunifiedStatusFail] + /// - HANDLE in the class member variables (m_hSession) is not appropriate. (which is invalid) + /// [eFrameworkunifiedStatusNullPointer] + /// - SS_DeviceDetectionService message queue for the session is full. [eFrameworkunifiedStatusMsgQFull] + /// - Message Queue HANDLE for the session for SS_DeviceDetectionService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Message Queue HANDLE for the session for SS_DeviceDetectionService are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusInvldHandle] + /// - Session message queue name to SS_DeviceDetectionService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Is invalid transmission file descriptor of the session message to SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusErrNoEBADF] + /// - Interruption by the system call (signal) has occurred during the transmission of the session message to + /// SS_DeviceDetectionService. [eFrameworkunifiedStatusErrNoEINTR] + /// - It is an incorrect size of the transmit buffer of the session message to SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusInvldBufSize] + /// - Some sort of error has occurred at the time of transmission of the session message to + /// SS_DeviceDetectionService. [eFrameworkunifiedStatusFail] + /// - It failed to shared memory access for transmission of the session message to SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusErrOther] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Pub-Sub x Pub-Sub + /// \~english @par Detail + /// Which is a method to release a callback function for receiving the timing of the \n + /// occurrence of an event in the device. \n + /// \~english @see RegisterForDeviceDetectionEvent + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus UnRegisterForDeviceDetectionEvent( + SS_DeviceDetectionServerEvents f_eDevDetectEvent); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup CloseSessionRequest + /// \~english @par Summary + /// API to perform the destruction of services/session of Device Detection Service + /// \~english @param None + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full + /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor + /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) + /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @retval eFrameworkunifiedStatusErrOther Other error has occurred(Cannot access shared memory, etc.) + /// \~english @par Preconditions + /// - SS_DeviceDetectionService process has been started. + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop etc) \n + /// has been done, and Availability of Device Detection Service is TRUE. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hService/m_hSession) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - SS_DeviceDetectionService message queue for the session is full. [eFrameworkunifiedStatusMsgQFull] + /// - Is invalid transmission file descriptor of the session message to SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusErrNoEBADF] + /// - Interruption by the system call (signal) has occurred during the transmission of the session message to + /// SS_DeviceDetectionService. [eFrameworkunifiedStatusErrNoEINTR] + /// - It is an incorrect size of the transmit buffer of the session message to SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusInvldBufSize] + /// - Some sort of error has occurred at the time of transmission of the session message to + /// SS_DeviceDetectionService. [eFrameworkunifiedStatusFail] + /// - It failed to shared memory access for transmission of the session message to SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusErrOther] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Method x Method + /// \~english @par Detail + /// And destruct the service of device_detection_service, which is a method for destructing a session.\n + /// (To send the command of PROTOCOL_CLOSE_SESSION_REQ to device_detection_service.)\n + /// \~english @see OpenSessionRequest + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus CloseSessionRequest(); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup DetachDeviceDetectionAvailabilityCb + /// \~english @par Summary + /// API to release the Callback function for Availability notification of Device Detection Service. + /// \~english @param None + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldParam Invalid parameter + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusInvldHndlType Invalid type of handle + /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full + /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor + /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) + /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @retval eFrameworkunifiedStatusErrOther Other error has occurred(Cannot access shared memory, etc.) + /// \~english @par Preconditions + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop etc) \n + /// has been done, and Availability of Device Detection Service is TRUE. + /// - The call-back function for Availability notification has been registered. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hApp) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Can not get the App/Thread name from HANDLE in the class member variables (m_hApp). + /// [eFrameworkunifiedStatusInvldHandle] + /// - HANDLE (m_hApp) in the class member variables are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusInvldParam] + /// - Can not be acquired memory in the acquisition of the buffer of the message for transmission (malloc). + /// [eFrameworkunifiedStatusFail] + /// - Message queue HANDLE is NULL in the HANDLE of the class member variables (m_hApp). [eFrameworkunifiedStatusInvldParam] + /// - Message queue HANDLE in HANDLE (m_hApp) of the class member variables are not appropriate(which is + /// invalid). [eFrameworkunifiedStatusInvldParam] + /// - It is not appropriate message queue name of HANDLE (m_hApp) in the class member variables(The name is + /// NULL, more than 20byte). [eFrameworkunifiedStatusInvldHandle] + /// - Is not a transmission type message queue type of HANDLE (m_hApp) in the class member variables. + /// [eFrameworkunifiedStatusInvldHndlType] + /// - Callback function for Availability notification is not registered. [eFrameworkunifiedStatusFail] + /// - Session message queue is full to SS_DeviceDetectionService. [eFrameworkunifiedStatusMsgQFull] + /// - It is invalid transmission file descriptor of the session message to SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusErrNoEBADF] + /// - Interruption by the system call (signal) has occurred during the transmission of the session message for + /// SS_DeviceDetectionService. [eFrameworkunifiedStatusErrNoEINTR] + /// - Incorrect size of the transmit buffer of the session message to SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusInvldBufSize] + /// - Any errors occur during the transmission of a session message to SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusFail] + /// - It failed to shared memory access for transmission of the session message for SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusErrOther] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Sync only(None communication) + /// \~english @par Detail + /// Is a method for releasing a Callback function registered to receive the timing \n + /// initialization is completed device_detection_service + /// (Native Service of API: Use the FrameworkunifiedUnsubscribeNotificationWithCallback, to release \n + /// a Callback function for Availability notification of Device Detection Service.) + /// \~english @see NotifyOnDeviceDetectionAvailability + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus DetachDeviceDetectionAvailabilityCb(); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup DetachOpenSessionAckCb + /// \~english @par Summary + /// API to release the Callback function for OpenSessionRequest response from the Device Detection Service. + /// \~english @param None + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldParam Invalid parameter + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @par Preconditions + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop etc) \n + /// has been done. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hApp) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - HANDLE (m_hApp) in the class member variables are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusInvldParam] + /// - Not Callback function information of the release target is present. [eFrameworkunifiedStatusFail] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Sync only(None communication) + /// \~english @par Detail + /// To cancel the Callback function for receiving a response of completion of OpenSessionRequest from + /// Dispatcher. \n + /// (Native Service of API: Use the FrameworkunifiedDetachCallbackFromDispatcher, to cancel a Callback function for receiving + /// \n + /// a response of completion of OpenSessionRequest from Dispatcher.) \n + /// \~english @see NotifyOnOpenSessionAck + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus DetachOpenSessionAckCb(); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup DetachCloseSessionAckCb + /// \~english @par Summary + /// API to release the Callback function for CloseSessionRequest response from the Device Detection Service. + /// \~english @param None + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldParam Invalid parameter + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @par Preconditions + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop etc) \n + /// has been done. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hApp) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - HANDLE (m_hApp) in the class member variables are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusInvldParam] + /// - Not Callback function information of the release target is present. [eFrameworkunifiedStatusFail] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Sync only(None communication) + /// \~english @par Detail + /// To cancel the Callback function for receiving a response of completion of CloseSessionRequest from + /// Dispatcher. \n + /// (Native Service of API: Use the FrameworkunifiedDetachCallbackFromDispatcher, to cancel a Callback function for receiving + /// \n + /// a response of completion of CloseSessionRequest from Dispatcher.) \n + /// \~english @see NotifyOnCloseSessionAck + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus DetachCloseSessionAckCb(); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup MountSD + /// \~english @par Summary + /// API to mount the specified SD partition + /// \~english @param [in] part_num + /// uint8_t - Partition number of SD card(From 0 to 3) + /// \~english @param [out] already_mounted + /// BOOL* - Mount existence result + /// \~english @par + /// - TRUE : Already mount + /// - FALSE : Mount request is accepted. Wait for mount notification. + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldParam Invalid parameter + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer + /// \~english @retval eFrameworkunifiedStatusInvldHndlType Invalid type of handle + /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full + /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor + /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) + /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @retval eFrameworkunifiedStatusAccessError Access error occurred + /// \~english @retval eFrameworkunifiedStatusErrOther Other error has occurred(Cannot access shared memory, etc.) + /// \~english @par Preconditions + /// - SS_DeviceDetectionService process has been started. + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop etc) \n + /// has been done, and Availability of Device Detection Service is TRUE. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hSession) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - SD card partition number (part_num) exceeds the 3 specified by the argument. [eFrameworkunifiedStatusInvldParam] + /// - Can not have access to the device file for the SD. [eFrameworkunifiedStatusAccessError] + /// - HANDLE (m_hSession) in the class member variables are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusNullPointer] + /// - Message queue HANDLE is NULL in the HANDLE of the class member variables (m_hSession). + /// [eFrameworkunifiedStatusInvldHandle] + /// - HANDLE in the class member variables (m_hSession) in the message queue name is NULL. + /// [eFrameworkunifiedStatusInvldHandle] + /// - Message queue HANDLE in HANDLE (m_hSession) of the class member variables are not appropriate(which is + /// invalid). [eFrameworkunifiedStatusInvldHandle] + /// - It is not appropriate message queue name of HANDLE (m_hSession) in the class member variables(The name is + /// NULL, more than 20byte). [eFrameworkunifiedStatusInvldHandle] + /// - Is not a transmission type message queue type of HANDLE (m_hSession) in the class member variables. + /// [eFrameworkunifiedStatusInvldHndlType] + /// - Session message queue is full to SS_DeviceDetectionService. [eFrameworkunifiedStatusMsgQFull] + /// - It is invalid transmission file descriptor of the session message to SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusErrNoEBADF] + /// - Interruption by the system call (signal) has occurred during the transmission of the session message for + /// SS_DeviceDetectionService. [eFrameworkunifiedStatusErrNoEINTR] + /// - Incorrect size of the transmit buffer of the session message to SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusInvldBufSize] + /// - Any errors occur during the transmission of a session message to SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusFail] + /// - It failed to shared memory access for transmission of the session message for SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusErrOther] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Method only + /// \~english @par Detail + /// The API is a method used to mount the specified partition (area).\n + /// The target device is an SD card. + /// Service(Thread) to call this method is not limited. Therefore, \n + /// to be utilized as a mismatch does not occur between the service \n + /// to use the SD card. \n + /// SD card in the specified partition, already returned eFrameworkunifiedStatusOK \n + /// if mount existence results (already_mounted) in the TRUE that is mounted.\n + /// If it is not already mounted mount existence results (already_mounted) \n + /// and to FALSE, then carry out the SD of the mount request to Device \n + /// Detection Service. + /// \~english @see UmountSD, RegisterForDeviceDetectionEvent + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus MountSD(uint8_t part_num, BOOL *already_mounted); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup UmountSD + /// \~english @par Summary + /// API to mount the specified SD partition + /// \~english @param [in] part_num + /// uint8_t - Partition number of SD card(From 0 to 3) + /// \~english @param [out] already_umounted + /// BOOL* - Mount existence result + /// \~english @par + /// - TRUE : Already umount + /// - FALSE : Umount request is accepted. Wait for umount notification. + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldParam Invalid parameter + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer + /// \~english @retval eFrameworkunifiedStatusInvldHndlType Invalid type of handle + /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full + /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor + /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) + /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @retval eFrameworkunifiedStatusAccessError Access error occurred + /// \~english @retval eFrameworkunifiedStatusErrOther Other error has occurred(Cannot access shared memory, etc.) + /// \~english @par Preconditions + /// - SS_DeviceDetectionService process has been started. + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop etc) \n + /// has been done, and Availability of Device Detection Service is TRUE. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hSession) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - SD card partition number (part_num) exceeds the 3 specified by the argument. [eFrameworkunifiedStatusInvldParam] + /// - Can not have access to the device file for the SD. [eFrameworkunifiedStatusAccessError] + /// - HANDLE (m_hSession) in the class member variables are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusNullPointer] + /// - Message queue HANDLE is NULL in the HANDLE of the class member variables (m_hSession). + /// [eFrameworkunifiedStatusInvldHandle] + /// - HANDLE in the class member variables (m_hSession) in the message queue name is NULL. + /// [eFrameworkunifiedStatusInvldHandle] + /// - Message queue HANDLE in HANDLE (m_hSession) of the class member variables are not appropriate(which is + /// invalid). [eFrameworkunifiedStatusInvldHandle] + /// - It is not appropriate message queue name of HANDLE (m_hSession) in the class member variables(The name is + /// NULL, more than 20byte). [eFrameworkunifiedStatusInvldHandle] + /// - Is not a transmission type message queue type of HANDLE (m_hSession) in the class member variables. + /// [eFrameworkunifiedStatusInvldHndlType] + /// - Session message queue is full to SS_DeviceDetectionService. [eFrameworkunifiedStatusMsgQFull] + /// - It is invalid transmission file descriptor of the session message to SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusErrNoEBADF] + /// - Interruption by the system call (signal) has occurred during the transmission of the session message for + /// SS_DeviceDetectionService. [eFrameworkunifiedStatusErrNoEINTR] + /// - Incorrect size of the transmit buffer of the session message to SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusInvldBufSize] + /// - Any errors occur during the transmission of a session message to SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusFail] + /// - It failed to shared memory access for transmission of the session message for SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusErrOther] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Method only + /// \~english @par Detail + /// The API is a method used to mount the specified partition (area).\n + /// The target device is an SD card. + /// Service(Thread) to call this method is not limited. Therefore, \n + /// to be utilized as a mismatch does not occur between the service \n + /// to use the SD card. \n + /// SD card in the specified partition, already returned eFrameworkunifiedStatusOK \n + /// if unmount existence results (already_unmounted) in the TRUE that is unmounted. + /// If it is not already unmounted unmount existence results (already_unmounted) \n + /// and to FALSE, then carry out the SD of the unmount request to Device \n + /// Detection Service. \n + /// That all of the services specifically, to call this API after the close \n + /// completion of the directory and file of the SD card. \n + /// Also, do not call this API in a state in which a directory on the SD card \n + /// in the current directory. (At SD drive processing threads in SS_DeviceDetectionService, \n + /// umount fails, error of SS_DEV_ERR_BUSY is returned as an asynchronous notification \n + /// events.) + /// \~english @see MountSD, RegisterForDeviceDetectionEvent + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus UmountSD(uint8_t part_num, BOOL *already_umounted); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup UsbVBusReset + /// \~english @par Summary + /// API to reset the VBUS of the specified USB port + /// \~english @param [in] port + /// uint8_t - USB port number + /// \~english @param [in] inteval + /// uint8_t - interval (interval * 100 [msec]) + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldParam Invalid parameter + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer + /// \~english @retval eFrameworkunifiedStatusInvldHndlType Invalid type of handle + /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full + /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor + /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) + /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @retval eFrameworkunifiedStatusErrOther Other error has occurred(Cannot access shared memory, etc.) + /// \~english @par Preconditions + /// - SS_DeviceDetectionService process has been started. + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop etc) \n + /// has been done, and Availability of Device Detection Service is TRUE. + /// - Checking USB port number should be done before calling this API. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hSession) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Environment variable (TARGET_BOARD) is not defined. [eFrameworkunifiedStatusFail] + /// [eFrameworkunifiedStatusInvldParam] + /// - Name of the target board in the environment variable (TARGET_BOARD) is not correct. [eFrameworkunifiedStatusInvldParam] + /// - HANDLE (m_hSession) in the class member variables are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusNullPointer] + /// - Message queue HANDLE is NULL in the HANDLE of the class member variables (m_hSession). + /// [eFrameworkunifiedStatusInvldHandle] + /// - HANDLE in the class member variables (m_hSession) in the message queue name is NULL. + /// [eFrameworkunifiedStatusInvldHandle] + /// - Message queue HANDLE in HANDLE (m_hSession) of the class member variables are not appropriate(which is + /// invalid). [eFrameworkunifiedStatusInvldHandle] + /// - It is not appropriate message queue name of HANDLE (m_hSession) in the class member variables(The name is + /// NULL, more than 20byte). [eFrameworkunifiedStatusInvldHandle] + /// - Is not a transmission type message queue type of HANDLE (m_hSession) in the class member variables. + /// [eFrameworkunifiedStatusInvldHndlType] + /// - Session message queue is full to SS_DeviceDetectionService. [eFrameworkunifiedStatusMsgQFull] + /// - It is invalid transmission file descriptor of the session message to SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusErrNoEBADF] + /// - Interruption by the system call (signal) has occurred during the transmission of the session message for + /// SS_DeviceDetectionService. [eFrameworkunifiedStatusErrNoEINTR] + /// - Incorrect size of the transmit buffer of the session message to SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusInvldBufSize] + /// - Any errors occur during the transmission of a session message to SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusFail] + /// - It failed to shared memory access for transmission of the session message for SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusErrOther] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Fire and Forget only + /// \~english @par Detail + /// The API is a method for resetting the VBUS of the specified USB port.\n + /// Environment variable (TARGET_BOARD) is defined in the configure options \n + /// specified at the time of build. \n + /// (Example. TARGET_BOARD:_CWORD71__CWORD91__e2_na_t__CWORD84_2__CWORD71_) \n + /// Before reset USB port for DCM, the device files(dcm_acm, dcm_vc, dcm_wdm) \n + /// related to DCM-related must be closed. \n + /// *) Device file may not be created correctly when the process of Disconnect/Connect \n + /// without closing to work. + /// \~english @see None + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus UsbVBusReset(int8_t port); + EFrameworkunifiedStatus UsbVBusReset(int8_t port, uint8_t interval); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup RoleSwStateNotify + /// \~english @par Summary + /// API to notify RoleSW state + /// \~english @param [in] state + /// SS_DEV_ROLE_SW_STATE - RoleSW state + /// \~english @par + /// enum variable SS_DEV_ROLE_SW_STATE + /// - SS_DEV_ROLE_SW_START : Start + /// - SS_DEV_ROLE_SW_BEGIN_END : Beginning of End + /// - SS_DEV_ROLE_SW_END : End + /// - SS_DEV_ROLE_SW_RESTART : Restart + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer + /// \~english @retval eFrameworkunifiedStatusInvldHndlType Invalid type of handle + /// \~english @retval eFrameworkunifiedStatusInvldQName Invalid Message Queue Name + /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full + /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor + /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) + /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @retval eFrameworkunifiedStatusBadConnection It can not be a socket connection + /// \~english @retval eFrameworkunifiedStatusErrOther Other error has occurred(Cannot access shared memory, etc.) + /// \~english @par Preconditions + /// - SS_DeviceDetectionService process has been started. + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop etc) \n + /// has been done, and Availability of Device Detection Service is TRUE. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hSession) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - HANDLE (m_hSession) in the class member variables are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusNullPointer] + /// - It failed to open the message queue for messages received from SS_DeviceDetectionService. [eFrameworkunifiedStatusFail] + /// - It failed to buffer acquisition for messages received from SS_DeviceDetectionService(malloc failure). + /// [eFrameworkunifiedStatusFail] + /// - It failed to create a sequence ID of the message to be sent to the SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusFail] + /// - Message queue HANDLE is NULL in the HANDLE of the class member variables (m_hSession). + /// [eFrameworkunifiedStatusInvldHandle] + /// - HANDLE in the class member variables (m_hSession) in the message queue name is NULL. + /// [eFrameworkunifiedStatusInvldHandle] + /// - Message queue HANDLE name in the HANDLE (m_hSession) in the class member variables is NULL. + /// [eFrameworkunifiedStatusInvldQName] + /// - Message queue HANDLE name in the HANDLE (hService) in the class member variables exceeds 20byte. + /// [eFrameworkunifiedStatusInvldQName] + /// - Message queue HANDLE in HANDLE (m_hSession) of the class member variables are not appropriate(which is + /// invalid). [eFrameworkunifiedStatusInvldHandle] + /// - It is not appropriate message queue name of HANDLE (m_hSession) in the class member variables(The name is + /// NULL, more than 20byte). [eFrameworkunifiedStatusInvldHandle] + /// - Is not a transmission type message queue type of HANDLE (m_hSession) in the class member variables. + /// [eFrameworkunifiedStatusInvldHndlType] + /// - Session message queue is full to SS_DeviceDetectionService. [eFrameworkunifiedStatusMsgQFull] + /// - It is invalid send and receive file descriptor of the session message to SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusErrNoEBADF] + /// - Interruption by the system call (signal) has occurred during the send and receive of the session message + /// for SS_DeviceDetectionService. [eFrameworkunifiedStatusErrNoEINTR] + /// - Incorrect size of the send and receive buffer of the session message to SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusInvldBufSize] + /// - Any errors occur during the send and receive of a session message to SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusFail] + /// - It failed to shared memory access for send and receive of the session message for + /// SS_DeviceDetectionService. [eFrameworkunifiedStatusErrOther] + /// - It failed to connect to the socket for the response message to be received from SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusFail] + /// - It failed to wait control of the response message received from SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusFail] + /// - Interruption by the system call (signal) has occurred in wait in the response message received from + /// SS_DeviceDetectionService. [eFrameworkunifiedStatusFail] + /// - After the failure at the time of the response message received from SS_DeviceDetectionService, it failed + /// to re-connection of the Socket. [eFrameworkunifiedStatusBadConnection] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Sync x Method + /// \~english @par Detail + /// By executing this API, Device Detection Service recognizes the state \n + /// has been switched from the USB Host due to RoleSW to USB Function. \n + /// The initial state of Detection is a state(SS_DEV_ROLE_SW_END:End state) \n + /// that has not been RoleSW. \n + /// (It is a state that accepts a SS_DEV_ROLE_SW_START:Start.) + /// \~english @see None + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus RoleSwStateNotify(SS_DEV_ROLE_SW_STATE state); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup FormatSD + /// \~english @par Summary + /// API to Format SD + /// \~english @param None + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer + /// \~english @retval eFrameworkunifiedStatusInvldHndlType Invalid type of handle + /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full + /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor + /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) + /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @retval eFrameworkunifiedStatusAccessError Access error occurred + /// \~english @retval eFrameworkunifiedStatusBadConnection It can not be a socket connection + /// \~english @retval eFrameworkunifiedStatusErrOther Other error has occurred(Cannot access shared memory, etc.) + /// \~english @par Preconditions + /// - SS_DeviceDetectionService process has been started. + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop etc) \n + /// has been done, and Availability of Device Detection Service is TRUE. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hSession) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Can not have access to the device file for the SD. [eFrameworkunifiedStatusAccessError] + /// - HANDLE (m_hSession) in the class member variables are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusNullPointer] + /// - Message queue HANDLE is NULL in the HANDLE of the class member variables (m_hSession). + /// [eFrameworkunifiedStatusInvldHandle] + /// - HANDLE in the class member variables (m_hSession) in the message queue name is NULL. + /// [eFrameworkunifiedStatusInvldHandle] + /// - Message queue HANDLE in HANDLE (m_hSession) of the class member variables are not appropriate(which is + /// invalid). [eFrameworkunifiedStatusInvldHandle] + /// - It is not appropriate message queue name of HANDLE (m_hSession) in the class member variables(The name is + /// NULL, more than 20byte). [eFrameworkunifiedStatusInvldHandle] + /// - Is not a transmission type message queue type of HANDLE (m_hSession) in the class member variables. + /// [eFrameworkunifiedStatusInvldHndlType] + /// - Session message queue is full to SS_DeviceDetectionService. [eFrameworkunifiedStatusMsgQFull] + /// - It is invalid transmission file descriptor of the session message to SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusErrNoEBADF] + /// - Interruption by the system call (signal) has occurred during the transmission of the session message for + /// SS_DeviceDetectionService. [eFrameworkunifiedStatusErrNoEINTR] + /// - Incorrect size of the transmit buffer of the session message to SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusInvldBufSize] + /// - Any errors occur during the transmission of a session message to SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusFail] + /// - It failed to shared memory access for transmission of the session message for SS_DeviceDetectionService. + /// [eFrameworkunifiedStatusErrOther] + /// \~english @par Detail + /// The SD card inserted into the _CWORD84_ side in this API is formatted in compliance with the SD standard.\n + /// A result of format implementation is notified by SS_DEV_INFO_SD_FORMAT_COMP_EV events.\n + /// String pickled notification content and the result is as follows.\n + /// - SS_DEV_OK : Format success \n + /// - SS_DEV_ERR_BUSY : For unmount unexecuted, format failure \n + /// - SS_DEV_ERR : Format fails for any other factors + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Method x Method + /// \~english @par + /// This API is able to call after the SD card umount completion and the device file close of \n + /// SD card is complete.\n + /// If the SD card umount of has not been completed, SS_DEV_ERR_BUSY is notified.\n + /// If the device file of the SD card has not been close, although it is the format becomes \n + /// the operation completed, there can be no assurance of the operation. + /// \~english @see MountSD, UmountSD, RegisterForDeviceDetectionEvent + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus FormatSD(void); + + private: + HANDLE OpenService(); + UI_8 Crc7Checksum(UI_8 *data, UI_8 sz); + HANDLE m_hApp; + HANDLE m_hService; + HANDLE m_hSession; + BOOL CheckDetectEvent(SS_DeviceDetectionServerEvents f_eDevDetectEvent); +}; + +#endif /* SS_DEVICE_DETECTION_SERVICE_IFC_H_ */ // NOLINT (build/header_guard) + +/** @}*/ // end of device_manager +/** @}*/ // end of device_detection_service +/** @}*/ // end of system_service +/** @}*/ // end of BaseSystem diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_devicedetection_service_local.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_devicedetection_service_local.h new file mode 100755 index 0000000..c85e6b3 --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_devicedetection_service_local.h @@ -0,0 +1,37 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @file + * @brief This is local header file of Device Detection service. + */ + +/////////////////////////////////////////////////////////////////////////////// +/// \ingroup tag_SystemServicesIf +/// \brief This file supports the Device Detection service. +/// +/////////////////////////////////////////////////////////////////////////////// + +#ifndef _SS_DEVICEDETECTION_SERVER_LOCAL_H_ // NOLINT (build/header_guard) +#define _SS_DEVICEDETECTION_SERVER_LOCAL_H_ + + +// Structure for SS_DEV_REMOUNT_PARTITION +typedef struct _RemountPatitionInfo { + unsigned long mountflags; // NOLINT (runtime/int) + CHAR deviceMountpath[FILEPATH_SIZE]; // Mount path +} SS_RemountPatitionInfo; + +#endif /* _SS_DEVICEDETECTION_SERVER_LOCAL_H_ */ // NOLINT (build/header_guard) diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_devicedetection_service_notifications.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_devicedetection_service_notifications.h new file mode 100755 index 0000000..7de03b9 --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_devicedetection_service_notifications.h @@ -0,0 +1,58 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file ss_devicedetection_service_notifications.h + * @brief This file supports the Device Detection service. + */ + +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup device_detection_service + * @ingroup system_service + * @{ + */ + +#ifndef SS_DEVICE_DETECTION_SERVICE_NOTIFICATIONS_H_ // NOLINT (build/header_guard) +#define SS_DEVICE_DETECTION_SERVICE_NOTIFICATIONS_H_ + +#include "system_service/ss_services.h" + +/** + * \~english SS_DeviceDetection service availability notification. + */ +#define NTFY_SS_Device_Detection_Service_Availability SS_DEV_DETECT_SRV"/Availability" + +/** + * \~english SS_DeviceDetection service USB error notification. + */ +#define NTFY_SS_Device_Detection_USB_Error SS_DEV_DETECT_SRV"/USBError" + +/** + * \~english SS_DeviceDetection service MMCSD error notification. + */ +#define NTFY_SS_Device_Detection_MMCSD_Error SS_DEV_DETECT_SRV"/MMCSDError" + +#endif /* SS_DEVICE_DETECTION_SERVICE_NOTIFICATIONS_H_ */ // NOLINT (build/header_guard) + +/** @}*/ // end of device_detection_service +/** @}*/ // end of system_service +/** @}*/ // end of BaseSystem diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_devicedetection_service_protocol.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_devicedetection_service_protocol.h new file mode 100755 index 0000000..cb54ee5 --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_devicedetection_service_protocol.h @@ -0,0 +1,143 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file ss_devicedetection_service_protocol.h + * @brief This file supports the Device Detection service. + */ + +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup device_detection_service + * @ingroup system_service + * @{ + */ + +#ifndef _SS_DEVICEDETECTION_SERVICE_PROTOCOL_H_ // NOLINT (build/header_guard) +#define _SS_DEVICEDETECTION_SERVICE_PROTOCOL_H_ + +#include +#include +#include "system_service/ss_devicedetection_service.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \~english Event type (USB/SD/...etc event) + */ +typedef enum _DeviceDetectionServerEvents { + /** + * \~english Notify whenever a USB MassStorage device is connected/removed + */ + SS_DEV_DETECT_ANY_USB_EV = 121, + /** + * \~english Notify whenever a SD device is connected/removed + */ + SS_DEV_DETECT_ANY_SD_EV = 122, + /** + * \~english Notify all events for all devices + */ + SS_DEV_DETECT_FILEPATHNAME_EV = 123, + /** + * \~english Notify whenever a Navi Emmc device is connected/removed + */ + SS_DEV_DETECT_ANY_EMMC_NAV_EV = 124, + /** + * \~english Notify whenever a USB device is connected/removed + */ + SS_DEV_INFO_ANY_USB_EV = 125, + /** + * \~english Notify whenever a DISC(block) device is connected/removed + */ + SS_DEV_DETECT_ANY_DISC_EV = 126, + /** + * \~english Notify whenever a USB NCM device is connected/removed + */ + SS_DEV_DETECT_ANY_USB_NCM_EV = 127, + /** + * \~english Notify whenever a USB _CWORD57_ device is connected/removed + */ + SS_DEV_DETECT_ANY_USB__CWORD57__EV = 128, + /** + * \~english Notify whenever a USB ACM device is connected/removed (for DCM) + */ + SS_DEV_DETECT_ANY_USB_ACM_EV = 129, + /** + * \~english Notify whenever a USB Device Management device is connected/removed (for DCM) + */ + SS_DEV_DETECT_ANY_USB_DEV_MNG_EV = 130, + /** + * \~english Notify whenever a USB Vics Control device is connected/removed (for DCM) + */ + SS_DEV_DETECT_ANY_USB_VEHICLE_CTRL_EV = 131, + /** + * \~english Notify whenever a USB DSRC Application device is connected/removed (for DSRC) + */ + SS_DEV_DETECT_ANY_USB_DSRC_APP_EV = 132, + /** + * \~english Notify whenever a USB DSRC Control device is connected/removed (for DSRC) + */ + SS_DEV_DETECT_ANY_USB_DSRC_CTRL_EV = 133, + /** + * \~english Notify whenever a USB IR Vics Data device is connected/removed (for DSRC) + */ + SS_DEV_DETECT_ANY_USB_IR_VICS_DATA_EV = 134, + /** + * \~english Notify whenever USB Over Current is Detected + */ + SS_DEV_ERR_USB_OVER_CURRENT_EV = 135, + /** + * \~english Notify whenever USB MTP Device is Detected + */ + SS_DEV_DETECT_ANY_USB_MTP_EV = 136, + /** + * \~english Notify whenever USB Authentication Error Notify + */ + SS_DEV_INFO_ANY_USB_NOTIFY_EV = 137, + /** + * \~english Notify whenever a USB _CWORD57_ device is connected/removed after RoleSW. + */ + SS_DEV_DETECT_ANY_USB__CWORD57__ROLE_EV = 138, + /** + * \~english Notify whenever SD is formated. + */ + SS_DEV_INFO_SD_FORMAT_COMP_EV = 139, + /** + * \~english Notify whenever a USB NCM device is connected/removed (for DCM) + */ + SS_DEV_DETECT_ANY_USB_DCM_NCM_EV = 140, + /** + * \~english Notify whenever a DVD-P device is connected/removed + */ + SS_DEV_INFO_ANY_USB_DVDP_EV = 141, +} SS_DeviceDetectionServerEvents; + +#ifdef __cplusplus +} +#endif + +#endif /* _SS_DEVICEDETECTION_SERVICE_PROTOCOL_H_ */ // NOLINT (build/header_guard) + +/** @}*/ // end of device_detection_service +/** @}*/ // end of system_service +/** @}*/ // end of BaseSystem diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_devicedetection_service_protocol_local.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_devicedetection_service_protocol_local.h new file mode 100755 index 0000000..4b7be37 --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_devicedetection_service_protocol_local.h @@ -0,0 +1,69 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/////////////////////////////////////////////////////////////////////////////// +/// \ingroup tag_SystemServicesIf +/// \brief This file supports the Device Detection service. +/// +/////////////////////////////////////////////////////////////////////////////// +/** + * @file + */ +#ifndef _SS_DEVICEDETECTION_SERVICE_PROTOCOL_LOCAL_H_ // NOLINT (build/header_guard) +#define _SS_DEVICEDETECTION_SERVICE_PROTOCOL_LOCAL_H_ + + +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum _DeviceDetectionServerProtocol { + SS_DEV_DETECT_GET_APP_INFO = 0x10, /// client to service: not really needed + SS_DEV_DETECT_RETURN_APP_INFO = 0x11, /// service to client: not really needed + SS_UDEV_DEV_DETECT_INFO = 0x12, /// UDEV to service: device detect info sent to service + SS_UDEV_DEV_DETECT_FILEPATHNAME_INFO = 0x13, /// File pathname info cmd + SS_REGISTER_FILEPATHNAME = 0x14, /// Register file pathname cmd + SS_BSP_DEV_DETECT_ERR_INFO = 0x15, /// BSP / MCD device insert/removal/mount error report. + SS_REGISTER_DETECT_EVENT = 0x16, /// Register DeviceDetection Event + SS_UDEV_DEV_DEVICE_INFO = 0x17, /// UDEV to service: device info sent to service + SS_UDEV_DEV_DETECT_NCM_INFO = 0x18, /// UDEV to service: detect ncm sent to service + SS_UDEV_DEV_DETECT__CWORD57__INFO = 0x19, /// UDEV to service: detect _CWORD57_ sent to service + SS_UDEV_DEV_DETECT_ACM_INFO = 0x1a, /// UDEV to service: detect ACM sent to service + SS_UDEV_DEV_DETECT_MNG_INFO = 0x1b, /// UDEV to service: detect DeviceManagementModel sent to service + SS_UDEV_DEV_DETECT_VEHICLE_CTRL_INFO = 0x1c, /// UDEV to service: detect Vehicle Control sent to service + SS_UDEV_DEV_DETECT_DSRCCTL_INFO = 0x1d, /// UDEV to service: detect DSRC Application sent to service + SS_UDEV_DEV_DETECT_DSRCAPP_INFO = 0x1e, /// UDEV to service: detect DSRC Control sent to service + SS_UDEV_DEV_DETECT_IRVICS_DATA_INFO = 0x1f, /// UDEV to service: detect IR-VICS Data sent to service + SS_DETECT_USB_OVC_ERR = 0x20, /// USB Monitor OVC to service: detect OverCurrent Error + SS_UDEV_DEV_DETECT_MTP_INFO = 0x21, /// UDEV to service: detect MTP Device + SS_DEV_MOUNT_SD = 0x22, /// client to service: mount SD partion + SS_DEV_UMOUNT_SD = 0x23, /// client to service: umount SD partion + SS_DEV_REMOUNT_PARTITION = 0x24, /// client to service: Remount partion + SS_UNREGISTER_DETECT_EVENT = 0x25, /// UnRegister DeviceDetection event + SS_USB_VBUS_RESET = 0x26, /// client to service: USB Vbus Reset + SS_UDEV_USB_AUTHENTICATION_ERR_INFO = 0x27, /// USB Monitor to service: USB Authentication Error Notify + SS_UDEV_DEV_DETECT_USB_FUNC_INFO = 0x28, /// USB Monitor to service: detect USB Func to service + SS_DEV_ROLE_SW_STATE_NOTIFY = 0x29, /// client to service: notify RoleSw state + SS_DEV_FORMAT_SD = 0x2a, /// client to service: Format SD + SS_INFO_FORMAT_SD = 0x2b, /// SDDRV to service: Infomation Format SD result +}SS_DeviceDetectionServerProtocol; + +#ifdef __cplusplus +} +#endif + +#endif /* _SS_DEVICEDETECTION_SERVICE_PROTOCOL_LOCAL_H_ */ // NOLINT (build/header_guard) + diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_devicedetection_service_types.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_devicedetection_service_types.h new file mode 100755 index 0000000..c5ab1c3 --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_devicedetection_service_types.h @@ -0,0 +1,186 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file ss_devicedetection_service_types.h + * @brief This file supports the Device Detection service. + */ + +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup device_detection_service + * @ingroup system_service + * @{ + */ + +#ifndef SS_DEVDETECT_TYPES_H_ // NOLINT (build/header_guard) +#define SS_DEVDETECT_TYPES_H_ + +/** + * \~english Deive type(eUSB,eSD...) + */ +typedef enum _DeviceType { + /** + * \~english USB + */ + eUSB, + /** + * \~english SD + */ + eSD, + /** + * \~english EMMC + */ + eMMC, + /** + * \~english DISC + */ + eDISC, + /** + * \~english MTP + */ + eMTP +} EDEVICE_TYPE; + +/** + * \~english Action result + */ +typedef enum _SsDevError { + /** + * \~english success + */ + SS_DEV_OK, + /** + * \~english error + */ + SS_DEV_ERR, + /** + * \~english mount error + */ + SS_DEV_ERR_MOUNT, + /** + * \~english device busy + */ + SS_DEV_ERR_BUSY, +} SS_DEV_ERROR; + +/** + * \~english USB port + */ +typedef enum _USBPort { + /** + * \~english USB0(IF-BOX) + */ + SS_DEV_USB_PORT0, // IF-BOX + /** + * \~english USB1(DCM) + */ + SS_DEV_USB_PORT1, // DCM + /** + * \~english USB2(DSRC/ETC) + */ + SS_DEV_USB_PORT2, // DSRC/ETC + /** + * \~english USB3(External deck) + */ + SS_DEV_USB_PORT3, // External DECK + /** + * \~english USB4(Drive recorder) + */ + SS_DEV_USB_PORT4, // Supplies drive recorder + /** + * \~english USB number max. + */ + SS_DEV_USB_MAX // MAX +} SS_DEV_USBPORT; + +/** + * \~english notify code + */ +typedef enum SsNotifyCode { + /** + * \~english Unsupport USB device + */ + SS_DEV_UNSUPPORT_USB, // Un support USB device + /** + * \~english The connected device has no response. + */ + SS_DEV_NON_RESPONSE_USB, // Enemuration Error + /** + * \~english It detects a USB device of current excess that has been connected to the bus power HUB. + */ + SS_DEV_HIGH_POWER_USB, // It detects a USB device of current excess that + // has been connected to the bus power HUB. + /** + * \~english Over support USB(3 or more units) + */ + SS_DEV_OVER_SUPPORT_USB, // Over support USB(3 or more units) + /** + * \~english Over number of USB HUB(2 or more units) + */ + SS_DEV_OVER_NUM_USB_HUB, // Over number of USB HUB(2 or more units) +} SS_NOTIFY_CODE; + +/** + * \~english RoleSw state + */ +typedef enum _SsDevRoleSwState { + /** + * \~english start + */ + SS_DEV_ROLE_SW_START, + /** + * \~english begin end + */ + SS_DEV_ROLE_SW_BEGIN_END, + /** + * \~english end + */ + SS_DEV_ROLE_SW_END, + /** + * \~english restart + */ + SS_DEV_ROLE_SW_RESTART, +} SS_DEV_ROLE_SW_STATE; + +/** + * \~english Disc Type(eCD, eDVD, eBD) + */ +typedef enum _DiscType { + /** + * \~english CD + */ + eCD, + /** + * \~english DVD + */ + eDVD, + /** + * \~english BD + */ + eBD, +} EDISC_TYPE; + +#endif /* SS_DEVDETECT_TYPES_H_ */ // NOLINT (build/header_guard) + +/** @}*/ // end of device_detection_service +/** @}*/ // end of system_service +/** @}*/ // end of BaseSystem diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_devicedetection_service_types_local.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_devicedetection_service_types_local.h new file mode 100755 index 0000000..dafd4d4 --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_devicedetection_service_types_local.h @@ -0,0 +1,44 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/////////////////////////////////////////////////////////////////////////////// +/// \ingroup tag_SystemServicesIf +/// \brief This file supports the Device Detection service. +/// +/////////////////////////////////////////////////////////////////////////////// +/** + * @file + */ +#ifndef SS_DEVDETECT_TYPES_LOCAL_H_ // NOLINT (build/header_guard) +#define SS_DEVDETECT_TYPES_LOCAL_H_ + +/** + * \~english Service state. + */ +typedef enum _ServiceStatus { + eInit, //!< \~english Initialize. + ePre, //!< \~english In-vehicle. + eBackground, //!< \~english Background boot. + eStart, //!< \~english Normal boot. + eStop, //!< \~english Stop. +} ESERVICESTATUS; + +typedef enum _USBMount { + SS_DEV_RO, // Read Only + SS_DEV_RW // Read/Write +} SS_DEV_USB_REMOUNT; + +#endif /* SS_DEVDETECT_TYPES_LOCAL_H_ */ // NOLINT (build/header_guard) diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_error_event_common.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_error_event_common.h new file mode 100755 index 0000000..ce7677f --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_error_event_common.h @@ -0,0 +1,111 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file ss_error_event_common.h + * @brief This file supports SM logging. + */ + +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup interface_unified + * @ingroup system_service + * @{ + */ + +#ifndef __SS_ERROR_EVENT_COMMON_H__ // NOLINT (build/header_guard) +#define __SS_ERROR_EVENT_COMMON_H__ + +#include // added for test build + + +// Do not change enumeration order. +// HMI hard codes error event square +// colors based on expected enum order. +enum EErrorEventType { + eErrorEventTypeProcessCrash = 0, + eErrorEventTypeHeartBeatFailure, + eErrorEventTypeSystemLowMemory, + eErrorEventTypeReserved1, // Formerly SS_SM_EVENT_ERROR_HIGH_CPU_LOAD, now HMI enum place holder. + eErrorEventTypeUserInvokedUserForceReset, + eErrorEventTypeReserved2, + eErrorEventTypeReserved3, + eErrorEventTypeUserInvokedCollectAllLogs, + eErrorEventTypeBootMicroReset, + eErrorEventTypeProcessExit, + eErrorEventTypeUserInvokedCollectScreenShot, + eErrorEventTypeUserInvokedCollectInterfaceunifiedLogs, + eErrorEventTypeEelExport, + eErrorEventTypeInterfaceunifiedEmmcLogs, + eErrorEventTypeDiagEvent, + eErrorEventTypeCanEvent, + eErrorEventTypeDtcEvent, + eErrorEventTypeModConnFailed, + eErrorEventTypeStartRespFailed, + eErrorEventTypeUserInvokedCollectDevLogs, + eErrorEventTypeModuleInvokedResetRequest, + eErrorEventTypeModuleInvokedCollectDebugLogs, + eErrorEventTypeUserInvokedClearLogs, + eErrorEventTypeUserInvokedCollectNaviLog, + eErrorEventTypeGroupRelaunch, + eErrorEventTypeMaxValue +}; + +/* Value range of EArtifactId must be defined within 32, */ +/* because of it's definition is used by 4byte bitmask. */ +enum EArtifactId { + eArtifactIdInterfaceunifiedDebugLog = 0, + eArtifactIdTransmitLog, + eArtifactIdPerformanceLog, + eArtifactIdBootMicroLog, + eArtifactIdSystemDataCsv, + eArtifactIdShowMemTxt, // << ID 5 + eArtifactIdProcessCore, + eArtifactIdDebugDumpLog, + eArtifactIdKernelLog, + eArtifactIdDRInitialLog, + eArtifactIdDRLocationLog, // << ID 10 + eArtifactIdCpuHighLoadMonteCarloLogs, + eArtifactIdMetaCoreLogs, + eArtifactIdCmsLogs, + eArtifactIDInternalDTC, + eArtifactIdComDebugLog, // << ID 15 + eArtifactIdKernelBootLog, + eArtifactIdPstoreLog, + eArtifactIdClearAllLog, + eArtifactIdNaviLog, + eArtifactIdScreenShot, // These three Log entries have to remain + eArtifactIdDebugFolder2Content, // at the end of the list + eArtifactIdDebugFolderContent, + eArtifactIdMaxValue // << 23 +}; + +struct ARTIFACT_RESPONSE { + EArtifactId ArtifactId; + CHAR FilePathAndName[MAX_PATH_LENGTH]; +}; + + +#endif /* __SS_ERROR_EVENT_COMMON_H___ */ // NOLINT (build/header_guard) + +/** @}*/ +/** @}*/ +/** @}*/ diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_error_event_common_local.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_error_event_common_local.h new file mode 100755 index 0000000..47da0d3 --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_error_event_common_local.h @@ -0,0 +1,63 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file ss_error_event_common_local.h + * @brief This file supports SM logging. + */ + +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup interface_unified + * @ingroup system_service + * @{ + */ + +#ifndef __SS_ERROR_EVENT_COMMON_LOCAL_H__ // NOLINT (build/header_guard) +#define __SS_ERROR_EVENT_COMMON_LOCAL_H__ + +#define SS_ERROR_EVENT_START_REQ_TO_SEC (5) +#define SS_ERROR_EVENT_DEBUG_DUMP_RSPN_TO_SEC (1) +#define SS_ERROR_EVENT_BOOT_MICRO_LOG_RESPONSE_TO_SEC (2) +#define SS_ERROR_EVENT_CORE_FILE_POLL_TO_MS (100) + +// Do not change enumeration order. +// HMI hard codes error event square +// colors based on expected enum order. +enum EErrorEventPrio { /* Higher number = higher priority. */ + eErrorEventPrioDiagLogRequest = 8, + eErrorEventPrioUserInvokedCollectAllLogs = 7, + eErrorEventPrioUserInvokedCollectScreenShot = 6, + eErrorEventPrioUserInvokedCollectInterfaceunifiedLogs = 5, + eErrorEventPrioModuleInvokedCollectDebugLogs = 4, + eErrorEventPrioUserInvokedUserForceReset = 3, + eErrorEventPrioEelStorageFilePresent = 2, + eErrorEventPrioEmmcLogsFilePresent = 1, + eErrorEventPrioDefault = 0 +}; + + +#endif /* __SS_ERROR_EVENT_COMMON_LOCAL_H__ */ // NOLINT (build/header_guard) + +/** @}*/ +/** @}*/ +/** @}*/ + diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_error_message.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_error_message.h new file mode 100755 index 0000000..e810d7b --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_error_message.h @@ -0,0 +1,40 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @file ss_error_message.h + * @brief \~english This file contains declaration of system error message + */ +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup interface_unified + * @ingroup system_service + * @{ + */ +#ifndef _SS_ERROR_MESSAGE_H_ // NOLINT (build/header_guard) +#define _SS_ERROR_MESSAGE_H_ + +#define SS_ERROR_MSG_USB_DISCON "UsbDisconnected" +#define SS_ERROR_MSG__CWORD84__ABNORMAL_SHUTDOWN "_CWORD84_AbnormalShutdown" + +#endif // NOLINT (build/header_guard) +/** @}*/ +/** @}*/ +/** @}*/ diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_heartbeat_if.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_heartbeat_if.h new file mode 100755 index 0000000..e5a94e5 --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_heartbeat_if.h @@ -0,0 +1,165 @@ +/** + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file ss_heartbeat_if.h + * @brief \~english This file supports the System Manager Heartbeat Service. + */ +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup interface_unified + * @ingroup system_service + * @{ + */ +#ifndef SS_HEARTBEAT_IF_H_ // NOLINT (build/header_guard) +#define SS_HEARTBEAT_IF_H_ + +#include + +typedef struct { + BOOL fAvailable; + HANDLE hService; + std::string szServiceName; +}THeartBeatSession; + + +class CHeartBeatServiceIf { + public: + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup SS_SystemManager + /// \~english @par Summary + /// Constructor of CHeartBeatServiceIf class. + /// \~english @param [in] avail + /// BOOL avail - default value of HBSession available + /// \~english @param [in] service + /// HANDLE service - set default value of Service handle + /// \~english @param [in] name + /// PSTR name - set application name used by client + /// \~english @retval None + /// \~english @par Preconditions + /// - None. + /// \~english @par Change of the internal state + /// - Change of internal state according to the API does not occur. + /// \~english @par Causes of failures + /// None + /// \~english @par Classification + /// Public + /// \~english @par Type + /// None + /// \~english @par Detail + /// Constructor of CHeartBeatServiceIf class. \n + /// variables (g_tHeartBeatSession) to be initialization. + /// \~english @see ~CHeartBeatServiceIf + //////////////////////////////////////////////////////////////////////////////////// + CHeartBeatServiceIf(BOOL avail, HANDLE service, PCSTR name); + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup SS_SystemManager + /// \~english @par Summary + /// Destructor of CHeartBeatServiceIf class. + /// \~english @param None + /// \~english @retval None + /// \~english @par Preconditions + /// - None. + /// \~english @par Change of the internal state + /// - Change of internal state according to the API does not occur. + /// \~english @par Causes of failures + /// None + /// \~english @par Classification + /// Public + /// \~english @par Type + /// None + /// \~english @par Detail + /// To delete a CHeartBeatServiceIf class. \n + /// pHeartBeatServiceIf is not NULL, to delete it.\n + /// \~english @see CHeartBeatServiceIf + //////////////////////////////////////////////////////////////////////////////////// + virtual ~CHeartBeatServiceIf(); + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup SS_SystemManager + /// \~english @par Summary + /// Subscribe hApp to message queue of the HeartBeat client application. + /// \~english @param [in] f_hApp + /// HANDLE - Handle to message queue of the HeartBeat client application. + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldParam Invalid parameter + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusInvldHndlType Invalid type of handle + /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full + /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor + /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) + /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @retval eFrameworkunifiedStatusErrOther Other error has occurred(Cannot access shared memory, etc.) + /// \~english @par Preconditions + /// \~english @par Change of the internal state + /// - Change of internal state according to the API does not occur. + /// \~english @par Conditions of processing failure + /// - Pointer (pNtfyHandler) is NULL to the structure of the Notification Handler specified in the argument. + /// [eFrameworkunifiedStatusInvldParam] + /// - Notification Handler number specified in the argument (uiHandlerCount) 0. [eFrameworkunifiedStatusInvldParam] + /// - HANDLE specified in the argument (hApp) is NULL. [eFrameworkunifiedStatusInvldParam] + /// - HANDLE specified in the argument (hApp) is not appropriate(which is invalid). [eFrameworkunifiedStatusInvldParam] + /// - Notification Handler number specified in the argument (uiHandlerCount) has exceeded the maximum number of + /// Notification. [eFrameworkunifiedStatusFail] + /// - The acquisition of the buffer for storing a plurality of information of Notification Handler specified by + /// the argument has failed. [eFrameworkunifiedStatusInvldParam] + /// - Can not be acquired memory in the acquisition of the buffer of the message for transmission (malloc). + /// [eFrameworkunifiedStatusFail] + /// - Message queue HANDLE in HANDLE specified in the argument (hApp) is NULL. [eFrameworkunifiedStatusInvldParam] + /// - HANDLE specified in the argument message queue HANDLE in (hApp) is not appropriate (which is invalid). + /// [eFrameworkunifiedStatusInvldParam] + /// - Message queue name of HANDLE specified in the argument (hApp) is not appropriate(The name is NULL, more + /// than 20byte) [eFrameworkunifiedStatusInvldHandle] + /// - Message queue type of HANDLE specified in the argument (hApp) is not a transmission. + /// [eFrameworkunifiedStatusInvldHndlType] + /// - Session message queue is full to the NPP Service. [eFrameworkunifiedStatusMsgQFull] + /// - It is invalid transmission file descriptor of the session message to the NPP Service. + /// [eFrameworkunifiedStatusErrNoEBADF] + /// - Interruption by the system call (signal) has occurred during the transmission of the session message for + /// the NPP Service. [eFrameworkunifiedStatusErrNoEINTR] + /// - Incorrect size of the transmit buffer of the session message to the NPP Service. [eFrameworkunifiedStatusInvldBufSize] + /// - Any errors occur during the transmission of a session message to the NPP Service. [eFrameworkunifiedStatusFail] + /// - It failed to shared memory access for transmission of the session message for the NPP Service. + /// [eFrameworkunifiedStatusErrOther] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// None + /// \~english @par Detail + /// Subscribe hApp to message queue of the HeartBeat client application. \n + /// if service hApp is NULL and hApp is not be Subscribed,return eFrameworkunifiedStatusNullPointer.\n + /// if service hApp is Subscribe to Heartbeat Serivceand hApp is not NULL,then subscribe hApp to message + /// queue of the HeartBeat client application. + /// \~english @see FrameworkunifiedGetAppName FrameworkunifiedSubscribeNotificationsWithCallback + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus OnHeartBeatRequest(HANDLE hApp); + + private: + THeartBeatSession g_tHeartBeatSession; + + + friend EFrameworkunifiedStatus DBG_CloseHeatBeat(HANDLE hApp); +}; + +#endif /* SS_HEARTBEAT_IF_H_ */ // NOLINT (build/header_guard) +/** @}*/ +/** @}*/ +/** @}*/ diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_heartbeat_notifications.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_heartbeat_notifications.h new file mode 100755 index 0000000..8b25fe1 --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_heartbeat_notifications.h @@ -0,0 +1,46 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file ss_heartbeat_notifications.h + * @brief This file supports the System Manager Heartbeat Service. + */ + +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup system_manager + * @ingroup system_service + * @{ + */ + +#ifndef SS_HEARTBEAT_NOTIFICATIONS_H_ // NOLINT (build/header_guard) +#define SS_HEARTBEAT_NOTIFICATIONS_H_ + +#include "system_service/ss_services.h" + +/// Indicates if HeartBeat is available or unavailable +#define NTFY_HeartBeatAvailability SERVICE_HEARTBEAT"/Availability" + +#endif /* SS_HEARTBEAT_NOTIFICATIONS_H_ */ // NOLINT (build/header_guard) + +/** @}*/ +/** @}*/ +/** @}*/ diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_heartbeat_service_protocol.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_heartbeat_service_protocol.h new file mode 100755 index 0000000..6d31d04 --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_heartbeat_service_protocol.h @@ -0,0 +1,72 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +////////////////////////////////////////////////////////////////////////////////////////////////// +/// Handle HeartBeat Module Start and Stop notifications. +////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * @file ss_heartbeat_service_protocol.h + * @brief API Header for HeartBeat messages used by senders and receivers. + * + * Declares the external Protocol messages to the HeartBeat. + */ + +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup system_manager + * @ingroup system_service + * @{ + */ + +#ifndef SS_HEARTBEAT_SERVICE_PROTOCOL_H_ // NOLINT (build/header_guard) +#define SS_HEARTBEAT_SERVICE_PROTOCOL_H_ + +#include +#include + + +/// \brief HeatBeat Protocol Command +/// heartbeat service protocol --> define all protocol messages in and out of heart beat thread +/// that are pertinent to the functionality offered by heart beat thread. +typedef enum T_SMHBProtocolMessages { + // Diagnostic Protocol + SS_HEARTBEAT_PRINT_CONNECTIONS = 0x32, ///< client to hb thread + SS_HEARTBEAT_PRINT_STACK = 0x33, ///< client to hb thread + SS_HEARTBEAT_PERIODIC_STATUS_REQ = 0xD0, ///< sysmgr to hb thread + SS_HEARTBEAT_PERIODIC_RESP = 0xD1, ///< hb thread to sysmgr + SS_HEARTBEAT_START = 0xD2, ///< sysmgr to hb thread + SS_HEARTBEAT_STOP = 0xD3, ///< sysmgr to hb thread + SS_HEARTBEAT_DELETE_MODULE_ENTRY = 0xD5, ///< sysmgr to hb thread + SS_HEARTBEAT_MSG_CATEGORY_REPORT = 0xD6, ///< report message + SS_HEARTBEAT_ERROR_DETECTED = 0xD8, ///< hb thread to sysmgr + SS_HEARTBEAT_APPEND_MODULE_ENTRY = 0xD9, ///< sysmgr to hb thread + SS_HEARTBEAT_AVAIL_CHECK_REQ = 0xDA, ///< sysmgr to hb thread + SS_HEARTBEAT_AVAIL_CHECK_RESP = 0xDB, ///< sysmgr to hb thread + SS_HEARTBEAT_RESPONSE = 0xE0, ///< client to hb thread + SS_HEARTBEAT_REQUEST = 0xE1 ///< hb thread to client +}EHBProtocolMessages; + +#endif /* SS_HEARTBEAT_SERVICE_PROTOCOL_H_ */ // NOLINT (build/header_guard) + +/** @}*/ +/** @}*/ +/** @}*/ diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_last_to_order.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_last_to_order.h new file mode 100755 index 0000000..5a3b8b0 --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_last_to_order.h @@ -0,0 +1,58 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @file ss_last_to_order.h + * @brief \~english This file contains declaration of enum SS_CONT_CATEGORY_t and api convert lastinfo to order + */ +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup interface_unified + * @ingroup system_service + * @{ + */ +#ifndef _SS_CONTID_TO_ORDER_H_ // NOLINT (build/header_guard) +#define _SS_CONTID_TO_ORDER_H_ + +#include +#include +#include +#include + +typedef enum { + SS_CCAT_F_VIDEO, + SS_CCAT_F_SUB_VIDEO, + SS_CCAT_F_AUDIO, + SS_CCAT_R_VIDEO, + SS_CCAT_R_AUDIO, + SS_CCAT_MAX, +}SS_CONT_CATEGORY_t; + +typedef std::string SS_CONTENT_NAME_t; + +typedef std::map SS_LAST_INFO_t; + +EFrameworkunifiedStatus SS_ConvLastInfoToOrder(SS_LAST_INFO_t &curLastMode, std::string &order, const char* p_cfgPath = NULL); //NOLINT (runtime/references) + + +#endif // NOLINT (build/header_guard) +/** @}*/ +/** @}*/ +/** @}*/ diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_logger_service.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_logger_service.h new file mode 100755 index 0000000..67ecb08 --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_logger_service.h @@ -0,0 +1,255 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file ss_logger_service.h + * @brief \~english This file supports the the Logger Service. + */ +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup interface_unified + * @ingroup system_service + * @{ + */ +#ifndef SS_LOGGER_SERVICE_H_ // NOLINT (build/header_guard) +#define SS_LOGGER_SERVICE_H_ + + +#include + +#define MAX_STATISTICAL_BUFFER 240 + +/////////////////////////////////////////////////////////////////////////////// +/// \ingroup logger_service +/// \brief Shared Memory names +/////////////////////////////////////////////////////////////////////////////// +#define SHMEM_DRLOCATIONLOG "/DRLocationLog" + +/////////////////////////////////////////////////////////////////////////////// +/// \ingroup logger_service +/// \brief Shared Memory names +/////////////////////////////////////////////////////////////////////////////// +#define SHMEM_DRINITIALLOG "/DRInitialLog" + +/////////////////////////////////////////////////////////////////////////////// +/// \ingroup logger_service +/// \brief VIN numbers +/////////////////////////////////////////////////////////////////////////////// +typedef struct _TVINnumber { + static const UI_8 VIN_LEN = 18; + CHAR VINstr[VIN_LEN]; +} STVIN_NUMBER; + +/////////////////////////////////////////////////////////////////////////////// +/// \ingroup logger_service +/// \brief CAN Diagnostic status data +/////////////////////////////////////////////////////////////////////////////// +typedef struct _TInterfaceunifiedCANMileageInfo { + UI_8 DidA_ExtTest_Pres; + UI_8 EngRun_Stat; + UI_8 Odo_MSB_H; + UI_8 Odo_MSB_L; + UI_8 Odo_LSB_H; + UI_8 Odo_LSB_L; + UI_8 PN14_SupBat_Volt; +} STLOGGER_CANDIAGSTAT; + +/////////////////////////////////////////////////////////////////////////////// +/// \ingroup logger_service +/// \brief CAN current date and time +/////////////////////////////////////////////////////////////////////////////// +/** +* @struct __CWORD62_DateAndTime +* @brief \~english CAN current date and time +*/ +typedef struct __CWORD62_DateAndTime { + UI_8 DateTime_Stat; /*!< \~english Date time status*/ + UI_8 DateTimeDay; /*!< \~english Date*/ + UI_8 DateTimeHour; /*!< \~english Hour*/ + UI_8 DateTimeMinute; /*!< \~english Minute*/ + UI_8 DateTimeMonth; /*!< \~english Month*/ + UI_8 DateTimeSecond; /*!< \~english Second*/ + UI_8 DateTimeYear; /*!< \~english Year*/ + UI_8 TimeFormat; /*!< \~english Format*/ +}STCanCurrentDateTime; + +/////////////////////////////////////////////////////////////////////////////// +/// \ingroup logger_service +/// \brief Logger Device Type +/////////////////////////////////////////////////////////////////////////////// +typedef enum _ELoggerDeviceTypes { + eDevUSB1, + eDevUSB2, + eDevSD, + eTotalDevicesTypes, + eInvalid_DevType +}EDEV_TYPE; + +/////////////////////////////////////////////////////////////////////////////// +/// \ingroup logger_service +/// \brief Logger State +/////////////////////////////////////////////////////////////////////////////// +typedef enum _ELoggerState { + eDeactivate, + eActivate, + eInvalid_LoggerState +}ELOGGER_STAT; + +typedef enum _ELoggerErrorCodes { + eSelectedDeviceNotFound = 0x0001, + eWriteToDeviceFailed = 0x0002, + eScreenCaptureFailed = 0x0003, + eScreenCaptureSaveTimeExpired = 0x0004, + eScreenCaptureStoreTimeExpired = 0x0005, + eNoLogToStore = 0x0006, +}ELOGGERERR_CODES; + +/////////////////////////////////////////////////////////////////////////////// +/// \ingroup logger_service +/// \brief Screen Capture Event data +/////////////////////////////////////////////////////////////////////////////// +typedef struct _TInterfaceunifiedScreenCaptureEvt { + static const UI_16 STR_BUFF_LEN = 64; + BOOL fSucessful; + UI_32 uiSceenShotId; + CHAR strNameAndLocation[STR_BUFF_LEN]; + UI_32 uiFaultReasonCode; +}STScreenCaptureEvt; + +/////////////////////////////////////////////////////////////////////////////// +/// \ingroup logger_service +/// \brief USB source number to store event logs. +/////////////////////////////////////////////////////////////////////////////// +typedef enum _EEventLoggerUSBDeviceNumber { + USB0 = 0, + USB1 = 1, + SD = 2 +}EEvtLogUSBDevNumber; + +/////////////////////////////////////////////////////////////////////////////// +/// \ingroup logger_service +/// \brief USB source number to store emergency error logs. +/////////////////////////////////////////////////////////////////////////////// +typedef enum _EDevNumber { + eEEL_USB1 = 1, + eEEL_USB2 = 2, + eEEL_SD = 3 +}EDevNumber; + +/////////////////////////////////////////////////////////////////////////////// +/// \ingroup logger_service +/// \brief Counter group ID. +/////////////////////////////////////////////////////////////////////////////// +typedef enum _ECounterGroupID { + STARTUP_SHUTDOWN_COUNTER_GROUP = 0x01, + APP_USAGE_COUNTER_GROUP, + F_BLK_STABILITY_COUNTER_GROUP, + MAX_COUNTER_GROUP +}EStatCounterGroupID; + +/////////////////////////////////////////////////////////////////////////////// +/// \ingroup logger_service +/// \brief Statistical counter. +/////////////////////////////////////////////////////////////////////////////// +typedef struct _SStatisticalCounter { + UI_16 u16StartupCounterLength; ///< No of Counter from startup phase + UI_16 u16NormalCounterLength; ///< No of Counter from Normal phase + UI_16 u16ShutDownCounterLength; ///< No of Counter from Shut down phase + UI_8 StatisticalCountBuffer[MAX_STATISTICAL_BUFFER]; ///< Counter values for startup,normal and shutsown phases +}SStatisticalCounter; + +typedef enum _EEventLoggerSuccessCode { + COPY_EVT_USB_SUCCESS = 0x20, + CLEAR_EVENT_LOG_SUCCESS = 0x21, + STATISTICAL_COUNTER_READ_SUCCESS = 0x22 +}EEvtLoggerSuccessCode; + +/////////////////////////////////////////////////////////////////////////////// +/// \ingroup logger_service +/// \brief Event Logger error code +/////////////////////////////////////////////////////////////////////////////// +typedef enum _EEventLoggerErrorCode { + USB_DEVICE_NOT_AVAILABLE = 0x10, + USB_DEVICE_WRITE_ERROR = 0x11, + CLEAR_EVENT_LOG_FAILED = 0x12, + STATISTICAL_COUNTER_READ_FAILED = 0x13, + NO_ERROR_INFO = 0x14 +}EEvtLoggerErrorCode; + +/////////////////////////////////////////////////////////////////////////////// +/// \ingroup logger_service +/// \brief Emergency Log error code +/////////////////////////////////////////////////////////////////////////////// +typedef enum _EEmergencyLogErrorCode { + eDEVICE_NOT_AVAILABLE = 0x10, + eDEVICE_WRITE_ERROR = 0x11, + eNO_ERROR_INFO = 0x12 +}EELL_ErrorCode; + +/////////////////////////////////////////////////////////////////////////////// +/// \ingroup logger_service +/// \brief Event logger common information +/////////////////////////////////////////////////////////////////////////////// +typedef struct _SEventLoggerCommonInfo { + UI_8 BodyCAN_Stat:4; + UI_8 HeadUnitCAN_Stat:4; + UI_8 HMIInteraction:4; + UI_8 IGN_Status:4; + UI_8 FOT_Temp:2; + UI_8 SystemVoltage:6; +}STEventLoggerCommonInfo; + +/////////////////////////////////////////////////////////////////////////////// +/// \ingroup logger_service +/// \brief Event logger resets counter information +/////////////////////////////////////////////////////////////////////////////// +typedef struct _SEventLoggerResetInfo { + UI_8 _CWORD56__ResetInfo; + UI_8 _CWORD102__ResetInfo; +}STEventLoggerResetInfo; + +/////////////////////////////////////////////////////////////////////////////// +/// \ingroup logger_service +/// \brief Event logger _CWORD56_ events information +/////////////////////////////////////////////////////////////////////////////// +typedef struct _SEventLoggerEventInfo { + UI_8 NumberOfEvents; + UI_8 EventGroup; + UI_8 EventIdentifier; + UI_8 EventData[4]; +}STEventLoggerEventInfo; + +/////////////////////////////////////////////////////////////////////////////// +/// \ingroup logger_service +/// \brief Event logger CAN events information +/////////////////////////////////////////////////////////////////////////////// +typedef struct _SEventCANLoggerEventInfo { + BOOL success; + BOOL valid; + UI_32 triggerNumber; + STCanCurrentDateTime dateAndTime; +}STEventCANLoggerEventInfo; + +#endif /* SS_LOGGER_SERVICE_H_ */ // NOLINT (build/header_guard) +/** @}*/ +/** @}*/ +/** @}*/ + diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_logger_service_ifc.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_logger_service_ifc.h new file mode 100755 index 0000000..2646c73 --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_logger_service_ifc.h @@ -0,0 +1,1865 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file ss_logger_service_ifc.h + * @brief \~english This file supports the the Logger Service. + */ +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup logger_service + * @ingroup system_service + * @{ + */ + +#ifndef SS_LOGGER_SERVICE_IFC_H_ // NOLINT (build/header_guard) +#define SS_LOGGER_SERVICE_IFC_H_ + +#include +#include +#include "system_service/ss_logger_service.h" +#include "system_service/ss_logger_service_protocol.h" + +/** + * @class LoggerServiceIf + * \~english @brief logger_service + * \~english @par Brief Introduction + * Class to provide LoggerServiceIf + * + */ +class LoggerServiceIf { + public: + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup LoggerServiceIf + /// \~english @par Summary + /// Constructor of LoggerServiceIf class. + /// \~english @param None + /// \~english @retval None + /// \~english @par Preconditions + /// - None. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// None + /// \~english @par Classification + /// Public + /// \~english @par Type + /// None + /// \~english @par Detail + /// To generate a LoggerServiceIf class, and initialize member variables(m_hApp, m_hService, m_hSession) to be + /// NULL. \n + /// After the constructor, be sure to call the Initialize. + /// \~english @see ~LoggerServiceIf, Initialize + //////////////////////////////////////////////////////////////////////////////////// + LoggerServiceIf(); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup ~LoggerServiceIf + /// \~english @par Summary + /// Destructor of LoggerServiceIf class. + /// \~english @param None + /// \~english @retval None + /// \~english @par Preconditions + /// - None. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// None + /// \~english @par Classification + /// Public + /// \~english @par Type + /// None + /// \~english @par Detail + /// To generate a LoggerServiceIf class. \n + /// If the service and the session is started (open) state, causing the end (closed). + /// \~english @see LoggerServiceIf + //////////////////////////////////////////////////////////////////////////////////// + virtual ~LoggerServiceIf(); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup Initialize + /// \~english @par Summary + /// API to initialize the LoggerServiceIf class. + /// \~english @param [in] hApp + /// HANDLE - HANDLE for Application + /// \~english @retval TRUE Success + /// \~english @retval FALSE Failure + /// \~english @par Preconditions + /// - None. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLE(hApp) specified in the argument is NULL. [FALSE] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Sync only(None communication) + /// \~english @par Detail + /// Application to use the services of SS_LoggerService is, after generating a LoggerServiceIf class, which is a + /// method to be executed first. \n + /// Member variable(m_hApp) of LoggerServiceIf class initialized with hApp that has been specified by the + /// argument. + /// \~english @see LoggerServiceIf + //////////////////////////////////////////////////////////////////////////////////// + BOOL Initialize(HANDLE hApp); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup NotifyOnLoggerServiceAvailability + /// \~english @par Summary + /// API to set the Callback function for Availability notification of SS_LoggerService. + /// \~english @param [in] f_pCallBackFn + /// CbFuncPtr - Pointer to function callback for SS_LoggerService Availability Notification + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldParam Invalid parameter + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusInvldHndlType Invalid type of handle + /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full + /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor + /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) + /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @retval eFrameworkunifiedStatusErrOther Other error has occurred(Cannot access shared memory, etc.) + /// \~english @par Preconditions + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop etc.) has been + /// done. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hApp) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Callback function pointer specified by the argument is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Can not get the App/Thread name from HANDLE in the class member variables (m_hApp). + /// [eFrameworkunifiedStatusInvldHandle] + /// - HANDLE (m_hApp) in the class member variables are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusInvldParam] + /// - The acquisition of the buffer that stores the Callback information specified in the argument failed. + /// [eFrameworkunifiedStatusInvldParam] + /// - Can not be acquired memory in the acquisition of the buffer of the message for transmission (malloc). + /// [eFrameworkunifiedStatusFail] + /// - Message queue HANDLE is NULL in the HANDLE of the class member variables (m_hApp). [eFrameworkunifiedStatusInvldParam] + /// - Message queue HANDLE in HANDLE (m_hApp) of the class member variables are not appropriate(which is + /// invalid). [eFrameworkunifiedStatusInvldParam] + /// - It is not appropriate message queue name of HANDLE (m_hApp) in the class member variables(The name is + /// NULL, more than 20byte). [eFrameworkunifiedStatusInvldHandle] + /// - Is not a transmission type message queue type of HANDLE (m_hApp) in the class member variables. + /// [eFrameworkunifiedStatusInvldHndlType] + /// - Session message queue is full to SS_LoggerService. [eFrameworkunifiedStatusMsgQFull] + /// - It is invalid transmission file descriptor of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusErrNoEBADF] + /// - Interruption by the system call (signal) has occurred during the transmission of the session message for + /// SS_LoggerService. [eFrameworkunifiedStatusErrNoEINTR] + /// - Incorrect size of the transmit buffer of the session message to SS_LoggerService. [eFrameworkunifiedStatusInvldBufSize] + /// - Any errors occur during the transmission of a session message to SS_LoggerService. [eFrameworkunifiedStatusFail] + /// - It failed to shared memory access for transmission of the session message for SS_LoggerService. + /// [eFrameworkunifiedStatusErrOther] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Pub-Sub x Pub-Sub + /// \~english @par Detail + /// Which is a method to register a Callback function for the initialization of the SS_LoggerService receives + /// the timing at which the start (open) is possible of completed service.\n + /// (Using API:FrameworkunifiedSubscribeNotificationsWithCallback of Native Service, to register a Callback function for + /// Availability notification of SS_LoggerService.) + /// \~english @see None + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus NotifyOnLoggerServiceAvailability(CbFuncPtr f_pCallBackFn); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup NotifyOnOpenSessionAck + /// \~english @par Summary + /// API to set the Callback function for OpenSessionRequest response from SS_LoggerService. + /// \~english @param [in] f_pCallBackFn + /// CbFuncPtr - Callback function pointer for receiving the response of OpenSessionRequest + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldParam Invalid parameter + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @par Preconditions + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop etc.) has been + /// done. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hApp) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Callback function pointer specified by the argument is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - HANDLE (m_hApp) in the class member variables are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusInvldParam] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Sync only(None communication) + /// \~english @par Detail + /// To register the Callback function for receiving a response of completion of OpenSessionRequest to + /// Dispatcher. \n + /// (Using API:FrameworkunifiedAttachCallbackToDispatcher of Native Service, to register a Callback function for receiving a + /// response of completion of OpenSessionRequest to Dispatcher.) + /// \~english @see NotifyOnCloseSessionAck + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus NotifyOnOpenSessionAck(CbFuncPtr f_pCallBackFn); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup NotifyOnCloseSessionAck + /// \~english @par Summary + /// API to set the Callback function for CloseSessionRequest response from SS_LoggerService. + /// \~english @param [in] f_pCallBackFn + /// CbFuncPtr - Callback function pointer for receiving the response of OpenSessionRequest + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldParam Invalid parameter + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @par Preconditions + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop) has been + /// done. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hApp) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Callback function pointer specified by the argument is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - HANDLE (m_hApp) in the class member variables are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusInvldParam] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Sync only(None communication) + /// \~english @par Detail + /// To register the Callback function for receiving a response of completion of CloseSessionRequest to + /// Dispatcher. \n + /// (Using API:FrameworkunifiedAttachCallbackToDispatcher of Native Service, to register a Callback function for receiving a + /// response of completion of CloseSessionRequest to Dispatcher.) \n + /// \~english @see NotifyOnOpenSessionAck + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus NotifyOnCloseSessionAck(CbFuncPtr f_pCallBackFn); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup OpenSessionRequest + /// \~english @par Summary + /// API to generate service/session of SS_LoggerService. + /// \~english @param None + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full + /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor + /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) + /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @retval eFrameworkunifiedStatusErrOther Other error has occurred(Cannot access shared memory, etc.) + /// \~english @par Preconditions + /// - SS_LoggerService process has been started. + /// - Availability of SS_LoggerService is TRUE. + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop) has been + /// done, and Availability of SS_LoggerService is TRUE. + /// - Use the NotifyOnOpenSessionAck(), that you register a callback function for receiving a completion + /// response of OpenSessionRequest to Dispatcher + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hApp) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - SS_LoggerService is not Availability state. [eFrameworkunifiedStatusFail] + /// - SS_LoggerService can not be opened (can not start). [eFrameworkunifiedStatusFail] + /// - SS_LoggerService message queue for the session is full. [eFrameworkunifiedStatusMsgQFull] + /// - Is invalid transmission file descriptor of the session message to SS_LoggerService. [eFrameworkunifiedStatusErrNoEBADF] + /// - Interruption by the system call (signal) has occurred during the transmission of the session message to + /// SS_LoggerService. [eFrameworkunifiedStatusErrNoEINTR] + /// - It is an incorrect size of the transmit buffer of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusInvldBufSize] + /// - Some sort of error has occurred at the time of transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusFail] + /// - It failed to shared memory access for transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusErrOther] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Method x Fire and Forget + /// \~english @par Detail + /// Which is a method for generating service/session of SS_LoggerService.\n + /// (To send the command of PROTOCOL_OPEN_SESSION_REQ to SS_LoggerService.)\n + /// If you already service has been created, once to close the service, and to re-open. + /// \~english @see CloseSessionRequest + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus OpenSessionRequest(); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup DecodeOpenSessionResponse + /// \~english @par Summary + /// API to hold the session ID in SS_LoggerServiceIf class + /// \~english @param None + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @par Preconditions + /// - SS_LoggerService process has been started. + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop etc.) has been + /// done, and Availability of SS_LoggerService is TRUE. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hService/m_hApp) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Incorrect PROTOCOL_OPEN_SESSION_ACK message length of SS_LoggerService. [eFrameworkunifiedStatusFail] + /// - PROTOCOL_OPEN_SESSION_ACK message of SS_LoggerService can not be acquired. [eFrameworkunifiedStatusFail] + /// - Can not session generation of message transmission to SS_LoggerService. [eFrameworkunifiedStatusFail] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Sync only(None communication) + /// \~english @par Detail + /// Get the session initiation response message(PROTOCOL_OPEN_SESSION_ACK) of SS_LoggerService, and get the + /// session ID from the message. \n + /// Acquired session ID, (after opening the message transmission queue) created after a session of message + /// transmission, hold as the session information in the session HANDLE(m_hSession) of the class member + /// variable. + /// \~english @see OpenSessionRequest, CloseSessionRequest + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus DecodeOpenSessionResponse(); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup CloseSessionRequest + /// \~english @par Summary + /// API to discard service/session of SS_LoggerService. + /// \~english @param None + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full + /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor + /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) + /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @retval eFrameworkunifiedStatusErrOther Other error has occurred(Cannot access shared memory, etc.) + /// \~english @par Preconditions + /// - SS_LoggerService process has been started. + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop etc.) has been + /// done, and Availability of SS_LoggerService is TRUE. + /// - Use the NotifyOnCloseSessionAck(), that you register a callback function for receiving a completion + /// response of CloseSessionRequest to Dispatcher + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hService/m_hSession) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - SS_LoggerService message queue for the session is full. [eFrameworkunifiedStatusMsgQFull] + /// - Is invalid transmission file descriptor of the session message to SS_LoggerService. [eFrameworkunifiedStatusErrNoEBADF] + /// - Interruption by the system call (signal) has occurred during the transmission of the session message to + /// SS_LoggerService. [eFrameworkunifiedStatusErrNoEINTR] + /// - It is an incorrect size of the transmit buffer of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusInvldBufSize] + /// - Some sort of error has occurred at the time of transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusFail] + /// - It failed to shared memory access for transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusErrOther] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Pub-Sub x Pub-Sub + /// \~english @par Detail + /// which is a method for discarding service/session of SS_LoggerService.\n + /// (To send the command of PROTOCOL_CLOSE_SESSION_REQ to SS_LoggerService.) + /// \~english @see OpenSessionRequest + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus CloseSessionRequest(); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup RegisterForLoggerEvent + /// \~english @par Summary + /// API to register a Callback function for SS_LoggerService. + /// \~english @param [in] f_eLoggerEvent + /// SS_LoggerServerEvents - Event type + /// \~english @param [in] f_pCallBackFn + /// CbFuncPtr - Pointer to a callback function that corresponds to the event + /// \~english @par + /// SS_LoggerServerEvents enum value + /// \~english @code + /// typedef enum _LoggerServerEvents + /// { + /// SS_LOGGER_SCREENCAPTURE_EVT = 0xA0, /* Event notification of the Screen Capture */ + /// SS_LOGGER_ERRORINFO_EVT, /* Event notification of error log information */ + /// SS_LOGGER_LOGINFO_EVT, /* Event notification of log information */ + /// SS_LOGGER_LOGSTARTED_EVT /* Event notification at the time of log start */ + /// }SS_LoggerServerEvents; + /// @endcode + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldParam Invalid parameter + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer + /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full + /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor + /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) + /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory) + /// \~english @par Preconditions + /// - SS_LoggerService process has been started. + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop etc.) has been + /// done, and Availability of SS_LoggerService is TRUE. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hSession) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Callback function pointer specified by the argument is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - HANDLES in the class member variables (m_hApp) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - HANDLE in the class member variables (m_hApp) is not appropriate (which is invalid) [eFrameworkunifiedStatusInvldParam] + /// - HANDLE in the class member variables (m_hSession) is not appropriate. (which is invalid) + /// [eFrameworkunifiedStatusNullPointer] + /// - SS_LoggerService message queue for the session is full. [eFrameworkunifiedStatusMsgQFull] + /// - Message Queue HANDLE for the session for SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Message Queue HANDLE for the session for SS_LoggerService are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusInvldHandle] + /// - Session message queue name to SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Is invalid transmission file descriptor of the session message to SS_LoggerService. [eFrameworkunifiedStatusErrNoEBADF] + /// - Interruption by the system call (signal) has occurred during the transmission of the session message to + /// SS_LoggerService. [eFrameworkunifiedStatusErrNoEINTR] + /// - It is an incorrect size of the transmit buffer of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusInvldBufSize] + /// - Some sort of error has occurred at the time of transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusFail] + /// - It failed to shared memory access for transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusErrOther] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Sync only(None communication) + /// \~english @par Detail + /// Which is a method to register a callback function for receiving the timing of the occurrence of an event in + /// the SS_LoggerService to the Dispatcher. \n + /// (To send the command of PROTOCOL_REGISTER_EVENTS to SS_LoggerService.) + /// \~english @see UnRegisterForLoggerEvent + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus RegisterForLoggerEvent(SS_LoggerServerEvents f_eLoggerEvent, CbFuncPtr f_pCallBackFn); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup UnRegisterForLoggerEvent + /// \~english @par Summary + /// API to cancel a Callback function for SS_LoggerService. + /// \~english @param [in] f_eLoggerEvent + /// SS_LoggerServerEvents - Event type + /// \~english @par + /// SS_LoggerServerEvents enum value + /// \~english @code + /// typedef enum _LoggerServerEvents + /// { + /// SS_LOGGER_SCREENCAPTURE_EVT = 0xA0, /* Event notification of the Screen Capture */ + /// SS_LOGGER_ERRORINFO_EVT, /* Event notification of error log information */ + /// SS_LOGGER_LOGINFO_EVT, /* Event notification of log information */ + /// SS_LOGGER_LOGSTARTED_EVT /* Event notification at the time of log start */ + /// }SS_LoggerServerEvents; + /// @endcode + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @par Preconditions + /// - SS_LoggerService process has been started. + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop etc.) has been + /// done, and Availability of SS_LoggerService is TRUE. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hSession) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Sync only(None communication) + /// \~english @par Detail + /// Which is a method to cancel a callback function for receiving the timing of the occurrence of an event in + /// the SS_LoggerService. \n + /// \~english @see RegisterForLoggerEvent + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus UnRegisterForLoggerEvent(SS_LoggerServerEvents f_eLoggerEvent); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup SendDiagStat + /// \~english @par Summary + /// API to send CAN Diagnostic status data(it has mileage information) to SS_LoggerService. + /// \~english @param [in] pCanDiagStat_t + /// STLOGGER_CANDIAGSTAT - Pointer to structure of CAN Diagnostic state data + /// \~english @par + /// STLOGGER_CANDIAGSTAT Structure + /// \~english @code + /// typedef struct _TInterfaceunifiedCANMileageInfo + /// { + /// UI_8 DidA_ExtTest_Pres; /* For extended test(unused) */ + /// UI_8 EngRun_Stat; /* Engine run state(unused) */ + /// UI_8 Odo_MSB_H; /* Mileage information(MSB:High) */ + /// UI_8 Odo_MSB_L; /* Mileage information(MSB:Low) */ + /// UI_8 Odo_LSB_H; /* Mileage information(LSB:High) */ + /// UI_8 Odo_LSB_L; /* Mileage information(LSB:Low) */ + /// UI_8 PN14_SupBat_Volt; /* Battery voltage(unused) */ + /// }STLOGGER_CANDIAGSTAT; + /// @endcode + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer + /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full + /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor + /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) + /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory) + /// \~english @par Preconditions + /// - SS_LoggerService process has been started. + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop) has been + /// done, and Availability of SS_LoggerService is TRUE. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hService/m_hSession) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - HANDLE in the class member variables (m_hSession) is not appropriate. (which is invalid) + /// [eFrameworkunifiedStatusNullPointer] + /// - SS_LoggerService message queue for the session is full. [eFrameworkunifiedStatusMsgQFull] + /// - Message Queue HANDLE for the session for SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Message Queue HANDLE for the session for SS_LoggerService are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusInvldHandle] + /// - Session message queue name to SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Is invalid transmission file descriptor of the session message to SS_LoggerService. [eFrameworkunifiedStatusErrNoEBADF] + /// - Interruption by the system call (signal) has occurred during the transmission of the session message to + /// SS_LoggerService. [eFrameworkunifiedStatusErrNoEINTR] + /// - It is an incorrect size of the transmit buffer of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusInvldBufSize] + /// - Some sort of error has occurred at the time of transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusFail] + /// - It failed to shared memory access for transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusErrOther] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Fire and Forget x Sync + /// \~english @par Detail + /// Which is a method to send the mileage information in the CAN diagnostic state data to SS_LoggerService. \n + /// Send a message in the command ID of SS_LOGGER_MILEAGE_DATA to SS_LoggerService. \n + /// SS_LoggerService uses the log write thread, to output a log of the mileage information. + /// \~english @see None + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus SendDiagStat(STLOGGER_CANDIAGSTAT *pCanDiagStat_t); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup LoggerIf_CANGetCurrentDateAndTime + /// \~english @par Summary + /// API to send the current date and time of the CAN to SS_LoggerService. + /// \~english @param [in] stDateAndTime + /// STCanCurrentDateTime - Structure of CAN current date and time + /// \~english @par + /// STCanCurrentDateTime Structure + /// \~english @code + /// typedef struct __CWORD62_DateAndTime + /// { + /// UI_8 DateTime_Stat; /* Date and Time State */ + /// UI_8 DateTimeDay; /* Day */ + /// UI_8 DateTimeHour; /* Hour */ + /// UI_8 DateTimeMinute; /* Minute */ + /// UI_8 DateTimeMonth; /* Month */ + /// UI_8 DateTimeSecond; /* Second */ + /// UI_8 DateTimeYear; /* Year */ + /// UI_8 TimeFormat; /* Time display format */ + /// }STCanCurrentDateTime; + /// @endcode + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer + /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full + /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor + /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) + /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory) + /// \~english @par Preconditions + /// - SS_LoggerService process has been started. + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop) has been + /// done, and Availability of SS_LoggerService is TRUE. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hService/m_hSession) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - HANDLE in the class member variables (m_hSession) is not appropriate. (which is invalid) + /// [eFrameworkunifiedStatusNullPointer] + /// - SS_LoggerService message queue for the session is full. [eFrameworkunifiedStatusMsgQFull] + /// - Message Queue HANDLE for the session for SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Message Queue HANDLE for the session for SS_LoggerService are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusInvldHandle] + /// - Session message queue name to SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Is invalid transmission file descriptor of the session message to SS_LoggerService. [eFrameworkunifiedStatusErrNoEBADF] + /// - Interruption by the system call (signal) has occurred during the transmission of the session message to + /// SS_LoggerService. [eFrameworkunifiedStatusErrNoEINTR] + /// - It is an incorrect size of the transmit buffer of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusInvldBufSize] + /// - Some sort of error has occurred at the time of transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusFail] + /// - It failed to shared memory access for transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusErrOther] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Fire and Forget x Sync + /// \~english @par Detail + /// Which is a method to send current date and time of the CAN to SS_LoggerService. \n + /// Send a message in the command ID of SS_LOGGER_SET_DATETIME to SS_LoggerService. + /// \~english @see None + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus LoggerIf_CANGetCurrentDateAndTime(STCanCurrentDateTime stDateAndTime); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup LoggerIf_CANSetVIN + /// \~english @par Summary + /// API to send the Vehicle Identification Number(VIN) to SS_LoggerService. + /// \~english @param [in] stVinNumber + /// STVIN_NUMBER& - Structure of Vehicle Identification Number(VIN) + /// \~english @par + /// STVIN_NUMBER Structure + /// \~english @code + /// typedef struct _TVINnumber + /// { + /// static const UI_8 VIN_LEN = 18; + /// CHAR VINstr[VIN_LEN]; /* Vehicle Identification Number(VIN) */ + /// }STVIN_NUMBER; + /// @endcode + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer + /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full + /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor + /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) + /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory) + /// \~english @par Preconditions + /// - SS_LoggerService process has been started. + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop) has been + /// done, and Availability of SS_LoggerService is TRUE. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hService/m_hSession) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - HANDLE in the class member variables (m_hSession) is not appropriate. (which is invalid) + /// [eFrameworkunifiedStatusNullPointer] + /// - SS_LoggerService message queue for the session is full. [eFrameworkunifiedStatusMsgQFull] + /// - Message Queue HANDLE for the session for SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Message Queue HANDLE for the session for SS_LoggerService are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusInvldHandle] + /// - Session message queue name to SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Is invalid transmission file descriptor of the session message to SS_LoggerService. [eFrameworkunifiedStatusErrNoEBADF] + /// - Interruption by the system call (signal) has occurred during the transmission of the session message to + /// SS_LoggerService. [eFrameworkunifiedStatusErrNoEINTR] + /// - It is an incorrect size of the transmit buffer of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusInvldBufSize] + /// - Some sort of error has occurred at the time of transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusFail] + /// - It failed to shared memory access for transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusErrOther] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Fire and Forget x Sync + /// \~english @par Detail + /// Which is a method to send the Vehicle Identification Number(VIN) to SS_LoggerService. \n + /// Send a message in the command ID of SS_LOGGER_SET_VIN to Logger Service. \n + /// SS_LoggerService uses the log write thread, to output a log of the Vehicle Identification Number(VIN). + /// \~english @see None + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus LoggerIf_CANSetVIN(STVIN_NUMBER& stVinNumber); // NOLINT (runtime/references) + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup LoggerIf_SetLoggerParams + /// \~english @par Summary + /// API to send the logging propriety information of the selected device to SS_LoggerService. + /// \~english @param [in] eLoggerStatus + /// ELOGGER_STAT - Logging propriety information + /// \~english @param [in] eDevType + /// EDEV_TYPE - Device type + /// \~english @par + /// ELOGGER_STAT enum value + /// \~english @code + /// typedef enum _ELoggerState + /// { + /// eDeactivate, /* Logging impossible(Deativate) */ + /// eActivate, /* Logging possible(Activate) */ + /// eInvalid_LoggerState /* Invalid logging state */ + /// }ELOGGER_STAT; + /// @endcode + /// \~english @par + /// EDEV_TYPE enum value + /// \~english @code + /// typedef enum _ELoggerDeviceTypes + /// { + /// eDevUSB1, /* USB1 */ + /// eDevUSB2, /* USB2 */ + /// eDevSD, /* SD */ + /// eTotalDevicesTypes, /* Total device types */ + /// eInvalid_DevType /* Invalid device type */ + /// }EDEV_TYPE; + /// @endcode + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer + /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full + /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor + /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) + /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory) + /// \~english @par Preconditions + /// - SS_LoggerService process has been started. + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop) has been + /// done, and Availability of SS_LoggerService is TRUE. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hService/m_hSession) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - HANDLE in the class member variables (m_hSession) is not appropriate. (which is invalid) + /// [eFrameworkunifiedStatusNullPointer] + /// - SS_LoggerService message queue for the session is full. [eFrameworkunifiedStatusMsgQFull] + /// - Message Queue HANDLE for the session for SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Message Queue HANDLE for the session for SS_LoggerService are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusInvldHandle] + /// - Session message queue name to SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Is invalid transmission file descriptor of the session message to SS_LoggerService. [eFrameworkunifiedStatusErrNoEBADF] + /// - Interruption by the system call (signal) has occurred during the transmission of the session message to + /// SS_LoggerService. [eFrameworkunifiedStatusErrNoEINTR] + /// - It is an incorrect size of the transmit buffer of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusInvldBufSize] + /// - Some sort of error has occurred at the time of transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusFail] + /// - It failed to shared memory access for transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusErrOther] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Fire and Forget x Sync + /// \~english @par Detail + /// Which is a method to send the logging propriety information of the selected device to SS_LoggerService. \n + /// Send a message in the command ID of SS_LOGGER_SET_PARAMS to SS_LoggerService. \n + /// SS_LoggerService is based on the logging propriety information of the transmission selection device, and + /// update as a member variable of the class. + /// \~english @see None + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus LoggerIf_SetLoggerParams(ELOGGER_STAT eLoggerStatus, EDEV_TYPE eDevType); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup LoggerIf_UDPLogging + /// \~english @par Summary + /// API to send the logging propriety information of UDP to SS_LoggerService. + /// \~english @param [in] eLoggerStatus + /// ELOGGER_STAT - Logging propriety information + /// \~english @par + /// ELOGGER_STAT enum value + /// \~english @code + /// typedef enum _ELoggerState + /// { + /// eDeactivate, /* Logging impossible(Deativate) */ + /// eActivate, /* Logging possible(Activate) */ + /// eInvalid_LoggerState /* Invalid logging state */ + /// }ELOGGER_STAT; + /// @endcode + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer + /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full + /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor + /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) + /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory) + /// \~english @par Preconditions + /// - SS_LoggerService process has been started. + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop) has been + /// done, and Availability of SS_LoggerService is TRUE. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hService/m_hSession) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - HANDLE in the class member variables (m_hSession) is not appropriate. (which is invalid) + /// [eFrameworkunifiedStatusNullPointer] + /// - SS_LoggerService message queue for the session is full. [eFrameworkunifiedStatusMsgQFull] + /// - Message Queue HANDLE for the session for SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Message Queue HANDLE for the session for SS_LoggerService are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusInvldHandle] + /// - Session message queue name to SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Is invalid transmission file descriptor of the session message to SS_LoggerService. [eFrameworkunifiedStatusErrNoEBADF] + /// - Interruption by the system call (signal) has occurred during the transmission of the session message to + /// SS_LoggerService. [eFrameworkunifiedStatusErrNoEINTR] + /// - It is an incorrect size of the transmit buffer of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusInvldBufSize] + /// - Some sort of error has occurred at the time of transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusFail] + /// - It failed to shared memory access for transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusErrOther] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Fire and Forget x Sync + /// \~english @par Detail + /// Which is a method to send the logging propriety information of UDP to SS_LoggerService. \n + /// Send a message in the command ID of SS_LOGGER_UDP_LOGGING to SS_LoggerService. \n + /// SS_LoggerService is based on the logging propriety information of the transmission UDP, and update as a + /// member variable of the class. + /// \~english @see None + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus LoggerIf_UDPLogging(ELOGGER_STAT eLoggerStatus); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup LoggerIf_ScreenCaptureEventACK + /// \~english @par Summary + /// API to send the event response of screen capture to SS_LoggerService. + /// \~english @param [in] stScreenCaptureInfo + /// STScreenCaptureEvt - Structure of event data of screen capture + /// \~english @par + /// STScreenCaptureEvt Structure + /// \~english @code + /// typedef struct _TInterfaceunifiedScreenCaptureEvt + /// { + /// static const UI_16 STR_BUFF_LEN = 64; + /// BOOL fSucessful; /* Success propriety flag */ + /// UI_32 uiSceenShotId; /* Screen capture ID */ + /// CHAR strNameAndLocation[STR_BUFF_LEN]; /* Screen capture save file name */ + /// UI_32 uiFaultReasonCode; /* Failure reason code */ + /// }STScreenCaptureEvt; + /// @endcode + /// \~english @par + /// uiFaultReasonCode : Failure reason code (plm::screen_shot::status List) + /// - ok : Success + /// - invalid_window_handle : Invalid window handle + /// - invalid_context_handle : Invalid context handle + /// - display_count_error : Display count error + /// - rgb_display_not_found : RGB display not found + /// - create_pixmap_error : Create error of PIXMAP + /// - usage_pixmap_property_error : Usage error of PIXMAP property + /// - format_pixmap_property_error : Format error of PIXMAP property + /// - buffer_pixmap_property_error : Buffer error of PIXMAP property + /// - create_pixmap_buffer_error : Create error of PIXMAP buffer + /// - render_pixmap_property_error : Render error of PIXMAP property + /// - pointer_pixmap_property_error : Pointer error of PIXMAP property + /// - stride_pixmap_property_error : Stride error of PIXMAP property + /// - window_read_error : Window read error + /// - write_bitmap_file_error : Writing error of bitmap files + /// - window_post_error : Window post error + /// - window_property_error : Window property error + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer + /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full + /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor + /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) + /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory) + /// \~english @par Preconditions + /// - SS_LoggerService process has been started. + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop) has been + /// done, and Availability of SS_LoggerService is TRUE. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hSession) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - HANDLE in the class member variables (m_hSession) is not appropriate. (which is invalid) + /// [eFrameworkunifiedStatusNullPointer] + /// - SS_LoggerService message queue for the session is full. [eFrameworkunifiedStatusMsgQFull] + /// - Message Queue HANDLE for the session for SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Message Queue HANDLE for the session for SS_LoggerService are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusInvldHandle] + /// - Session message queue name to SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Is invalid transmission file descriptor of the session message to SS_LoggerService. [eFrameworkunifiedStatusErrNoEBADF] + /// - Interruption by the system call (signal) has occurred during the transmission of the session message to + /// SS_LoggerService. [eFrameworkunifiedStatusErrNoEINTR] + /// - It is an incorrect size of the transmit buffer of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusInvldBufSize] + /// - Some sort of error has occurred at the time of transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusFail] + /// - It failed to shared memory access for transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusErrOther] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Fire and Forget x Sync + /// \~english @par Detail + /// As the data in the event the response of the screen capture to SS_LoggerService, which is a method for + /// transmitting the information of the screen capture ID and screen capture save file name.\n + /// Send a message in the command ID of SS_LOGGER_SCREENCAPTURE_EVT_ACK to SS_LoggerService. \n + /// This API is an API for screen capture in PLM(Physical Layer Management) function support. In PLM + /// non-support, to prohibit the use. + /// \~english @see None + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus LoggerIf_ScreenCaptureEventACK(STScreenCaptureEvt stScreenCaptureInfo); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup LoggerIf_EventLoggingCommonInfo + /// \~english @par Summary + /// API to send the event information of the common log in SS_LoggerService. + /// \~english @param [in] stEventCommonInfo + /// STEventLoggerCommonInfo - Event information structure of the common log + /// \~english @par + /// STEventLoggerCommonInfo Structure + /// \~english @code + /// typedef struct _SEventLoggerCommonInfo + /// { + /// UI_8 BodyCAN_Stat:4; /* CAN state of the body */ + /// UI_8 HeadUnitCAN_Stat:4; /* CAN state of the Head Unit */ + /// UI_8 HMIInteraction:4; /* HMI Interaction */ + /// UI_8 IGN_Status:4; /* Ignition state */ + /// UI_8 FOT_Temp:2; /* Field Operation Tests Temporary */ + /// UI_8 SystemVoltage:6; /* System Voltage */ + /// }STEventLoggerCommonInfo; + /// @endcode + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer + /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full + /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor + /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) + /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory) + /// \~english @par Preconditions + /// - SS_LoggerService process has been started. + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop) has been + /// done, and Availability of SS_LoggerService is TRUE. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hService/m_hSession) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - HANDLE in the class member variables (m_hSession) is not appropriate. (which is invalid) + /// [eFrameworkunifiedStatusNullPointer] + /// - SS_LoggerService message queue for the session is full. [eFrameworkunifiedStatusMsgQFull] + /// - Message Queue HANDLE for the session for SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Message Queue HANDLE for the session for SS_LoggerService are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusInvldHandle] + /// - Session message queue name to SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Is invalid transmission file descriptor of the session message to SS_LoggerService. [eFrameworkunifiedStatusErrNoEBADF] + /// - Interruption by the system call (signal) has occurred during the transmission of the session message to + /// SS_LoggerService. [eFrameworkunifiedStatusErrNoEINTR] + /// - It is an incorrect size of the transmit buffer of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusInvldBufSize] + /// - Some sort of error has occurred at the time of transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusFail] + /// - It failed to shared memory access for transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusErrOther] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Fire and Forget x Fire and Forget + /// \~english @par Detail + /// It is a method to send the event information of the common log to SS_LoggerService. \n + /// Send a message in the command ID of SS_LOGGER_EVENT_COMMONINFO to SS_LoggerService. \n + /// Using the log write thread, SS_LoggerService outputs the following log information. + /// - CAN state of the body + /// - CAN state of the Head Unit + /// - HMI Interaction + /// - Ignition state + /// - System Voltage + /// \~english @see None + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus LoggerIf_EventLoggingCommonInfo(STEventLoggerCommonInfo stEventCommonInfo); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup LoggerIf_EventLoggingEventInfo + /// \~english @par Summary + /// API to send the event information of the _CWORD56_ log to SS_LoggerService. + /// \~english @param [in] stEventInfo + /// STEventLoggerEventInfo - Event information structure of _CWORD56_ log + /// \~english @par + /// STEventLoggerEventInfo Structure + /// \~english @code + /// typedef struct _SEventLoggerCommonInfo + /// { + /// UI_8 NumberOfEvents; /* Event count */ + /// UI_8 EventGroup; /* Event group */ + /// UI_8 EventIdentifier; /* Event identifier */ + /// UI_8 EventData[4]; /* Event data */ + /// }STEventLoggerEventInfo; + /// @endcode + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer + /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full + /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor + /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) + /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory) + /// \~english @par Preconditions + /// - SS_LoggerService process has been started. + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop) has been + /// done, and Availability of SS_LoggerService is TRUE. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hService/m_hSession) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - HANDLE in the class member variables (m_hSession) is not appropriate. (which is invalid) + /// [eFrameworkunifiedStatusNullPointer] + /// - SS_LoggerService message queue for the session is full. [eFrameworkunifiedStatusMsgQFull] + /// - Message Queue HANDLE for the session for SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Message Queue HANDLE for the session for SS_LoggerService are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusInvldHandle] + /// - Session message queue name to SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Is invalid transmission file descriptor of the session message to SS_LoggerService. [eFrameworkunifiedStatusErrNoEBADF] + /// - Interruption by the system call (signal) has occurred during the transmission of the session message to + /// SS_LoggerService. [eFrameworkunifiedStatusErrNoEINTR] + /// - It is an incorrect size of the transmit buffer of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusInvldBufSize] + /// - Some sort of error has occurred at the time of transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusFail] + /// - It failed to shared memory access for transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusErrOther] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Fire and Forget x Fire and Forget + /// \~english @par Detail + /// It is a method to send the event information of _CWORD56_ log to SS_LoggerService. \n + /// Send a message in the command ID of SS_LOGGER__CWORD56__EVENT_INFO to SS_LoggerService.\n + /// Using the log write thread, SS_LoggerService outputs the following log information. + /// - Event count + /// - Event group + /// - Event identifier + /// - Event data + /// \~english @see None + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus LoggerIf_EventLoggingEventInfo(STEventLoggerEventInfo stEventInfo); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup LoggerIf_EventLoggingResetInfo + /// \~english @par Summary + /// API to send the event information of _CWORD56_ reset count to SS_LoggerService. + /// \~english @param [in] stResetInfo + /// STEventLoggerResetInfo - Event information structure of _CWORD56_ reset counter + /// \~english @par + /// STEventLoggerResetInfo Structure + /// \~english @code + /// typedef struct _SEventLoggerResetInfo + /// { + /// UI_8 _CWORD56__ResetInfo; /* Reset counter information of _CWORD56_ */ + /// UI_8 _CWORD102__ResetInfo; /* Reset counter information of _CWORD102_ */ + /// }STEventLoggerResetInfo; + /// @endcode + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer + /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full + /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor + /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) + /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory) + /// \~english @par Preconditions + /// - SS_LoggerService process has been started. + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop) has been + /// done, and Availability of SS_LoggerService is TRUE. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hService/m_hSession) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - HANDLE in the class member variables (m_hSession) is not appropriate. (which is invalid) + /// [eFrameworkunifiedStatusNullPointer] + /// - SS_LoggerService message queue for the session is full. [eFrameworkunifiedStatusMsgQFull] + /// - Message Queue HANDLE for the session for SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Message Queue HANDLE for the session for SS_LoggerService are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusInvldHandle] + /// - Session message queue name to SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Is invalid transmission file descriptor of the session message to SS_LoggerService. [eFrameworkunifiedStatusErrNoEBADF] + /// - Interruption by the system call (signal) has occurred during the transmission of the session message to + /// SS_LoggerService. [eFrameworkunifiedStatusErrNoEINTR] + /// - It is an incorrect size of the transmit buffer of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusInvldBufSize] + /// - Some sort of error has occurred at the time of transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusFail] + /// - It failed to shared memory access for transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusErrOther] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Fire and Forget x Fire and Forget + /// \~english @par Detail + /// It is a method to send the event information of _CWORD56_ reset counter to SS_LoggerService. \n + /// Send a message in the command ID of SS_LOGGER__CWORD56__RESET_INFO to SS_LoggerService. \n + /// Using the log write thread, SS_LoggerService outputs the following log information. + /// - Reset counter information of _CWORD56_ + /// - Reset counter information of _CWORD102_ + /// \~english @see None + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus LoggerIf_EventLoggingResetInfo(STEventLoggerResetInfo stResetInfo); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup LoggerIf_PersistEventLogOnActiveDTC + /// \~english @par Summary + /// API to persist the event log on the DTC to SS_LoggerService. + /// \~english @param None + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer + /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full + /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor + /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) + /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory) + /// \~english @par Preconditions + /// - SS_LoggerService process has been started. + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop) has been + /// done, and Availability of SS_LoggerService is TRUE. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hService/m_hSession) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - HANDLE in the class member variables (m_hSession) is not appropriate. (which is invalid) + /// [eFrameworkunifiedStatusNullPointer] + /// - SS_LoggerService message queue for the session is full. [eFrameworkunifiedStatusMsgQFull] + /// - Message Queue HANDLE for the session for SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Message Queue HANDLE for the session for SS_LoggerService are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusInvldHandle] + /// - Session message queue name to SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Is invalid transmission file descriptor of the session message to SS_LoggerService. [eFrameworkunifiedStatusErrNoEBADF] + /// - Interruption by the system call (signal) has occurred during the transmission of the session message to + /// SS_LoggerService. [eFrameworkunifiedStatusErrNoEINTR] + /// - It is an incorrect size of the transmit buffer of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusInvldBufSize] + /// - Some sort of error has occurred at the time of transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusFail] + /// - It failed to shared memory access for transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusErrOther] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Fire and Forget x Sync + /// \~english @par Detail + /// Which is a method to send a message of the order to immediately persist the event log on the DTC(Diagnostic + /// Trouble Code) to SS_LoggerService. \n + /// Send a message in the command ID of SS_LOGGER_DIAGDTC_ACTIVE to SS_LoggerService. + /// \~english @see None + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus LoggerIf_PersistEventLogOnActiveDTC(void); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup LoggerIf_Shutdown_Complete + /// \~english @par Summary + /// API to send a shutdown completion message to SS_LoggerService. + /// \~english @param None + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer + /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full + /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor + /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) + /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory) + /// \~english @par Preconditions + /// - SS_LoggerService process has been started. + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop) has been + /// done, and Availability of SS_LoggerService is TRUE. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hService/m_hSession) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - HANDLE in the class member variables (m_hSession) is not appropriate. (which is invalid) + /// [eFrameworkunifiedStatusNullPointer] + /// - SS_LoggerService message queue for the session is full. [eFrameworkunifiedStatusMsgQFull] + /// - Message Queue HANDLE for the session for SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Message Queue HANDLE for the session for SS_LoggerService are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusInvldHandle] + /// - Session message queue name to SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Is invalid transmission file descriptor of the session message to SS_LoggerService. [eFrameworkunifiedStatusErrNoEBADF] + /// - Interruption by the system call (signal) has occurred during the transmission of the session message to + /// SS_LoggerService. [eFrameworkunifiedStatusErrNoEINTR] + /// - It is an incorrect size of the transmit buffer of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusInvldBufSize] + /// - Some sort of error has occurred at the time of transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusFail] + /// - It failed to shared memory access for transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusErrOther] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Fire and Forget x Fire and Forget + /// \~english @par Detail + /// Which is a method to send a shutdown completion message to SS_LoggerService.\n + /// Send a message in the command ID of SS_LOGGER_SHUTDOWN_COMPLETE to SS_LoggerService.\n + /// SS_LoggerService stops the thread for the log writing, and the Availability of self-service is set to FALSE, + /// to disable the service. + /// \~english @see None + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus LoggerIf_Shutdown_Complete(void); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup StoreEventLogsToUSB + /// \~english @par Summary + /// API to request an event log output to USB/SD to SS_LoggerService. + /// \~english @param [in] eUSBDevNumber + /// EEvtLogUSBDevNumber - Event Log output destination USB/SD device number + /// \~english @par + /// EEvtLogUSBDevNumber enum value + /// \~english @code + /// typedef enum _EEventLoggerUSBDeviceNumber + /// { + /// USB0=0, /* USB0 */ + /// USB1=1, /* USB1 */ + /// SD=2 /* SD */ + /// }EEvtLogUSBDevNumber; + /// @endcode + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer + /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full + /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor + /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) + /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory) + /// \~english @par Preconditions + /// - SS_LoggerService process has been started. + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop) has been + /// done, and Availability of SS_LoggerService is TRUE. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hSession) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - HANDLE in the class member variables (m_hSession) is not appropriate. (which is invalid) + /// [eFrameworkunifiedStatusNullPointer] + /// - SS_LoggerService message queue for the session is full. [eFrameworkunifiedStatusMsgQFull] + /// - Message Queue HANDLE for the session for SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Message Queue HANDLE for the session for SS_LoggerService are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusInvldHandle] + /// - Session message queue name to SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Is invalid transmission file descriptor of the session message to SS_LoggerService. [eFrameworkunifiedStatusErrNoEBADF] + /// - Interruption by the system call (signal) has occurred during the transmission of the session message to + /// SS_LoggerService. [eFrameworkunifiedStatusErrNoEINTR] + /// - It is an incorrect size of the transmit buffer of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusInvldBufSize] + /// - Some sort of error has occurred at the time of transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusFail] + /// - It failed to shared memory access for transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusErrOther] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Method x Fire and Forget + /// \~english @par Detail + /// Which is a method to request the event log output to USB/SD to SS_LoggerService.\n + /// To send a message in the command ID of SS_LOGGERCOPYEVENTUSB against SS_LoggerService. \n + /// Using the event log writing thread, SS_LoggerService output the event log to the specified device (USB/SD). + /// \n + /// As a result of the event output, the message is notified to the caller of the API in the command ID below. + /// - Success: SS_LOGGERCOPYEVENTUSB_SUCCESS_RESP + /// - Failure: SS_LOGGERCOPYEVENTUSB_ERROR_RESP + /// \~english @see None + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus StoreEventLogsToUSB(EEvtLogUSBDevNumber eUSBDevNumber); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup StoreEmergencyErrorLogsToUSB + /// \~english @par Summary + /// API to request the emergency error log output to USB/SD to SS_LoggerService. + /// \~english @param [in] eDevNumber + /// EDevNumber - Emergency error log output destination USB/SD device number + /// \~english @par + /// EDevNumber value of enum + /// \~english @code + /// typedef enum _EDevNumber + /// { + /// eEEL_USB1=1, /* USB0 */ + /// eEEL_USB2=2, /* USB1 */ + /// eEEL_SD=3 /* SD */ + /// }EDevNumber ; + /// @endcode + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer + /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full + /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor + /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) + /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory) + /// \~english @par Preconditions + /// - SS_LoggerService process has been started. + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop) has been + /// done, and Availability of SS_LoggerService is TRUE. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hSession) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - HANDLE in the class member variables (m_hSession) is not appropriate. (which is invalid) + /// [eFrameworkunifiedStatusNullPointer] + /// - SS_LoggerService message queue for the session is full. [eFrameworkunifiedStatusMsgQFull] + /// - Message Queue HANDLE for the session for SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Message Queue HANDLE for the session for SS_LoggerService are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusInvldHandle] + /// - Session message queue name to SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Is invalid transmission file descriptor of the session message to SS_LoggerService. [eFrameworkunifiedStatusErrNoEBADF] + /// - Interruption by the system call (signal) has occurred during the transmission of the session message to + /// SS_LoggerService. [eFrameworkunifiedStatusErrNoEINTR] + /// - It is an incorrect size of the transmit buffer of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusInvldBufSize] + /// - Some sort of error has occurred at the time of transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusFail] + /// - It failed to shared memory access for transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusErrOther] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Fire and Forget x Fire and Forget + /// \~english @par Detail + /// Which is a method to request the emergency error log output to USB/SD to SS_LoggerService.\n + /// To send a message in the command ID of SS_LOGGERCOPYEMERGENCYLOGS against SS_LoggerService. \n + /// Using the diagnostic log output function of System Manager, SS_LoggerService output the emergency error log + /// to the specified device(USB/SD). \n + /// As a result of the clearing process of the event log, the message is notified to the caller of the API in the + /// command ID below. + /// - Success: SS_LOGGERCOPYEMERGENCYLOGS_SUCCESS_RESP + /// - Failure: SS_LOGGERCOPYEMERGENCYLOGS_ERROR_RESP + /// \~english @see None + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus StoreEmergencyErrorLogsToUSB(EDevNumber eDevNumber); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup StartCANLogging + /// \~english @par Summary + /// API to request the start of CAN logging to SS_LoggerService. + /// \~english @param None + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer + /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full + /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor + /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) + /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory) + /// \~english @par Preconditions + /// - SS_LoggerService process has been started. + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop) has been + /// done, and Availability of SS_LoggerService is TRUE. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hSession) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - HANDLE in the class member variables (m_hSession) is not appropriate. (which is invalid) + /// [eFrameworkunifiedStatusNullPointer] + /// - SS_LoggerService message queue for the session is full. [eFrameworkunifiedStatusMsgQFull] + /// - Message Queue HANDLE for the session for SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Message Queue HANDLE for the session for SS_LoggerService are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusInvldHandle] + /// - Session message queue name to SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Is invalid transmission file descriptor of the session message to SS_LoggerService. [eFrameworkunifiedStatusErrNoEBADF] + /// - Interruption by the system call (signal) has occurred during the transmission of the session message to + /// SS_LoggerService. [eFrameworkunifiedStatusErrNoEINTR] + /// - It is an incorrect size of the transmit buffer of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusInvldBufSize] + /// - Some sort of error has occurred at the time of transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusFail] + /// - It failed to shared memory access for transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusErrOther] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Fire and Forget x Fire and Forget + /// \~english @par Detail + /// Which is a method to request the start of CAN logging against SS_LoggerService. \n + /// This function is called by CAN to trigger Logging to USB. \n + /// Progress is published by notifications eSSLoggerCANEventStart, eSSLoggerCANEventError and + /// eSSLoggerCANEventFinished. \n + /// To send a message in the command ID of eSSLoggerCANProtocolIDCANTrigger against SS_LoggerService. \n + /// SS_LoggerService requests the logging start of CAN to the System Manager. + /// \~english @see RegisterLoggingStartNotification, RegisterLoggingFinishNotification + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus StartCANLogging(void); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup RegisterLoggingStartNotification + /// \~english @par Summary + /// API to set a callback function for CAN logging start notification. + /// \~english @param [in] f_pCallBackFn + /// CbFuncPtr - Callback function pointer for CAN logging start notification + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldParam Invalid parameter + /// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusInvldHndlType Invalid type of handle + /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full + /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor + /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) + /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @retval eFrameworkunifiedStatusErrOther Other error has occurred(Cannot access shared memory, etc.) + /// \~english @par Preconditions + /// - SS_LoggerService process has been started. + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop etc.) has been + /// done. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hApp) is NULL. [eFrameworkunifiedStatusNullPointer] + /// - Callback function pointer specified by the argument is NULL. [eFrameworkunifiedStatusNullPointer] + /// - HANDLE (m_hApp) in the class member variables are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusInvldParam] + /// - HANDLES in the class member variables (m_hSession) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - HANDLE (m_hSession) in the class member variables are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusInvldHandle] + /// - Handle name of the session message queue is NULL to SS_LoggerService. [eFrameworkunifiedStatusInvldHandle] + /// - Message queue HANDLE of the session message to SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Message queue HANDLE of the session message to SS_LoggerService are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusInvldHandle] + /// - It is not appropriate message queue name of the session message to SS_LoggerService(The name is NULL, more + /// than 20byte). [eFrameworkunifiedStatusInvldHandle] + /// - Is not a transmission type message queue type of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusInvldHndlType] + /// - Session message queue is full to SS_LoggerService. [eFrameworkunifiedStatusMsgQFull] + /// - It is invalid transmission file descriptor of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusErrNoEBADF] + /// - Interruption by the system call (signal) has occurred during the transmission of the session message for + /// SS_LoggerService. [eFrameworkunifiedStatusErrNoEINTR] + /// - Incorrect size of the transmit buffer of the session message to SS_LoggerService. [eFrameworkunifiedStatusInvldBufSize] + /// - Any errors occur during the transmission of a session message to SS_LoggerService. [eFrameworkunifiedStatusFail] + /// - It failed to shared memory access for transmission of the session message for SS_LoggerService. + /// [eFrameworkunifiedStatusErrOther] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Pub-Sub x Pub-Sub + /// \~english @par Detail + /// Use the StartCANLogging, after the request of the start of the CAN logging operation, which is a method to + /// register a callback function to receive a notification of the start of the logging operation.\n + /// (Using API:FrameworkunifiedSubscribeToSessionEventWithCallback of Native Service, to register a Callback function for CAN + /// logging start notification.) \n + /// SS_LoggerService publish the logging start of CAN in the notification of eSSLoggerCANEventStart to + /// Subscribers. + /// \~english @see StartCANLogging, RegisterLoggingFinishNotification + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus RegisterLoggingStartNotification(CbFuncPtr f_pCallBackFn); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup RegisterLoggingFinishNotification + /// \~english @par Summary + /// API to set a callback function for CAN logging finish notification. + /// \~english @param [in] f_pCallBackFn + /// CbFuncPtr - Callback function pointer for CAN logging finish notification + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldParam Invalid parameter + /// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusInvldHndlType Invalid type of handle + /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full + /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor + /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) + /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @retval eFrameworkunifiedStatusErrOther Other error has occurred(Cannot access shared memory, etc.) + /// \~english @par Preconditions + /// - SS_LoggerService process has been started. + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop etc.) has been + /// done. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hApp) is NULL. [eFrameworkunifiedStatusNullPointer] + /// - Callback function pointer specified by the argument is NULL. [eFrameworkunifiedStatusNullPointer] + /// - HANDLE (m_hApp) in the class member variables are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusInvldParam] + /// - HANDLES in the class member variables (m_hSession) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - HANDLE (m_hSession) in the class member variables are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusInvldHandle] + /// - Handle name of the session message queue is NULL to SS_LoggerService. [eFrameworkunifiedStatusInvldHandle] + /// - Message queue HANDLE of the session message to SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Message queue HANDLE of the session message to SS_LoggerService are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusInvldHandle] + /// - It is not appropriate message queue name of the session message to SS_LoggerService(The name is NULL, more + /// than 20byte). [eFrameworkunifiedStatusInvldHandle] + /// - Is not a transmission type message queue type of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusInvldHndlType] + /// - Session message queue is full to SS_LoggerService. [eFrameworkunifiedStatusMsgQFull] + /// - It is invalid transmission file descriptor of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusErrNoEBADF] + /// - Interruption by the system call (signal) has occurred during the transmission of the session message for + /// SS_LoggerService. [eFrameworkunifiedStatusErrNoEINTR] + /// - Incorrect size of the transmit buffer of the session message to SS_LoggerService. [eFrameworkunifiedStatusInvldBufSize] + /// - Any errors occur during the transmission of a session message to SS_LoggerService. [eFrameworkunifiedStatusFail] + /// - It failed to shared memory access for transmission of the session message for SS_LoggerService. + /// [eFrameworkunifiedStatusErrOther] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Pub-Sub x Pub-Sub + /// \~english @par Detail + /// Which is a method to register a callback function to receive a notification of the finish of the logging + /// operation.\n + /// (Using API:FrameworkunifiedSubscribeToSessionEventWithCallback of Native Service, to register a Callback function for CAN + /// logging finish notification.) \n + /// SS_LoggerService publish the logging finish of CAN in the notification of eSSLoggerCANEventFinished to + /// Subscribers. + /// \~english @see StartCANLogging, RegisterLoggingStartNotification + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus RegisterLoggingFinishNotification(CbFuncPtr f_pCallBackFn); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup StartDTCLoggingToEmmc + /// \~english @par Summary + /// API to request the start of CAN logging to SS_LoggerService. + /// \~english @param None + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer + /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full + /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor + /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) + /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory) + /// \~english @par Preconditions + /// - SS_LoggerService process has been started. + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop) has been + /// done, and Availability of SS_LoggerService is TRUE. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hSession) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - HANDLE in the class member variables (m_hSession) is not appropriate. (which is invalid) + /// [eFrameworkunifiedStatusNullPointer] + /// - SS_LoggerService message queue for the session is full. [eFrameworkunifiedStatusMsgQFull] + /// - Message Queue HANDLE for the session for SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Message Queue HANDLE for the session for SS_LoggerService are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusInvldHandle] + /// - Session message queue name to SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Is invalid transmission file descriptor of the session message to SS_LoggerService. [eFrameworkunifiedStatusErrNoEBADF] + /// - Interruption by the system call (signal) has occurred during the transmission of the session message to + /// SS_LoggerService. [eFrameworkunifiedStatusErrNoEINTR] + /// - It is an incorrect size of the transmit buffer of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusInvldBufSize] + /// - Some sort of error has occurred at the time of transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusFail] + /// - It failed to shared memory access for transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusErrOther] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Fire and Forget x Fire and Forget + /// \~english @par Detail + /// Which is a method to request the start of CAN logging to SS_LoggerService. \n + /// This function is called by CAN at the time of the trigger of the error that occurred in the DTC. \n + /// Progress is published by notifications eSSLoggerCANEventStart, eSSLoggerCANEventError and + /// eSSLoggerCANEventFinished. \n + /// To send a message in the command ID of eSSLoggerCANProtocolIDDTCTrigger against SS_LoggerService. \n + /// SS_LoggerService sends a message in the command ID of eThrdCmdImmPersistEvtLog against the event log writing + /// thread. \n + /// Event log writing thread will immediately start with respect to the event log for Persistent. + /// \~english @see None + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus StartDTCLoggingToEmmc(UI_32 f_dtc); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup ClearEventLogs + /// \~english @par Summary + /// API to request to clear the event log to SS_LoggerService. + /// \~english @param None + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full + /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor + /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) + /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory) + /// \~english @par Preconditions + /// - SS_LoggerService process has been started. + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop) has been + /// done, and Availability of SS_LoggerService is TRUE. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hSession) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - HANDLE in the class member variables (m_hSession) is not appropriate. (which is invalid) + /// [eFrameworkunifiedStatusNullPointer] + /// - SS_LoggerService message queue for the session is full. [eFrameworkunifiedStatusMsgQFull] + /// - Message Queue HANDLE for the session for SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Message Queue HANDLE for the session for SS_LoggerService are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusInvldHandle] + /// - Session message queue name to SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Is invalid transmission file descriptor of the session message to SS_LoggerService. [eFrameworkunifiedStatusErrNoEBADF] + /// - Interruption by the system call (signal) has occurred during the transmission of the session message to + /// SS_LoggerService. [eFrameworkunifiedStatusErrNoEINTR] + /// - It is an incorrect size of the transmit buffer of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusInvldBufSize] + /// - Some sort of error has occurred at the time of transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusFail] + /// - It failed to shared memory access for transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusErrOther] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Fire and Forget x Pub-Sub + /// \~english @par Detail + /// Which is a method to request to clear the event log to SS_LoggerService. \n + /// To send a message in the command ID of SS_LOGGERCLEAREVENT against SS_LoggerService. \n + /// SS_LoggerService sends a message in the command ID of eThrdCmdClearEvntLogs against the event log writing + /// thread. \n + /// Event log write thread, delete all the event logs that are queued in the log write waiting. \n + /// As a result of the clearing process of the event log, the message is notified to the caller of the API in the + /// command ID below. + /// - Success: SS_LOGGERCLEAREVENT_SUCCESS_RESP + /// - Failure: SS_LOGGERCLEAREVENT_ERROR_RESP + /// \~english @see None + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus ClearEventLogs(void); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup ReadStatisticalCounter + /// \~english @par Summary + /// API to request a statistics counter reading of the event log to SS_LoggerService. + /// \~english @param [in] eCounterGroup + /// EStatCounterGroupID - Group ID of the statistics counter + /// \~english @par + /// EStatCounterGroupID enum value + /// \~english @code + /// typedef enum _ECounterGroupID + /// { + /// STARTUP_SHUTDOWN_COUNTER_GROUP =0x01, /* Statistics counter group for StartUp/Shutdown */ + /// APP_USAGE_COUNTER_GROUP, /* Statistics counter group for application usage */ + /// F_BLK_STABILITY_COUNTER_GROUP, /* Do not use : Statistics counter for flash access */ + /// MAX_COUNTER_GROUP /* Max value of statistics counter group */ + /// }EStatCounterGroupID ; + /// @endcode + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full + /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor + /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) + /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory) + /// \~english @par Preconditions + /// - SS_LoggerService process has been started. + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop) has been + /// done, and Availability of SS_LoggerService is TRUE. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hSession) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - HANDLE in the class member variables (m_hSession) is not appropriate. (which is invalid) + /// [eFrameworkunifiedStatusNullPointer] + /// - SS_LoggerService message queue for the session is full. [eFrameworkunifiedStatusMsgQFull] + /// - Message Queue HANDLE for the session for SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Message Queue HANDLE for the session for SS_LoggerService are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusInvldHandle] + /// - Session message queue name to SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Is invalid transmission file descriptor of the session message to SS_LoggerService. [eFrameworkunifiedStatusErrNoEBADF] + /// - Interruption by the system call (signal) has occurred during the transmission of the session message to + /// SS_LoggerService. [eFrameworkunifiedStatusErrNoEINTR] + /// - It is an incorrect size of the transmit buffer of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusInvldBufSize] + /// - Some sort of error has occurred at the time of transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusFail] + /// - It failed to shared memory access for transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusErrOther] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Method x Fire and Forget + /// \~english @par Detail + /// Against SS_LoggerService, which is a method that requires a reading of the statistics counter corresponding + /// to the statistics counter groups in the event log. \n + /// To send a message in the command ID of SS_LOGGER_READ_STATL_COUNTER against SS_LoggerService. \n + /// SS_LoggerService sends a message in the command ID of eThrdCmdStatisticalCounter against the event log + /// writing thread. \n + /// Event log write thread read the statistics counter corresponding to the statistics counter groups in the + /// event log. \n + /// As a result of the clearing process of the event log, the message is notified to the caller of the API in the + /// command ID below. + /// - Success: SS_LOGGER_READ_STATL_COUNTER_SUCCESS_RESP + /// - Failure: SS_LOGGER_READ_STATL_COUNTER_ERROR_RESP + /// \~english @see None + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus ReadStatisticalCounter(EStatCounterGroupID eCounterGroup); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup ResetStatisticalCounter + /// \~english @par Summary + /// API to request the reset of statistics counters of the event log to SS_LoggerService. + /// \~english @param [in] eCounterGroup + /// EStatCounterGroupID - Group ID of the statistics counter + /// \~english @par + /// EStatCounterGroupID enum value + /// \~english @code + /// typedef enum _ECounterGroupID + /// { + /// STARTUP_SHUTDOWN_COUNTER_GROUP =0x01, /* Statistics counter group for StartUp/Shutdown */ + /// APP_USAGE_COUNTER_GROUP, /* Statistics counter group for application usage */ + /// F_BLK_STABILITY_COUNTER_GROUP, /* Do not use : Statistics counter for flash access */ + /// MAX_COUNTER_GROUP /* Max value of statistics counter group */ + /// }EStatCounterGroupID ; + /// @endcode + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full + /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor + /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) + /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory) + /// \~english @par Preconditions + /// - SS_LoggerService process has been started. + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop) has been + /// done, and Availability of SS_LoggerService is TRUE. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hSession) is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - HANDLE in the class member variables (m_hSession) is not appropriate. (which is invalid) + /// [eFrameworkunifiedStatusNullPointer] + /// - SS_LoggerService message queue for the session is full. [eFrameworkunifiedStatusMsgQFull] + /// - Message Queue HANDLE for the session for SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Message Queue HANDLE for the session for SS_LoggerService are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusInvldHandle] + /// - Session message queue name to SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Is invalid transmission file descriptor of the session message to SS_LoggerService. [eFrameworkunifiedStatusErrNoEBADF] + /// - Interruption by the system call (signal) has occurred during the transmission of the session message to + /// SS_LoggerService. [eFrameworkunifiedStatusErrNoEINTR] + /// - It is an incorrect size of the transmit buffer of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusInvldBufSize] + /// - Some sort of error has occurred at the time of transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusFail] + /// - It failed to shared memory access for transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusErrOther] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Fire and Forget x Fire and Forget + /// \~english @par Detail + /// Against SS_LoggerService, which is a method to reset the statistics counters corresponding to the statistics + /// counter groups in the event log. \n + /// To send a message in the command ID of SS_LOGGER_READ_STATL_COUNTER against SS_LoggerService. \n + /// SS_LoggerService sends a message in the command ID of eThrdCmdStatisticalCounter against the event log + /// writing thread. \n + /// Event log write thread reset the statistics counter corresponding to the statistics counter groups in the + /// event log. \n + /// As a result of the clearing process of the event log, the message is notified to the caller of the API in the + /// command ID below. + /// - Success: SS_LOGGER_RESET_STATL_COUNTER_SUCCESS_RESP + /// - Failure: SS_LOGGER_RESET_STATL_COUNTER_ERROR_RESP + /// \~english @see None + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus ResetStatisticalCounter(EStatCounterGroupID eCounterGroup); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup LoggerIf_SetDiagID + /// \~english @par Summary + /// API to send the diagnosis ID to SS_LoggerService. + /// \~english @param [in] f_u16DiagID + /// UI_16 - Diagnosis ID + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer + /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full + /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor + /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) + /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory) + /// \~english @par Preconditions + /// - SS_LoggerService process has been started. + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop) has been + /// done, and Availability of SS_LoggerService is TRUE. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hService/m_hSession) is NULL. [eFrameworkunifiedStatusNullPointer] + /// - HANDLE in the class member variables (m_hSession) is not appropriate. (which is invalid) + /// [eFrameworkunifiedStatusNullPointer] + /// - SS_LoggerService message queue for the session is full. [eFrameworkunifiedStatusMsgQFull] + /// - Message Queue HANDLE for the session for SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Message Queue HANDLE for the session for SS_LoggerService are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusInvldHandle] + /// - Session message queue name to SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Is invalid transmission file descriptor of the session message to SS_LoggerService. [eFrameworkunifiedStatusErrNoEBADF] + /// - Interruption by the system call (signal) has occurred during the transmission of the session message to + /// SS_LoggerService. [eFrameworkunifiedStatusErrNoEINTR] + /// - It is an incorrect size of the transmit buffer of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusInvldBufSize] + /// - Some sort of error has occurred at the time of transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusFail] + /// - It failed to shared memory access for transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusErrOther] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Fire and Forget x Sync + /// \~english @par Detail + /// It is a method to send the diagnosis ID to SS_LoggerService. \n + /// Send a message in the command ID of SS_LOGGER_SET_DIAGID to SS_LoggerService. \n + /// SS_LoggerService sets the diagnosis ID as a part of the suffix name of the event log storage file name. + /// \~english @see None + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus LoggerIf_SetDiagID(UI_16 f_u16DiagID); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup LoggerIf_UploadEventLog + /// \~english @par Summary + /// API to request the upload of the event log to SS_LoggerService. + /// \~english @param None + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle + /// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer + /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full + /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor + /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) + /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size + /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred + /// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory) + /// \~english @par Preconditions + /// - SS_LoggerService process has been started. + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop) has been + /// done, and Availability of SS_LoggerService is TRUE. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - HANDLES in the class member variables (m_hService/m_hSession) is NULL. [eFrameworkunifiedStatusNullPointer] + /// - HANDLE in the class member variables (m_hSession) is not appropriate. (which is invalid) + /// [eFrameworkunifiedStatusNullPointer] + /// - SS_LoggerService message queue for the session is full. [eFrameworkunifiedStatusMsgQFull] + /// - Message Queue HANDLE for the session for SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Message Queue HANDLE for the session for SS_LoggerService are not appropriate(which is invalid). + /// [eFrameworkunifiedStatusInvldHandle] + /// - Session message queue name to SS_LoggerService is NULL. [eFrameworkunifiedStatusInvldHandle] + /// - Is invalid transmission file descriptor of the session message to SS_LoggerService. [eFrameworkunifiedStatusErrNoEBADF] + /// - Interruption by the system call (signal) has occurred during the transmission of the session message to + /// SS_LoggerService. [eFrameworkunifiedStatusErrNoEINTR] + /// - It is an incorrect size of the transmit buffer of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusInvldBufSize] + /// - Some sort of error has occurred at the time of transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusFail] + /// - It failed to shared memory access for transmission of the session message to SS_LoggerService. + /// [eFrameworkunifiedStatusErrOther] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Method x Fire and Forget + /// \~english @par Detail + /// Which is a method to request the upload of the event log to SS_LoggerService. \n + /// Send a message in the command ID of SS_LOGGER_UPLOAD_EVENTLOG to SS_LoggerService. \n + /// SS_LoggerService sends a message in the command ID of eThrdCmdUploadEventLog against the event log writing + /// thread. \n + /// Event log write thread upload the event log in the interior of the buffer. \n + /// Upload a result, the message is notified in the command ID of SS_LOGGER_UPLOAD_EVENTLOG_RES to the caller of + /// the API. + /// \~english @see None + //////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus LoggerIf_UploadEventLog(); + + private: + HANDLE OpenService(); + EFrameworkunifiedStatus SendMessage(UI_32 f_cmdID, UI_32 f_size, void* f_pData); + + HANDLE m_hApp; + HANDLE m_hService; + HANDLE m_hSession; +}; + +#endif /* SS_LOGGER_SERVICE_IFC_H_ */ // NOLINT (build/header_guard) + +/** @}*/ // end of logger_service +/** @}*/ // end of SystemService +/** @}*/ // end of BaseSystem diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_logger_service_local.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_logger_service_local.h new file mode 100755 index 0000000..0261f2e --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_logger_service_local.h @@ -0,0 +1,94 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file ss_logger_service_local.h + * @brief \~english This file supports the the Logger Service. + */ +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup logger_service + * @ingroup system_service + * @{ + */ +#ifndef SS_LOGGER_SERVICE_LOCAL_H_ // NOLINT (build/header_guard) +#define SS_LOGGER_SERVICE_LOCAL_H_ + +/////////////////////////////////////////////////////////////////////////////// +/// \ingroup logger_service +/// \brief Screen Capture Event data +/////////////////////////////////////////////////////////////////////////////// +typedef struct _TInterfaceunifiedSetLoggerParams { + ELOGGER_STAT Logger_State; + EDEV_TYPE Device_Type; +}STLoggerSetParams; + +typedef struct _TInterfaceunifiedSetLoggerAllParams { + ELOGGER_STAT Logger_State; + EDEV_TYPE Device_Type; + ELOGGER_STAT Logger_UDPState; + UI_32 Log_FolderCnt; +}STLoggerSetAllParams; + +typedef struct _TErrorLogger_FolderInfo { + static const UI_16 STR_BUFF_LEN = 64; + CHAR FoldernameAndLogname[STR_BUFF_LEN]; + CHAR StorageTarget[STR_BUFF_LEN]; +}STLoggerFolderInfo; + +/////////////////////////////////////////////////////////////////////////////// +/// \ingroup logger_service +/// \brief Event logger resets counter information +/////////////////////////////////////////////////////////////////////////////// +typedef union _uEvtLoggerCommonInfo { + STEventLoggerCommonInfo u_stEvtLoggerCommonInfo; + UI_8 CommonData[4]; +}UEvtLoggerCommonInfo; + +#pragma pack(1) +/////////////////////////////////////////////////////////////////////////////// +/// \ingroup logger_service +/// \brief Logger Event information +/////////////////////////////////////////////////////////////////////////////// +typedef struct _stLogEventss_ { + UI_32 ts; + UI_8 grp_ID; + UI_8 event_id; + UI_8 data[4]; +}st_LogEvent_ss; +#pragma pack(0) + +/// Macros definition for the Event Logs +#define MAX_EVT_RECORDS 20000 +#define MAX_EVENTLOG_SIZE 10*MAX_EVT_RECORDS ///< Max size for event logging + +typedef struct _TInterfaceunifiedEventLogPersistBuffer { + static const UI_16 EVT_BUFMAXSIZE = MAX_EVT_RECORDS; + st_LogEvent_ss EvtLog_Buffer[EVT_BUFMAXSIZE]; + UI_16 Current_Log_Size; +}STEventLogPersistBuffer; + +#endif /* SS_LOGGER_SERVICE_LOCAL_H_ */ // NOLINT (build/header_guard) +/** @}*/ +/** @}*/ +/** @}*/ + + diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_logger_service_notifications.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_logger_service_notifications.h new file mode 100755 index 0000000..7a5fc3d --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_logger_service_notifications.h @@ -0,0 +1,47 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file ss_logger_service_notifications.h + * @brief \~english This file supports the the Logger Service. + */ +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup logger_service + * @ingroup system_service + * @{ + */ +#ifndef SS_LOGGER_SERVICE_NOTIFICATIONS_H_ // NOLINT (build/header_guard) +#define SS_LOGGER_SERVICE_NOTIFICATIONS_H_ + +#include "system_service/ss_services.h" + +/////////////////////////////////////////////////////////////////////////////// +/// \ingroup logger_service +/// \brief Logger Service Availability Notification +/////////////////////////////////////////////////////////////////////////////// +#define NTFY_SS_LoggerService_Availability SERVICE_LOGGER"/Availability" + +#endif /* SS_LOGGER_SERVICE_NOTIFICATIONS_H_ */ // NOLINT (build/header_guard) +/** @}*/ +/** @}*/ +/** @}*/ + diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_logger_service_protocol.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_logger_service_protocol.h new file mode 100755 index 0000000..36c602c --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_logger_service_protocol.h @@ -0,0 +1,146 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file ss_logger_service_protocol.h + * @brief \~english This file supports the the Logger Service. + */ +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup interface_unified + * @ingroup system_service + * @{ + */ +#ifndef _SS_LOGGER_SERVICE_PROTOCOL_H_ // NOLINT (build/header_guard) +#define _SS_LOGGER_SERVICE_PROTOCOL_H_ + +#include +#include + + +#ifdef __cplusplus +extern "C" { +#endif + +/////////////////////////////////////////////////////////////////////////////// +/// \ingroup logger_service +/// \brief Logger service event IDs +/////////////////////////////////////////////////////////////////////////////// +typedef enum _LoggerServiceProtocol { + SS_LOGGER_MILEAGE_DATA = 0x60, + SS_LOGGER_SET_PARAMS, + SS_LOGGER_STORE_SCREENCAPTURE_AND_LOG, // CLR+1+3 + SS_LOGGER_STORE_SCREENCAPTURE, // CLR+1+2 + SS_LOGGER_STORE_LOG, // ONHOOK+7+9 + SS_LOGGER_SCREENCAPTURE_EVT_ACK, // Screen shot response (filename) + SS_LOGGER_EVENT_COMMONINFO, + SS_LOGGER__CWORD56__EVENT_INFO, + SS_LOGGER__CWORD56__RESET_INFO, + SS_LOGGER_SET_DATETIME, + SS_LOGGER_SET_VIN, + SS_LOGGER_UDP_LOGGING, + SS_LOGGER_ERROR_EVENT_ARTIFACT_REQ, + SS_LOGGER_ERROR_EVENT_ARTIFACT_RESP, + SS_LOGGER_SHUTDOWN_COMPLETE, + SS_LOGGER_DIAGDTC_ACTIVE, + SS_LOGGER_SET_DIAGID, + // Timer protocol IDs + SS_LOGGER_ERROR_EVENT_TIMER_ID_LOGGING_START_RSPN, + SS_LOGGER_ERROR_EVENT_TIMER_ID_ARTIFACT_RESPONSE, + SS_LOGGER_ERROR_EVENT_TIMER_ID_SCREEN_CAPTURE_RSPN, +}SS_LoggerServiceProtocol; + +/////////////////////////////////////////////////////////////////////////////// +/// \ingroup logger_service +/// \brief Logger service event IDs +/////////////////////////////////////////////////////////////////////////////// +typedef enum _SS_LOGGERSERVICEPROTOCOL { + SS_LOGGERCOPYEVENTUSB = 0x80, // HMI to Dispatcher + SS_LOGGERCOPYEVENTUSB_SUCCESS_RESP, + SS_LOGGERCOPYEVENTUSB_ERROR_RESP, + SS_LOGGERCOPYEMERGENCYLOGS, + SS_LOGGERCOPYEMERGENCYLOGS_SUCCESS_RESP, + SS_LOGGERCOPYEMERGENCYLOGS_ERROR_RESP, + SS_LOGGERCLEAREVENT, // HMI to Dispatcher + SS_LOGGERCLEAREVENT_SUCCESS_RESP, + SS_LOGGERCLEAREVENT_ERROR_RESP, + SS_LOGGER_READ_STATL_COUNTER, + SS_LOGGER_READ_STATL_COUNTER_SUCCESS_RESP, + SS_LOGGER_READ_STATL_COUNTER_ERROR_RESP, + SS_LOGGER_RESET_STATL_COUNTER, + SS_LOGGER_RESET_STATL_COUNTER_SUCCESS_RESP, + SS_LOGGER_RESET_STATL_COUNTER_ERROR_RESP, + SS_LOGGER_ENG_READ_NUMOFEVENTS, + SS_LOGGER_ENG_READ_NUMOFEVENTS_RESP, + SS_LOGGER_ENG_READ_STATISTICAL_COUNTERS, + SS_LOGGER_ENG_READ_STATISTICAL_COUNTERS_RESP, + SS_LOGGER_UPLOAD_EVENTLOG, + SS_LOGGER_UPLOAD_EVENTLOG_RESP +}SS_loggerserviceprotocol; + +/////////////////////////////////////////////////////////////////////////////// +/// \ingroup logger_service +/// \brief Private events for the following categories of devices +/////////////////////////////////////////////////////////////////////////////// +typedef enum _LoggerServerEvents { + SS_LOGGER_SCREENCAPTURE_EVT = 0xA0, // Screen shot request from PLM. + SS_LOGGER_ERRORINFO_EVT, + SS_LOGGER_LOGINFO_EVT, + SS_LOGGER_LOGSTARTED_EVT +}SS_LoggerServerEvents; + +///////////////////////////////////////////////////////////////////////////////////// +/// \brief eSSLoggerCANProtocolID +/// +/// \note These IDs depict the possible events coming from CAN to logger_service +/// +///////////////////////////////////////////////////////////////////////////////////// +enum eSSLoggerCANProtocolID { + eSSLoggerCANProtocolIDCANTrigger = 0x10000000, /// Start logging to USB + eSSLoggerCANProtocolIDDTCTrigger /// Start logging of DTC to emmc +}; + +///////////////////////////////////////////////////////////////////////////////////// +/// \brief eSSLoggerCANEvent +/// +/// \note Events that are published to CAN for HK and CAN logging. Data structures +/// attached to the single events can be found in below table +/// | EventId | Return type | +/// | :------------------------ | :------------------------ | +/// | eSSLoggerCANEventStart | None | +/// | eSSLoggerCANEventError | STEventCANLoggerEventInfo | +/// | eSSLoggerCANEventFinished | STEventCANLoggerEventInfo | +/// +///////////////////////////////////////////////////////////////////////////////////// +enum eSSLoggerCANEvent { + eSSLoggerCANEventStart = 0x10001000, /// Logging has started for HK and CAN events + eSSLoggerCANEventError, /// Logging has aborted with an error + eSSLoggerCANEventFinished /// Logging has finished succesfully +}; + +#ifdef __cplusplus +} +#endif + +#endif /* _SS_DEVICEDETECTION_SERVICE_PROTOCOL_H_ */ // NOLINT (build/header_guard) +/** @}*/ +/** @}*/ +/** @}*/ diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_logger_store_logs.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_logger_store_logs.h new file mode 100755 index 0000000..7c68fd9 --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_logger_store_logs.h @@ -0,0 +1,81 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file ss_logger_store_logs.h + * @brief This file supports the logger service interface for SystemManager. + */ +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup interface_unified + * @ingroup system_service + * @{ + */ +#ifndef SS_LOGGER_STORE_LOGS_H_ // NOLINT (build/header_guard) +#define SS_LOGGER_STORE_LOGS_H_ + +#include +#include "system_service/interfaceunified_system_types.h" + +#include +#include + + +#ifdef _cplusplus +extern "C" { +#endif +#define SS_LOGGER_SAVE_INTERFACEUNIFIEDLOG_FLAG "/ramd/BS/ss/logger_service/rwdata/frameworkunifiedlog/SS_LOGGER_SAVE_INTERFACEUNIFIEDLOG_FLAG" + +typedef enum { + SS_STORELOGS_INTERFACEUNIFIEDLOG = 0, + SS_STORELOGS_ILLEGAL, + SS_STORELOGS_ACCOFFON, + + SS_STORELOGS_SYS_ILLEGAL, + SS_STORELOGS_ACCOFFON_PRESS, + + SS_STORELOGS_MAX +} SS_STORELOGS_OPE_TYPE; +/////////////////////////////////////////////////////////////////////////////// +/// \ingroup logger_service +/// +/// \brief SSLoggerSrvIfWriteDebugLogs +/// +/// \return Status +/// EFrameworkunifiedStatus - success or error +/////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus SS_LoggerStoreLogs(SS_STORELOGS_OPE_TYPE type); + +EFrameworkunifiedStatus SS_LoggerStoreLogs_deleteOldLogAbnrm(const std::string& log_path, std::vector& l_vector, + const std::string& f_archive_destination, SI_32 max_num, + UI_32 abnrm_total); + +EFrameworkunifiedStatus StartRtUsbLogThread(HANDLE hApp); +EFrameworkunifiedStatus StopRtUsbLogThread(HANDLE hApp); + +#ifdef _cplusplus +} +#endif + +#endif /* SS_LOGGER_STORE_LOGS_H_ */ // NOLINT (build/header_guard) +/** @}*/ +/** @}*/ +/** @}*/ diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_power_service.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_power_service.h new file mode 100755 index 0000000..15ba033 --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_power_service.h @@ -0,0 +1,535 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file ss_power_service.h + * @brief \~english This file supports the Power Service interface. + */ +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup power_service + * @ingroup system_service + * @{ + */ +#ifndef SS_POWER_SERVICE_H_ // NOLINT (build/header_guard) +#define SS_POWER_SERVICE_H_ + +#include +#include +#include "system_service/ss_system_types.h" + + + +typedef enum _PwLevelTypes { + epspltUNKNOWN, + epspltWAKEUP = 0x99, + epspltNORMAL, + epspltSHUTDOWN, + epspltEMERGENCY, +} PowerSrvLevelType, EPWR_LEVEL_TYPE; + + +typedef enum { + epsstUNKNOWN, + epsstBASIC, + epsstSUPERVISOR, + epsstSYSTEM, +} PowerSrvSessionType, EPWR_SESSION_TYPE; + + +typedef enum { + epscnINVALID = 0xFF, + epscnCANWAKEUP = 0x07, //< All modules up with Display Off and Audio Muted + epscnCANSLEEP = 0x08, //< Communication and all modules shut down +} ePowerSrvCANStates, EPWR_CAN_STATE_TYPE; + + + +// Not in use for PastModel003*1. Can be used for Platform +typedef enum { + epswlINVALID = 0xFF, + epswlFULLRUN = 0x0A, //< Normal ignition on and full wakeup + epswlLOCALWAKEUP = 0x0B, //< Only certain modules are up. +} ePowerSrvWakeupLevels, EPWR_WAKEUP_LEVEL_TYPE; + +typedef EPWR_WAKEUP_LEVEL_TYPE * PEPWR_WAKEUP_LEVEL_TYPE; + +typedef enum { + epswsINVALID = 0xFF, + epswsPWRON = 0x00, //< Enable Display and Audio + epswsPWROFF = 0x01, //< Disable Audio and HMI +} ePowerSrvPowerStates, EPWR_POWER_STATE_TYPE; + + +typedef enum { + epsvsINVALID = 0xFF, + epsvsNORMAL = 0x20, + epsvsLVI1 = 0x22, + epsvsLVI2 = 0x24, +} ePowerSrvVoltageStates, EPWR_VOLTAGE_STATE_TYPE; + +typedef EPWR_VOLTAGE_STATE_TYPE * PEPWR_VOLTAGE_STATE_TYPE; + +typedef enum { + epscsINVALID = 0xFF, + epscsENTRY = 0xA0, + epscsEXIT = 0xA2, +} ePowerSrvCrankStates, EPWR_CRANK_STATE_TYPE; + + +//****************************************************************************** +// Startup Reason / EPWR_WAKEUP_FACTOR_TYPE typedefs * +// * +/** + * \~english + */ +typedef enum { + epswfINVALID = 0xFF, //!< \~english + epswfTESTACC = 0x00, //!< \~english + epswfON_KEY = 0x01, //!< \~english + epswfIGN_ACC = 0x02, //!< \~english + epswfDR_OPEN_CLOSE = 0x03, //!< \~english + epswfDX_ACTIVATION = 0x04, //!< \~english + epswfPASS_ACTIVATION = 0x05, //!< \~english + epswfSPVACTIVATION = 0x06, //!< \~english + epswfUSER_DATA_RESET = 0x07 //!< \~english +// +// Carry-over enums from CCR +// +// epswfPWRBUTTONON = 0x0C, +// epswfIGNON = 0x0D, +// epswfDISCEJECT = 0x0F, +// epswfSHOWTIME = 0x11, +// epswfPHONECALL = 0x12, +// +// End of Carry-over enums from CCR +// +} ePowerSrvWakeupFactors, EPWR_WAKEUP_FACTOR_TYPE; +typedef EPWR_WAKEUP_FACTOR_TYPE * PEPWR_WAKEUP_FACTOR_TYPE; +// * +// End of Startup Reason / EPWR_WAKEUP_FACTOR_TYPE * +//****************************************************************************** + +//**************************************************************************** +// Shutdown Popup Protocol enums & typedefs * +// * +typedef enum { // * + epsspPowerSave1 = 0x00, // * + epsspPowerSave2 = 0x01, // * + epsspPowerSave3 = 0x02, // * + epsspPowerSaveClr = 0x03, // * + epsspLowVoltage1 = 0x04, // * + epsspLowVoltage2 = 0x05, // * + epsspLowVoltage3 = 0x06, // * + epsspLowVoltageClr = 0x07, // * + epsspBattCouplingSW1 = 0x08, // * + epsspBattCouplingSW2 = 0x09, // * + epsspBattCouplingSW3 = 0x0A, // * + epsspBattCouplingSWClr = 0x0B, // * + epsspAbnormalTemp_1st = 0x0C, // * + epsspAbnormalTemp_Clr = 0x0D, // * + epsspLimpHome_1st = 0x0E, // * + epsspLimpHome_2nd = 0x0F, // * + epsspLimpHome_3rd = 0x10, // * + epsspLimpHome_Clr = 0x11, // * + epsspProdMd_1st = 0x12, // * + epsspProdMd_Clr = 0x13, // * + epsspTransMd_1st = 0x14, // * + epsspTransMd_Clr = 0x15, // * + epsspAllClr = 0xFF // * +} ePwrServiceShutdownPopupType, EPWR_SHUTDOWN_POPUP_TYPE; // * + // * +// * +// End of Shutdown Condition Protocol enums & typedefs * +//**************************************************************************** + +//**************************************************************************** +// CPMShowPowerPopup Protocol enums & typedefs * +// * +typedef enum { // * + epssppNormal = 0x00, // * + epssppCritical = 0x01, // * + epssppAppCritical = 0x02, // * + epssppAllClr = 0xFF // * +} ePwrServicePowerPopupType, EPWR_POWER_POPUP_TYPE; // * + // * +// * +// End of CPMShowPowerPopup Protocol enums & typedefs * +//**************************************************************************** + +//**************************************************************************** +// Limp Home Cutoff Protocol enums & typedefs * +// * +typedef enum { // * + epslhcINVALID = 0xFF, // * + epslhcDISABLED = 0x00, // * + epslhcENABLED = 0x01 // * +} ePwrServiceLHCType, EPWR_LHC_TYPE; // * + // * +// * +// End of Limp Home Cutoff Protocol enums & typedefs * +//**************************************************************************** + +//**************************************************************************** +// Production Mode Protocol enums & typedefs * +// * +typedef enum { // * + epspmINVALID = 0xFF, // * + epspmDISABLED = 0x00, // * + epspmENABLED = 0x01 // * +} ePwrServiceProdModeType, EPWR_PROD_MODE_TYPE; // * + // * +// * +// End of Production Mode Protocol enums & typedefs * +//**************************************************************************** + +//**************************************************************************** +// Transport Mode Protocol enums & typedefs * +// * +typedef enum { // * + epstmINVALID = 0xFF, // * + epstmDISABLED = 0x00, // * + epstmENABLED = 0x01 // * +} ePwrServiceTransportModeType, EPWR_TRANSPORT_MODE_TYPE; // * + // * +// * +// End of Transport Mode Protocol enums & typedefs * +//**************************************************************************** + +//**************************************************************************** +// Last User Mode, User Mode , User Mode Change Reason Protocol enums & * +// typedefs * +// * +/** + * \~english + */ +typedef enum { + epsumINVALID = 0xFF, //!< \~english + epsumOFF = 0x00, //!< \~english + epsumON = 0x01 //!< \~english +} ePwrServiceUserModeType, EPWR_USER_MODE_TYPE; + +/** + * \~english State transition reason. + */ +typedef enum { + epsumcrNOT_AVAILABLE = 0x00, //!< \~english Not available. + epsumcrON_KEY = 0x01, //!< \~english + epsumcrPARKING_B, //!< \~english Parking(+B) Power state transition. + epsumcrPRE_BA, //!< \~english Pre-boot(+BA) Power state transition. + epsumcrNORMAL, //!< \~english Normal-boot Power state transition. + epsumcrBACKGROUND_BA, //!< \~english Background-boot(+BA) Power state transition. +} ePwrServiceUserModeChangeReasonType, EPWR_USER_MODE_CHANGE_REASON_TYPE; + // * +// * +// End of Last User Mode, User Mode Protocol enums & typedefs * +//**************************************************************************** + +/** + * \~english + */ +typedef struct _upinfo { + EPWR_WAKEUP_LEVEL_TYPE level; //!< \~english + EPWR_WAKEUP_FACTOR_TYPE factor; //!< \~english + EPWR_USER_MODE_CHANGE_REASON_TYPE userModeChangeReason; //!< \~english State transition reason. +} upInfo; + +/** + * \~english + */ +typedef struct _wakeinfo { + EPWR_POWER_STATE_TYPE powerupType; //!< \~english + upInfo up; //!< \~english +} wakeInfo; + +//**************************************************************************** +// System Mode Info enums & typedefs * +// * +typedef enum { // * + epssinfINVALID = 0xFF, // * + epssinfNORMAL = 0x00, // * + epssinfPROGRAMMING = 0x08, // * +}ePowerSrvSystemModeInfo, EPWR_SYSTEM_MODE_INFO; // * + // * +typedef enum { // * + epssusfINVALID = 0xFF, // * + epssusSYSTEM_SERVICES_STARTED = 0x00, // * + epssusALL_SERVICES_LAUNCHED = 0x01 // * +}ePowerSrvStartupStageType, EPWR_STARTUP_STAGE_TYPE; // * + // * +typedef struct _SystemModeInfo { // * + EPWR_USER_MODE_TYPE lastUserMode; // NOTE: Don't use this. just only remained for backward compatibility. + EPWR_LHC_TYPE limpHomeCutoff; // * + EPWR_PROD_MODE_TYPE productionMode; // * + EPWR_TRANSPORT_MODE_TYPE transportMode; // * + EPWR_SYSTEM_MODE_INFO systemMode; // * + EPWR_STARTUP_STAGE_TYPE startupStage; // * +} SystemModeInfo; // * +// * +// End of System Mode Info enums & typedefs * +//**************************************************************************** + +//**************************************************************************** +// Startup Confirmation enums & typedefs * +// * +typedef enum { // * + eps_CWORD56_bmINVALID = 0xFF, // * + eps_CWORD56_bmAPPLICATION_MODE = 0x00, // * + eps_CWORD56_bmPROGRAMMING_MODE = 0x08 // * +} EPWR_SC__CWORD56__BOOT_MODE_TYPE; // * + // * +typedef enum { // * + epsstINVALID = 0xFF, // * + epsstWARMSTART = 0x00, // * + epsstCOLDSTART = 0x01 // * +} EPWR_SC_WAKEUP_TYPE; // * + // * +typedef enum { // * + epsscrtINVALID = 0xFF, // * + epsscrtNOT_REQUIRED = 0x00, // * + epsscrtREQUIRED = 0x01 // * +} EPWR_SC_COLD_START_REQ_TYPE; // * + // * +typedef enum { // * + epsssINVALID = 0xFF, // * + epsssUNLOCK = 0x00, // * + epsssLOCK = 0x01 // * +} EPWR_SC_SECURITY_STATUS; // * + // * +typedef struct { // * + EPWR_SC__CWORD56__BOOT_MODE_TYPE _CWORD56_BootMode; // * + EPWR_SC_WAKEUP_TYPE wakeupType; // * + EPWR_SC_COLD_START_REQ_TYPE coldStartRequest; // * + EPWR_SC_SECURITY_STATUS securityStatus; // * + UI_32 HWVersion; // * + UI_32 matchedHardwareType; // * + UI_32 softwareType; // * + UI_32 imageType; // * + UI_32 majorVersion; // * + UI_32 minorVersion; // * + UI_32 SWVersionYear; // * + UI_32 SWVersionWeek; // * + UI_32 SWVersionPatchLevel; // * +} StartupConfirmationMsgStrut, EPWR_SC_MSG_STRUCT; // * +// * +// End of Startup Confirmation enums & typedefs * +//**************************************************************************** + +//**************************************************************************** +// Power Request Message enums & typedefs * +// * +/** + * _CWORD102_ Startup Information + */ +typedef enum { + epsprm_CWORD102_siINVALID = 0xFF, //!< \~english + epsprm_CWORD102_si_CWORD102__STARTUP_NORMAL = 0x00, //!< Normal Startup + epsprm_CWORD102_si_CWORD102__STARTUP_AFTER_RESET = 0x01 //!< Startup after Irregular Reset +}ePowerSrv_CWORD102_StartupInfoType, EPWR__CWORD102__STARTUP_INFO_TYPE; +/** + * Opening Type + */ +typedef enum { + epsprmotINVALID = 0xFF, //!< \~english + epsprmotTIMING_TYPE_1 = 0x00, //!< CI/DI Show timing type1 + epsprmotTIMING_TYPE_2 = 0x01 //!< CI/DI Show timing type2 +} ePowerSrvPwrReqMsgCIDIOpeningType, EPWR_OPENING_TYPE; +/** + * Manual Reset Information + */ +typedef enum { + epsprmriINVALID = 0xFF, //!< \~english + epsprmriNORMAL = 0x00, //!< \~english + epsprmriWAKEUP_AFTER_RESET = 0x01 //!< \~english +} ePowerSrvPwrManResetInfoType, EPWR_MAN_RESET_INFO_TYPE; +/** + * Last System Retention Request + */ +typedef enum { + epsprlsrrINVALID = 0xFF, //!< \~english + epsprlsrrLAST_SYSTEM_OFF = 0x00, //!< \~english + epsprlsrrLAST_SYSTEM_ON = 0x01 //!< \~english +} ePowerSrvTypeLastSysRetReq, EPWR_LAST_SYS_RET_REQ_TYPE; + +// * +typedef struct { // * + EPWR__CWORD102__STARTUP_INFO_TYPE startupType; // * + EPWR_OPENING_TYPE openingType; // * + EPWR_WAKEUP_FACTOR_TYPE startupReason; // * + EPWR_USER_MODE_TYPE lastUserMode; // * + EPWR_MAN_RESET_INFO_TYPE manResetInfo; // * + EPWR_LAST_SYS_RET_REQ_TYPE lastSystemRetentionReq; // * + EPWR_USER_MODE_TYPE userMode; // * +} PowerRequestMsgStrut, EPWR_POWER_REQUEST_MSG_STRUCT; // * + +/** + * \~english structure for power request message + */ +typedef struct { + EPWR__CWORD102__STARTUP_INFO_TYPE startupType; //!< \~english + EPWR_OPENING_TYPE openingType; //!< \~english + EPWR_WAKEUP_FACTOR_TYPE startupReason; //!< \~english + EPWR_USER_MODE_TYPE lastUserMode; //!< \~english + EPWR_MAN_RESET_INFO_TYPE manResetInfo; //!< \~english + EPWR_LAST_SYS_RET_REQ_TYPE lastSystemRetentionReq; //!< \~english + EPWR_USER_MODE_TYPE userMode; //!< \~english + EPWR_USER_MODE_CHANGE_REASON_TYPE userModeChangeReason; //!< \~english State transition reason. +} PowerRequestMsgStrutWithUMCR, EPWR_POWER_REQUEST_MSG_STRUCT_WITH_UMCR; +// * +// End of Power Request Message enums & typedefs * +//**************************************************************************** + + + +//**************************************************************************** +// Shutdown Request Message enums & typedefs * +// * +// ONS * +// * +typedef enum { // * + epssdmonsINVALID = 0xFF, // * + epssdmonsNO_ONS = 0x00, // * + epssdmonsONS = 0x01 // * +} ePowerSrvONSType, EPWR_ONS_TYPE; // * +// * +// Shutdown Trigger * +// * +typedef enum { // * + epssdmsdtINVALID = 0xFF, // * + epssdmsdtTESTACC_OFF = 0x00, // * + epssdmsdtON_KEY = 0x01, // * + epssdmsdtIGN_LOCK = 0x02, // * + epssdmsdtPWR_SAVE = 0x03, // * + epssdmsdtTMP_STARTUP = 0x04, // * + epssdmsdtDIAG_DEACTIVATION = 0x05, // * + epssdmsdtABNORMAL_VOLTAGE = 0x06, // * + epssdmsdtABNORMAL_TEMP = 0x07, // * + epssdmsdtBATTERYCUTOFF = 0x08, // * + epssdmsdtLIMPHOME = 0x09, // * + epssdmsdtHU_CAN_ERROR = 0x0A, // * + epssdmsdtBODY_CAN_ERROR = 0x0B, // * + epssdmsdtTRANSPORT_MODE = 0x0C, // * + epssdmsdtPRODUCTION_MODE = 0x0D, // * + epssdmsdtIGN_OFF = 0x0E, // * + epssdmsdtGENERIC_ERROR_RESET = 0x0F, // * + epssdmsdtFATAL_ERROR_RESET = 0x10, // * + epssdmsdtUSER_DATA_RESET = 0x11, // * + epssdmsdtFACTORY_DATA_RESET = 0x12, // * + epssdmsdtFAST_SLEEP_MODE = 0x13, // * + epssdmsdtNORMAL_RESET = 0x14, // * + epssdmsdtPROGUPDATE_RESET = 0x15, // cannot use this + // * + // Note to self: Make sure to update all enum-to-enum and * + // enum-to-string maps when changing these enums ! * +} ePowerSrvPwrShutdownTriggerType, EPWR_SHUTDOWN_TRIGGER_TYPE; // * +// * +typedef struct { // * + EPWR_ONS_TYPE ONS_Type; // * + EPWR_SHUTDOWN_TRIGGER_TYPE shutdownTrigger; // * + EPWR_USER_MODE_TYPE lastUserMode; // * + EPWR_TRANSPORT_MODE_TYPE transportMode; // * + EPWR_PROD_MODE_TYPE productionMode; // * + EPWR_LHC_TYPE limpHomeCutoffRequest; // * +} ShutdownRequestMsgStrut, EPWR_SHUTDOWN_REQUEST_MSG_STRUCT; // * +// * +// End of Shutdown Request Message enums & typedefs * +//**************************************************************************** + +//**************************************************************************** +// HeartBeat enums & typedefs * +// * +// HeartBeat Request Message * +typedef struct { // * + UI_8 IntervalSec; // * +} EPWR_HB_REQ_MSG_STRUCT; // * +// * +// HeartBeat Response Message * +// Zero byte data message returned. * +// End of HeartBeat enums & typedefs * +//**************************************************************************** + +//**************************************************************************** +// CPU Reset Reason enums & typedefs * +typedef enum { // * + epsCpuResetReasonGeneric = 0 // * + , epsCpuResetReasonFatalError // * + , epsCpuResetReasonUserDataReset // * + , epsCpuResetReasonFactoryDataReset // * + , epsCpuResetReasonUserForceReset // * + , epsCpuResetReasonShipmentModeReset // * + , epsCpuResetReasonHeadUnitReset // * + , epsCpuResetReasonNormalReset // * + , epsCpuResetReasonProgupdateReset // cannot use this +} epsCpuResetReason; // * +// +typedef struct { +#define PWR_RESET_MSG_STR_SIZE 32 + epsCpuResetReason resetReason; // * + CHAR messageStr[PWR_RESET_MSG_STR_SIZE]; // * +} SS_Pwr_CpuResetMsgStruct; +// * +// End of CPU Reset Reason enums & typedefs * +//**************************************************************************** + +typedef struct { + union _data { + wakeInfo wake; + + struct _crank { + EPWR_CRANK_STATE_TYPE state; + }crank; + + struct _voltage { + EPWR_VOLTAGE_STATE_TYPE state; + }voltage; + + struct _ws_complete { + EPWR_WAKEUP_LEVEL_TYPE level; + EPWR_WAKEUP_FACTOR_TYPE factor; + }wk_shdwn_complete; + + struct _commwake { + EPWR_CAN_STATE_TYPE state; + }commwake; + + struct _UserMode { + EPWR_USER_MODE_TYPE mode; + } user_mode; + + struct _ShutdownPopup { + EPWR_SHUTDOWN_POPUP_TYPE shutdownPopupEvent; + } shutdownPopup; + + struct _PowerPopup { + EPWR_POWER_POPUP_TYPE powerPopupEvent; + } powerPopup; + + StartupConfirmationMsgStrut startupConfirmationMsg; + PowerRequestMsgStrutWithUMCR powerRequestMsg; + ShutdownRequestMsgStrut shutdownRequestMsg; + }data; +} Pwr_ServiceSetInterface; + +#endif /* SS_POWER_SERVICE_H_ */ // NOLINT (build/header_guard) + +/** @}*/ // end of power_service +/** @}*/ // end of system_service +/** @}*/ // end of BaseSystem diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_power_service_if.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_power_service_if.h new file mode 100755 index 0000000..d0ace60 --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_power_service_if.h @@ -0,0 +1,606 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file ss_power_service_if.h + * @brief \~english This file supports the Power Service client interface. + */ +/** + * @file + */ +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup power_service + * @ingroup system_service + * @{ + */ + +#ifndef POWER_SERVICE_CLIENT_INCLUDE_SYSTEM_SERVICE_SS_POWER_SERVICE_IF_H_ // NOLINT (build/header_guard) +#define POWER_SERVICE_CLIENT_INCLUDE_SYSTEM_SERVICE_SS_POWER_SERVICE_IF_H_ + +#include "system_service/ss_power_service.h" +#include "system_service/ss_power_service_protocol.h" + + +//////////////////////////////////////////////////////////////////////////////////////////// +/// \ingroup OpenPowerService +/// \~english @par Summary +/// Obtain a handle for using the PowerService. +/// \~english @param [in] f_hApp +/// HANDLE - Application handle +/// \~english @retval Handle Success +/// \~english @retval NULL Failed +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// - The API creates a communication resource between +/// the user service and the PowerService +/// and returns a handle for using the PowerService.\n +/// \n +/// - Include ss_power_service_ifc.h +/// - Library libSS_PowerServiceIf.so +/// \~english @see +/// None +//////////////////////////////////////////////////////////////////////////////////////////// +HANDLE OpenPowerService(HANDLE f_hApp); + +//////////////////////////////////////////////////////////////////////////////////////////// +/// \ingroup ClosePowerService +/// \~english @par Summary +/// Free a handle for using PowerService. +/// \~english @param [in] f_hApp +/// HANDLE - Application handle +/// \~english @param [in] f_hService +/// HANDLE - PowerService handle +/// \~english @retval eFrameworkunifiedStatusOK Success +/// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle +/// \~english @retval eFrameworkunifiedStatusFail Failed +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only +/// \~english @par Detail +/// - The API terminates the communication resource between +/// the user service and the PowerServiceand frees the given handle. \n +/// \n +/// - Include ss_power_service_ifc.h +/// - Library libSS_PowerServiceIf.so +/// \~english @see +/// None +//////////////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus ClosePowerService(HANDLE f_hApp, HANDLE f_hService); + +//////////////////////////////////////////////////////////////////////////////////////////// +/// \ingroup PwrServiceOpenSessionRequest +/// \~english @par Summary +/// Make the PowerService available. +/// \~english @param [in] f_hService +/// HANDLE - PowerService handle +/// \~english @param [in] f_eSessionType +/// EPWR_SESSION_TYPE - Session type +/// \~english @retval eFrameworkunifiedStatusOK Success +/// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle +/// \~english @retval eFrameworkunifiedStatusInvldParam Invalid parameter +/// \~english @retval eFrameworkunifiedStatusFail Failed +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Fire and Forget x Method +/// \~english @par Detail +/// - The API opens a session between the user service +/// and the PowerService and makes the PowerService available. \n +/// \n +/// - Include ss_power_service_ifc.h +/// - Library libSS_PowerServiceIf.so +/// \~english @see +/// None +//////////////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus PwrServiceOpenSessionRequest(HANDLE f_hService, + EPWR_SESSION_TYPE f_eSessionType); + +//////////////////////////////////////////////////////////////////////////////////////////// +/// \ingroup PwrServiceCloseSessionRequest +/// \~english @par Summary +/// End using the PowerService. +/// \~english @param [in] f_hService +/// HANDLE - PowerService handle +/// \~english @param [in] f_hSession +/// HANDLE - Session type +/// \~english @retval eFrameworkunifiedStatusOK Success +/// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle +/// \~english @retval eFrameworkunifiedStatusFail Failed +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Fire and Forget x Method +/// \~english @par Detail +/// - The API closes the session between the user service +/// and the PowerService and terminatesthe PowerSerivce use. \n +/// \n +/// - Include ss_power_service_ifc.h +/// - Library libSS_PowerServiceIf.so +/// \~english @see +/// None +//////////////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus PwrServiceCloseSessionRequest(HANDLE f_hService, HANDLE f_hSession); + +//////////////////////////////////////////////////////////////////////////////////////////// +/// \ingroup PwrServiceDecodeOpenSessionResponse +/// \~english @par Summary +/// Obtain a handle for OpenSessionRequest response message. +/// \~english @param [in] f_hApp +/// HANDLE - Application handle +/// \~english @param [in] f_hSession +/// HANDLE& - Address of storing session handle +/// \~english @retval eFrameworkunifiedStatusOK Success +/// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle +/// \~english @retval eFrameworkunifiedStatusNullPointer NULL Pointer +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// - The API obtains a handle for OpenSessionRequest +/// response message using the given application handle.\n +/// \n +/// - Include ss_power_service_ifc.h +/// - Library libSS_PowerServiceIf.so +/// \~english @see +/// None +//////////////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus PwrServiceDecodeOpenSessionResponse(HANDLE f_hApp, + HANDLE& f_hSession); // NOLINT (runtime/references) + +//////////////////////////////////////////////////////////////////////////////////////////// +/// \ingroup PwrServiceSetVoltageState +/// \~english @par Summary +/// Set power supply state. +/// \~english @param [in] f_hSession +/// HANDLE - Session handle +/// \~english @param [in] f_eVoltage_state +/// EPWR_VOLTAGE_STATE_TYPE - Power supply status value +/// \~english @par +/// - Power supply status value +/// +/// +/// +/// +/// +/// +///
NameValue
epsvsINVALID0xFF
epsvsNORMAL0x20
epsvsLVI10x22
epsvsLVI20x24
+/// \~english @retval eFrameworkunifiedStatusOK Success +/// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle +/// \~english @retval eFrameworkunifiedStatusInvldParam Invalid parameter +/// \~english @retval eFrameworkunifiedStatusFail Failed +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Method only +/// \~english @par Detail +/// - The API sets power supply state to the PowerService. \n +/// \n +/// - Include ss_power_service_ifc.h +/// - Library libSS_PowerServiceIf.so +/// \~english @see +/// None +//////////////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus PwrServiceSetVoltageState(HANDLE f_hSession, + EPWR_VOLTAGE_STATE_TYPE f_eVoltage_state); + +//////////////////////////////////////////////////////////////////////////////////////////// +/// \ingroup PwrServiceSetCrankState +/// \~english @par Summary +/// Set crank state. +/// \~english @param [in] f_hSession +/// HANDLE - Session handle +/// \~english @param [in] f_eCrank_state +/// EPWR_CRANK_STATE_TYPE - Crank state value +/// \~english @par +/// - Crank state value +/// +/// +/// +/// +/// +///
NameValue
epscsINVALID0xFF
epscsENTRY0xA0
epscsEXIT0xA2
+/// \~english @retval eFrameworkunifiedStatusOK Success +/// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle +/// \~english @retval eFrameworkunifiedStatusInvldParam Invalid parameter +/// \~english @retval eFrameworkunifiedStatusFail Failed +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Fire and Forget only +/// \~english @par Detail +/// - The API sets crank state to the PowerService.\n +/// \n +/// - Include ss_power_service_ifc.h +/// - Library libSS_PowerServiceIf.so +/// \~english @see +/// None +//////////////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus PwrServiceSetCrankState(HANDLE f_hSession, + EPWR_CRANK_STATE_TYPE f_eCrank_state); + +//////////////////////////////////////////////////////////////////////////////////////////// +/// \ingroup PwrServiceSystemModeInfoRequest +/// \~english @par Summary +/// Request to obtain the system mode information. +/// \~english @param [in] f_hSession +/// HANDLE - Session handle +/// \~english @retval eFrameworkunifiedStatusOK Success +/// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle +/// \~english @retval eFrameworkunifiedStatusFail Failed +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Method x Method +/// \~english @par Detail +/// - The API requests the PowerService to obtain +/// the system mode information.\n +/// \n +/// - Include ss_power_service_ifc.h +/// - Library libSS_PowerServiceIf.so +/// \~english @see +/// None +//////////////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus PwrServiceSystemModeInfoRequest(HANDLE f_hSession); + +//////////////////////////////////////////////////////////////////////////////////////////// +/// \ingroup PwrServiceSendInitCompReport +/// \~english @par Summary +/// Send an initialize complete response. +/// \~english @param [in] f_hSession +/// HANDLE - Session handle +/// \~english @retval eFrameworkunifiedStatusOK Success +/// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle +/// \~english @retval eFrameworkunifiedStatusFail Failed +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Fire and Forgeat x Fire and Forget +/// \~english @par Detail +/// - The API sends an initialize complete response to the PowerService.\n +/// \n +/// - Include ss_power_service_ifc.h +/// - Library libSS_PowerServiceIf.so +/// \~english @see +/// None +//////////////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus PwrServiceSendInitCompReport(HANDLE f_hSession); + +//////////////////////////////////////////////////////////////////////////////////////////// +/// \ingroup PwrServiceSendSetShutdownPopupRequest +/// \~english @par Summary +/// Obtain shutdown state. +/// \~english @param [in] f_hSession +/// HANDLE - Session handle +/// \~english @param [in] f_eShutdownPopup +/// EPWR_SHUTDOWN_POPUP_TYPE - Shutdown state +/// \~english @retval eFrameworkunifiedStatusOK Success +/// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle +/// \~english @retval eFrameworkunifiedStatusInvldParam Invalid parameter +/// \~english @retval eFrameworkunifiedStatusFail Failed +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Method only +/// \~english @par Detail +/// - The API obtains the shutdown state from the PowerService. \n +/// \n +/// - Include ss_power_service_ifc.h +/// - Library libSS_PowerServiceIf.so +/// \~english @see +/// None +//////////////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus PwrServiceSendSetShutdownPopupRequest(HANDLE f_hSession, + EPWR_SHUTDOWN_POPUP_TYPE f_eShutdownPopup); + +//////////////////////////////////////////////////////////////////////////////////////////// +/// \ingroup PwrServiceSendStartupConfirmationMsgRequest +/// \~english @par Summary +/// Send startup confirmation request. +/// \~english @param [in] f_hSession +/// HANDLE - Session handle +/// \~english @param [in] f_eState +/// EPWR_SC_MSG_STRUCT +/// - Address of the structure for startup confirmation request message +/// \~english @par +/// - Structure for startup confirmation request message +/// \~english @code +/// typedef struct { +/// EPWR_SC__CWORD56__BOOT_MODE_TYPE _CWORD56_BootMode; +/// EPWR_SC_WAKEUP_TYPE wakeupType; +/// EPWR_SC_COLD_START_REQ_TYPE coldStartRequest; +/// EPWR_SC_SECURITY_STATUS securityStatus; +/// UI_32 HWVersion; +/// UI_32 matchedHardwareType; +/// UI_32 softwareType; +/// UI_32 imageType; +/// UI_32 majorVersion; +/// UI_32 minorVersion; +/// UI_32 SWVersionYear; +/// UI_32 SWVersionWeek; +/// UI_32 SWVersionPatchLevel; +/// } StartupConfirmationMsgStrut, EPWR_SC_MSG_STRUCT; +/// @endcode\n +/// \n +/// - EPWR_SC__CWORD56__BOOT_MODE_TYPE +/// +/// +/// +/// +/// +///
NameValue
eps_CWORD56_bmINVALID0xFF
eps_CWORD56_bmAPPLICATION_MODE0x00
eps_CWORD56_bmPROGRAMMING_MODE0x08
\n +/// \n +/// - EPWR_SC_WAKEUP_TYPE +/// +/// +/// +/// +/// +///
NameValue
epsstINVALID0xFF
epsstWARMSTART0x00
epsstCOLDSTART0x01
\n +/// \n +/// - EPWR_SC_COLD_START_REQ_TYPE +/// +/// +/// +/// +/// +///
NameValue
epsscrtINVALID0xFF
epsscrtNOT_REQUIRED0x00
epsscrtREQUIRED0x01
\n +/// \n +/// - EPWR_SC_SECURITY_STATUS +/// +/// +/// +/// +/// +///
NameValue
epsssINVALID0xFF
epsssUNLOCK0x00
epsssLOCK0x01
\n +/// \n +/// \~english @retval eFrameworkunifiedStatusOK Success +/// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle +/// \~english @retval eFrameworkunifiedStatusFail Failed +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Fire and Forget x Fire and Forget +/// \~english @par Detail +/// - The API sends a startup confirmation request to the PowerService.\n +/// \n +/// - Include ss_power_service_ifc.h +/// - Library libSS_PowerServiceIf.so +/// \~english @see +/// None +//////////////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus PwrServiceSendStartupConfirmationMsgRequest(HANDLE f_hSession + , EPWR_SC_MSG_STRUCT f_eState); + +//////////////////////////////////////////////////////////////////////////////////////////// +/// \ingroup PwrServiceSendPowerRequest +/// \~english @par Brief +/// Send power request. +/// \~english @param [in] f_hSession +/// HANDLE - Session handle +/// \~english @param [in] f_eState +/// \ref PowerRequestMsgStrutWithUMCR "EPWR_POWER_REQUEST_MSG_STRUCT_WITH_UMCR&" - Address of the structure for power request message +/// \~english @par +/// \n +/// Of the eight elements of the \ref PowerRequestMsgStrutWithUMCR "EPWR_POWER_REQUEST_MSG_STRUCT_WITH_UMCR" structure, five elements set fixed values.\n +/// startupType = \ref epsprm_CWORD102_si_CWORD102__STARTUP_NORMAL\n +/// openingType = \ref epsprmotTIMING_TYPE_1\n +/// lastUserMode = \ref epsumON\n +/// manResetInfo = \ref epsprmriNORMAL\n +/// lastSystemRetentionReq = \ref epsprlsrrLAST_SYSTEM_OFF\n +/// \n +/// For the following, set different values at system startup and shutdown.\n +/// (Element name) = (Startup settings or Shutdown settings)\n +/// startupReason = (\ref epswfIGN_ACC or \ref epswfINVALID)\n +/// userMode = (\ref epsumON or \ref epsumOFF)\n +/// \n +/// For the following, set different values at power state transition.\n +/// +/// +/// +/// +/// +/// +/// +/// +///
Element namePower stateValue
userModeChangeReason
Not Available\ref epsumcrNOT_AVAILABLE
\ref epsumcrON_KEY
Parking(+B)\ref epsumcrPARKING_B
Pre-boot(+BA) \ref epsumcrPRE_BA
Normal-boot \ref epsumcrNORMAL
Background-boot(+BA) \ref epsumcrBACKGROUND_BA
+/// \n +/// \~english @retval eFrameworkunifiedStatusOK Success +/// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle +/// \~english @retval eFrameworkunifiedStatusFail Failed +/// \~english @par Prerequisite +/// None +/// \~english @par Change of internal state +/// None +/// \~english @par Conditions of processing failure +/// - When the session handle (f_hSession) specified by the argument is NULL. [eFrameworkunifiedStatusInvldHandle] +/// - The process fails for some reason. [eFrameworkunifiedStatusFail] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Method only +/// \~english @par Detail +/// - The API send a power request to the PowerService.\n +/// \n +/// - Include ss_power_service_ifc.h +/// - Library libSS_PowerServiceIf.so +/// \~english @see +/// None +//////////////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus PwrServiceSendPowerRequest(HANDLE f_hSession, + EPWR_POWER_REQUEST_MSG_STRUCT_WITH_UMCR& f_eState); + + +//////////////////////////////////////////////////////////////////////////////////////////// +/// \ingroup PwrServiceSendShutdownRequest +/// \~english @par Summary +/// Send shutdown request. +/// \~english @param [in] f_hSession +/// HANDLE - Session handle +/// \~english @param [in] f_eState +/// EPWR_SHUTDOWN_REQUEST_MSG_STRUCT& +/// - Address of the structure for shutdown request message +/// \~english @par +/// - Structure for shutdown request message +/// \~english @code +/// typedef struct { +/// EPWR_ONS_TYPE ONS_Type; +/// EPWR_SHUTDOWN_TRIGGER_TYPE shutdownTrigger; +/// EPWR_USER_MODE_TYPE lastUserMode; +/// EPWR_TRANSPORT_MODE_TYPE transportMode; +/// EPWR_PROD_MODE_TYPE productionMode; +/// EPWR_LHC_TYPE limpHomeCutoffRequest; +/// } ShutdownRequestMsgStrut, EPWR_SHUTDOWN_REQUEST_MSG_STRUCT +/// @endcode\n +/// \n +/// - EPWR_ONS_TYPE +/// +/// +/// +/// +/// +///
NameValue
epssdmonsINVALID0xFF
epssdmonsNO_ONS0x00
epssdmonsONS0x01
\n +/// \n +/// - EPWR_SHUTDOWN_TRIGGER_TYPE +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +///
NameValue
epssdmsdtINVALID0xFF
epssdmsdtTESTACC_OFF0x00
epssdmsdtON_KEY0x01
epssdmsdtIGN_LOCK0x02
epssdmsdtPWR_SAVE0x03
epssdmsdtTMP_STARTUP0x04
epssdmsdtDIAG_DEACTIVATION0x05
epssdmsdtABNORMAL_VOLTAGE0x06
epssdmsdtABNORMAL_TEMP0x07
epssdmsdtBATTERYCUTOFF0x08
epssdmsdtLIMPHOME0x09
epssdmsdtHU_CAN_ERROR0x0A
epssdmsdtBODY_CAN_ERROR0x0B
epssdmsdtTRANSPORT_MODE0x0C
epssdmsdtPRODUCTION_MODE0x0D
epssdmsdtIGN_OFF0x0E
epssdmsdtGENERIC_ERROR_RESET0x0F
epssdmsdtFATAL_ERROR_RESET0x10
epssdmsdtUSER_DATA_RESET0x11
epssdmsdtFACTORY_DATA_RESET0x12
epssdmsdtFAST_SLEEP_MODE0x13
epssdmsdtNORMAL_RESET0x14
epssdmsdtPROGUPDATE_RESET0x15
\n +/// \n +/// - EPWR_USER_MODE_TYPE +/// +/// +/// +/// +/// +///
NameValue
epsumINVALID0xFF
epsumOFF0x00
epsumON0x01
\n +/// \n +/// - EPWR_TRANSPORT_MODE_TYPE +/// +/// +/// +/// +/// +///
NameValue
epstmINVALID0xFF
epstmDISABLED0x00
epstmENABLED0x01
\n +/// \n +/// - EPWR_PROD_MODE_TYPE +/// +/// +/// +/// +/// +///
NameValue
epspmINVALID0xFF
epspmDISABLED0x00
epspmENABLED0x01
\n +/// \n +/// - EPWR_LHC_TYPE +/// +/// +/// +/// +/// +///
NameValue
epslhcINVALID0xFF
epslhcDISABLED0x00
epslhcENABLED0x01
\n +/// \n +/// \~english @retval eFrameworkunifiedStatusOK Success +/// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle +/// \~english @retval eFrameworkunifiedStatusFail Failed +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Method x Method +/// \~english @par Detail +/// - The API sends shutdown request to the PowerService.\n +/// \n +/// - Include ss_power_service_ifc.h +/// - Library libSS_PowerServiceIf.so +/// \~english @see +/// None +//////////////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus PwrServiceSendShutdownRequest( + HANDLE f_hSession + , EPWR_SHUTDOWN_REQUEST_MSG_STRUCT &f_eState); // NOLINT (runtime/references) + +//////////////////////////////////////////////////////////////////////////////////////////// +/// \ingroup PwrServiceSendHeartBeatRequest +/// \~english @par Summary +/// Send a request for HeartBeat monitoring start. +/// \~english @param [in] f_hSession +/// HANDLE - Session handle +/// \~english @param [in] f_eHbReqMsg +/// EPWR_HB_REQ_MSG_STRUCT* +/// - Address of the structure for HeartBeat monitoring start request message +/// \~english @par +/// - Structure for HeartBeat monitoring start request message +/// \~english @code +/// typedef struct { +/// UI_8 IntervalSec; +/// } EPWR_HB_REQ_MSG_STRUCT; +/// @endcode\n +/// \n +/// \~english @retval eFrameworkunifiedStatusOK Success +/// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle +/// \~english @retval eFrameworkunifiedStatusFail Failed +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Method x Method +/// \~english @par Detail +/// - The API sends HeartBeat monitoring start\n +/// request to the PowerService\n +/// - Include ss_power_service_ifc.h +/// - Library libSS_PowerServiceIf.so +/// \~english @see +/// None +//////////////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus PwrServiceSendHeartBeatRequest( + HANDLE f_hSession, + EPWR_HB_REQ_MSG_STRUCT *f_eHbReqMsg); + +#endif // POWER_SERVICE_CLIENT_INCLUDE_SYSTEM_SERVICE_SS_POWER_SERVICE_IF_H_ // NOLINT (build/header_guard) + +/** @}*/ // end of PowerService +/** @}*/ // end of SystemService +/** @}*/ // end of BaseSystem diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_power_service_local.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_power_service_local.h new file mode 100755 index 0000000..51a284a --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_power_service_local.h @@ -0,0 +1,66 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file ss_power_service_local.h + * @brief \~english This file supports the Power Service interface. + */ +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup interface_unified + * @ingroup system_service + * @{ + */ +#ifndef SS_POWER_SERVICE_LOCAL_H_ // NOLINT (build/header_guard) +#define SS_POWER_SERVICE_LOCAL_H_ + + +#include +#include +#include "system_service/ss_system_types.h" + + + + + +const UI_32 MaxTestCaseName = 128; +const UI_32 MaxRespMsg = 2048; + +typedef enum _PwLVIStatus { + ePwSrvLVI_Status_InActive, + ePwSrvLVI_Status_Active +} PowerSrvLVIStatus, EPWER_LVI_STATUS; + +typedef struct _PwCompleteAck { + UI_16 unSessionId; + CHAR szServiceName[MAX_QUEUE_NAME_SIZE]; +} StartCompleteAck; + +typedef struct _SS_PSCurrentState { + CHAR testCaseId[MaxTestCaseName]; + CHAR printRespmsg[MaxRespMsg]; +}SS_PSCurrentState; + + +#endif /* SS_POWER_SERVICE_LOCAL_H_ */ // NOLINT (build/header_guard) +/** @}*/ // end of power_service +/** @}*/ // end of SystemService +/** @}*/ // end of BaseSystem diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_power_service_notifications.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_power_service_notifications.h new file mode 100755 index 0000000..b25172d --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_power_service_notifications.h @@ -0,0 +1,48 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file ss_power_service_notifications.h + * @brief \~english This file supports the Power Service interface. + */ +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup power_service + * @ingroup system_service + * @{ + */ +#ifndef POWER_SERVICE_CLIENT_INCLUDE_SYSTEM_SERVICE_SS_POWER_SERVICE_NOTIFICATIONS_H_ // NOLINT (build/header_guard) +#define POWER_SERVICE_CLIENT_INCLUDE_SYSTEM_SERVICE_SS_POWER_SERVICE_NOTIFICATIONS_H_ + +#include "system_service/ss_services.h" + + + + +/// Indicated if Power Service is available or not portion of this message is BOOL +#define szNTFY_PowerAvailability SERVICE_POWER"/Availability" + +/// @} + +#endif // POWER_SERVICE_CLIENT_INCLUDE_SYSTEM_SERVICE_SS_POWER_SERVICE_NOTIFICATIONS_H_ // NOLINT (build/header_guard) +/** @}*/ // end of power_service +/** @}*/ // end of SystemService +/** @}*/ // end of BaseSystem diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_power_service_notifications_local.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_power_service_notifications_local.h new file mode 100755 index 0000000..a06c030 --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_power_service_notifications_local.h @@ -0,0 +1,67 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file ss_power_service_notifications_local.h + * @brief \~english This file supports the Power Service interface. + */ +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup system_service + * @{ + */ +#ifndef SS_POWER_SERVICE_NOTIFICATIONS_LOCAL_H_ // NOLINT (build/header_guard) +#define SS_POWER_SERVICE_NOTIFICATIONS_LOCAL_H_ + +#include "system_service/ss_services.h" + + +/// \addtogroup system_manager +/// @{ + +/// Depreciated !! +#define szNTFY_PowerLVI1 SERVICE_POWER"/LVI1" +/// Depreciated !! +#define szNTFY_PowerLVI2 SERVICE_POWER"/LVI2" +/// Indicates the current power level state +#define szNTFY_PowerLevel SERVICE_POWER"/Level" + +/// Notification that Power Service publishes for subscribers ( ie, HMI ) to +/// display a popup indicating the type of shutdown condition. +/// 1. Power Save +/// 2. BatteryCut +/// 3. Low Voltage +#define szNTFY_ShutdownPopup SERVICE_POWER"/ShutdownPopup" + +/// Notification that Power Service publishes for subscribers ( ie, HMI ) to +/// display a popup indicating the type of CPMShowPowerPopup. +/// 1. Normal +/// 2. Critical +/// 3. Application Critical +#define szNTFY_PowerPopup SERVICE_POWER"/PowerPopup" + +/// @} + +#endif /* SS_POWER_SERVICE_NOTIFICATIONS_LOCAL_H_ */ // NOLINT (build/header_guard) +/** @}*/ +/** @}*/ +/** @}*/ diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_power_service_protocol.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_power_service_protocol.h new file mode 100755 index 0000000..92860e8 --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_power_service_protocol.h @@ -0,0 +1,201 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file ss_power_service_protocol.h + * @brief \~english This file supports the Power Service interface. + */ +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup interface_unified + * @ingroup system_service + * @{ + */ +#ifndef POWER_SERVICE_CLIENT_INCLUDE_SYSTEM_SERVICE_SS_POWER_SERVICE_PROTOCOL_H_ // NOLINT (build/header_guard) +#define POWER_SERVICE_CLIENT_INCLUDE_SYSTEM_SERVICE_SS_POWER_SERVICE_PROTOCOL_H_ + + +#include +#include +#include "system_service/ss_power_service.h" + +/// \ingroup PSM_Local +/** + * power service protocol --> define all protocol messages in and out of power that are pertinent to the functionality offered by power. + */ +typedef enum _SS_PowerServiceProtocol { + // Diagnostic Protocol + SS_POWER_PRINT_CONNECTIONS = 0x32, //!< client to service + SS_POWER_PRINT_STACK = 0x33, //!< client to service + + SS_POWER_WAKEUP_COMPLETE = 0x41, //!< service to client // used by power state machine + SS_POWER_SHUTDOWN_COMPLETE = 0x42, //!< service to client // used by power state machine + SS_POWER_VOLTAGE_STATE = 0x43, //!< client to service + SS_POWER_LVI2_SHUTDOWN_COMPLETE = 0x44, //!< service to client + SS_POWER_CRANK_STATE = 0x45, //!< client to service + + + // System Manager commands + SS_POWER_WAKEUP_MODULES_CMPL_RSPN = 0x51, //!< service to shadow + SS_POWER_SYSTEM_LAUNCH_COMPLETE = 0x56, //!< client to service + + + // SSM Service commands + SS_POWER_STATE_CHANGE_REQ = 0x40, //!< client to service : send wakeup to System Manager + SS_POWER_STATE_CHANGE_RESP = 0x46, //!< \~english Response to request of power state transition to power_supply_manager_shadow. + + SS_POWER_COMM_WAKEUP = 0x58, //!< client to service : Power On expected + + SS_POWER_SHUTDOWN_REQ = 0x59, //!< client to service : Comm Sleep from Shadow + SS_POWER_SHUTDOWN_RESP = 0x57, //!< service to shadow : Shutdown complete from System Manager + + SS_POWER_CRNT_STATE_QUERY = 0x60, //!< client to service + SS_POWER_CRNT_STATE_QUERY_RSPN = 0x61, //!< service to client + + SS_POWER_SYSTEM_MODE_INFO_REQ = 0x63, //!< Client (Shadow) to Service (Power Service) + SS_POWER_SYSTEM_MODE_INFO_RESP = 0x64, //!< Service to client ***** + + SS_POWER_INITCOMP_REP = 0x70, //!< Client (Shadow) to Service (Power Service) + + //************************************************************************* + // CPMShowPowerPopup Notification Protocol: * + // * + // Request by the Power Shadow to the Power Service to publish a * + // 'Voltage State' notification. * + // * + // The Request message carries the requested notification. * + // The Response message carries the EFrameworkunifiedStatus of the request. * + SS_POWER_PUBLISH_POWER_POPUP_REQ, //!< Shadow to Pwr Svc + SS_POWER_PUBLISH_POWER_POPUP_RESP, //!< Pwr Svc to Shadow + // * + // End of CPMShowPowerPopup Notification Protocol * + //************************************************************************* + + //************************************************************************* + // Shutdown Condition Notification Protocol: * + // * + // Request by the Power Shadow to the Power Service to publish the * + // 'Shutdown Condition' notification. * + // * + // The Request message carries the requested PowerPopup. * + // The Response message carries the EFrameworkunifiedStatus of the request. * + SS_POWER_PUBLISH_SHUTDOWN_CONDITION_REQ, //!< Shadow to Pwr Svc + SS_POWER_PUBLISH_SHUTDOWN_CONDITION_RESP, //!< Pwr Svc to Shadow + // * + // End of Shutdown Condition Notification Protocol * + //************************************************************************* + + //************************************************************************* + // Startup Confirmation Protocol: * + // * + // Request by the Power Shadow to the Power Service to forward to the * + // System Manager the Startup Confirmation message. * + // * + // The Request message carries the Startup Confirmation message. * + // The Response message carries the EFrameworkunifiedStatus of the request. * + SS_POWER_FWD_START_CONFIRMATION_MSG_REQ, //!< Shadow to Pwr Svc + SS_POWER_FWD_START_CONFIRMATION_MSG_RESP, //!< Pwr Svc to Shadow + // * + // End of Startup Confirmation Protocol * + //************************************************************************* + + //************************************************************************* + // Power Request Protocol: * + // * + // Power Request message from the Power Shadow to the Power Service with * + // _CWORD56_'s "Power_Request" IPC_Command data. * + // * + // The Request message carries the _CWORD56_'s data. * + // The Response message will use the SS_POWER_STATE_CHANGE_RESP protocol * + // ID. * + SS_POWER_POWER_REQUEST_MSG, //!< Shadow to Pwr Svc + // * + // End of Power Request Protocol * + //************************************************************************* + + //************************************************************************* + // Shutdown Request Protocol: * + // * + // Shutdown Request message from the Power Shadow to the Power Service * + // with _CWORD56_'s "Shutdown_Request" IPC_Command data. * + // * + // The Request message carries the _CWORD56_'s data. * + // The Response message will use the SS_POWER_STATE_CHANGE_RESP protocol * + // ID. * + SS_POWER_SHUTDOWN_REQUEST_MSG, //!< Shadow to Pwr Svc + // * + // End of Shutdown Request Protocol * + //************************************************************************* + + //************************************************************************* + // User Mode Protocol: * + // * + // Request by the Power Service to the System Manager, originally from * + // the Power Shadow, to turn on or off the video & audio output of HMI * + // and Audio services. * + // User Mode 'On' => turn video & audio output on * + // User Mode 'Off' => turn video & audio output off * + // * + // The Request message carries the requested User Mode state. * + // The Response message carries the actual User Mode state. * + SS_POWER_USER_MODE_SET_RESP, //!< Power Service to Shadow + // * + // Note: See the corresponding Power Service / System Manager * + // 'SS_SystemManagerProtocol' enums in /SystemServices/inc/ * + // ss_system_manager_protocol.h * + // * + // End of User Mode Protocol * + //************************************************************************* + + //************************************************************************* + // Heartbeat Protocol: * + // * + // Request by the Power Service to the System Manager, originally from * + // the Power Shadow, to support the heartbeat request response system. * + // * + // The Request message carries the expected application processor * + // heartbeat response interval in units of seconds. * + // The Response message has a data length of zero and serves as a * + // periodic heartbeat message to the boot micro. * + SS_POWER_HEARTBEAT_REQ, //!< Shadow to Power Service + SS_POWER_HEARTBEAT_RESP, //!< Power Service to Shadow + // * + // End of Heartbeat Protocol * + //************************************************************************* + + //************************************************************************* + // Hard Reset Request Protocol : * + // * + // Request by the Power Service to the Shadow to support the sending of * + // a reset request with type argument to the boot micro. * + // * + // The Request message carries epsCpuResetReason as data payload. * + SS_POWER_HARD_RESET_REQ, //!< Power Service to Shadow + // * + // End of Hard Reset Request Protocol * + //************************************************************************* +}SS_PowerServiceProtocol; + +#endif /* POWER_SERVICE_CLIENT_INCLUDE_SYSTEM_SERVICE_SS_POWER_SERVICE_PROTOCOL_H_ */ // NOLINT (build/header_guard) +/** @}*/ // end of interface_unified +/** @}*/ // end of system_service +/** @}*/ // end of BaseSystem +// EOF diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_services.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_services.h new file mode 100755 index 0000000..d414670 --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_services.h @@ -0,0 +1,63 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file ss_services.h + * @brief \~english This file supports contains the queue names of all System Services processes. + */ +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup interface_unified + * @ingroup system_service + * @{ + */ +#ifndef SS_SERVICES_H_ // NOLINT (build/header_guard) +#define SS_SERVICES_H_ + +#include + + +// Caution:ServiceName length mas is 15 +// System_Services domain services 0123456789ABCDE +#define SS_DEV_DETECT_THD "SS_Dev_Detect_Thd" +#define SS_DEV_DETECT_SRV MN_SS_DEVDETECTSRV +#define SS_DEV_DETECT_BSP_THD "SS_DeviceDetectErr" +#define SS_GROUP_LAUNCH_TRIGGER "SS_GroupLaunchTrigger" +#define SERVICE_HEARTBEAT "SS_HeartBeatService" +#define SERVICE_LOGGER MN_SS_LOGGERSRV +#define SS_UDEV_DEV_DETECT_DLL "SS_UDEV_DeviceDetect" +#define SS_PLM_SERVICE "SS_PLMService" +#define SERVICE_POWER MN_SS_POWERSERVICE +#define SS_RESOURCE_MONITOR_SERVICE "SS_ResourceMonitorService" +#define SERVICE_SOFTWAREUPDATE "SS_SofUpdateSrv" +#define SERVICE_SYSMANAGER MN_SS_SYSMANAGER +#define SS_WINSYS MN_SS_WINSYS +#define SS_RESOURCE_MANAGER MN_SS_RESOURCEMGR +#define SS_TASK_MANAGER MN_SS_TASKMANAGER +#define SERVICE_VUP MN_VUPSERVICE +#define SS_UPDATESERVICE MN_SS_UPDATESERVICE + +/// @} + +#endif /* SS_SERVICES_H_ */ // NOLINT (build/header_guard) +/** @}*/ +/** @}*/ +/** @}*/ diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_sm_client_if.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_sm_client_if.h new file mode 100755 index 0000000..70b9425 --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_sm_client_if.h @@ -0,0 +1,1064 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file ss_sm_client_if.h + * @brief \~english This file supports the AGL framework client interface to System manager. + */ +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup interface_unified + * @ingroup system_service + * @{ + */ + + +#ifndef __SS_SYSTEM_MANAGER_CLIENT_IF_H__ // NOLINT (build/header_guard) +#define __SS_SYSTEM_MANAGER_CLIENT_IF_H__ + +#include +#include +#include +#include "system_service/ss_power_service.h" +#include "system_service/ss_system_manager_if.h" + + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup RegisterSMSessionAckCallback +/// \~english @par Summary +/// API for setting the FrameworkunifiedOnStop response +/// \~english @param [in] CallbackPtr +/// EFrameworkunifiedStatus - Pointer to a callback function +/// \~english @par +/// - TRUE : Not carried out in the automatic response. +/// - FALSE : Carry out the response in automatic. (Default) +/// \~english @retval VOID None +/// \~english @par Preconditions +/// - Dispatcher for the System Manager is generated, and Availability of the service is TRUE. +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~english @par Causes of failures +/// None +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// In the case of is_start_required = TURE, Client Services of System Manager, automatically \n +/// System Manager and the session at the same time is building and start-up. \n +/// It is possible to receive a call back at the timing when the session establishment is completed \n +/// by this API. \n +/// is_start_required is, as a Launch Configuration information, have the following meanings. +/// \~english @par +/// is_start_required \n +/// - True: Create a session with the System Manager.(Service to use the Dispatcher.) \n +/// - False: Not create a session with the System Manager.(Do not use the Dispatcher Service.) +/// OnStart/Stop/DebugDump Callback is not called. HeartBeat function does not apply. +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////////// +extern EFrameworkunifiedStatus RegisterSMSessionAckCallback(EFrameworkunifiedStatus (*CallbackPtr)(HANDLE)); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup SetDataResetModeToSystemManager +/// \~english @par Summary +/// API to record the data reset mode of the next boot in a non-volatile area. +/// \~english @param [in] dataResetMode +/// ESMDataResetModeInfo - Data reset mode information +/// \~english @par +/// - e_SS_SM_DATA_RESET_MODE_NONE : Do not initialize +/// - e_SS_SM_DATA_RESET_MODE_USER : User data initialization +/// - e_SS_SM_DATA_RESET_MODE_FACTORY : Factory initialization +/// \~english @retval eFrameworkunifiedStatusOK Success +/// \~english @retval eFrameworkunifiedStatusInvldParam Invalid parameter +/// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer +/// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle +/// \~english @retval eFrameworkunifiedStatusInvldHndlType Invalid type of handle +/// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full +/// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor +/// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) +/// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size +/// \~english @retval eFrameworkunifiedStatusBadConnection Socket connection error +/// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred +/// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory) +/// \~english @par Preconditions +/// - Dispatcher for the System Manager is generated, and Availability of the service is TRUE. +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~english @par Causes of failures +/// - Specified log type is invalid(In the case of value which does not correspond to enum eSMUserLogType). +/// [eFrameworkunifiedStatusInvldParam] +/// - System Manager of the session does not exist. [eFrameworkunifiedStatusNullPointer] +/// - System Manager handle for the session is NULL. [eFrameworkunifiedStatusInvldHandle] +/// - System Manager handle type for the session is not a send and receive type. [eFrameworkunifiedStatusInvldHndlType] +/// - System Manager message queue for the session is full. [eFrameworkunifiedStatusMsgQFull] +/// - Send and receive for the file descriptor of System Manager message for the session is invalid. +/// [eFrameworkunifiedStatusErrNoEBADF] +/// - Place to interrupt by the system call (signal) has occurred during the send and receive of the System +/// Manager message for the session. [eFrameworkunifiedStatusErrNoEINTR] +/// - Size of the send and receive buffer of the System Manager message for the session is invalid. +/// [eFrameworkunifiedStatusInvldBufSize] +/// - Send and receive and reception of System Manager message for the session fails to socket connection. +/// [eFrameworkunifiedStatusBadConnection] +/// - Any error has occurred at the time of send and receive of the System Manager message for the session. +/// [eFrameworkunifiedStatusFail] +/// - Send and receive of System Manager message for the session fails to shared memory access. +/// [eFrameworkunifiedStatusErrOther] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Fire and Forget x Method +/// \~english @par Detail +/// The data reset mode to save in a non-volatile area, the function return.\n +/// System Manager is to expand the resident service data reset mode of the non-volatile area as\n +/// an argument of FrameworkunifiedOnStart.\n +/// Task Manager is Callback data initialization interface of the same information as an argument.\n +/// All of, the completion of the FrameworkunifiedOnStart processing of all resident services (System Manager) \n +/// and, at the timing when the Callback of data initialization interface of all non-resident \n +/// service has been completed (Task Manager), a data reset mode, initialized to e_SS_SM_DATA_RESET_ NONE. \n +/// In other words, when the reset until initialization occurs, the same data reset mode again to \n +/// the argument, FrameworkunifiedOnStart or, Callback of data initialization interface is performed. +/// \~english @see SetProgUpdateStateToSystemManager +//////////////////////////////////////////////////////////////////////////////////// +extern EFrameworkunifiedStatus SetDataResetModeToSystemManager(ESMDataResetModeInfo dataResetMode); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup SetProgUpdateStateToSystemManager +/// \~english @par Summary +/// API to record the program update state in the non-volatile information. +/// \~english @param [in] updateState +/// SMProgUpdateState - Program update status +/// \~english @par +/// - SS_SM_PROG_UPDATE_STATE_UPDATED : Program update +/// - SS_SM_PROG_UPDATE_STATE_MAP_UPDATED : Map update +/// - SS_SM_PROG_UPDATE_STATE_MAPDIFF_UPDATED : Map difference updating +/// \~english @retval eFrameworkunifiedStatusOK Success +/// \~english @retval eFrameworkunifiedStatusInvldParam Invalid parameter +/// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer +/// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle +/// \~english @retval eFrameworkunifiedStatusInvldHndlType Invalid type of handle +/// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full +/// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor +/// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) +/// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size +/// \~english @retval eFrameworkunifiedStatusBadConnection Socket connection error +/// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred +/// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory) +/// \~english @par Preconditions +/// - Dispatcher for the System Manager is generated, and Availability of the service is TRUE. +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~english @par Causes of failures +/// - Specified program update status information is invalid (in the case of a value that does not correspond to +/// the enum SMProgUpdateState). [eFrameworkunifiedStatusInvldParam] +/// - System Manager of the session does not exist. [eFrameworkunifiedStatusNullPointer] +/// - System Manager handle for the session is NULL. [eFrameworkunifiedStatusInvldHandle] +/// - System Manager handle type for the session is not a send and receive type. [eFrameworkunifiedStatusInvldHndlType] +/// - System Manager message queue for the session is full. [eFrameworkunifiedStatusMsgQFull] +/// - Send and receive for the file descriptor of System Manager message for the session is invalid. +/// [eFrameworkunifiedStatusErrNoEBADF] +/// - Place to interrupt by the system call (signal) has occurred during the send and receive of the System +/// Manager message for the session. [eFrameworkunifiedStatusErrNoEINTR] +/// - Size of the send and receive buffer of the System Manager message for the session is invalid. +/// [eFrameworkunifiedStatusInvldBufSize] +/// - Send and receive and reception of System Manager message for the session fails to socket connection. +/// [eFrameworkunifiedStatusBadConnection] +/// - Any error has occurred at the time of send and receive of the System Manager message for the session. +/// [eFrameworkunifiedStatusFail] +/// - Send and receive of System Manager message for the session fails to shared memory access. +/// [eFrameworkunifiedStatusErrOther] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// The program update state to save in a non-volatile area, the function return.\n +/// updateState is it is possible to specify more than one by setting the OR.\n +/// Based on the setting state, to determine isProgUpdated, isMapUpdated, the value \n +/// of the isMapDiffUpdated provided in GetInterfaceunifiedOnStartExtInfo and GetInterfaceunifiedOnStopExtInfo.\n +/// Task Manager is provided in data initialization interface, the same information to the non-resident service.\n +/// Set state is initialized with the same timing as data reset mode.\n +/// (See SetDataResetModeToSystemManager) +/// \~english @see SetDataResetModeToSystemManager, GetInterfaceunifiedOnStartExtInfo, GetInterfaceunifiedOnStopExtInfo +//////////////////////////////////////////////////////////////////////////////////// +extern EFrameworkunifiedStatus SetProgUpdateStateToSystemManager(SMProgUpdateState progUpdateState); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup SendCpuResetRequestToSystemManager +/// \~english @par Summary +/// API to request LOG saved to the internal non-volatile area +/// \~english @param [in] l_eCpuResetReason +/// ESMCpuResetReason - Reset factor +/// \~english @param [in] f_messageStr +/// std::string - Abnormal message string +/// \~english @param [in] f_suffixStr +/// std::string - Suffix string of abnormal LOG file +/// \~english @par +/// enum ESMCpuResetReason Variable +/// - e_SS_SM_CPU_RESET_REASON_NORMAL : Normal Reset +/// - e_SS_SM_CPU_RESET_REASON_DATA_RESET : Data Reset +/// - e_SS_SM_CPU_RESET_REASON_USER_FORCE_RESET : User forced reset +/// - e_SS_SM_CPU_RESET_REASON_GENERIC_ERR : Generic Error reset +/// - e_SS_SM_CPU_RESET_REASON_DSP_ERR : DSP Error +/// - e_SS_SM_CPU_RESET_REASON_IMMRESET_NORMAL : Reset immediately +/// \~english @retval eFrameworkunifiedStatusOK Success +/// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer +/// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle +/// \~english @retval eFrameworkunifiedStatusInvldHndlType Invalid type of handle +/// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full +/// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor +/// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) +/// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size +/// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred +/// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory) +/// \~english @par Preconditions +/// - Dispatcher for the System Manager is generated, and Availability of the service is TRUE. +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~english @par Causes of failures +/// - System Manager of the session does not exist. [eFrameworkunifiedStatusNullPointer] +/// - System Manager handle for the session is NULL. [eFrameworkunifiedStatusInvldHandle] +/// - System Manager handle type for the session is not a transmission type. [eFrameworkunifiedStatusInvldHndlType] +/// - System Manager message queue for the session is full. [eFrameworkunifiedStatusMsgQFull] +/// - Transmission for the file descriptor of System Manager message for the session is invalid. +/// [eFrameworkunifiedStatusErrNoEBADF] +/// - Place to interrupt by the system call (signal) has occurred during the transmission of the System Manager +/// message for the session. [eFrameworkunifiedStatusErrNoEINTR] +/// - Size of the transmission buffer of the System Manager message for the session is invalid. +/// [eFrameworkunifiedStatusInvldBufSize] +/// - Any error has occurred at the time of transmission of the System Manager message for the session. +/// [eFrameworkunifiedStatusFail] +/// - Transmission of System Manager message for the session fails to shared memory access. [eFrameworkunifiedStatusErrOther] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Collect the LOG information and stores it in the built-in non-volatile area.\n +/// String specified in f_suffixStr is added as a suffix to the end of the abnormal LOG file name. +/// \~english @see +/// None +//////////////////////////////////////////////////////////////////////////////////// +extern EFrameworkunifiedStatus SendCpuResetRequestToSystemManager(ESMCpuResetReason l_eCpuResetReason, + std::string f_messageStr = "", std::string f_suffixStr = ""); + +//////////////////////////////////////////////////////////////////////////////////////////// +/// \ingroup SetNextWakeupTypeToSystemManager +/// \~english @par Summary +/// Set the next wakeup type. +/// \~english @param [in] f_wakeupType +/// ESMNextWakeupType - Wakeup type +/// \~english @retval eFrameworkunifiedStatusOK Success +/// \~english @retval eFrameworkunifiedStatusInvldParam Invalid parameter +/// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer +/// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred +/// \~english @par Preconditions +/// - Dispatcher for the System Manager is generated, and Availability of the service is TRUE. +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only +/// \~english @par Detail +/// - The API sets the next wakeup type (COLD/HOT/Not specified). +/// \n +/// - Include ss_sm_client_if.h +/// - Library libSS_SystemIfUnified.so +/// \~english @see +/// None +//////////////////////////////////////////////////////////////////////////////////////////// +extern EFrameworkunifiedStatus SetNextWakeupTypeToSystemManager(ESMNextWakeupType f_wakeupType); + + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup Set_UseStopCompleteNotificationVsInterfaceunifiedOnStopFnc_StateVar +/// \~english @par Summary +/// API for setting the FrameworkunifiedOnStop response +/// \~english @param [in] f_setTrue +/// BOOL - Response presence or absence of specified +/// \~english @par +/// - TRUE : Not carried out in the automatic response. +/// - FALSE : Carry out the response in automatic. (Default) +/// \~english @retval VOID None +/// \~english @par Preconditions +/// - Dispatcher for the System Manager is generated, and Availability of the service is TRUE. +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~english @par Causes of failures +/// None +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// In case you can not return the response in the synchronized by FrameworkunifiedOnStop, by setting to \n +/// TRUE in this API, it is possible to implement the completion notice to the system_manager \n +/// the service side. +/// At this time, the service is by to Publish the Notification of "service name/StopComp", \n +/// you are possible to notify the STOP completion to system_manager. +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////////// +VOID Set_UseStopCompleteNotificationVsInterfaceunifiedOnStopFnc_StateVar(BOOL f_SetTrue); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup SendUserInvokedLoggingRequestToSystemManager +/// \~english @par Summary +/// API to request LOG saved to the internal non-volatile area +/// \~english @param [in] f_userInvokedLogType +/// \ref eSMUserLogType - User invoked log type. +/// \~english @param [in] f_messageStr +/// std::string - Abnormal message string +/// \~english @param [in] f_suffixStr +/// std::string - Suffix string of abnormal LOG file +/// \~english @retval eFrameworkunifiedStatusOK Success +/// \~english @retval eFrameworkunifiedStatusInvldParam Invalid parameter +/// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer +/// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle +/// \~english @retval eFrameworkunifiedStatusInvldHndlType Invalid type of handle +/// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full +/// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor +/// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) +/// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size +/// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred +/// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory) +/// \~english @par Preconditions +/// - Dispatcher for the System Manager is generated, and Availability of the service is TRUE. +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~english @par Causes of failures +/// - Log type is invalid(In the case of value which does not correspond to enum eSMUserLogType). +/// [eFrameworkunifiedStatusInvldParam] +/// - System Manager of the session does not exist. [eFrameworkunifiedStatusNullPointer] +/// - System Manager handle for the session is NULL. [eFrameworkunifiedStatusInvldHandle] +/// - System Manager handle type for the session is not a transmission type. [eFrameworkunifiedStatusInvldHndlType] +/// - System Manager message queue for the session is full. [eFrameworkunifiedStatusMsgQFull] +/// - Transmission for the file descriptor of System Manager message for the session is invalid. +/// [eFrameworkunifiedStatusErrNoEBADF] +/// - Place to interrupt by the system call (signal) has occurred during the transmission of the System Manager +/// message for the session. [eFrameworkunifiedStatusErrNoEINTR] +/// - Size of the transmission buffer of the System Manager message for the session is invalid. +/// [eFrameworkunifiedStatusInvldBufSize] +/// - Any error has occurred at the time of transmission of the System Manager message for the session. +/// [eFrameworkunifiedStatusFail] +/// - Transmission of System Manager message for the session fails to shared memory access. [eFrameworkunifiedStatusErrOther] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Collect the LOG information and stores it in the built-in non-volatile area.\n +/// String specified in f_suffixStr is added as a suffix to the end of the abnormal LOG file name. +/// \~english @see SendClearLogsRequestToSystemManager +//////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus SendUserInvokedLoggingRequestToSystemManager(eSMUserLogType f_userInvokedLogType, + std::string f_messageStr = "", std::string f_suffixStr = ""); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup SendInterfaceunifiedOnStopResponseToSystemManager +/// \~english @par Summary +/// API to send a FrameworkunifiedOnStop response +/// \~english @param [in] f_eStatus +/// EFrameworkunifiedStatus - End status +/// \~english @par +/// - eFrameworkunifiedStatusOK : End processing completion +/// - eFrameworkunifiedStatusFail : End processing uncompleted +/// \~english @retval eFrameworkunifiedStatusOK Success +/// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer +/// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle +/// \~english @retval eFrameworkunifiedStatusInvldHndlType Invalid type of handle +/// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full +/// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor +/// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) +/// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size +/// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred +/// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory) +/// \~english @par Preconditions +/// - Dispatcher for the System Manager is generated, and Availability of the service is TRUE. +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~english @par Causes of failures +/// - System Manager of the session does not exist. [eFrameworkunifiedStatusNullPointer] +/// - System Manager handle for the session is NULL. [eFrameworkunifiedStatusInvldHandle] +/// - System Manager handle type for the session is not a transmission type. [eFrameworkunifiedStatusInvldHndlType] +/// - System Manager message queue for the session is full. [eFrameworkunifiedStatusMsgQFull] +/// - Transmission for the file descriptor of System Manager message for the session is invalid. +/// [eFrameworkunifiedStatusErrNoEBADF] +/// - Place to interrupt by the system call (signal) has occurred during the transmission of the System Manager +/// message for the session. [eFrameworkunifiedStatusErrNoEINTR] +/// - Size of the transmission buffer of the System Manager message for the session is invalid. +/// [eFrameworkunifiedStatusInvldBufSize] +/// - Any error has occurred at the time of transmission of the System Manager message for the session. +/// [eFrameworkunifiedStatusFail] +/// - Transmission of System Manager message for the session fails to shared memory access. [eFrameworkunifiedStatusErrOther] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Fire and Forget only +/// \~english @par Detail +/// In case you can not return the response in the synchronized by FrameworkunifiedOnStop, by setting to \n +/// TRUE in this API, it is possible to implement the completion notice to the system_manager \n +/// the service side. +/// At this time, the service is by to Publish the Notification of "service name/StopComp", \n +/// you are possible to notify the STOP completion to system_manager. +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus SendInterfaceunifiedOnStopResponseToSystemManager(EFrameworkunifiedStatus f_eStatus); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup GetInterfaceunifiedOnStartExtInfo +/// \~english @par Summary +/// API to get the extended information of the start-up parameters. +/// \~english @param [out] f_info +/// T_SS_SM_START_ExtDataStructType - Startup parameters extended information +/// \~english @par +/// T_SS_SM_START_ExtDataStructType Structure +/// \~english @code +/// typedef struct { +/// { +/// BOOL isProgUpdated; +/// EMRelaunchStatus relaunchStatus; +/// BOOL isMapUpdated; +/// BOOL isMapDiffUpdated; +/// uint8_t reserved[]; +/// }T_SS_SM_START_ExtDataStructType; +/// @endcode +/// \~english @par +/// isProgUpdated:Presence or absence of a program update +/// - TRUE : Yes program update +/// - FALSE : No program update +/// \~english @par +/// relaunchStatus:Relaunch state of self-service +/// - e_SS_SM_RELAUNCH_STATUS_NONE : Relaunch non-occurrence (first start) +/// - e_SS_SM_RELAUNCH_STATUS_SAFE : Normal Relaunch +/// - e_SS_SM_RELAUNCH_STATUS_ERR : Abnormal Relaunch +/// \~english @par +/// isMapUpdated:Presence or absence of a map update +/// - TRUE : Yes map update +/// - FALSE : No map update +/// \~english @par +/// isMapDiffUpdated:The presence or absence of the map difference updating +/// - TRUE : Yes map difference update +/// - FALSE : No map difference update +/// \~english @retval eFrameworkunifiedStatusOK Success +/// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer +/// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle +/// \~english @retval eFrameworkunifiedStatusInvldHndlType Invalid type of handle +/// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full +/// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor +/// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) +/// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size +/// \~english @retval eFrameworkunifiedStatusBadConnection Failure to socket connection +/// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred(Socket Connection/Memory Allocation/Event Control) +/// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory) +/// \~english @par Preconditions +/// - Dispatcher for the System Manager is generated, and Availability of the service is TRUE. +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~english @par Causes of failures +/// - System Manager of the session does not exist. [eFrameworkunifiedStatusNullPointer] +/// - System Manager handle for the session is NULL. [eFrameworkunifiedStatusInvldHandle] +/// - System Manager handle type for the session is not a transmission type. [eFrameworkunifiedStatusInvldHndlType] +/// - System Manager message queue for the session is full. [eFrameworkunifiedStatusMsgQFull] +/// - Transmission for the file descriptor of System Manager message for the session is invalid. +/// [eFrameworkunifiedStatusErrNoEBADF] +/// - Place to interrupt by the system call (signal) has occurred during the transmission of the System Manager +/// message for the session. [eFrameworkunifiedStatusErrNoEINTR] +/// - Size of the transmission buffer of the System Manager message for the session is invalid. +/// [eFrameworkunifiedStatusInvldBufSize] +/// - Transmission and reception of System Manager message for the session fails to socket connection. +/// [eFrameworkunifiedStatusBadConnection] +/// - In the case of the message queue open error for reception of System Manager message for the session. +/// [eFrameworkunifiedStatusFail] +/// - System Manager message for the session fails to acquire the message buffer for reception. [eFrameworkunifiedStatusFail] +/// - System Manager message for the session fails in the event control for the reception. [eFrameworkunifiedStatusFail] +/// - Any error has occurred at the time of transmission and receive of the System Manager message for the +/// session. [eFrameworkunifiedStatusFail] +/// - Transmission of System Manager message for the session fails to shared memory access. [eFrameworkunifiedStatusErrOther] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Returns the extended information of the parameters of FrameworkunifiedOnStart(). \n +/// It is assumed that that will be called in the FrameworkunifiedOnStart (), return the correct value when it is called prior +/// \n +/// to the issuance FrameworkunifiedOnStart() is not guaranteed.\n +/// System startup to relaunchStatus is e_SS_SM_RELAUNCH_STATUS_NONE, the service is a case that has been Relaunch +/// \n +/// by the exit (SS_SM_EXIT_RELAUNCH) _SS_SM_RELAUNCH_STATUS_SAFE, if the Relaunch due to the abnormality occurs +/// to \n +/// set the e_SS_SM_RELAUNCH_STATUS_ERR. +/// \~english @see GetInterfaceunifiedOnStopExtInfo, FrameworkunifiedOnStart +//////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus GetInterfaceunifiedOnStartExtInfo(T_SS_SM_START_ExtDataStructType &f_info); // NOLINT (runtime/references) + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup GetInterfaceunifiedOnStopExtInfo +/// \~english @par Summary +/// API to get the extended information of the end parameter. +/// \~english @param [out] f_info +/// T_SS_SM_STOP_ExtDataStructType - Exit extended parameter information +/// \~english @par +/// T_SS_SM_STOP_ExtDataStructType Structure +/// \~english @code +/// typedef struct { +/// { +/// BOOL isProgUpdated; +/// uint8_t reserved[]; +/// }T_SS_SM_START_ExtDataStructType; +/// @endcode +/// \~english @par +/// isProgUpdated:Presence or absence of a program update +/// - TRUE : Yes program update +/// - FALSE : No program update +/// \~english @retval eFrameworkunifiedStatusOK Success +/// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer +/// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle +/// \~english @retval eFrameworkunifiedStatusInvldHndlType Invalid type of handle +/// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full +/// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor +/// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) +/// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size +/// \~english @retval eFrameworkunifiedStatusBadConnection Failure to socket connection +/// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred(Socket Connection/Memory Allocation/Event Control) +/// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory) +/// \~english @par Preconditions +/// - Dispatcher for the System Manager is generated, and Availability of the service is TRUE. +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~english @par Causes of failures +/// - System Manager of the session does not exist. [eFrameworkunifiedStatusNullPointer] +/// - System Manager handle for the session is NULL. [eFrameworkunifiedStatusInvldHandle] +/// - System Manager handle type for the session is not a send and receive type. [eFrameworkunifiedStatusInvldHndlType] +/// - System Manager message queue for the session is full. [eFrameworkunifiedStatusMsgQFull] +/// - File descriptor not for the transmission and reception of the System Manager of the session message. +/// [eFrameworkunifiedStatusErrNoEBADF] +/// - Interruption by the system call (signal) occurs during the transmission and reception of the System Manager +/// of the session message. [eFrameworkunifiedStatusErrNoEINTR] +/// - The size of the transmit and receive buffer of the System Manager of the session message is invalid. +/// [eFrameworkunifiedStatusInvldBufSize] +/// - It failed to socket connection for transmission and reception of the System Manager of the session message. +/// [eFrameworkunifiedStatusBadConnection] +/// - Open error of the message queue for the reception of the System Manager of the session message. +/// [eFrameworkunifiedStatusFail] +/// - And fail to acquire the message buffer for reception of the System Manager of the session message. +/// [eFrameworkunifiedStatusFail] +/// - It failed in the event control for the reception of the System Manager of the session message. +/// [eFrameworkunifiedStatusFail] +/// - It failed during transmission and reception of the System Manager of the session message. [eFrameworkunifiedStatusFail] +/// - It failed to shared memory access for transmission and reception of the System Manager of the session +/// message. [eFrameworkunifiedStatusErrOther] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Returns the extended information of the parameters of FrameworkunifiedOnStop(). \n +/// It is assumed that that will be called in the FrameworkunifiedOnStop (), return of the correct value in the case \n +/// that has been called before FrameworkunifiedOnStop() entry into force is not guaranteed. +/// \~english @see GetInterfaceunifiedOnStartExtInfo, FrameworkunifiedOnStop +//////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus GetInterfaceunifiedOnStopExtInfo(T_SS_SM_STOP_ExtDataStructType &f_info); // NOLINT (runtime/references) + +//////////////////////////////////////////////////////////////////////////////////////////// +/// \ingroup SendDebugDumpResponseToSystemManager +/// \~english @par Summary +/// Send a debug dump response to system_manager +/// \~english @param [in] f_bFormatStrRequired +/// BOOL - Specify whether to dump the application name or not +/// \~english @param [in] f_cFormat +/// PCSTR - Display format for the dump (the same character strings format as the printf format) +/// \~english @param [in] arg_list +/// ... - Dump data in line with f_cFormat format +/// \~english @par +/// f_bFormatStrRequired +/// - true Dump the application name +/// - false Do not dump the application name +/// \~english @retval None +/// \~english @par Precondition +/// - None +/// \~english @par Change in the internal status +/// - The change in the internal status does not occur by this API. +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Fire and Forget only +/// \~english @par Detail +/// When f_bFormatStrRequired is true, write the application name to the buffer for dump. \n +/// Write the data to the buffer for dump in line with f_cFormat. \n +/// Send OnDebugDumpResponseReceived to the SystemManger in order to request the SystemManger to +/// write the contents in the buffer for dump to the log file for debug. \n +/// The maximum size of the buffer for dump is 4Kbyte and the string size of the application name +/// is deducted when the application name is dumped. \n +/// When dumping a string which exceeds 4Kbyte, drop what exceeds the buffer. +/// \~english @see +//////////////////////////////////////////////////////////////////////////////////////////// +void SendDebugDumpResponseToSystemManager(BOOL f_bFormatStrRequired, PCSTR f_cFormat, ...) +#ifdef __GNUC__ + __attribute__((format(printf, 2, 3))); +#endif + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup SendInterfaceunifiedEmmcLogsRequestToSystemManager +/// \~english @par Summary +/// API to request a copy to the specified path of the LOG file of the built-in non-volatile area. +/// \~english @param [in] f_path +/// std::string - LOG destination file PATH +/// \~english @retval eFrameworkunifiedStatusOK Success +/// \~english @retval eFrameworkunifiedStatusInvldBuf Invalid buffer +/// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer +/// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle +/// \~english @retval eFrameworkunifiedStatusInvldHndlType Invalid type of handle +/// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full +/// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor +/// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) +/// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size +/// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred +/// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory) +/// \~english @par Preconditions +/// - Dispatcher for the System Manager is generated, and Availability of the service is TRUE. +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~english @par Causes of failures +/// - LOG destination file PATH is NULL(If f_path.c_str() is NULL). [eFrameworkunifiedStatusInvldBuf] +/// - System Manager of the session does not exist. [eFrameworkunifiedStatusNullPointer] +/// - System Manager handle for the session is NULL. [eFrameworkunifiedStatusInvldHandle] +/// - System Manager handle type for the session is not a transmission type. [eFrameworkunifiedStatusInvldHndlType] +/// - System Manager message queue for the session is full. [eFrameworkunifiedStatusMsgQFull] +/// - Transmission for the file descriptor of System Manager message for the session is invalid. +/// [eFrameworkunifiedStatusErrNoEBADF] +/// - Place to interrupt by the system call (signal) has occurred during the transmission of the System Manager +/// message for the session. [eFrameworkunifiedStatusErrNoEINTR] +/// - Size of the transmission buffer of the System Manager message for the session is invalid. +/// [eFrameworkunifiedStatusInvldBufSize] +/// - Any error has occurred at the time of transmission of the System Manager message for the session. +/// [eFrameworkunifiedStatusFail] +/// - Transmission of System Manager message for the session fails to shared memory access. [eFrameworkunifiedStatusErrOther] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Method only +/// \~english @par Detail +/// To copy all of the files that exist in LOG storage area of the built-in non-volatile area in \n +/// the path specified in the f_path. \n +/// If you do not have a copy target, asynchronous response command: Returns the eFrameworkunifiedStatusOK as \n +/// the message data of SS_SM_ERROR_EVENT_INTERFACEUNIFIED_EMMC_LOGS_RSPN. +/// \~english @see SendClearLogsRequestToSystemManager +//////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus SendInterfaceunifiedEmmcLogsRequestToSystemManager(std::string f_path); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup SendClearLogsRequestToSystemManager +/// \~english @par Summary +/// API to clear the stored in the built-in non-volatile area log. +/// \~english @param [in] f_info +/// TSystemManagerClearLogsInfo - A pointer to the LOG clear information +/// \~english @par +/// TSystemManagerClearLogsInfo Structure +/// \~english @code +/// typedef struct T_SystemManagerClearLogsInfo{ +/// { +/// void *rsv; +/// }TSystemManagerClearLogsInfo; +/// @endcode +/// \~english @par +/// rsv : Reserve area +/// \~english @retval eFrameworkunifiedStatusOK Success +/// \~english @retval eFrameworkunifiedStatusInvldParam Invalid parameter +/// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer +/// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle +/// \~english @retval eFrameworkunifiedStatusInvldHndlType Invalid type of handle +/// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full +/// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor +/// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) +/// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size +/// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred +/// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory) +/// \~english @par Preconditions +/// - Dispatcher for the System Manager is generated, and Availability of the service is TRUE. +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~english @par Causes of failures +/// - Pointer to the LOG clear information (f_info) is NULL [eFrameworkunifiedStatusInvldParam] +/// - System Manager of the session does not exist. [eFrameworkunifiedStatusNullPointer] +/// - System Manager handle for the session is NULL. [eFrameworkunifiedStatusInvldHandle] +/// - System Manager handle type for the session is not a transmission type. [eFrameworkunifiedStatusInvldHndlType] +/// - System Manager message queue for the session is full. [eFrameworkunifiedStatusMsgQFull] +/// - Transmission for the file descriptor of System Manager message for the session is invalid. +/// [eFrameworkunifiedStatusErrNoEBADF] +/// - Place to interrupt by the system call (signal) has occurred during the transmission of the System Manager +/// message for the session. [eFrameworkunifiedStatusErrNoEINTR] +/// - Size of the transmission buffer of the System Manager message for the session is invalid. +/// [eFrameworkunifiedStatusInvldBufSize] +/// - Any error has occurred at the time of transmission of the System Manager message for the session. +/// [eFrameworkunifiedStatusFail] +/// - Transmission of System Manager message for the session fails to shared memory access. [eFrameworkunifiedStatusErrOther] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Fire and Forget x Sync +/// \~english @par Detail +/// To delete a LOG stored in the built-in non-volatile area. +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus SendClearLogsRequestToSystemManager(TSystemManagerClearLogsInfo *f_info); + +/** @}*/ // end of SystemIf +/** @}*/ // end of interface_unified +/** @}*/ // end of SystemService +/** @}*/ // end of BaseSystem + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief AttachCallbackToSystemManager +/// +/// \note This function is called by System Manager session clients to attach +/// a callback function to the client application with System Manager +/// configured as the specified sender of the specified protocol message. +/// +/// \param [in] f_hApp +/// HANDLE - Handle to message queue of the System Manager attached client. +/// \param [in] iCmd +/// UI_32 iCmd - Command ID +/// \param [in] fpOnCmd +/// CbFuncPtr fpOnCmd - Function pointer to be called in the form upon +/// the invokation of the specified command ID. The callback function +/// must have the following signature : void (*)(HANDLE). +/// +/// \return Status +/// EFrameworkunifiedStatus - success or error +//////////////////////////////////////////////////////////////////////////////////// +extern EFrameworkunifiedStatus AttachCallbackToSystemManager(HANDLE hApp, UI_32 iCmd, CbFuncPtr fpOnCmd); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief Set of complementary detach functions that accept same arguments +/// as the InterfaceunifiedAttach_XYZ_ToDispatcher() functions do. +/// +//////////////////////////////////////////////////////////////////////////////////// +extern EFrameworkunifiedStatus DetachCallbacksFromInterfaceunifiedDispatcher(HANDLE hApp, + PCSTR pServiceName, + const FrameworkunifiedProtocolCallbackHandler* pMsgHandler, + UI_32 uiHandlerCount, + HANDLE hSession = NULL); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// \brief +//////////////////////////////////////////////////////////////////////////////////// +extern EFrameworkunifiedStatus DetachParentCallbacksFromInterfaceunifiedDispatcher(HANDLE hChildApp, + const FrameworkunifiedProtocolCallbackHandler* pMsgHandler, + UI_32 uiHandlerCount); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief GetSystemManagerSessionHandle +/// +/// \note This function returns the session handle with System Manager +/// +/// \return HANDLE - A session handle with System Manager +///////////////////////////////////////////////////////////////////////////////////// +extern HANDLE GetSystemManagerSessionHandle(void); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief SendShutdownToSystemManager +/// +/// \note This function is called to send Shutdown command to System Manager +/// +/// \param [in] pData +/// Pwr_ServiceSetInterface *pData - Pointer to Shutdown Command data +/// +/// \return Status +/// EFrameworkunifiedStatus - success or error +//////////////////////////////////////////////////////////////////////////////////// +extern EFrameworkunifiedStatus SendShutdownToSystemManager(Pwr_ServiceSetInterface *pData); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief SendSystemModeRequestToSystemManager +/// +/// \note This function is called to send system mode request to System Manager +/// +/// \return Status +/// EFrameworkunifiedStatus - success or error +//////////////////////////////////////////////////////////////////////////////////// +extern EFrameworkunifiedStatus SendSystemModeRequestToSystemManager(void); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief SendInitCompReportToSystemManager +/// +/// \note This function is called to send init comp report to System Manager +/// +/// \return Status +/// EFrameworkunifiedStatus - success or error +//////////////////////////////////////////////////////////////////////////////////// +extern EFrameworkunifiedStatus SendInitCompReportToSystemManager(void); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief SendWakeUpToSystemManager +/// +/// \note This function is called to send the Wakeup command to System Manager +/// +/// \param [in] pData +/// wakeInfo *pData - Pointer to Wakeup Command data +/// +/// \return Status +/// EFrameworkunifiedStatus - success or error +//////////////////////////////////////////////////////////////////////////////////// +extern EFrameworkunifiedStatus SendWakeUpToSystemManager(wakeInfo *pData); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief SendStartupConfirmationToSystemManager +/// +/// \note This function is called to send the startup confirmation information +/// to System Manager +/// +/// \param [in] l_startupConfirmationMsg +/// StartupConfirmationMsgStrut &l_startupConfirmationMsg - startup confirmation +/// data +/// \return Status +/// EFrameworkunifiedStatus - success or error +//////////////////////////////////////////////////////////////////////////////////// +extern EFrameworkunifiedStatus SendStartupConfirmationToSystemManager(StartupConfirmationMsgStrut + &l_startupConfirmationMsg); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief SendSystemErrorToSystemManager +/// +/// \note This function is called by an application via Native Services to send +/// notice of a critical error to System Manager when a non recoverable +/// run-time error is encountered. +/// +/// \param [in] +/// +/// \return Status +/// EFrameworkunifiedStatus - success or error +//////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus SendSystemErrorToSystemManager(EFrameworkunifiedSystemError f_systemError); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief Send_CWORD56_HeartBeatRequestToSystemManager +/// +/// \note This function forwards a _CWORD56_ heartbeat request received by power +/// services from the power shadow to System Manager. +/// +/// \param [in] +/// +/// \return Status +/// EFrameworkunifiedStatus - success or error +//////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus Send_CWORD56_HeartBeatRequestToSystemManager(EPWR_HB_REQ_MSG_STRUCT f_HbReq); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief SendBootMicroResetNotificationToSystemManager +/// +/// \param ResetReason Enumerated boot micro reset reason. +/// +/// This function is called by Logging Shadow to inform System Manager of a +/// boot micro reset condition. +//////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus SendBootMicroResetNotificationToSystemManager(eSMBootMicroResetReason ResetReason); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief SendDiagLogEventRequestToSystemManager +/// +/// \note This function is called by logger to initiate log artifact collection +/// and storage on behalf of diagnostic services. +/// +/// \param f_copyDestPathStr +/// +/// \return Status +/// EFrameworkunifiedStatus - success or error +//////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus SendDiagLoggingRequestToSystemManager(std::string f_copyDestPathStr); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief SendCANLoggingRequestToSystemManager +/// +/// \note This function is called by logger to initiate log artifact collection +/// and storage when signaled via CAN. +/// +/// \return Status +/// EFrameworkunifiedStatus - success or error +//////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus SendCANLoggingRequestToSystemManager(void); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief SendDTCLoggingRequestToSystemManager +/// +/// \note This function is called by logger to initiate log artifact collection +/// and storage when signaled via diagnostic command. +/// +/// \param f_dtc Diagnostic trouble code. +/// +/// \return Status +/// EFrameworkunifiedStatus - success or error +//////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus SendDTCLoggingRequestToSystemManager(UI_32 f_dtc); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief RegisterBootMicroLogRequestCb +/// +/// This function is called by Logging Shadow to register a callback function for +/// the boot micro log request that may be generated by System Manager when an +/// error event occurs. +/// +/// \param [in] hApp AGL Framework Application Handle +/// +/// \param [in] fpOnCmd Call back function with the signature: +/// EFrameworkunifiedStatus fnct(HANDLE hApp); +/// +/// \return Status +/// EFrameworkunifiedStatus - success or error +//////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus RegisterBootMicroLogRequestCb(HANDLE hApp, CbFuncPtr fpOnCmd); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief SendBootMicroLogResponseToSystemManager +/// +/// This function is called by Logging Shadow to provide a string representation of +/// the binary boot-micro log data. +/// +/// \return Status +/// EFrameworkunifiedStatus - success or error +//////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus SendBootMicroLogResponseToSystemManager(std::string f_logString); + +//////////////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// \brief Redirect either formatted, or unformatted response output to System Manager. +/// +/// \see SendDebugDumpResponseToSystemManager +//////////////////////////////////////////////////////////////////////////////////////////// +#define SSDEBUGDUMP(args...) (SendDebugDumpResponseToSystemManager(TRUE, ## args)) + +//////////////////////////////////////////////////////////////////////////////////////////// +/// \ingroup SM_Deletable +//////////////////////////////////////////////////////////////////////////////////////////// +#define SSDEBUGDUMP_RAW(args...) (SendDebugDumpResponseToSystemManager(FALSE, ## args)) + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief SendLogStartRequestToSystemManager +/// +/// \note This function is call by SS_Logger when the logging process has +/// completed and no additional request for artifacts will be generated. +/// +/// \param none. +/// +/// \return Status +/// EFrameworkunifiedStatus - success or error +//////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus SendLogStartRequestToSystemManager(EErrorEventType f_errorEventType); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief SendLogArtifactRequestToSystemManager +/// +/// \note This function is call by SS_Logger to request SM to acquire and +// return by reference (filename), the specified logging artifact. +/// +/// \param [in] f_artifactId, enumerated artifact number. +/// +/// \return Status +/// EFrameworkunifiedStatus - success or error +//////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus SendLogArtifactRequestToSystemManager(EArtifactId f_artifactId); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief SendLogCompleteRequestToSystemManager +/// +/// \note This function is call by SS_Logger when the logging process has +/// completed and no additional request for artifacts will be generated. +/// +/// \param none. +/// +/// \return Status +/// EFrameworkunifiedStatus - success or error +//////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus SendLogCompleteRequestToSystemManager(EFrameworkunifiedStatus f_eStatus = eFrameworkunifiedStatusOK); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief SendEelExportRequestToSystemManager +/// +/// \note This function forwards the Device Detection EEL_export trigger +/// received by SS Logger to System Manager. +/// +/// \param f_path Destination path for the trigger artifacts. +/// +/// \return Status +/// EFrameworkunifiedStatus - success or error +//////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus SendEelExportRequestToSystemManager(std::string f_path); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief DebugDump request callback function. +/// +/// \note This function is called when System Manager requests the receiving +/// application to generate their debugdump. +/// +/// \param hApp +/// +/// \return Status +/// EFrameworkunifiedStatus - success or error +//////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus OnSystemManagerDebugDump(HANDLE hApp); + +#endif // __SS_SYSTEM_MANAGER_CLIENT_IF_H__ // NOLINT (build/header_guard) +/** @}*/ +/** @}*/ +/** @}*/ diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_sm_client_if_local.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_sm_client_if_local.h new file mode 100755 index 0000000..a4d0fa9 --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_sm_client_if_local.h @@ -0,0 +1,66 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @file ss_sm_client_if_local.h + * @brief \~english This file supports the api of debug dump response to System Manager + */ +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup interface_unified + * @ingroup system_service + * @{ + */ +#ifndef __SS_SYSTEM_MANAGER_CLIENT_IF_LOCAL_H__ // NOLINT (build/header_guard) +#define __SS_SYSTEM_MANAGER_CLIENT_IF_LOCAL_H__ + +#include +//////////////////////////////////////////////////////////////////////////////////////////// +/// \ingroup system_manager +/// \~english @par Summary: +/// Responds to SystemManager that debug dump output has finished +/// \~english @param [in] f_messageStr +/// std::string & - Dump data +/// \~english @retval +/// - None +/// \~english @par Preconditions: +/// - None +/// \~english @par Change of the internal state: +/// - No change of internal state by this API occurs +/// \~english @par Causes of failures: +/// - None +/// \~english @par Detail: +/// Send OnDebugDumpResponseReceived to SystemManager and request +/// to write the contents of dump data to /tmp/systemmanager_debugdump.log.\n +/// The maximum size of the dump buffer is 4KByte.\n +/// When dumping more than 4KBytes, the overflow from the buffer is discarded. +/// +/// \~english @par Classification: +/// - Public +/// \~english @see +/// +//////////////////////////////////////////////////////////////////////////////////////////// + +VOID SendDebugDumpResponseToSystemManager(std::string & f_messageStr); // NOLINT (runtime/references) + +#endif /*__SS_SYSTEM_MANAGER_CLIENT_IF_LOCAL_H__*/ // NOLINT (build/header_guard) +/** @}*/ +/** @}*/ +/** @}*/ diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_sm_thread_names.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_sm_thread_names.h new file mode 100755 index 0000000..61ee275 --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_sm_thread_names.h @@ -0,0 +1,45 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file ss_sm_thread_names.h + * @brief This file supports System Manager thread naming. + */ + +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup interface_unified + * @ingroup system_service + * @{ + */ + +#ifndef SS_SM_THREAD_NAMES_H_ // NOLINT (build/header_guard) +#define SS_SM_THREAD_NAMES_H_ + +// thread name max length is 15 +// 0123456789ABCDE +#define SS_SMHeartbeat "SM.Heartbeat" + +#endif /* SS_SM_THREAD_NAMES_H_ */ // NOLINT (build/header_guard) + +/** @}*/ +/** @}*/ +/** @}*/ diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_sm_thread_names_local.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_sm_thread_names_local.h new file mode 100755 index 0000000..36dda06 --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_sm_thread_names_local.h @@ -0,0 +1,46 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file ss_sm_thread_names_local.h + * @brief This file supports System Manager thread naming. + */ + +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup interface_unified + * @ingroup system_service + * @{ + */ + +#ifndef SS_SM_THREAD_NAMES_LOCAL_H_ // NOLINT (build/header_guard) +#define SS_SM_THREAD_NAMES_LOCAL_H_ + +// thread name max length is 15 +// 0123456789ABCDE +#define SS_SMLauncher "SM.ProcLaunch" +#define SS_SMLowMemMonitor "SM.LowMemMon" + +#endif /* SS_SM_THREAD_NAMES_LOCAL_H_ */ // NOLINT (build/header_guard) + +/** @}*/ +/** @}*/ +/** @}*/ diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_string_maps.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_string_maps.h new file mode 100755 index 0000000..4001ed4 --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_string_maps.h @@ -0,0 +1,680 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file ss_string_maps.h + * @brief \~english This file supports the a generic std::map wrapper. + */ +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup interface_unified + * @ingroup system_service + * @{ + */ +#ifndef SS_STRING_MAPS_H_ // NOLINT (build/header_guard) +#define SS_STRING_MAPS_H_ + +#include "system_service/ss_power_service.h" +#include "system_service/ss_system_manager_if.h" +#include "system_service/ss_system_manager_protocol.h" + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup GetStr +/// \~english @par Summary +/// change member from BOOL type to string +/// \~english @param [in] f_enum +/// BOOL - the member what will convert farm BOOL type to string type +/// \~english @code +/// typedef int BOOL; +/// #define TRUE (1==1) +/// #define true (1==1) +/// #define FALSE (0==1) +/// @endcode +/// \~english @retval SS_String +/// \~english @par Preconditions +/// - None. +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~english @par Causes of failures +/// None +/// \~english @par Classification +/// Public +/// \~english @par Type +/// sync only +/// \~english @par Detail +/// change member from BOOL type to string. \n +/// \~english @see +//////////////////////////////////////////////////////////////////////////////////// +extern SS_String GetStr(BOOL f_enum); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup GetStr +/// \~english @par Summary +/// change member from EErrorEventType type to string +/// \~english @param [in] f_enum +/// EErrorEventType - the member what will convert farm EErrorEventType type to string type.error event type. +/// \~english @code +/// enum EErrorEventType { +/// eErrorEventTypeProcessCrash = 0, +/// eErrorEventTypeHeartBeatFailure, +/// eErrorEventTypeSystemLowMemory, +/// eErrorEventTypeReserved1, // Formerly SS_SM_EVENT_ERROR_HIGH_CPU_LOAD, now HMI enum place holder. +/// eErrorEventTypeUserInvokedUserForceReset, +/// eErrorEventTypeReserved2, +/// eErrorEventTypeReserved3, +/// eErrorEventTypeUserInvokedCollectAllLogs, +/// eErrorEventTypeBootMicroReset, +/// eErrorEventTypeProcessExit, +/// eErrorEventTypeUserInvokedCollectScreenShot, +/// eErrorEventTypeUserInvokedCollectInterfaceunifiedLogs, +/// eErrorEventTypeEelExport, +/// eErrorEventTypeInterfaceunifiedEmmcLogs, +/// eErrorEventTypeDiagEvent, +/// eErrorEventTypeCanEvent, +/// eErrorEventTypeDtcEvent, +/// eErrorEventTypeModConnFailed, +/// eErrorEventTypeStartRespFailed, +/// eErrorEventTypeUserInvokedCollectDevLogs, +/// eErrorEventTypeModuleInvokedResetRequest, +/// eErrorEventTypeModuleInvokedCollectDebugLogs, +/// eErrorEventTypeUserInvokedClearLogs, +/// eErrorEventTypeUserInvokedCollectNaviLog, +/// eErrorEventTypeGroupRelaunch, +/// eErrorEventTypeMaxValue +/// }; +/// @endcode +/// \~english @retval SS_String +/// \~english @par Preconditions +/// - None. +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~english @par Causes of failures +/// None +/// \~english @par Classification +/// Public +/// \~english @par Type +/// sync only +/// \~english @par Detail +/// change member from EErrorEventType type to string. \n +/// \~english @see +//////////////////////////////////////////////////////////////////////////////////// +extern SS_String GetStr(EErrorEventType f_enum); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup GetStr +/// \~english @par Summary +/// change member from EFrameworkunifiedSystemError type to string +/// \~english @param [in] f_enum +/// EFrameworkunifiedSystemError - the member what will convert farm EFrameworkunifiedSystemError type to string type.The type of system +/// error. +/// \~english @codes +/// typedef enum _EFrameworkunifiedSystemError { +/// eFrameworkunifiedSystemErrorNone = 0, +/// eFrameworkunifiedDSPHardwareReset = 1 +/// } EFrameworkunifiedSystemError; +/// @endcode +/// \~english @retval SS_String +/// \~english @par Preconditions +/// - None. +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~english @par Causes of failures +/// None +/// \~english @par Classification +/// Public +/// \~english @par Type +/// sync only +/// \~english @par Detail +/// change member from EFrameworkunifiedSystemError type to string. \n +/// \~english @see +//////////////////////////////////////////////////////////////////////////////////// +extern SS_String GetStr(EFrameworkunifiedSystemError f_enum); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup GetStr +/// \~english @par Summary +/// change member from EPWR_LHC_TYPE type to string +/// \~english @param [in] f_enum +/// EPWR_LHC_TYPE - the member what will convert farm EPWR_LHC_TYPE type to string type.Limp home cutoff +/// protocol type. +/// \~english @codes +/// typedef enum { +/// epslhcINVALID = 0xFF, +/// epslhcDISABLED = 0x00, +/// epslhcENABLED = 0x01 +/// } ePwrServiceLHCType, EPWR_LHC_TYPE; +/// @endcode +/// \~english @retval SS_String +/// \~english @par Preconditions +/// - None. +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~english @par Causes of failures +/// None +/// \~english @par Classification +/// Public +/// \~english @par Type +/// sync only +/// \~english @par Detail +/// change member from EPWR_LHC_TYPE type to string. \n +/// \~english @see +//////////////////////////////////////////////////////////////////////////////////// +extern SS_String GetStr(EPWR_LHC_TYPE f_enum); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup GetStr +/// \~english @par Summary +/// change member from EPWR_PROD_MODE_TYPE type to string +/// \~english @param [in] f_enum +/// EPWR_PROD_MODE_TYPE - the member what will convert farm EPWR_PROD_MODE_TYPE type to string type.The type of +/// production mode protocol. +/// \~english @codes +/// typedef enum { +/// epspmINVALID = 0xFF, +/// epspmDISABLED = 0x00, +/// epspmENABLED = 0x01 +/// } ePwrServiceProdModeType, EPWR_PROD_MODE_TYPE; +/// @endcode +/// \~english @retval SS_String +/// \~english @par Preconditions +/// - None. +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~english @par Causes of failures +/// None +/// \~english @par Classification +/// Public +/// \~english @par Type +/// sync only +/// \~english @par Detail +/// change member from EPWR_PROD_MODE_TYPE type to string. \n +/// \~english @see +//////////////////////////////////////////////////////////////////////////////////// +extern SS_String GetStr(EPWR_PROD_MODE_TYPE f_enum); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup GetStr +/// \~english @par Summary +/// change member from EPWR_SC_COLD_START_REQ_TYPE type to string +/// \~english @param [in] f_enum +/// EPWR_SC_COLD_START_REQ_TYPE - the member what will convert farm EFrameworkunifiedSystemError type to string type.The type +/// of cold start. +/// \~english @codes +/// typedef enum { +/// epsscrtINVALID = 0xFF, +/// epsscrtNOT_REQUIRED = 0x00, +/// epsscrtREQUIRED = 0x01 +/// } EPWR_SC_COLD_START_REQ_TYPE; +/// @endcode +/// \~english @retval SS_String +/// \~english @par Preconditions +/// - None. +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~english @par Causes of failures +/// None +/// \~english @par Classification +/// Public +/// \~english @par Type +/// sync only +/// \~english @par Detail +/// change member from EPWR_SC_COLD_START_REQ_TYPE type to string. \n +/// \~english @see +//////////////////////////////////////////////////////////////////////////////////// +extern SS_String GetStr(EPWR_SC_COLD_START_REQ_TYPE f_enum); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup GetStr +/// \~english @par Summary +/// change member from EPWR_SC__CWORD56__BOOT_MODE_TYPE type to string +/// \~english @param [in] f_enum +/// EPWR_SC__CWORD56__BOOT_MODE_TYPE - the member what will convert farm EPWR_SC__CWORD56__BOOT_MODE_TYPE type to string +/// type.The type of startup confirmation. +/// \~english @codes +/// typedef enum { +/// eps_CWORD56_bmINVALID = 0xFF, +/// eps_CWORD56_bmAPPLICATION_MODE = 0x00, +/// eps_CWORD56_bmPROGRAMMING_MODE = 0x08 +/// } EPWR_SC__CWORD56__BOOT_MODE_TYPE; +/// @endcode +/// \~english @retval SS_String +/// \~english @par Preconditions +/// - None. +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~english @par Causes of failures +/// None +/// \~english @par Classification +/// Public +/// \~english @par Type +/// sync only +/// \~english @par Detail +/// change member from EPWR_SC__CWORD56__BOOT_MODE_TYPE type to string. \n +/// \~english @see +//////////////////////////////////////////////////////////////////////////////////// +extern SS_String GetStr(EPWR_SC__CWORD56__BOOT_MODE_TYPE f_enum); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup GetStr +/// \~english @par Summary +/// change member from EPWR_SHUTDOWN_TRIGGER_TYPE type to string +/// \~english @param [in] f_enum +/// EPWR_SHUTDOWN_TRIGGER_TYPE - the member what will convert farm EPWR_SHUTDOWN_TRIGGER_TYPE type to string +/// type.The type of shutdown trigger. +/// \~english @codes +/// typedef enum { +/// epssdmsdtINVALID = 0xFF, +/// epssdmsdtTESTACC_OFF = 0x00, +/// epssdmsdtON_KEY = 0x01, +/// epssdmsdtIGN_LOCK = 0x02, +/// epssdmsdtPWR_SAVE = 0x03, +/// epssdmsdtTMP_STARTUP = 0x04, +/// epssdmsdtDIAG_DEACTIVATION = 0x05, +/// epssdmsdtABNORMAL_VOLTAGE = 0x06, +/// epssdmsdtABNORMAL_TEMP = 0x07, +/// epssdmsdtBATTERYCUTOFF = 0x08, +/// epssdmsdtLIMPHOME = 0x09, +/// epssdmsdtHU_CAN_ERROR = 0x0A, +/// epssdmsdtBODY_CAN_ERROR = 0x0B, +/// epssdmsdtTRANSPORT_MODE = 0x0C, +/// epssdmsdtPRODUCTION_MODE = 0x0D, +/// epssdmsdtIGN_OFF = 0x0E, +/// epssdmsdtGENERIC_ERROR_RESET = 0x0F, +/// epssdmsdtFATAL_ERROR_RESET = 0x10, +/// epssdmsdtUSER_DATA_RESET = 0x11, +/// epssdmsdtFACTORY_DATA_RESET = 0x12, +/// epssdmsdtFAST_SLEEP_MODE = 0x13, +/// epssdmsdtNORMAL_RESET = 0x14, +/// epssdmsdtPROGUPDATE_RESET = 0x15, +/// } ePowerSrvPwrShutdownTriggerType, EPWR_SHUTDOWN_TRIGGER_TYPE; +/// @endcode +/// \~english @retval SS_String +/// \~english @par Preconditions +/// - None. +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~english @par Causes of failures +/// None +/// \~english @par Classification +/// Public +/// \~english @par Type +/// sync only +/// \~english @par Detail +/// change member from EPWR_SHUTDOWN_TRIGGER_TYPE type to string. \n +/// \~english @see +//////////////////////////////////////////////////////////////////////////////////// +extern SS_String GetStr(EPWR_SHUTDOWN_TRIGGER_TYPE f_enum); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup GetStr +/// \~english @par Summary +/// change member from EPWR_STARTUP_STAGE_TYPE type to string +/// \~english @param [in] f_enum +/// EPWR_STARTUP_STAGE_TYPE - the member what will convert farm EPWR_STARTUP_STAGE_TYPE type to string type.The +/// type of startup stage. +/// \~english @codes +/// typedef enum { +/// epssusfINVALID = 0xFF, +/// epssusSYSTEM_SERVICES_STARTED = 0x00, +/// epssusALL_SERVICES_LAUNCHED = 0x01 +/// }ePowerSrvStartupStageType, EPWR_STARTUP_STAGE_TYPE; +/// @endcode +/// \~english @retval SS_String +/// \~english @par Preconditions +/// - None. +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~english @par Causes of failures +/// None +/// \~english @par Classification +/// Public +/// \~english @par Type +/// sync only +/// \~english @par Detail +/// change member from EPWR_STARTUP_STAGE_TYPE type to string. \n +/// \~english @see +//////////////////////////////////////////////////////////////////////////////////// +extern SS_String GetStr(EPWR_STARTUP_STAGE_TYPE f_enum); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup GetStr +/// \~english @par Summary +/// change member from EPWR_SYSTEM_MODE_INFO type to string +/// \~english @param [in] f_enum +/// EPWR_SYSTEM_MODE_INFO - the member what will convert farm EPWR_SYSTEM_MODE_INFO type to string type.The type +/// of system mode info. +/// \~english @codes +/// typedef enum { +/// epssinfINVALID = 0xFF, +/// epssinfNORMAL = 0x00, +/// epssinfPROGRAMMING = 0x08, +/// }ePowerSrvSystemModeInfo, EPWR_SYSTEM_MODE_INFO; +/// @endcode +/// \~english @retval SS_String +/// \~english @par Preconditions +/// - None. +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~english @par Causes of failures +/// None +/// \~english @par Classification +/// Public +/// \~english @par Type +/// sync only +/// \~english @par Detail +/// change member from EPWR_SYSTEM_MODE_INFO type to string. \n +/// \~english @see +//////////////////////////////////////////////////////////////////////////////////// +extern SS_String GetStr(EPWR_SYSTEM_MODE_INFO f_enum); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup GetStr +/// \~english @par Summary +/// change member from EPWR_TRANSPORT_MODE_TYPE type to string +/// \~english @param [in] f_enum +/// EPWR_TRANSPORT_MODE_TYPE - the member what will convert farm EPWR_TRANSPORT_MODE_TYPE type to string +/// type.The type of transport mode protocol. +/// \~english @codes +/// typedef enum { +/// epstmINVALID = 0xFF, +/// epstmDISABLED = 0x00, +/// epstmENABLED = 0x01 +/// } ePwrServiceTransportModeType, EPWR_TRANSPORT_MODE_TYPE; +/// @endcode +/// \~english @retval SS_String +/// \~english @par Preconditions +/// - None. +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~english @par Causes of failures +/// None +/// \~english @par Classification +/// Public +/// \~english @par Type +/// sync only +/// \~english @par Detail +/// change member from EPWR_TRANSPORT_MODE_TYPE type to string. \n +/// \~english @see +//////////////////////////////////////////////////////////////////////////////////// +extern SS_String GetStr(EPWR_TRANSPORT_MODE_TYPE f_enum); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup GetStr +/// \~english @par Summary +/// change member from \ref ePwrServiceUserModeChangeReasonType "EPWR_USER_MODE_CHANGE_REASON_TYPE" type to string +/// \~english @param [in] f_enum +/// \ref ePwrServiceUserModeChangeReasonType "EPWR_USER_MODE_CHANGE_REASON_TYPE" - the member what will convert farm \ref ePwrServiceUserModeChangeReasonType "EPWR_USER_MODE_CHANGE_REASON_TYPE" type +/// to string type.The type of user mode change reason. +/// \~english @retval SS_String +/// \~english @par Preconditions +/// - None. +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~english @par Causes of failures +/// None +/// \~english @par Classification +/// Public +/// \~english @par Type +/// sync only +/// \~english @par Detail +/// change member from type \ref ePwrServiceUserModeChangeReasonType "EPWR_USER_MODE_CHANGE_REASON_TYPE" to string. \n +/// \~english @see +//////////////////////////////////////////////////////////////////////////////////// +extern SS_String GetStr(EPWR_USER_MODE_CHANGE_REASON_TYPE f_enum); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup GetStr +/// \~english @par Summary +/// change member from EPWR_USER_MODE_TYPE type to string +/// \~english @param [in] f_enum +/// EPWR_USER_MODE_TYPE - the member what will convert farm EPWR_USER_MODE_TYPE type to string type.The type of +/// user mode. +/// \~english @codes +/// typedef enum { +/// epsumINVALID = 0xFF, +/// epsumOFF = 0x00, +/// epsumON = 0x01, +/// } ePwrServiceUserModeType, EPWR_USER_MODE_TYPE; +/// @endcode +/// \~english @retval SS_String +/// \~english @par Preconditions +/// - None. +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~english @par Causes of failures +/// None +/// \~english @par Classification +/// Public +/// \~english @par Type +/// sync only +/// \~english @par Detail +/// change member from EPWR_USER_MODE_TYPE type to string. \n +/// \~english @see +//////////////////////////////////////////////////////////////////////////////////// +extern SS_String GetStr(EPWR_USER_MODE_TYPE f_enum); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup GetStr +/// \~english @par Summary +/// change member from EPWR_WAKEUP_FACTOR_TYPE type to string +/// \~english @param [in] f_enum +/// EPWR_WAKEUP_FACTOR_TYPE - the member what will convert farm EPWR_WAKEUP_FACTOR_TYPE type to string type.The +/// type of startup reason. +/// \~english @codes +/// typedef enum { +/// epswfINVALID = 0xFF, +/// epswfTESTACC = 0x00, +/// epswfON_KEY = 0x01, +/// epswfIGN_ACC = 0x02, +/// epswfDR_OPEN_CLOSE = 0x03, +/// epswfDX_ACTIVATION = 0x04, +/// epswfPASS_ACTIVATION = 0x05, +/// epswfSPVACTIVATION = 0x06, +/// epswfUSER_DATA_RESET = 0x07 +/// } ePowerSrvWakeupFactors, EPWR_WAKEUP_FACTOR_TYPE; +/// @endcode +/// \~english @retval SS_String +/// \~english @par Preconditions +/// - None. +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~english @par Causes of failures +/// None +/// \~english @par Classification +/// Public +/// \~english @par Type +/// sync only +/// \~english @par Detail +/// change member from EPWR_WAKEUP_FACTOR_TYPE type to string. \n +/// \~english @see +//////////////////////////////////////////////////////////////////////////////////// +extern SS_String GetStr(EPWR_WAKEUP_FACTOR_TYPE f_enum); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup GetStr JP_ZPT +/// \~english @par Summary +/// change member from EFrameworkunifiedStatus type to string +/// \~english @param [in] f_enum +/// EFrameworkunifiedStatus - the member what will convert farm EFrameworkunifiedStatus type to string type.Status and return types. +/// \~english @codes +/// typedef enum eFrameworkunifiedStatus { +/// eFrameworkunifiedStatusEmptyMediaList = -10, ///< Empty media list +/// eFrameworkunifiedStatusSessionLimitMaxedOut = -9, ///< Maximum session limit reached +/// eFrameworkunifiedStatusDbRecNotFound = -8, ///< Database record not found +/// eFrameworkunifiedStatusDbResultError = -7, ///< Database result error +/// eFrameworkunifiedStatusDbExecuteFail = -6, ///< Database execute fail +/// eFrameworkunifiedStatusSemCloseFail = -5, ///< Semaphore close failed +/// eFrameworkunifiedStatusSemUnlockFail = -4, ///< Semaphore unlock failed +/// eFrameworkunifiedStatusSemLockFail = -3, ///< Semaphore lock failed +/// eFrameworkunifiedStatusFail = -2, ///< Failed +/// eFrameworkunifiedStatusErrOther = -1, ///< Unknown error +/// eFrameworkunifiedStatusOK = 0, ///< Success / Pass / OK +/// eFrameworkunifiedStatusInvldBuf = 1, ///< Invalid buffer +/// eFrameworkunifiedStatusInvldHandle = 2, ///< Invalid handle +/// eFrameworkunifiedStatusInvldHndlType = 3, ///< Invalid handle type +/// eFrameworkunifiedStatusInvldQName = 4, ///< Invalid messasge queue name +/// eFrameworkunifiedStatusMsgQFull = 5, ///< Message queue full +/// eFrameworkunifiedStatusInvldNotification = 6,///< The Notification event not present +/// eFrameworkunifiedStatusInvldParam = 7, ///< Invalid parameter +/// eFrameworkunifiedStatusInvldBufSize = 8, ///< Buf size too small +/// eFrameworkunifiedStatusInvldID = 9, ///< Unrecognized ID +/// eFrameworkunifiedStatusCannotRelease = 10, ///< Cannot release resource +/// eFrameworkunifiedStatusBadConnection = 11, ///< Could not locate resource +/// eFrameworkunifiedStatusExit = 12, ///< Normal application termination +/// eFrameworkunifiedStatusNotImplemented = 13, ///< incomplete feature +/// eFrameworkunifiedStatusThreadBusy = 14, ///< Joined thread is already being joined +/// eFrameworkunifiedStatusThreadSelfJoin = 15, ///< Thread is joining itself +/// eFrameworkunifiedStatusThreadInvalidVal = 16, ///< Invalid value passed +/// eFrameworkunifiedStatusThreadNotExist = 17, ///< The thread does not exist +/// eFrameworkunifiedStatusFault = 18, ///< A fault occurred while attempting to make call +/// eFrameworkunifiedStatusServNotFound = 19, ///< Service not present in serv dir +/// eFrameworkunifiedStatusServerInUse = 20, ///< Service already processing 1 client request +/// eFrameworkunifiedStatusDbIndexing = 21, ///< Database Indexing in progress +/// eFrameworkunifiedStatusNullPointer = 22, +/// eFrameworkunifiedStatusMsgNotProcessed = 23, +/// eFrameworkunifiedStatusFileLoadSuccess = 24, ///< File Load Success +/// eFrameworkunifiedStatusFileLoadError = 25, ///< File Load Error +/// eFrameworkunifiedStatusAccessError = 26, ///< Error when accessing resource +/// eFrameworkunifiedStatusDuplicate = 27, ///< Duplicate entry +/// eFrameworkunifiedStatusMsgQEmpty = 28, ///< Message queue empty +/// eFrameworkunifiedStatusThreadAlreadyRunning = 29, +/// eFrameworkunifiedStatusErrNoEBADF = 30, ///< Bad file descriptor +/// eFrameworkunifiedStatusErrNoEAGAIN = 31, ///< Resource unavailable, try again +/// eFrameworkunifiedStatusErrNoEINTR = 32, ///< Interrupted system call +/// eFrameworkunifiedStatusSessionErr = 33, ///< Error in session handling +/// eFrameworkunifiedStatusDBCorrupt = 34, ///< Database corrupt +/// eFrameworkunifiedStatusDBFileNotFound = 35 ///< Database file not found +/// } EFrameworkunifiedStatus, *PEFrameworkunifiedStatus; +/// @endcode +/// \~english @retval SS_String +/// \~english @par Preconditions +/// - None. +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~english @par Causes of failures +/// None +/// \~english @par Classification +/// Public +/// \~english @par Type +/// sync only +/// \~english @par Detail +/// change member from EFrameworkunifiedStatus type to string. \n +/// \~english @see +//////////////////////////////////////////////////////////////////////////////////// +extern SS_String GetStr(EFrameworkunifiedStatus f_enum); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup GetStr +/// \~english @par Summary +/// change member from ESMBootModeInfo type to string +/// \~english @param [in] f_enum +/// ESMBootModeInfo - the member what will convert farm ESMBootModeInfo type to string type.The type of boot +/// mode information. +/// \~english @codes +/// typedef enum { +/// e_SS_SM_BOOT_MODE_INVALID = -1 +/// , e_SS_SM_BOOT_MODE_APPLICATION +/// , e_SS_SM_BOOT_MODE_PROGRAMMING +/// }ESMBootModeInfo; +/// @endcode +/// \~english @retval SS_String +/// \~english @par Preconditions +/// - None. +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~english @par Causes of failures +/// None +/// \~english @par Classification +/// Public +/// \~english @par Type +/// sync only +/// \~english @par Detail +/// change member from ESMBootModeInfo type to string. \n +/// \~english @see +//////////////////////////////////////////////////////////////////////////////////// +extern SS_String GetStr(ESMBootModeInfo f_enum); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup GetStr +/// \~english @par Summary +/// change member from ESMCpuResetReason type to string +/// \~english @param [in] f_enum +/// ESMCpuResetReason - the member what will convert farm ESMCpuResetReason type to string type.The type of CPU +/// reset reason. +/// \~english @codes +/// typedef enum { +/// e_SS_SM_CPU_RESET_REASON_INVALID = -1 +/// , e_SS_SM_CPU_RESET_REASON_NORMAL = 0 +/// , e_SS_SM_CPU_RESET_REASON_DATA_RESET +/// , e_SS_SM_CPU_RESET_REASON_USER_FORCE_RESET +/// , e_SS_SM_CPU_RESET_REASON_GENERIC +/// , e_SS_SM_CPU_RESET_REASON_GENERIC_ERR = e_SS_SM_CPU_RESET_REASON_GENERIC +/// , e_SS_SM_CPU_RESET_REASON_DSP_ERR +/// , e_SS_SM_CPU_RESET_REASON_IMMRESET_NORMAL +/// , e_SS_SM_CPU_RESET_REASON_CRITICAL_ERR +/// }ESMCpuResetReason; +/// @endcode +/// \~english @retval SS_String +/// \~english @par Preconditions +/// - None. +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~english @par Causes of failures +/// None +/// \~english @par Classification +/// Public +/// \~english @par Type +/// sync only +/// \~english @par Detail +/// change member from ESMCpuResetReason type to string. \n +/// \~english @see +//////////////////////////////////////////////////////////////////////////////////// +extern SS_String GetStr(ESMCpuResetReason f_enum); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup GetStr +/// \~english @par Summary +/// change member from \ref _SS_SystemManagerProtocol "SS_SystemManagerProtocol" type to string +/// \~english @param [in] f_enum +/// \ref _SS_SystemManagerProtocol "SS_SystemManagerProtocol" - the member what will convert farm \ref SS_SystemManagerProtocol "SS_SystemManagerProtocol" type to string +/// type.The type of system manager protocol. +/// \~english @retval SS_String +/// \~english @par Preconditions +/// - None. +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~english @par Causes of failures +/// None +/// \~english @par Classification +/// Public +/// \~english @par Type +/// sync only +/// \~english @par Detail +/// change member from \ref _SS_SystemManagerProtocol) "SS_SystemManagerProtocol" type to string. \n +/// \~english @see +//////////////////////////////////////////////////////////////////////////////////// +extern SS_String GetStr(SS_SystemManagerProtocol f_enum); + +#endif /* SS_STRING_MAPS_H_ */ // NOLINT (build/header_guard) +// EOF ss_string_maps.h +/** @}*/ +/** @}*/ +/** @}*/ diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_sys_boot_area_map.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_sys_boot_area_map.h new file mode 100755 index 0000000..7df0c88 --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_sys_boot_area_map.h @@ -0,0 +1,39 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @file ss_sys_boot_area_map.h + * @brief \~english This file supports system area type definitions + */ +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup interface_unified + * @ingroup system_service + * @{ + */ +#ifndef __SS_SYS_BOOT_AREA_MAP_H__ // NOLINT (build/header_guard) +#define __SS_SYS_BOOT_AREA_MAP_H__ + +#include + +#endif /* __SS_SYS_BOOT_AREA_MAP_H__ */ // NOLINT (build/header_guard) +/** @}*/ +/** @}*/ +/** @}*/ diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_system_if.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_system_if.h new file mode 100755 index 0000000..1e3ef14 --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_system_if.h @@ -0,0 +1,119 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file ss_system_if.h + * @brief \~english This file contains api build the session of heartbeat observation system manager + */ +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup interface_unified + * @ingroup system_service + * @{ + */ +#ifndef SS_SYSTEM_IF_H_ // NOLINT (build/header_guard) +#define SS_SYSTEM_IF_H_ + +#include +#include +#include +#include + +//////////////////////////////////////////////////////////////////////////////////////////// +/// \ingroup system_manager +/// \~english @par Summary: +/// Establish SystemManger and HeartBeat monitoring session +/// \~english @param [in] hApp +/// HANDLE - Handle for application +/// \~english @retval eFrameworkunifiedStatusOK Success +/// \~english @retval eFrameworkunifiedStatusNullPointer Handle error +/// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue error +/// \~english @retval eFrameworkunifiedStatusErrNoEBADF File descriptor error +/// \~english @retval eFrameworkunifiedStatusErrNoEINTR System call error +/// \~english @retval eFrameworkunifiedStatusInvldBufSize Message buffer error +/// \~english @retval eFrameworkunifiedStatusErrOther Session establishment failure +/// \~english @retval eFrameworkunifiedStatusFail Message sharing memory error + +/// \~english @par Preconditions: +/// - Dispather for application is created / initialized(FrameworkunifiedCreateDispatcherWithoutLoop etc.) +/// \~english @par Change of the internal state: +/// - No change of internal state by this API occurs +/// \~english @par Causes of failures: +/// - Handle(hApp) specified in the argument is not appropriate(invalid) [eFrameworkunifiedStatusNullPointer] +/// - Management information area acquisition(malloc) failed [eFrameworkunifiedStatusNullPointer] +/// - Message queue for session for service is full [eFrameworkunifiedStatusMsgQFull] +/// - Invalid file descriptor for sending session messages for service [eFrameworkunifiedStatusErrNoEBADF] +/// - System call(signal) interrupt occurs +/// while sending a session message for a service [eFrameworkunifiedStatusErrNoEINTR] +/// - The size of the message transmission buffer for service is incorrect [eFrameworkunifiedStatusInvldBufSize] +/// - Some error occurred when sending session message for service [eFrameworkunifiedStatusFail] +/// - Failed to access shared memory for sending session messages for service [eFrameworkunifiedStatusErrOther] +/// \~english @par Detail: +/// Establish HeartBeat monitoring and SystemManager session.\n +/// +/// \~english @par Classification: +/// Public +/// \~english @see FrameworkunifiedMcOpenSender, FrameworkunifiedAttachCallbacksToDispatcher, FrameworkunifiedSendMsg +/// +//////////////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus FrameworkunifiedSSFrameworkInterface(HANDLE hApp); + +#ifdef __cplusplus +extern "C" { +#endif + +#if !defined(IMPL_AGL_APPLICATION_CALLBACKS_PRE_BACKGROUND) +#define FRAMEWORKUNIFIED_MAKE_DEFAULT_CALLBACK(x) \ + x.onInitilization = FrameworkunifiedOnInitialization; \ + x.onDestroy = FrameworkunifiedOnDestroy; \ + x.onStart = FrameworkunifiedOnStart; \ + x.onStop = FrameworkunifiedOnStop; \ + x.onDebugDump = FrameworkunifiedOnDebugDump; \ + x.createStateMachine = FrameworkunifiedCreateStateMachine; \ + x.ssFrameworkInterface = FrameworkunifiedSSFrameworkInterface; \ + x.onPreStart = FrameworkunifiedOnDummy; \ + x.onPreStop = FrameworkunifiedOnDummy; \ + x.onBackgroundStart = FrameworkunifiedOnDummy; \ + x.onBackgroundStop = FrameworkunifiedOnDummy; +#else +#define FRAMEWORKUNIFIED_MAKE_DEFAULT_CALLBACK(x) \ + x.onInitilization = FrameworkunifiedOnInitialization; \ + x.onDestroy = FrameworkunifiedOnDestroy; \ + x.onStart = FrameworkunifiedOnStart; \ + x.onStop = FrameworkunifiedOnStop; \ + x.onDebugDump = FrameworkunifiedOnDebugDump; \ + x.createStateMachine = FrameworkunifiedCreateStateMachine; \ + x.ssFrameworkInterface = FrameworkunifiedSSFrameworkInterface; \ + x.onPreStart = FrameworkunifiedOnPreStart; \ + x.onPreStop = FrameworkunifiedOnPreStop; \ + x.onBackgroundStart = FrameworkunifiedOnBackgroundStart; \ + x.onBackgroundStop = FrameworkunifiedOnBackgroundStop; +#endif + +#ifdef __cplusplus +} +#endif + + +#endif /* SS_SYSTEM_IF_H_ */ // NOLINT (build/header_guard) +/** @}*/ // end of interface_unified +/** @}*/ // end of system_service +/** @}*/ // end of BaseSystem diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_system_manager_if.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_system_manager_if.h new file mode 100755 index 0000000..e6b4f8d --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_system_manager_if.h @@ -0,0 +1,335 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/////////////////////////////////////////////////////////////////////////////// +/// \ingroup system_manager +/// \file ss_system_manager_if.h +/// \brief This file supports the System Manager client interface. +/// +/////////////////////////////////////////////////////////////////////////////// + +#ifndef SS_SYSTEM_MANAGER_IF_H_ // NOLINT (build/header_guard) +#define SS_SYSTEM_MANAGER_IF_H_ + +#include +#include +#include "system_service/ss_system_if.h" +#include "system_service/ss_error_event_common.h" +#include "system_service/ss_power_service.h" + +/// \ingroup system_manager +/// \brief Boot mode information +typedef enum { + e_SS_SM_BOOT_MODE_INVALID = -1 + , e_SS_SM_BOOT_MODE_APPLICATION + , e_SS_SM_BOOT_MODE_PROGRAMMING +}ESMBootModeInfo; + +/// \ingroup system_manager +/// \brief Data reset mode information +typedef enum { + e_SS_SM_DATA_RESET_MODE_NONE + , e_SS_SM_DATA_RESET_MODE_USER + , e_SS_SM_DATA_RESET_MODE_FACTORY + , e_SS_SM_DATA_RESET_MODE_PROGUPDATE // cannot use this +}ESMDataResetModeInfo; + +/// \ingroup system_manager +/// \brief Program update status +typedef UI_32 SMProgUpdateState; +#define SS_SM_PROG_UPDATE_STATE_NONE 0x0000 +#define SS_SM_PROG_UPDATE_STATE_UPDATED 0x0001 +#define SS_SM_PROG_UPDATE_STATE_MAP_UPDATED 0x0002 +#define SS_SM_PROG_UPDATE_STATE_MAPDIFF_UPDATED 0x0004 + +/// Set Next Wakeup type information +typedef enum { + e_SS_SM_NEXT_WAKEUP_TYPE_NONE = 0 + , e_SS_SM_NEXT_WAKEUP_TYPE_COLD + , e_SS_SM_NEXT_WAKEUP_TYPE_HOT +}ESMNextWakeupType; + +/// \ingroup system_manager +/// \brief DRAM backup status +typedef enum { + e_SS_SM_DRAM_BACKUP_UNSET = -1 + , e_SS_SM_DRAM_BACKUP_OK + , e_SS_SM_DRAM_BACKUP_NG +}ESMDramBackupStatus; + +/// \ingroup system_manager +/// \brief Reset status +typedef enum { + e_SS_SM_RESET_STATUS_UNSET = -1 + , e_SS_SM_RESET_STATUS_NONE + , e_SS_SM_RESET_STATUS_NG + , e_SS_SM_RESET_STATUS_IMMEDIATE +}ESMResetStatus; + +/// \ingroup system_manager +/// \brief Relaunch status +typedef enum { + e_SS_SM_RELAUNCH_STATUS_NONE + , e_SS_SM_RELAUNCH_STATUS_SAFE + , e_SS_SM_RELAUNCH_STATUS_ERR +}EMRelaunchStatus; + + +/// \ingroup system_manager +/// \brief CPU Reset Reason +typedef enum { + e_SS_SM_CPU_RESET_REASON_INVALID = -1 + , e_SS_SM_CPU_RESET_REASON_NORMAL = 0 + , e_SS_SM_CPU_RESET_REASON_DATA_RESET + , e_SS_SM_CPU_RESET_REASON_USER_FORCE_RESET + , e_SS_SM_CPU_RESET_REASON_GENERIC + , e_SS_SM_CPU_RESET_REASON_GENERIC_ERR = e_SS_SM_CPU_RESET_REASON_GENERIC + , e_SS_SM_CPU_RESET_REASON_DSP_ERR + , e_SS_SM_CPU_RESET_REASON_IMMRESET_NORMAL + , e_SS_SM_CPU_RESET_REASON_CRITICAL_ERR // DRAM backup will be discarded after reset +}ESMCpuResetReason; + +/// \ingroup system_manager +/// \brief CPU Reset Info +typedef struct T_SystemManagerCpuResetInfo { +#define SS_SM_RESET_MSG_STR_SIZE 64 +#define SS_SM_SUFFIX_STR_SIZE 32 + ESMCpuResetReason resetReason; + CHAR messageStr[SS_SM_RESET_MSG_STR_SIZE]; + CHAR suffixStr[SS_SM_SUFFIX_STR_SIZE]; + T_SystemManagerCpuResetInfo + () : resetReason(e_SS_SM_CPU_RESET_REASON_INVALID) { + } +}TSystemManagerCpuResetInfo; + + +/// \ingroup system_manager +/// \brief Data Reset Reason +typedef enum { + e_SS_SM_DATA_RESET_TYPE_USER = 0 + , e_SS_SM_DATA_RESET_TYPE_FACTORY // AKA Shipment Mode + , e_SS_SM_DATA_RESET_TYPE_CONFIGURATION + , e_SS_SM_DATA_RESET_TYPE_PROGUPDATE // cannot use this +}ESMDataResetType; + +typedef enum { + e_SS_SM_SVC_WAKEUP_STATUS_COMPLETE = 0x01 +}ESMServiceWakeupStatus; + +/// \ingroup system_manager +/// \brief Data Reset Reason +typedef struct T_SS_BootModeListStruct { + ESMBootModeInfo hostBootMode; + EPWR_SC__CWORD56__BOOT_MODE_TYPE _CWORD56_BootMode; +} TSS_BootModeListStruct; + +//**************************************************************************** +/// \ingroup system_manager * +/// Data passed in the NTFY_SSSystemMgrPowerOnOff and * +/// NTFY_SSSystemMgrUserMode notification messages * + +/// \ingroup system_manager +typedef struct T_SS_SM_UserModeOnOffNotification_Struct { // * + BOOL isUserModeOn; // * + EPWR_WAKEUP_FACTOR_TYPE startupReason; // * + EPWR_USER_MODE_CHANGE_REASON_TYPE userModeChangeReason; // * + T_SS_SM_UserModeOnOffNotification_Struct // * + () : isUserModeOn(FALSE), // * + startupReason(epswfINVALID), // * + userModeChangeReason(epsumcrNOT_AVAILABLE) { // * + } // * + T_SS_SM_UserModeOnOffNotification_Struct // * + (BOOL f_bUserMode, // * + EPWR_WAKEUP_FACTOR_TYPE f_startupReason, // * + EPWR_USER_MODE_CHANGE_REASON_TYPE f_changeReason) // * + : isUserModeOn(f_bUserMode), // * + startupReason(f_startupReason), // * + userModeChangeReason(f_changeReason) { // * + } // * + // * +} T_SS_SM_UserModeOnOffNotification_StructType; // * +// * +// End of Data passed as part of NTFY_SSSystemMgrPowerOnOff notification ... * +//**************************************************************************** + + +//**************************************************************************** +/// \ingroup system_manager +/** + * \~english Parameters of the following message. \n + * SS_SM_START 'FrameworkunifiedOnStart'/'evStart' \n + * SS_SM_PRE_START 'FrameworkunifiedOnPreStart'/'evPreStart' \n + * SS_SM_BACKGROUND_START 'FrameworkunifiedOnBackgroundStart'/'evBackgroundStart' \n + */ +typedef struct T_SS_SM_START_DataStruct { + EPWR_WAKEUP_FACTOR_TYPE startupReason; //!< \~english + BOOL isUserModeOn; //!< \~english + ESMDataResetModeInfo dataResetMode; //!< \~english + EPWR_SC_SECURITY_STATUS securityStatus; //!< \~english + EPWR_SC_WAKEUP_TYPE wakeupType; //!< \~english + ESMDramBackupStatus dramBackupStatus; //!< \~english + ESMResetStatus resetStatus; //!< \~english + UI_32 errResetCount; //!< \~english + /** + * \~english Constructor + */ + T_SS_SM_START_DataStruct + () : startupReason(epswfINVALID), + isUserModeOn(FALSE), + dataResetMode(e_SS_SM_DATA_RESET_MODE_NONE), + securityStatus(epsssINVALID), + wakeupType(epsstINVALID), + dramBackupStatus(e_SS_SM_DRAM_BACKUP_UNSET), + resetStatus(e_SS_SM_RESET_STATUS_UNSET), + errResetCount(0) {} + /** + * \~english Constructor + */ + T_SS_SM_START_DataStruct + (EPWR_WAKEUP_FACTOR_TYPE f_startupReason, + BOOL f_isUserModeOn, + ESMDataResetModeInfo f_dataResetMode, + EPWR_SC_SECURITY_STATUS f_securityStatus, + EPWR_SC_WAKEUP_TYPE f_wakeupType, + ESMDramBackupStatus f_dramBackupStatus, + ESMResetStatus f_resetStatus, + UI_32 f_resetCount) + : startupReason(f_startupReason), + isUserModeOn(f_isUserModeOn), + dataResetMode(f_dataResetMode), + securityStatus(f_securityStatus), + wakeupType(f_wakeupType), + dramBackupStatus(f_dramBackupStatus), + resetStatus(f_resetStatus), + errResetCount(f_resetCount) {} +} T_SS_SM_START_DataStructType; +// * +// End of Data passed as part of SS_SM_START 'FrameworkunifiedOnStart'/'evStart' message * +//**************************************************************************** + +//**************************************************************************** +/// \ingroup system_manager +/// Data passed as part of SS_SM_STOP 'FrameworkunifiedOnStop'/'evStop' message * +typedef struct T_SS_SM_STOP_DataStruct { // * + EPWR_SHUTDOWN_TRIGGER_TYPE shutdownTrigger; // * + EPWR_USER_MODE_TYPE lastUserMode; // * +} T_SS_SM_STOP_DataStructType; // * +// * +// End of Data passed as part of SS_SM_STOP 'FrameworkunifiedOnStop'/'evStop' message // * +//**************************************************************************** + +//**************************************************************************** +/// \ingroup system_manager +/// Extended Parameter for FrameworkunifiedOnStart * +typedef struct { // * +#define SS_SM_START_EXT_INFO_SIZE 64 // * +#define SS_SM_START_EXT_BODY_SIZE ( sizeof(BOOL) \ + + sizeof(EMRelaunchStatus) \ + + sizeof(BOOL) \ + + sizeof(BOOL) \ + ) + +#define SS_SM_START_EXT_RSV_SIZE SS_SM_START_EXT_INFO_SIZE \ + - SS_SM_START_EXT_BODY_SIZE // * + BOOL isProgUpdated; // * + EMRelaunchStatus relaunchStatus; // * + BOOL isMapUpdated; // * + BOOL isMapDiffUpdated; // * + uint8_t reserved[SS_SM_START_EXT_RSV_SIZE]; // * +} T_SS_SM_START_ExtDataStructType; // * +// * +// End of Extended Parameter for FrameworkunifiedOnStart * +//**************************************************************************** + +//**************************************************************************** +/// \ingroup system_manager +/// Extended Parameter for FrameworkunifiedOnStop * +typedef struct { // * +#define SS_SM_STOP_EXT_INFO_SIZE 64 // * +#define SS_SM_STOP_EXT_BODY_SIZE (sizeof(BOOL)) // * +#define SS_SM_STOP_EXT_RSV_SIZE SS_SM_STOP_EXT_INFO_SIZE \ + - SS_SM_STOP_EXT_BODY_SIZE // * + BOOL isProgUpdated; // * + uint8_t reserved[SS_SM_STOP_EXT_RSV_SIZE]; // * +}T_SS_SM_STOP_ExtDataStructType; // * +// * +// End of Extended Parameter for FrameworkunifiedOnStop * +//**************************************************************************** + +struct SMErrorEventNtfData { +#define SM_MODULE_NAME_SIZE 64 + EErrorEventType EventType; + CHAR ModuleName[SM_MODULE_NAME_SIZE]; + BOOL isNeedReboot; +}; + +//************************************************************************* +// Boot Micro Logging Protocol * +// * +enum eSMBootMicroResetReason { + SS_SM_BOOT_MICRO_RESET_REASON_SELF_RESET = 0, + SS_SM_BOOT_MICRO_RESET_REASON_USER_FORCE_RESET, + SS_SM_BOOT_MICRO_RESET_REASON_DSP_RESET, + SS_SM_BOOT_MICRO_RESET_REASON_HB_TIMEOUT +}; +// * +// End of Boot Micro Logging Protocol * +//************************************************************************* + + +//**************************************************************************** +/// \ingroup system_manager * +/// Error Event Logging enumerations * +/// +enum eSMUserLogType { + e_SS_SM_CAPTURE_ALL_LOGS = 1, //!< \~english Capture all logs + e_SS_SM_SCREEN_CAPTURE, //!< \~english Capture screenshot + e_SS_SM_CAPTURE_INTERFACEUNIFIED_LOGS, //!< \~english Capture application log + e_SS_SM_USER_FORCE_RESET, //!< \~english Capture logs are forcibily reset + e_SS_SM_CAPTURE_DEV_LOGS, //!< \~english Capture device log + e_SS_SM_CAPTURE_MODULE_LOGS, //!< \~english Capture debug log + e_SS_SM_CAPTURE_DTC_LOGS, //!< \~english Capture DTC event log + e_SS_SM_CAPTURE_NAVI_LOGS, //!< \~english Capture Navi event log + e_SS_SM_CAPTURE_GROUP_RELAUNCH //!< \~english Capture log by Group Relaunch +}; +// * +// Error Event Logging enumerations * +//**************************************************************************** + +//**************************************************************************** +/// \ingroup system_manager * +/// \brief Error Event Logging Info * +typedef struct T_SystemManagerLoggingRequestInfo { +#define SS_SM_LOG_MSG_STR_SIZE 64 + eSMUserLogType logType; + CHAR messageStr[SS_SM_LOG_MSG_STR_SIZE]; + CHAR suffixStr[SS_SM_SUFFIX_STR_SIZE]; +}TSystemManagerLoggingRequestInfo; +// +// Error Event Logging Info * +//**************************************************************************** + +//**************************************************************************** +/// \ingroup system_manager * +/// \brief Error Event Clear Logs Info * +typedef struct T_SystemManagerClearLogsInfo { + void *rsv; +}TSystemManagerClearLogsInfo; +// +// Error Event Clear Logs Info * +//**************************************************************************** + +#endif /* SS_SYSTEM_MANAGER_IF_H_ */ // NOLINT (build/header_guard) diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_system_manager_if_local.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_system_manager_if_local.h new file mode 100755 index 0000000..5c67aa6 --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_system_manager_if_local.h @@ -0,0 +1,40 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/////////////////////////////////////////////////////////////////////////////// +/// \ingroup system_manager +/// \file ss_system_manager_if_local.h +/// \brief This file supports the System Manager client interface. +/// +/////////////////////////////////////////////////////////////////////////////// + +#ifndef SS_SYSTEM_MANAGER_IF_LOCAL_H_ // NOLINT (build/header_guard) +#define SS_SYSTEM_MANAGER_IF_LOCAL_H_ + +#define SS_MAX_NUM_MODULES (128) + +// EXIT_SUCCESS exit succeccfully +// EXIT_FAILURE exit with failure +// SS_SM_EXIT_RELAUNCH exit for relaunch request +#define SS_SM_EXIT_RELAUNCH (2) + +/// \ingroup system_manager +/// Message data payload structure from system manager to heartbeat +typedef struct T_SMRequestMsg { + CHAR pstModuleName[MAX_QUEUE_NAME_SIZE]; +}TSMRequestMessage; + +#endif /* SS_SYSTEM_MANAGER_IF_LOCAL_H_ */ // NOLINT (build/header_guard) diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_system_manager_notifications.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_system_manager_notifications.h new file mode 100755 index 0000000..008d4f3 --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_system_manager_notifications.h @@ -0,0 +1,49 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/////////////////////////////////////////////////////////////////////////////// +/// \ingroup system_manager +/// \file ss_system_manager_notifications.h +/// \brief This file supports the System Manager client interface. +/// +/////////////////////////////////////////////////////////////////////////////// + +#ifndef SS_SYSTEM_MANAGER_NOTIFICATIONS_H_ // NOLINT (build/header_guard) +#define SS_SYSTEM_MANAGER_NOTIFICATIONS_H_ + +#include "system_service/ss_services.h" + +/// \addtogroup system_manager +/// @{ + +#define NTFY_SSSystemMgrAvailability SERVICE_SYSMANAGER"/Availability" ///< System Manager availability - + // eFrameworkunifiedServiceAvailable or eInterfaceunifiedServiceUnavailable +#define NTFY_SSSystemMgrState SERVICE_SYSMANAGER"/State" ///< System Manager state - Init, + // Connecting, Disconnecting and Ready +#define NTFY_SSSystemMgrPowerOnOff SERVICE_SYSMANAGER"/PowerOnOffState" ///< Power ON notification for + // Audio & Display +#define NTFY_SSSystemMgrStartUpType SERVICE_SYSMANAGER"/StartUpType" ///< Notification for start up type +#define NTFY_SSServiceWakeupStatus SERVICE_SYSMANAGER"/ServiceWakeupStatus" ///< Service Wakeup state +#define NTFY_SSNeedAplRestart SERVICE_SYSMANAGER"/NeedAplRestart" ///< Notification for Need APL Restart + + +/// Notification used by HMI to know when a Shutdown Request has been received +/// from the _CWORD56_ +#define NTFY_SSSystemMgrShutdownStarted SERVICE_SYSMANAGER"/ShutdownStarted" + +/// @} + +#endif /* SS_SYSTEM_MANAGER_NOTIFICATIONS_H_ */ // NOLINT (build/header_guard) diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_system_manager_notifications_local.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_system_manager_notifications_local.h new file mode 100755 index 0000000..cbb743f --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_system_manager_notifications_local.h @@ -0,0 +1,51 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file ss_system_manager_notifications_local.h + * @brief \~english This file supports the System Manager client interface. + */ +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup interface_unified + * @ingroup system_service + * @{ + */ +#ifndef SS_SYSTEM_MANAGER_NOTIFICATIONS_LOCAL_H_ // NOLINT (build/header_guard) +#define SS_SYSTEM_MANAGER_NOTIFICATIONS_LOCAL_H_ + + +/// TRUE : UserMode is UserOn +/// FALSE : UserMode is UserOff +/// Notification for User Mode +#define NTFY_SSSystemMgrUserMode SERVICE_SYSMANAGER"/UserMode" + +/// Notification for data reset +#define NTFY_SSSystemMgrDataReset SERVICE_SYSMANAGER"/DataReset" + +/// Notification used by Audio and System Services for Dynamic Launch +#define NTFY_SSLastSourceType SERVICE_SYSMANAGER"/LastSourceType" + + +#endif /* SS_SYSTEM_MANAGER_NOTIFICATIONS_LOCAL_H_ */ // NOLINT (build/header_guard) +/** @}*/ +/** @}*/ +/** @}*/ diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_system_manager_protocol.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_system_manager_protocol.h new file mode 100755 index 0000000..99d7e13 --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_system_manager_protocol.h @@ -0,0 +1,329 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/////////////////////////////////////////////////////////////////////////////// +/// \ingroup system_manager +/// \file ss_system_manager_protocol.h +/// \brief This file supports the System Manager client interface. +/////////////////////////////////////////////////////////////////////////////// + +#ifndef __SS_SYSTEM_MANAGER_PROTOCOL_H__ // NOLINT (build/header_guard) +#define __SS_SYSTEM_MANAGER_PROTOCOL_H__ + +#include +#include + +/// \addtogroup system_manager +/// @{ + +#define SS_SM_MAX_MODULE_NAME_LENGTH (256) +#define SS_SM_MAX_TEST_CASE_NAME_SIZE (128) +#define SS_SM_MAX_RESP_MSG_SIZE (2048) + +// system manager protocol --> define all protocol messages in and out of system manager +// that are pertinent to the functionality offered by system manager. +/** + * \~english System control protocol type. + */ +typedef enum _SS_SystemManagerProtocol { + // System Manager - command Protocol + SS_SYSTEM_MANAGER_PROTOCOL_BEGINNING_INDEX = 0x800, //!< \~english + SS_SM_NOTIFY_SYSTEM_LAUNCH_COMPLETE = SS_SYSTEM_MANAGER_PROTOCOL_BEGINNING_INDEX //!< System Manager to Power manager + , SS_SM_PROTOCOL_INTERFACE_END //!< \~english + + // SystemManager-command Protocol + , SS_SM_START //!< \~english Normal-boot start request. + , SS_SM_START_COMPL_RSPN //!< \~english Normal-boot start completion notification. + , SS_SM_STOP //!< \~english Shutdown request. + , SS_SM_STOP_COMPL_RSPN //!< \~english Shutdown completion notification. + // SystemManager-command Protocol + , SS_SM_WAKEUP_MODULES_CMPL_RSPN //!< \~english Response to request of power state transition to power_service.(message format to use: \ref _wakeinfo "wakeInfo") + , SS_SM_SHUTDOWN_MODULES_CMPL_RSPN //!< SM to power + + , SS_SM_WAKEUP_MODULES //!< client to service + , SS_SM_POWER_OFF_MODULES //!< client to service + , SS_SM_SHUTDOWN_MODULES //!< client to service + + , SS_SM_CRNT_STATE_QUERY //!< client to service + , SS_SM_CRNT_STATE_QUERY_RSPN //!< service to client + , SS_SM_SYSTEM_MODE_INFO_REQ //!< client to service + , SS_SM_SYSTEM_MODE_INFO_RSPN //!< service to client + , SS_SM_INITCOMP_REP //!< client to service + + , SS_SM_PROTOCOL_OPEN_SESSION_REQ //!< \~english + , SS_SM_PROTOCOL_OPEN_SESSION_ACK //!< \~english + + //************************************************************************* + // Get Extended Parameter Protocol * + // * + // Protocol between applications and SM * + , SS_SM_GET_START_EXT_INFO //!< FrameworkunifiedOnStart Extended Parameter + , SS_SM_GET_STOP_EXT_INFO //!< FrameworkunifiedOnStop Extended Parameter + // End of Get Extended Parameter Protocol * + //************************************************************************* + + //************************************************************************* + // Reset Mode Protocol: * + // * + // Request by Privileged clients to set the data reset mode: * + // None, UserData Reset or * + // Factory Reset * + // * + // The Set Request message carries the requested reset Mode. * + // Set Result message is not defined, because the Set Request is send by * + // FrameworkunifiedInvokeSync() * + , SS_SM_DATA_RESET_MODE_SET_REQ //!< Client to Service (Sys Mgr) + // * + // End of Reset Mode Protocol * + //************************************************************************* + + //************************************************************************* + // Program Update Status Protocol: * + // * + // Request by Privileged clients to set the program update status: * + // None or Program Updated * + // * + // The Set Request message carries the requested program update status. * + // Set Result message is not defined, because the Set Request is send by * + // FrameworkunifiedInvokeSync() * + , SS_SM_PROG_UPDATE_STATE_SET_REQ //!< Client to Service (Sys Mgr) + // * + // End of Reset Mode Protocol * + //************************************************************************* + + //************************************************************************* + // 'CPU Reset' Protocol: * + // * + // CPU Reset request from applications to SM and SM to PS * + // /// < Client to Service when * + // /// message originating from * + // /// Application to SS\SM. * + // /// < Service to Client when * + // /// message originating from * + // /// SS\SM to SS\PS. * + , SS_SM_CPU_RESET_REQ //!< \~english + // * + // End of CPU Reset Protocol * + //************************************************************************* + + //************************************************************************* + // 'Local Data Reset' Protocol: * + // * + // Local Data Reset request from applications to SM. * + // /// < Client to Service when * + // /// message originating from * + // /// Application to SS\SM. * + , SS_SM_LOCAL_DATA_RESET_REQ //!< \~english + // * + // End of Local Data Reset Protocol * + //************************************************************************* + + //************************************************************************* + // 'Remote Data Reset' Protocol: * + // * + // Remote Data Reset request from SM to PS * + // /// < Service to Client when * + // /// message originating from * + // /// SS\SM to SS\PS. * + , SS_SM_REMOTE_DATA_RESET_REQ //!< \~english + // * + // End of Remote Data Reset Protocol * + //************************************************************************* + + + //************************************************************************* + // Startup Confirmation Protocol: * + // * + // Request by the Power Shadow to the Power Service to forward to the * + // System Manager the Startup Confirmation message. * + // * + // The Request message carries the Startup Confirmation message. * + // The Response message carries the EFrameworkunifiedStatus of the request. * + , SS_SM_FWD_STARTUP_CONFIRMATION_MSG_REQ //!< Pwr Svc to Sys Mgr + , SS_SM_FWD_START_CONFIRMATION_MSG_RESP //!< Sys Mgr to Pwr Svc + // * + // End of Startup Confirmation Protocol * + //************************************************************************* + + //************************************************************************* + // Power Request Protocol: * + // * + // Power Request message from the Power Shadow to the System Manager with * + // _CWORD56_'s "Power_Request" IPC_Command data. * + // * + // The Request message carries the _CWORD56_'s data. * + // The Response message carries the EFrameworkunifiedStatus of the request. * + , SS_SM_POWER_REQUEST_MSG //!< \~english Startup process start request from power_service. + , SS_SM_POWER_REQUEST_MSG_RESP //!< Sys Mgr to Pwr Svc + // * + // End of Power Request Protocol * + //************************************************************************* + + //************************************************************************* + // User Mode Protocol: * + // * + // Request from the Power Service to the System Manager, originally from * + // the Power Shadow, to turn on or off the video & audio output of HMI * + // and Audio services. * + // User Mode 'On' => turn video & audio output on * + // User Mode 'Off' => turn video & audio output off * + // * + // The Request message carries the requested User Mode state. * + // The Response message carries the actual User Mode state. * + , SS_SM_USER_MODE_SET_RESP //!< Service (Sys Mgr) to Client (Pwr Svc) + // * + // Note: See the corresponding Power Shadow / Power Service * + // 'SS_PowerServiceProtocol' enums in * + // /SystemServices/inc/ss_power_service_protocol.h * + // End of User Mode Protocol * + //************************************************************************* + + , SS_SM_NEXT_WAKEUP_TYPE_SET_REQ //!< \~english + + //************************************************************************* + // Error Event Protocol * + // + , SS_SM_EVENT_ERROR //!< SM to HMI(_CWORD77_) + , SS_SM_EVENT_ERROR_TO_SSL //!< SM to SSL + , SS_SM_ERROR_EVENT_LOGGING_START_REQ //!< SSL to SM + , SS_SM_ERROR_EVENT_LOGGING_START_RSPN //!< SM to SSL + , SS_SM_ERROR_EVENT_ARTIFACT_REQ //!< SSL to SM + , SS_SM_ERROR_EVENT_ARTIFACT_RSPN //!< SM to SSL + , SS_SM_ERROR_EVENT_LOGGING_COMPLETE //!< SSL to SM + , SS_SM_ERROR_EVENT_LOGGING_COMPLETE_RSPN //!< SM to SSL + + , SS_SM_ERROR_EVENT_TIMER_ID_LOGGER_START_REQ //!< \~english + , SS_SM_ERROR_EVENT_TIMER_ID_DEBUG_DUMP_RSPN //!< \~english + , SS_SM_ERROR_EVENT_TIMER_ID_BOOT_MICRO_LOG_RSPN //!< \~english + , SS_SM_ERROR_EVENT_TIMER_ID_CORE_FILE_POLL //!< \~english + + , SS_SM_USER_INVOKED_LOG_REQ //!< Key Shadow to SM + + , SS_SM_ERROR_EVENT_EEL_EXPORT_REQ //!< SSL to SM + , SS_SM_ERROR_EVENT_INTERFACEUNIFIED_EMMC_LOGS_REQ //!< SSL to SM + , SS_SM_ERROR_EVENT_INTERFACEUNIFIED_EMMC_LOGS_RSPN //!< SM to SVC + , SS_SM_ERROR_EVENT_CLR_LOGS_REQ //!< SVC to SM + , SS_SM_ERROR_EVENT_PROCESS_EXIT //!< SM\CD to SM + , SS_SM_ERROR_EVENT_DIAG_LOG_REQ //!< SSL to SM + , SS_SM_ERROR_EVENT_CAN_LOG_REQ //!< SSL to SM + , SS_SM_ERROR_EVENT_DTC_LOG_REQ //!< SSL to SM + // + // End of Error Event Protocol * + //************************************************************************* + + , SS_SM_GROUP_LAUNCH_TRIGGER //!< \~english + + //************************************************************************* + // Debug Dump Protocol * + // * + // Protocol between applications and SM * + , SS_SM_DEBUG_DUMP //!< SM to client + , SS_SM_DEBUG_DUMP_RSPN //!< client to SM + // * + // End of Debug Dump Protocol * + //************************************************************************* + + //************************************************************************* + // IAT Propagate Error (Module Relaunch Request) * + // * + // Protocol between applications and SM * + , SS_SM_MODULE_RELAUNCH_REQ //!< client to SM + // * + // End of IAT Propagate Error (Module Relaunch Request) * + //************************************************************************* + + //************************************************************************* + // CPU High Load * + // * + // Protocol between SS_CPU_Monitor and SM * + , SS_SM_CPU_HIGH_LOAD_DETECTED //!< client to SM + // * + // End of CPU High Load * + //************************************************************************* + + //************************************************************************* + // IAT Propagate Error (System Error) * + // * + // Protocol between application and SM * + , SS_SM_PROPAGATE_SYSTEM_ERROR //!< client to SM + // * + // End of IAT Propagate Error (System Error) * + //************************************************************************* + + //************************************************************************* + // _CWORD56_ HeartBeat Request Protocol * + // * + // Protocol between Power Services and SM * + , SS_SM__CWORD56__HEARTBEAT_REQ //!< PS to SM + , SS_SM__CWORD56__HEARTBEAT_RSPN //!< SM to PS + // * + // End of _CWORD56_ HeartBeat Request Protocol * + //************************************************************************* + + //************************************************************************* + // User Data Reset Event Protocol * + // * + // Protocol between SM and Service * + , SS_SM_EVENT_USER_DATA_RESET //!< SM to MS + // * + // End of User Data Reset Event Protocol * + //************************************************************************* + + //************************************************************************* + // Boot Micro Logging Protocol * + // * + // Protocol between SS_Logger and SM. * + , SS_SM_BOOT_MICRO_RESET_NTF //!< Logging Shadow to SM + , SS_SM_BOOT_MICRO_LOG_REQ //!< SM to Logging Shadow + , SS_SM_BOOT_MICRO_LOG_RSP //!< Logging Shadow to SM aka ENDING_INDEX + // * + // End Boot Micro Logging Protocol * + //************************************************************************* + + // SystemManager-command Protocol + , SS_SM_PRE_START //!< \~english Pre-boot(+BA) start request. + , SS_SM_PRE_START_COMPL_RSPN //!< \~english Pre-boot(+BA) start completion notification. + , SS_SM_PRE_STOP //!< \~english Pre-boot(+BA) stop request. + , SS_SM_PRE_STOP_COMPL_RSPN //!< \~english Pre-boot(+BA) stop completion notification. + , SS_SM_BACKGROUND_START //!< \~english Background-boot(+BA) start request. + , SS_SM_BACKGROUND_START_COMPL_RSPN //!< \~english Background-boot(+BA) start completion notification. + , SS_SM_BACKGROUND_STOP //!< \~english Background-boot(+BA) stop request. + , SS_SM_BACKGROUND_STOP_COMPL_RSPN //!< \~english Background-boot(+BA) stop completion notification. + + // UPDATE IF ANOTHER 'LAST' ENUMERATION IS ADDED ! + , SS_SYSTEM_MANAGER_PROTOCOL_ENDING_INDEX = SS_SM_BACKGROUND_STOP_COMPL_RSPN //!< \~english +} SS_SystemManagerProtocol; + +typedef struct _SS_SMCurrentState { + CHAR testCaseIdString[SS_SM_MAX_TEST_CASE_NAME_SIZE]; + CHAR respMsgString[SS_SM_MAX_RESP_MSG_SIZE]; +}SS_SMCurrentState; + +typedef struct _SMCompleteAck { + UI_16 unSessionId; + CHAR szServiceName[MAX_QUEUE_NAME_SIZE]; +} SMStopCompleteAck; + +typedef struct _SMGroupLaunchTrigger { + UI_32 NextGroupId; +}SMGroupLaunchTrigger; +//************************************************************************* + + +/// @} + +#endif /* __SS_SYSTEM_MANAGER_PROTOCOL_H__ */ // NOLINT (build/header_guard) +// EOF diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_system_manager_protocol_local.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_system_manager_protocol_local.h new file mode 100755 index 0000000..5f86820 --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_system_manager_protocol_local.h @@ -0,0 +1,45 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/////////////////////////////////////////////////////////////////////////////// +/// \ingroup system_manager +/// \file ss_system_manager_protocol_local.h +/// \brief This file supports the System Manager client interface. +/////////////////////////////////////////////////////////////////////////////// + +#ifndef __SS_SYSTEM_MANAGER_PROTOCOL_LOCAL_H__ // NOLINT (build/header_guard) +#define __SS_SYSTEM_MANAGER_PROTOCOL_LOCAL_H__ + +#include +#include + +/// \addtogroup system_manager +/// @{ + +#define SS_SM_MAX_MODULE_LOG_MASK_LENGTH (50) +#define SS_SM_MAX_MODULE_PATH_LENGTH (256) +#define SS_SM_MAX_MODULE_ARGS_LENGTH (512) + +//************************************************************************* +// Version Number Structure Specification: * +typedef UI_64 SS_VersionNumberType; +// End of Version Number Structure Specification * +//************************************************************************* + +/// @} + +#endif /* __SS_SYSTEM_MANAGER_PROTOCOL_LOCAL_H__ */ // NOLINT (build/header_guard) +// EOF diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_system_process.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_system_process.h new file mode 100755 index 0000000..a4ae743 --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_system_process.h @@ -0,0 +1,1118 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/////////////////////////////////////////////////////////////////////////////// +/// \ingroup tag_SystemServicesIf +/// \brief This file supports the System Manager OS process abstraction. +/// +/////////////////////////////////////////////////////////////////////////////// +/** + * @file ss_system_process.h + */ +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup interface_unified + * @ingroup system_service + * @{ + */ +#ifndef __Process_H__ // NOLINT (build/header_guard) +#define __Process_H__ + +#include +#include +#include +#include +#include +#include +#include +#include + +const long lProcess_VALIDATION_VALUE = 2198645; // NOLINT (runtime/int) +// Used to define a unique value that represents this class. +// This value is stored in the object when the object is created, +// and cleared when the object is destroyed. + +const int iProcess_DEFAULT_PROCESS_PRIORITY = 10; +// This is the default process priority that all new processes will use. + +const int iProcess_MAXIMUM_PROCESS_PRIORITY = 60; +// This is the maximum priority a process can have + +const long iProcess_DEFAULT_PROCESS_FLAGS = POSIX_SPAWN_SETSCHEDULER // NOLINT (runtime/int) + | POSIX_SPAWN_SETSCHEDPARAM; + +// This flag field is a bit wise OR of spawning options to use when a process +// is created. + +const int iProcess_MAXIMUM_NUMBER_OF_PROCESS_ARGUMENTS = 25; +// This is the maximum number of command line (i.e. argv[]) arguments we can +// send to a process. This includes; exectuable file name + process arguments + NULL + +const int iProcess_MAXIMUM_PROCESS_NAME_LENGTH = 32; +// This is the maximum number of characters that a process name can be in bytes. + +class Process; + +typedef std::map ProcessMap; + +/** + * @class TimerCtrl + * \~english @brief OS process + * \~english @par Brief Introduction + * This class is the System Manager OS process abstraction. + * + */ +class Process { + public: + enum eProcessLoadMode { + WAIT, // The invoked program is loaded into available memory, is executed, + // and then the original program resumes execution. + NOWAIT, // Causes the current program to execute concurrently with the new child process. + }; + + enum eProcessSchedulingPolicy { + FIFO, // A fixed priority scheduler in which the highest ready process runs until it + // blocks or is preempted by a higher priority process. + ROUND_ROBIN, // The same as FIFO, except processes at the same priority level time-slice. + OTHER // A general time sharing scheduler in which a process decays in priority if it + // consumes too much processor before blocking. It reverts to its default priority + // when it blocks. Should it fail to run over a 2 second period and it has decayed + // then it's boosted one priority level up to a maximum of its default priority. + }; + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup Process + /// \~english @par Summary + /// - Default Constructor, called when the class is instantiated. + /// \~english @param [in] - cpu_assign + /// - Assignment information of CPU. + /// \~english @retval None + /// \~english @par Preconditions + /// -no preconditions + /// \~english @par Change of the internal state + /// - initialize all var + /// \~english @par Causes of failures + /// - None + /// \~english @par Classification + /// - Public + /// \~english @par Type + /// - sync only + /// \~english @par Detail + /// - initialize all var in class as default value + /// \~english @see ~Process + //////////////////////////////////////////////////////////////////////////////////// + Process(int cpu_assign = 0x0); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup Process + /// \~english @par Summary + /// - Copy Constructor + /// \~english @param [in] - p_rhs_i + /// - Process - Reference to a Process that you want to copy. + /// \~english @retval None + /// \~english @par Preconditions + /// -no preconditions + /// \~english @par Change of the internal state + /// - None + /// \~english @par Causes of failures + /// - None + /// \~english @par Classification + /// - Public + /// \~english @par Type + /// - sync only + /// \~english @par Detail + /// - Used to create an object and copy another object to the new object. + /// \~english @see ~Process + //////////////////////////////////////////////////////////////////////////////////// + Process(const Process& p_rhs_i); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup ~Process + /// \~english @par Summary + /// - Destructor function + /// \~english @param None + /// \~english @retval None + /// \~english @par Preconditions + /// -no preconditions + /// \~english @par Change of the internal state + /// - set m_lValidationTag with 0 + /// \~english @par Causes of failures + /// - None + /// \~english @par Classification + /// - Public + /// \~english @par Type + /// - sync only + /// \~english @par Detail + /// - Destructor, called when the object is destroyed.\n + /// set m_lValidationTag with 0 and kill process. + /// \~english @see Process + //////////////////////////////////////////////////////////////////////////////////// + virtual ~Process(); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup operator= + /// \~english @par Summary + /// - Assignment Operator + /// \~english @param [in] + /// \~english @retval Process - New Process object + /// \~english @par Preconditions + /// -no preconditions + /// \~english @par Change of the internal state + /// - None + /// \~english @par Causes of failures + /// - None + /// \~english @par Classification + /// - Public + /// \~english @par Type + /// - sync only + /// \~english @par Detail + /// - Assignment Operator, called when one object is assigned to another object. + /// \~english @see None + //////////////////////////////////////////////////////////////////////////////////// + Process& operator=(const Process& p_rhs_i); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup GetProcessId + /// \~english @par Summary + /// - get process id + /// \~english @param None + /// \~english @retval process pid - the process pid of the process running. + /// \~english @par Preconditions + /// -no preconditions + /// \~english @par Change of the internal state + /// - None + /// \~english @par Causes of failures + /// - None + /// \~english @par Classification + /// - Public + /// \~english @par Type + /// - sync only + /// \~english @par Detail + /// - This method will return to the caller the PosixBasedOS001 Specific Process ID. + /// \~english @see None + //////////////////////////////////////////////////////////////////////////////////// + int const GetProcessId(void) { + return static_cast(m_tProcessId); + } + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup SetCallingArgumentList + /// \~english @par Summary + /// - This method will set the calling argument list that this object represents + /// \~english @param [in] p_pcArgv_i + /// - const char *[] - Pointer to array of null terminated parameter list. + /// \~english @param [in] p_iArgc_i + /// - const int - - Number of arguments in the array passed. + /// \~english @retval None + /// \~english @par Preconditions + /// -no preconditions + /// \~english @par Change of the internal state + /// - put the new arguments into m_strlstArgv + /// \~english @par Causes of failures + /// - None + /// \~english @par Classification + /// - Public + /// \~english @par Type + /// - sync only + /// \~english @par Detail + /// - Set the executable filename first. This is always the 1st argument + /// - in the argument list. Then set the argument list for the process + /// - which is held in m_strlstArgv. + /// - First make sure that the argument list is empty. + /// - Once empty, put the new arguments into the list + /// \~english @see None + //////////////////////////////////////////////////////////////////////////////////// + void SetCallingArgumentList(const char *p_pcArgv_i[], const int p_iArgc_i); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup SetCallingArgumentList + /// \~english @par Summary + /// - This method will set the calling argument list that this object represents. + /// \~english @param [in] p_strlstParameters_i + /// - const StringList& - String list of arguments that will be used to start. + /// \~english @retval None. + /// \~english @par Preconditions + /// - no preconditions. + /// \~english @par Change of the internal state + /// - set m_strlstArgv with p_strlstParameters_i. + /// \~english @par Causes of failures + /// - None. + /// \~english @par Classification + /// - Public. + /// \~english @par Type + /// - sync only + /// \~english @par Detail + /// - if p_strlstParameters_i is not empty,then clear m_strlstArgv \n + /// - and set m_strlstArgv with p_strlstParameters_i. + /// \~english @see None + //////////////////////////////////////////////////////////////////////////////////// + void SetCallingArgumentList(const StringList& p_strlstParameters_i); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup GetExecutableFileName +/// \~english @par Summary +/// - Get executable file name +/// \~english @param None +/// \~english @retval Pointer +/// - Points to SS_String object that holds the path and executable file name for this process +/// \~english @par Preconditions +/// -no preconditions +/// \~english @par Change of the internal state +/// - None +/// \~english @par Causes of failures +/// - None +/// \~english @par Classification +/// - Public +/// \~english @par Type +/// - sync only +/// \~english @par Detail +/// - This method will return a pointer to the executable filename that this object represents +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////////// + const char * const GetExecutableFileName() { + return m_strFile.c_str(); + } + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup GetProcessReturnCode + /// \~english @par Summary + /// - This function will return the processes exit/return code. + /// \~english @param None + /// \~english @retval process exit code - Code for the last process to execute + /// \~english @par Preconditions + /// -no preconditions + /// \~english @par Change of the internal state + /// - set m_iReturnCode with WEXITSTATUS(iProcessReturn) + /// \~english @par Causes of failures + /// - None + /// \~english @par Classification + /// - Public + /// \~english @par Type + /// - sync only + /// \~english @par Detail + /// - This function will return the processes exit/return code.\n + /// This is not the value of ERRNO as returned by GetLastPosixBasedOS001ErrorCode(). + /// \~english @see None + //////////////////////////////////////////////////////////////////////////////////// + int GetProcessReturnCode(void); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup SetSchedulingPolicy + /// \~english @par Summary + /// - This method will change the scheduling policy for the process this object represents. + /// \~english @param [in] p_eSchedulingPolicy_i + /// - const eProcessSchedulingPolicy - Scheduling Policy for this process + /// \~english @par + /// - eProcessSchedulingPolicy + /// \~english @code + /// - enum eProcessSchedulingPolicy { + /// FIFO, A fixed priority scheduler in which the highest ready process runs until it\n + /// blocks or is preempted by a higher priority process. + /// ROUND_ROBIN, The same as FIFO, except processes at the same priority level time-slice. + /// OTHER A general time sharing scheduler in which a process decays in priority if it\n + /// consumes too much processor before blocking. It reverts to its default priority\n + /// when it blocks. Should it fail to run over a 2 second period and it has decayed\n + /// then it's boosted one priority level up to a maximum of its default priority. + /// }; + /// @endcode + /// \~english @retval None + /// \~english @par Preconditions + /// -no preconditions + /// \~english @par Change of the internal state + /// -If the result of function is not 0,then set m_iErrorCode with errno + /// - else set m_iErrorCode with 0. + /// \~english @par Causes of failures + /// - None + /// \~english @par Classification + /// - Public + /// \~english @par Type + /// - sync only + /// \~english @par Detail + /// - Attempt to change the scheduling policy for the process that this object + /// represents. If the change fails, restore the previous settings. + /// \~english @see None + //////////////////////////////////////////////////////////////////////////////////// + void SetSchedulingPolicy( + const eProcessSchedulingPolicy p_eSchedulingPolicy_i); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup GetSchedulingPolicy +/// \~english @par Summary +/// - Get currently configured scheduling policy +/// \~english @param None +/// \~english @retval FIFO - A fixed priority scheduler in which the highest ready process runs until it\n +/// blocks or is preempted by a higher priority process. +/// \~english @retval ROUND_ROBIN - The same as FIFO, except processes at the same priority level time-slice. +/// \~english @retval OTHER - A general time sharing scheduler in which a process decays in priority if it\n +/// consumes too much processor before blocking. It reverts to its default priority\n +/// when it blocks. Should it fail to run over a 2 second period and it has decayed\n +/// then it's boosted one priority level up to a maximum of its default priority. +/// \~english @par Preconditions +/// -no preconditions +/// \~english @par Change of the internal state +/// - If the result of calling function sched_getscheduler(m_tProcessId) is -1 +/// then set m_iErrorCode with errno +/// \~english @par Causes of failures +/// - None +/// \~english @par Classification +/// - Public +/// \~english @par Type +/// - sync only +/// \~english @par Detail +/// - This method will return to the caller the currently configured process scheduling policy. +/// If the result of calling function sched_getscheduler(m_tProcessId) is -1, +/// then return ROUND_ROBIN. +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////////// + eProcessSchedulingPolicy const GetSchedulingPolicy(void); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup SetPriority + /// \~english @par Summary + /// - This method will change the priority for the process this object represents. + /// \~english @param [in] p_iPriority_i + /// - int - Priority of the process + /// \~english @retval None + /// \~english @par Preconditions + /// -no preconditions + /// \~english @par Change of the internal state + /// - If the result of function sched_setparam(m_tProcessId, &cur_sch_params)\n + /// is -1,then set m_iErrorCode with errno, else set m_iErrorCode with 0. + /// \~english @par Causes of failures + /// - None + /// \~english @par Classification + /// - Public + /// \~english @par Type + /// - sync only + /// \~english @par Detail + /// - Using p_iPriority_i to change the priority for the process\n + /// this object represents,if the result of function \n + /// sched_setparam(m_tProcessId, &cur_sch_params) is -1 + /// m_iErrorCode will be seted with errno,else be seted with 0 + /// \~english @see None + //////////////////////////////////////////////////////////////////////////////////// + void SetPriority(const int p_iPriority_i); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup SetPriority Notice:Can't find the body of this function + /// \~english @par Summary + /// - This method will change the priority for the specified process ID. + /// \~english @param [in] p_iPid_i + /// - pid_t - PID of the process to change the priority + /// \~english @param [in] p_iPriority_i + /// - int - Priority of the process + /// \~english @retval None + /// \~english @par Preconditions + /// -no preconditions + /// \~english @par Change of the internal state + /// - + /// \~english @par Causes of failures + /// - + /// \~english @par Classification + /// - Public + /// \~english @par Type + /// - sync only + /// \~english @par Detail + /// -none + /// \~english @see None + //////////////////////////////////////////////////////////////////////////////////// + void SetPriority(const pid_t p_iPid_i, const int p_iPriority_i); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup IncreasePriorityByOne + /// \~english @par Summary + /// - This method will increase the priority for the process this\n + /// object represents by one. + /// \~english @param None + /// \~english @retval None + /// \~english @par Preconditions + /// -no preconditions + /// \~english @par Change of the internal state + /// - None + /// \~english @par Causes of failures + /// - None + /// \~english @par Classification + /// - Public + /// \~english @par Type + /// - sync only + /// \~english @par Detail + /// - Retrieve the current priority of the process. Check to see if already at max.\n + /// If so just return. Otherwise increase by one and set the priority... + /// \~english @see None + //////////////////////////////////////////////////////////////////////////////////// + void IncreasePriorityByOne(void); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup DecreasePriorityByOne + /// \~english @par Summary + /// - This method will decrease the priority for the process this object represents by one. + /// \~english @param None + /// \~english @retval None + /// \~english @par Preconditions + /// -no precondition + /// \~english @par Change of the internal state + /// - None + /// \~english @par Causes of failures + /// - None + /// \~english @par Classification + /// - Public + /// \~english @par Type + /// - sync only + /// \~english @par Detail + /// - Retrieve the current priority of the process. Check to see if already at minimum. + /// If so just return. Otherwise decrease by one and set the priority... + /// \~english @see None + //////////////////////////////////////////////////////////////////////////////////// + void DecreasePriorityByOne(void); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup GetPriority + /// \~english @par Summary + /// - This method will return to the caller the currently configured process priority. + /// \~english @param None + /// \~english @retval int priority - process priority + /// \~english @par Preconditions + /// -no preconditions + /// \~english @par Change of the internal state + /// - If the result of function sched_getparam(m_tProcessId, &cur_sch_params) is less than -1,\n + /// then m_iErrorCode will be seted with errno. + /// \~english @par Causes of failures + /// - None + /// \~english @par Classification + /// - Public + /// \~english @par Type + /// - sync only + /// \~english @par Detail + /// - If the result of function sched_getparam(m_tProcessId, &cur_sch_params)\n + /// is less than -1,will be return -1,else return Currently configured process priority. + /// \~english @see None + //////////////////////////////////////////////////////////////////////////////////// + int const GetPriority(void); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup SetProcessName + /// \~english @par Summary + /// - This method will set this objects process name member variable to the provided string value. + /// \~english @param [in] p_strProcessName_i + /// - SS_String - Process Name to set the m_strProcessName member variable to + /// \~english @retval None + /// \~english @par Preconditions + /// -no preconditions + /// \~english @par Change of the internal state + /// - Using p_strProcessName_i to set m_strProcessName + /// \~english @par Causes of failures + /// - None + /// \~english @par Classification + /// - Public + /// \~english @par Type + /// - sync only + /// \~english @par Detail + /// - This method will set this objects process name member variable to the provided string value.\n + /// If the user of this object wishes to register the name with PosixBasedOS001 OS,\n + /// the AttachName() method should be called. + /// \~english @see None + //////////////////////////////////////////////////////////////////////////////////// + void SetProcessName(const SS_String& p_strProcessName_i); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup GetProcessName + /// \~english @par Summary + /// - Get process name + /// \~english @param None + /// \~english @retval SS_String - Process Name + /// \~english @par Preconditions + /// -no preconditions + /// \~english @par Change of the internal state + /// - None + /// \~english @par Causes of failures + /// - None + /// \~english @par Classification + /// - Public + /// \~english @par Type + /// - sync only + /// \~english @par Detail + /// - This method will return to the caller the registered name of this process.\n + /// been registered with the OS, a NULL string will be returned. If a name has not + /// \~english @see None + //////////////////////////////////////////////////////////////////////////////////// + SS_String GetProcessName(void) const { + return m_strProcessName; + } + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup CreateProcess + /// \~english @par Summary + /// - This method will create a process with the executable provided and \n + /// mode as a calling parameter.The caller can also provide a list of arguments \n + /// that will be provided to the executable at startup. + /// \~english @param [in] p_strFile_i + /// - SS_String - Path and Filename of executable to create process for + /// \~english @param [in] p_strlstArgv_i + /// - StringList - List of ARGV values for new process + /// \~english @param [in] p_eMode_i + /// - eProcessLoadMode - Mode to create and load new process + /// \~english @param [in] p_strProcessName_i + /// - SS_String - This is the name that will be registered to the OS for this process + /// \~english @param [in] p_eSchedulingPolicy_i + /// - eProcessSchedulingPolicy + /// \~english @param [in] p_iPriority_i + /// - int - Priority for this process + /// \~english @param [in] unix_user_name + /// - char* - unix user name + /// \~english @param [in] p_lSpawnFlags_i + /// - long - Spawning flags. These are PosixBasedOS001 specific.... + /// \~english @par + /// eProcessLoadMode enum + /// \~english @code + /// - enum eProcessLoadMode { + /// WAIT, //The invoked program is loaded into available memory, is executed, + /// //and then the original program resumes execution. + /// NOWAIT, // Causes the current program to execute concurrently with the new child process. + /// }; + /// @endcode + /// \~english @par + /// eProcessSchedulingPolicy enum + /// \~english @code + /// - enum eProcessSchedulingPolicy { + /// FIFO, // A fixed priority scheduler in which the highest ready process runs until it + /// // blocks or is preempted by a higher priority process. + /// ROUND_ROBIN, // The same as FIFO, except processes at the same priority level time-slice. + /// OTHER // A general time sharing scheduler in which a process decays in priority if it + /// // consumes too much processor before blocking. It reverts to its default priority + /// // when it blocks. Should it fail to run over a 2 second period and it has decayed + /// // then it's boosted one priority level up to a maximum of its default priority. + /// }; + /// @endcode + /// \~english @retval None + /// \~english @par Preconditions + /// -no preconditions + /// \~english @par Change of the internal state + /// - set m_iErrorCode with 0 + /// set m_iReturnCode with 0 + /// set m_eProcessLoadMode with p_eMode_i; + /// set m_strFile with p_strFile_i; + /// set m_strProcessName with p_strProcessName_i; + /// use the result of function CL_ProcessCreate() to set m_tProcessId + /// \~english @par Causes of failures + /// - None + /// \~english @par Classification + /// - Public + /// \~english @par Type + /// - sync only + /// \~english @par Detail + /// -This method will create a PosixBasedOS001 process with the executable provided\n + /// and mode as a calling parameter.The caller can also provide a list of arguments\n + /// that will be provided to the executable at startup.The calling p_strProcessName \m + /// parameter is a textual name that will be associated with the newly created process\n + /// by the OS. The process state information will be maintained by this object.\n + /// Upon successful creation of the process, the scheduling policy and priority\n + /// of the process will be set to the provided values. The user can change these\n + /// values through the SetSchedulingPolicy() and SetPriority() method calls.\n + /// Using unix_user_name to get uid and gid,set uid and gid when calling\n + /// CL_ProcessCreateAttrSetUid() and CL_ProcessCreateAttrSetGid\n + /// \~english @see None + //////////////////////////////////////////////////////////////////////////////////// + void CreateProcess(const SS_String& p_strFile_i, // Path and Filename of executable to create process for + const StringList& p_strlstArgv_i, // List of ARGV values for new process + const eProcessLoadMode p_eMode_i, // Mode to create and load new process + const SS_String& p_strProcessName_i, // This is the name that will be registered to the OS for this process + const eProcessSchedulingPolicy p_eSchedulingPolicy_i, // Scheduling Policy for this process + const int p_iPriority_i, // Priority for this process + const char* unix_user_name, const long p_lSpawnFlags_i); // Spawning flags. These are PosixBasedOS001 specific.... // NOLINT (runtime/int) + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup CreateProcess + /// \~english @par Summary + /// - This method will create a PosixBasedOS001 process with the executable\n + /// provided and mode as a calling parameter. + /// \~english @param [in] p_strFile_i + /// - SS_String - Path and Filename of executable to create process for + /// \~english @param [in] p_strProcessName_i + /// - SS_String - This is the name that will be registered to the OS for this process + /// \~english @param [in] unix_user_name + /// - char* - unix user name + /// \~english @param [in] p_lSpawnFlags_i + /// - long - Posix Spawning flags. These are PosixBasedOS001 specific + /// \~english @retval None + /// \~english @par Preconditions + /// -no preconditions + /// \~english @par Change of the internal state + /// - None + /// \~english @par Causes of failures + /// - None + /// \~english @par Classification + /// - Public + /// \~english @par Type + /// - sync only + /// \~english @par Detail + /// - The caller can also provide a list of arguments that will be provided\n + /// to the executable at startup.The calling p_strProcessName parameter is a textual name\n + /// that will be associated with the newly created process by the OS.\n + /// The process state information will be maintained by this object. + /// \~english @see None + //////////////////////////////////////////////////////////////////////////////////// + void CreateProcess(const SS_String& p_strFile_i, // Path and Filename of executable to create process for + const SS_String& p_strProcessName_i, // This is the name that will be registered to the OS for this process + const char* unix_user_name = NULL, const long p_lSpawnFlags_i = // NOLINT (runtime/int) + iProcess_DEFAULT_PROCESS_FLAGS); // Spawning flags. + // These are PosixBasedOS001 specific.... + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup CreateProcess + /// \~english @par Summary + /// - This method will create a process with the executable + /// provided and mode as a calling parameter. + /// \~english @param [in] p_strFile_i + /// - SS_String - Path and Filename of executable to create + /// process for + /// \~english @param [in] p_strProcessName_i + /// - SS_String - This is the name that will be registered to the + /// OS for this process + /// \~english @param [in] p_iPriority_i + /// - int - Priority of process + /// \~english @param [in] unix_user_name + /// - char* - unix user name + /// \~english @param [in] p_lSpawnFlags_i + /// - long - Posix Spawning flags. These are PosixBasedOS001 + /// specific + /// \~english @retval None + /// \~english @par Preconditions + /// -no preconditions + /// \~english @par Change of the internal state + /// - None + /// \~english @par Causes of failures + /// - None + /// \~english @par Classification + /// - Public + /// \~english @par Type + /// - sync only + /// \~english @par Detail + /// - The caller can also provide a list of arguments that will be + /// provided\n + /// to the executable at startup.The calling p_strProcessName + /// parameter is a textual name\n + /// that will be associated with the newly created process by + /// the OS.\n + /// The process state information will be maintained by this + /// object. + /// \~english @see None + //////////////////////////////////////////////////////////////////////////////////// + void CreateProcess(const SS_String& p_strFile_i, // Path and Filename of executable to create process for + const SS_String& p_strProcessName_i, // This is the name that will be registered to the OS for this process + const int p_iPriority_i, // Priority of this process + const char* unix_user_name = NULL, const long p_lSpawnFlags_i = // NOLINT (runtime/int) + iProcess_DEFAULT_PROCESS_FLAGS); // Spawning flags. + // These are PosixBasedOS001 specific.... + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup CreateProcess +/// \~english @par Summary +/// - This method will create a process with the executable provided and mode as a calling parameter. +/// \~english @param [in] p_strFile_i +/// - SS_String - p_strFile_i Path and Filename of executable to create process for +/// \~english @param [in] unix_user_name +/// - char* - unix user name +/// \~english @param [in] p_lSpawnFlags_i +/// - long - Spawning flags. These are PosixBasedOS001 specific. +/// \~english @retval None +/// \~english @par Preconditions +/// - +/// \~english @par Change of the internal state +/// - None +/// \~english @par Causes of failures +/// - None +/// \~english @par Classification +/// - Public +/// \~english @par Type +/// - sync only +/// \~english @par Detail +/// - The caller can also provide a list of arguments that will be provided\n +/// to the executable at startup.The calling p_strProcessName parameter is a textual name\n +/// that will be associated with the newly created process by the OS.\n +/// The process state information will be maintained by this object. +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////////// + void CreateProcess(const SS_String& p_strFile_i, // Path and Filename of executable to create process for + const char* unix_user_name = NULL, const long p_lSpawnFlags_i = // NOLINT (runtime/int) + iProcess_DEFAULT_PROCESS_FLAGS); // Spawning flags. + // These are PosixBasedOS001 specific.... + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup CreateProcess +/// \~english @par Summary +/// - This method will create a process with the executable provided and mode as a calling parameter. +/// \~english @param [in] p_strFile_i +/// - SS_String - p_strFile_i Path and Filename of executable to create process for +/// \~english @param [in] p_strProcessName_i +/// - SS_String - This is the name that will be registered to the OS for this process +/// \~english @param [in] p_strlstArgv_i +/// - StringList - List of ARGV values for new process +/// \~english @param [in] unix_user_name +/// - char* - unix user name +/// \~english @param [in] p_lSpawnFlags_i +/// - long - Spawning flags. These are PosixBasedOS001 specific. +/// \~english @retval None +/// \~english @par Preconditions +/// -no preconditions +/// \~english @par Change of the internal state +/// - None +/// \~english @par Causes of failures +/// - None +/// \~english @par Classification +/// - Public +/// \~english @par Type +/// - sync only +/// \~english @par Detail +/// - The caller can also provide a list of arguments that will be provided\n +/// to the executable at startup.The calling p_strProcessName parameter is a textual name\n +/// that will be associated with the newly created process by the OS.\n +/// The process state information will be maintained by this object. +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////////// + void CreateProcess(const SS_String& p_strFile_i, // Path and Filename of executable to create process for + const SS_String& p_strProcessName_i, // This is the name that will be registered to the OS for this process + const StringList& p_strlstArgv_i, // List of ARGV values for new process + const char* unix_user_name = NULL, const long p_lSpawnFlags_i = // NOLINT (runtime/int) + iProcess_DEFAULT_PROCESS_FLAGS); // Spawning flags. + // These are PosixBasedOS001 specific.... + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup CreateProcess +/// \~english @par Summary +/// - This method will create a process with the executable provided and mode as a calling parameter. +/// \~english @param [in] p_strFile_i +/// - SS_String - Path and Filename of executable to create process for +/// \~english @param [in] p_strProcessName_i +/// - SS_String - This is the name that will be registered to the OS for this process +/// \~english @param [in] p_iPriority_i +/// - int - Priority for this process +/// \~english @param [in] p_strlstArgv_i +/// - StringList - List of ARGV values for new process +/// \~english @param [in] unix_user_name +/// - char* - unix user name +/// \~english @param [in] p_lSpawnFlags_i +/// - long - Spawning flags.These are PosixBasedOS001 specific. +/// \~english @retval None +/// \~english @par Preconditions +/// -no preconditions +/// \~english @par Change of the internal state +/// - None +/// \~english @par Causes of failures +/// - None +/// \~english @par Classification +/// - Public +/// \~english @par Type +/// - sync only +/// \~english @par Detail +/// - The caller can also provide a list of arguments that will be provided\n +/// to the executable at startup.The calling p_strProcessName parameter is a textual name\n +/// that will be associated with the newly created process by the OS.\n +/// The process state information will be maintained by this object. +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////////// + void CreateProcess(const SS_String& p_strFile_i, // Path and Filename of executable to create process for + const SS_String& p_strProcessName_i, // This is the name that will be registered to the OS for this process + const int p_iPriority_i, // Priority for this process + const StringList& p_strlstArgv_i, // List of ARGV values for new process + const char* unix_user_name = NULL, const long p_lSpawnFlags_i = // NOLINT (runtime/int) + iProcess_DEFAULT_PROCESS_FLAGS); // Spawning flags. + // These are PosixBasedOS001 specific.... + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup CreateProcess + /// \~english @par Summary + /// - This method will create a process with the executable provided and mode as a calling parameter. + /// \~english @param [in] p_strFile_i + /// - SS_String - Path and Filename of executable to create process for + /// \~english @param [in] c_argv + /// - char - This is the argument that will be registered to the OS for this process + /// \~english @param [in] environment_string + /// - char - enviroment for this process + /// \~english @param [in] cl_attr + /// - CL_ProcessAttr_t - List of ARGV values for new process + /// \~english @retval None + /// \~english @par Preconditions + /// -no preconditions + /// \~english @par Change of the internal state + /// - None + /// \~english @par Causes of failures + /// - None + /// \~english @par Classification + /// - Public + /// \~english @par Type + /// - sync only + /// \~english @par Detail + /// - The caller can also provide a list of arguments that will be provided\n + /// that will be associated with the newly created process by the OS.\n + /// The process state information will be maintained by this object. + /// \~english @see None + //////////////////////////////////////////////////////////////////////////////////// + void CreateProcess(const SS_String* p_str_file, char* const * c_argv, + char* environment_string, const CL_ProcessAttr_t *cl_attr); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup CreateProcessWait +/// \~english @par Summary +/// - This method will create a process with the executable provided. +/// \~english @param [in] p_strFile_i +/// - SS_String - Path and Filename of executable to create process for +/// \~english @retval None +/// \~english @par Preconditions +/// -no preconditions +/// \~english @par Change of the internal state +/// - None +/// \~english @par Causes of failures +/// - None +/// \~english @par Classification +/// - Public +/// \~english @par Type +/// - sync only +/// \~english @par Detail +/// - This method will create a process with the executable provided.\n +/// The process state information will be maintained by this object. +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////////// + void CreateProcessWait(const SS_String& p_strFile_i); // Path and Filename of executable to create process for + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup CreateProcessWait +/// \~english @par Summary +/// - This method will create a PosixBasedOS001 process with the executable provided. +/// \~english @param [in] p_strFile_i +/// - SS_String - Path and Filename of executable to create process for +/// \~english @param [in] p_strlstArguments_i +/// - StringList - List of process calling arguments +/// \~english @retval None +/// \~english @par Preconditions +/// -no preconditions +/// \~english @par Change of the internal state +/// - None +/// \~english @par Causes of failures +/// - None +/// \~english @par Classification +/// - Public +/// \~english @par Type +/// - sync only +/// \~english @par Detail +/// - This method will create a PosixBasedOS001 process with the executable provided.\n +/// The process state information will be maintained by this object. +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////////// + void CreateProcessWait(const SS_String& p_strFile_i, // Path and Filename of executable to create process for + const StringList& p_strlstArguments_i); // List of process calling arguments + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup KillProcess +/// \~english @par Summary +/// - This method will send the specified signal to the process represented by this object +/// \~english @param [in] signal +/// - int - signal +/// \~english @retval None +/// \~english @par Preconditions +/// -no preconditions +/// \~english @par Change of the internal state +/// - Intialize the objects m_iErrorCode member variable to 0 +/// \~english @par Causes of failures +/// - None +/// \~english @par Classification +/// - Public +/// \~english @par Type +/// - sync only +/// \~english @par Detail +/// - This method will send the specified signal to the process represented by this object.\n +/// All variables associated with this object will be initialized to a know value.\n +/// If this process has a name registered with the OS, that name will be removed. +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////////// + void KillProcess(int signal = SIGKILL); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DoesProcessExist +/// \~english @par Summary +/// -Check if the process existed +/// \~english @param None +/// \~english @retval TRUE - Process Exists +/// \~english @retval FALSE - Process does not exist +/// \~english @par Preconditions +/// -no preconditions +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~english @par Causes of failures +/// -None +/// \~english @par Classification +/// - Public +/// \~english @par Type +/// - sync only +/// \~english @par Detail +/// - This method will return a BOOLean indicating whether this process exists. +/// \~english @see +//////////////////////////////////////////////////////////////////////////////////// + BOOL DoesProcessExist(void); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DisableAutoKill +/// \~english @par Summary +/// -none +/// \~english @param None +/// \~english @retval None +/// \~english @par Preconditions +/// -no preconditions +/// \~english @par Change of the internal state +/// - set m_fAutoKill as FALSE +/// \~english @par Causes of failures +/// - None +/// \~english @par Classification +/// - Public +/// \~english @par Type +/// - sync only +/// \~english @par Detail +/// - This method will disable the Auto Kill function in the destructor,\n +/// thus letting the process whom this object represents continue running. +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////////// + void DisableAutoKill(void) { + m_fAutoKill = FALSE; + } + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup EnableAutoKill +/// \~english @par Summary +/// - Enable the Auto Kill +/// \~english @param None +/// \~english @retval None +/// \~english @par Preconditions +/// -no preconditions +/// \~english @par Change of the internal state +/// - set m_fAutoKill as TRUE +/// \~english @par Causes of failures +/// - None +/// \~english @par Classification +/// - Public +/// \~english @par Type +/// - sync only +/// \~english @par Detail +/// - This method will Enable the Auto Kill function in the destructor,\n +/// thus killing the process whom this object represents. +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////////// + void EnableAutoKill(void) { + m_fAutoKill = TRUE; + } + + private: + // Class Data Members + //--------------------------------------------- + + long m_lValidationTag; // Used to check if this is a valid // NOLINT (runtime/int) + // object or not. + + int m_cpu_assign; + pid_t m_tProcessId; // This is the process ID for this process. All command, control, + // and status gathering will use this ID. + eProcessLoadMode m_eProcessLoadMode; // This is the process load mode provided by the caller when this + // process was created. + SS_String m_strFile; // This is the executable path and file name of this process + StringList m_strlstArgv; // This is the calling parameter Argv list provided by the caller. + SS_String m_strProcessName; // This is the name that was registered to the OS for process identification + + int m_iErrorCode; // This was the returned PosixBasedOS001 error code for the last call. The programmer + // can look at this error code if an error was detected and an + // exception was thrown. + BOOL m_fAutoKill; // Used to indicate to destructor to kill the process whom this object + // represents on exit. + int m_iReturnCode; + + ////////////////////////////////////////////////////////////////////// + /// Copy + /// + /// Copies data members from the specified object to this object. + /// No attempt is made to free dynamically allocated objects within + /// this object (you must do that before calling this function). + /// + /////////////////////////////////////////////////////////////////////// + void Copy(const Process& p_rhs_i); + + //////////////////////////////////////////////////////////////////////////////////////////////////// + /// ConvertToPosixBasedOS001SchedularPolicy + /// This method will return to the caller the equivalent PosixBasedOS001 schedular policy for the process + /// that this object represents + /// + /// + /// Calling Arguments: + /// Scheduling Policy + /// + /// \return policy + /// FIFO, A fixed priority scheduler in which the highest ready process runs until it + /// blocks or is preempted by a higher priority process. + /// ROUND_ROBIN, The same as FIFO, except processes at the same priority level time-slice. + /// OTHER A general time sharing scheduler in which a process decays in priority if it + /// consumes too much processor before blocking. It reverts to its default priority + /// when it blocks. Should it fail to run over a 2 second period and it has decayed + /// then it's boosted one priority level up to a maximum of its default priority. + ////////////////////////////////////////////////////////////////////////////////////////////////////////// + int const ConvertToPosixBasedOS001SchedularPolicy( + const eProcessSchedulingPolicy p_eSchedulingPolicy_i); + + //////////////////////////////////////////////////////////////////////////////////////////////////// + /// ConvertFromPosixBasedOS001SchedularPolicy + /// + /// This method will return to the caller the eProcessSchedulingPolicy based on the PosixBasedOS001 schedular + /// policy for the process that this object represents + /// + /// + /// Calling Arguments: + /// PosixBasedOS001 Scheduling Policy + /// + /// \return policy + /// FIFO, A fixed priority scheduler in which the highest ready process runs until it + /// blocks or is preempted by a higher priority process. + /// ROUND_ROBIN, The same as FIFO, except processes at the same priority level time-slice. + /// OTHER A general time sharing scheduler in which a process decays in priority if it + /// consumes too much processor before blocking. It reverts to its default priority + /// when it blocks. Should it fail to run over a 2 second period and it has decayed + /// then it's boosted one priority level up to a maximum of its default priority. + /////////////////////////////////////////////////////////////////////////////////////////////////////// + eProcessSchedulingPolicy const ConvertFromPosixBasedOS001SchedularPolicy( + const int p_iPosixBasedOS001chedulingPolicy_i); + + //////////////////////////////////////////////////////////////////////////////////////////////////// + /// \ingroup SS_SystemServicesIf + //////////////////////////////////////////////////////////////////////////////////////////////////// + /// \brief Check environment variable MOCK_LIBRARY where Mock Library Name to set in LD_PRELOAD is set + /// and output character string to set in LD_PRELOAD if there is setting. + /// \return + //////////////////////////////////////////////////////////////////////////////////////////////////// + void CheckLdPreLoad(SS_String *process_path, char *environment_string); + + //////////////////////////////////////////////////////////////////////////////////////////////////// + /// \ingroup SS_SystemServicesIf + //////////////////////////////////////////////////////////////////////////////////////////////////// + /// \brief Acquire the character string of the environment variable and set it in String Vector + /// and return in a pointer of Vector. + /// \return vector pointer + //////////////////////////////////////////////////////////////////////////////////////////////////// + std::vector *GetEnvironVector(void); +// ---------------------------------------- +// ---------------- End ------------------- +}; +#endif // NOLINT (build/header_guard) + +/** @}*/ +/** @}*/ +/** @}*/ diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_system_timer.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_system_timer.h new file mode 100755 index 0000000..f95d1f9 --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_system_timer.h @@ -0,0 +1,670 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/////////////////////////////////////////////////////////////////////////////// +/// brief This file supports a generic timer abstraction. +/////////////////////////////////////////////////////////////////////////////// + +/** + * @file ss_system_timer.h + */ + +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup system_manager + * @ingroup system_service + * @{ + */ + + +#ifndef SS_SYSTEM_TIMER_H_ // NOLINT (build/header_guard) +#define SS_SYSTEM_TIMER_H_ + +#include +#include +#include +#include + + +const PCSTR TIMER_SERVICE_NAME = "TIMER"; + + +/** + * @class Timer + * \~english @brief Timer + * \~english @par Brief Introduction + * Class to provide Timer function + * + */ +class Timer { + public: + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup Timer + /// \~english @par Summary + /// Default constructor of Timer class. + /// \~english @param None + /// \~english @retval None + /// \~english @par Preconditions + /// - None. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// None + /// \~english @par Classification + /// Public + /// \~english @par Type + /// sync only + /// \~english @par Detail + /// To generate a Timer class, and initialize member variables. \n + /// After the constructor, be sure to call the Initialize. \n + /// \~english @see ~Timer, Initialize + //////////////////////////////////////////////////////////////////////////////////// + Timer(); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup Timer + /// \~english @par Summary + /// Constructor of Timer class. + /// \~english @param [in] hdl + /// HANDLE - HANDLE for Application + /// \~english @param [in] id + /// UI_32 - Timer ID corresponding to the callback function + /// \~english @param [in] CbFn + /// CbFuncPtr - Pointer to a callback function to be called when the timer expires + /// \~english @retval None + /// \~english @par Preconditions + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop etc) has been + /// done. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// None + /// \~english @par Classification + /// Public + /// \~english @par Type + /// None + /// \~english @par Detail + /// To generate a Timer class. \n + /// To initialize timer information structure of the member variables. \n + /// To initialize the member variables of the class with an argument. Therefore, there is no need to call the + /// Initialize() function when using this constructor. + /// \~english @see ~Timer, Initialize + //////////////////////////////////////////////////////////////////////////////////// + Timer(HANDLE hdl, UI_32 id, CbFuncPtr CbFn); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup ~Timer + /// \~english @par Summary + /// Destructor of Timer class. + /// \~english @param None + /// \~english @retval None + /// \~english @par Preconditions + /// - None. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// None + /// \~english @par Classification + /// Public + /// \~english @par Type + /// None + /// \~english @par Detail + /// To delete a Timer class. \n + /// If the initialization is complete state, to end by calling the Shutdown(). + /// \~english @see Timer + //////////////////////////////////////////////////////////////////////////////////// + virtual ~Timer(); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup Initialize + /// \~english @par Summary + /// Initialization of the Timer class. + /// \~english @param [in] hApp + /// HANDLE - HANDLE for Application + /// \~english @param [in] id + /// UI_32 - Timer ID corresponding to the callback function + /// \~english @param [in] CbFn + /// CbFuncPtr - Pointer to a callback function to be called when the timer expires + /// \~english @retval TRUE Initialization success + /// \~english @retval FALSE Initialization failed + /// \~english @par Preconditions + /// - Generation/initialization of Dispatcher for the Application (FrameworkunifiedCreateDispatcherWithoutLoop etc) has been + /// done. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - Handle(hApp) that has been specified by the argument is NULL. [FALSE] + /// - Timer ID(id) that has been specified by the argument is 0. [FALSE] + /// - Pointer to a callback function that has been specified by the argument is NULL. [FALSE] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Sync only(None communication) + /// \~english @par Detail + /// To initialize the member variables of the following. + /// - HANDLE for Application + /// - Timer information structure + /// - Pointer to a callback function + /// - HANDLE of message queue + /// - Timer Object + /// \~english @par + /// A timer class to initialization completion state. + /// \~english @see ~Timer, Shutdown + //////////////////////////////////////////////////////////////////////////////////// + BOOL Initialize(HANDLE hApp, UI_32 id, CbFuncPtr CbFn); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup Reinitialize + /// \~english @par Summary + /// - Reinitialize the timer by specifying a timer value information + /// \~english @param [in] id + /// UI_32 - timer id that you want to reinitialize + /// \~english @retval None + /// \~english @par Preconditions + /// - That has been initialized in the Initialize(). + /// \~english @par Change of the internal state + /// - set m_tTi.iCmd with id + /// - using the result of function McOpenSender(FrameworkunifiedGetAppName(m_hApp)) to set m_hSnd + /// - create a timer and give the handle to m_hTmr + /// - set m_bInit with TRUE + /// \~english @par Causes of failures + /// - None + /// \~english @par Classification + /// - Public + /// \~english @par Type + /// - Method only + /// \~english @par Detail + /// Reinitialize the timer by specifying a timer value information, \n + /// create a new timer if it is not initialize. + /// \~english @see Initialize + //////////////////////////////////////////////////////////////////////////////////// + void Reinitialize(UI_32 id); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup Shutdown + /// \~english @par Summary + /// The end of the Timer class. + /// \~english @param None + /// \~english @retval None + /// \~english @par Preconditions + /// - That has been initialized in the Initialize(). + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// None + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Sync only(None communication) + /// \~english @par Detail + /// In the case of initialization completion state, it is completed by the following process.\n + /// - Stop the Timer + /// - Delete Timer Object + /// - Set NULL to a timer object variable + /// - Close message queue + /// - Set NULL to a message queue HANDLE variable + /// - The timer class to uninitialized. + /// \~english @par + /// \nIf you want to re-use this timer, call again Initialize() function. + /// \~english @see Timer, Initialize + //////////////////////////////////////////////////////////////////////////////////// + void Shutdown(); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup SetTime + /// \~english @par Summary + /// Set the timer value information. + /// \~english @param [in] ss + /// UI_32 - Timeout expiration time(sec) + /// \~english @param [in] sms + /// UI_32 - Timeout expiration time(nano sec) + /// \~english @param [in] rs + /// UI_32 - Timeout expiration time at the time of repeat(sec) + /// \~english @param [in] rms + /// UI_32 - Timeout expiration time at the time of repeat(nano sec) + /// \~english @retval TRUE Setting success + /// \~english @retval FALSE Setting failed + /// \~english @par Preconditions + /// - That has been initialized in the Initialize(). + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - Not been initialized. [FALSE] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Sync only(None communication) + /// \~english @par Detail + /// Set a timer value information specified by the argument to the timer information structure. + /// \~english @see Timer + //////////////////////////////////////////////////////////////////////////////////// + BOOL SetTime(UI_32 ss, UI_32 sms, UI_32 rs, UI_32 rms); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup Start + /// \~english @par Summary + /// The start of the timer by specifying a timer value information. + /// \~english @param [in] ss + /// UI_32 - Timeout expiration time(sec) + /// \~english @param [in] sms + /// UI_32 - Timeout expiration time(nano sec) + /// \~english @param [in] rs + /// UI_32 - Timeout expiration time at the time of repeat(sec) + /// \~english @param [in] rms + /// UI_32 - Timeout expiration time at the time of repeat(nano sec) + /// \~english @retval TRUE Stop success + /// \~english @retval FALSE Stop failed + /// \~english @par Preconditions + /// - That has been initialized in the Initialize(). + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - Not been initialized. [FALSE] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Method only + /// \~english @par Detail + /// In the case of initialization completion state, start the timer. \n + /// After timer start, again, if you start the timer, it does not work guarantee. + /// \~english @see Stop + //////////////////////////////////////////////////////////////////////////////////// + BOOL Start(UI_32 ss, UI_32 sms, UI_32 rs, UI_32 rms); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup Start + /// \~english @par Summary + /// Stop the timer. + /// \~english @param None + /// \~english @retval TRUE Stop success + /// \~english @retval FALSE Stop failed + /// \~english @par Preconditions + /// - That has been initialized in the Initialize(). + /// - Set the timeout value in SetTime(). + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - Not been initialized. [FALSE] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Method only + /// \~english @par Detail + /// In the case of initialization completion state, start the timer. \n + /// After timer start, again, if you start the timer, it does not work guarantee. + /// \~english @see SetTime, Stop + //////////////////////////////////////////////////////////////////////////////////// + BOOL Start(); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup Stop + /// \~english @par Summary + /// Stop the timer. + /// \~english @param None + /// \~english @retval TRUE Stop success + /// \~english @retval FALSE Stop failed + /// \~english @par Preconditions + /// - That has been initialized in the Initialize(). + /// - The timer has been started + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// - Not been initialized. [FALSE] + /// \~english @par Classification + /// Public + /// \~english @par Type + /// Method only + /// \~english @par Detail + /// In the case of initialization completion state, stop the timer. \n + /// After the timer has stopped, again, if you stop the timer, it does not do anything to just processing + /// Internal error occurs. + /// \~english @see Start + //////////////////////////////////////////////////////////////////////////////////// + BOOL Stop(); + + private: + BOOL m_bInit; /// flag that indicated if the class has been initialized or not + HANDLE m_hApp; /// refs to an applications hApp handle + HANDLE m_hSnd; /// refs to applications message queue + HANDLE m_hTmr; /// refs to a timer handle + NSTimerInfo m_tTi; /// timer parameters + CbFuncPtr m_CbFn; /// pointer to the callback method +}; + +/** @}*/ // end of Timer +/** @}*/ // end of system_manager +/** @}*/ // end of SystemService +/** @}*/ // end of BaseSystem + +/** + * @class TimerCtrl + * \~english @brief TimerCtrl + * \~english @par Brief Introduction + * Class to provide TimerCtrl function + * + */ +class TimerCtrl { + public: + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup TimerCtrl + /// \~english @par Summary + /// Default Constructor, called when the class is instantiated. + /// \~english @param None + /// \~english @retval None + /// \~english @par Preconditions + /// + /// \~english @par Change of the internal state + /// - set m_hApp as NULL,m_nTimersMax as DEFAULT_NTIMERS + /// \~english @par Causes of failures + /// None + /// \~english @par Classification + /// Public + /// \~english @par Type + /// sync only + /// \~english @par Detail + /// To generate a TimerCtrl class. \n + /// After the constructor, be sure to call the Initialize. \n + /// \~english @see ~TimerCtrl, Initialize + //////////////////////////////////////////////////////////////////////////////////// + TimerCtrl(); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup TimerCtrl + /// \~english @par Summary + /// Constructor, called when the class is instantiated. + /// \~english @param [in] ntimers + /// UI_32 - number of timers objects in the pool + /// \~english @retval None + /// \~english @par Preconditions + /// + /// \~english @par Change of the internal state + /// - initialize var m_hApp and m_nTimersMax + /// \~english @par Causes of failures + /// None + /// \~english @par Classification + /// Public + /// \~english @par Type + /// sync only + /// \~english @par Detail + /// To generate a TimerCtrl class. \n + /// After the constructor, be sure to call the Initialize. \n + /// \~english @see ~TimerCtrl, Initialize + //////////////////////////////////////////////////////////////////////////////////// + TimerCtrl(UI_32 ntimers); // NOLINT (runtime/explicit) + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup Initialize + /// \~english @par Summary + /// Initialize the class after instantiation. + /// \~english @param [in] hApp + /// HANDLE - HANDLE to you applications hApp. + /// \~english @retval None + /// \~english @par Preconditions + /// + /// \~english @par Change of the internal state + /// - initialize var m_hApp and m_aTimers + /// \~english @par Causes of failures + /// None + /// \~english @par Classification + /// Public + /// \~english @par Type + /// sync only + /// \~english @par Detail + /// The function is to initialize the member val of the class with param hApp,\n + /// if hApp is not null, then set m_hApp with hApp and initialize m_aTimers. + /// \~english @see ~TimerCtrl, Initialize + //////////////////////////////////////////////////////////////////////////////////// + VOID Initialize(HANDLE hApp); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup Shutdown + /// \~english @par Summary + /// handle something when shut down timer control. + /// \~english @param None + /// \~english @retval None + /// \~english @par Preconditions + /// - That has been initialized in the Initialize().. + /// \~english @par Change of the internal state + /// - Clear m_aTimer,shut down timer in m_rTimer and delete it.clear m_rTimer. + /// \~english @par Causes of failures + /// None + /// \~english @par Classification + /// Public + /// \~english @par Type + /// sync only + /// \~english @par Detail + /// Completely shuts down the timer control, this method calls Stop, cleans up. You must call + /// Initialize again if you want reuse this class. + /// \~english @see ~TimerCtrl, Initialize + //////////////////////////////////////////////////////////////////////////////////// + VOID Shutdown(); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup CreateTimer + /// \~english @par Summary + /// get a timer control from pool + /// \~english @param [in] CbFn + /// CbFn - Pointer to a callback function to be called when the timer expires + /// \~english @retval Timer id - If id is in m_aTimers + /// \~english @retval 0 - If id is not in m_aTimers + /// \~english @par Preconditions + /// - That has been initialized in the Initialize(). + /// \~english @par Change of the internal state + /// - insert one Timer to m_rTimers + /// \~english @par Causes of failures + /// None + /// \~english @par Classification + /// Public + /// \~english @par Type + /// sync only + /// \~english @par Detail + /// gets a the first id from m_aTimers if m_aTimer is not empty, using this id to create a timer,\n + /// put this timer into m_rTimers,and return the id. + /// \~english @see DeleteTimer + //////////////////////////////////////////////////////////////////////////////////// + UI_32 CreateTimer(CbFuncPtr CbFn); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup DeleteTimer + /// \~english @par Summary + /// delete a timer from m_rTimers using the param. + /// \~english @param [in] id + /// UI_32 - timer id that you want to delete + /// \~english @retval Timer id -If id is in m_aTimers + /// \~english @retval 0 - If id is not in m_aTimers + /// \~english @par Preconditions + /// - That has been initialized in the Initialize(). + /// \~english @par Change of the internal state + /// - delete one Timer to m_rTimers that id is the param.\n + /// and put id of the timer into m_aTimers. + /// \~english @par Causes of failures + /// None + /// \~english @par Classification + /// Public + /// \~english @par Type + /// sync only + /// \~english @par Detail + /// delete your timer and returns it's id to the pool of timers. + /// \~english @see CreateTimer + //////////////////////////////////////////////////////////////////////////////////// + UI_32 DeleteTimer(UI_32 id); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup SetTimer + /// \~english @par Summary + /// Sets the timer timeout values + /// \~english @param [in] id + /// UI_32 - timer id that you want to set + /// \~english @param [in] ss + /// UI_32 - Start time in seconds + /// \~english @param [in] sms + /// UI_32 - Start time in milliseconds + /// \~english @param [in] rs + /// UI_32 - Repeat time in seconds + /// \~english @param [in] rms + /// UI_32 - Repeat time in milliseconds + /// \~english @retval Timer id - If id is in m_aTimers + /// \~english @retval 0 - If id is not in m_aTimers + /// \~english @par Preconditions + /// - That has been initialized in the Initialize(). + /// \~english @par Change of the internal state + /// - set the timer infomation in m_rTimers with ss, sms, rs, rms + /// \~english @par Causes of failures + /// None + /// \~english @par Classification + /// Public + /// \~english @par Type + /// sync only + /// \~english @par Detail + /// using ss, sms, rs, rms to set the timer infomation, timer'is is param. + /// \~english @see None + //////////////////////////////////////////////////////////////////////////////////// + UI_32 SetTimer(UI_32 id, UI_32 ss, UI_32 sms, UI_32 rs, UI_32 rms); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup StartTimer + /// \~english @par Summary + /// Sets the timer timeout values and starts the timer. + /// \~english @param [in] id + /// UI_32 - timer id that you want to start + /// \~english @param [in] ss + /// UI_32 - Timeout expiration time(sec) + /// \~english @param [in] sms + /// UI_32 - Timeout expiration time(nano sec) + /// \~english @param [in] rs + /// UI_32 - Timeout expiration time at the time of repeat(sec) + /// \~english @param [in] rms + /// UI_32 - Timeout expiration time at the time of repeat(nano sec) + /// \~english @retval Timer id - If id is in m_aTimers + /// \~english @retval 0 - If id is not in m_aTimers + /// \~english @par Preconditions + /// - That has been initialized in the Initialize(). + /// \~english @par Change of the internal state + /// - None + /// \~english @par Causes of failures + /// - None + /// \~english @par Classification + /// Public + /// \~english @par Type + /// sync only + /// \~english @par Detail + /// In the case of initialization completion state, start the timer that id is the first param. \n + /// After timer start, again, if you start the timer, it does not work guarantee. + /// \~english @see Stop + //////////////////////////////////////////////////////////////////////////////////// + UI_32 StartTimer(UI_32 id, UI_32 ss, UI_32 sms, UI_32 rs, UI_32 rms); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup StartTimerMulti + /// \~english @par Summary + /// The start of the timer by specifying a timer value information and reinitialize timer id. + /// \~english @param [in] id + /// UI_32 - timer id that you want to start + /// \~english @param [in] ss + /// UI_32 - Timeout expiration time(sec) + /// \~english @param [in] sms + /// UI_32 - Timeout expiration time(nano sec) + /// \~english @param [in] rs + /// UI_32 - Timeout expiration time at the time of repeat(sec) + /// \~english @param [in] rms + /// UI_32 - Timeout expiration time at the time of repeat(nano sec) + /// \~english @param [in] subId + /// UI_32 - using subId to reinitialize timer id + /// \~english @retval Timer id - If id is in m_aTimers + /// \~english @retval 0 - If id is not in m_aTimers + /// \~english @par Preconditions + /// - That has been initialized in the Initialize(). + /// \~english @par Change of the internal state + /// - None + /// \~english @par Causes of failures + /// - None + /// \~english @par Classification + /// Public + /// \~english @par Type + /// sync only + /// \~english @par Detail + /// Finds the timer by specifying, shut down the timer, \n + /// and reinitialize it using new id of this timer and starts the timer + /// \~english @see Stop + //////////////////////////////////////////////////////////////////////////////////// + UI_32 StartTimerMulti(UI_32 id, UI_32 ss, UI_32 sms, UI_32 rs, UI_32 rms, UI_32 subId); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup StartTimer + /// \~english @par Summary + /// Start the timer. + /// \~english @param [in] id + /// UI_32 - timer id that you want to start + /// \~english @retval Timer id - If id is in m_aTimers + /// \~english @retval 0 - If id is in not m_aTimers + /// \~english @par Preconditions + /// - That has been initialized in the Initialize(). + /// - Set the timeout value in SetTimer(). + /// \~english @par Change of the internal state + /// - None + /// \~english @par Causes of failures + /// - None + /// \~english @par Classification + /// Public + /// \~english @par Type + /// sync only + /// \~english @par Detail + /// In the case of initialization completion state, \n + /// start of the timer by specifying a timer value information. + /// \~english @see SetTime, Stop + //////////////////////////////////////////////////////////////////////////////////// + UI_32 StartTimer(UI_32 id); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup StopTimer + /// \~english @par Summary + /// Stop the timer. + /// \~english @param [in] id + /// UI_32 - timer id that you want to stop + /// \~english @retval Timer id - If id is in m_aTimers + /// \~english @retval 0 - If id is not in m_aTimers + /// \~english @par Preconditions + /// - That has been initialized in the Initialize(). + /// - Set the timeout value in SetTimer(). + /// \~english @par Change of the internal state + /// - None + /// \~english @par Causes of failures + /// - None + /// \~english @par Classification + /// Public + /// \~english @par Type + /// sync only + /// \~english @par Detail + /// In the case of start completion state, \n + /// stop of the timer by specifying a timer value information + /// \~english @see SetTimer, StartTimer + //////////////////////////////////////////////////////////////////////////////////// + UI_32 StopTimer(UI_32 id); + + private: + HANDLE m_hApp; /// + UI_32 m_nTimersMax; /// + std::list m_aTimers; /// + std::map m_rTimers; /// +}; + + +#endif /* SS_SYSTEM_TIMER_H_ */ // NOLINT (build/header_guard) diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_system_types.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_system_types.h new file mode 100755 index 0000000..adcaf2b --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_system_types.h @@ -0,0 +1,36 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/////////////////////////////////////////////////////////////////////////////// +/// \ingroup tag_SystemServicesIf +/// \brief This file supports string vector type definitions. +/// +/////////////////////////////////////////////////////////////////////////////// +/** + * @file + */ +#ifndef SS_SYSTEM_TYPES_H_ // NOLINT (build/header_guard) +#define SS_SYSTEM_TYPES_H_ + +#include +#include + + +typedef std::string SS_String; +typedef std::vector< std::string > StringList; +typedef std::vector< std::string >::iterator StringListIter; + +#endif /* SS_SYSTEM_TYPES_H_ */ // NOLINT (build/header_guard) diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_templates.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_templates.h new file mode 100755 index 0000000..581e616 --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_templates.h @@ -0,0 +1,303 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/////////////////////////////////////////////////////////////////////////////// +/// This file supports templates for high use common tasks. +/////////////////////////////////////////////////////////////////////////////// +/** + * @file ss_templates.h + */ + +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup system_manager + * @ingroup system_service + * @{ + */ +#ifndef __SS_TEMPLATES_H__ // NOLINT (build/header_guard) +#define __SS_TEMPLATES_H__ + +#include +#include +#include +#include +#include +#include +#include "system_service/ss_system_types.h" +#include "system_service/ss_string_maps.h" + +#ifndef ZONE_ERR +#define ZONE_ERR ZONEMASK(31) +#endif + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup ReadMsg +/// \~english @par Summary +/// check the data information of msg. +/// \~english @param [in] hApp +/// HANDLE - HANDLE Application +/// \~english @param [in] Data +/// T - The reference to the Data memory location +/// \~english @param [in] f_eRetrieveMethod +/// ESMRetrieveTypes - The msg retrieval method ( release or retain ) +/// \~english @par +/// T template type +/// \~english @retval eFrameworkunifiedStatusOK Success +/// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle +/// \~english @retval eFrameworkunifiedStatusInvldParam Invalid parameter +/// \~english @par Preconditions +/// - +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~english @par Causes of failures +/// - System Manager handle for the session is NULL. [eFrameworkunifiedStatusInvldHandle] +/// - data'size is not corruct. [eFrameworkunifiedStatusInvldParam] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Method only +/// \~english @par Detail +/// Check hApp ptr, msg size, msg reception, read msg if all ok +/// \~english @par +/// eFrameworkunifiedStatus:Result +/// - eFrameworkunifiedStatusOK:Success +/// - Except eFrameworkunifiedStatusOK:Fail +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////////// +template EFrameworkunifiedStatus ReadMsg( + HANDLE hApp, + T &Data, // NOLINT (runtime/references) + ESMRetrieveTypes f_eRetrieveMethod = eSMRRelease) { + EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK; + if ( NULL == hApp ) { + FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, " Error: NULL = hApp"); + l_eStatus = eFrameworkunifiedStatusInvldHandle; + } else if (sizeof(Data) != FrameworkunifiedGetMsgLength(hApp)) { + FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__ + , " Error: message buffer sizes mismatch: expected %ld, received %d" + , sizeof(Data), FrameworkunifiedGetMsgLength(hApp)); + l_eStatus = eFrameworkunifiedStatusInvldParam; + } else if ( eFrameworkunifiedStatusOK != (l_eStatus = + FrameworkunifiedGetMsgDataOfSize(hApp, (PVOID)&Data, sizeof(Data), f_eRetrieveMethod))) { + FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__ + , " Error: FrameworkunifiedGetMsgDataOfSize() errored: 0x%x", l_eStatus); + } + return l_eStatus; +} // End of template EFrameworkunifiedStatus ReadMsg () + /* Copy & paste easy-to-use little 't' template + // ReadMsg(): * + // Check hApp ptr, msg size, msg reception, read msg if all ok. * + // Report any errors found. * + // * + if ( eFrameworkunifiedStatusOK != ( l_eStatus = ReadMsg + ( hApp + , Data ))) + { + LOG_ERROR("ReadMsg()"); + } + else + */ + +//**************************************************************************** +/*! + \def LOG_ERROR(pStr) + Log pStr and l_eStatus + */ +#define LOG_ERROR(pStr) \ + FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__ \ + , " Error: %s errored: %d/'%s'" \ + , pStr \ + , l_eStatus \ + , GetStr(static_cast(l_eStatus)).c_str()); + +//**************************************************************************** +/*! + \def LOG_ERROR(pStr) + Log pStr and l_eStatus + */ +#define LOG_SUCCESS(pStr) \ + FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " %s successful", pStr); + +//**************************************************************************** +/*! + \def LOG_STATUS(l_eStatus,pStr) + Log pStr and success or failure. Include l_eStatus when not successful. + */ +#define LOG_STATUS(l_eStatus, pStr) \ + if ( eFrameworkunifiedStatusOK != l_eStatus ) \ + { \ + LOG_ERROR(pStr); \ + } \ + else \ + { \ + LOG_SUCCESS(pStr); \ + } // End of #define LOG_STATUS(l_eStatus,pStr) + +//**************************************************************************** +/*! + \def CALL_AND_LOG_STATUS(fnc) + Call the function and log the returned EFrameworkunifiedStatus. + */ +#define CALL_AND_LOG_STATUS(fnc) \ + l_eStatus = (fnc); \ + LOG_STATUS(l_eStatus, #fnc) + // End of #define CALL_AND_LOG_STATUS(fnc) + +//**************************************************************************** +/*! + \def LOG_STATUS_IF_ERRORED(l_eStatus, pStr) + Log pStr on failure, including EFrameworkunifiedStatus. + */ +#define LOG_STATUS_IF_ERRORED(l_eStatus, pStr) \ + if ( eFrameworkunifiedStatusOK != l_eStatus ) \ + { \ + LOG_ERROR(pStr); \ + } // End of #define LOG_STATUS_IF_ERRORED(l_eStatus,pStr) + +//**************************************************************************** +/*! + \def CALL_AND_LOG_STATUS_IF_ERRORED(fnc) + Call the function and log the returned EFrameworkunifiedStatus on failure. + */ +#define CALL_AND_LOG_STATUS_IF_ERRORED(fnc) \ + l_eStatus = (fnc); \ + LOG_STATUS_IF_ERRORED(l_eStatus, #fnc) + // End of #define CALL_AND_LOG_STATUS_IF_ERRORED(fnc) + +//**************************************************************************** +/*! + \def MAP_ENTRY( f_map, f_enum ) + Simplify initializing string map entry. + + Use to set a map entry's key and value to the specified enum and the enum's + literal text ( i.e., stringified ) equivalent. + */ +#define MAP_ENTRY(f_map, f_enum) \ + f_map[ f_enum ] = #f_enum + +//**************************************************************************** +/*! + \def INTERFACEUNIFIEDLOG_RECEIVED_FROM + Log whom we received message or notification from. + + Use this macro to ensure that the string "Received from" is uniformly + logged; this string can be grepped on to find when/where callback functions + were invoked. + */ +#define INTERFACEUNIFIEDLOG_RECEIVED_FROM(hApp) \ + FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " Received from %s", FrameworkunifiedGetMsgSrc(hApp)) + +//**************************************************************************** +/*! + \def INTERFACEUNIFIEDLOG_WHEN_COMPILED + Log when this file was compiled. + + Useful when overlaying a delivered object file ( from an official build ) with + a debug-built obj file - verifies that the debug file did indeed get loaded. + */ +#define INTERFACEUNIFIEDLOG_WHEN_COMPILED \ + FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " %s was compiled at %s @ %s", \ + __FILE__, __DATE__, __TIME__); + + +#define SS_ASERT(x) \ + if (!(x)) { \ + FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "SS_ASSERT"); \ + } + +#define SS_ASERT_ERRNO(x) \ + if (!(x)) { \ + FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "SS_ASSERT %d:%s", errno, strerror(errno)); \ + } + +#define SS_ASERT_LOG(x, fmt, ...) \ + if (!(x)) { \ + FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "SS_ASSERT " fmt, ## __VA_ARGS__); \ + } + +#define SS_STATIC_ASERT(expr) \ + { \ + char STATIC_ASSERTION_FAILED[(expr) ? 1 : -1]; \ + (void)STATIC_ASSERTION_FAILED; \ + } + +/** + * @class EnumStringMap + * \~english @brief EnumStringMap + * \~english @par Brief Introduction + * Class to provide EnumStringMap template function + * + */ +template & m_strMap)> class EnumStringMap { // NOLINT (runtime/references) +public: + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup EnumStringMap + /// \~english @par Summary + /// Default constructor of EnumStringMap class. + /// \~english @param None + /// \~english @retval None + /// \~english @par Preconditions + /// - None. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// None + /// \~english @par Classification + /// Public + /// \~english @par Type + /// None + /// \~english @par Detail + /// To generate a EnumStringMap class, and initialize member variables. \n + /// After the constructor, be sure to call the Initialize. \n + /// \~english @see ~EnumStringMap, Initialize + //////////////////////////////////////////////////////////////////////////////////// + EnumStringMap() { + (*fp)(m_strMap); + } + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup ~EnumStringMap + /// \~english @par Summary + /// + /// \~english @param None + /// \~english @retval None + /// \~english @par Preconditions + /// - None. + /// \~english @par Change of the internal state + /// - The internal state is not changed. + /// \~english @par Causes of failures + /// None + /// \~english @par Classification + /// Public + /// \~english @par Type + /// None + /// \~english @par Detail + /// To delete a EnumStringMap object. \n + /// \~english @see EnumStringMap + //////////////////////////////////////////////////////////////////////////////////// + ~EnumStringMap() {} + SS_String GetStr( enumT f_enum) { return m_strMap[ f_enum ];} +private: + std::map m_strMap; +}; +// End of template & m_strMap)> class EnumStringMap + +#endif /* __SS_TEMPLATES_H__ */ // NOLINT (build/header_guard) + diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_test_clients.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_test_clients.h new file mode 100755 index 0000000..a50e61f --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_test_clients.h @@ -0,0 +1,31 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/////////////////////////////////////////////////////////////////////////////// +/// \ingroup system_manager +/// \file ss_test_clients.h +/// \brief This file supports test client queue names. +/// +/////////////////////////////////////////////////////////////////////////////// + +#ifndef SS_TC_SERVICES_H_ // NOLINT (build/header_guard) +#define SS_TC_SERVICES_H_ + + +#define TC_Power "PwrTestClient" +#define TC_SysManager "SMTestClient" + +#endif /* SS_TC_SERVICES_H_ */ // NOLINT (build/header_guard) diff --git a/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_version.h b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_version.h new file mode 100755 index 0000000..856f334 --- /dev/null +++ b/video_in_hal/systemservice/interface_unified/library/include/system_service/ss_version.h @@ -0,0 +1,33 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/////////////////////////////////////////////////////////////////////////////// +/// \ingroup sys_resource +/// \file ss_version.h +/// \brief This file supports System Manager version number management. +/// +/////////////////////////////////////////////////////////////////////////////// + +#ifndef SS_VERSION_H__ // NOLINT (build/header_guard) +#define SS_VERSION_H__ + +#define MAJORNO 0x01 +#define MINORNO 0x00 +#define REVISION 0x01 + +#endif // SS_VERSION_H__ // NOLINT (build/header_guard) + + -- cgit 1.2.3-korg