CANSM_VALIDATE_POINTER(ConfigPtr, CANSM_SERVICEID_INIT); /**< @req CANSM179 */\r
\r
CanSM_Config = ConfigPtr;\r
+ Std_ReturnType status = E_OK;\r
+ Std_ReturnType totalStatus = E_OK;\r
\r
for (uint8 i = 0; i < CANSM_NETWORK_COUNT; ++i) {\r
- CanSM_Internal_RequestComMode(i, COMM_NO_COMMUNICATION); /**< @req CANSM211 */\r
+ status = CanSM_Internal_RequestComMode(i, COMM_NO_COMMUNICATION); /**< @req CANSM211 */\r
+ if (status > totalStatus) {\r
+ totalStatus = status;\r
+ }\r
}\r
\r
- CanSM_Internal.InitStatus = CANSM_STATUS_INIT;\r
+ if (totalStatus == E_OK) {\r
+ CanSM_Internal.InitStatus = CANSM_STATUS_INIT;\r
+ } else {\r
+ // TODO report error?\r
+ }\r
}\r
\r
-void CanSM_GetVersionInfo( Std_VersionInfoType* VersionInfo ) {\r
- CANSM_VALIDATE_INIT(CANSM_SERVICEID_GETVERSIONINFO);\r
-}\r
\r
/** @req CANSM181 @req CANSM183 @req CANSM182.partially @req CANSM184 */\r
Std_ReturnType CanSM_RequestComMode( NetworkHandleType NetworkHandle, ComM_ModeType ComM_Mode ) {\r
overallStatus = status;\r
}\r
\r
- if (status == E_OK) {\r
+ if (overallStatus == E_OK) {\r
NetworkInternal->CurrentMode = ComM_Mode;\r
ComM_BusSM_ModeIndication(NetworkHandle, ComM_Mode); /**< @req CANSM089 */\r
}\r
\r
- return status;\r
+ return overallStatus;\r
}\r
\r
/** @req CANSM039 @req CANSM044 */\r
Std_ReturnType CanSM_Internal_RequestCanIfMode( NetworkHandleType NetworkHandle, ComM_ModeType ComM_Mode ) {\r
const CanSM_NetworkType* Network = &CanSM_Config->Networks[NetworkHandle];\r
- CanIf_ControllerModeType CanIf_Mode;\r
+ CanIf_ControllerModeType CanIf_Mode = CANIF_CS_STARTED;\r
+ Std_ReturnType totalStatus = E_OK;\r
\r
switch (ComM_Mode) {\r
case COMM_NO_COMMUNICATION:\r
CanIf_Mode = CANIF_CS_STARTED;\r
break;\r
default:\r
- return E_NOT_OK;\r
+ totalStatus = E_NOT_OK;\r
break;\r
}\r
\r
- Std_ReturnType totalStatus = E_OK;\r
- for (int i = 0; i < Network->ControllerCount; ++i) {\r
- const CanSM_ControllerType* Controller = &Network->Controllers[i];\r
- Std_ReturnType status =\r
- CanIf_SetControllerMode(Controller->CanIfControllerId, CanIf_Mode);\r
- if (status > totalStatus) {\r
- totalStatus = status;\r
+ if (totalStatus == E_OK) {\r
+ for (uint8 i = 0; i < Network->ControllerCount; ++i) {\r
+ const CanSM_ControllerType* Controller = &Network->Controllers[i];\r
+ Std_ReturnType status =\r
+ CanIf_SetControllerMode(Controller->CanIfControllerId, CanIf_Mode);\r
+ if (status > totalStatus) {\r
+ totalStatus = status;\r
+ }\r
}\r
}\r
return totalStatus;\r
/** @req CANSM173 */\r
Std_ReturnType CanSM_Internal_RequestComGroupMode( NetworkHandleType NetworkHandle, ComM_ModeType ComM_Mode ) {\r
const CanSM_NetworkType* Network = &CanSM_Config->Networks[NetworkHandle];\r
+ Std_ReturnType status = E_OK;\r
\r
switch (ComM_Mode) {\r
case COMM_NO_COMMUNICATION:\r
Com_IpduGroupStart(Network->ComTxPduGroupId, FALSE);\r
break;\r
default:\r
- return E_NOT_OK;\r
+ status = E_NOT_OK;\r
break;\r
}\r
- return E_OK;\r
+ return status;\r
}\r
\r
/** @req CANSM090 @req CANSM185 @req CANSM187 @req CANSM186 @req CANSM188 */\r
\r
const CanSM_NetworkType* Network = &CanSM_Config->Networks[NetworkHandle];\r
Std_ReturnType totalStatus = E_OK;\r
- for (int i = 0; i < Network->ControllerCount; ++i) {\r
+ for (uint8 i = 0; i < Network->ControllerCount; ++i) {\r
const CanSM_ControllerType* Controller = &Network->Controllers[i];\r
CanIf_ControllerModeType CanIf_Mode;\r
Std_ReturnType status =\r