From 211696c95c1ec3fc48e0096d47d4278910274195 Mon Sep 17 00:00:00 2001 From: takeshi_hoshina Date: Thu, 22 Oct 2020 13:28:36 +0900 Subject: ps-communication branch 0.1 --- .../server/src/main/communication_application.cpp | 177 +++++---------------- .../server/src/main/communication_main.cpp | 145 ++++++++--------- 2 files changed, 107 insertions(+), 215 deletions(-) (limited to 'communication/server/src/main') diff --git a/communication/server/src/main/communication_application.cpp b/communication/server/src/main/communication_application.cpp index 44049492..7240cdb9 100644 --- a/communication/server/src/main/communication_application.cpp +++ b/communication/server/src/main/communication_application.cpp @@ -1,5 +1,5 @@ /* - * @copyright Copyright (c) 2016-2019 TOYOTA MOTOR CORPORATION. + * @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. @@ -14,15 +14,10 @@ * limitations under the License. */ -/////////////////////////////////////////////////////////////////////////////// -/// \ingroup tag_TE_Calculator -/// \brief -/// -/// -/// -/// -/// -/////////////////////////////////////////////////////////////////////////////// +/* + * This file has been generated automatically. + * User hand written code entry is allowed only inside protected zones. + */ /* * This file has been generated automatically. @@ -37,94 +32,22 @@ #include #include #include +#include +#include +#include #include "communication_cid.h" #include "communication_communicationlog.h" -#include "ICR_Common.h" #include "Thread_Common.h" -#define NTFY_CommSH4A_Availability "CommSH4A/Availability" -#define TIMER_SEM_NAME "TIMER_SEM" -#define INT_SEM_NAME "INT_SEM" -#define SENDRECV_SEM_NAME "SENDRECV_SEM" - -/*------------------------------------------------------------------------------ - * function declaration - *----------------------------------------------------------------------------*/ -EFrameworkunifiedStatus CommSysCanReady(HANDLE h_app); -EFrameworkunifiedStatus CallbackCommSH4AAvailability(HANDLE h_app); -EFrameworkunifiedStatus CANThreadStart(HANDLE h_app); -EFrameworkunifiedStatus CANThreadStop(HANDLE h_app); - -/*------------------------------------------------------------------------------ - * static variables - *----------------------------------------------------------------------------*/ -HANDLE g_can_thread = NULL; - -BOOL g_can_ready = FALSE; -BOOL g_commsh4a_ready = FALSE; - -BOOL g_isaccoff = FALSE; // CAN_TxMsg.cpp needs this - -static const FrameworkunifiedProtocolCallbackHandler kCommPcbhs[] = { // LCOV_EXCL_BR_LINE 11: unexpected branch - {CID_COMMSYS_CAN_READY, CommSysCanReady}, -}; - -static const FrameworkunifiedNotificationCallbackHandler kCommsysNotificationHandlers[] = { // LCOV_EXCL_BR_LINE 11: unexpected branch // NOLINT (whitespace/line_length) - {NTFY_CommSH4A_Availability, CallbackCommSH4AAvailability}, -}; - -EFrameworkunifiedStatus CommSysReadyCheck(HANDLE h_app) { - EFrameworkunifiedStatus e_status = eFrameworkunifiedStatusOK; - e_status = FrameworkunifiedPublishServiceAvailability(h_app, TRUE); - if (eFrameworkunifiedStatusOK != e_status) { - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __func__, - "Failed to Publish Service Availability Notification."); - } - return e_status; -} - -EFrameworkunifiedStatus CallbackCommSH4AAvailability(HANDLE h_app) { - EFrameworkunifiedStatus e_status; - ServiceAvailability tServiceAvailability; - - // Read the data from the message - e_status = FrameworkunifiedGetMsgDataOfSize(h_app, &tServiceAvailability, sizeof(tServiceAvailability), 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 - if (e_status == eFrameworkunifiedStatusInvldBufSize) { - EFrameworkunifiedStatus e_statusClear = FrameworkunifiedClearMsgData(h_app); - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __func__, "FrameworkunifiedClearMsgData (e_status = %d)", e_statusClear); - } - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __func__, "FrameworkunifiedGetMsgDataOfSize Failed"); - return e_status; - } - // LCOV_EXCL_STOP 4: NSFW error case. - - // Service Availability - if (eFrameworkunifiedServiceAvailable != tServiceAvailability.eServiceAvailability) { // LCOV_EXCL_BR_LINE 4: NSFW error case. - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - FRAMEWORKUNIFIEDLOG(ZONE_DEBUG, __func__, "[%s] Availability is FALSE.", tServiceAvailability.cServiceName); // LCOV_EXCL_LINE 4: NSFW error case. // NOLINT (whitespace/line_length) - return e_status; - } else { - g_commsh4a_ready = TRUE; - FRAMEWORKUNIFIEDLOG(ZONE_INFO, __func__, "[%s] Availability is TRUE.", tServiceAvailability.cServiceName); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT (whitespace/line_length) - } - - CommSysReadyCheck(h_app); - return eFrameworkunifiedStatusOK; -} +extern EFrameworkunifiedStatus CANThreadStart(HANDLE h_app); +extern EFrameworkunifiedStatus CANThreadStop(HANDLE h_app); -EFrameworkunifiedStatus CommSysCanReady(HANDLE h_app) { - g_can_ready = TRUE; - CommSysReadyCheck(h_app); - return eFrameworkunifiedStatusOK; -} +HANDLE g_can_thread = NULL; EFrameworkunifiedStatus FrameworkunifiedOnInitialization(HANDLE h_app) { - // Return Status EFrameworkunifiedStatus e_status = eFrameworkunifiedStatusOK; - /*UserCodeStartCommunicationOnInitialization*/ + + CommonInit(); // API to Register Notification for Service Availability. e_status = FrameworkunifiedRegisterServiceAvailabilityNotification(h_app, @@ -147,81 +70,54 @@ EFrameworkunifiedStatus FrameworkunifiedOnInitialization(HANDLE h_app) { "Service Availability Notification published successfully."); } - // Attach callback api to dispatcher for to notify availability - e_status = FrameworkunifiedAttachCallbacksToDispatcher(h_app, FRAMEWORKUNIFIED_ANY_SOURCE, - kCommPcbhs, _countof(kCommPcbhs)); - if (e_status != eFrameworkunifiedStatusOK) { - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __func__, - "FrameworkunifiedAttachCallbacksToDispatcher Error(%d)", e_status); - exit(EXIT_FAILURE); - } - - // FIXME : Following code is really needed? - // Subscribe to service availability - e_status = FrameworkunifiedSubscribeNotificationsWithCallback(h_app, - kCommsysNotificationHandlers, _countof(kCommsysNotificationHandlers)); - if (eFrameworkunifiedStatusOK != e_status) { - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __func__, "Failed to FrameworkunifiedSubscribeNotificationsWithCallback."); - exit(EXIT_FAILURE); - } - g_can_thread = FrameworkunifiedCreateChildThread(h_app, LAN_SERVICE_CAN, CANThreadStart, CANThreadStop); if (g_can_thread == NULL) { FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Fail to create CAN"); } - /*UserCodeEndCommunicationOnInitialization*/ + // API to Publish Service Availability Notification. + e_status = FrameworkunifiedPublishServiceAvailability(h_app, TRUE); + if (eFrameworkunifiedStatusOK != e_status) { + FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, + "Failed to Publish Service Availability Notification."); + } else { + FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, + "Service Availability Notification published successfully."); + } + return e_status; } -// LCOV_EXCL_START 8: (dead code there is no function in wakeup) EFrameworkunifiedStatus FrameworkunifiedOnWakeup(HANDLE h_app) { - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert EFrameworkunifiedStatus e_status = eFrameworkunifiedStatusOK; return e_status; } -// LCOV_EXCL_STOP 8: (dead code there is no function in wakeup) -// LCOV_EXCL_START 14 Resident process, not called by NSFW EFrameworkunifiedStatus FrameworkunifiedOnShutdown(HANDLE h_app) { - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert EFrameworkunifiedStatus e_status = eFrameworkunifiedStatusOK; return e_status; } -// LCOV_EXCL_STOP 14 Resident process, not called by NSFW -// LCOV_EXCL_START 14 Resident process, not called by NSFW EFrameworkunifiedStatus FrameworkunifiedOnEShutdown(HANDLE h_app) { - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert EFrameworkunifiedStatus e_status = eFrameworkunifiedStatusOK; return e_status; } -// LCOV_EXCL_STOP 14 Resident process, not called by NSFW -// LCOV_EXCL_START 14 Resident process, not called by NSFW EFrameworkunifiedStatus FrameworkunifiedOnDestroy(HANDLE h_app) { - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert EFrameworkunifiedStatus e_status = eFrameworkunifiedStatusOK; return e_status; } -// LCOV_EXCL_STOP 14 Resident process, not called by NSFW -// LCOV_EXCL_START 7: Debug Code EFrameworkunifiedStatus FrameworkunifiedOnDebugDump(HANDLE h_app) { - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert EFrameworkunifiedStatus e_status = eFrameworkunifiedStatusOK; return e_status; } -// LCOV_EXCL_STOP 7: Debug Code -// LCOV_EXCL_START 8:(dead code do not use StateMachine) EFrameworkunifiedStatus FrameworkunifiedCreateStateMachine(HANDLE h_app) { - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert EFrameworkunifiedStatus e_status = eFrameworkunifiedStatusOK; return e_status; } -// LCOV_EXCL_STOP 8:(dead code do not use StateMachine) static EFrameworkunifiedStatus CommThreadCheckAndStart(HANDLE p, HANDLE c, UI_32 len, PCVOID data, BOOL current) { @@ -245,15 +141,6 @@ EFrameworkunifiedStatus FrameworkunifiedOnStart(HANDLE h_app) { EFrameworkunifiedStatus e_status = eFrameworkunifiedStatusOK; FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "[START]"); - e_status = FrameworkunifiedPublishServiceAvailability(h_app, FALSE); - if (eFrameworkunifiedStatusOK != e_status) { - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, - "Failed to Publish Service Availability Notification."); - } else { - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, - "Service Availability Notification published successfully."); - } - e_status = CommThreadCheckAndStart(h_app, g_can_thread, 0, NULL, CommGetAvailabilityCurrent(CAN_AVAILABILITY)); if (eFrameworkunifiedStatusOK != e_status) { @@ -267,7 +154,6 @@ EFrameworkunifiedStatus FrameworkunifiedOnStart(HANDLE h_app) { EFrameworkunifiedStatus FrameworkunifiedOnStop(HANDLE h_app) { EFrameworkunifiedStatus e_status = eFrameworkunifiedStatusOK; - g_isaccoff = TRUE; e_status = CommThreadCheckAndStop(h_app, g_can_thread, 0, NULL, CommGetAvailabilityCurrent(CAN_AVAILABILITY)); @@ -279,11 +165,10 @@ EFrameworkunifiedStatus FrameworkunifiedOnStop(HANDLE h_app) { } return e_status; -} // LCOV_EXCL_LINE 10: final line +} EFrameworkunifiedStatus FrameworkunifiedOnPreStart(HANDLE h_app) { EFrameworkunifiedStatus e_status = eFrameworkunifiedStatusOK; - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "[START]"); e_status = CommThreadCheckAndStart(h_app, g_can_thread, @@ -326,4 +211,16 @@ EFrameworkunifiedStatus FrameworkunifiedOnBackgroundStop(HANDLE h_app) { FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "[END]"); return e_status; -} // LCOV_EXCL_BR_LINE 10:Gcov constraints (last row) +} + +std::string MessageDataOutputLog(uint8_t *msg_data, uint32_t len){ + std::string data_log; + int data_buf; + for(uint32_t i = 0; i < len; i++){ + std::ostringstream ss; + data_buf = (int)msg_data[i]; + ss << std::hex << data_buf; + data_log = ss.str() + " " + data_log; + } + return data_log; +} diff --git a/communication/server/src/main/communication_main.cpp b/communication/server/src/main/communication_main.cpp index 5fcb428a..39daae14 100644 --- a/communication/server/src/main/communication_main.cpp +++ b/communication/server/src/main/communication_main.cpp @@ -1,5 +1,5 @@ /* - * @copyright Copyright (c) 2016-2019 TOYOTA MOTOR CORPORATION. + * @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. @@ -14,21 +14,6 @@ * limitations under the License. */ -/////////////////////////////////////////////////////////////////////////////// -/// \ingroup -/// \brief -/// -/// -/// -/// -/// -/////////////////////////////////////////////////////////////////////////////// - -/* - * This file has been generated automatically. - * User hand written code entry is allowed only inside protected zones. - */ - #include #include #include @@ -48,9 +33,9 @@ #include "CAN_Thread.h" #include "Thread_Common.h" -CFrameworkunifiedVersion g_FrameworkunifiedVersion(MAJORNO, MINORNO, REVISION); // NOLINT (readability/naming) +CFrameworkunifiedVersion g_FrameworkunifiedVersion(MAJORNO, MINORNO, REVISION); -FRAMEWORKUNIFIEDLOGPARAM g_FrameworkunifiedLogParams = { // NOLINT (readability/naming) +FRAMEWORKUNIFIEDLOGPARAM g_FrameworkunifiedLogParams = { FRAMEWORKUNIFIEDLOGOPTIONS, {ZONE_TEXT_10, ZONE_TEXT_11, ZONE_TEXT_12, ZONE_TEXT_13, ZONE_TEXT_14, ZONE_TEXT_15, @@ -63,42 +48,71 @@ FRAMEWORKUNIFIEDLOGPARAM g_FrameworkunifiedLogParams = { // NOLINT (readability FRAMEWORKUNIFIEDLOGZONES}; extern HANDLE g_can_thread; +static bool capture_log_flg = FALSE; #define COMMSYS_SND_ERR_CNT_MAX 10 -////////////////////////////////////////// -// Function : main -////////////////////////////////////////// +static void MessageHandler(HANDLE h_app) { + EFrameworkunifiedStatus e_status = eFrameworkunifiedStatusOK; + e_status = FrameworkunifiedDispatchProcessWithoutLoop(h_app); + if (e_status != eFrameworkunifiedStatusOK) { + // Ignore Error. Logging only. + FRAMEWORKUNIFIEDLOG(ZONE_ERR, __func__, "FrameworkunifiedDispatchProcessWithoutLoop: %d", e_status); + } +} + +static void TimeoutHandlerCAN(HANDLE h_app) { + EFrameworkunifiedStatus e_status = eFrameworkunifiedStatusOK; + uint32_t dummy = 0; + static uint32_t snd_err_cnt_can = 0; + + if (CommGetAvailabilityCurrent(CAN_AVAILABILITY)) { + e_status = FrameworkunifiedSendChild(h_app, g_can_thread, + CID_COMMSYS_TIMEOUT, 0, &dummy); + if (e_status != eFrameworkunifiedStatusOK) { + snd_err_cnt_can++; + FRAMEWORKUNIFIEDLOG(ZONE_ERR, __func__, + "FrameworkunifiedSendChild(timeout for can) faild: %d", e_status); + + if (capture_log_flg) + return; + + if (snd_err_cnt_can < COMMSYS_SND_ERR_CNT_MAX) + return; + + SendUserInvokedLoggingRequestToSystemManager( + e_SS_SM_CAPTURE_DTC_LOGS, "Send CAN TimeoutNtfy Error"); + capture_log_flg = true; + } else { + snd_err_cnt_can = 0; + } + } +} int main(int argc, char *argv[]) { EFrameworkunifiedStatus e_status = eFrameworkunifiedStatusOK; FrameworkunifiedDefaultCallbackHandler cb_funcs; - FRAMEWORKUNIFIED_MAKE_DEFAULT_CALLBACK(cb_funcs); // LCOV_EXCL_BR_LINE 15:marco defined in "system_service/ss_system_if.h" + FRAMEWORKUNIFIED_MAKE_DEFAULT_CALLBACK(cb_funcs); HANDLE h_app; - FRAMEWORKUNIFIED_SET_ZONES(); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" + FRAMEWORKUNIFIED_SET_ZONES(); struct pollfd fds[2]; int ret; - uint32_t dummy = 0; - uint32_t snd_err_cnt_can = 0; - BOOL capture_log_flg = FALSE; // Log save flag(Saved:TRUE, Unsaved:FALSE) - e_status = FrameworkunifiedCreateDispatcherWithoutLoop(LAN_SERVICE_MAIN, h_app, argc, argv, &cb_funcs, TRUE); // LCOV_EXCL_BR_LINE 11:Unexpected branch // NOLINT (whitespace/line_length) - if (e_status != eFrameworkunifiedStatusOK) { // LCOV_EXCL_BR_LINE 4: NSFW error case. - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __func__, "FrameworkunifiedCreateDispatcherWithoutLoop: %d", e_status); // LCOV_EXCL_LINE 4: NSFW error case. + e_status = FrameworkunifiedCreateDispatcherWithoutLoop(LAN_SERVICE_MAIN, + h_app, argc, argv, &cb_funcs, TRUE); + if (e_status != eFrameworkunifiedStatusOK) { + FRAMEWORKUNIFIEDLOG(ZONE_ERR, __func__, "FrameworkunifiedCreateDispatcherWithoutLoop: %d", e_status); return EXIT_FAILURE; } - e_status = FrameworkunifiedGetDispatcherFD(h_app, &fds[0].fd); // LCOV_EXCL_BR_LINE 11:Unexpected branch - if (e_status != eFrameworkunifiedStatusOK) { // LCOV_EXCL_BR_LINE 4: NSFW error case. - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __func__, "FrameworkunifiedGetDispatcherFD: %d", e_status); // LCOV_EXCL_LINE 4: NSFW error case. + e_status = FrameworkunifiedGetDispatcherFD(h_app, &fds[0].fd); + if (e_status != eFrameworkunifiedStatusOK) { + FRAMEWORKUNIFIEDLOG(ZONE_ERR, __func__, "FrameworkunifiedGetDispatcherFD: %d", e_status); return EXIT_FAILURE; } - if ((fds[1].fd = timerfd_create(CLOCK_MONOTONIC, TFD_CLOEXEC)) == -1) { // LCOV_EXCL_BR_LINE 5: timerfd_create's error case. // NOLINT (whitespace/line_length) - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __func__, "timerfd_create: %d", errno); // LCOV_EXCL_LINE 5: timerfd_create's error case. + if ((fds[1].fd = timerfd_create(CLOCK_MONOTONIC, TFD_CLOEXEC)) == -1) { + FRAMEWORKUNIFIEDLOG(ZONE_ERR, __func__, "timerfd_create: %d", errno); return EXIT_FAILURE; } @@ -107,53 +121,34 @@ int main(int argc, char *argv[]) { tm.it_value.tv_nsec = 100 * 1000 * 1000; tm.it_interval.tv_sec = 0; tm.it_interval.tv_nsec = 100 * 1000 * 1000; - if (timerfd_settime(fds[1].fd, 0, &tm, NULL) == -1) { // LCOV_EXCL_BR_LINE 5: timerfd_create's error case. - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __func__, "timerfd_settime: %d", errno); // LCOV_EXCL_LINE 5: timerfd_create's error case. + if (timerfd_settime(fds[1].fd, 0, &tm, NULL) == -1) { + FRAMEWORKUNIFIEDLOG(ZONE_ERR, __func__, "timerfd_settime: %d", errno); return EXIT_FAILURE; } fds[0].events = POLLIN; fds[1].events = POLLIN; while (1) { - ret = poll(fds, sizeof(fds) / sizeof(struct pollfd), -1); // LCOV_EXCL_BR_LINE 5: poll's error case. - if (ret < 0) { // LCOV_EXCL_BR_LINE 5: poll's error case. - // LCOV_EXCL_START 5: poll's error case. - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - if (errno == EINTR) { /* signal interrupt */ + ret = poll(fds, sizeof(fds) / sizeof(struct pollfd), -1); + if (ret < 0) { + if (errno == EINTR) { continue; } FRAMEWORKUNIFIEDLOG(ZONE_ERR, __func__, "poll errno:%d", errno); - // LCOV_EXCL_STOP 5: poll's error case. - } else { - if ((fds[0].revents & POLLIN) != 0) { - e_status = FrameworkunifiedDispatchProcessWithoutLoop(h_app); // LCOV_EXCL_BR_LINE 11:Unexpected branch - if (e_status != eFrameworkunifiedStatusOK) { // LCOV_EXCL_BR_LINE 4: NSFW error case. - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __func__, "FrameworkunifiedDispatchProcessWithoutLoop: %d", e_status); // LCOV_EXCL_LINE 4: NSFW error case. // NOLINT (whitespace/line_length) - } - } else if ((fds[1].revents & POLLIN) != 0) { // LCOV_EXCL_BR_LINE 5: poll's error case. - // Timeout - uint64_t exp; - read(fds[1].fd, &exp, sizeof(uint64_t)); // LCOV_EXCL_BR_LINE 11:Unexpected branch - - // Timeout notification to the CAN thread - if (CommGetAvailabilityCurrent(CAN_AVAILABILITY)) { - e_status = FrameworkunifiedSendChild(h_app, g_can_thread, CID_COMMSYS_TIMEOUT, 0, &dummy); // LCOV_EXCL_BR_LINE 11:Unexpected branch // NOLINT (whitespace/line_length) - if (e_status != eFrameworkunifiedStatusOK) { // LCOV_EXCL_BR_LINE 4: NSFW error case. - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - snd_err_cnt_can++; // LCOV_EXCL_LINE 4: NSFW error case. - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __func__, "FrameworkunifiedSendChild(timeout for can) faild: %d", e_status); // LCOV_EXCL_LINE 4: NSFW error case. // NOLINT (whitespace/line_length) - if (!capture_log_flg && (snd_err_cnt_can >= COMMSYS_SND_ERR_CNT_MAX)) { // LCOV_EXCL_LINE 4: NSFW error case. // NOLINT (whitespace/line_length) - SendUserInvokedLoggingRequestToSystemManager(e_SS_SM_CAPTURE_DTC_LOGS, "Send CAN TimeoutNtfy Error"); // LCOV_EXCL_LINE 4: NSFW error case. // NOLINT (whitespace/line_length) - capture_log_flg = TRUE; // LCOV_EXCL_LINE 4: NSFW error case. - } - } else { - snd_err_cnt_can = 0; - } - } - } + continue; + } + + if ((fds[0].revents & POLLIN) != 0) { + MessageHandler(h_app); + continue; + } + + if ((fds[1].revents & POLLIN) != 0) { + uint64_t exp; + read(fds[1].fd, &exp, sizeof(uint64_t)); + TimeoutHandlerCAN(h_app); + continue; } } return EXIT_SUCCESS; -} // LCOV_EXCL_LINE 10: final line +} \ No newline at end of file -- cgit 1.2.3-korg