diff options
author | takeshi_hoshina <takeshi_hoshina@mail.toyota.co.jp> | 2020-10-22 13:28:36 +0900 |
---|---|---|
committer | takeshi_hoshina <takeshi_hoshina@mail.toyota.co.jp> | 2020-10-22 13:28:36 +0900 |
commit | 211696c95c1ec3fc48e0096d47d4278910274195 (patch) | |
tree | f3e0a5461f83a0ec191b788070fe59639148fb17 /communication/server/src/CAN/Transmission/CAN_Transmission.cpp | |
parent | aacd1728939f2b6f4c811cd93502966265cd8203 (diff) |
ps-communication branch 0.1sandbox/ToshikazuOhiwa/ps-communication
Diffstat (limited to 'communication/server/src/CAN/Transmission/CAN_Transmission.cpp')
-rw-r--r-- | communication/server/src/CAN/Transmission/CAN_Transmission.cpp | 603 |
1 files changed, 0 insertions, 603 deletions
diff --git a/communication/server/src/CAN/Transmission/CAN_Transmission.cpp b/communication/server/src/CAN/Transmission/CAN_Transmission.cpp deleted file mode 100644 index 4be88578..00000000 --- a/communication/server/src/CAN/Transmission/CAN_Transmission.cpp +++ /dev/null @@ -1,603 +0,0 @@ -/* - * @copyright Copyright (c) 2016-2019 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. - */ - -/******************************************************************************* - * Module configuration :CANTxStart() CANDataTransmission start message processing - * CANTxStartMsgCheck() CANDataSend start message check processing - * CANFreqTxStop() CANDataPeriodic transmission stop message processing - * CANFreqTxTimeupMsg() CANDataPeriodic transmission time-up message processing - * CANTxRsltReceiveMsg() CANDataReceive message processing of transmission result - * CANTxRsltReceiveMsgCheck() CANDataSend result received message check processing - ******************************************************************************/ -/*!----------------------------------------------------------------------------- - * @file CAN_Transmission.cpp - * @~english - * @brief CAN Transmission process - */ -#include "CAN_Transmission.h" -#include <string.h> // NOLINT(build/include) -#include <fcntl.h> -#include "CAN_TransmissionData.h" -#include "CAN_TxMsg.h" -#include "CAN_TimerCtrl.h" -#include "CAN_Delivery.h" -#include "CAN_DeliveryData.h" -#include "Canif_API_Local.h" -#include "ICR_Common.h" -#include <native_service/frameworkunified_framework_if.h> -//#include "can_hal.h" - -/*************************************************/ -/* Global variable */ -/*************************************************/ - -/******************************************************************************* - * MODULE : CANTxStartMsg - * ABSTRACT : CANDataTransmission start message processing - * FUNCTION : CANDataStarting transmission when a transmission start message is received - * ARGUMENT : *pst_rcv_msg : Received Message Reference Pointer - * NOTE : - * RETURN : RET_CAN_NORMAL : Normal completion - * RET_CAN_ERROR_BUFFULL : Registered FULL - * RET_CAN_ERROR_TIMER : Timer acquisition failed - ******************************************************************************/ -EFrameworkunifiedStatus CANTxStart(HANDLE h_app) { - RET_CAN l_ret = RET_CAN_NORMAL; /* Return value of this function */ - uint8_t uc_index; /* Indexed */ - uint8_t uc_can_rid; /* CAN uint8_t */ - EFrameworkunifiedStatus e_status = eFrameworkunifiedStatusOK; - CAN_TRANSMISSION_START_MSG_DAT rcv_msg; - - FRAMEWORKUNIFIEDLOG(ZONE_CAN_DEBUG, __func__, "##### CAN COMMWATCH START #####"); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" //NOLINT (readability/naming) - - e_status = FrameworkunifiedGetMsgDataOfSize(h_app, &rcv_msg, sizeof(rcv_msg), eSMRRelease); - if (e_status != eFrameworkunifiedStatusOK) { // LCOV_EXCL_BR_LINE 4: NSFW error case. - // LCOV_EXCL_START 4: NSFW error case. - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __func__, "#CAN_thread# FrameworkunifiedGetMsgDataOfSize Error"); - if (e_status == eFrameworkunifiedStatusInvldBufSize) { - FrameworkunifiedClearMsgData(h_app); - } - l_ret = RET_CAN_ERROR_CANCEL; - goto exit; - } - // LCOV_EXCL_STOP 4: NSFW error case. - - /****** Data section check ******/ - l_ret = CANTxStartMsgCheck(&rcv_msg, &uc_index); - if (RET_CAN_NORMAL != l_ret) { - goto exit; - } - - /****** Message processing ******/ - if ((uint16_t)0 != rcv_msg.usFreq) { - /* Periodic transmission */ - CANFreqTransEntry(uc_index, &rcv_msg); /* CANDataRegular transmission registration */ - if (FALSE == CANFreqTransStartTxMsg(h_app, uc_index)) { /* Periodic transmission start message transmission */ - l_ret = RET_CAN_ERROR_CREATE_EVENT; /* Event generation failure */ - goto exit; - } - } else { - if ((uint8_t)CAN_RID_NOTUSE_CODE == uc_index) { - uc_can_rid = (uint8_t)CAN_RID_NOTUSE_CODE; - } else { - uc_can_rid = (uint8_t)((uint32_t)uc_index + CAN_TXRSLT_CANRID_1TIME_START); - } - /* Send one transmission start message */ - if (FALSE == CAN1TimeTransStartTxMsg(h_app, uc_can_rid, &rcv_msg.stCandata)) { - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __func__, "#CAN_thread# CAN Transmission ICR Error"); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" //NOLINT (readability/naming) - CANDebugLogOut(CAN_TRANCE_ICR_ERR, &rcv_msg); /* Transmission error log output */ - l_ret = RET_CAN_ERROR_CREATE_EVENT; - goto exit; - } - } - - /****** CANDataRegister one transmission result management table ******/ - if (((uint16_t)0 == rcv_msg.usFreq) && ((uint8_t)CAN_RID_NOTUSE_CODE != rcv_msg.ucRid)) { - e_status = CAN1TimeTransEntry(uc_index, &rcv_msg); /* CANDataRegister 1 transmission result */ - if (eFrameworkunifiedStatusOK != e_status) { // LCOV_EXCL_BR_LINE 8: uc_index can't GL CAN_1TIME_TRSNSMISSION_RSLT_NUM, so e_status is always eFrameworkunifiedStatusOK // NOLINT (whitespace/line_length) - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 8: same with above - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __func__, "ERROR !!! CAN1TimeTransEntry failed : e_status=%d, uc_index=%d", e_status, uc_index); // LCOV_EXCL_LINE 8: same with above //NOLINT (readability/naming) - l_ret = RET_CAN_ERROR_PARAM; // LCOV_EXCL_LINE 8: same with above - } - } - -exit: - FRAMEWORKUNIFIEDLOG(ZONE_CAN_DEBUG, __func__, "END(l_ret=%x)", l_ret); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" //NOLINT (readability/naming) - if (l_ret == RET_CAN_NORMAL) - return eFrameworkunifiedStatusOK; - else - return eFrameworkunifiedStatusFail; - // return RET_CAN_NORMAL; -} - -/******************************************************************************* - * MODULE : CANTxStartMsgCheck - * ABSTRACT : CANDataSend start message check processing - * FUNCTION : CANDataCheck the data contents when a transmission start message is received - * ARGUMENT : *pst_msg_data : Receive message data section reference pointer - * *puc_index : Index (pointer output) - * NOTE : - * RETURN : RET_CAN_NORMAL :Normal completion - * RET_CAN_ERROR_BUFFULL :Registered FULL - * RET_CAN_ERROR_TIMER :Timer acquisition failure - ******************************************************************************/ -RET_CAN CANTxStartMsgCheck(const CAN_TRANSMISSION_START_MSG_DAT *pst_msg_data, uint8_t *puc_index) { - RET_CAN l_ret = RET_CAN_NORMAL; /* Return value of the function */ - uint8_t uc_index = 0; /* Indexed */ - - FRAMEWORKUNIFIEDLOG(ZONE_CAN_DEBUG, __func__, "##### START #####"); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" //NOLINT (readability/naming) - /* #106 Periodic transmission */ - if ((uint16_t)0 != pst_msg_data->usFreq) { - /* CANDataConfirmation of periodic transmission management table registration destination exists */ - if (TRUE == CANFreqTransEntryCheck(pst_msg_data->stCandata.can_id, &uc_index)) {/* Periodic transmission timer start */ - l_ret = CANFreqTransTimerStart(uc_index, pst_msg_data->usFreq, CAN_PROTOCOL_TYPE_CAN); - } else { /* No registration destination */ - l_ret = RET_CAN_ERROR_BUFFULL; /* Registered FULL */ - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __func__, "#CAN_thread# CAN FreqTrans BufferFull"); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" //NOLINT (readability/naming) - } - } else {/* One-time transmission */ - if ((uint8_t)CAN_RID_NOTUSE_CODE == pst_msg_data->ucRid) {/* When transmission results are unnecessary */ - uc_index = (uint8_t)CAN_RID_NOTUSE_CODE; /* Transmission result non-notification code */ - } else { /* When transmission result is required */ - if (FALSE == CAN1TimeTransEntryCheck(&uc_index)) { - l_ret = RET_CAN_ERROR_BUFFULL; /* One-time transmission results notification lists are FULL. */ - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __func__, "#CAN_thread# CAN 1TimeTransRslt BufferFull"); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" //NOLINT (readability/naming) - } - } - } - *puc_index = uc_index; - FRAMEWORKUNIFIEDLOG(ZONE_CAN_DEBUG, __func__, "##### END #####"); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" //NOLINT (readability/naming) - return (l_ret); -} - -/******************************************************************************* - * MODULE : CANFreqTxStop - * ABSTRACT : CANDataPeriodic transmission stop message processing - * FUNCTION : CANDataStop periodic transmission when a periodic transmission stop message is received - * ARGUMENT : *pst_rcv_msg : Received Message Reference Pointer - * NOTE : - * RETURN : RET_CAN_NORMAL : Parameter Normal - * RET_CAN_ERROR_UNDEF : Undefined ID - * RET_CAN_ERROR_PID : Thread ID mismatch - * RET_CAN_ERROR_TIMER : Failed to stop timer - * RET_CAN_ERROR_CREATE_EVENT : Event generation failure - ******************************************************************************/ -EFrameworkunifiedStatus CANFreqTxStop(HANDLE h_app) { - RET_CAN l_ret = RET_CAN_ERROR_UNDEF; /* Return value of this function */ - int32_t i; /* Generic counters */ - uint8_t uc_index = 0xFF; /* Indexed */ - EFrameworkunifiedStatus e_status = eFrameworkunifiedStatusOK; - CAN_FREQ_TRANS_STOP_MSG_DAT rcv_msg; - - FRAMEWORKUNIFIEDLOG(ZONE_CAN_DEBUG, __func__, "##### START #####"); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" //NOLINT (readability/naming) - e_status = FrameworkunifiedGetMsgDataOfSize(h_app, &rcv_msg, sizeof(rcv_msg), eSMRRelease); - if (e_status != eFrameworkunifiedStatusOK) { // LCOV_EXCL_BR_LINE 4: NSFW error case. - // LCOV_EXCL_START 4: NSFW error case. - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __func__, "#CAN_thread# FrameworkunifiedGetMsgDataOfSize Error"); - if (e_status == eFrameworkunifiedStatusInvldBufSize) { - FrameworkunifiedClearMsgData(h_app); - } - l_ret = RET_CAN_ERROR_CANCEL; - goto exit; - } - // LCOV_EXCL_STOP 4: NSFW error case. - - /****** Data checking ******/ - for (i = 0; i < (int32_t)CAN_FREQ_TRSNSMISSION_LIST_NUM; i++) { - /* CANDataPeriodic transmission control table registration status checking process (CAN ID retrieval) */ - if (TRUE != CANFreqTransCanidEntryCheck((uint8_t)i, rcv_msg.ulCanid)) { - continue; - } - - if (TRUE == CANFreqTransIdEntryCheck((uint8_t)i, rcv_msg.notifyName)) { - l_ret = RET_CAN_NORMAL; /* Normal completion */ - uc_index = (uint8_t)i; /* Index acquisition */ - break; - } else { - l_ret = RET_CAN_ERROR_SNDID; /* Distribution destination ID mismatch */ - } - } - - if (l_ret == RET_CAN_ERROR_UNDEF) { /* CAN ID undefined */ - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __func__, "#CAN_thread# CAN FreqTxStop CanID Error"); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" //NOLINT (readability/naming) - goto exit; - } - if (l_ret == RET_CAN_ERROR_SNDID) { /* Distribution destination ID mismatch */ - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __func__, "#CAN_thread# CAN FreqTxStop SNDID Error"); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" //NOLINT (readability/naming) - goto exit; - } - - /****** Message processing ******/ - l_ret = CANFreqTransTimerStop(uc_index, CAN_PROTOCOL_TYPE_CAN); /* Periodic transmission timer stop */ - if (RET_CAN_NORMAL != l_ret) { // LCOV_EXCL_BR_LINE 200:the function is always returned to RET_CAN_NORMAL - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - goto exit; // LCOV_EXCL_LINE 200:the function is always returned to RET_CAN_NORMAL - } - - CANFreqTransStop(uc_index); /* CANDataPeriodic transmission stop */ - -exit: - FRAMEWORKUNIFIEDLOG(ZONE_CAN_DEBUG, __func__, "END(l_ret=%x)", l_ret); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" //NOLINT (readability/naming) - if (l_ret == RET_CAN_NORMAL) - return eFrameworkunifiedStatusOK; - else - return eFrameworkunifiedStatusFail; -} -/******************************************************************************* - * MODULE : CANFreqTxTimeupMsg - * ABSTRACT : CANDataPeriodic transmission time-up message processing - * FUNCTION : Start transmission when the periodic timer for periodic transmission expires - * ARGUMENT : *pst_rcv_msg : Received Message Reference Pointer - * NOTE : - * RETURN : RET_CAN_NORMAL : Normal completion - * RET_CAN_ERROR_CANCEL : Data destruction - ******************************************************************************/ -RET_CAN CANFreqTxTimeupMsg(HANDLE h_app, uint16_t timer_seq) { - RET_CAN l_ret = RET_CAN_NORMAL; /* Return value of this function */ - uint8_t uc_index; /* Indexed */ - - FRAMEWORKUNIFIEDLOG(ZONE_CAN_DEBUG, __func__, "##### START #####"); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" //NOLINT (readability/naming) - /* Check Timer Sequence Range(0x8000 ~ 0x80FF) */ - if (FREQ_TRANS_SEQNO_CODE == (timer_seq & ~TIMER_SEQNO_MASK_CODE)) { - uc_index = (uint8_t)(timer_seq & TIMER_SEQNO_MASK_CODE); - if (FALSE == CANFreqTransIndexEntryCheck(uc_index)) { // LCOV_EXCL_BR_LINE 6:Double check code. in CANFreqTransEntryCheck //NOLINT (readability/naming) - l_ret = RET_CAN_ERROR_CANCEL; /* Data destruction */ - } else { - /* CANDataPeriodic transmission start message transmission */ - if (FALSE == CANFreqTransStartTxMsg(h_app, uc_index)) { - l_ret = RET_CAN_ERROR_CANCEL; /* Data destruction */ - } - } - } else { - l_ret = RET_CAN_ERROR_CANCEL; /* Data destruction */ - } - - FRAMEWORKUNIFIEDLOG(ZONE_CAN_DEBUG, __func__, "##### END #####"); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" //NOLINT (readability/naming) - return (l_ret); -} - -/******************************************************************************* - * MODULE : CANTxRsltReceiveMsg - ******************************************************************************/ -/*!----------------------------------------------------------------------------- - * @~english - * @brief CAN data transmission result reply processing - * - * It notifies the corresponding thread when the informative message - * of the CAN data transmission result is received. - * - * CANDataWhen a transmission result notification message is received, a notification is sent to the relevant thread... - * - * @~english - * @note - * -# Transmission result status check - * -# Transmission result notification registration check - * -# Transmission result table check - * -# Transmission result status acquisition - * -# Message sending - * -# Transmission result table deletion - * - * @~english - * @return Reception result - * @retval <RET_CAN_NORMAL> Normality - * @retval <RET_CAN_ERROR_CANCEL> Data annulment - * - * @~english - * @param[in] <pst_rcv_msg> Reception message reference pointer - */ -RET_CAN CANTxRsltReceiveMsg(HANDLE h_app, CAN_MSG_DATA *pst_rcv_msg) { // LCOV_EXCL_START 8:this IF is called in CANIcrSndStsProcess, which will not be called // NOLINT (whitespace/line_length) - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - RET_CAN l_ret = RET_CAN_NORMAL; /* Return value of this function */ - RET_CAN l_ret_func; /* Lower-order function return value */ - BOOL b_ret_func; /* Lower-order function return value */ -// T_ICR_CMDSNDCNF_STS *pst_msg_data; /* Receive data structure pointer */ - uint8_t us_sts; /* Status */ - - FRAMEWORKUNIFIEDLOG(ZONE_CAN_DEBUG, __func__, "##### START #####"); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" //NOLINT (readability/naming) -// pst_msg_data = reinterpret_cast<T_ICR_CMDSNDCNF_STS *>(reinterpret_cast<void *>(&pst_rcv_msg->ucData[0])); - - /****** Transmission result status check ******/ - l_ret_func = CANTxRsltReceiveMsgCheck(pst_rcv_msg); /* Receive command (transmission result) check processing */ - - /****** Send result notification registration check ******/ - if (RET_CAN_NORMAL == l_ret_func) { -// b_ret_func = CANTxRsltEntryCheck(pst_rcv_msg->stHead.hdr.rid); - } - - /****** Message processing ******/ - if ((RET_CAN_NORMAL == l_ret_func) && (TRUE == b_ret_func)) { -// b_ret_func = CANTxRsltSndCheck(pst_rcv_msg->stHead.hdr.rid, (uint32_t)pst_msg_data->cnf_sts); - /* Determine whether to perform transmission result notification */ - if (TRUE == b_ret_func) { -// switch (pst_msg_data->cnf_sts) { -// case ICR_SND_SUCCESS: -// us_sts = CAN_SUCCESS; -// break; -// case ICR_SND_ERR_RETRYOUT: -// us_sts = CAN_RETRYOUT; -// FRAMEWORKUNIFIEDLOG(ZONE_ERR, __func__, "#CAN_thread# CAN Transmission SYSCOM Error"); -// CANDebugLogOut(CAN_TRANCE_SYSCOM_ERR, reinterpret_cast<void *>(pst_rcv_msg)); -// break; -// case ICR_SND_ERR_BUFFERFULL: -// us_sts = CAN_BUFFERFUL; -// FRAMEWORKUNIFIEDLOG(ZONE_ERR, __func__, "#CAN_thread# CAN Transmission SYSCOM Error"); -// CANDebugLogOut(CAN_TRANCE_SYSCOM_ERR, reinterpret_cast<void *>(pst_rcv_msg)); -// break; -// default: -// l_ret = RET_CAN_ERROR_CANCEL; /* Data destruction */ -// FRAMEWORKUNIFIEDLOG(ZONE_ERR, __func__, "#CAN_thread# CAN Transmission SYSCOM Error"); -// CANDebugLogOut(CAN_TRANCE_SYSCOM_ERR, reinterpret_cast<void *>(pst_rcv_msg)); -// break; -// } - if (RET_CAN_NORMAL == l_ret) { -// b_ret_func = CANTxRsltSndMsg(h_app, pst_rcv_msg->stHead.hdr.rid, us_sts); - /* CANDataSend result notification message */ - /* Transmission result judgment */ - if (FALSE == b_ret_func) { - /* Transmission result notification transmission failure */ - l_ret = RET_CAN_ERROR_CANCEL; /* Data destruction */ - } - } - } else { - /* No need to send result notification */ - } - - /****** Delete various transmission results management tables ******/ - if (RET_CAN_NORMAL == l_ret) { -// CANTxRsltFin(pst_rcv_msg->stHead.hdr.rid); /* CANDataTransmission result notification completed */ - } - } else { - /* Transmission result status error */ - l_ret = RET_CAN_ERROR_CANCEL; /* Data destruction */ - } - FRAMEWORKUNIFIEDLOG(ZONE_CAN_DEBUG, __func__, "##### END #####"); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" //NOLINT (readability/naming) - return (l_ret); -} -// LCOV_EXCL_STOP 8 - -/******************************************************************************* - * MODULE : CANTxRsltReceiveMsgCheck - ******************************************************************************/ -/*!----------------------------------------------------------------------------- - * @~english - * @brief CAN data transmission result reception message check processing - * - * CAN data transmission result reception message check processing - * - * CANDataCheck the data contents when a transmission result notification message is received. - * - * @~english - * @note - * -# Transmission result status check - * -# RID abnormality check - * - * @~english - * @return Check result - * @retval <RET_CAN_NORMAL> Normality - * @retval <RET_CAN_ERROR_CANCEL> Data annulment - * - * @~english - * @param[in] <pst_rcv_msg> Reception message reference pointer - */ -/*------------------------------------------------------------------------------ - * RETURN : RET_CAN_NORMAL : Parameter Normal - * RET_CAN_ERROR_CANCEL : Data destruction - *----------------------------------------------------------------------------*/ -RET_CAN CANTxRsltReceiveMsgCheck(CAN_MSG_DATA *pst_rcv_msg) { // LCOV_EXCL_START 8:this IF is called in CANIcrSndStsProcess, which will not be called // NOLINT (whitespace/line_length) - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - RET_CAN l_ret = RET_CAN_NORMAL; /* Return value of this function */ -// T_ICR_CMDSNDCNF_STS *pst_msg_data; /* Receive data structure pointer */ - - FRAMEWORKUNIFIEDLOG(ZONE_CAN_DEBUG, __func__, "##### START #####"); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" //NOLINT (readability/naming) -// pst_msg_data = reinterpret_cast<T_ICR_CMDSNDCNF_STS *>(reinterpret_cast<void *>(&pst_rcv_msg->ucData[0])); - /* Type conversion */ - - /****** Transmission result status check ******/ -// if ((ICR_SND_SUCCESS != pst_msg_data->cnf_sts) && -// (ICR_SND_ERR_RETRYOUT != pst_msg_data->cnf_sts) && -// (ICR_SND_ERR_BUFFERFULL != pst_msg_data->cnf_sts)) { -// l_ret = RET_CAN_ERROR_CANCEL; /* Data destruction */ -// } - /****** RID anomaly check ******/ - /* NG if the ID is out of the table to be searched */ - /* The table range is from 0 (periodic-transmission-management-table + number-of-transmission-results-once-management-tables). */ -// if (((uint8_t)CAN_TXRSLT_CANRID_END < pst_rcv_msg->stHead.hdr.rid)) { -// l_ret = RET_CAN_ERROR_CANCEL; /* Data destruction */ -// } - - FRAMEWORKUNIFIEDLOG(ZONE_CAN_DEBUG, __func__, "##### END #####"); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" //NOLINT (readability/naming) - return (l_ret); -} -// LCOV_EXCL_STOP 8 - -/******************************************************************************* - * MODULE : CAN_CWORD29_TxMsg - * ABSTRACT : CANData(_CWORD29_) outgoing message processing - * FUNCTION : CANData(_CWORD29_) Start sending a message when it is received - * ARGUMENT : *pst_rcv_msg : Received Message Reference Pointer - * NOTE : - * RETURN : RET_CAN_NORMAL : Normal completion - * RET_CAN_ERROR_BUFFULL : Registered FULL - ******************************************************************************/ -EFrameworkunifiedStatus CAN_CWORD29_TxMsg(HANDLE h_app) { - CAN__CWORD29__TRANS_MSG pst_msg_data; /* Pointer to send start data structure */ - uint8_t uc_can_rid; /* Send Resource ID */ - uint8_t uc_index; /* Indexed */ - EFrameworkunifiedStatus e_status = eFrameworkunifiedStatusOK; - - FRAMEWORKUNIFIEDLOG(ZONE_CAN_DEBUG, __func__, "##### CAN_CWORD29_TxMsg START #####"); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" //NOLINT (readability/naming) - - e_status = FrameworkunifiedGetMsgDataOfSize(h_app, &pst_msg_data, sizeof(pst_msg_data), eSMRRelease); - if (e_status != eFrameworkunifiedStatusOK) { - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __func__, "#CAN_thread# FrameworkunifiedGetMsgDataOfSize Error"); - if (e_status == eFrameworkunifiedStatusInvldBufSize) { - FrameworkunifiedClearMsgData(h_app); - } - return eFrameworkunifiedStatusFail; - } - - FRAMEWORKUNIFIEDLOG(ZONE_CAN_DEBUG, __func__, "##### Opc=%04x Name=%s Rid=%02x #####", pst_msg_data.opc, pst_msg_data.notifyName, pst_msg_data.ucRid); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" //NOLINT (readability/naming) - - /* Register transmission result notification? */ - if ((uint8_t)CAN_RID_NOTUSE_CODE == pst_msg_data.ucRid) {/* When transmission results are unnecessary */ - uc_index = (uint8_t)CAN_RID_NOTUSE_CODE; /* Transmission result non-notification code */ - } else { /* When transmission result is required */ - if (FALSE == CAN_CWORD29_TransEntryCheck(&uc_index)) { - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __func__, "#CAN_thread# CAN _CWORD29_TransRslt BufferFull"); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" //NOLINT (readability/naming) - return eFrameworkunifiedStatusFail; - } - e_status = CAN_CWORD29_TransEntry(uc_index, &pst_msg_data); /* Save CAN_CWORD29_ Transmission Result */ - if (eFrameworkunifiedStatusOK != e_status) { // LCOV_EXCL_BR_LINE 6:Excluded due to value never returned at present - // LCOV_EXCL_START 6:Excluded due to value never returned at present - AGL_ASSERT_NOT_TESTED(); - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __func__, "ERROR !!! CAN_CWORD29_TransEntry failed : e_status=%d, uc_index=%d", e_status, uc_index); - return eFrameworkunifiedStatusFail; - // LCOV_EXCL_STOP 6:Excluded due to value never returned at present - } - } - - if ((uint8_t)CAN_RID_NOTUSE_CODE == uc_index) { - uc_can_rid = (uint8_t)CAN_RID_NOTUSE_CODE; - } else { - uc_can_rid = (uint8_t)((uint32_t)uc_index + CAN_TXRSLT_CANRID__CWORD29__START); - } - - /****** Message transmission processing ******/ -// CanMessage_CWORD29_ st_can_data; -// -// st_can_data.opc = pst_msg_data.opc; -// st_can_data.rid = uc_can_rid; -// st_can_data.dlc = (uint8_t)pst_msg_data.ulDataSize; -// memcpy(st_can_data.data, pst_msg_data.data, (st_can_data.dlc)); - -// if (CanSend_CWORD29_(&st_can_data) != CANHAL_RET_NORMAL) { -// return eFrameworkunifiedStatusFail; -// } - - return eFrameworkunifiedStatusOK; -} - -/*!----------------------------------------------------------------------------- - * @~english - * @brief Start transmission of CAN Command - * - * @~english - * @return Return value - * @retval <eFrameworkunifiedStatusOK> OK - * @retval <eFrameworkunifiedStatusFail> Abnormal termination - * - * @~english - * @param[in] <h_app> Application handle - */ -EFrameworkunifiedStatus CANTxBitStart(HANDLE h_app) { - EFrameworkunifiedStatus e_status = eFrameworkunifiedStatusOK; - CAN_TRANS_START_MSG_DAT rcv_msg; - - FRAMEWORKUNIFIEDLOG(ZONE_CAN_DEBUG, __func__, "##### CANTxBitStart Start"); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" //NOLINT (readability/naming) - - e_status = FrameworkunifiedGetMsgDataOfSize(h_app, &rcv_msg, sizeof(rcv_msg), eSMRRelease); - if (e_status != eFrameworkunifiedStatusOK) { // LCOV_EXCL_BR_LINE 4: NSFW error case. - // LCOV_EXCL_START 4: NSFW error case. - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __func__, "FrameworkunifiedGetMsgDataOfSize Error eFrameworkunifiedStatus=%d", e_status); - if (e_status == eFrameworkunifiedStatusInvldBufSize) { - FrameworkunifiedClearMsgData(h_app); - } - goto exit; - } - // LCOV_EXCL_STOP 4: NSFW error case. - - /* Merge CAN Data and update Trnasmission management table */ - if (TRUE == CANTransDataEntry(&rcv_msg)) { - - /* Interval Data registered to Timer management table */ - if ((uint32_t)0 < rcv_msg.freq) { - CANFreqTimerEntry(rcv_msg.id, rcv_msg.freq); - } - - /* Transmission CAN Data */ - if (FALSE == CANTransStartTxMsg(h_app, rcv_msg.id)) { - e_status = eFrameworkunifiedStatusFail; - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __func__, "CANTransStartTxMsg Error CAN ID=0x%04X", rcv_msg.id); - goto exit; - } - - /* Reset Timer */ - if ((uint32_t)0 == rcv_msg.freq) { - CANFreqTimerResetMap(rcv_msg.id); - } - } else if (FALSE == CAN_SubIDTransStartTxMsg(h_app, &rcv_msg)) { - e_status = eFrameworkunifiedStatusFail; - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __func__, "Trans NG CAN ID=0x%04X DATA[0]=0x%02X", rcv_msg.id, (rcv_msg.dat.dat[0] & rcv_msg.mask.dat[0])); - } - -exit: - FRAMEWORKUNIFIEDLOG(ZONE_CAN_DEBUG, __func__, "END(eFrameworkunifiedStatus=%x)", e_status); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" //NOLINT (readability/naming) - - return e_status; -} - -/*!----------------------------------------------------------------------------- - * @~english - * @brief Stop transmission CAN Command - * - * @~english - * @return Return value - * @retval <eFrameworkunifiedStatusOK> OK - * @retval <eFrameworkunifiedStatusFail> Abnormal termination - * - * @~english - * @param[in] <h_app> Application handle - */ -EFrameworkunifiedStatus CANTxBitStop(HANDLE h_app) { - EFrameworkunifiedStatus e_status = eFrameworkunifiedStatusOK; - CANID rcv_msg; - - FRAMEWORKUNIFIEDLOG(ZONE_CAN_DEBUG, __func__, "##### CAN_FreqTxBitStop Start"); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" //NOLINT (readability/naming) - e_status = FrameworkunifiedGetMsgDataOfSize(h_app, &rcv_msg, sizeof(rcv_msg), eSMRRelease); - if (e_status != eFrameworkunifiedStatusOK) { // LCOV_EXCL_BR_LINE 4: NSFW error case. - // LCOV_EXCL_START 4: NSFW error case. - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __func__, "FrameworkunifiedGetMsgDataOfSize Error eFrameworkunifiedStatus=%d", e_status); - if (e_status == eFrameworkunifiedStatusInvldBufSize) { - FrameworkunifiedClearMsgData(h_app); - } - e_status = eFrameworkunifiedStatusFail; - goto exit; - } - // LCOV_EXCL_STOP 4: NSFW error case. - - /* Check correct CAN ID */ - if (FALSE == CANEntryTransCanidCheck(rcv_msg)) { - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __func__, "CANEntryTransCanidCheck Error CAN ID=0x%04X", rcv_msg); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" //NOLINT (readability/naming) - e_status = eFrameworkunifiedStatusFail; - goto exit; - } - - /* Stop periodic transmission */ - if (RET_CAN_NORMAL != CANFreqTransTimerStopMap(rcv_msg)) { // LCOV_EXCL_BR_LINE 200:the function is always returned to RET_CAN_NORMAL //NOLINT (readability/naming) - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - e_status = eFrameworkunifiedStatusFail; // LCOV_EXCL_LINE 200:the function is always returned to RET_CAN_NORMAL - } - -exit: - FRAMEWORKUNIFIEDLOG(ZONE_CAN_DEBUG, __func__, "END(eFrameworkunifiedStatus=%x)", e_status); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" //NOLINT (readability/naming) - - return e_status; -} -// LCOV_EXCL_BR_LINE 10:THE_END_LINE_OF_THE_FILE |