diff options
Diffstat (limited to 'stub/diag_record')
-rw-r--r-- | stub/diag_record/LICENSE | 177 | ||||
-rw-r--r-- | stub/diag_record/Makefile | 19 | ||||
-rw-r--r-- | stub/diag_record/library_dummy_drec/Makefile | 48 | ||||
-rw-r--r-- | stub/diag_record/library_dummy_drec/include/stub/MM_DREC_API.h | 2203 | ||||
-rw-r--r-- | stub/diag_record/library_dummy_drec/src/MM_DREC_API.cpp | 450 | ||||
-rw-r--r-- | stub/diag_record/library_record_api/Makefile | 47 | ||||
-rw-r--r-- | stub/diag_record/library_record_api/include/stub/PFDREC_API.h | 975 | ||||
-rw-r--r-- | stub/diag_record/library_record_api/libDiagRecordAPI.ver | 44 | ||||
-rw-r--r-- | stub/diag_record/library_record_api/src/DiagRecordAPI.cpp | 178 | ||||
-rw-r--r-- | stub/diag_record/library_record_thread/Makefile | 47 | ||||
-rw-r--r-- | stub/diag_record/library_record_thread/include/stub/pfdrec_thread_ifc.h | 168 | ||||
-rw-r--r-- | stub/diag_record/library_record_thread/src/pfdrec_thread.cpp | 162 |
12 files changed, 4518 insertions, 0 deletions
diff --git a/stub/diag_record/LICENSE b/stub/diag_record/LICENSE new file mode 100644 index 00000000..f433b1a5 --- /dev/null +++ b/stub/diag_record/LICENSE @@ -0,0 +1,177 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS diff --git a/stub/diag_record/Makefile b/stub/diag_record/Makefile new file mode 100644 index 00000000..8b85cd99 --- /dev/null +++ b/stub/diag_record/Makefile @@ -0,0 +1,19 @@ +# +# @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. +# + +SUBDIRS := library_record_api library_dummy_drec library_record_thread + +include ../stub.mk diff --git a/stub/diag_record/library_dummy_drec/Makefile b/stub/diag_record/library_dummy_drec/Makefile new file mode 100644 index 00000000..e96152cd --- /dev/null +++ b/stub/diag_record/library_dummy_drec/Makefile @@ -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. +# + +######### installed program ############# +INST_SHLIBS = libMM_DREC_API + +######### install headers ############# +VPATH += ./include/$(COMPONENT_NAME) +INST_HEADERS += MM_DREC_API.h + +######### compiled sources ############# +libMM_DREC_API_SRCS = src/MM_DREC_API.cpp + +######### compile switch ############# +CPPFLAGS += -I./include +CPPFLAGS += -I./include/stub +CPPFLAGS += -I./../library_record_api/include + +LDFLAGS += -Wl,--no-undefined +CPPFLAGS += -Werror=implicit-function-declaration +CPPFLAGS += -Werror=format-security + +CPPFLAGS += -Wconversion +CPPFLAGS += -Wint-to-pointer-cast +CPPFLAGS += -Wpointer-arith +CPPFLAGS += -Wformat + +######## CXX Link ############### +LINK_SHLIB=Y + +######### compiled options ############# +LDFLAGS += -Wl,--no-as-needed + +######### common mk ############# +include ../../stub.mk diff --git a/stub/diag_record/library_dummy_drec/include/stub/MM_DREC_API.h b/stub/diag_record/library_dummy_drec/include/stub/MM_DREC_API.h new file mode 100644 index 00000000..7d0568cc --- /dev/null +++ b/stub/diag_record/library_dummy_drec/include/stub/MM_DREC_API.h @@ -0,0 +1,2203 @@ +/* + * @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 MM_DREC_API.h +///////////////////////////////////////////////////////////////////////////// + +/***************************************************************************** + * @file MM_DREC_API.h + * @brief MM diag recorder function API definition +*****************************************************************************/ + + +/***************************************************************************** + * --------------- + * - Die-Record Function API Operation - + * --------------- + * + * $$ Notes on Creation and Release $$ + * - Submit and request the created headers and dummy libs (empty functions defined only for I/F) + * from DiagService to BaseSystem and build them from BaseSystem. + * + * - The created regular Lib (not dummy Lib) is built from DiagService. + * + * -> Since this API is also used in BaseSystem, the API must be inserted + * from the BaseSystem build to avoid errors in JointBuild. + * + * $$ Notes on change $$ + * - When modifying a header without changing the I/F, submit and request only the header to the BaseSystem. + * + * - Submit header and source code for dummy Lib when the header is modified due to an I/F change. + * + * - When the legitimate lib is changed without changing headers and I/F, no need to submit or request to BaseSystem. + * + *****************************************************************************/ + +#if !defined( __MM_DREC_API_H__ ) +#define __MM_DREC_API_H__ + +#include <native_service/frameworkunified_framework_if.h> +#include <stub/PFDREC_API.h> + +#ifdef __cplusplus +extern "C" { +#endif // __cplusplus + +/*********************************************************** + Macro Functions +***********************************************************/ +#define ENDIAN16(val) \ + (((val << 8) & 0xFF00) | ((val >> 8) & 0x00FF)) //!< \~english ENDIAN conversion(16bit) + +#define ENDIAN32(val) \ + ((val << 24) & 0xFF000000) | ((val << 8) & 0x00FF0000) | ((val >> 8) & 0x0000FF00) | ((val >> 24) & 0x000000FF) //!< \~english ENDIAN conversion(32bit) + +/*********************************************************** + Data Frame/Size Definition +***********************************************************/ + +/*********************************************************** + Data Frame Related/Structure (Common) +***********************************************************/ +/** + * \~english ACC OFF information + */ +typedef struct { + /* + * Note. + * This feature needs to be defined by the vendor. + */ +} T_DREC_ACC; + +/** + * \~english GPS time information + */ +typedef struct { + /* + * Note. + * This feature needs to be defined by the vendor. + */ +} T_DREC_GPS; + +/** + * \~english Frame for searching recording stop and start + */ +typedef struct { + /* + * Note. + * This feature needs to be defined by the vendor. + */ +} T_DREC_REC; + +/** + * \~english Common data frame + */ +typedef struct { + /* + * Note. + * This feature needs to be defined by the vendor. + */ +} T_DREC_COMMON_DATAFRAME; + +/*********************************************************** + Data Frame/Structure Definition +***********************************************************/ + +/** + * \~english Power trace data frame + */ +typedef struct { + /* + * Note. + * This feature needs to be defined by the vendor. + */ +} T_DREC_TRCPWR; + +/** + * \~english Power trace data frame_system time attached + */ +typedef struct { + /* + * Note. + * This feature needs to be defined by the vendor. + */ +} T_DREC_TRCPWR_WITHSYSTIME; + +/** + * \~english Mode control/vehicle signal trace (mode control) + */ +typedef struct { + /* + * Note. + * This feature needs to be defined by the vendor. + */ +} T_DREC_TRCMODE; + +/** + * \~english Mode control/vehicle signal trace (vehicle signal) + */ +typedef struct { + /* + * Note. + * This feature needs to be defined by the vendor. + */ +} T_DREC_TRCVEHICLESIGNAL; + +/** + * \~english Key trace + */ +typedef struct { + /* + * Note. + * This feature needs to be defined by the vendor. + */ +} T_DREC_TRCKEY; + +/** + * \~english Key trace (key information for 23byte) + */ +typedef struct { + /* + * Note. + * This feature needs to be defined by the vendor. + */ +} T_DREC_TRCKEY_EXP; + +/** + * \~english Key trace(voice operation) + */ +typedef struct _T_DREC_TRCKEY_VOICE { + /* + * Note. + * This feature needs to be defined by the vendor. + */ +} T_DREC_TRCKEY_VOICE; + +/** + * \~english Error trace + */ +typedef struct { + /* + * Note. + * This feature needs to be defined by the vendor. + */ +} T_DREC_TRCERR; + +/** + * \~english CAN communication trace + */ +typedef struct { + /* + * Note. + * This feature needs to be defined by the vendor. + */ +} T_DREC_TRCCAN; + +/** + * \~english AW Trace data (trace output of the own car position difference/ Monitoring trace log output of the distributed application PF/ Usage trace log output of the distributed application PF/ Trace output of DSRC/ETC communication) + */ +typedef struct { + /* + * Note. + * This feature needs to be defined by the vendor. + */ +} T_DREC_TRCAWDATA; + +/** + * \~english Bluetooth trace + */ +typedef struct { + /* + * Note. + * This feature needs to be defined by the vendor. + */ +} T_DREC_TRCBTCONNECT; + +/** + * \~english Bluetooth trace + */ +typedef struct _T_DREC_TRCBTINTERNAL { + /* + * Note. + * This feature needs to be defined by the vendor. + */ +} T_DREC_TRCBTINTERNAL; + +/** + * \~english Bluetooth trace + */ +typedef struct _T_DREC_TRCBT { + /* + * Note. + * This feature needs to be defined by the vendor. + */ +} T_DREC_TRCBT; + +/** + * \~english SSID information + */ +typedef struct _T_DREC_TRCWIFI_SSID_INFO { + /* + * Note. + * This feature needs to be defined by the vendor. + */ +} T_DREC_TRCWIFI_SSID_INFO; + +/** + * \~english WiFi trace + */ +typedef struct _T_DREC_TRCWIFI { + /* + * Note. + * This feature needs to be defined by the vendor. + */ +} T_DREC_TRCWIFI; + +/** + * \~english Trace data of the version information + */ +typedef struct { + /* + * Note. + * This feature needs to be defined by the vendor. + */ +} T_DREC_TRCVERSION; + +/** + * \~english Trace of the radio wave receipt + */ +typedef struct { + /* + * Note. + * This feature needs to be defined by the vendor. + */ +} T_DREC_TRCWAVE; + +/** + * \~english GPS information + */ +typedef struct { + /* + * Note. + * This feature needs to be defined by the vendor. + */ +} T_DREC_TRCGPS; + +/** + * \~english ETC watch log trace + */ +typedef struct _T_DREC_TRCETCWATCH { + /* + * Note. + * This feature needs to be defined by the vendor. + */ +} T_DREC_TRCETCWATCH; + +/** + * \~english ROB log trace + */ +typedef struct _T_DREC_TRCROB { + /* + * Note. + * This feature needs to be defined by the vendor. + */ +} T_DREC_TRCROB; + +/** + * \~english Optical beacon down-link information trace + */ +typedef struct _T_DREC_TRCOPTBEACON_DOWN_LINK { + /* + * Note. + * This feature needs to be defined by the vendor. + */ +} T_DREC_TRCOPTBEACON_DOWN_LINK; + +/** + * \~english Optical beacon up-link information trace + */ +typedef struct _T_DREC_TRCOPTBEACON_UP_LINK { + /* + * Note. + * This feature needs to be defined by the vendor. + */ +} T_DREC_TRCOPTBEACON_UP_LINK; + +/*********************************************************** + Enumeration definitions +***********************************************************/ + +/** + * \~english Diag record API return value + */ +typedef enum { + RET_DREC_NORMAL = 0, //!< \~english Normal end + RET_DREC_ERROR, //!< \~english Abnormal end + RET_DREC_ERR_ARGUMENTS, //!< \~english Incorrect argument +} RET_DREC_API; + +/** + * \~english Diag record ACC state + */ +typedef enum { + E_DREC_ACC_OFF = 0, //!< \~english ACC OFF + E_DREC_ACC_ON, //!< \~english ACC ON +} E_DREC_ACC; + +/** + * \~english Diag recording function state + */ +typedef enum { + E_DREC_REC_OFF = 0, //!< \~english Recording stop + E_DREC_REC_ON //!< \~english Recording start +} E_DREC_REC; + +/** + * \~english Maker peculiarity trace output state + */ +typedef enum { + DREC_OUTPUT_STATE_START = 1, //!< \~english Output start + DREC_OUTPUT_STATE_END, //!< \~english Output end +} DREC_OUTPUT_STATE; + +/** + * \~english Maker peculiarity trace output result + */ +typedef enum { + DREC_OUTPUT_NOTIFY_OK = 0, //!< \~english OK + DREC_OUTPUT_NOTIFY_NG, //!< \~english NG +} DREC_OUTPUT_RESULT; + +/** + * \~english Maker peculiarity trace function state + */ +typedef enum { + DREC_OUTPUT_FUNC_ON = 0, //!< \~english Function ON + DREC_OUTPUT_FUNC_OFF, //!< \~english Function OFF +} DREC_OUTPUT_FUNC; + +/** + * \~english Maker peculiarity trace notification restrict + */ +typedef enum { + DREC_NOTIFY_RESTRICT_API, //!< \~english restrict API + DREC_NOTIFY_RESTRICT_CAN, //!< \~english restrict CAN + DREC_NOTIFY_RESTRICT_NONE, //!< \~english non-restrict +} DREC_NOTIFY_RESTRICT; + +/*********************************************************** + Constant +***********************************************************/ +#define DREC_COM_GPS_ID_CORD 0xF0 //!< \~english GPS time information identification code +#define DREC_COM_RECORD_STOP 0xF1 //!< \~english Recording stop +#define DREC_COM_RECORD_START 0xF2 //!< \~english Recording start + +/*********************************************************** + API +***********************************************************/ +/** @addtogroup ApplicationManagement + * @{ + */ +/** @addtogroup Vehicle + * @ingroup ApplicationManagement + * @{ + */ +/** @addtogroup Diag + * @ingroup Vehicle + * @{ + */ +/** @addtogroup Diag_DrecOperate + * @ingroup Diag + * @{ + */ +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_ChangeRecording +/// \~english @par Brief +/// Instruct the record function start/stop and write the start/stop information. +/// \~english @param [in] state +/// \ref E_DREC_REC - Function start/stop state +/// \~english @par +/// - Set either in the following "Diag recording function states" for the argument (state) (Function start/stop state) +/// \~english @code +/// Diag recording function states +/// E_DREC_REC_OFF : Recording stop +/// E_DREC_REC_ON : Recording start +/// @endcode +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @par Prerequisite +/// - \ref PFDREC_OpenSession must be called prior to calling this API. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - None +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// The log output of Diag Record is output in the following format by calling this API.\n +/// \n +/// < Function ON >\n +/// Record "Recording start information" in each trace data. Notify the function start of the recording function to BaseSystem.\n +/// Register GPS time information from Diag service by \ref DREC_WriteTrcGPS.\n +/// \n +/// < Function OFF >\n +/// Record "Recording stop information" in each trace data. Notify the function stop of the recording function to BaseSystem.\n +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_ChangeRecording(E_DREC_REC state); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_AccOffOn +/// \~english @par Brief +/// Write ACCOFF time information to the memory at ACC OFF. +/// \~english @param [in] state +/// \ref E_DREC_ACC - ACCOFFON (reset) state +/// \~english @par +/// - Set either in the following "Diag record ACC state" for the argument (state) (ACCOFFON (reset) state) +/// \~english @code +/// Diag record ACC state +/// E_DREC_ACC_OFF : ACC OFF +/// E_DREC_ACC_ON : ACC ON +/// @endcode +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @par Prerequisite +/// - This API must be called only when Availability of PFDRECThread is TRUE. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - None +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Wrapper executes the following processes by calling this API. \n +/// This API must be called when this Diag service detects FrameworkunifiedOnStop. (Called only by the service having Diag recorder function.) \n +/// Wrapper writes ACCOFF information in each trace file. \n +/// Wrapper writes #power OFF state by the power trace output based on the notification from SYS. \n +/// Wrapper writes GPS time at Function OFF and at ACCOFF (reset) in preparation for a case that GPS time information cannot be acquired at the start up. \n +/// Wrapper does not reaquire GPS time if valid GPS time cannot be acquired at the startup. \n +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_AccOffOn(E_DREC_ACC state); +/** @}*/ // end of Diag_DrecOperate +/** @addtogroup Diag_DrecWriteTrc + * @ingroup Diag + * @{ + */ +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_WriteTrcPwr +/// \~english @par Brief +/// Write the power trace output information to the memory. +/// \~english @param [in] data +/// \ref T_DREC_TRCPWR* - Pointer to the power trace data +/// \~english @param [in] num +/// u_int32_t - Number of written frames (1 to 100) +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @par Prerequisite +/// - This API must be called only when Availability of PFDRECThread is TRUE. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - Opening the sending message queue (McOpenSender) failed. [RET_DREC_ERROR] +/// - Sending asynchronous data (McSend) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Write the power trace output information to the memory. +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_WriteTrcPwr(T_DREC_TRCPWR* data, u_int32_t num); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_WriteTrcPwr_Tick +/// \~english @par Brief +/// Write the power trace output information to the memory (tick specification exists). +/// \~english @param [in] data +/// \ref T_DREC_TRCPWR_WITHSYSTIME* - Pointer to the power trace data (with the system time) +/// \~english @param [in] num +/// u_int32_t - Number of written frames (1 to 100) +/// \~english @param [in] tick +/// u_int32_t - TICK value of the current SYS internal +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @par Prerequisite +/// - This API must be called only when Availability of PFDRECThread is TRUE. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - Opening the sending message queue (McOpenSender) failed. [RET_DREC_ERROR] +/// - Sending asynchronous data (McSend) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Write the power trace output information to the memory (tick specification exists). +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_WriteTrcPwr_Tick(T_DREC_TRCPWR_WITHSYSTIME* data, + u_int32_t num, u_int32_t tick); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_WriteTrcMode +/// \~english @par Brief +/// Write the mode control parts of the mode control/vehicle signal trace output information to the memory. +/// \~english @param [in] data +/// \ref T_DREC_TRCMODE* - The pointer to mode management trace data +/// \~english @param [in] num +/// u_int32_t - Number of written frames (1 to 100) +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @par Prerequisite +/// - This API must be called only when Availability of PFDRECThread is TRUE. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - Opening the sending message queue (McOpenSender) failed. [RET_DREC_ERROR] +/// - Sending asynchronous data (McSend) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Write the mode control parts of the mode control/vehicle signal trace output information to the memory.\n +/// The system time is gotten by wrapper library and added.\n +/// This API adds the vehicle signal state fixed at 0xFF.\n +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see +/// None +//////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_WriteTrcMode(T_DREC_TRCMODE* data, u_int32_t num); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_WriteTrcVehicleSignal +/// \~english @par Brief +/// Write the vehicle signal parts of the mode control/vehicle signal trace output information to the memory. +/// \~english @param [in] data +/// \ref T_DREC_TRCVEHICLESIGNAL* - Pointer to the vehicle signal trace data +/// \~english @param [in] num +/// u_int32_t - Number of written frames (1 to 100) +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @par Prerequisite +/// - This API must be called only when Availability of PFDRECThread is TRUE. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - Opening the sending message queue (McOpenSender) failed. [RET_DREC_ERROR] +/// - Sending asynchronous data (McSend) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Write the vehicle signal parts of the mode control/vehicle signal trace output information to the memory.\n +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_WriteTrcVehicleSignal(T_DREC_TRCVEHICLESIGNAL* data, + u_int32_t num); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_WriteTrcKey +/// \~english @par Brief +/// Write the key trace output information to the memory (for 11byte key information). +/// \~english @param [in] data +/// \ref T_DREC_TRCKEY* - The pointer to key trace data (Key information for 11 bytes) +/// \~english @param [in] num +/// u_int32_t - Number of written frames (1 to 100) +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @par Prerequisite +/// - This API must be called only when Availability of PFDRECThread is TRUE. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - Opening the sending message queue (McOpenSender) failed. [RET_DREC_ERROR] +/// - Sending asynchronous data (McSend) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Write the key trace output information to the memory (for 11byte key information).\n +/// (The caller uses only when size of the key information is 11 bytes. For data which it is 27 bytes, the caller uses \ref DREC_WriteTrcKey_Exp .)\n +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see +/// None +//////////////////////////////////////////////////////////////////////////////////// + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_WriteTrcKey_Exp +/// \~english @par Brief +/// Write the key trace output information to the memory (for 23byte key information). +/// \~english @param [in] data +/// \ref T_DREC_TRCKEY_EXP* - The pointer to key trace data (Key information for 23 bytes) +/// \~english @param [in] num +/// u_int32_t - Number of written frames (1 to 50) +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @par Prerequisite +/// - This API must be called only when Availability of PFDRECThread is TRUE. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - Opening the sending message queue (McOpenSender) failed. [RET_DREC_ERROR] +/// - Sending asynchronous data (McSend) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Write the key trace output information to the memory (for 23byte key information).\n +/// (For data which key information is 11 bytes, the caller uses \ref DREC_WriteTrcKey .)\n +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see +/// None +//////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_WriteTrcKey_Exp(T_DREC_TRCKEY_EXP* data, + u_int32_t num); + + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_WriteTrcKey_Voice +/// \~english @par Brief +/// Write the voice trace output information to the memory(for voice operation). +/// \~english @param[in] data +/// T_DREC_TRCKEY_VOICE* - The pointer to key trace data() +/// \~english @param[in] num +/// u_int32_t - Number of written frames +/// \~english @par +/// Number of written frames (1 to 50) +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @par Prerequisite +/// - This API must be called only when Availability of PFDRECThread is TRUE. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - Opening the sending message queue (McOpenSender) failed. [RET_DREC_ERROR] +/// - Sending asynchronous data (McSend) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Write the voice trace output information to the memory(for voice operation). +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see +/// None +///////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_WriteTrcKey_Voice(T_DREC_TRCKEY_VOICE* data, + u_int32_t num); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_WriteTrcErr +/// \~english @par Brief +/// Write the error trace output information to the memory. +/// \~english @param [in] data +/// \ref T_DREC_TRCERR* - The pointer to error trace data +/// \~english @param [in] num +/// u_int32_t - Number of written frames (1 to 100) +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @par Prerequisite +/// - This API must be called only when Availability of PFDRECThread is TRUE. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - Opening the sending message queue (McOpenSender) failed. [RET_DREC_ERROR] +/// - Sending asynchronous data (McSend) failed. [RET_DIAG_API_DCCC_ERROR] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Write the error trace output information to the memory. +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see +/// None +//////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_WriteTrcErr(T_DREC_TRCERR* data, u_int32_t num); + + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_WriteTrcCan +/// \~english @par Brief +/// Write CAN communication trace output information to the memory. +/// \~english @param [in] data +/// \ref T_DREC_TRCCAN* - Pointer to CAN communication trace data +/// \~english @param [in] num +/// u_int32_t - Number of written frames (1 to 100) +/// \~english @param [in] tick +/// u_int32_t - TICK value of the current SYS internal +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @par Prerequisite +/// - This API must be called only when Availability of PFDRECThread is TRUE. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - Opening the sending message queue (McOpenSender) failed. [RET_DREC_ERROR] +/// - Sending asynchronous data (McSend) failed. [RET_DIAG_API_DCCC_ERROR] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Write CAN communication trace output information to the memory.\n +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_WriteTrcCan(T_DREC_TRCCAN* data, u_int32_t num, + u_int32_t tick); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_WriteTrcDeliveryPFWatchLog +/// \~english @par Brief +/// Write the monitoring trace log output information of the distributed application PF to the memory. +/// \~english @param [in] data +/// \ref T_DREC_TRCAWDATA* - The pointer to monitoring log data of the distribution application PF +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @par Prerequisite +/// - This API must be called only when Availability of PFDRECThread is TRUE. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - Opening the sending message queue (McOpenSender) failed. [RET_DREC_ERROR] +/// - Sending asynchronous data (McSend) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Write the monitoring trace log output information of the distributed application PF to the memory.\n +/// The library side adds the system time. The caller must call for each segment of data.\n +/// The library side adds the system time to the beginning of the data and ALL 0 to from the head of the remaining data to 3 bytes.\n +/// This API adds the system time to the beginning with a single call and regarding data exceeding one frame, divides and registers it.\n +/// The caller must not call some headers and data record parts together. (Because system time can not be added for each section.)\n +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see +/// None +//////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_WriteTrcDeliveryPFWatchLog(T_DREC_TRCAWDATA* data); + + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_WriteTrcDeliveryPFUseLog +/// \~english @par Brief +/// Write the usage trace log output information of the distributed application PF to the memory. +/// \~english @param [in] data +/// \ref T_DREC_TRCAWDATA* - The pointer to usage log data of the distribution application PF +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @par Prerequisite +/// - This API must be called only when Availability of PFDRECThread is TRUE. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - Opening the sending message queue (McOpenSender) failed. [RET_DREC_ERROR] +/// - Sending asynchronous data (McSend) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Write the usage trace log output information of the distributed application PF to the memory.\n +/// The library side adds the system time. The caller must call for each segment of data.\n +/// The library side adds the system time to the beginning of the data and ALL 0 to from the head of the remaining data to 3 bytes.\n +/// This API adds the system time to the beginning with a single call and regarding data exceeding one frame, divides and registers it.\n +/// The caller must not call some headers and data record parts together. (Because system time can not be added for each section.)\n +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see +/// None +//////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_WriteTrcDeliveryPFUseLog(T_DREC_TRCAWDATA* data); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_WriteTrcBT +/// \~english @par Brief +/// Write the trace output information of Bluetooth to the memory. +/// \~english @param[in] data +/// T_DREC_TRCBT* - The pointer to write data +/// \~english @param[in] num +/// u_int32_t - Number of written frames +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @par Prerequisite +/// - This API must be called only when Availability of PFDRECThread is TRUE. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - Opening the sending message queue (McOpenSender) failed. [RET_DREC_ERROR] +/// - Sending asynchronous data (McSend) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Write the trace output information of Bluetooth to the memory. +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see +/// None +///////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_WriteTrcBT(T_DREC_TRCBT* data, u_int32_t num); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_WriteTrcBTInternal +/// \~english @par Brief +/// (Only in the specific Supplier) Write the trace output information of Bluetooth internal to the memory. +/// \~english @param [in] data +/// u_int8_t* - The pointer to write data +/// \~english @param [in] size +/// u_int32_t - Data size (1 to 1200bytes) +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @par Prerequisite +/// - This API must be called only when Availability of PFDRECThread is TRUE. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - Opening the sending message queue (McOpenSender) failed. [RET_DREC_ERROR] +/// - Sending asynchronous data (McSend) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// This API is API for specific supplier.(TECHWG-443)\n +/// Write the trace output information of Bluetooth internal to the memory.\n +/// The log output of Diag Record is output in the following format.\n +/// This API registers system time from Byte1 to 3.\n +/// As there is data reserved for each format, this API registers the value defined in the wrapper layer at Byte4\n +/// so that it does not overlap with that data.\n +/// This API registers specified data after Byte5.\n +/// Regarding data exceeding 12 bytes at a time, this API divides records and registers it.\n +/// Regarding data after Byte13, this API registers 0x00 from Byte1 to 4 and registers the specified data after Byte5.\n +/// It is filled with 0x00 if the data is less than 16 bytes.\n +/// This API adds the system time to the beginning with a single call.\n +/// Regarding data exceeding one frame, this API divides and registers it.\n +/// The caller must not call some data by connecting them. (Because system time can not be added for each section.)\n +/// (The format is optional for the manufacturer.) +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see +/// None +//////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_WriteTrcBTInternal(u_int8_t* data, + u_int32_t size); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_WriteTrcWiFi +/// \~english @par Brief +/// Write the trace output information of WiFi to the memory. +/// \~english @param[in] data +/// T_DREC_TRCWIFI* - The pointer to write data +/// \~english @param[in] num +/// u_int32_t - Number of written frames +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @par Prerequisite +/// - This API must be called only when Availability of PFDRECThread is TRUE. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - Opening the sending message queue (McOpenSender) failed. [RET_DREC_ERROR] +/// - Sending asynchronous data (McSend) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Write the trace output information of WiFi to the memory.\n +/// \ref T_DREC_TRCWIFI Structure\n +/// Data frame format are different by setting value of WiFi setting state.\n +/// WiFi Setting state( \ref T_DREC_TRCWIFI.processing )\n +/// - Connection(0x00), Auto connection(0x01) and Disconnection(0x02) data format definition \ref notinitialdata used.\n +/// - Creation Mode(0x03) and Deletion Mode((0x04)) data format definition \ref modedata used.\n +/// - Initial is activation(0x10) format definition \ref initialdata used. +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see +/// None +///////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_WriteTrcWiFi(T_DREC_TRCWIFI* data, u_int32_t num); + + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_WriteTrcWiFiInternal +/// \~english @par Brief +/// (Only in the specific Supplier) Write the trace output information of WiFi internal to the memory. +/// \~english @param [in] data +/// u_int8_t* - The pointer to write data +/// \~english @param [in] size +/// u_int32_t - Data size (1 to 1200bytes) +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @par Prerequisite +/// - This API must be called only when Availability of PFDRECThread is TRUE. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - Opening the sending message queue (McOpenSender) failed. [RET_DREC_ERROR] +/// - Sending asynchronous data (McSend) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// This API is API for specific supplier.(TECHWG-443)\n +/// Write the trace output information of WiFi internal to the memory.\n +/// The log output of Diag Record is output in the following format.\n +/// This API registers system time from Byte1 to 3.\n +/// As there is data reserved for each format, this API registers the value defined in the wrapper layer at Byte4\n +/// so that it does not overlap with that data.\n +/// This API registers specified data after Byte5.\n +/// Regarding data exceeding 12 bytes at a time, this API divides records and registers it.\n +/// Regarding data after Byte13, this API registers 0x00 from Byte1 to 4 and registers the specified data after Byte5.\n +/// It is filled with 0x00 if the data is less than 16 bytes.\n +/// This API adds the system time to the beginning with a single call.\n +/// Regarding data exceeding one frame, this API divides and registers it.\n +/// The caller must not call some data by connecting them. (Because system time can not be added for each section.)\n +/// (The format is optional for the manufacturer.) +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see +/// None +//////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_WriteTrcWiFiInternal(u_int8_t* data, u_int32_t size); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_WriteTrcCenter +/// \~english @par Brief +/// Write the trace output information of the communication with the center to the memory. +/// \~english @param [in] data +/// u_int8_t* - The pointer to write data +/// \~english @param [in] size +/// u_int32_t - Data size (1 to 1200bytes) +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @par Prerequisite +/// - This API must be called only when Availability of PFDRECThread is TRUE. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - Opening the sending message queue (McOpenSender) failed. [RET_DREC_ERROR] +/// - Sending asynchronous data (McSend) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Write the trace output information of the communication with the center to the memory.\n +/// The log output of Diag Record is output in the following format.\n +/// This API registers system time from Byte1 to 3.\n +/// As there is data reserved for each format, this API registers the value defined in the wrapper layer at Byte4\n +/// so that it does not overlap with that data.\n +/// This API registers specified data after Byte5.\n +/// Regarding data exceeding 12 bytes at a time, this API divides records and registers it.\n +/// Regarding data after Byte13, this API registers 0x00 from Byte1 to 4 and registers the specified data after Byte5.\n +/// It is filled with 0x00 if the data is less than 16 bytes.\n +/// This API adds the system time to the beginning with a single call.\n +/// Regarding data exceeding one frame, this API divides and registers it.\n +/// The caller must not call some data by connecting them. (Because system time can not be added for each section.)\n +/// (The format is optional for the manufacturer.) +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see +/// None +//////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_WriteTrcCenter(u_int8_t* data, u_int32_t size); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_WriteTrcVersion +/// \~english @par Brief +/// Write the trace output information of the version information to the memory. +/// \~english @param [in] data +/// \ref T_DREC_TRCVERSION* - Pointer to the Trace data of the version information +/// \~english @param [in] num +/// u_int32_t - Number of written frames (1 to 25) +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @par Prerequisite +/// - This API must be called only when Availability of PFDRECThread is TRUE. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - Opening the sending message queue (McOpenSender) failed. [RET_DREC_ERROR] +/// - Sending asynchronous data (McSend) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Write the trace output information of the version information to the memory.\n +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_WriteTrcVersion(T_DREC_TRCVERSION* data, + u_int32_t num); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_WriteTrcDCM +/// \~english @par Brief +/// Write the trace output information of DCM communication to the memory. +/// \~english @param [in] data +/// u_int8_t* - The pointer to write data +/// \~english @param [in] size +/// u_int32_t - Data size (1 to 1200bytes) +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @par Prerequisite +/// - This API must be called only when Availability of PFDRECThread is TRUE. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - Opening the sending message queue (McOpenSender) failed. [RET_DREC_ERROR] +/// - Sending asynchronous data (McSend) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Write the trace output information of DCM communication to the memory.\n +/// The log output of Diag Record is output in the following format.\n +/// This API registers system time from Byte1 to 3.\n +/// As there is data reserved for each format, this API registers the value defined in the wrapper layer at Byte4\n +/// so that it does not overlap with that data.\n +/// This API registers specified data after Byte5.\n +/// Regarding data exceeding 12 bytes at a time, this API divides records and registers it.\n +/// Regarding data after Byte13, this API registers 0x00 from Byte1 to 4 and registers the specified data after Byte5.\n +/// It is filled with 0x00 if the data is less than 16 bytes.\n +/// This API adds the system time to the beginning with a single call.\n +/// Regarding data exceeding one frame, this API divides and registers it.\n +/// The caller must not call some data by connecting them. (Because system time can not be added for each section.)\n +/// (The format is optional for the manufacturer.) +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see +/// None +//////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_WriteTrcDCM(u_int8_t* data, u_int32_t size); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_WriteTrcDSRC +/// \~english @par Brief +/// Write the trace output information of DSRC/ETC communication to the memory. +/// \~english @param [in] data +/// \ref T_DREC_TRCAWDATA* - The pointer to DSRC/ETC communication trace data +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @par Prerequisite +/// - This API must be called only when Availability of PFDRECThread is TRUE. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - Opening the sending message queue (McOpenSender) failed. [RET_DREC_ERROR] +/// - Sending asynchronous data (McSend) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Write the trace output information of DSRC/ETC communication to the memory.\n +/// The log output of Diag Record is output in the following format.\n +/// This API registers system time from Byte1 to 3.\n +/// As there is data reserved for each format, this API registers the value defined in the wrapper layer at Byte4\n +/// so that it does not overlap with that data.\n +/// This API registers specified data after Byte5.\n +/// Regarding data exceeding 12 bytes at a time, this API divides records and registers it.\n +/// Regarding data after Byte13, this API registers 0x00 from Byte1 to 4 and registers the specified data after Byte5.\n +/// It is filled with 0x00 if the data is less than 16 bytes.\n +/// This API adds the system time to the beginning with a single call.\n +/// Regarding data exceeding one frame, this API divides and registers it.\n +/// The caller must not call some data by connecting them. (Because system time can not be added for each section.)\n +/// (The format is optional for the manufacturer.) +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see +/// None +//////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_WriteTrcDSRC(T_DREC_TRCAWDATA* data); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_WriteTrc_CWORD17_ +/// \~english @par Brief +/// Write the trace output information of _CWORD5_ communication to the memory. +/// \~english @param [in] data +/// \ref T_DREC_TRCCAN* - Pointer to the _CWORD5_ communication trace data +/// \~english @param [in] num +/// u_int32_t - Number of written frames (1 to 100) +/// \~english @param [in] tick +/// u_int32_t - TICK value of the current SYS internal +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @par Prerequisite +/// - This API must be called only when Availability of PFDRECThread is TRUE. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - Opening the sending message queue (McOpenSender) failed. [RET_DREC_ERROR] +/// - Sending asynchronous data (McSend) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Write the trace output information of _CWORD5_ communication to the memory.\n +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see +/// None +//////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_WriteTrc_CWORD17_(T_DREC_TRCCAN* data, u_int32_t num, + u_int32_t tick); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_WriteTrcWave +/// \~english @par Brief +/// Write the trace output information of the radio wave receipt to the memory. +/// \~english @param [in] data +/// \ref T_DREC_TRCWAVE* - The pointer to trace data of the electric wave reception +/// \~english @param [in] num +/// u_int32_t - Number of written frames (1 to 100) +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @par Prerequisite +/// - This API must be called only when Availability of PFDRECThread is TRUE. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - Opening the sending message queue (McOpenSender) failed. [RET_DREC_ERROR] +/// - Sending asynchronous data (McSend) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Write the trace output information of the radio wave receipt to the memory.\n +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see +/// None +//////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_WriteTrcWave(T_DREC_TRCWAVE* data, u_int32_t num); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_WriteTrcUSB +/// \~english @par Brief +/// Write the trace output information of USB I/F connected application internal to the memory. +/// \~english @param [in] data +/// u_int8_t* - The pointer to wrire data +/// \~english @param [in] size +/// u_int32_t - Data size (1 to 1200bytes) +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @par Prerequisite +/// - This API must be called only when Availability of PFDRECThread is TRUE. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - Opening the sending message queue (McOpenSender) failed. [RET_DREC_ERROR] +/// - Sending asynchronous data (McSend) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Write the trace output information of USB I/F connected application internal to the memory.\n +/// The log output of Diag Record is output in the following format.\n +/// This API registers system time from Byte1 to 3.\n +/// As there is data reserved for each format, this API registers the value defined in the wrapper layer at Byte4\n +/// so that it does not overlap with that data.\n +/// This API registers specified data after Byte5.\n +/// Regarding data exceeding 12 bytes at a time, this API divides records and registers it.\n +/// Regarding data after Byte13, this API registers 0x00 from Byte1 to 4 and registers the specified data after Byte5.\n +/// It is filled with 0x00 if the data is less than 16 bytes.\n +/// This API adds the system time to the beginning with a single call.\n +/// Regarding data exceeding one frame, this API divides and registers it.\n +/// The caller must not call some data by connecting them. (Because system time can not be added for each section.)\n +/// (The format is optional for the manufacturer.) +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see +/// None +//////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_WriteTrcUSB(u_int8_t* data, u_int32_t size); + + +/** @}*/ // end of Diag_DrecWriteTrc +/** @addtogroup Diag_DrecOperate + * @ingroup Diag + * @{ + */ + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_GetRecordSize +/// \~english @par Brief +/// Acquire the number of Diag record registration whose type is specified. +/// \~english @param [in] type +/// \ref E_PFDREC_CATEGORY_TYPE - Type to acquire the record size +/// \~english @param [out] num +/// u_int32_t * - Pointer to the number of registered records. +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @par Prerequisite +/// - \ref PFDREC_OpenSession must be called prior to calling this API. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - The argument (num) is NULL. [RET_DREC_ERROR] +/// - The argument (type) is not the defined value. [RET_DREC_ERROR] +/// - The caller is not calling \ref PFDREC_OpenSession in advance. [RET_DREC_ERROR] +/// - Message synchronous communication (FrameworkunifiedInvokeSync) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Acquire the number of record registration whose type is specified.\n +/// In BaseSystem, returns the number of records of the specified type. \n +/// The caller determines the total size with the number of records and each record length.\n +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see +//////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_GetRecordSize(E_PFDREC_CATEGORY_TYPE type, + u_int32_t *num); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_GetRecordData +/// \~english @par Brief +/// Acquire the registered Diag record whose type is specified. +/// \~english @param [in] type +/// \ref E_PFDREC_CATEGORY_TYPE - Type to acquire the record size (\ref E_PFDREC_CATEGORY_TRC_PWR - ref E_PFDREC_CATEGORY_TRC_TRAF ) +/// \~english @param [in] num +/// u_int32_t - The number of records to acquire (1 to 100) +/// \~english @param [in] record_ptr +/// u_int32_t - The start point of the record to acquire +/// \~english @param [out] data +/// u_int8_t *- Pointer to the storage area for the record to acquire +/// \~english @param [out] out_num +/// u_int32_t *- Pointer to the size of the stored record +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @par Prerequisite +/// - \ref PFDREC_OpenSession must be called prior to calling this API. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - The argument (data) is NULL [RET_DREC_ERROR] +/// - The argument (out_num) is NULL [RET_DREC_ERROR] +/// - The argument (type) is not the defined value [RET_DREC_ERROR] +/// - The argument (num) is 0 or greater than 100. [RET_DREC_ERROR] +/// - The caller is not calling \ref PFDREC_OpenSession in advance. [RET_DREC_ERROR] +/// - Message synchronous communication (FrameworkunifiedInvokeSync) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Acquire the record whose type is specified. \n +/// In BaseSystem, acquire the records of the specified type and the specified number. In this case, the caller specifies from which number of record is acquired.\n +/// The caller is supposed to acquire data in order from the beginning in several batches.\n +/// When the number of record requested to acquire is more than that of registered records, acquire the registered number only and returns it. \n +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_GetRecordData(E_PFDREC_CATEGORY_TYPE type, + u_int32_t num, u_int32_t record_ptr, + u_int8_t *data, u_int32_t *out_num); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_GetRecordState +/// \~english @par Brief +/// Acquire the start/stop state of the record function. +/// \~english @param [out] state +/// \ref E_DREC_REC* - Pointer to the start/stop state of the record function. +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @par Prerequisite +/// - \ref PFDREC_OpenSession must be called prior to calling this API. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - The argument (state) is NULL [RET_DREC_ERROR] +/// - The caller is not calling \ref PFDREC_OpenSession in advance. [RET_DREC_ERROR] +/// - Message synchronous communication (FrameworkunifiedInvokeSync) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Acquire the start/stop state of the record function. +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see +//////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_GetRecordState(E_DREC_REC* state); +/** @}*/ // end of Diag_DrecOperate +/** @addtogroup Diag_DrecOperate + * @ingroup Diag + * @{ + */ +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_SetSysemTimeDifference +/// \~english @par Brief +/// Set the system time difference. +/// \~english @param [in] data +/// u_int32_t - System time difference +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @par Prerequisite +/// - None +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - None +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Store the system time difference in the shared memory.\n +/// Reflect the stored value in the addition process of the system time.\n +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_SetSysemTimeDifference(u_int32_t data); +/** @}*/ // end of Diag_DrecOperate +/** @addtogroup Diag_DrecWriteTrc + * @ingroup Diag + * @{ + */ +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_WriteTrcGPS +/// \~english @par Brief +/// Set GPS time information to each trace data. +/// \~english @param [in] data +/// \ref T_DREC_TRCGPS* - Pointer to the GPS information +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @par Prerequisite +/// - This API must be called only when Availability of PFDRECThread is TRUE. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - Opening the sending message queue (McOpenSender) failed. [RET_DREC_ERROR] +/// - Sending asynchronous data (McSend) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Set the GPS time information \n +/// The target is all trace outputs belonging to the unit in which this API is called. \n +/// When registering the trace data in BaseSystem, regarding the key trace, GPS information is separately passed as the argument (The second argument of PFDREC_ComDataBuckup).\n +/// After Function ON, when a valid GPS time can be acquired after ACCON, the Diag service must register it.\n +/// During Function ON, when a valid GPS time cannot be acquired, retry must be performed until the acquired time is registered.\n +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_WriteTrcGPS(T_DREC_TRCGPS* data); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_WriteTrcUSBETC +/// \~english @par Brief +/// Write USB log information of DSRC/ETC communication trace output into the memory. +/// \~english @param [in] data +/// \ref T_DREC_TRCAWDATA* - The pointer to DSRC/ETC communication trace data +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @par Prerequisite +/// - This API must be called only when Availability of PFDRECThread is TRUE. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - Opening the sending message queue (McOpenSender) failed. [RET_DREC_ERROR] +/// - Sending asynchronous data (McSend) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Write USB log information of DSRC/ETC communication trace output into the memory.\n +/// The log output of Diag Record is output in the following format.\n +/// This API registers system time from Byte1 to 3.\n +/// As there is data reserved for each format, this API registers the value defined in the wrapper layer at Byte4\n +/// so that it does not overlap with that data.\n +/// This API registers specified data after Byte5.\n +/// Regarding data exceeding 12 bytes at a time, this API divides records and registers it.\n +/// Regarding data after Byte13, this API registers 0x00 from Byte1 to 4 and registers the specified data after Byte5.\n +/// It is filled with 0x00 if the data is less than 16 bytes.\n +/// This API adds the system time to the beginning with a single call.\n +/// Regarding data exceeding one frame, this API divides and registers it.\n +/// The caller must not call some data by connecting them. (Because system time can not be added for each section.)\n +/// (The format is optional for the manufacturer.) +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see +/// None +//////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_WriteTrcUSBETC(T_DREC_TRCAWDATA* data); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_WriteTrcUplink +/// \~english @par Brief +/// Write the uplink log information of DSRC/ETC communication trace output into the memory. +/// \~english @param [in] data +/// \ref T_DREC_TRCAWDATA* - The pointer to DSRC/ETC communication trace data +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @par Prerequisite +/// - This API must be called only when Availability of PFDRECThread is TRUE. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - Opening the sending message queue (McOpenSender) failed. [RET_DREC_ERROR] +/// - Sending asynchronous data (McSend) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Write the uplink log information of DSRC/ETC communication trace output into the memory.\n +/// The log output of Diag Record is output in the following format.\n +/// This API registers system time from Byte1 to 3.\n +/// As there is data reserved for each format, this API registers the value defined in the wrapper layer at Byte4\n +/// so that it does not overlap with that data.\n +/// This API registers specified data after Byte5.\n +/// Regarding data exceeding 12 bytes at a time, this API divides records and registers it.\n +/// Regarding data after Byte13, this API registers 0x00 from Byte1 to 4 and registers the specified data after Byte5.\n +/// It is filled with 0x00 if the data is less than 16 bytes.\n +/// This API adds the system time to the beginning with a single call.\n +/// Regarding data exceeding one frame, this API divides and registers it.\n +/// The caller must not call some data by connecting them. (Because system time can not be added for each section.)\n +/// (The format is optional for the manufacturer.) +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see +/// None +//////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_WriteTrcUplink(T_DREC_TRCAWDATA* data); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_WriteTrcETCWatch +/// \~english @par Brief +/// Write trace output of the ETC watch to the memory. +/// \~english @param[in] data +/// T_DREC_TRCETCWATCH* - Pointer to the trace data of the ETC watch. +/// \~english @param[in] num +/// u_int32_t - Number of written frames +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @par Prerequisite +/// - This API must be called only when Availability of PFDRECThread is TRUE. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - Opening the sending message queue (McOpenSender) failed. [RET_DREC_ERROR] +/// - Sending asynchronous data (McSend) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Write the monitoring trace output information of the ETC to the memory.\n +/// \ref T_DREC_TRCETCWATCH structure\n +/// Data format is different by device type / frame type( \ref T_DREC_TRCETCWATCH.frameType )\n +/// 0:ETC status notification log \n +/// 1:ETC latest charge notification log \n +/// 2:ETC operation response log \n +/// Use the \ref T_DREC_TRCETCWATCH.command format destination.\n +/// 3:ETC communication log \n +/// Use the \ref T_DREC_TRCETCWATCH.com_command format destination.\n +/// 4:Diag Clear event log \n +/// 5:Diagnosis detection event log \n +/// 6:Diagnosis recovery event log \n +/// Use the \ref T_DREC_TRCETCWATCH.diag format destination. +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see +/// None +///////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_WriteTrcETCWatch(T_DREC_TRCETCWATCH* data, + u_int32_t num); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_WriteTrcRoB +/// \~english @par Brief +/// Write the trace output information of RoB log to the memory. +/// \~english @param[in] data +/// T_DREC_TRCROB* - The pointer to write data +/// \~english @param[in] num +/// u_int32_t - Number of written frames +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @par Prerequisite +/// - This API must be called only when Availability of PFDRECThread is TRUE. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - Opening the sending message queue (McOpenSender) failed. [RET_DREC_ERROR] +/// - Sending asynchronous data (McSend) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Write the trace output information of RoB log to the memory. +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see +/// None +///////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_WriteTrcRoB(T_DREC_TRCROB* data, + u_int32_t num); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_WriteTrcEvaluation +/// \~english @par Brief +/// Write the evaluation trace output information to the memory. +/// \~english @param[in] data +/// u_int8_t* - The pointer to write data +/// \~english @param[in] size +/// u_int32_t - Data size (1 to 1200bytes) +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @par Prerequisite +/// - This API must be called only when Availability of PFDRECThread is TRUE. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - Opening the sending message queue (McOpenSender) failed. [RET_DREC_ERROR] +/// - Sending asynchronous data (McSend) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Write the evaluation trace output information to the memory.\n +/// The log output of Diag Record is output in the following format.\n +/// This API registers system time from Byte1 to 3.\n +/// As there is data reserved for each format, this API registers the value defined in the wrapper layer at Byte4\n +/// so that it does not overlap with that data.\n +/// This API registers specified data after Byte5.\n +/// Regarding data exceeding 12 bytes at a time, this API divides records and registers it.\n +/// Regarding data after Byte13, this API registers 0x00 from Byte1 to 4 and registers the specified data after Byte5.\n +/// It is filled with 0x00 if the data is less than 16 bytes.\n +/// This API adds the system time to the beginning with a single call.\n +/// Regarding data exceeding one frame, this API divides and registers it.\n +/// The caller must not call some data by connecting them. (Because system time can not be added for each section.)\n +/// (The format is optional for the manufacturer.) +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see +/// None +///////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_WriteTrcEvaluation(u_int8_t* data, + u_int32_t size); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_DeleteTrcDeliveryPFUseLog +/// \~english @par Brief +/// Delete the trace of distribution application PF usage log. +/// \~english @param None +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @par Prerequisite +/// - \ref PFDREC_OpenSession must be called prior to calling this API. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - The argument (func) is NULL [RET_DREC_ERROR] +/// - The caller is not calling \ref PFDREC_OpenSession in advance. [RET_DREC_ERROR] +/// - Message synchronous communication (FrameworkunifiedInvokeSync) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Delete the trace of distribution application PF usage log. +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see +//////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_DeleteTrcDeliveryPFUseLog(void); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_DeleteTrcDeliveryPFUseLog_inSession +/// \~english @par Brief +/// Delete the trace of distribution application PF usage log. +/// - Execute "Session start(\ref PFDREC_OpenSession)" before the deletion. +/// - Execute "Session termination(\ ref PFDREC_CloseSession)" after the deletion. +/// \~english @param None +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @par Prerequisite +/// - This API must be called only when Availability of PFDRECThread is TRUE. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - \ref PFDREC_OpenSession failed. [RET_DREC_ERROR] +/// - \ref PFDREC_CloseSession failed. [RET_DREC_ERROR] +/// - Message synchronous communication (FrameworkunifiedInvokeSync) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Execute "Session starti(\ref PFDREC_OpenSession)" before the deletion.\n +/// Delete the trace of distribution application PF usage log \n +/// Execute "Session termination(\ref PFDREC_CloseSession)" after the deletion. \n +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see +/// None +//////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_DeleteTrcDeliveryPFUseLog_inSession(HANDLE hThread); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_WriteTrcOptBeaconDownLink +/// \~english @par Brief +/// Write Optical beacon down-link information trace to the memory. +/// \~english @param[in] data +/// T_DREC_TRCOPTBEACON_DOWN_LINK* - Pointer to the trace data of the Optical beacon down-link information. +/// \~english @param[in] num +/// u_int32_t - Number of written frames +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @par Prerequisite +/// - This API must be called only when Availability of PFDRECThread is TRUE. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - Opening the sending message queue (McOpenSender) failed. [RET_DREC_ERROR] +/// - Sending asynchronous data (McSend) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Write the Optical beacon down-link information trace to the memory.\n +/// \ref T_DREC_TRCOPTBEACON_DOWN_LINK structure\n +/// Data format is different by rcv type( \ref T_DREC_TRCOPTBEACON_DOWN_LINK.rcvkind )\n +/// 01h : Route signal information \n +/// Use the \ref T_DREC_TRCOPTBEACON_DOWN_LINK.downlinkinfo format destination.\n +/// 02h : Lack route signal information\n +/// 03h : No route signal information \n +/// Use the \ref T_DREC_TRCOPTBEACON_DOWN_LINK.rcvgpspositioningdata format destination.\n +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see +/// None +///////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_WriteTrcOptBeaconDownLink( + T_DREC_TRCOPTBEACON_DOWN_LINK* data, u_int32_t num); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_WriteTrcOptBeaconUpLink +/// \~english @par Brief +/// Write Optical beacon up-link information trace to the memory. +/// \~english @param[in] data +/// T_DREC_TRCOPTBEACON_UP_LINK* - Pointer to the trace data of the Optical beacon up-link information. +/// \~english @param[in] num +/// u_int32_t - Number of written frames +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @par Prerequisite +/// - This API must be called only when Availability of PFDRECThread is TRUE. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - Opening the sending message queue (McOpenSender) failed. [RET_DREC_ERROR] +/// - Sending asynchronous data (McSend) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Write the Optical beacon up-link information trace to the memory. +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see +/// None +///////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_WriteTrcOptBeaconUpLink(T_DREC_TRCOPTBEACON_UP_LINK* data, + u_int32_t num); + +/** @}*/ // end of Diag_DrecWriteTrc +/** @addtogroup Diag_Drec_MakerTrace + * @ingroup Diag + * @{ + */ +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_MakerTrace_DeliveryEntry +/// \~english @par Brief +/// Register the delivery destination application for Maker peculiarity trace +/// \~english @param[in] hApp +/// HANDLE - The handle for the delivery source application +/// \~english @param[in] notifyName +/// PCSTR - The thread name of the delivery source +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @retval RET_DREC_ERR_ARGUMENTS Incorrect argument +/// \~english @par Prerequisite +/// - This API must be called only when Availability of Diag Service is TRUE. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - The argument (notifyName) is NULL. [RET_DREC_ERR_ARGUMENTS] +/// - Opening the sending message queue (McOpenSender) failed. [RET_DREC_ERROR] +/// - Sending asynchronous data (McSend) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Fire and Forget only +/// \~english @par Detail +/// Registers the handle and thread name for the delivery destination application in the delivery registration table.\n +/// The client must call this API on a thread that needs to receive that are related to the Maker peculiarity trace in advance. +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see +/// None +///////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_MakerTrace_DeliveryEntry(HANDLE hApp, + PCSTR notifyName); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_MakerTrace_SizeRequest +/// \~english @par Brief +/// Request to get record size of Maker peculiarity trace. +/// \~english @param[in] hApp +/// HANDLE - The handle for the delivery source application +/// \~english @param[in] notifyName +/// PCSTR - The thread name of the delivery source +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @retval RET_DREC_ERR_ARGUMENTS Incorrect argument +/// \~english @par Prerequisite +/// - None +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - The argument (notifyName) is NULL. [RET_DREC_ERR_ARGUMENTS] +/// - Opening the sending message queue (McOpenSender) failed. [RET_DREC_ERROR] +/// - Sending asynchronous data (McSend) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Private +/// \~english @par Type +/// Fire and Forget only +/// \~english @par Detail +/// Request to get record size of Maker peculiarity trace to the registered application for delivery.\n +/// Message ID sended by DiagService is as follows\n +/// MSGID_DREC_MAKERTRACE_SIZEREQUEST +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see +/// None +///////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_MakerTrace_SizeRequest(HANDLE hApp, + PCSTR notifyName); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_MakerTrace_SizeResponce +/// \~english @par Brief +/// Send record size of Maker peculiarity trace to DiagService. +/// \~english @param[in] hApp +/// HANDLE - The handle for the delivery source application +/// \~english @param[in] notifyName +/// PCSTR - The thread name of the delivery source +/// \~english @param[in] size +/// u_int32_t - Data size (Unit: Byte) +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @retval RET_DREC_ERR_ARGUMENTS Incorrect argument +/// \~english @par Prerequisite +/// - This API must be called only when Availability of Diag Service is TRUE. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - The argument (notifyName) is NULL. [RET_DREC_ERR_ARGUMENTS] +/// - Opening the sending message queue (McOpenSender) failed. [RET_DREC_ERROR] +/// - Sending asynchronous data (McSend) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Fire and Forget only +/// \~english @par Detail +/// Send record size of Maker peculiarity trace to DiagService. +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see +/// None +///////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_MakerTrace_SizeResponce(HANDLE hApp, + PCSTR notifyName, + u_int32_t size); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_MakerTrace_OutputRequest +/// \~english @par Brief +/// Request to output of Maker peculiarity trace. +/// \~english @param[in] hApp +/// HANDLE - The handle for the delivery source application +/// \~english @param[in] notifyName +/// PCSTR - The thread name of the delivery source +/// \~english @param[in] output +/// PCSTR - Output destination +/// \~english @param[in] state +/// DREC_OUTPUT_STATE - Status (output start or output stop) +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @retval RET_DREC_ERR_ARGUMENTS Incorrect argument +/// \~english @par Prerequisite +/// - None +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - The argument (notifyName) is NULL. [RET_DREC_ERR_ARGUMENTS] +/// - Opening the sending message queue (McOpenSender) failed. [RET_DREC_ERROR] +/// - Sending asynchronous data (McSend) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Private +/// \~english @par Type +/// Fire and Forget only +/// \~english @par Detail +/// Request to output of Maker peculiarity trace to the registered application for delivery.\n +/// Message ID sended by DiagService is as follows\n +/// MSGID_DREC_MAKERTRACE_OUTPUTREQUEST +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see +/// None +///////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_MakerTrace_OutputRequest(HANDLE hApp, + PCSTR notifyName, + PCSTR output, + DREC_OUTPUT_STATE state); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_MakerTrace_OutputResponce +/// \~english @par Brief +/// Send output status of Maker peculiarity trace to DiagService. +/// \~english @param[in] hApp +/// HANDLE - The handle for the delivery source application +/// \~english @param[in] notifyName +/// PCSTR - The thread name of the delivery source +/// \~english @param[in] progress +/// u_int8_t - Progress rate (0 to 100) +/// \~english @param[in] state +/// DREC_OUTPUT_RESULT - Status (OK or NG) +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @retval RET_DREC_ERR_ARGUMENTS Incorrect argument +/// \~english @par Prerequisite +/// - This API must be called only when Availability of Diag Service is TRUE. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - The argument (notifyName) is NULL. [RET_DREC_ERR_ARGUMENTS] +/// - Opening the sending message queue (McOpenSender) failed. [RET_DREC_ERROR] +/// - Sending asynchronous data (McSend) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Fire and Forget only +/// \~english @par Detail +/// Send output status of Maker peculiarity trace to DiagService. +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see +/// None +///////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_MakerTrace_OutputResponce(HANDLE hApp, + PCSTR notifyName, + u_int8_t progress, + DREC_OUTPUT_RESULT state); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_MakerTrace_DeleteRequest +/// \~english @par Brief +/// Request to delete of Maker peculiarity trace. +/// \~english @param[in] hApp +/// HANDLE - The handle for the delivery source application +/// \~english @param[in] notifyName +/// PCSTR - The thread name of the delivery source +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @retval RET_DREC_ERR_ARGUMENTS Incorrect argument +/// \~english @par Prerequisite +/// - None +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - The argument (notifyName) is NULL. [RET_DREC_ERR_ARGUMENTS] +/// - Opening the sending message queue (McOpenSender) failed. [RET_DREC_ERROR] +/// - Sending asynchronous data (McSend) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Private +/// \~english @par Type +/// Fire and Forget only +/// \~english @par Detail +/// Request to delete of Maker peculiarity trace to the registered application for delivery.\n +/// Message ID sended by DiagService is as follows\n +/// MSGID_DREC_MAKERTRACE_DELETEREQUEST +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see +/// None +///////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_MakerTrace_DeleteRequest(HANDLE hApp, + PCSTR notifyName); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_MakerTrace_DeleteResponce +/// \~english @par Brief +/// Send result of delete Maker peculiarity trace to DiagService. +/// \~english @param[in] hApp +/// HANDLE - The handle for the delivery source application +/// \~english @param[in] notifyName +/// PCSTR - The thread name of the delivery source +/// \~english @param[in] state +/// DREC_OUTPUT_RESULT - Status (OK or NG) +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @retval RET_DREC_ERR_ARGUMENTS Incorrect argument +/// \~english @par Prerequisite +/// - This API must be called only when Availability of Diag Service is TRUE. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - The argument (notifyName) is NULL. [RET_DREC_ERR_ARGUMENTS] +/// - Opening the sending message queue (McOpenSender) failed. [RET_DREC_ERROR] +/// - Sending asynchronous data (McSend) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Fire and Forget only +/// \~english @par Detail +/// Send result of delete Maker peculiarity trace to DiagService. +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see +/// None +///////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_MakerTrace_DeleteResponce(HANDLE hApp, + PCSTR notifyName, + DREC_OUTPUT_RESULT state); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_MakerTrace_FuncStatusRequest +/// \~english @par Brief +/// Request to change function status of Maker peculiarity trace. +/// \~english @param[in] hApp +/// HANDLE - The handle for the delivery source application +/// \~english @param[in] notifyName +/// PCSTR - The thread name of the delivery source +/// \~english @param[in] func +/// DREC_OUTPUT_FUNC - Function status (function ON or ffunction OFF) +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @retval RET_DREC_ERR_ARGUMENTS Incorrect argument +/// \~english @par Prerequisite +/// - None +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - The argument (notifyName) is NULL. [RET_DREC_ERR_ARGUMENTS] +/// - Opening the sending message queue (McOpenSender) failed. [RET_DREC_ERROR] +/// - Sending asynchronous data (McSend) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Private +/// \~english @par Type +/// Fire and Forget only +/// \~english @par Detail +/// Request to change function status of Maker peculiarity trace to the registered application for delivery.\n +/// Message ID sended by DiagService is as follows\n +/// MSGID_DREC_MAKERTRACE_FUNCSTATUSREQUEST +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see +/// None +///////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_MakerTrace_FuncStatusRequest(HANDLE hApp, + PCSTR notifyName, + DREC_OUTPUT_FUNC func); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_MakerTrace_FuncStatusResponce +/// \~english @par Brief +/// Send result of change function status of Maker peculiarity trace to DiagService. +/// \~english @param[in] hApp +/// HANDLE - The handle for the delivery source application +/// \~english @param[in] notifyName +/// PCSTR - The thread name of the delivery source +/// \~english @param[in] state +/// DREC_OUTPUT_RESULT - Status (OK or NG) +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @retval RET_DREC_ERR_ARGUMENTS Incorrect argument +/// \~english @par Prerequisite +/// - This API must be called only when Availability of Diag Service is TRUE. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - The argument (notifyName) is NULL. [RET_DREC_ERR_ARGUMENTS] +/// - Opening the sending message queue (McOpenSender) failed. [RET_DREC_ERROR] +/// - Sending asynchronous data (McSend) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Fire and Forget only +/// \~english @par Detail +/// Send result of change function status of Maker peculiarity trace to DiagService. +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see +/// None +///////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_MakerTrace_FuncStatusResponce(HANDLE hApp, + PCSTR notifyName, + DREC_OUTPUT_RESULT state); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup DREC_MakerTrace_NotifyRestrict +/// \~english @par Brief +/// Restrict notify of Maker peculiarity trace +/// \~english @param[in] hApp +/// HANDLE - The handle for the delivery source application +/// \~english @param[in] notifyName +/// PCSTR - The thread name of the delivery source +/// \~english @param[in] notifyRestrict +/// DREC_NOTIFY_RESTRICT - Restrict kind of Maker peculiarity trace +/// \~english @retval RET_DREC_NORMAL Normal end +/// \~english @retval RET_DREC_ERROR Abnormal end +/// \~english @retval RET_DREC_ERR_ARGUMENTS Incorrect argument +/// \~english @par Prerequisite +/// - This API must be called only when Availability of Diag Service is TRUE. +/// \~english @par Change of internal state +/// - The internal state is not changed. +/// \~english @par Conditions of processing failure +/// - The argument (notifyName) is NULL. [RET_DREC_ERR_ARGUMENTS] +/// - Opening the sending message queue (McOpenSender) failed. [RET_DREC_ERROR] +/// - Sending asynchronous data (McSend) failed. [RET_DREC_ERROR] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Fire and Forget only +/// \~english @par Detail +/// Restrict trace notifications triggered by the specified notifyRestrict. +/// Restrict notification(MessageID) are as follows. +/// - MSGID_DREC_MAKERTRACE_SIZEREQUEST +/// - MSGID_DREC_MAKERTRACE_OUTPUTREQUEST +/// - MSGID_DREC_MAKERTRACE_DELETEREQUEST +/// - MSGID_DREC_MAKERTRACE_FUNCSTATUSREQUEST +/// \n +/// if this API is not called, not restrict(Status is DREC_NOTIFY_RESTRICT_NONE). +/// \~english @par +/// - include MM_DREC_API.h +/// - Library libMM_DREC_API.so +/// \~english @see +/// DREC_MakerTrace_FuncStatusRequest, DREC_MakerTrace_DeleteRequest, +/// DREC_MakerTrace_OutputRequest, DREC_MakerTrace_SizeRequest +///////////////////////////////////////////////////////////////////////////////////// +extern RET_DREC_API DREC_MakerTrace_NotifyRestrict(HANDLE hApp, + PCSTR notifyName, + DREC_NOTIFY_RESTRICT notifyRestrict); +#ifdef __cplusplus +} +#endif // __cplusplus +/** @}*/ // end of Diag_Drec_MakerTrace +/** @}*/ // end of Diag +/** @}*/ // end of Vehicle +/** @}*/ // end of ApplicationManagement +#endif // __MM_DREC_API_H__ + diff --git a/stub/diag_record/library_dummy_drec/src/MM_DREC_API.cpp b/stub/diag_record/library_dummy_drec/src/MM_DREC_API.cpp new file mode 100644 index 00000000..5ecd9433 --- /dev/null +++ b/stub/diag_record/library_dummy_drec/src/MM_DREC_API.cpp @@ -0,0 +1,450 @@ +/* + * @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. + */ + +#include "MM_DREC_API.h" + +RET_DREC_API DREC_ChangeRecording(E_DREC_REC state) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_AccOffOn(E_DREC_ACC state) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_WriteTrcPwr(T_DREC_TRCPWR* data, u_int32_t num) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_WriteTrcPwr_Tick(T_DREC_TRCPWR_WITHSYSTIME* data, u_int32_t num, u_int32_t tick) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_WriteTrcMode(T_DREC_TRCMODE* data, u_int32_t num) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_WriteTrcVehicleSignal(T_DREC_TRCVEHICLESIGNAL* data, u_int32_t num) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_WriteTrcKey(T_DREC_TRCKEY* data, u_int32_t num) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_WriteTrcKey_Exp(T_DREC_TRCKEY_EXP* data, u_int32_t num) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_WriteTrcKey_Voice(T_DREC_TRCKEY_VOICE* data, u_int32_t num) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_WriteTrcErr(T_DREC_TRCERR* data, u_int32_t num) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_WriteTrcCan(T_DREC_TRCCAN* data, u_int32_t num, u_int32_t tick) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_WriteTrcOwnCarPosition(T_DREC_TRCAWDATA* data) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_WriteTrcDeliveryPFWatchLog(T_DREC_TRCAWDATA* data) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_WriteTrcDeliveryPFUseLog(T_DREC_TRCAWDATA* data) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_WriteTrcBT(T_DREC_TRCBT* data, u_int32_t num) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_WriteTrcBTInternal(u_int8_t* data, u_int32_t size) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_WriteTrcWiFiInternal(u_int8_t* data, u_int32_t size) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_WriteTrcWiFi(T_DREC_TRCWIFI* data, u_int32_t num) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_WriteTrcCenter(u_int8_t* data, u_int32_t size) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_WriteTrcVersion(T_DREC_TRCVERSION* data, u_int32_t num) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_WriteTrcDCM(u_int8_t* data, u_int32_t size) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_WriteTrcDSRC(T_DREC_TRCAWDATA* data) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_WriteTrc_CWORD17_(T_DREC_TRCCAN* data, u_int32_t num, u_int32_t tick) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_WriteTrcWave(T_DREC_TRCWAVE* data, u_int32_t num) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_WriteTrcUSB(u_int8_t* data, u_int32_t size) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_GetRecordSize(E_PFDREC_CATEGORY_TYPE type, u_int32_t *num) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_GetRecordData(E_PFDREC_CATEGORY_TYPE type, u_int32_t num, + u_int32_t record_ptr, u_int8_t *data, u_int32_t *out_num) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_GetRecordState(E_DREC_REC* state) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_SetSysemTimeDifference(u_int32_t data) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_WriteTrcGPS(T_DREC_TRCGPS* data) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + + +RET_DREC_API DREC_WriteTrcUSBETC(T_DREC_TRCAWDATA* data) +{ + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_WriteTrcUplink(T_DREC_TRCAWDATA* data) +{ + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_WriteTrcETCWatch(T_DREC_TRCETCWATCH* data, u_int32_t num) +{ + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_WriteTrcRoB(T_DREC_TRCROB* data, u_int32_t num) +{ + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_WriteTrcEvaluation(u_int8_t* data, u_int32_t size) +{ + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_DeleteTrcDeliveryPFUseLog(void) +{ + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_DeleteTrcDeliveryPFUseLog_inSession(HANDLE hThread) +{ + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_WriteTrcOptBeaconDownLink(T_DREC_TRCOPTBEACON_DOWN_LINK* data, u_int32_t num) +{ + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_WriteTrcOptBeaconUpLink(T_DREC_TRCOPTBEACON_UP_LINK* data, u_int32_t num) +{ + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_MakerTrace_DeliveryEntry(HANDLE hApp, + PCSTR notifyName) +{ + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_MakerTrace_SizeRequest(HANDLE hApp, + PCSTR notifyName) +{ + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_MakerTrace_SizeResponce(HANDLE hApp, + PCSTR notifyName, + u_int32_t size) +{ + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_MakerTrace_OutputRequest(HANDLE hApp, + PCSTR notifyName, + PCSTR output, + DREC_OUTPUT_STATE state) +{ + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_MakerTrace_OutputResponce(HANDLE hApp, + PCSTR notifyName, + u_int8_t progress, + DREC_OUTPUT_RESULT state) +{ + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_MakerTrace_DeleteRequest(HANDLE hApp, + PCSTR notifyName) +{ + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_MakerTrace_DeleteResponce(HANDLE hApp, + PCSTR notifyName, + DREC_OUTPUT_RESULT state) +{ + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_MakerTrace_FuncStatusRequest(HANDLE hApp, + PCSTR notifyName, + DREC_OUTPUT_FUNC func) +{ + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_MakerTrace_FuncStatusResponce(HANDLE hApp, + PCSTR notifyName, + DREC_OUTPUT_RESULT state) +{ + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + +RET_DREC_API DREC_MakerTrace_NotifyRestrict(HANDLE hApp, + PCSTR notifyName, + DREC_NOTIFY_RESTRICT notifyRestrict) +{ + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_DREC_NORMAL; +} + diff --git a/stub/diag_record/library_record_api/Makefile b/stub/diag_record/library_record_api/Makefile new file mode 100644 index 00000000..9efbd4f0 --- /dev/null +++ b/stub/diag_record/library_record_api/Makefile @@ -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. +# + +######### installed shared library(*.so) ############# +INST_SHLIBS = libDiagRecordAPI + +######### install headers(*.h) ############# +INST_HEADERS += PFDREC_API.h + +######### compiled sources ############# +libDiagRecordAPI_SRCS = DiagRecordAPI.cpp + +######### add source path ############# +VPATH += ./include/$(COMPONENT_NAME) ./src + +######### add include path ############# +CPPFLAGS += -I./include +CPPFLAGS += -I./include/stub + +######### add compile option ############# +LDFLAGS += -Wl,--no-as-needed +LDFLAGS += -Wl,--no-undefined +CPPFLAGS += -Werror=implicit-function-declaration +CPPFLAGS += -Werror=format-security + +CPPFLAGS += -Wconversion +CPPFLAGS += -Wint-to-pointer-cast +CPPFLAGS += -Wpointer-arith +CPPFLAGS += -Wformat +######### linked library (dynamic) ############# +LDLIBS += -Wl,-Bdynamic -lNS_FrameworkUnified +LDLIBS += -Wl,-Bdynamic -lstdc++ + +include ../../stub.mk diff --git a/stub/diag_record/library_record_api/include/stub/PFDREC_API.h b/stub/diag_record/library_record_api/include/stub/PFDREC_API.h new file mode 100644 index 00000000..b4ad71cf --- /dev/null +++ b/stub/diag_record/library_record_api/include/stub/PFDREC_API.h @@ -0,0 +1,975 @@ +/* + * @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 PFDREC_API.h + * @brief diag_record API header file + */ +/******************************************************************************* + * FILE : PFDREC_API.h + * SYSTEM : LinuxPF + * SUBSYSTEM : + * TITLE : Diag record managementfeature include definition + ******************************************************************************/ + +#ifndef DIAG_RECORD_LIBRARY_RECORD_API_INCLUDE_VEHICLE_SERVICE_PFDREC_API_H_ +#define DIAG_RECORD_LIBRARY_RECORD_API_INCLUDE_VEHICLE_SERVICE_PFDREC_API_H_ + +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup vehicle_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup diag_record + * @ingroup vehicle_service + * @{ + */ + +#include <time.h> +#include <agl_thread.h> +#include <native_service/frameworkunified_types.h> + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \~english The definition of the processing result value + */ +typedef int RET_PFDREC_API; + +/** + * \~english The definition of the diag_record thread + */ +#ifndef TN_PFDRECTHREAD +#define TN_PFDRECTHREAD "PFDRECThread" +#endif + +/** + * \~english The definition of the diag_record thread availability. + */ +#define NTFY_PFDRECThread_Availability "PFDRECThread/Availability" + +/** + * \~english The definition of the processing normal result. + */ +#define RET_PFDREC_NORMAL (0) +/** + * \~english The definition of the processing abnormal result. + */ +#define RET_PFDREC_ERROR (-1) +/** + * \~english The definition of the invalid arguments result. + */ +#define RET_PFDREC_ERR_ARGUMENTS (-2) +/** + * \~english The definition of the stop status result. + */ +#define RET_PFDREC_STOP (-3) + +/** + * \~english The definition of the invalid time information + */ +#define PFDREC_TIME_INFO_INVALID (0) + +/** + * \~english The definition of the invalid unique ID + */ +#define PFDREC_UNIQUE_INVALID (0xFFFFFFFFFFFFFFFF) + + +/*! @~english The size of the record frame of PWR */ +#define PFDREC_FRAME_SIZE_TRC_PWR (16) +/*! @~english The size of the record frame of MODE */ +#define PFDREC_FRAME_SIZE_TRC_MODE (16) +/*! @~english The size of the record frame of KEY */ +#define PFDREC_FRAME_SIZE_TRC_KEY (16) +/*! @~english The size of the record frame of ERR */ +#define PFDREC_FRAME_SIZE_TRC_ERR (16) +/*! @~english The size of the record frame of CAN */ +#define PFDREC_FRAME_SIZE_TRC_CAN (16) +/*! @~english The size of the record frame of DAPS */ +#define PFDREC_FRAME_SIZE_TRC_DAPS (16) +/*! @~english The size of the record frame of DAPU */ +#define PFDREC_FRAME_SIZE_TRC_DAPU (16) +/*! @~english The size of the record frame of BT */ +#define PFDREC_FRAME_SIZE_TRC_BT (16) +/*! @~english The size of the record frame of BT_INTERNAL */ +#define PFDREC_FRAME_SIZE_TRC_BT_INTERNAL (16) +/*! @~english The size of the record frame of WIFI */ +#define PFDREC_FRAME_SIZE_TRC_WIFI (16) +/*! @~english The size of the record frame of WIFI_INTERNAL */ +#define PFDREC_FRAME_SIZE_TRC_WIFI_INTERNAL (16) +/*! @~english The size of the record frame of CENTER */ +#define PFDREC_FRAME_SIZE_TRC_CENTER (16) +/*! @~english The size of the record frame of VERSION */ +#define PFDREC_FRAME_SIZE_TRC_VERSION (16) +/*! @~english The size of the record frame of DCM */ +#define PFDREC_FRAME_SIZE_TRC_DCM (16) +/*! @~english The size of the record frame of ETC */ +#define PFDREC_FRAME_SIZE_TRC_ETC (16) + +/*! @~english The size of the record frame of USB_ETC */ +#define PFDREC_FRAME_SIZE_TRC_USB_ETC (16) +/*! @~english The size of the record frame of DSRC_UPLINK */ +#define PFDREC_FRAME_SIZE_TRC_DSRC_UPLINK (16) + +/*! @~english The size of the record frame of _CWORD119_ */ +#define PFDREC_FRAME_SIZE_TRC__CWORD119_ (16) +/*! @~english The size of the record frame of RADIO */ +#define PFDREC_FRAME_SIZE_TRC_RADIO (16) +/*! @~english The size of the record frame of USB_UNIT */ +#define PFDREC_FRAME_SIZE_TRC_USB_UNIT (16) +/*! @~english The size of the record frame of USB_API */ +#define PFDREC_FRAME_SIZE_TRC_USB_API (16) +/*! @~english The size of the record frame of ETH */ +#define PFDREC_FRAME_SIZE_TRC_ETH (16) +/*! @~english The size of the record frame of ETC_WATCH */ +#define PFDREC_FRAME_SIZE_TRC_ETC_WATCH (16) +/*! @~english The size of the record frame of ROB */ +#define PFDREC_FRAME_SIZE_TRC_ROB (16) +/*! @~english The size of the record frame of EVAL */ +#define PFDREC_FRAME_SIZE_TRC_EVAL (16) +/*! @~english The size of the record frame of OPT_BEACON_DOWN */ +#define PFDREC_FRAME_SIZE_TRC_OPT_BEACON_DOWN (16) +/*! @~english The size of the record frame of OPT_BEACON_UP */ +#define PFDREC_FRAME_SIZE_TRC_OPT_BEACON_UP (16) + +/** + * \~english The definition of the callback function. + */ +typedef void (*PFDREC_CALLBACK_FUNC)(RET_PFDREC_API result); + +/** + * \~english The definition of the record function status + */ +typedef enum _E_PFDREC_FUNC { + /*! @~english The record function is ON */ + E_PFDREC_FUNC_ON = 0, + /*! @~english The record function is OFF */ + E_PFDREC_FUNC_OFF +}E_PFDREC_FUNC; + +/** + * \~english The definition of the category + */ +typedef enum _E_PFDREC_CATEGORY_TYPE { + /*! @~english The defination of PWR trace*/ + E_PFDREC_CATEGORY_TRC_PWR = 0, + /*! @~english The defination of MODE trace */ + E_PFDREC_CATEGORY_TRC_MODE, + /*! @~english The defination of KEY trace */ + E_PFDREC_CATEGORY_TRC_KEY, + /*! @~english The defination of ERR trace */ + E_PFDREC_CATEGORY_TRC_ERR, + /*! @~english The defination of CAN trace */ + E_PFDREC_CATEGORY_TRC_CAN, + /*! @~english The defination of DAPS trace */ + E_PFDREC_CATEGORY_TRC_DAPS, + /*! @~english The defination of DAPU trace */ + E_PFDREC_CATEGORY_TRC_DAPU, + /*! @~english The defination of BT trace */ + E_PFDREC_CATEGORY_TRC_BT, + /*! @~english The defination of BT_INTERNAL trace */ + E_PFDREC_CATEGORY_TRC_BT_INTERNAL, + /*! @~english The defination of WIFI trace */ + E_PFDREC_CATEGORY_TRC_WIFI, + /*! @~english The defination of WIFI_INTERNAL trace */ + E_PFDREC_CATEGORY_TRC_WIFI_INTERNAL, + /*! @~english The defination of CENTER trace */ + E_PFDREC_CATEGORY_TRC_CENTER, + /*! @~english The defination of VERSION trace */ + E_PFDREC_CATEGORY_TRC_VERSION, + /*! @~english The defination of DCM trace */ + E_PFDREC_CATEGORY_TRC_DCM, + /*! @~english The defination of ETC trace */ + E_PFDREC_CATEGORY_TRC_ETC, + + /*! @~english The defination of USB_ETC trace */ + E_PFDREC_CATEGORY_TRC_USB_ETC, + /*! @~english The defination of DSRC_UPLINK trace */ + E_PFDREC_CATEGORY_TRC_DSRC_UPLINK, + + /*! @~english The defination of _CWORD119_ trace */ + E_PFDREC_CATEGORY_TRC__CWORD119_, + /*! @~english The defination of RADIO trace */ + E_PFDREC_CATEGORY_TRC_RADIO, + /*! @~english The defination of USB_UNIT trace */ + E_PFDREC_CATEGORY_TRC_USB_UNIT, + /*! @~english The defination of USB_API trace */ + E_PFDREC_CATEGORY_TRC_USB_API, + /*! @~english The defination of ETH trace*/ + E_PFDREC_CATEGORY_TRC_ETH, + /*! @~english The defination of ETC_WATCH trace */ + E_PFDREC_CATEGORY_TRC_ETC_WATCH, + /*! @~english The defination of ROB trace */ + E_PFDREC_CATEGORY_TRC_ROB, + /*! @~english The defination of EVAL trace */ + E_PFDREC_CATEGORY_TRC_EVAL, + /*! @~english The defination of OPT_BEACON_DOWN trace */ + E_PFDREC_CATEGORY_TRC_OPT_BEACON_DOWN, + /*! @~english The defination of OPT_BEACON_UP trace */ + E_PFDREC_CATEGORY_TRC_OPT_BEACON_UP, + + /*! @~english The defination of max value */ + E_PFDREC_CATEGORY_TRC_MAX +}E_PFDREC_CATEGORY_TYPE; + +/** + * \~english The definition of the trace data extraction mode + */ +typedef enum _E_PFDREC_EXTRACT_MODE { + /*! @~english The extraction mode is OFF */ + E_PFDREC_EXTRACT_MODE_OFF = 0, + /*! @~english The extraction mode is ON */ + E_PFDREC_EXTRACT_MODE_ON +}E_PFDREC_EXTRACT_MODE; + + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup PFDREC_FuncStartStop +/// \~english @par Summary +/// - Switch the ON/OFF status of the record function +/// \~english @param [in] status The ON/OFF status of the record function\n +/// Set the one of the following values.\n +/// E_PFDREC_FUNC_ON(The record function is ON)\n +/// E_PFDREC_FUNC_OFF(The record function is OFF)\n +/// See E_PFDREC_FUNC. +/// \~english @retval RET_PFDREC_NORMAL Success +/// \~english @retval RET_PFDREC_ERROR Failure +/// \~english @retval RET_PFDREC_ERR_ARGUMENTS Invalid parameter +/// \~english @par Precondition +/// - BackupMgr is available. +/// - The generation/initialization of dispatcher for application(PadCreateDispatcherWithoutLoop etc.) is done. +/// - The session with the MM Diag Recorder has been established. +/// - The availablity of the NTFY_PFDRECThread_Availability is already TRUE. +/// \~english @par Changes in internal status +/// - There is no changes in internal status when the API is called. +/// \~english @par Conditions of processing failure +/// - When the argument ON/OFF status is invalid. [RET_PFDREC_ERR_ARGUMENTS] +/// - When the message queue handle for transmission is NULL. [RET_PFDREC_ERROR] +/// - When failed to transmit synchronous message to MM Diag Recorder. [RET_PFDREC_ERROR] +/// - When the length of the recieved synchronous message is different from the length of the buffer. +/// [RET_PFDREC_ERROR] +/// - When MM Diag Recorder failed to switch the function ON/OFF status. [RET_PFDREC_ERROR] +/// \~english @par Details +/// - The API is assumed to be executed only from the diagnosis service. +/// - Start or stop the transmission of record. +/// - When the function is OFF, no data is executed even if the data recording API is called, +/// and RET_PFDREC_NORMAL is returned. +/// - Record the ON/OFF information into the backup memory. +/// - Restore the retained value to the default E_PFDREC_FUNC_ON at +B OFF / factory shipment. +/// \~english @par Classification +/// - Public +/// \~english @par Type +/// - Sync +/// \~english @see PFDREC_OpenSession, FrameworkunifiedInvokeSync +///////////////////////////////////////////////////////////////////////////////////// +RET_PFDREC_API PFDREC_FuncStartStop(E_PFDREC_FUNC status); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup PFDREC_DeleteData +/// \~english @par Summary +/// - Delete the recorded data. +/// \~english @param [in] func callback function\n +/// \~english @retval RET_PFDREC_NORMAL Success +/// \~english @retval RET_PFDREC_ERROR Failure +/// \~english @retval RET_PFDREC_ERR_ARGUMENTS Invalid parameter +/// \~english @par Precondition +/// - The generation/initialization of dispatcher for application(PadCreateDispatcherWithoutLoop etc.) is done. +/// - The session with the MM Diag Recorder has been established. +/// - The availablity of the NTFY_PFDRECThread_Availability is already TRUE. +/// \~english @par Changes in internal status +/// - There is no changes in internal status when the API is called. +/// \~english @par Conditions of processing failure +/// - When the argument callback function is NULL. [RET_PFDREC_ERR_ARGUMENTS] +/// - When the session with the MM Diag Recorder has not been established yet. [RET_PFDREC_ERROR] +/// - When the callback function of deletion end was already setted. [RET_PFDREC_ERROR] +/// - When failed to regist the callback information to the dispatcher. [RET_PFDREC_ERROR] +/// - When the message queue handle for transmission is NULL. [RET_PFDREC_ERROR] +/// - When failed to transmit asynchronous message to MM Diag Recorder. [RET_PFDREC_ERROR] +/// \~english @par Details +/// - The API is assumed to be executed only from the diagnosis service. +/// - To delete the data recorded in the temporary buffer and nonvolatile memory. +/// - The callback function specified by argument will be called when data deletion end. +/// - typedef void (*DERC_CALLBACK_FUNC)( RET_PFDREC_API result);\n +/// The deletion result is stored in the argument result when the callback function is called. +/// \~english @par Classification +/// - Public +/// \~english @par Type +/// - Method +/// \~english @see PFDREC_OpenSession, FrameworkunifiedAttachCallbackToDispatcher, FrameworkunifiedSendMsg +///////////////////////////////////////////////////////////////////////////////////// +RET_PFDREC_API PFDREC_DeleteData(PFDREC_CALLBACK_FUNC func); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup PFDREC_DeleteIndividual +/// \~english @par Summary +/// - Delete the individual recorded data. +/// \~english @param [in] category The category information of the trace data to record\n +/// See E_PFDREC_CATEGORY_TYPE. +/// \~english @retval RET_PFDREC_NORMAL Success +/// \~english @retval RET_PFDREC_ERROR Failure +/// \~english @retval RET_PFDREC_ERR_ARGUMENTS Invalid parameter +/// \~english @par Precondition +/// - The generation/initialization of dispatcher for application(PadCreateDispatcherWithoutLoop etc.) is done. +/// - The session with the MM Diag Recorder has been established. +/// - The availablity of the NTFY_PFDRECThread_Availability is already TRUE. +/// \~english @par Changes in internal status +/// - There is no changes in internal status when the API is called. +/// \~english @par Conditions of processing failure +/// - When the argument category is invalid. [RET_PFDREC_ERR_ARGUMENTS] +/// - When the message queue handle for transmission is NULL. [RET_PFDREC_ERROR] +/// - When failed to the transmit synchronous message [RET_PFDREC_ERROR] +/// - When the length of the recieved synchronous message is different from the length of the buffer. +/// [RET_PFDREC_ERROR] +/// - When the argument category is invalid in MM Diag recorder management information table. [RET_PFDREC_ERROR] +/// - When the MM Diag Recorder failed to allocate memory for writting the recorded data. [RET_PFDREC_ERROR] +/// - When failed to write the initialization date to ROM. [RET_PFDREC_ERROR] +/// \~english @par Details +/// - The API is assumed to be executed only from the diagnosis service. +/// - To delete the individual data recorded in the temporary buffer and nonvolatile memory. +/// \~english @par Classification +/// - Public +/// \~english @par Type +/// - Sync +/// \~english @see PFDREC_OpenSession, FrameworkunifiedInvokeSync +///////////////////////////////////////////////////////////////////////////////////// +RET_PFDREC_API PFDREC_DeleteIndividual(E_PFDREC_CATEGORY_TYPE category); + + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup PFDREC_ComDataBackup +/// \~english @par Summary +/// - Record the trace data. +/// \~english @param [in] category The category information of the trace data to record\n +/// See E_PFDREC_CATEGORY_TYPE. +/// \~english @param [in] time_info The time information. +/// \~english @param [in] frame_num The number of frames of the trace data to record. +/// \~english @param [in] data The trace data to record\n +/// The size of the data buffer is the number of frames * 1 frame size,\n +/// and should be secured by the caller. +/// \~english @retval RET_PFDREC_NORMAL Success +/// \~english @retval RET_PFDREC_ERROR Failure +/// \~english @retval RET_PFDREC_ERR_ARGUMENTS Invalid parameter +/// \~english @par Precondition +/// - The generation/initialization of dispatcher for application(PadCreateDispatcherWithoutLoop etc.) is done. +/// - The session with the MM Diag Recorder has been established. +/// - The availablity of the NTFY_PFDRECThread_Availability is already TRUE. +/// \~english @par Changes in internal status +/// - There is no changes in internal status when the API is called. +/// \~english @par Conditions of processing failure +/// - When the argument data is NULL. [RET_PFDREC_ERR_ARGUMENTS] +/// - When the argument category is invalid. [RET_PFDREC_ERR_ARGUMENTS] +/// - When the argument frame_num is 0. [RET_PFDREC_ERR_ARGUMENTS] +/// - When the argument frame_num exceeds the upper limit value (100). [RET_PFDREC_ERR_ARGUMENTS] +/// - When the frame size of the argument category is 0. [RET_PFDREC_ERR_ARGUMENTS] +/// - When failed to get the message queue handle for transmission to MM Diag Recorder. [RET_PFDREC_ERROR] +/// - When failed to the transmit asynchronous message. [RET_PFDREC_ERROR] +/// \~english @par Details +/// - The API is assumed to be executed only from the diagnosis service. +/// - Record the trace data into the buffer temporarily, and when the size of data in buffer reaches the maximum, +/// move the data to ROM firstly. +/// \~english @par Classification +/// - Public +/// \~english @par Type +/// - Fire and Forget +/// \~english @see PFDREC_OpenSession, FrameworkunifiedAttachCallbackToDispatcher, FrameworkunifiedSendMsg +/// +///////////////////////////////////////////////////////////////////////////////////// +RET_PFDREC_API PFDREC_ComDataBackup(E_PFDREC_CATEGORY_TYPE category, + time_t time_info, + uint32_t frame_num, + uint8_t* data); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup PFDREC_ReadMemData +/// \~english @par Summary +/// - Read memory data. +/// \~english @param [in] category The category information of the trace data to read\n +/// See E_PFDREC_CATEGORY_TYPE. +/// \~english @param [in] offset The start position of the frame to read\n +/// The offset is 0, which means the earliest recorded data. +/// \~english @param [in] read_num The number of the frames to read. +/// \~english @param [out] data The readed trace data\n +/// The size of the data buffer is the number of frames * 1 frame size,\n +/// and should be secured by the caller. +/// \~english @param [out] out_num The number of readed trace data. +/// \~english @retval RET_PFDREC_NORMAL Success +/// \~english @retval RET_PFDREC_ERROR Failure +/// \~english @retval RET_PFDREC_ERR_ARGUMENTS Invalid parameter +/// \~english @par Precondition +/// - The generation/initialization of dispatcher for application(PadCreateDispatcherWithoutLoop etc.) is done. +/// - The session with the MM Diag Recorder has been established. +/// - The availablity of the NTFY_PFDRECThread_Availability is already TRUE. +/// \~english @par Changes in internal status +/// - There is no changes in internal status when the API is called. +/// \~english @par Conditions of processing failure +/// - The argument data is NULL. [RET_PFDREC_ERR_ARGUMENTS] +/// - The argument read_num is NULL. [RET_PFDREC_ERR_ARGUMENTS] +/// - When the argument category is invalid. [RET_PFDREC_ERR_ARGUMENTS] +/// - When the argument read_num is 0. [RET_PFDREC_ERR_ARGUMENTS] +/// - When the argument read_num exceeds the upper limit value (100). [RET_PFDREC_ERR_ARGUMENTS] +/// - When the frame size of the argument category is 0 [RET_PFDREC_ERR_ARGUMENTS] +/// - When the message queue handle for transmission is NULL. [RET_PFDREC_ERROR] +/// - When failed to the transmit synchronous message. [RET_PFDREC_ERROR] +/// - When the length of the recieved synchronous message is different from the length of the buffer. +/// [RET_PFDREC_ERROR] +/// - When the argument category is invalid in the record management information table of MM Diag recorder. +/// [RET_PFDREC_ERROR] +/// - When the MM Diag Recorder failed to allocate memory for reading out the recorded data. [RET_PFDREC_ERROR] +/// - When the MM Diag Recorder failed in the process of reading the recorded data. [RET_PFDREC_ERROR] +/// \~english @par Details +/// - The API is assumed to be executed from the diagnosis service and the AppDataReporting service,\n +/// which is a supplier-specific service. +/// - Read the number of recorded data from the position specified by offset. +/// - When the end of the recorded data is reached, stop reading and return the number of readed data. +/// \~english @par Classification +/// - Public +/// \~english @par Type +/// - Sync +/// \~english @see PFDREC_OpenSession, FrameworkunifiedInvokeSync +/// +///////////////////////////////////////////////////////////////////////////////////// +RET_PFDREC_API PFDREC_ReadMemData(E_PFDREC_CATEGORY_TYPE category, + uint32_t offset, + uint32_t read_num, + uint8_t* data, + uint32_t* out_num); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup PFDREC_GetDataInfo +/// \~english @par Summary +/// - Get the information of the recorded data. +/// \~english @param [in] category The category information\n +/// See E_PFDREC_CATEGORY_TYPE. +/// \~english @param [out] frame_num The number of the recorded frames. +/// \~english @retval RET_PFDREC_NORMAL Success +/// \~english @retval RET_PFDREC_ERROR Failure +/// \~english @retval RET_PFDREC_ERR_ARGUMENTS Invalid parameter +/// \~english @par Precondition +/// - The generation/initialization of dispatcher for application(PadCreateDispatcherWithoutLoop etc.) is done. +/// - The session with the MM Diag Recorder has been established. +/// - The availablity of the NTFY_PFDRECThread_Availability is already TRUE. +/// \~english @par Changes in internal status +/// - There is no changes in internal status when the API is called. +/// \~english @par Conditions of processing failure +/// - When the argument frame_num is NULL. [RET_PFDREC_ERR_ARGUMENTS] +/// - When the argument category is invalid. [RET_PFDREC_ERR_ARGUMENTS] +/// - When the message queue handle for transmission is NULL. [RET_PFDREC_ERROR] +/// - When failed to the transmit synchronous message. [RET_PFDREC_ERROR] +/// - When the length of the recieved synchronous message is different from the length of the buffer. +/// [RET_PFDREC_ERROR] +/// - When the argument category is invalid in the record management information table of MM Diag recorder. +/// [RET_PFDREC_ERROR] +/// \~english @par Details +/// - The API is assumed to be executed from the diagnosis service and the AppDataReporting service,\n +/// which is a supplier-specific service. +/// - Return the number of frames recorded in the record data area of the specified category. +/// \~english @par Classification +/// - Public +/// \~english @par Type +/// - Sync +/// \~english @see PFDREC_OpenSession, FrameworkunifiedInvokeSync +/// +///////////////////////////////////////////////////////////////////////////////////// +RET_PFDREC_API PFDREC_GetDataInfo(E_PFDREC_CATEGORY_TYPE category, + uint32_t* frame_num); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup PFDREC_GetFuncStartStop +/// \~english @par Summary +/// - Get the ON/OFF status of the record function. +/// \~english @param [out] status The ON/OFF status of the record function\n +/// Set the one of the following values.\n +/// E_PFDREC_FUNC_ON(The record function is ON)\n +/// E_PFDREC_FUNC_OFF(The record function is OFF)\n +/// See E_PFDREC_FUNC. +/// \~english @retval RET_PFDREC_NORMAL Success +/// \~english @retval RET_PFDREC_ERROR Failure +/// \~english @retval RET_PFDREC_ERR_ARGUMENTS Invalid parameter +/// \~english @par Precondition +/// - The generation/initialization of dispatcher for application(PadCreateDispatcherWithoutLoop etc.) is done. +/// - The session with the MM Diag Recorder has been established. +/// - The availablity of the NTFY_PFDRECThread_Availability is already TRUE. +/// \~english @par Changes in internal status +/// - There is no changes in internal status when the API is called. +/// \~english @par Conditions of processing failure +/// - When the argument ON/OFF status is NULL. [RET_PFDREC_ERR_ARGUMENTS] +/// - When the message queue handle for transmission is NULL. [RET_PFDREC_ERROR] +/// - When failed to transmit synchronous message to MM Diag Recorder. [RET_PFDREC_ERROR] +/// - When the length of the recieved synchronous message is different from the length of the buffer. +/// [RET_PFDREC_ERROR] +/// \~english @par Details +/// - The API is assumed to be executed only from the diagnosis service. +/// \~english @par Classification +/// - Public +/// \~english @par Type +/// - Sync +/// \~english @see PFDREC_OpenSession, FrameworkunifiedInvokeSync +/// +///////////////////////////////////////////////////////////////////////////////////// +RET_PFDREC_API PFDREC_GetFuncStartStop(E_PFDREC_FUNC* status); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup PFDREC_OutputData +/// \~english @par Summary +/// - Move the recorded data to ROM. +/// \~english @retval RET_PFDREC_NORMAL Success +/// \~english @retval RET_PFDREC_ERROR Failure +/// \~english @par Precondition +/// - The generation/initialization of dispatcher for application(PadCreateDispatcherWithoutLoop etc.) is done. +/// - The session with the MM Diag Recorder has been established. +/// - The availablity of the NTFY_PFDRECThread_Availability is already TRUE. +/// \~english @par Changes in internal status +/// - There is no changes in internal status when the API is called. +/// \~english @par Conditions of processing failure +/// - When the message queue handle for transmission is NULL. [RET_PFDREC_ERROR] +/// - When failed to the transmit synchronous message [RET_PFDREC_ERROR] +/// - When the length of the recieved synchronous message is different from the length of the buffer. +/// [RET_PFDREC_ERROR] +/// - When MM Diag Recorder failed to move the recorded data to ROM. [RET_PFDREC_ERROR] +/// \~english @par Details +/// - The API is assumed to be executed only from the diagnosis service. +/// - Move the data recorded in the temporary buffer to the ROM. +/// \~english @par Classification +/// - Public +/// \~english @par Type +/// - Sync +/// \~english @see PFDREC_OpenSession, FrameworkunifiedInvokeSync +/// +///////////////////////////////////////////////////////////////////////////////////// +RET_PFDREC_API PFDREC_OutputData(void); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup PFDREC_ReadData +/// \~english @par Summary +/// - Read the recorded data from the specified position. +/// \~english @param [in] category The category information of the trace data to read\n +/// See E_PFDREC_CATEGORY_TYPE. +/// \~english @param [in] unique_id The unique ID of the frame to start reading\n +/// If the unique_id is invalid, return error and do not read. +/// \~english @param [in] read_num The number of frames to read. +/// \~english @param [out] data The readed data.\n +/// The size of the data buffer is the number of frames * 1 frame size,\n +/// and should be secured by the caller. +/// \~english @param [out] out_num The number of the readed frames. +/// \~english @param [out] end_unique_id The unique ID of the end of the readed data. +/// \~english @retval RET_PFDREC_NORMAL Success +/// \~english @retval RET_PFDREC_ERROR Failure +/// \~english @retval RET_PFDREC_ERR_ARGUMENTS Invalid parameter +/// \~english @par Precondition +/// - The generation/initialization of dispatcher for application(PadCreateDispatcherWithoutLoop etc.) is done. +/// - The session with the MM Diag Recorder has been established. +/// - The availablity of the NTFY_PFDRECThread_Availability is already TRUE. +/// \~english @par Changes in internal status +/// - There is no changes in internal status when the API is called. +/// \~english @par Conditions of processing failure +/// - When the argument data is NULL. [RET_PFDREC_ERR_ARGUMENTS] +/// - When the argument out_num is NULL. [RET_PFDREC_ERR_ARGUMENTS] +/// - When the argument end_unique_id is NULL. [RET_PFDREC_ERR_ARGUMENTS] +/// - When the argument unique_id is invalid. [RET_PFDREC_ERR_ARGUMENTS] +/// - When the argument category is invalid [RET_PFDREC_ERR_ARGUMENTS] +/// - When the argument read_num is 0. [RET_PFDREC_ERR_ARGUMENTS] +/// - When the argument read_num exceeds the upper limit value (100). [RET_PFDREC_ERR_ARGUMENTS] +/// - When the frame size of the argument category is 0 [RET_PFDREC_ERR_ARGUMENTS] +/// - When the message queue handle for transmission is NULL. [RET_PFDREC_ERROR] +/// - When failed to the transmit synchronous message [RET_PFDREC_ERROR] +/// - When the length of the recieved synchronous message is different from the length of the buffer. +/// [RET_PFDREC_ERROR] +/// - When the MM Diag Recorder failed in the process of reading the recorded data. [RET_PFDREC_ERROR] +/// \~english @par Details +/// - The API is assumed to be executed from the diagnosis service and the AppDataReporting service,\n +/// which is a supplier-specific service. +/// - When the end of the recorded data is reached, stop reading and return the number of readed data. +/// - Read the number of recorded data from the position specified by unique ID. +/// \~english @par Classification +/// - Public +/// \~english @par Type +/// - Sync +/// \~english @see PFDREC_OpenSession, FrameworkunifiedInvokeSync +/// +///////////////////////////////////////////////////////////////////////////////////// +RET_PFDREC_API PFDREC_ReadData(E_PFDREC_CATEGORY_TYPE category, + uint64_t unique_id, + uint32_t read_num, + uint8_t* data, + uint32_t* out_num, + uint64_t* end_unique_id); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup PFDREC_SearchData +/// \~english @par Summary +/// - Search the recorded data by the specified time information. +/// \~english @param [in] category The information of category\n +/// See E_PFDREC_CATEGORY_TYPE. +/// \~english @param [in] time_info The time information is used to search in recorded data.\n +/// If the time information is invalid, to return error and do not search. +/// \~english @param [out] unique_id The unique ID +/// \~english @param [out] data The result obtained by searching for the time information.\n +/// \~english @retval RET_PFDREC_NORMAL Success +/// \~english @retval RET_PFDREC_ERROR Failure +/// \~english @retval RET_PFDREC_ERR_ARGUMENTS Invalid parameter +/// \~english @par Precondition +/// - The generation/initialization of dispatcher for application(PadCreateDispatcherWithoutLoop etc.) is done. +/// - The session with the MM Diag Recorder has been established. +/// - The availablity of the NTFY_PFDRECThread_Availability is already TRUE. +/// \~english @par Changes in internal status +/// - There is no changes in internal status when the API is called. +/// \~english @par Conditions of processing failure +/// - When the argument data is NULL. [RET_PFDREC_ERR_ARGUMENTS] +/// - When the argument unique_id is NULL. [RET_PFDREC_ERR_ARGUMENTS] +/// - When setting search time information is invalid. [RET_PFDREC_ERR_ARGUMENTS] +/// - When the argument category is invalid [RET_PFDREC_ERR_ARGUMENTS] +/// - When the frame size of the argument category is 0. [RET_PFDREC_ERR_ARGUMENTS] +/// - When the message queue handle for transmission is NULL. [RET_PFDREC_ERROR] +/// - When failed to trasmite the synchronization message. [RET_PFDREC_ERROR] +/// - When the length of synchronous communication received is different from the already set length. +/// [RET_PFDREC_ERROR] +/// - When the argument category is invalid in MM Diag recorder management information table. [RET_PFDREC_ERROR] +/// \~english @par Details +/// - The API is assumed to be executed from the diagnosis service and the AppDataReporting service,\n +/// which is a supplier-specific service. +/// - When the end of the recorded data is reached, stop reading and return the number of readed data. +/// - If the recorded time information is invalid, to skip searching.\n +/// Also, to make sure that the input argument time_info(note) is available for searching.\n +/// (note)"1"(from 1970/1/1/0:00.01) or more. +/// - The frame data more than the specified time could not be found, or \n +/// If time_info is invalid, RET_PFDREC_ERROR will be returned. +/// - For the categories which can be searched by time, see the searchable trace. +/// - If the specified category is not searchable, RET_PFDREC_ERROR will be returned. +/// \~english @par Classification +/// - Public +/// \~english @par Type +/// - Sync +/// \~english @see PFDREC_OpenSession, FrameworkunifiedInvokeSync +/// +///////////////////////////////////////////////////////////////////////////////////// +RET_PFDREC_API PFDREC_SearchData(E_PFDREC_CATEGORY_TYPE category, + time_t time_info, + uint64_t* unique_id, + uint8_t* data); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup PFDREC_OpenSession +/// \~english @par Summary +/// - Establish a session with the MM Diag Recorder. +/// \~english @param [in] h_app The application handle +/// \~english @retval RET_PFDREC_NORMAL Success +/// \~english @retval RET_PFDREC_ERROR Failure +/// \~english @retval RET_PFDREC_ERR_ARGUMENTS Invalid parameter +/// \~english @par Precondition +/// - The generation/initialization of dispatcher for application(PadCreateDispatcherWithoutLoop etc.) is done. +/// - The availablity of the NTFY_PFDRECThread_Availability is already TRUE. +/// \~english @par Changes in internal status +/// - There is no changes in internal status when the API is called. +/// \~english @par Conditions of processing failure +/// - When the argument h_app is NULL. [RET_PFDREC_ERR_ARGUMENTS] +/// - If the message queue handle for transmission is not NULL\n +/// (when the PFDREC_OpenSession has already been called) [RET_PFDREC_ERROR] +/// - When failed to generate a message queue handle for transmission. [RET_PFDREC_ERROR] +/// \~english @par Details +/// - The API is assumed to be executed only from the diagnosis service. +/// - Establish a session with the MM Diag Recorder. +/// - The API should be called before calling the following APIs of the MM Diag Record function.\n +/// PFDREC_FuncStartStop\n +/// PFDREC_DeleteData\n +/// PFDREC_ReadMemData\n +/// PFDREC_GetDataInfo\n +/// PFDREC_GetFuncStartStop\n +/// PFDREC_OutputData\n +/// PFDREC_ReadData\n +/// PFDREC_SearchData\n +/// PFDREC_SetExtractionMode\n +/// PFDREC_SetExtractionMode_Exp\n +/// PFDREC_SearchDataY2K38\n +/// \~english @par Classification +/// - Public +/// \~english @par Type +/// - Sync +/// \~english @see PFDREC_FuncStartStop, PFDREC_DeleteData, PFDREC_ReadMemData, PFDREC_GetDataInfo, \n +/// PFDREC_GetFuncStartStop, PFDREC_OutputData, PFDREC_ReadData, PFDREC_SearchData, \n +/// PFDREC_SetExtractionMode, PFDREC_SetExtractionMode_Exp, PFDREC_SearchDataY2K38, \n +/// PFDREC_CloseSession, FrameworkunifiedMcOpenSender +/// +///////////////////////////////////////////////////////////////////////////////////// +RET_PFDREC_API PFDREC_OpenSession(HANDLE h_app); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup PFDREC_CloseSession +/// \~english @par Summary +/// - Release the session with the MM Diag Recorder. +/// \~english @param [in] h_app The application handle +/// \~english @retval RET_PFDREC_NORMAL Success +/// \~english @retval RET_PFDREC_ERROR Failure +/// \~english @retval RET_PFDREC_ERR_ARGUMENTS Invalid parameter +/// \~english @par Precondition +/// - The generation/initialization of dispatcher for application(PadCreateDispatcherWithoutLoop etc.) is done. +/// - The session with the MM Diag Recorder has been established. +/// - When the session with MM Diag Recorder becomes unnecessary. +/// - The availablity of the NTFY_PFDRECThread_Availability is already TRUE. +/// \~english @par Changes in internal status +/// - There is no changes in internal status when the API is called. +/// \~english @par Conditions of processing failure +/// - When the argument h_app is NULL. [RET_PFDREC_ERR_ARGUMENTS] +/// - When the message queue handle for transmission is NULL. [RET_PFDREC_ERROR] +/// - When failed to close the message queue transmission handle. [RET_PFDREC_ERROR] +/// \~english @par Details +/// - The API is assumed to be executed only from the diagnosis service. +/// - Release the session with the MM Diag Recorder. +/// - To call the API When the session with MM Diag Recorder becomes unnecessary. +/// \~english @par Classification +/// - Public +/// \~english @par Type +/// - Sync +/// \~english @see PFDREC_OpenSession, FrameworkunifiedMcClose +/// +///////////////////////////////////////////////////////////////////////////////////// +RET_PFDREC_API PFDREC_CloseSession(HANDLE h_app); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup PFDREC_OverwriteData +/// \~english @par Summary +/// - Overwrite and record the data of one frame to the specified offset. +/// \~english @param [in] category The category information\n +/// See E_PFDREC_CATEGORY_TYPE. +/// \~english @param [in] offset The position to overwrite the frame data.\n +/// The offset is 0, which means the earliest recorded data. +/// \~english @param [in] data The frame data to be overwrite. +/// \~english @retval RET_PFDREC_NORMAL Success +/// \~english @retval RET_PFDREC_ERROR Failure +/// \~english @retval RET_PFDREC_ERR_ARGUMENTS Invalid parameter +/// \~english @par Precondition +/// - The generation/initialization of dispatcher for application(PadCreateDispatcherWithoutLoop etc.) is done. +/// - The availablity of the NTFY_PFDRECThread_Availability is already TRUE. +/// \~english @par Changes in internal status +/// - There is no changes in internal status when the API is called. +/// \~english @par Conditions of processing failure +/// - Whe argument data is NULL. [RET_PFDREC_ERR_ARGUMENTS] +/// - When the argument category is invalid. [RET_PFDREC_ERR_ARGUMENTS] +/// - When the frame size of the argument category is 0. [RET_PFDREC_ERR_ARGUMENTS] +/// - When failed to get the message queue handle for transmission to MM Diag Recorder. [RET_PFDREC_ERROR] +/// - When failed to the transmit asynchronous message. [RET_PFDREC_ERROR] +/// \~english @par Details +/// - The API is assumed to be executed only from the diagnosis service. +/// - Overwrite and record the data of one frame to the specified offset. +/// - When the frame data specified by offset is not exist, RET_PFDREC_ERROR will be returned. +/// \~english @par Classification +/// - Public +/// \~english @par Type +/// - Fire and Forget +/// \~english @see McOpenSender, McSend +/// +///////////////////////////////////////////////////////////////////////////////////// +RET_PFDREC_API PFDREC_OverwriteData(E_PFDREC_CATEGORY_TYPE category, + uint32_t offset, + uint8_t* data); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup PFDREC_SetExtractionMode +/// \~english @par Summary +/// - Switch the trace data extraction mode. +/// \~english @param [in] category The category information\n +/// See E_PFDREC_CATEGORY_TYPE. +/// \~english @param [in] mode The information of the trace data extraction mode.\n +/// See E_PFDREC_EXTRACT_MODE. +/// \~english @retval RET_PFDREC_NORMAL Success +/// \~english @retval RET_PFDREC_ERROR Failure +/// \~english @retval RET_PFDREC_ERR_ARGUMENTS Invalid parameter +/// \~english @par Precondition +/// - The generation/initialization of dispatcher for application(PadCreateDispatcherWithoutLoop etc.) is done. +/// - The session with the MM Diag Recorder has been established. +/// - The availablity of the NTFY_PFDRECThread_Availability is already TRUE. +/// \~english @par Changes in internal status +/// - There is no changes in internal status when the API is called. +/// \~english @par Conditions of processing failure +/// - When the argument mode is invalid. [RET_PFDREC_ERR_ARGUMENTS] +/// - When the argument category is invalid [RET_PFDREC_ERR_ARGUMENTS] +/// - When the message queue handle for transmission is NULL. [RET_PFDREC_ERROR] +/// - When failed to the transmit synchronous message [RET_PFDREC_ERROR] +/// - When the length of the recieved synchronous message is different from the length of the buffer. +/// [RET_PFDREC_ERROR] +/// - When MM Diag Recorder failed to switch the trace data extraction mode. [RET_PFDREC_ERROR] +/// \~english @par Details +/// - The API is assumed to be executed only from the diagnosis service. +/// - Switch the trace data extraction mode. +/// - Save the trace data to the extraction area during the extraction mode is ON.\n +/// - When the size of the recorded extraction data reaches the maximum,\n +/// to discard the next data. +/// - And when the extraction mode switched from ON to OFF, write the data to the temporary buffer are. +/// - For the categories which the trace data extraction mode is effective,\n +/// See 3.4.1.2.8 The switchable trace in trace data extraction mode. +/// - If you specify something other than a valid category, RET_PFDREC_ERROR will be returned. +/// \~english @par Classification +/// - Public +/// \~english @par Type +/// - Sync +/// \~english @see PFDREC_OpenSession, FrameworkunifiedInvokeSync +/// +///////////////////////////////////////////////////////////////////////////////////// +RET_PFDREC_API PFDREC_SetExtractionMode(const E_PFDREC_CATEGORY_TYPE category, + const E_PFDREC_EXTRACT_MODE mode); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup PFDREC_SetExtractionMode_Exp +/// \~english @par Summary +/// - Switch the trace data extraction mode.(The AppDataReporting service, which is a supplier-specific service) +/// \~english @param [in] category The category information\n +/// See E_PFDREC_CATEGORY_TYPE. +/// \~english @param [in] mode The information of the trace data extraction mode.\n +/// See E_PFDREC_EXTRACT_MODE. +/// \~english @retval RET_PFDREC_NORMAL Success +/// \~english @retval RET_PFDREC_ERROR Failure +/// \~english @retval RET_PFDREC_ERR_ARGUMENTS Invalid parameter +/// \~english @par Precondition +/// - The generation/initialization of dispatcher for application(PadCreateDispatcherWithoutLoop etc.) is done. +/// - The session with the MM Diag Recorder has been established. +/// - The availablity of the NTFY_PFDRECThread_Availability is already TRUE. +/// \~english @par Changes in internal status +/// - There is no changes in internal status when the API is called. +/// \~english @par Conditions of processing failure +/// - When the argument mode is invalid. [RET_PFDREC_ERR_ARGUMENTS] +/// - When the argument category is invalid [RET_PFDREC_ERR_ARGUMENTS] +/// - When the message queue handle for transmission is NULL. [RET_PFDREC_ERROR] +/// - When failed to the transmit synchronous message [RET_PFDREC_ERROR] +/// - When the length of the recieved synchronous message is different from the length of the buffer. +/// [RET_PFDREC_ERROR] +/// - When MM Diag Recorder failed to switch the trace data extraction mode. [RET_PFDREC_ERROR] +/// \~english @par Details +/// - The API is assumed to be executed only from the AppDataReporting service,\n +/// which is a supplier-specific service. +/// - Switch the trace data extraction mode. +/// - Save the trace data to the extraction area during the extraction mode is ON.\n +/// - When the size of the recorded extraction data reaches the maximum,\n +/// to discard the next data. +/// - And when the extraction mode switched from ON to OFF, write the data to the temporary buffer are. +/// - For the categories which the trace data extraction mode is effective,\n +/// See 3.4.1.2.8 The switchable trace in trace data extraction mode. +/// - If you specify something other than a valid category, RET_PFDREC_ERROR will be returned. +/// - If the data recorded is deleted from the diagnosis service, the request data recorded may not be obtained\n +/// from the AppDataReporting service, which is a supplier-specific service. +/// \~english @par Classification +/// - Public +/// \~english @par Type +/// - Sync +/// \~english @see PFDREC_OpenSession, FrameworkunifiedInvokeSync +/// +///////////////////////////////////////////////////////////////////////////////////// +RET_PFDREC_API PFDREC_SetExtractionMode_Exp(const E_PFDREC_CATEGORY_TYPE category, + const E_PFDREC_EXTRACT_MODE mode); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup PFDREC_ComDataBackupY2K38 +/// \~english @par Summary +/// - Record the trace data. +/// \~english @param [in] category The category information of the trace data to record\n +/// See E_PFDREC_CATEGORY_TYPE. +/// \~english @param [in] time_info The time information. +/// \~english @param [in] frame_num The number of frames of the trace data to record. +/// \~english @param [in] data The trace data to record\n +/// The size of the data buffer is the number of frames * 1 frame size,\n +/// and should be secured by the caller. +/// \~english @retval RET_PFDREC_NORMAL Success +/// \~english @retval RET_PFDREC_ERROR Failure +/// \~english @retval RET_PFDREC_ERR_ARGUMENTS Invalid parameter +/// \~english @par Precondition +/// - The generation/initialization of dispatcher for application(PadCreateDispatcherWithoutLoop etc.) is done. +/// - The session with the MM Diag Recorder has been established. +/// - The availablity of the NTFY_PFDRECThread_Availability is already TRUE. +/// \~english @par Changes in internal status +/// - There is no changes in internal status when the API is called. +/// \~english @par Conditions of processing failure +/// - When the argument data is NULL. [RET_PFDREC_ERR_ARGUMENTS] +/// - When the argument category is invalid. [RET_PFDREC_ERR_ARGUMENTS] +/// - When the argument frame_num is 0. [RET_PFDREC_ERR_ARGUMENTS] +/// - When the argument frame_num exceeds the upper limit value (100). [RET_PFDREC_ERR_ARGUMENTS] +/// - When the frame size of the argument category is 0. [RET_PFDREC_ERR_ARGUMENTS] +/// - When failed to get the message queue handle for transmission to MM Diag Recorder. [RET_PFDREC_ERROR] +/// - When failed to the transmit asynchronous message. [RET_PFDREC_ERROR] +/// \~english @par Details +/// - The API is assumed to be executed only from the diagnosis service. +/// - The API is used to fix the problem of time beyond 2038, and the function is the same as the +/// PFDREC_ComDataBackup function +/// \~english @par Classification +/// - Public +/// \~english @par Type +/// - Fire and Forget +/// \~english @see PFDREC_OpenSession, McOpenSender, McSend +/// +///////////////////////////////////////////////////////////////////////////////////// +RET_PFDREC_API PFDREC_ComDataBackupY2K38(E_PFDREC_CATEGORY_TYPE category, + uint32_t time_info, + uint32_t frame_num, + uint8_t* data); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup PFDREC_SearchDataY2K38 +/// \~english @par Summary +/// - Search the recorded data by the specified time information +/// \~english @param [in] category The information of category\n +/// See E_PFDREC_CATEGORY_TYPE. +/// \~english @param [in] time_info The time information is used to search in recorded data.\n +/// If the time information is invalid, to return error and do not search. +/// \~english @param [out] unique_id The unique ID +/// \~english @param [out] data The result obtained by searching for the time information.\n +/// \~english @retval RET_PFDREC_NORMAL Success +/// \~english @retval RET_PFDREC_ERROR Failure +/// \~english @retval RET_PFDREC_ERR_ARGUMENTS Invalid parameter +/// \~english @par Precondition +/// - The generation/initialization of dispatcher for application(PadCreateDispatcherWithoutLoop etc.) is done. +/// - The session with the MM Diag Recorder has been established. +/// - The availablity of the NTFY_PFDRECThread_Availability is already TRUE. +/// \~english @par Changes in internal status +/// - There is no changes in internal status when the API is called. +/// \~english @par Conditions of processing failure +/// - When the argument data is NULL. [RET_PFDREC_ERR_ARGUMENTS] +/// - When the argument unique_id is NULL. [RET_PFDREC_ERR_ARGUMENTS] +/// - When setting search time information is invalid. [RET_PFDREC_ERR_ARGUMENTS] +/// - When the argument category is invalid [RET_PFDREC_ERR_ARGUMENTS] +/// - When the frame size of the argument category is 0. [RET_PFDREC_ERR_ARGUMENTS] +/// - When the message queue handle for transmission is NULL. [RET_PFDREC_ERROR] +/// - When failed to trasmite the synchronization message. [RET_PFDREC_ERROR] +/// - When the length of synchronous communication received is different from the already set length. +/// [RET_PFDREC_ERROR] +/// - When the argument category is invalid in MM Diag recorder management information table. [RET_PFDREC_ERROR] +/// \~english @par Details +/// - The API is assumed to be executed from the diagnosis service and the AppDataReporting service,\n +/// which is a supplier-specific service. +/// - The API is used to fix the problem that the time more than 2038, \n +/// and the function is same as the PFDREC_SearchData function. +/// \~english @par Classification +/// - Public +/// \~english @par Type +/// - Sync +/// \~english @see PFDREC_OpenSession, FrameworkunifiedInvokeSync +/// +///////////////////////////////////////////////////////////////////////////////////// +RET_PFDREC_API PFDREC_SearchDataY2K38(E_PFDREC_CATEGORY_TYPE category, + uint32_t time_info, + uint64_t* unique_id, + uint8_t* data); + +#ifdef __cplusplus +} +#endif + +/** @}*/ // end of diag_record +/** @}*/ // end of vehicle_service +/** @}*/ // end of BaseSystem + +#endif // DIAG_RECORD_LIBRARY_RECORD_API_INCLUDE_VEHICLE_SERVICE_PFDREC_API_H_ diff --git a/stub/diag_record/library_record_api/libDiagRecordAPI.ver b/stub/diag_record/library_record_api/libDiagRecordAPI.ver new file mode 100644 index 00000000..6ce89fcc --- /dev/null +++ b/stub/diag_record/library_record_api/libDiagRecordAPI.ver @@ -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. + */ + +# +# DiagRecordAPILib version script +# +{ + global: + ### .text section ### + PFDREC_FuncStartStop; + PFDREC_DeleteData; + + PFDREC_DeleteIndividual; + PFDREC_ComDataBackup; + PFDREC_ReadMemData; + PFDREC_GetDataInfo; + PFDREC_GetFuncStartStop; + PFDREC_OutputData; + PFDREC_ReadData; + PFDREC_SearchData; + PFDREC_OpenSession; + PFDREC_CloseSession; + PFDREC_OverwriteData; + PFDREC_SetExtractionMode; + PFDREC_ComDataBackupY2K38; + PFDREC_SearchDataY2K38; + ### .data section ### + local: + *; +}; + diff --git a/stub/diag_record/library_record_api/src/DiagRecordAPI.cpp b/stub/diag_record/library_record_api/src/DiagRecordAPI.cpp new file mode 100644 index 00000000..b2c53635 --- /dev/null +++ b/stub/diag_record/library_record_api/src/DiagRecordAPI.cpp @@ -0,0 +1,178 @@ +/* + * @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. + */ + +#include "PFDREC_API.h" + +RET_PFDREC_API PFDREC_FuncStartStop(E_PFDREC_FUNC status) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_PFDREC_NORMAL; +} + +RET_PFDREC_API PFDREC_DeleteData(PFDREC_CALLBACK_FUNC func) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_PFDREC_NORMAL; +} + +RET_PFDREC_API PFDREC_DeleteIndividual(E_PFDREC_CATEGORY_TYPE category) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_PFDREC_NORMAL; +} + +RET_PFDREC_API PFDREC_ComDataBackup(E_PFDREC_CATEGORY_TYPE category, + time_t time_info, + uint32_t frame_num, + uint8_t* data) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_PFDREC_NORMAL; +} + +RET_PFDREC_API PFDREC_ReadMemData(E_PFDREC_CATEGORY_TYPE category, + uint32_t offset, + uint32_t read_num, + uint8_t* data, + uint32_t* out_num) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_PFDREC_NORMAL; +} + +RET_PFDREC_API PFDREC_GetDataInfo(E_PFDREC_CATEGORY_TYPE category, + uint32_t* frame_num) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_PFDREC_NORMAL; +} + +RET_PFDREC_API PFDREC_GetFuncStartStop(E_PFDREC_FUNC* status) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_PFDREC_NORMAL; +} + +RET_PFDREC_API PFDREC_OutputData(void) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_PFDREC_NORMAL; +} + +RET_PFDREC_API PFDREC_ReadData(E_PFDREC_CATEGORY_TYPE category, + uint64_t unique_id, + uint32_t read_num, + uint8_t* data, + uint32_t* out_num, + uint64_t* end_unique_id) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_PFDREC_NORMAL; +} + +RET_PFDREC_API PFDREC_SearchData(E_PFDREC_CATEGORY_TYPE category, + time_t time_info, + uint64_t* unique_id, + uint8_t* data) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_PFDREC_NORMAL; +} +RET_PFDREC_API PFDREC_OpenSession(HANDLE h_app) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_PFDREC_NORMAL; +} + +RET_PFDREC_API PFDREC_CloseSession(HANDLE h_app) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_PFDREC_NORMAL; +} + +RET_PFDREC_API PFDREC_OverwriteData(E_PFDREC_CATEGORY_TYPE category, + uint32_t offset, + uint8_t* data) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_PFDREC_NORMAL; +} + +RET_PFDREC_API PFDREC_SetExtractionMode(const E_PFDREC_CATEGORY_TYPE category, + const E_PFDREC_EXTRACT_MODE mode) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_PFDREC_NORMAL; +} + +RET_PFDREC_API PFDREC_SetExtractionMode_Exp(const E_PFDREC_CATEGORY_TYPE category, + const E_PFDREC_EXTRACT_MODE mode) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_PFDREC_NORMAL; +} + +RET_PFDREC_API PFDREC_ComDataBackupY2K38(E_PFDREC_CATEGORY_TYPE category, + uint32_t time_info, + uint32_t frame_num, + uint8_t* data) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_PFDREC_NORMAL; +} + +RET_PFDREC_API PFDREC_SearchDataY2K38(E_PFDREC_CATEGORY_TYPE category, + uint32_t time_info, + uint64_t* unique_id, + uint8_t* data) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return RET_PFDREC_NORMAL; +} diff --git a/stub/diag_record/library_record_thread/Makefile b/stub/diag_record/library_record_thread/Makefile new file mode 100644 index 00000000..350cd90b --- /dev/null +++ b/stub/diag_record/library_record_thread/Makefile @@ -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. +# + +######### installed library(*.a) ############# +INST_LIBS = libPFDRECThread + +######### install headers(*.h) ############# +INST_HEADERS += pfdrec_thread_ifc.h + +######### compiled sources ############# +libPFDRECThread_SRCS += pfdrec_thread.cpp + +######### add source path ############# +VPATH += ./src ./include/$(COMPONENT_NAME) + +######### add include path ############# +CPPFLAGS += -I./include +CPPFLAGS += -I./include/stub +CPPFLAGS += -I./../library_record_api/include + +######### add compile option ############# +CPPFLAGS += -Werror=implicit-function-declaration +CPPFLAGS += -Werror=format-security +CPPFLAGS += -Wconversion +CPPFLAGS += -Wint-to-pointer-cast +CPPFLAGS += -Wpointer-arith +CPPFLAGS += -Wformat + +######### linked library (dynamic) ############# +LDFLAGS += -Wl,--no-undefined +LDFLAGS += -Wl,--no-as-needed +LDLIBS += -Wl,-Bdynamic -lstdc++ + +include ../../stub.mk diff --git a/stub/diag_record/library_record_thread/include/stub/pfdrec_thread_ifc.h b/stub/diag_record/library_record_thread/include/stub/pfdrec_thread_ifc.h new file mode 100644 index 00000000..9592939d --- /dev/null +++ b/stub/diag_record/library_record_thread/include/stub/pfdrec_thread_ifc.h @@ -0,0 +1,168 @@ +/* + * @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. + */ + +#ifndef DIAG_RECORD_LIBRARY_RECORD_THREAD_INCLUDE_VEHICLE_SERVICE_PFDREC_THREAD_IFC_H_ +#define DIAG_RECORD_LIBRARY_RECORD_THREAD_INCLUDE_VEHICLE_SERVICE_PFDREC_THREAD_IFC_H_ + +/** + * @file pfdrec_thread_ifc.h + * @brief diag_record thread header file + */ + +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup vehicle_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup diag_record + * @ingroup vehicle_service + * @{ + */ + +#include <native_service/frameworkunified_types.h> + +/** + * @class CPFDRECThread + * \~english @brief diag_record thread + * \~english @par Brief Introduction + * Class to provide the trace data record function + * + */ +class CPFDRECThread { + public: + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup CPFDRECThread + /// \~english @par Summary + /// Constructor of CPFDRECThread 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 CPFDRECThread class. \n + /// Member variables initialize. \n + /// After the constructor, be sure to call Initialize method. + /// \~english @see ~CPFDRECThread, Initialize + //////////////////////////////////////////////////////////////////////////////////// + CPFDRECThread(); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup ~CPFDRECThread + /// \~english @par Summary + /// Destructor of CPFDRECThread 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 CPFDRECThread class. + /// \~english @see CPFDRECThread + //////////////////////////////////////////////////////////////////////////////////// + virtual ~CPFDRECThread(); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup Initialize + /// \~english @par Summary + /// - Initialize diag_record thread. + /// \~english @param [in] h_app The application handle + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @retval eFrameworkunifiedStatusFail Failure + /// \~english @par Precondition + /// - BackupMgr is available. + /// - The generation/initialization of dispatcher for application(PadCreateDispatcherWithoutLoop etc.) is done. + /// \~english @par Changes in internal status + /// - There is no changes in internal status when the API is called. + /// \~english @par Conditions of processing failure + /// - When fail to create TN_PFDRECTHREAD. [eFrameworkunifiedStatusFail] + /// \~english @par Details + /// - The API is assumed to be executed only from the SS_LoggerService. + /// - Initialize diag_record thread. + /// \~english @par Classification + /// - Public + /// \~english @par Type + /// - Sync + /// \~english @see FrameworkunifiedCreateChildThread, FrameworkunifiedStartChildThread + ///////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus Initialize(HANDLE h_app); + + ///////////////////////////////////////////////////////////////////////////////////// + /// \ingroup Finalize + /// \~english @par Summary + /// - Finalize diag_record thread. + /// \~english @param [in] h_app The application handle + /// \~english @retval eFrameworkunifiedStatusOK Success + /// \~english @par Precondition + /// - The generation/initialization of dispatcher for application(PadCreateDispatcherWithoutLoop etc.) is done. + /// - The diag_record thread is running. + /// \~english @par Changes in internal status + /// - There is no changes in internal status when the API is called. + /// \~english @par Conditions of processing failure + /// - None + /// \~english @par Details + /// - The API is assumed to be executed only from the SS_LoggerService. + /// - Finalize diag_record thread. + /// \~english @par Classification + /// - Public + /// \~english @par Type + /// - Sync + /// \~english @see FrameworkunifiedStopChildThread + ///////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus Finalize(HANDLE h_app); + + private: + EFrameworkunifiedStatus Start(HANDLE h_thread); + EFrameworkunifiedStatus Stop(HANDLE h_thread); + + EFrameworkunifiedStatus SetFuncOnOff(HANDLE h_thread); + EFrameworkunifiedStatus GetFuncOnOff(HANDLE h_thread); + EFrameworkunifiedStatus DeleteData(HANDLE h_thread); + + EFrameworkunifiedStatus DeleteIndividual(HANDLE f_hThread); + EFrameworkunifiedStatus ComDataBackup(HANDLE h_thread); + EFrameworkunifiedStatus ReadMemData(HANDLE h_thread); + EFrameworkunifiedStatus GetDataInfo(HANDLE h_thread); + EFrameworkunifiedStatus OutputData(HANDLE h_thread); + EFrameworkunifiedStatus ReadData(HANDLE h_thread); + EFrameworkunifiedStatus SearchData(HANDLE h_thread); + EFrameworkunifiedStatus OverwriteData(HANDLE h_thread); + EFrameworkunifiedStatus SetExtractMode(HANDLE h_thread); + + HANDLE m_thread; +}; + +/** @}*/ // end of diag_record +/** @}*/ // end of vehicle_service +/** @}*/ // end of BaseSystem + +#endif // DIAG_RECORD_LIBRARY_RECORD_THREAD_INCLUDE_VEHICLE_SERVICE_PFDREC_THREAD_IFC_H_ diff --git a/stub/diag_record/library_record_thread/src/pfdrec_thread.cpp b/stub/diag_record/library_record_thread/src/pfdrec_thread.cpp new file mode 100644 index 00000000..164fcfbe --- /dev/null +++ b/stub/diag_record/library_record_thread/src/pfdrec_thread.cpp @@ -0,0 +1,162 @@ +/* + * @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. + */ +#include "pfdrec_thread_ifc.h" + +CPFDRECThread::CPFDRECThread() +: m_thread(NULL) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ +} + +CPFDRECThread::~CPFDRECThread() { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ +} + +EFrameworkunifiedStatus CPFDRECThread::Initialize(HANDLE h_app) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return eFrameworkunifiedStatusOK; +} + + +EFrameworkunifiedStatus CPFDRECThread::Finalize(HANDLE h_app) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return eFrameworkunifiedStatusOK; +} + + +EFrameworkunifiedStatus CPFDRECThread::Start(HANDLE h_thread) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return eFrameworkunifiedStatusOK; +} + +EFrameworkunifiedStatus CPFDRECThread::Stop(HANDLE h_thread) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return eFrameworkunifiedStatusOK; +} + +EFrameworkunifiedStatus CPFDRECThread::SetFuncOnOff(HANDLE h_thread) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return eFrameworkunifiedStatusOK; +} + +EFrameworkunifiedStatus CPFDRECThread::GetFuncOnOff(HANDLE h_thread) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return eFrameworkunifiedStatusOK; +} + +EFrameworkunifiedStatus CPFDRECThread::DeleteData(HANDLE h_thread) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return eFrameworkunifiedStatusOK; +} + +EFrameworkunifiedStatus CPFDRECThread::DeleteIndividual(HANDLE hThread) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return eFrameworkunifiedStatusOK; +} + + +EFrameworkunifiedStatus CPFDRECThread::ComDataBackup(HANDLE h_thread) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return eFrameworkunifiedStatusOK; +} + +EFrameworkunifiedStatus CPFDRECThread::ReadMemData(HANDLE h_thread) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return eFrameworkunifiedStatusOK; +} + +EFrameworkunifiedStatus CPFDRECThread::GetDataInfo(HANDLE h_thread) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return eFrameworkunifiedStatusOK; +} + +EFrameworkunifiedStatus CPFDRECThread::OutputData(HANDLE h_thread) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return eFrameworkunifiedStatusOK; +} + +EFrameworkunifiedStatus CPFDRECThread::ReadData(HANDLE h_thread) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return eFrameworkunifiedStatusOK; +} + +EFrameworkunifiedStatus CPFDRECThread::SearchData(HANDLE h_thread) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return eFrameworkunifiedStatusOK; +} + +EFrameworkunifiedStatus CPFDRECThread::OverwriteData(HANDLE h_thread) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return eFrameworkunifiedStatusOK; +} + +EFrameworkunifiedStatus CPFDRECThread::SetExtractMode(HANDLE h_thread) { + /* + * Note. + * This feature needs to be implemented by the vendor. + */ + return eFrameworkunifiedStatusOK; +} |