Advertisement
Guest User

Untitled

a guest
Feb 19th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.71 KB | None | 0 0
  1. /*
  2.  * CSRVDCM.cpp
  3.  *
  4.  *  Created on: Feb 9, 2018
  5.  *      Author: michal.kaliszczyk
  6.  */
  7.  
  8. #include "../include/CSRV_DCM.h"
  9.  
  10. CSRV_DCM::CSRV_DCM(IDomesticInfo& refInterface,ILifecycleManager& refInterfaceLife):
  11. m_refIDomesticInfo(refInterface),m_refLifecycleManager(refInterfaceLife) {
  12.     // TODO Auto-generated constructor stub
  13.  
  14. }
  15. /* I could not pass here variable by reference */
  16. void CSRV_DCM::vSignalManager(int iSignal)
  17. {
  18.         std::cout<<"Serwis zjesc sygnal :) "<<iSignal<<std::endl;
  19. }
  20.  
  21. eErr CSRV_DCM::vAddSignal(int& iSignal)
  22. {
  23.     eErr enReturnError = E_OK;
  24.  
  25.     if(0 != sigaction(iSignal, &m_act, NULL))
  26.     {
  27.         enReturnError = E_SRV_WRONG_SIGNAL;
  28.     }
  29.  
  30.     PRINT_LOG(enReturnError);
  31.     return enReturnError;
  32. }
  33.  
  34. void CSRV_DCM::vAddCycleTime(const MESSAGE_ID& enMessageID,time_t& tCycleTime)
  35. {
  36.     std::cout<<"Cycle Time Add = "<<tCycleTime<<"Dla MSG_ID = "<<enMessageID<<std::endl;
  37.     m_Timer[enMessageID].t_CycleTime = tCycleTime;
  38. }
  39.  
  40. void CSRV_DCM::vAddTimeOut(const MESSAGE_ID& enMessageID, time_t& tTimeOut)
  41. {
  42.     std::cout<<"TimeOUT Add = "<<tTimeOut<<"Dla MSG_ID = "<<enMessageID<<std::endl;
  43.     m_Timer[enMessageID].t_TimeOut = tTimeOut;
  44. }
  45.  
  46. eErr CSRV_DCM::enInit()
  47. {
  48.     eErr enReturnError = E_OK;
  49.  
  50.     if(0 == sigemptyset(&m_iset))
  51.     {
  52.         m_act.sa_handler = &vSignalManager;
  53.         m_act.sa_mask = m_iset;
  54.         m_act.sa_flags = 0;
  55.     }
  56.     else
  57.     {
  58.         enReturnError = E_SRV_SIG_NOT_EMPTY;
  59.     }
  60.  
  61.     PRINT_LOG(enReturnError);
  62.     return enReturnError;
  63. }
  64. eErr CSRV_DCM::enDeinit()
  65. {
  66.     eErr enReturnError = E_OK;
  67.  
  68.     if(0 == sigemptyset(&m_iset))
  69.     {
  70.         enReturnError = E_SRV_SIG_NOT_EMPTY;
  71.     }
  72.  
  73.     PRINT_LOG(enReturnError);
  74.     return enReturnError;
  75. }
  76.  
  77. //eErr CSRV_DCM::enInitInterfaceLifecycleManager(ILifecycleManager* const pxInterface)
  78. //{
  79. //  eErr enReturnError = E_OK;
  80. //
  81. //  if(0 == pxInterface)
  82. //  {
  83. //      enReturnError = E_SRV_NULL_PTR_1;
  84. //  }
  85. //  else
  86. //  {
  87. //      m_pxLifecycleManager = pxInterface;
  88. //  }
  89. //
  90. //  PRINT_LOG(enReturnError);
  91. //  return enReturnError;
  92. //}
  93. //
  94. //eErr CSRV_DCM::enDeInitInterfaceLifecycleManager()
  95. //{
  96. //  eErr enReturnError = E_OK;
  97. //
  98. //  if(0 != m_pxLifecycleManager)
  99. //  {
  100. //      m_pxLifecycleManager = 0;
  101. //  }
  102. //  else
  103. //  {
  104. //      enReturnError = E_SRV_ALREADY_DEREGISTERED;
  105. //  }
  106. //
  107. //  PRINT_LOG(enReturnError);
  108. //  return enReturnError;
  109. //}
  110. eErr CSRV_DCM::enSendDiagnosticMSG(const MSG& stMessage)
  111. {
  112.     eErr enReturnError;
  113.     uint16_t u16Payload = (uint16_t)(stMessage.DATA[1] + (stMessage.DATA[0] << 8));
  114.  
  115.     switch(u16Payload)
  116.     {
  117.         case DCM_RESET :
  118.             enReturnError = m_refLifecycleManager.enStateChange(RESET);
  119.             break;
  120.         case DCM_SLEEP :
  121.             enReturnError = m_refLifecycleManager.enStateChange(SLEEP);
  122.             break;
  123.         case DCM_WAKE_UP :
  124.             enReturnError = m_refLifecycleManager.enStateChange(WAKE_UP);
  125.             break;
  126.         case DCM_SHUT_DOWN:
  127.             enReturnError = m_refLifecycleManager.enStateChange(SHUT_DOWN);
  128.             break;
  129.         default:
  130.             enReturnError = E_SRV_DCM_UNKOWN_PAYLOAD;
  131.             break;
  132.     }
  133.  
  134.     PRINT_LOG(enReturnError);
  135.     return enReturnError;
  136. }
  137.  
  138. eErr CSRV_DCM::enCheckValidMSG(MSG& sMessage)
  139. {
  140.     eErr enReturnError = E_OK;
  141.     timeval tTimer;
  142.     //std::cout<<"CheckValidMsg "<<std::endl;
  143.  
  144.     gettimeofday(&tTimer, NULL);
  145.  
  146.     if(false == m_Timer[sMessage.MSG_ID].boStart)
  147.     {
  148.         m_Timer[sMessage.MSG_ID].boStart = true;
  149.     //  std::cout<<"First enter "<<std::endl;
  150.     }
  151.     else
  152.     {
  153.         //std::cout<<"Calculate"<<std::endl;
  154.         m_Timer[sMessage.MSG_ID].t_CurrentTime = tTimer.tv_usec - m_Timer[sMessage.MSG_ID].t_CurrentTime ;
  155.  
  156.         if(m_Timer[sMessage.MSG_ID].t_TimeOut < m_Timer[sMessage.MSG_ID].t_CurrentTime)
  157.         {
  158.             enReturnError = E_SRV_TIME_OUT_MESSAGE;
  159.             sMessage.boTimeOut = true;
  160.         }
  161.     }
  162.  
  163.     PRINT_LOG(enReturnError);
  164.     return enReturnError;
  165. }
  166. CSRV_DCM::~CSRV_DCM() {
  167.     // TODO Auto-generated destructor stub
  168. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement