DEENESPTFRRUARHIKOZHNL

CAN State Manager (CanSM)

ModulCanSM (CAN State Manager)
BSW-Modul-ID140
Standard-Header#include "CanSM.h"
SWS-SpezifikationAUTOSAR_CP_SWS_CANStateManager.pdf, AUTOSAR_SWS_CANStateManager.pdf, AUTOSAR_SWS_CAN_StateManager.pdf
Umfang161 Records · 79 Snippets
ClusterCAN-Stack

CAN State Manager (CanSM)

AUTOSAR Classic Communication Services-Modul CAN State Manager (CanSM, Spezifikation: AUTOSAR_CP_SWS_CANStateManager.pdf, AUTOSAR_SWS_CANStateManager.pdf, AUTOSAR_SWS_CAN_StateManager.pdf).

Funktionen — Übersicht

Typen — Übersicht

Anforderungen — Übersicht

Funktionen & Typen — Detailansicht

फ़ंक्शन CanSM_Init [SWS_CanSM_00023] 📄 PDF

void CanSM_Init(const CanSM_ConfigType* ConfigPtr);

This service initializes the Can SM module

फ़ंक्शन CanSM_GetVersionInfo [SWS_CanSM_00024] 📄 PDF

void CanSM_GetVersionInfo(Std_VersionInfoType* VersionInfo);

This service puts out the version information of this module (module ID, vendor ID, vendor specific version numbers related to BSW00407)

फ़ंक्शन CanSM_RequestComMode [SWS_CanSM_00062] 📄 PDF

Std_ReturnType CanSM_RequestComMode(NetworkHandleType network, ComM_ModeType ComM_Mode);

This service shall change the communication mode of a CAN network to the requested one.

फ़ंक्शन CanSM_GetCurrentComMode [SWS_CanSM_00063] 📄 PDF

Std_ReturnType CanSM_GetCurrentComMode(NetworkHandleType network, ComM_ModeType* ComM_ModePtr);

This service shall put out the current communication mode of a CAN network.

फ़ंक्शन CanSM_ControllerBusOff [SWS_CanSM_00064] 📄 PDF

void CanSM_ControllerBusOff(uint8 ControllerId);

This callback function notifies the Can SM about a bus - off event on a certain CAN controller, which needs to be considered with the specified bus - off recovery handling for th e impacted CAN network.

फ़ंक्शन CanSM_MainFunction [SWS_CanSM_00065] 📄 PDF

void CanSM_MainFunction(void);

Scheduled function of the Can SM

फ़ंक्शन CanSM_TransceiverModeIndication [SWS_CanSM_00399] 📄 PDF

void CanSM_TransceiverModeIndication(uint8 TransceiverId, CanTrcv_TrcvModeType TransceiverMode);

This callback shall notify the Can SM module about a CAN transceiver mode change.

फ़ंक्शन CanSM_TxTimeoutException [SWS_CanSM_00410] 📄 PDF

void CanSM_TxTimeoutException(NetworkHandleType Channel);

This function shall notify the Can SM module, that the Can Nm has detected for the affected partial CAN network a tx timeout exception, which shall be recovered within the respective network state machine of the Can SM module.

फ़ंक्शन CanSM_ClearTrcvWufFlagIndication [SWS_CanSM_00413] 📄 PDF

void CanSM_ClearTrcvWufFlagIndication(uint8 Transceiver);

This callback function shall indicate the Can If_ Clear Trcv Wuf Flag API process end for the notified CAN Transceiver.

फ़ंक्शन CanSM_CheckTransceiverWakeFlagIndication [SWS_CanSM_00416] 📄 PDF

void CanSM_CheckTransceiverWakeFlagIndication(uint8 Transceiver);

This callback function indicates the Can If_ Check Trcv Wake Flag API process end for the notified CAN Transceiver.

फ़ंक्शन CanSM_ConfirmPnAvailability [SWS_CanSM_00419] 📄 PDF

void CanSM_ConfirmPnAvailability(uint8 TransceiverId);

This callback function indicates that the transceiver is running in PN communication mode.

फ़ंक्शन CanSM_SetBaudrate [SWS_CanSM_00561] 📄 PDF

Std_ReturnType CanSM_SetBaudrate(NetworkHandleType Network, uint16 BaudRateConfig ID); ⚠️

This service shall start an asynchronous process to change the baud rate for the configured CAN controllers of a certain CAN network. Depending on necessary baud rate modifications the controllers might have to reset.

फ़ंक्शन CanSM_SetIcomConfiguration [SWS_CanSM_00586] 📄 PDF

Std_ReturnType CanSM_SetIcomConfiguration(NetworkHandleType Network, IcomConfigIdType ConfigurationId);

This service shall change the Icom Configuration of a CAN network to the requested one.

फ़ंक्शन CanSM_CurrentIcomConfiguration [SWS_CanSM_00587] 📄 PDF

void CanSM_CurrentIcomConfiguration(uint8 ControllerId, IcomConfigIdType ConfigurationId, IcomSwitch_ErrorType Error);

This service shall inform about the change of the Icom Configuration of a CAN network.

फ़ंक्शन CanSM_StartWakeupSource [SWS_CanSM_00609] 📄 PDF

Std_ReturnType CanSM_StartWakeupSource(NetworkHandleType network);

This function shall be called by Ecu M when a wakeup source shall be started.

फ़ंक्शन CanSM_StopWakeupSource [SWS_CanSM_00610] 📄 PDF

Std_ReturnType CanSM_StopWakeupSource(NetworkHandleType network);

This function shall be called by Ecu M when a wakeup source shall be stopped.

फ़ंक्शन <User_Get Bus Off Delay> [SWS_CanSM_00637] 📄 PDF

void <User_Get Bus Off Delay>(NetworkHandleType network, uint8* delayCyclesPtr);

This callout function returns the number of Can SM base cycles to wait additionally to L1/ L2 after a Bus Off occurred.

फ़ंक्शन CanSM_SetEcuPassive [SWS_CanSM_00644] 📄 PDF

Std_ReturnType CanSM_SetEcuPassive(boolean CanSM_Passive);

Service Name Can SM_ Set Ecu Passive Syntax Std_ Return Type Can SM_ Set Ecu Passive ( boolean Can SM_ Passive ) Service ID [hex] 0x13 Sync/ Async Synchronous Reentrancy Non Reentrant Parameters (in) Can SM_ Passive TRUE: set all Can SM channels to passive, i.e. receive only FALSE: set all Can SM channels back to non - passive Parameters (inout) None Parameters (out) None Return value Std _ Return - E_ OK: Request accepted Type E_ NOT_ OK: Request not accepted Descr iption This function can be used to set all Can SM channels of the ECU to a receive only mode. Available via Can SM.h

फ़ंक्शन CanSM_DeInit [SWS_CanSM_91001] 📄 PDF

void CanSM_DeInit(void);

This service de - initializes the Can SM module.

फ़ंक्शन CanSM_ConfirmCtrlPnAvailability [SWS_CanSM_91004] 📄 PDF

void CanSM_ConfirmCtrlPnAvailability(uint8 ControllerId);

This callback function indicates that the controller is running in PN communication mode. Tags: atp.Status=draft

टाइप CanSM_ConfigType [SWS_CanSM_00597] 📄 PDF

This type defines a data structure for the post build parameters of the Can SM. At initialization the Can SM gets a pointer to a structure of this type to get access to its configuration data, which is neces sary for initialization. Available Can SM.h via

टाइप CanSM_BswMCurrentStateType [SWS_CanSM_00598] 📄 PDF

Can specific communication modes / states notified to the Bsw M module

requirement SWS_CanSM_00167 [SWS_CanSM_00167] 📄 PDF

[SWS_CanSM_00167] ⌈The main function of the CanSM module shall operate the effects of the CanSM state machine, which the CanSM module shall implement for each configured CAN Network.⌋(SRS_BSW_00424, SRS_BSW_00425, SRS_Can_- 01145, SRS_Can_01142)

requirement SWS_CanSM_00182 [SWS_CanSM_00182] 📄 PDF

[SWS_CanSM_00182] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈If the function CanSM_RequestComMode accepts the request, the request shall be considered by the CanSM state machine (ref. to [SWS_CanSM_00635]).⌋

requirement SWS_CanSM_00183 [SWS_CanSM_00183] 📄 PDF

[SWS_CanSM_00183] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈The function CanSM_RequestComMode shall call the function Det_ReportError (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_INVALID_NET- WORK_HANDLE, if it does not accept the network handle of the request.⌋

requirement SWS_CanSM_00184 [SWS_CanSM_00184] 📄 PDF

[SWS_CanSM_00184] Upstream requirements: SRS_BSW_00406 ⌈If the CanSM module is not initialized, when the function CanSM_RequestCom- Mode is called, then this function shall call the function Det_ReportError (ref. to

requirement SWS_CanSM_00186 [SWS_CanSM_00186] 📄 PDF

[SWS_CanSM_00186] Upstream requirements: SRS_Can_01142 ⌈The function CanSM_GetCurrentComMode shall put out the current communication mode for the network (ref. to [SWS_CanSM_00266]) to the designated pointer of type mode, if it accepts the request.⌋

requirement SWS_CanSM_00187 [SWS_CanSM_00187] 📄 PDF

[SWS_CanSM_00187] Upstream requirements: SRS_Can_01142 ⌈The function CanSM_GetCurrentComMode shall call the function Det_ReportEr- ror (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_INVALID_ NETWORK_HANDLE, if it does not accept the network of the request.⌋

requirement SWS_CanSM_00188 [SWS_CanSM_00188] 📄 PDF

[SWS_CanSM_00188] Upstream requirements: SRS_Can_01142 ⌈If the CanSM module is not initialized (ref. to [SWS_CanSM_00282]), when the function CanSM_GetCurrentComMode is called, then this function shall call the func- tion Det_ReportError (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_UNINIT.⌋

requirement SWS_CanSM_00189 [SWS_CanSM_00189] 📄 PDF

[SWS_CanSM_00189] Upstream requirements: SRS_BSW_00359, SRS_BSW_00333 ⌈If the function CanSM_ControllerBusOff gets a Controller, which is not configured as CanSMControllerId in the configuration of the CanSM module, it shall call the function Det_ReportError (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_PARAM_CONTROLLER.⌋

requirement SWS_CanSM_00190 [SWS_CanSM_00190] 📄 PDF

[SWS_CanSM_00190] Upstream requirements: SRS_BSW_00359, SRS_BSW_00333 ⌈If the CanSM module is not initialized, when the function CanSM_ControllerBu- sOff is called, then the function CanSM_ControllerBusOff shall call the func- tion Det_ReportError (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_UNINIT.⌋

requirement SWS_CanSM_00235 [SWS_CanSM_00235] 📄 PDF

[SWS_CanSM_00235] Upstream requirements: SRS_BSW_00359, SRS_BSW_00333 ⌈If the CanSM module is initialized and the input parameter Controller is one of the CAN controllers configured with the parameter CanSMControllerId, this bus-off event shall be considered by the CAN Network state machine (ref. to

requirement SWS_CanSM_00243 [SWS_CanSM_00243] 📄 PDF

Module Header File Imported Type Can Can_ General Types.h Can _ Controller State Type Can If Can If.h Can If _ Notif Status Type Can If.h Can If _ Pdu Mode Type Can Trcv Can_ General Types.h Can Trcv _ Trcv Mode Type Com M Rte_ Com M_ Type.h Com M _ Mode Type Com Stack_ Types Com Stack_ Types.h Network Handle Type Dem Rte_ Dem_ Type.h Dem _ Event Id Type Rte_ Dem_ Type.h Dem _ Event Status Type Std Std_ Types.h Std _ Return Type Std_ Types.h Std _ Version Info Type

requirement SWS_CanSM_00266 [SWS_CanSM_00266] 📄 PDF

[SWS_CanSM_00266] Upstream requirements: SRS_Can_01142 ⌈The CanSM module shall store the current network mode for each configured CAN network internally (ref. to [ECUC_CanSM_00126]).⌋

requirement SWS_CanSM_00278 [SWS_CanSM_00278] 📄 PDF

[SWS_CanSM_00278] Upstream requirements: SRS_Can_01142 ⌈If the CanSM state machine CANSM_BSM is in the state CANSM_BSM_S_NOT_INITIALIZED, it shall deny network mode requests from the ComM module (ref. to [SWS_CanSM_00062]).⌋

requirement SWS_CanSM_00282 [SWS_CanSM_00282] 📄 PDF

[SWS_CanSM_00282] Upstream requirements: SRS_Can_01142 ⌈The CanSM module shall return E_NOT_OK for the API request CanSM_- GetCurrentComMode until the call of the provided API CanSM_Init (ref. to

requirement SWS_CanSM_00284 [SWS_CanSM_00284] 📄 PDF

[SWS_CanSM_00284] Upstream requirements: SRS_Can_01142 ⌈The internally stored network modes of the CanSM module can have the values COMM_NO_COMMUNICATION, COMM_SILENT_COMMUNICATION, COMM_FULL_COMMUNICATION.⌋

requirement SWS_CanSM_00360 [SWS_CanSM_00360] 📄 PDF

[SWS_CanSM_00360] Upstream requirements: SRS_Can_01142 ⌈The function CanSM_GetCurrentComMode shall report the development error CANSM_E_PARAM_POINTER to the DET, if the user of this function hands over a NULL- pointer as mode.⌋

requirement SWS_CanSM_00369 [SWS_CanSM_00369] 📄 PDF

[SWS_CanSM_00369] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈The function CanSM_RequestComMode shall accept its request, if the NetworkHan- dle parameter of the request is a handle contained in the configuration of the CanSM module (ref. to [ECUC_CanSM_00161]).⌋

requirement SWS_CanSM_00370 [SWS_CanSM_00370] 📄 PDF

[SWS_CanSM_00370] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈The function CanSM_RequestComMode shall deny its request, if the NetworkHandle parameter of the request is not a handle contained in the configuration of the CanSM module (ref. to [ECUC_CanSM_00161]).⌋

requirement SWS_CanSM_00371 [SWS_CanSM_00371] 📄 PDF

[SWS_CanSM_00371] Upstream requirements: SRS_Can_01142 ⌈The function CanSM_GetCurrentComMode shall accept its request, if the network parameter of the request is a handle contained in the configuration of the CanSM module (ref. to [ECUC_CanSM_00161]).⌋

requirement SWS_CanSM_00372 [SWS_CanSM_00372] 📄 PDF

[SWS_CanSM_00372] Upstream requirements: SRS_Can_01142 ⌈The function CanSM_GetCurrentComMode shall deny its request, if the network parameter of the request is not a handle contained in the configuration of the CanSM module (ref. to [ECUC_CanSM_00161]).⌋

requirement SWS_CanSM_00374 [SWS_CanSM_00374] 📄 PDF

The function CanSM_GetVersionInfo shall report the development error CANSM_E_PARAM_POINTER to the DET, if the user of this function hands over a NULL - pointer as VersionInfo .

requirement SWS_CanSM_00385 [SWS_CanSM_00385] 📄 PDF

[SWS_CanSM_00385] Upstream requirements: SRS_Can_01142 ⌈If CanSM has repeated one of the CanIf API calls CanIf_SetControllerMode (ref. to [SWS_CanSM_91002]), CanIf_SetTrcvMode (ref. to [SWS_CanSM_91002]), CanIf_ClearTrcvWufFlag (ref.

requirement SWS_CanSM_00397 [SWS_CanSM_00397] 📄 PDF

[SWS_CanSM_00397] Upstream requirements: SRS_Can_01145 ⌈If the function CanSM_ControllerModeIndication gets a ControllerId, which is not configured as CanSMControllerId in the configuration of the CanSM module, it shall call the function Det_ReportError (ref. to [SWS_CanSM_91003]) with Er- rorId parameter CANSM_E_PARAM_CONTROLLER.⌋

requirement SWS_CanSM_00398 [SWS_CanSM_00398] 📄 PDF

[SWS_CanSM_00398] Upstream requirements: SRS_Can_01145 ⌈If the CanSM module is not initialized, when the function CanSM_ControllerMod- eIndication is called, then the function CanSM_ControllerModeIndication shall call the function Det_ReportError (ref. to [SWS_CanSM_91003]) with Er- rorId parameter CANSM_E_UNINIT.⌋

requirement SWS_CanSM_00400 [SWS_CanSM_00400] 📄 PDF

[SWS_CanSM_00400] Upstream requirements: SRS_Can_01145 ⌈If the function CanSM_TransceiverModeIndication gets a TransceiverId, which is not configured as CanSMTransceiverId in the configuration of the CanSM module, it shall call the function Det_ReportError (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_PARAM_TRANSCEIVER.⌋

requirement SWS_CanSM_00401 [SWS_CanSM_00401] 📄 PDF

[SWS_CanSM_00401] Upstream requirements: SRS_Can_01145 ⌈If the CanSM module is not initialized, when the function CanSM_TransceiverMod- eIndication is called, then the function CanSM_TransceiverModeIndication shall call the function Det_ReportError (ref. to [SWS_CanSM_91003]) with Er- rorId parameter CANSM_E_UNINIT.⌋

requirement SWS_CanSM_00411 [SWS_CanSM_00411] 📄 PDF

[SWS_CanSM_00411] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_TxTimeoutException shall report CANSM_E_UNINIT to the DET, if the CanSM module is not initialized yet.⌋

requirement SWS_CanSM_00412 [SWS_CanSM_00412] 📄 PDF

[SWS_CanSM_00412] Upstream requirements: SRS_Can_01145 ⌈If the function CanSM_TxTimeoutException is referenced with a Channel, which is not configured as CanSMNetworkHandle in the CanSM configuration, it shall report CANSM_E_INVALID_NETWORK_HANDLE to the DET.⌋ Remarks: Reentrancy is necessary for different Channels.

requirement SWS_CanSM_00414 [SWS_CanSM_00414] 📄 PDF

[SWS_CanSM_00414] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_ClearTrcvWufFlagIndication shall report CANSM_E_- UNINIT to the DET, if the CanSM module is not initialized yet.⌋

requirement SWS_CanSM_00415 [SWS_CanSM_00415] 📄 PDF

[SWS_CanSM_00415] Upstream requirements: SRS_Can_01145 ⌈If the function CanSM_ClearTrcvWufFlagIndication gets a TransceiverId, which is not configured (ref. to [ECUC_CanSM_00137]) in the configuration of the CanSM module, it shall call the function Det_ReportError (ref. to

requirement SWS_CanSM_00417 [SWS_CanSM_00417] 📄 PDF

[SWS_CanSM_00417] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_CheckTransceiverWakeFlagIndication shall report CANSM_E_UNINIT to the DET, if the CanSM module is not initialized yet.⌋

requirement SWS_CanSM_00418 [SWS_CanSM_00418] 📄 PDF

[SWS_CanSM_00418] Upstream requirements: SRS_Can_01145 ⌈If the function CanSM_CheckTransceiverWakeFlagIndication gets a TransceiverId, which is not configured (ref. to [ECUC_CanSM_00137]) in the con- figuration of the CanSM module, it shall call the function Det_ReportError (ref. to

requirement SWS_CanSM_00420 [SWS_CanSM_00420] 📄 PDF

[SWS_CanSM_00420] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_ConfirmPnAvailability shall report CANSM_E_UNINIT to the DET, if the CanSM module is not initialized yet.⌋

requirement SWS_CanSM_00421 [SWS_CanSM_00421] 📄 PDF

[SWS_CanSM_00421] Upstream requirements: SRS_Can_01145 ⌈If the function CanSM_ConfirmPnAvailability gets a TransceiverId, which is not configured (ref. to [ECUC_CanSM_00137]) in the configuration of the CanSM module, it shall call the function Det_ReportError (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_PARAM_TRANSCEIVER.⌋

requirement SWS_CanSM_00422 [SWS_CanSM_00422] 📄 PDF

[SWS_CanSM_00422] Upstream requirements: SRS_Can_01142 ⌈If the CanIf module notifies PN availability for a configured CAN Transceiver to the CanSM module with the callback function CanSM_ConfirmPnAvailability (ref. to [SWS_CanSM_00419]), then the CanSM module shall call the API CanNm_Con- firmPnAvailability (ref. to [SWS_CanSM_91002]) with the related CAN network as channel to confirm the PN availability to the CanNm module.⌋

requirement SWS_CanSM_00428 [SWS_CanSM_00428] 📄 PDF

[SWS_CanSM_00428] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈All effects of the CanSM state machine CANSM_BSM shall be operated in the context of the CanSM main function (ref. to [SWS_CanSM_00065]).⌋

requirement SWS_CanSM_00429 [SWS_CanSM_00429] 📄 PDF

[SWS_CanSM_00429] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈The guarding condition G_SILENT_COM_MODE_REQUESTED of the CanSM_BSM state machine shall evaluate, if the latest accepted communication mode request with CanSM_RequestComMode (ref. to [SWS_CanSM_00635]) for the respective net- work handle of the state machine has been with the parameter ComM_Mode equal to COMM_SILENT_COMMUNICATION.⌋

requirement SWS_CanSM_00430 [SWS_CanSM_00430] 📄 PDF

[SWS_CanSM_00430] ⌈The effect E_NOCOM of the CanSM_BSM state machine shall change the internally stored network mode (ref. to [SWS_CanSM_00266]) of the addressed CAN network to COMM_NO_COMMUNICATION.⌋(SRS_Can_01142, SRS_- Can_01145)

requirement SWS_CanSM_00431 [SWS_CanSM_00431] 📄 PDF

[SWS_CanSM_00431] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈The effect E_PRE_NOCOM of the CanSM_BSM state machine shall call for the corresponding CAN network the API BswM_CanSM_CurrentState (ref. to

requirement SWS_CanSM_00434 [SWS_CanSM_00434] 📄 PDF

[SWS_CanSM_00434] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈The effect E_FULL_TO_SILENT_COM of the CanSM_BSM state machine shall call at 1st place for the corresponding CAN network the API BswM_CanSM_CurrentState (ref. to [SWS_CanSM_91002]) with the parameters Network := CanSMComMNet- workHandleRef and CurrentState := CANSM_BSWM_SILENT_COMMUNICATION.⌋

requirement SWS_CanSM_00435 [SWS_CanSM_00435] 📄 PDF

[SWS_CanSM_00435] Upstream requirements: SRS_Can_01158 ⌈After considering [SWS_CanSM_00539] and [SWS_CanSM_00647] in context of the effect E_FULL_COM of the CanSM_BSM state machine, the CanSM module shall call the API ComM_BusSM_ModeIndication (ref. to [SWS_CanSM_91002]) for the corresponding CAN network with the parameters Channel := CanSM- ComMNetworkHandleRef (ref. to [ECUC_CanSM_00161]) and ComMode := COMM_FULL_COMMUNICATION.⌋

requirement SWS_CanSM_00438 [SWS_CanSM_00438] 📄 PDF

[SWS_CanSM_00438] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈As long the sub state machine CANSM_BSM_DeinitPnSupported is in the state S_PN_CLEAR_WUF, the CanSM module operate the do action DO_CLEAR_TRCV_WUF and therefore repeat the API request CanIf_ClearTrcvWufFlag and use the con- figured Transceiver (ref. to [ECUC_CanSM_00137]) as API function parameter.⌋

requirement SWS_CanSM_00444 [SWS_CanSM_00444] 📄 PDF

[SWS_CanSM_00444]), this condition shall trigger the sub state machine CANSM_BSM_DeinitPnSupported of the respective network with T_CC_STOPPED_TIMEOUT.⌋

requirement SWS_CanSM_00445 [SWS_CanSM_00445] 📄 PDF

[SWS_CanSM_00445] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈After a timeout of CANSM_MODEREQ_REPEAT_TIME (ref. to [ECUC_CanSM_00336]) for all supposed controller stopped mode indications (ref. to [SWS_CanSM_00444]), this condition shall trigger the sub state machine CANSM_BSM_DeinitPnSupported of the respective network with T_CC_STOPPED_TIMEOUT.⌋

requirement SWS_CanSM_00446 [SWS_CanSM_00446] 📄 PDF

[SWS_CanSM_00446] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈As long the sub state machine CANSM_BSM_DeinitPnSupported is in the state S_TRCV_NORMAL, the CanSM module shall operate the do ac- tion DO_SET_TRCV_MODE_NORMAL and therefore repeat for the configured CAN Transceiver of the CAN network (ref. to [ECUC_CanSM_00137]) the API request CanIf_SetTrcvMode (ref. to [SWS_CanSM_91002]) with TransceiverMode equal to CANTRCV_TRCVMODE_NORMAL.⌋

requirement SWS_CanSM_00448 [SWS_CanSM_00448] 📄 PDF

[SWS_CanSM_00448] ⌈If CanSM module has got the CANTRCV_TRCVMODE_NORMAL mode indication (ref. to

requirement SWS_CanSM_00452 [SWS_CanSM_00452] 📄 PDF

[SWS_CanSM_00452]), this condition shall trigger the sub state machine CANSM_BSM_DeinitPnSupported of the respective network with T_TRCV_STANDBY_TIMEOUT.⌋(SRS_Can_01142, SRS_Can_01145)

requirement SWS_CanSM_00454 [SWS_CanSM_00454] 📄 PDF

[SWS_CanSM_00454] ⌈After a timeout of CANSM_MODEREQ_REPEAT_TIME (ref. to [ECUC_CanSM_00336]) for the supposed transceiver standby indication (ref. to

requirement SWS_CanSM_00458 [SWS_CanSM_00458] 📄 PDF

[SWS_CanSM_00458] ⌈As long the sub state machine CANSM_BSM_DeinitPnSupported is in the state S_CHECK_WFLAG_IN_CC_SLEEP, the CanSM module operate the do action DO_CHECK_WFLAG and therefore repeat the API request CanIf_CheckTrcvWakeFlag (ref. [SWS_CanSM_91002]) and use the configured CAN Transceiver of the related Network (ref. to [ECUC_CanSM_00137]) as Transceiver parameter.⌋(SRS_Can_01142, SRS_Can_01145)

requirement SWS_CanSM_00464 [SWS_CanSM_00464] 📄 PDF

[SWS_CanSM_00464] ⌈As long the sub state machine CANSM_BSM_DeinitPnNotSupported is in the state S_CC_STOPPED, the CanSM module shall operate the do action DO_SET_CC_MODE_STOPPED and therefore repeat for all configured CAN controllers of the CAN network (ref. to [ECUC_CanSM_00141]) the API request CanIf_SetControllerMode (ref. to [SWS_CanSM_91002]) with ControllerMode equal to CAN_CS_STOPPED, if the current CAN controller mode (ref. to [SWS_CanSM_00638]) is different.⌋(SRS_Can_01142, SRS_Can_01145)

requirement SWS_CanSM_00484 [SWS_CanSM_00484] 📄 PDF

[SWS_CanSM_00484] ⌈The guarding condition G_TRCV_NORMAL_E_OK of the sub state machine CANSM_BSM_S_PRE_FULLCOM shall be passed, if the API call of

requirement SWS_CanSM_00487 [SWS_CanSM_00487] 📄 PDF

[SWS_CanSM_00487] have returned E_OK.⌋(SRS_Can_01145, SRS_Can_01142)

requirement SWS_CanSM_00488 [SWS_CanSM_00488] 📄 PDF

[SWS_CanSM_00488] ⌈The guarding condition G_CC_STOPPED_OK of the sub state machine CANSM_BSM_S_PRE_FULLCOM shall be passed, if all API calls of

requirement SWS_CanSM_00498 [SWS_CanSM_00498] 📄 PDF

[SWS_CanSM_00498] Upstream requirements: SRS_BSW_00422 ⌈The effect E_BUS_OFF_PASSIVE of the sub state machine CANSM_BSM_S_FULLCOM shall invocate Dem_SetEventStatus (ref. to [SWS_CanSM_91002]) with the pa- rameters EventId := CANSM_E_BUS_OFF (ref. to [ECUC_CanSM_00070]) and EventStatus := DEM_EVENT_STATUS_PASSED.⌋

requirement SWS_CanSM_00499 [SWS_CanSM_00499] 📄 PDF

The API request CanSM_RequestComMode (ref. to SWS_CanSM_00635 ) with the parameter ComM_Mode equal to COMM_SILENT_COMMUNICATION shall trigger the sub state machine CANSM_BSM_S_FULLCO M (ref. to Figure 7 - 1 ) with T_SILENT_COM_MODE_REQUEST , which corresponds to the function parameter network and the configuration parameter CANSM_NETWORK_HANDLE (ref. to ECUC_CanSM_00161 ).

requirement SWS_CanSM_00500 [SWS_CanSM_00500] 📄 PDF

[SWS_CanSM_00500] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈The callback function CanSM_ControllerBusOff (ref. to [SWS_CanSM_00064]) shall trigger the sub state machine CANSM_BSM_S_FULLCOM for the CAN network with T_BUS_OFF, if one of its configured CAN controllers matches to the function parameter ControllerId of the callback function CanSM_ControllerBusOff.⌋

requirement SWS_CanSM_00502 [SWS_CanSM_00502] 📄 PDF

The CanSM module shall deny the CanSM_ Set Baudrate API request, if the NetworkHandle parameter does not match to the configured Network handles of the CanSM module (ref. to E CUC_CanSM_00161 ) .

requirement SWS_CanSM_00503 [SWS_CanSM_00503] 📄 PDF

I If no condition is present to deny the CanSM_SetBaudrate request according to SWS_CANSM_00502 and SWS_CANSM_00505 , SWS_CANSM_00530 , then the CanSM module shall return E_OK and operate the process for the requested baud rate change as specified with SWS_CANSM_00507 .

requirement SWS_CanSM_00504 [SWS_CanSM_00504] 📄 PDF

The function CanSM_ Set Baudrate shall call the function Det_ReportError with ErrorId parameter CANSM_E_INVALID_NETWORK_HANDLE (ref. to chapter 7.3 ), if it does not accept t he network handle of the request.

requirement SWS_CanSM_00505 [SWS_CanSM_00505] 📄 PDF

The function CanSM_ Set Baudrate shall deny its request, if the requested CAN network is not in the communication mode COMM_FULL_COMMUNICATION .

requirement SWS_CanSM_00506 [SWS_CanSM_00506] 📄 PDF

If the function CanSM_ Set Baudrate is called and the CanSM module is not initialized, then this function shall call the function Det_ReportError w ith ErrorId parameter CANSM_E_UNINIT (ref. to chapter 7.3 ).

requirement SWS_CanSM_00508 [SWS_CanSM_00508] 📄 PDF

[SWS_CanSM_00508] ⌈The effect E_BUS_OFF of the sub state machine CANSM_BSM_S_FULLCOM shall call at 1st place for the corresponding CAN net- work the API BswM_CanSM_CurrentState (ref. to [SWS_CanSM_91002]) with the parameters Network := CanSMComMNetworkHandleRef and CurrentState := CANSM_BSWM_BUS_OFF.⌋(SRS_Can_01145, SRS_Can_01142)

requirement SWS_CanSM_00509 [SWS_CanSM_00509] 📄 PDF

[SWS_CanSM_00509] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈As long the sub state machine CANSM_BSM_S_FULLCOM is in the state S_RESTART_CC, the CanSM module shall operate the do action DO_SET_CC_MODE_STARTED and therefore repeat for all configured CAN controllers of the CAN network (ref. to [ECUC_CanSM_00141]) the API request CanIf_Set- ControllerMode (ref. to [SWS_CanSM_91002]) with ControllerMode equal to CAN_CS_STARTED, if the current CAN controller mode (ref. to [SWS_CanSM_00638]) is different.⌋

requirement SWS_CanSM_00516 [SWS_CanSM_00516] 📄 PDF

[SWS_CanSM_00516] Upstream requirements: SRS_Can_01158 ⌈If ECU passive is FALSE (ref. to [SWS_CanSM_00646]), then the effect E_TX_ON of the sub state machine CANSM_BSM_S_FULLCOM shall call at 1st place for the config- ured CAN controllers of the CAN network (ref. to [ECUC_CanSM_00141]) the API function CanIf_SetPduMode (ref. to [SWS_CanSM_91002]) with the parameters ControllerId := CanSMControllerId (ref. to [ECUC_CanSM_00141]) and Pdu- ModeRequest := CANIF_ONLINE.⌋

requirement SWS_CanSM_00517 [SWS_CanSM_00517] 📄 PDF

[SWS_CanSM_00517] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈The effect E_TX_ON of the sub state machine CANSM_BSM_S_FULLCOM shall call at 2nd place for the corresponding CAN network the API BswM_CanSM_CurrentState (ref. to [SWS_CanSM_91002]) with the parameters Network := CanSMComMNet- workHandleRef and CurrentState := CANSM_BSWM_FULL_COMMUNICATION.⌋

requirement SWS_CanSM_00518 [SWS_CanSM_00518] 📄 PDF

[SWS_CanSM_00518] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈The effect E_TX_ON of the sub state machine CANSM_BSM_S_FULLCOM shall call at 3rd place the API ComM_BusSM_ModeIndication (ref. to [SWS_CanSM_91002]) with the parameters Channel := CanSMComMNetworkHandleRef (ref. to [ECUC_CanSM_00161]) and ComMode := COMM_FULL_COMMUNICATION.⌋

requirement SWS_CanSM_00521 [SWS_CanSM_00521] 📄 PDF

[SWS_CanSM_00521] ⌈The effect E_BUS_OFF of the sub state machine CANSM_BSM_S_FULLCOM shall call at 2nd place for the corresponding CAN network the API ComM_BusSM_ModeIndication (ref. to [SWS_CanSM_91002]) with the param- eters Channel := CanSMComMNetworkHandleRef (ref. to [ECUC_CanSM_00161]) and ComMode := COMM_SILENT_COMMUNICATION.⌋(SRS_Can_01145, SRS_Can_- 01142)

requirement SWS_CanSM_00522 [SWS_CanSM_00522] 📄 PDF

[SWS_CanSM_00522]). The DEM event for this error is configured per CAN network in the CANSM_E_BUS_OFF (see [ECUC_CanSM_00070]). • CANSM informs the Communication Manager about the communication status (COMM_SILENT_COMMUNICATION) notified with ComM_BusSM_ModeIndication (see

requirement SWS_CanSM_00524 [SWS_CanSM_00524] 📄 PDF

[SWS_CanSM_00524]), this shall trigger the sub state machine CANSM_BSM_S_CHANGE_BAUDRATE of the CAN network with T_CC_STOPPED_INDICATED.⌋

requirement SWS_CanSM_00525 [SWS_CanSM_00525] 📄 PDF

[SWS_CanSM_00525] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈The guarding condition G_CC_STOPPED_OK of the sub state machine CANSM_BSM_S_CHANGE_BAUDRATE shall be passed, if all API calls of

requirement SWS_CanSM_00526 [SWS_CanSM_00526] 📄 PDF

[SWS_CanSM_00526] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈If CanSM module has got all mode indications (ref. to [SWS_CanSM_00396]) for the configured CAN controllers of the CAN network (ref. to [ECUC_CanSM_00141]) after the respective requests to stop the CAN controllers of the CAN net- work (ref. to

requirement SWS_CanSM_00530 [SWS_CanSM_00530] 📄 PDF

The CanSM module shall deny the CanSM_ Set Baudrate API request, if the CanSM module is not initialized.

requirement SWS_CanSM_00532 [SWS_CanSM_00532] 📄 PDF

[SWS_CanSM_00532] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈As long the sub state machine CANSM_BSM_S_CHANGE_BAUDRATE is in the state S_CC_STARTED, the CanSM module shall operate the do action DO_SET_CC_MODE_STARTED and therefore repeat for all configured CAN controllers of the CAN network (ref. to [ECUC_CanSM_00141]) the API request CanIf_Set- ControllerMode (ref. to [SWS_CanSM_91002]) with ControllerMode equal to CAN_CS_STARTED, if the current CAN controller mode (ref. to [SWS_CanSM_00638]) is different.⌋

requirement SWS_CanSM_00538 [SWS_CanSM_00538] 📄 PDF

[SWS_CanSM_00538] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈The effect E_FULL_TO_SILENT_COM of the CanSM_BSM state machine shall call at 3th place for the corresponding CAN network the API ComM_BusSM_Mod- eIndication (ref. to [SWS_CanSM_91002]) with the parameters Channel := CanSMComMNetworkHandleRef (ref. to [ECUC_CanSM_00161]) and ComMode := COMM_SILENT_COMMUNICATION.⌋

requirement SWS_CanSM_00539 [SWS_CanSM_00539] 📄 PDF

If ECU passive is FALSE (ref. to SWS_CanSM_00646 ) , then the effect E_FULL_COM of the CanSM_BSM state machine (ref. to Figure 7 - 1 ) shall call at 1 st place for each configured CAN controller of the CAN network the API CanIf_SetPduMode with the parameters ControllerId := CanSMControllerId (ref. to ECUC_CanSM_00141 ) and PduModeRequest := CANIF_ ONLINE .

requirement SWS_CanSM_00540 [SWS_CanSM_00540] 📄 PDF

[SWS_CanSM_00540] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈After considering [SWS_CanSM_00435] in context of the effect E_FULL_COM of the CanSM_BSM state machine, the CanSM module shall call the API BswM_CanSM_Cur- rentState (ref. to [SWS_CanSM_91002]) for the corresponding CAN network with the parameters Network := CanSMComMNetworkHandleRef and CurrentState := CANSM_BSWM_FULL_COMMUNICATION.⌋

requirement SWS_CanSM_00541 [SWS_CanSM_00541] 📄 PDF

[SWS_CanSM_00541] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈The effect E_FULL_TO_SILENT_COM of the CanSM_BSM state machine shall call at 2nd place for each configured CAN controller of the CAN network the API CanIf_- SetPduMode (ref. to [SWS_CanSM_91002]) with the parameters ControllerId := CanSMControllerId (ref. to [ECUC_CanSM_00141]) and PduModeRequest := CANIF_TX_OFFLINE.⌋

requirement SWS_CanSM_00546 [SWS_CanSM_00546] 📄 PDF

[SWS_CanSM_00546] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_ConfirmPnAvailability shall notify the Can_Nm module (ref. to [SWS_CanSM_00422]), if it is called with a configured Transceiver as input parameter (ref. to [ECUC_CanSM_00137]).⌋

requirement SWS_CanSM_00555 [SWS_CanSM_00555] 📄 PDF

[SWS_CanSM_00555] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈The CanSM module shall deny the API requestCanSM_RequestComMode, if the ini- tial transition for the requested CAN network is not finished yet after the CanSM_Init request (ref. to [SWS_CanSM_00423], [SWS_CanSM_00430]).⌋

requirement SWS_CanSM_00560 [SWS_CanSM_00560] 📄 PDF

[SWS_CanSM_00560] Upstream requirements: SRS_Can_01145 ⌈If no CanSMTransceiverId (ref. to [ECUC_CanSM_00137]) is configured for a CAN Network, then the CanSM module shall bypass all specified CanIf_SetTrcv- Mode (ref. to [SWS_CanSM_91002]) (e.g. [SWS_CanSM_00446]) calls for the CAN Network and proceed in the different state transitions as if it has got the supposed CanSM_TransceiverModeIndication already (e.g. [SWS_CanSM_00448]).⌋

requirement SWS_CanSM_00569 [SWS_CanSM_00569] 📄 PDF

The CanSM module shall provide the API function CanSM_ Set Baudrate , if the CANSM_SET_BAUDRATE_API parameter (ref. to ECUC_CanSM_00343 ) is configured with the value TRUE .

requirement SWS_CanSM_00570 [SWS_CanSM_00570] 📄 PDF

[SWS_CanSM_00570] Upstream requirements: SRS_Can_01142 ⌈The CanSM module shall not provide the API function CanSM_SetBaudrate, if the CanSMSetBaudrateApi is configured with the value FALSE.⌋

requirement SWS_CanSM_00578 [SWS_CanSM_00578] 📄 PDF

[SWS_CanSM_00578] ⌈As long the sub state machine CANSM_BSM_S_TX_TIMEOUT_EXCEPTION is in the state S_CC_STOPPED, the CanSM module shall operate the do action DO_SET_CC_MODE_STOPPED and therefore repeat for all configured CAN controllers of the CAN network (ref. to [ECUC_CanSM_00141]) the API request CanIf_SetControllerMode (ref. to

requirement SWS_CanSM_00581 [SWS_CanSM_00581] 📄 PDF

[SWS_CanSM_00581] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈The guarding condition G_CC_STARTED_E_OK of the sub state machine CANSM_BSM_S_TX_TIMEOUT_EXCEPTION shall be passed, if all API calls of

requirement SWS_CanSM_00584 [SWS_CanSM_00584] 📄 PDF

[SWS_CanSM_00584] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈The callback function CanSM_TxTimeoutException (ref. to

requirement SWS_CanSM_00605 [SWS_CanSM_00605] 📄 PDF

[SWS_CanSM_00605] Upstream requirements: SRS_BSW_00422 ⌈The effect E_BUS_OFF of the sub state machine CANSM_BSM_S_FULLCOM CANSM_BSM_S_SILENTCOM_BOR shall invocate Dem_SetEventStatus (ref. to

requirement SWS_CanSM_00606 [SWS_CanSM_00606] 📄 PDF

[SWS_CanSM_00606] ⌈The callback function CanSM_ControllerBusOff (ref. to

requirement SWS_CanSM_00607 [SWS_CanSM_00607] 📄 PDF

[SWS_CanSM_00607]) for the state machine of the related network, if the CanSM module is initialized and the requested handle is valid concerning the CanSM configuration (ref. to [ECUC_CanSM_00161]).⌋ (SRS_Can_01145)

requirement SWS_CanSM_00608 [SWS_CanSM_00608] 📄 PDF

[SWS_CanSM_00608]) for the state ma- chine of the related network, if the CanSM module is initialized and the requested handle is valid concerning the CanSM configuration (ref. to [ECUC_CanSM_00161]).⌋ (SRS_Can_01145)

requirement SWS_CanSM_00611 [SWS_CanSM_00611] 📄 PDF

[SWS_CanSM_00611] Upstream requirements: SRS_Can_01145 ⌈The API function CanSM_StartWakeupSource shall return E_NOT_OK, if the CanSM module is not initialized yet with CanSM_Init (ref. to

requirement SWS_CanSM_00612 [SWS_CanSM_00612] 📄 PDF

[SWS_CanSM_00612] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_StartWakeupSource shall return E_NOT_OK, if the CanSM module is initialized and the network parameter of the request is not a handle contained in the configuration of the CanSM module (ref. to [ECUC_CanSM_00161]).⌋

requirement SWS_CanSM_00613 [SWS_CanSM_00613] 📄 PDF

[SWS_CanSM_00613] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_StartWakeupSource shall call the function Det_ReportEr- ror (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_INVALID_- NETWORK_HANDLE, if the CanSM module is initialized and the requested handle is invalid concerning the CanSM configuration (ref. to [ECUC_CanSM_00161]).⌋

requirement SWS_CanSM_00616 [SWS_CanSM_00616] 📄 PDF

[SWS_CanSM_00616] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_StartWakeupSource shall return E_OK and it shall be con- sidered as trigger (ref. to [SWS_CanSM_00607]) for the state machine of the related network, if the CanSM module is initialized and the requested handle is valid concern- ing the CanSM configuration (ref. to [ECUC_CanSM_00161]).⌋

requirement SWS_CanSM_00617 [SWS_CanSM_00617] 📄 PDF

[SWS_CanSM_00617] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_StartWakeupSource shall call the function Det_Re- portError (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_- UNINIT, if the CanSM module is not initialized yet with CanSM_Init (ref. to

requirement SWS_CanSM_00618 [SWS_CanSM_00618] 📄 PDF

[SWS_CanSM_00618] Upstream requirements: SRS_Can_01145 ⌈The API function CanSM_StopWakeupSource shall return E_NOT_OK, if the CanSM module is not initialized yet with CanSM_Init (ref. to [SWS_CanSM_00023]).⌋

requirement SWS_CanSM_00619 [SWS_CanSM_00619] 📄 PDF

[SWS_CanSM_00619] ⌈The function CanSM_StopWakeupSource shall call the func- tion Det_ReportError (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_UNINIT, if the CanSM module is not initialized yet with CanSM_Init (ref. to [SWS_CanSM_00023]).⌋(SRS_Can_01145)

requirement SWS_CanSM_00620 [SWS_CanSM_00620] 📄 PDF

[SWS_CanSM_00620] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_StopWakeupSource shall return E_NOT_OK, if the CanSM module is initialized and the network parameter of the request is not a handle con- tained in the configuration of the CanSM module (ref. to [ECUC_CanSM_00161]).⌋

requirement SWS_CanSM_00621 [SWS_CanSM_00621] 📄 PDF

[SWS_CanSM_00621] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_StopWakeupSource shall call the function Det_ReportEr- ror (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_INVALID_ NETWORK_HANDLE, if the CanSM module is initialized and the requested handle is invalid concerning the CanSM configuration (ref. to [ECUC_CanSM_00161]).⌋

requirement SWS_CanSM_00622 [SWS_CanSM_00622] 📄 PDF

[SWS_CanSM_00622] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_StopWakeupSource shall return E_OK and it shall be consid- ered as trigger (ref. to [SWS_CanSM_00608]) for the state machine of the related network, if the CanSM module is initialized and the requested handle is valid concern- ing the CanSM configuration (ref. to [ECUC_CanSM_00161]).⌋

requirement SWS_CanSM_00623 [SWS_CanSM_00623] 📄 PDF

[SWS_CanSM_00623] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈If for the CAN network a CAN Transceiver is configured (ref. to [ECUC_CanSM_00137]), then as long the sub state machine CANSM_BSM_WUVALIDATION is in the state S_TRCV_NORMAL, the CanSM mod- ule shall operate the do action DO_SET_TRCV_MODE_NORMAL and therefore repeat for the configured CAN Transceiver of the CAN network (ref. to [ECUC_CanSM_00137]) the API request CanIf_SetTrcvMode (ref. to [SWS_CanSM_91002]) with TransceiverMode equal to CANTRCV_TRCVMODE_NORMAL.⌋

requirement SWS_CanSM_00629 [SWS_CanSM_00629] 📄 PDF

[SWS_CanSM_00629]), this condition shall trigger the sub state machine CANSM_BSM_WUVALIDATION of the respective network with T_CC_STOPPED_TIMEOUT.⌋

requirement SWS_CanSM_00630 [SWS_CanSM_00630] 📄 PDF

[SWS_CanSM_00630] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈After a timeout of CANSM_MODEREQ_REPEAT_TIME (ref. to [ECUC_CanSM_00336]) for all supposed controller stopped mode indications (ref. to [SWS_CanSM_00629]), this condition shall trigger the sub state machine CANSM_BSM_WUVALIDATION of the respective network with T_CC_STOPPED_TIMEOUT.⌋

requirement SWS_CanSM_00635 [SWS_CanSM_00635] 📄 PDF

[SWS_CanSM_00635]) and the stored communica- tion mode request is COMM_NO_COMMUNICATION, then the effect E_NOCOM of the CanSM_BSM state machine shall call the API ComM_BusSM_ModeIndica- tion (ref. to [SWS_CanSM_91002]) with the parameters Channel := CanSM- ComMNetworkHandleRef (ref. to [ECUC_CanSM_00161]) and ComMode := COMM_NO_COMMUNICATION.⌋(SRS_Can_01142, SRS_Can_01145)

requirement SWS_CanSM_00638 [SWS_CanSM_00638] 📄 PDF

[SWS_CanSM_00638] Upstream requirements: SRS_Can_01145 ⌈The CanSM module shall store after every successful CAN controller mode change (ref. to [SWS_CanSM_00396]) or bus-off conditioned change to CAN_CS_STOPPED (ref. to [SWS_CanSM_00064]), the changed mode internally for each CAN controller.⌋

requirement SWS_CanSM_00639 [SWS_CanSM_00639] 📄 PDF

[SWS_CanSM_00639] ⌈The state operation DO_SET_BAUDRATE_DIRECT shall call the API request CanIf_SetBaudrate (ref. to [SWS_CanSM_91003])) for all con- figured CAN controllers of the CAN network (ref. to [ECUC_CanSM_00141] with the respective ControllerId parameter. It shall use as BaudRateConfigID parame- ter the respective function parameter BaudRateConfigID from the call CanSM_Set- Baudrate.⌋(SRS_Can_01145, SRS_Can_01142)

requirement SWS_CanSM_00641 [SWS_CanSM_00641] 📄 PDF

[SWS_CanSM_00641] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈If all CanIf_SetBaudrate (ref. to

requirement SWS_CanSM_00645 [SWS_CanSM_00645] 📄 PDF

[SWS_CanSM_00645] Upstream requirements: SRS_Can_01158 ⌈The CanSM module shall provide the API function CanSM_SetEcuPassive, if the CanSMTxOfflineActiveSupport parameter is configured with the value TRUE.⌋

requirement SWS_CanSM_00646 [SWS_CanSM_00646] 📄 PDF

[SWS_CanSM_00646]), then the effect E_TX_ON of the sub state machine CANSM_BSM_S_FULLCOM shall call at 1st place for the config- ured CAN controllers of the CAN network (ref. to [ECUC_CanSM_00141]) the API function CanIf_SetPduMode (ref. to [SWS_CanSM_91002]) with the parameters ControllerId := CanSMControllerId (ref. to [ECUC_CanSM_00141]) and Pdu- ModeRequest := CANIF_ONLINE.⌋

requirement SWS_CanSM_00647 [SWS_CanSM_00647] 📄 PDF

[SWS_CanSM_00647] Upstream requirements: SRS_Can_01158 ⌈If ECU passive is TRUE (ref. to [SWS_CanSM_00646]), then the effect E_FULL_COM of the CanSM_BSM state machine shall call at 1st place for each configured CAN controller of the CAN network the API CanIf_SetPdu- Mode (ref. to [SWS_CanSM_91002]) with the parameters ControllerId := CanSMControllerId (ref. to [ECUC_CanSM_00141]) and PduModeRequest := CANIF_TX_OFFLINE_ACTIVE.⌋

requirement SWS_CanSM_00648 [SWS_CanSM_00648] 📄 PDF

[SWS_CanSM_00648] Upstream requirements: SRS_Can_01158 ⌈If ECU passive is TRUE (ref. to [SWS_CanSM_00646]), then the effect E_TX_ON of the sub state machine CANSM_BSM_S_FULLCOM shall call at 1st place for the config- ured CAN controllers of the CAN network (ref. to [ECUC_CanSM_00141]) the API function CanIf_SetPduMode (ref. to [SWS_CanSM_91002]) with the parameters ControllerId := CanSMControllerId (ref. to [ECUC_CanSM_00141]) and Pdu- ModeRequest := CANIF_TX_OFFLINE_ACTIVE.⌋

requirement SWS_CanSM_00649 [SWS_CanSM_00649] 📄 PDF

[SWS_CanSM_00649] Upstream requirements: SRS_Can_01158 ⌈When CanSM_SetEcuPassive is called with CanSM_Passive=true; (ref. to

requirement SWS_CanSM_00650 [SWS_CanSM_00650] 📄 PDF

[SWS_CanSM_00650] Upstream requirements: SRS_Can_01158 ⌈If CanSM_SetEcuPassive called with CanSM_Passive=false; (ref. to

requirement SWS_CanSM_00651 [SWS_CanSM_00651] 📄 PDF

[SWS_CanSM_00651] ⌈If a communication mode request for the network is present already (ref. to [SWS_CanSM_00635]) and the stored communica- tion mode request is COMM_NO_COMMUNICATION, then the effect E_NOCOM of the CanSM_BSM state machine shall call the API ComM_BusSM_ModeIndica- tion (ref. to [SWS_CanSM_91002]) with the parameters Channel := CanSM- ComMNetworkHandleRef (ref. to [ECUC_CanSM_00161]) and ComMode := COMM_NO_COMMUNICATION.⌋(SRS_Can_01142, SRS_Can_01145)

requirement SWS_CanSM_00652 [SWS_CanSM_00652] 📄 PDF

[SWS_CanSM_00652] [SRS_ModeMgm_- 09221] The Watchdog Manager shall check the correct sequence of code execution in supervised entities

requirement SWS_CanSM_00653 [SWS_CanSM_00653] 📄 PDF

[SWS_CanSM_00653] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈If more than one CAN controller belongs to one CAN network and for one of its con- trollers a bus-off is indicated with CanSM_ControllerBusOff, then the CanSM shall stop in context of the effect E_BUS_OFF the other CAN contoller(s) of the CAN network, too.⌋

requirement SWS_CanSM_00654 [SWS_CanSM_00654] 📄 PDF

Type of error Related error code Error value API service used without module initialization CANSM_ E_ UNINIT 0x01 API service called with wrong pointer CANSM_ E_ PARAM_ POINTER 0x02 API service called with wrong parameter CANSM_ E_ INVALID_ NETWORK_ HANDLE 0x03 API service called with wrong parameter CANSM_ E_ PARAM_ CONTROLLER 0x04 API service called with wrong parameter CANSM_ E_ PARAM_ TRANSCEIVER 0x05 De Init API service called when not all CAN networks are in state CANSM_ NO_ COMMUNICATION CANSM_ E_ NOT_ IN_ NO_ COM 0x0B

requirement SWS_CanSM_00655 [SWS_CanSM_00655] 📄 PDF

If the sub state machine CANSM_BSM_S_TX_TIMEOUT_EXCEPTION (ref. to Figure 7 - 9) is triggered with T_CC_STARTED_INDICATED, the API CanIf_SetPduMode() shall be called with CANI F_ONLINE

requirement SWS_CanSM_00656 [SWS_CanSM_00656] 📄 PDF

If the CanSM needs informations about the actual PduMode, the CanSM shall call the API CanIf_GetPduMode to get the current Pdu Mode of the CanIf.

requirement SWS_CanSM_00658 [SWS_CanSM_00658] 📄 PDF

If the CanSM module is reque sted with the function CanSM_DeInit, this shall trigger the CanSM state machines (ref. to Figure 7 - 1) for all configured CAN Networks (ref. to ECUC_CanSM_00126) with the trig ger CanSM_DeInit.

requirement SWS_CanSM_00660 [SWS_CanSM_00660] 📄 PDF

If development error detection for the CanSM module is enabled: The function CanSM_DeInit shall raise the error CANSM_E_NOT_IN_NO_COM if not all CAN networks are in state CANSM_NO_COMMUNICATION .

requirement SWS_CanSM_00664 [SWS_CanSM_00664] 📄 PDF

Type of error Related error code Error value Mode request for a network failed more often than allowed by configuration CANSM_ E_ MODE_ REQUEST_ TIMEOUT 0x0A

requirement SWS_CanSM_00666 [SWS_CanSM_00666] 📄 PDF

: Bus - off detection Long Description: The bus - off recovery st ate machine of a CAN network has detected a certain amount of sequential bus - offs without successful recovery Recommended DTC: Assigned by DEM Detection Criteria: Fail PRE_FAILED when CanSM_ControllerBusOff is called (T_BUS_OFF/E_BUS_OFF), debouncing to be defined by OEM in DEM Pass A fter successful transmission of a CAN frame (G_BUS_OFF_PASSIVE/E_BUS_OFF_PASSIVE) Secondary Parameters: None Time Required : PRE_FAILED immediately (in error interrupt context), FAILED depending on debounce config uration of DEM Monitor Frequency Continuous MIL illumniation : Assigned by DEM

requirement SWS_CanSM_00667 [SWS_CanSM_00667] 📄 PDF

[SWS_CanSM_00667] Status: DRAFT Upstream requirements: SRS_Can_01142 ⌈If the CanIf module notifies PN availability for a configured CAN Controller to the CanSM module with the callback function CanSM_ConfirmCtrlPnAvailability (ref. to [SWS_CanSM_91004]), then the CanSM module shall call the API CanNm_ ConfirmPnAvailability (ref. to [SWS_CanSM_91002]) with the related CAN net- work as channel to confirm the PN availability to the CanNm module.⌋

requirement SWS_CanSM_00668 [SWS_CanSM_00668] 📄 PDF

[SWS_CanSM_00668] Status: DRAFT Upstream requirements: SRS_Can_01145 ⌈The function CanSM_ConfirmCtrlPnAvailability shall notify the CanNm mod- ule (ref. to [SWS_CanSM_00667]), if it is called with a configured Controller as input parameter (ref. to [ECUC_CanSM_00141]).⌋

requirement SWS_CanSM_00669 [SWS_CanSM_00669] 📄 PDF

[SWS_CanSM_00669] Status: DRAFT Upstream requirements: SRS_Can_01145 ⌈The function CanSM_ConfirmCtrlPnAvailability shall report CANSM_E_- UNINIT to the DET, if the CanSM module is not initialized yet.⌋

requirement SWS_CanSM_00670 [SWS_CanSM_00670] 📄 PDF

[SWS_CanSM_00670] Status: DRAFT Upstream requirements: SRS_Can_01145 ⌈If the function CanSM_ConfirmCtrlPnAvailability gets a ControllerId, which is not configured (ref. to [ECUC_CanSM_00141]) in the configuration of the CanSM module, it shall call the function Det_ReportError (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_PARAM_CONTROLLER.⌋

requirement SWS_CanSM_91002 [SWS_CanSM_91002] 📄 PDF

[SWS_CanSM_91002]) with the parameters Channel := CanSM- ComMNetworkHandleRef (ref. to [ECUC_CanSM_00161]) and ComMode := COMM_NO_COMMUNICATION.⌋(SRS_Can_01142, SRS_Can_01145)

requirement SWS_CanSM_91003 [SWS_CanSM_91003] 📄 PDF

CanIf_SetBaudrate CanIf.h This service shall set the baud rate configuration of the CAN controller. Depending on necessary baud rate modifications the controller might have to reset. Det_ReportError Det.h Service to report development errors. ⌋

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/CP_MOD_CanSM
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_CanSM@rel:R20-11#2edcb5fe
Content hash
2edcb5fe
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_CANStateManager.pdf#nameddest=SWS_CanSM_00023

विषय मानचित्र

आरंभीकरण और स्थिति

3

कॉलआउट और अपेक्षित इंटरफ़ेस

1

चक्रीय

1

आवश्यकताएँ

137
SWS_CanSM_00167SWS_CanSM_00182SWS_CanSM_00183SWS_CanSM_00184SWS_CanSM_00186SWS_CanSM_00187SWS_CanSM_00188SWS_CanSM_00189SWS_CanSM_00190SWS_CanSM_00235SWS_CanSM_00243SWS_CanSM_00266SWS_CanSM_00278SWS_CanSM_00282SWS_CanSM_00284SWS_CanSM_00360SWS_CanSM_00369SWS_CanSM_00370SWS_CanSM_00371SWS_CanSM_00372SWS_CanSM_00374SWS_CanSM_00385SWS_CanSM_00397SWS_CanSM_00398SWS_CanSM_00400SWS_CanSM_00401SWS_CanSM_00411SWS_CanSM_00412SWS_CanSM_00414SWS_CanSM_00415SWS_CanSM_00417SWS_CanSM_00418SWS_CanSM_00420SWS_CanSM_00421SWS_CanSM_00422SWS_CanSM_00423SWS_CanSM_00425SWS_CanSM_00426SWS_CanSM_00427SWS_CanSM_00428SWS_CanSM_00429SWS_CanSM_00430SWS_CanSM_00431SWS_CanSM_00434SWS_CanSM_00435SWS_CanSM_00438SWS_CanSM_00444SWS_CanSM_00445SWS_CanSM_00446SWS_CanSM_00448SWS_CanSM_00452SWS_CanSM_00454SWS_CanSM_00458SWS_CanSM_00464SWS_CanSM_00483SWS_CanSM_00484SWS_CanSM_00487SWS_CanSM_00488SWS_CanSM_00498SWS_CanSM_00499SWS_CanSM_00500SWS_CanSM_00502SWS_CanSM_00503SWS_CanSM_00504SWS_CanSM_00505SWS_CanSM_00506SWS_CanSM_00507SWS_CanSM_00508SWS_CanSM_00509SWS_CanSM_00516SWS_CanSM_00517SWS_CanSM_00518SWS_CanSM_00521SWS_CanSM_00522SWS_CanSM_00524SWS_CanSM_00525SWS_CanSM_00526SWS_CanSM_00530SWS_CanSM_00532SWS_CanSM_00538SWS_CanSM_00539SWS_CanSM_00540SWS_CanSM_00541SWS_CanSM_00542SWS_CanSM_00543SWS_CanSM_00546SWS_CanSM_00555SWS_CanSM_00560SWS_CanSM_00569SWS_CanSM_00570SWS_CanSM_00578SWS_CanSM_00581SWS_CanSM_00582SWS_CanSM_00584SWS_CanSM_00605SWS_CanSM_00606SWS_CanSM_00607SWS_CanSM_00608SWS_CanSM_00611SWS_CanSM_00612SWS_CanSM_00613SWS_CanSM_00616SWS_CanSM_00617SWS_CanSM_00618SWS_CanSM_00619SWS_CanSM_00620SWS_CanSM_00621SWS_CanSM_00622SWS_CanSM_00623SWS_CanSM_00629SWS_CanSM_00630SWS_CanSM_00635SWS_CanSM_00638SWS_CanSM_00639SWS_CanSM_00641SWS_CanSM_00645SWS_CanSM_00646SWS_CanSM_00647SWS_CanSM_00648SWS_CanSM_00649SWS_CanSM_00650SWS_CanSM_00651SWS_CanSM_00652SWS_CanSM_00653SWS_CanSM_00654SWS_CanSM_00655SWS_CanSM_00656SWS_CanSM_00658SWS_CanSM_00660SWS_CanSM_00664SWS_CanSM_00666SWS_CanSM_00667SWS_CanSM_00668SWS_CanSM_00669SWS_CanSM_00670SWS_CanSM_91002SWS_CanSM_91003

विवरण दृश्य

रूपरेखा में कोई प्रविष्टि चुनें।

आरंभीकरण और स्थिति

CanSM_DeInit फ़ंक्शन

This service de - initializes the Can SM module.

void CanSM_DeInit(void);
CanSM_GetVersionInfo फ़ंक्शन

This service puts out the version information of this module (module ID, vendor ID, vendor specific version numbers related to BSW00407)

void CanSM_GetVersionInfo(Std_VersionInfoType* VersionInfo);
CanSM_Init फ़ंक्शन

This service initializes the Can SM module

void CanSM_Init(const CanSM_ConfigType* ConfigPtr);

सेवाएँ

This callback function indicates the Can If_ Check Trcv Wake Flag API process end for the notified CAN Transceiver.

void CanSM_CheckTransceiverWakeFlagIndication(uint8 Transceiver);
CanSM_ClearTrcvWufFlagIndication फ़ंक्शन

This callback function shall indicate the Can If_ Clear Trcv Wuf Flag API process end for the notified CAN Transceiver.

void CanSM_ClearTrcvWufFlagIndication(uint8 Transceiver);
CanSM_ConfirmCtrlPnAvailability फ़ंक्शन

This callback function indicates that the controller is running in PN communication mode. Tags: atp.Status=draft

void CanSM_ConfirmCtrlPnAvailability(uint8 ControllerId);
CanSM_ConfirmPnAvailability फ़ंक्शन

This callback function indicates that the transceiver is running in PN communication mode.

void CanSM_ConfirmPnAvailability(uint8 TransceiverId);
CanSM_ControllerBusOff फ़ंक्शन

This callback function notifies the Can SM about a bus - off event on a certain CAN controller, which needs to be considered with the specified bus - off recovery handling for th e impacted CAN network.

void CanSM_ControllerBusOff(uint8 ControllerId);
CanSM_ControllerModeIndication फ़ंक्शन

This callback shall notify the Can SM module about a CAN controller mode change.

void CanSM_ControllerModeIndication(uint8 ControllerId, Can_ControllerStateType ControllerMode);
CanSM_CurrentIcomConfiguration फ़ंक्शन

This service shall inform about the change of the Icom Configuration of a CAN network.

void CanSM_CurrentIcomConfiguration(uint8 ControllerId, IcomConfigIdType ConfigurationId, IcomSwitch_ErrorType Error);
CanSM_GetCurrentComMode फ़ंक्शन

This service shall put out the current communication mode of a CAN network.

Std_ReturnType CanSM_GetCurrentComMode(NetworkHandleType network, ComM_ModeType* ComM_ModePtr);
CanSM_RequestComMode फ़ंक्शन

This service shall change the communication mode of a CAN network to the requested one.

Std_ReturnType CanSM_RequestComMode(NetworkHandleType network, ComM_ModeType ComM_Mode);
CanSM_SetBaudrate फ़ंक्शन

This service shall start an asynchronous process to change the baud rate for the configured CAN controllers of a certain CAN network. Depending on necessary baud rate modifications the controllers might have to reset.

Std_ReturnType CanSM_SetBaudrate(NetworkHandleType Network, uint16 BaudRateConfig ID); ⚠️
CanSM_SetEcuPassive फ़ंक्शन

Service Name Can SM_ Set Ecu Passive Syntax Std_ Return Type Can SM_ Set Ecu Passive ( boolean Can SM_ Passive ) Service ID [hex] 0x13 Sync/ Async Synchronous Reentrancy Non Reentrant Parameters (in) Can SM_ Passive TRUE: set all Can SM channels to passive, i.e. receive only FALSE: set all Can SM channels back to non - passive Parameters (inout) None Parameters (out) None Return value Std _ Return - E_ OK: Request accepted Type E_ NOT_ OK: Request not accepted Descr iption This function can be used to set all Can SM channels of the ECU to a receive only mode. Available via Can SM.h

Std_ReturnType CanSM_SetEcuPassive(boolean CanSM_Passive);
CanSM_SetIcomConfiguration फ़ंक्शन

This service shall change the Icom Configuration of a CAN network to the requested one.

Std_ReturnType CanSM_SetIcomConfiguration(NetworkHandleType Network, IcomConfigIdType ConfigurationId);
CanSM_StartWakeupSource फ़ंक्शन

This function shall be called by Ecu M when a wakeup source shall be started.

Std_ReturnType CanSM_StartWakeupSource(NetworkHandleType network);
CanSM_StopWakeupSource फ़ंक्शन

This function shall be called by Ecu M when a wakeup source shall be stopped.

Std_ReturnType CanSM_StopWakeupSource(NetworkHandleType network);
CanSM_TransceiverModeIndication फ़ंक्शन

This callback shall notify the Can SM module about a CAN transceiver mode change.

void CanSM_TransceiverModeIndication(uint8 TransceiverId, CanTrcv_TrcvModeType TransceiverMode);
CanSM_TxTimeoutException फ़ंक्शन

This function shall notify the Can SM module, that the Can Nm has detected for the affected partial CAN network a tx timeout exception, which shall be recovered within the respective network state machine of the Can SM module.

void CanSM_TxTimeoutException(NetworkHandleType Channel);

कॉलआउट और अपेक्षित इंटरफ़ेस

<User_Get Bus Off Delay> फ़ंक्शन

This callout function returns the number of Can SM base cycles to wait additionally to L1/ L2 after a Bus Off occurred.

void <User_Get Bus Off Delay>(NetworkHandleType network, uint8* delayCyclesPtr);

चक्रीय

CanSM_MainFunction फ़ंक्शन

Scheduled function of the Can SM

void CanSM_MainFunction(void);

टाइप

Can specific communication modes / states notified to the Bsw M module

CanSM_ConfigType टाइप

This type defines a data structure for the post build parameters of the Can SM. At initialization the Can SM gets a pointer to a structure of this type to get access to its configuration data, which is neces sary for initialization. Available Can SM.h via

CanSM_StateType टाइप

Defines the values of the internal states of the Can SM module

आवश्यकताएँ

SWS_CanSM_00167 requirement

[SWS_CanSM_00167] ⌈The main function of the CanSM module shall operate the effects of the CanSM state machine, which the CanSM module shall implement for each configured CAN Network.⌋(SRS_BSW_00424, SRS_BSW_00425, SRS_Can_- 01145, SRS_Can_01142)

SWS_CanSM_00182 requirement

[SWS_CanSM_00182] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈If the function CanSM_RequestComMode accepts the request, the request shall be considered by the CanSM state machine (ref. to [SWS_CanSM_00635]).⌋

SWS_CanSM_00183 requirement

[SWS_CanSM_00183] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈The function CanSM_RequestComMode shall call the function Det_ReportError (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_INVALID_NET- WORK_HANDLE, if it does not accept the network handle of the request.⌋

SWS_CanSM_00184 requirement

[SWS_CanSM_00184] Upstream requirements: SRS_BSW_00406 ⌈If the CanSM module is not initialized, when the function CanSM_RequestCom- Mode is called, then this function shall call the function Det_ReportError (ref. to

SWS_CanSM_00186 requirement

[SWS_CanSM_00186] Upstream requirements: SRS_Can_01142 ⌈The function CanSM_GetCurrentComMode shall put out the current communication mode for the network (ref. to [SWS_CanSM_00266]) to the designated pointer of type mode, if it accepts the request.⌋

SWS_CanSM_00187 requirement

[SWS_CanSM_00187] Upstream requirements: SRS_Can_01142 ⌈The function CanSM_GetCurrentComMode shall call the function Det_ReportEr- ror (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_INVALID_ NETWORK_HANDLE, if it does not accept the network of the request.⌋

SWS_CanSM_00188 requirement

[SWS_CanSM_00188] Upstream requirements: SRS_Can_01142 ⌈If the CanSM module is not initialized (ref. to [SWS_CanSM_00282]), when the function CanSM_GetCurrentComMode is called, then this function shall call the func- tion Det_ReportError (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_UNINIT.⌋

SWS_CanSM_00189 requirement

[SWS_CanSM_00189] Upstream requirements: SRS_BSW_00359, SRS_BSW_00333 ⌈If the function CanSM_ControllerBusOff gets a Controller, which is not configured as CanSMControllerId in the configuration of the CanSM module, it shall call the function Det_ReportError (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_PARAM_CONTROLLER.⌋

SWS_CanSM_00190 requirement

[SWS_CanSM_00190] Upstream requirements: SRS_BSW_00359, SRS_BSW_00333 ⌈If the CanSM module is not initialized, when the function CanSM_ControllerBu- sOff is called, then the function CanSM_ControllerBusOff shall call the func- tion Det_ReportError (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_UNINIT.⌋

SWS_CanSM_00235 requirement

[SWS_CanSM_00235] Upstream requirements: SRS_BSW_00359, SRS_BSW_00333 ⌈If the CanSM module is initialized and the input parameter Controller is one of the CAN controllers configured with the parameter CanSMControllerId, this bus-off event shall be considered by the CAN Network state machine (ref. to

SWS_CanSM_00243 requirement

Module Header File Imported Type Can Can_ General Types.h Can _ Controller State Type Can If Can If.h Can If _ Notif Status Type Can If.h Can If _ Pdu Mode Type Can Trcv Can_ General Types.h Can Trcv _ Trcv Mode Type Com M Rte_ Com M_ Type.h Com M _ Mode Type Com Stack_ Types Com Stack_ Types.h Network Handle Type Dem Rte_ Dem_ Type.h Dem _ Event Id Type Rte_ Dem_ Type.h Dem _ Event Status Type Std Std_ Types.h Std _ Return Type Std_ Types.h Std _ Version Info Type

SWS_CanSM_00266 requirement

[SWS_CanSM_00266] Upstream requirements: SRS_Can_01142 ⌈The CanSM module shall store the current network mode for each configured CAN network internally (ref. to [ECUC_CanSM_00126]).⌋

SWS_CanSM_00278 requirement

[SWS_CanSM_00278] Upstream requirements: SRS_Can_01142 ⌈If the CanSM state machine CANSM_BSM is in the state CANSM_BSM_S_NOT_INITIALIZED, it shall deny network mode requests from the ComM module (ref. to [SWS_CanSM_00062]).⌋

SWS_CanSM_00282 requirement

[SWS_CanSM_00282] Upstream requirements: SRS_Can_01142 ⌈The CanSM module shall return E_NOT_OK for the API request CanSM_- GetCurrentComMode until the call of the provided API CanSM_Init (ref. to

SWS_CanSM_00284 requirement

[SWS_CanSM_00284] Upstream requirements: SRS_Can_01142 ⌈The internally stored network modes of the CanSM module can have the values COMM_NO_COMMUNICATION, COMM_SILENT_COMMUNICATION, COMM_FULL_COMMUNICATION.⌋

SWS_CanSM_00360 requirement

[SWS_CanSM_00360] Upstream requirements: SRS_Can_01142 ⌈The function CanSM_GetCurrentComMode shall report the development error CANSM_E_PARAM_POINTER to the DET, if the user of this function hands over a NULL- pointer as mode.⌋

SWS_CanSM_00369 requirement

[SWS_CanSM_00369] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈The function CanSM_RequestComMode shall accept its request, if the NetworkHan- dle parameter of the request is a handle contained in the configuration of the CanSM module (ref. to [ECUC_CanSM_00161]).⌋

SWS_CanSM_00370 requirement

[SWS_CanSM_00370] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈The function CanSM_RequestComMode shall deny its request, if the NetworkHandle parameter of the request is not a handle contained in the configuration of the CanSM module (ref. to [ECUC_CanSM_00161]).⌋

SWS_CanSM_00371 requirement

[SWS_CanSM_00371] Upstream requirements: SRS_Can_01142 ⌈The function CanSM_GetCurrentComMode shall accept its request, if the network parameter of the request is a handle contained in the configuration of the CanSM module (ref. to [ECUC_CanSM_00161]).⌋

SWS_CanSM_00372 requirement

[SWS_CanSM_00372] Upstream requirements: SRS_Can_01142 ⌈The function CanSM_GetCurrentComMode shall deny its request, if the network parameter of the request is not a handle contained in the configuration of the CanSM module (ref. to [ECUC_CanSM_00161]).⌋

SWS_CanSM_00374 requirement

The function CanSM_GetVersionInfo shall report the development error CANSM_E_PARAM_POINTER to the DET, if the user of this function hands over a NULL - pointer as VersionInfo .

SWS_CanSM_00385 requirement

[SWS_CanSM_00385] Upstream requirements: SRS_Can_01142 ⌈If CanSM has repeated one of the CanIf API calls CanIf_SetControllerMode (ref. to [SWS_CanSM_91002]), CanIf_SetTrcvMode (ref. to [SWS_CanSM_91002]), CanIf_ClearTrcvWufFlag (ref.

SWS_CanSM_00397 requirement

[SWS_CanSM_00397] Upstream requirements: SRS_Can_01145 ⌈If the function CanSM_ControllerModeIndication gets a ControllerId, which is not configured as CanSMControllerId in the configuration of the CanSM module, it shall call the function Det_ReportError (ref. to [SWS_CanSM_91003]) with Er- rorId parameter CANSM_E_PARAM_CONTROLLER.⌋

SWS_CanSM_00398 requirement

[SWS_CanSM_00398] Upstream requirements: SRS_Can_01145 ⌈If the CanSM module is not initialized, when the function CanSM_ControllerMod- eIndication is called, then the function CanSM_ControllerModeIndication shall call the function Det_ReportError (ref. to [SWS_CanSM_91003]) with Er- rorId parameter CANSM_E_UNINIT.⌋

SWS_CanSM_00400 requirement

[SWS_CanSM_00400] Upstream requirements: SRS_Can_01145 ⌈If the function CanSM_TransceiverModeIndication gets a TransceiverId, which is not configured as CanSMTransceiverId in the configuration of the CanSM module, it shall call the function Det_ReportError (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_PARAM_TRANSCEIVER.⌋

SWS_CanSM_00401 requirement

[SWS_CanSM_00401] Upstream requirements: SRS_Can_01145 ⌈If the CanSM module is not initialized, when the function CanSM_TransceiverMod- eIndication is called, then the function CanSM_TransceiverModeIndication shall call the function Det_ReportError (ref. to [SWS_CanSM_91003]) with Er- rorId parameter CANSM_E_UNINIT.⌋

SWS_CanSM_00411 requirement

[SWS_CanSM_00411] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_TxTimeoutException shall report CANSM_E_UNINIT to the DET, if the CanSM module is not initialized yet.⌋

SWS_CanSM_00412 requirement

[SWS_CanSM_00412] Upstream requirements: SRS_Can_01145 ⌈If the function CanSM_TxTimeoutException is referenced with a Channel, which is not configured as CanSMNetworkHandle in the CanSM configuration, it shall report CANSM_E_INVALID_NETWORK_HANDLE to the DET.⌋ Remarks: Reentrancy is necessary for different Channels.

SWS_CanSM_00414 requirement

[SWS_CanSM_00414] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_ClearTrcvWufFlagIndication shall report CANSM_E_- UNINIT to the DET, if the CanSM module is not initialized yet.⌋

SWS_CanSM_00415 requirement

[SWS_CanSM_00415] Upstream requirements: SRS_Can_01145 ⌈If the function CanSM_ClearTrcvWufFlagIndication gets a TransceiverId, which is not configured (ref. to [ECUC_CanSM_00137]) in the configuration of the CanSM module, it shall call the function Det_ReportError (ref. to

SWS_CanSM_00417 requirement

[SWS_CanSM_00417] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_CheckTransceiverWakeFlagIndication shall report CANSM_E_UNINIT to the DET, if the CanSM module is not initialized yet.⌋

SWS_CanSM_00418 requirement

[SWS_CanSM_00418] Upstream requirements: SRS_Can_01145 ⌈If the function CanSM_CheckTransceiverWakeFlagIndication gets a TransceiverId, which is not configured (ref. to [ECUC_CanSM_00137]) in the con- figuration of the CanSM module, it shall call the function Det_ReportError (ref. to

SWS_CanSM_00420 requirement

[SWS_CanSM_00420] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_ConfirmPnAvailability shall report CANSM_E_UNINIT to the DET, if the CanSM module is not initialized yet.⌋

SWS_CanSM_00421 requirement

[SWS_CanSM_00421] Upstream requirements: SRS_Can_01145 ⌈If the function CanSM_ConfirmPnAvailability gets a TransceiverId, which is not configured (ref. to [ECUC_CanSM_00137]) in the configuration of the CanSM module, it shall call the function Det_ReportError (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_PARAM_TRANSCEIVER.⌋

SWS_CanSM_00422 requirement

[SWS_CanSM_00422] Upstream requirements: SRS_Can_01142 ⌈If the CanIf module notifies PN availability for a configured CAN Transceiver to the CanSM module with the callback function CanSM_ConfirmPnAvailability (ref. to [SWS_CanSM_00419]), then the CanSM module shall call the API CanNm_Con- firmPnAvailability (ref. to [SWS_CanSM_91002]) with the related CAN network as channel to confirm the PN availability to the CanNm module.⌋

SWS_CanSM_00423 requirement

[SWS_CanSM_00423], [SWS_CanSM_00430]).⌋

SWS_CanSM_00425 requirement

[SWS_CanSM_00425], [SWS_CanSM_00426]).⌋

SWS_CanSM_00426 requirement

[SWS_CanSM_00426]).⌋

SWS_CanSM_00427 requirement

[SWS_CanSM_00427], [SWS_CanSM_00429],

SWS_CanSM_00428 requirement

[SWS_CanSM_00428] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈All effects of the CanSM state machine CANSM_BSM shall be operated in the context of the CanSM main function (ref. to [SWS_CanSM_00065]).⌋

SWS_CanSM_00429 requirement

[SWS_CanSM_00429] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈The guarding condition G_SILENT_COM_MODE_REQUESTED of the CanSM_BSM state machine shall evaluate, if the latest accepted communication mode request with CanSM_RequestComMode (ref. to [SWS_CanSM_00635]) for the respective net- work handle of the state machine has been with the parameter ComM_Mode equal to COMM_SILENT_COMMUNICATION.⌋

SWS_CanSM_00430 requirement

[SWS_CanSM_00430] ⌈The effect E_NOCOM of the CanSM_BSM state machine shall change the internally stored network mode (ref. to [SWS_CanSM_00266]) of the addressed CAN network to COMM_NO_COMMUNICATION.⌋(SRS_Can_01142, SRS_- Can_01145)

SWS_CanSM_00431 requirement

[SWS_CanSM_00431] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈The effect E_PRE_NOCOM of the CanSM_BSM state machine shall call for the corresponding CAN network the API BswM_CanSM_CurrentState (ref. to

SWS_CanSM_00434 requirement

[SWS_CanSM_00434] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈The effect E_FULL_TO_SILENT_COM of the CanSM_BSM state machine shall call at 1st place for the corresponding CAN network the API BswM_CanSM_CurrentState (ref. to [SWS_CanSM_91002]) with the parameters Network := CanSMComMNet- workHandleRef and CurrentState := CANSM_BSWM_SILENT_COMMUNICATION.⌋

SWS_CanSM_00435 requirement

[SWS_CanSM_00435] Upstream requirements: SRS_Can_01158 ⌈After considering [SWS_CanSM_00539] and [SWS_CanSM_00647] in context of the effect E_FULL_COM of the CanSM_BSM state machine, the CanSM module shall call the API ComM_BusSM_ModeIndication (ref. to [SWS_CanSM_91002]) for the corresponding CAN network with the parameters Channel := CanSM- ComMNetworkHandleRef (ref. to [ECUC_CanSM_00161]) and ComMode := COMM_FULL_COMMUNICATION.⌋

SWS_CanSM_00438 requirement

[SWS_CanSM_00438] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈As long the sub state machine CANSM_BSM_DeinitPnSupported is in the state S_PN_CLEAR_WUF, the CanSM module operate the do action DO_CLEAR_TRCV_WUF and therefore repeat the API request CanIf_ClearTrcvWufFlag and use the con- figured Transceiver (ref. to [ECUC_CanSM_00137]) as API function parameter.⌋

SWS_CanSM_00444 requirement

[SWS_CanSM_00444]), this condition shall trigger the sub state machine CANSM_BSM_DeinitPnSupported of the respective network with T_CC_STOPPED_TIMEOUT.⌋

SWS_CanSM_00445 requirement

[SWS_CanSM_00445] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈After a timeout of CANSM_MODEREQ_REPEAT_TIME (ref. to [ECUC_CanSM_00336]) for all supposed controller stopped mode indications (ref. to [SWS_CanSM_00444]), this condition shall trigger the sub state machine CANSM_BSM_DeinitPnSupported of the respective network with T_CC_STOPPED_TIMEOUT.⌋

SWS_CanSM_00446 requirement

[SWS_CanSM_00446] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈As long the sub state machine CANSM_BSM_DeinitPnSupported is in the state S_TRCV_NORMAL, the CanSM module shall operate the do ac- tion DO_SET_TRCV_MODE_NORMAL and therefore repeat for the configured CAN Transceiver of the CAN network (ref. to [ECUC_CanSM_00137]) the API request CanIf_SetTrcvMode (ref. to [SWS_CanSM_91002]) with TransceiverMode equal to CANTRCV_TRCVMODE_NORMAL.⌋

SWS_CanSM_00448 requirement

[SWS_CanSM_00448] ⌈If CanSM module has got the CANTRCV_TRCVMODE_NORMAL mode indication (ref. to

SWS_CanSM_00452 requirement

[SWS_CanSM_00452]), this condition shall trigger the sub state machine CANSM_BSM_DeinitPnSupported of the respective network with T_TRCV_STANDBY_TIMEOUT.⌋(SRS_Can_01142, SRS_Can_01145)

SWS_CanSM_00454 requirement

[SWS_CanSM_00454] ⌈After a timeout of CANSM_MODEREQ_REPEAT_TIME (ref. to [ECUC_CanSM_00336]) for the supposed transceiver standby indication (ref. to

SWS_CanSM_00458 requirement

[SWS_CanSM_00458] ⌈As long the sub state machine CANSM_BSM_DeinitPnSupported is in the state S_CHECK_WFLAG_IN_CC_SLEEP, the CanSM module operate the do action DO_CHECK_WFLAG and therefore repeat the API request CanIf_CheckTrcvWakeFlag (ref. [SWS_CanSM_91002]) and use the configured CAN Transceiver of the related Network (ref. to [ECUC_CanSM_00137]) as Transceiver parameter.⌋(SRS_Can_01142, SRS_Can_01145)

SWS_CanSM_00464 requirement

[SWS_CanSM_00464] ⌈As long the sub state machine CANSM_BSM_DeinitPnNotSupported is in the state S_CC_STOPPED, the CanSM module shall operate the do action DO_SET_CC_MODE_STOPPED and therefore repeat for all configured CAN controllers of the CAN network (ref. to [ECUC_CanSM_00141]) the API request CanIf_SetControllerMode (ref. to [SWS_CanSM_91002]) with ControllerMode equal to CAN_CS_STOPPED, if the current CAN controller mode (ref. to [SWS_CanSM_00638]) is different.⌋(SRS_Can_01142, SRS_Can_01145)

SWS_CanSM_00483 requirement

[SWS_CanSM_00483] has returned E_OK.⌋(SRS_Can_01145, SRS_Can_01142)

SWS_CanSM_00484 requirement

[SWS_CanSM_00484] ⌈The guarding condition G_TRCV_NORMAL_E_OK of the sub state machine CANSM_BSM_S_PRE_FULLCOM shall be passed, if the API call of

SWS_CanSM_00487 requirement

[SWS_CanSM_00487] have returned E_OK.⌋(SRS_Can_01145, SRS_Can_01142)

SWS_CanSM_00488 requirement

[SWS_CanSM_00488] ⌈The guarding condition G_CC_STOPPED_OK of the sub state machine CANSM_BSM_S_PRE_FULLCOM shall be passed, if all API calls of

SWS_CanSM_00498 requirement

[SWS_CanSM_00498] Upstream requirements: SRS_BSW_00422 ⌈The effect E_BUS_OFF_PASSIVE of the sub state machine CANSM_BSM_S_FULLCOM shall invocate Dem_SetEventStatus (ref. to [SWS_CanSM_91002]) with the pa- rameters EventId := CANSM_E_BUS_OFF (ref. to [ECUC_CanSM_00070]) and EventStatus := DEM_EVENT_STATUS_PASSED.⌋

SWS_CanSM_00499 requirement

The API request CanSM_RequestComMode (ref. to SWS_CanSM_00635 ) with the parameter ComM_Mode equal to COMM_SILENT_COMMUNICATION shall trigger the sub state machine CANSM_BSM_S_FULLCO M (ref. to Figure 7 - 1 ) with T_SILENT_COM_MODE_REQUEST , which corresponds to the function parameter network and the configuration parameter CANSM_NETWORK_HANDLE (ref. to ECUC_CanSM_00161 ).

SWS_CanSM_00500 requirement

[SWS_CanSM_00500] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈The callback function CanSM_ControllerBusOff (ref. to [SWS_CanSM_00064]) shall trigger the sub state machine CANSM_BSM_S_FULLCOM for the CAN network with T_BUS_OFF, if one of its configured CAN controllers matches to the function parameter ControllerId of the callback function CanSM_ControllerBusOff.⌋

SWS_CanSM_00502 requirement

The CanSM module shall deny the CanSM_ Set Baudrate API request, if the NetworkHandle parameter does not match to the configured Network handles of the CanSM module (ref. to E CUC_CanSM_00161 ) .

SWS_CanSM_00503 requirement

I If no condition is present to deny the CanSM_SetBaudrate request according to SWS_CANSM_00502 and SWS_CANSM_00505 , SWS_CANSM_00530 , then the CanSM module shall return E_OK and operate the process for the requested baud rate change as specified with SWS_CANSM_00507 .

SWS_CanSM_00504 requirement

The function CanSM_ Set Baudrate shall call the function Det_ReportError with ErrorId parameter CANSM_E_INVALID_NETWORK_HANDLE (ref. to chapter 7.3 ), if it does not accept t he network handle of the request.

SWS_CanSM_00505 requirement

The function CanSM_ Set Baudrate shall deny its request, if the requested CAN network is not in the communication mode COMM_FULL_COMMUNICATION .

SWS_CanSM_00506 requirement

If the function CanSM_ Set Baudrate is called and the CanSM module is not initialized, then this function shall call the function Det_ReportError w ith ErrorId parameter CANSM_E_UNINIT (ref. to chapter 7.3 ).

SWS_CanSM_00507 requirement

[SWS_CanSM_00507].⌋

SWS_CanSM_00508 requirement

[SWS_CanSM_00508] ⌈The effect E_BUS_OFF of the sub state machine CANSM_BSM_S_FULLCOM shall call at 1st place for the corresponding CAN net- work the API BswM_CanSM_CurrentState (ref. to [SWS_CanSM_91002]) with the parameters Network := CanSMComMNetworkHandleRef and CurrentState := CANSM_BSWM_BUS_OFF.⌋(SRS_Can_01145, SRS_Can_01142)

SWS_CanSM_00509 requirement

[SWS_CanSM_00509] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈As long the sub state machine CANSM_BSM_S_FULLCOM is in the state S_RESTART_CC, the CanSM module shall operate the do action DO_SET_CC_MODE_STARTED and therefore repeat for all configured CAN controllers of the CAN network (ref. to [ECUC_CanSM_00141]) the API request CanIf_Set- ControllerMode (ref. to [SWS_CanSM_91002]) with ControllerMode equal to CAN_CS_STARTED, if the current CAN controller mode (ref. to [SWS_CanSM_00638]) is different.⌋

SWS_CanSM_00516 requirement

[SWS_CanSM_00516] Upstream requirements: SRS_Can_01158 ⌈If ECU passive is FALSE (ref. to [SWS_CanSM_00646]), then the effect E_TX_ON of the sub state machine CANSM_BSM_S_FULLCOM shall call at 1st place for the config- ured CAN controllers of the CAN network (ref. to [ECUC_CanSM_00141]) the API function CanIf_SetPduMode (ref. to [SWS_CanSM_91002]) with the parameters ControllerId := CanSMControllerId (ref. to [ECUC_CanSM_00141]) and Pdu- ModeRequest := CANIF_ONLINE.⌋

SWS_CanSM_00517 requirement

[SWS_CanSM_00517] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈The effect E_TX_ON of the sub state machine CANSM_BSM_S_FULLCOM shall call at 2nd place for the corresponding CAN network the API BswM_CanSM_CurrentState (ref. to [SWS_CanSM_91002]) with the parameters Network := CanSMComMNet- workHandleRef and CurrentState := CANSM_BSWM_FULL_COMMUNICATION.⌋

SWS_CanSM_00518 requirement

[SWS_CanSM_00518] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈The effect E_TX_ON of the sub state machine CANSM_BSM_S_FULLCOM shall call at 3rd place the API ComM_BusSM_ModeIndication (ref. to [SWS_CanSM_91002]) with the parameters Channel := CanSMComMNetworkHandleRef (ref. to [ECUC_CanSM_00161]) and ComMode := COMM_FULL_COMMUNICATION.⌋

SWS_CanSM_00521 requirement

[SWS_CanSM_00521] ⌈The effect E_BUS_OFF of the sub state machine CANSM_BSM_S_FULLCOM shall call at 2nd place for the corresponding CAN network the API ComM_BusSM_ModeIndication (ref. to [SWS_CanSM_91002]) with the param- eters Channel := CanSMComMNetworkHandleRef (ref. to [ECUC_CanSM_00161]) and ComMode := COMM_SILENT_COMMUNICATION.⌋(SRS_Can_01145, SRS_Can_- 01142)

SWS_CanSM_00522 requirement

[SWS_CanSM_00522]). The DEM event for this error is configured per CAN network in the CANSM_E_BUS_OFF (see [ECUC_CanSM_00070]). • CANSM informs the Communication Manager about the communication status (COMM_SILENT_COMMUNICATION) notified with ComM_BusSM_ModeIndication (see

SWS_CanSM_00524 requirement

[SWS_CanSM_00524]), this shall trigger the sub state machine CANSM_BSM_S_CHANGE_BAUDRATE of the CAN network with T_CC_STOPPED_INDICATED.⌋

SWS_CanSM_00525 requirement

[SWS_CanSM_00525] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈The guarding condition G_CC_STOPPED_OK of the sub state machine CANSM_BSM_S_CHANGE_BAUDRATE shall be passed, if all API calls of

SWS_CanSM_00526 requirement

[SWS_CanSM_00526] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈If CanSM module has got all mode indications (ref. to [SWS_CanSM_00396]) for the configured CAN controllers of the CAN network (ref. to [ECUC_CanSM_00141]) after the respective requests to stop the CAN controllers of the CAN net- work (ref. to

SWS_CanSM_00530 requirement

The CanSM module shall deny the CanSM_ Set Baudrate API request, if the CanSM module is not initialized.

SWS_CanSM_00532 requirement

[SWS_CanSM_00532] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈As long the sub state machine CANSM_BSM_S_CHANGE_BAUDRATE is in the state S_CC_STARTED, the CanSM module shall operate the do action DO_SET_CC_MODE_STARTED and therefore repeat for all configured CAN controllers of the CAN network (ref. to [ECUC_CanSM_00141]) the API request CanIf_Set- ControllerMode (ref. to [SWS_CanSM_91002]) with ControllerMode equal to CAN_CS_STARTED, if the current CAN controller mode (ref. to [SWS_CanSM_00638]) is different.⌋

SWS_CanSM_00538 requirement

[SWS_CanSM_00538] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈The effect E_FULL_TO_SILENT_COM of the CanSM_BSM state machine shall call at 3th place for the corresponding CAN network the API ComM_BusSM_Mod- eIndication (ref. to [SWS_CanSM_91002]) with the parameters Channel := CanSMComMNetworkHandleRef (ref. to [ECUC_CanSM_00161]) and ComMode := COMM_SILENT_COMMUNICATION.⌋

SWS_CanSM_00539 requirement

If ECU passive is FALSE (ref. to SWS_CanSM_00646 ) , then the effect E_FULL_COM of the CanSM_BSM state machine (ref. to Figure 7 - 1 ) shall call at 1 st place for each configured CAN controller of the CAN network the API CanIf_SetPduMode with the parameters ControllerId := CanSMControllerId (ref. to ECUC_CanSM_00141 ) and PduModeRequest := CANIF_ ONLINE .

SWS_CanSM_00540 requirement

[SWS_CanSM_00540] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈After considering [SWS_CanSM_00435] in context of the effect E_FULL_COM of the CanSM_BSM state machine, the CanSM module shall call the API BswM_CanSM_Cur- rentState (ref. to [SWS_CanSM_91002]) for the corresponding CAN network with the parameters Network := CanSMComMNetworkHandleRef and CurrentState := CANSM_BSWM_FULL_COMMUNICATION.⌋

SWS_CanSM_00541 requirement

[SWS_CanSM_00541] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈The effect E_FULL_TO_SILENT_COM of the CanSM_BSM state machine shall call at 2nd place for each configured CAN controller of the CAN network the API CanIf_- SetPduMode (ref. to [SWS_CanSM_91002]) with the parameters ControllerId := CanSMControllerId (ref. to [ECUC_CanSM_00141]) and PduModeRequest := CANIF_TX_OFFLINE.⌋

SWS_CanSM_00542 requirement

[SWS_CanSM_00542],

SWS_CanSM_00543 requirement

[SWS_CanSM_00543],

SWS_CanSM_00546 requirement

[SWS_CanSM_00546] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_ConfirmPnAvailability shall notify the Can_Nm module (ref. to [SWS_CanSM_00422]), if it is called with a configured Transceiver as input parameter (ref. to [ECUC_CanSM_00137]).⌋

SWS_CanSM_00555 requirement

[SWS_CanSM_00555] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈The CanSM module shall deny the API requestCanSM_RequestComMode, if the ini- tial transition for the requested CAN network is not finished yet after the CanSM_Init request (ref. to [SWS_CanSM_00423], [SWS_CanSM_00430]).⌋

SWS_CanSM_00560 requirement

[SWS_CanSM_00560] Upstream requirements: SRS_Can_01145 ⌈If no CanSMTransceiverId (ref. to [ECUC_CanSM_00137]) is configured for a CAN Network, then the CanSM module shall bypass all specified CanIf_SetTrcv- Mode (ref. to [SWS_CanSM_91002]) (e.g. [SWS_CanSM_00446]) calls for the CAN Network and proceed in the different state transitions as if it has got the supposed CanSM_TransceiverModeIndication already (e.g. [SWS_CanSM_00448]).⌋

SWS_CanSM_00569 requirement

The CanSM module shall provide the API function CanSM_ Set Baudrate , if the CANSM_SET_BAUDRATE_API parameter (ref. to ECUC_CanSM_00343 ) is configured with the value TRUE .

SWS_CanSM_00570 requirement

[SWS_CanSM_00570] Upstream requirements: SRS_Can_01142 ⌈The CanSM module shall not provide the API function CanSM_SetBaudrate, if the CanSMSetBaudrateApi is configured with the value FALSE.⌋

SWS_CanSM_00578 requirement

[SWS_CanSM_00578] ⌈As long the sub state machine CANSM_BSM_S_TX_TIMEOUT_EXCEPTION is in the state S_CC_STOPPED, the CanSM module shall operate the do action DO_SET_CC_MODE_STOPPED and therefore repeat for all configured CAN controllers of the CAN network (ref. to [ECUC_CanSM_00141]) the API request CanIf_SetControllerMode (ref. to

SWS_CanSM_00581 requirement

[SWS_CanSM_00581] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈The guarding condition G_CC_STARTED_E_OK of the sub state machine CANSM_BSM_S_TX_TIMEOUT_EXCEPTION shall be passed, if all API calls of

SWS_CanSM_00582 requirement

[SWS_CanSM_00582] have returned E_OK.⌋

SWS_CanSM_00584 requirement

[SWS_CanSM_00584] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈The callback function CanSM_TxTimeoutException (ref. to

SWS_CanSM_00605 requirement

[SWS_CanSM_00605] Upstream requirements: SRS_BSW_00422 ⌈The effect E_BUS_OFF of the sub state machine CANSM_BSM_S_FULLCOM CANSM_BSM_S_SILENTCOM_BOR shall invocate Dem_SetEventStatus (ref. to

SWS_CanSM_00606 requirement

[SWS_CanSM_00606] ⌈The callback function CanSM_ControllerBusOff (ref. to

SWS_CanSM_00607 requirement

[SWS_CanSM_00607]) for the state machine of the related network, if the CanSM module is initialized and the requested handle is valid concerning the CanSM configuration (ref. to [ECUC_CanSM_00161]).⌋ (SRS_Can_01145)

SWS_CanSM_00608 requirement

[SWS_CanSM_00608]) for the state ma- chine of the related network, if the CanSM module is initialized and the requested handle is valid concerning the CanSM configuration (ref. to [ECUC_CanSM_00161]).⌋ (SRS_Can_01145)

SWS_CanSM_00611 requirement

[SWS_CanSM_00611] Upstream requirements: SRS_Can_01145 ⌈The API function CanSM_StartWakeupSource shall return E_NOT_OK, if the CanSM module is not initialized yet with CanSM_Init (ref. to

SWS_CanSM_00612 requirement

[SWS_CanSM_00612] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_StartWakeupSource shall return E_NOT_OK, if the CanSM module is initialized and the network parameter of the request is not a handle contained in the configuration of the CanSM module (ref. to [ECUC_CanSM_00161]).⌋

SWS_CanSM_00613 requirement

[SWS_CanSM_00613] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_StartWakeupSource shall call the function Det_ReportEr- ror (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_INVALID_- NETWORK_HANDLE, if the CanSM module is initialized and the requested handle is invalid concerning the CanSM configuration (ref. to [ECUC_CanSM_00161]).⌋

SWS_CanSM_00616 requirement

[SWS_CanSM_00616] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_StartWakeupSource shall return E_OK and it shall be con- sidered as trigger (ref. to [SWS_CanSM_00607]) for the state machine of the related network, if the CanSM module is initialized and the requested handle is valid concern- ing the CanSM configuration (ref. to [ECUC_CanSM_00161]).⌋

SWS_CanSM_00617 requirement

[SWS_CanSM_00617] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_StartWakeupSource shall call the function Det_Re- portError (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_- UNINIT, if the CanSM module is not initialized yet with CanSM_Init (ref. to

SWS_CanSM_00618 requirement

[SWS_CanSM_00618] Upstream requirements: SRS_Can_01145 ⌈The API function CanSM_StopWakeupSource shall return E_NOT_OK, if the CanSM module is not initialized yet with CanSM_Init (ref. to [SWS_CanSM_00023]).⌋

SWS_CanSM_00619 requirement

[SWS_CanSM_00619] ⌈The function CanSM_StopWakeupSource shall call the func- tion Det_ReportError (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_UNINIT, if the CanSM module is not initialized yet with CanSM_Init (ref. to [SWS_CanSM_00023]).⌋(SRS_Can_01145)

SWS_CanSM_00620 requirement

[SWS_CanSM_00620] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_StopWakeupSource shall return E_NOT_OK, if the CanSM module is initialized and the network parameter of the request is not a handle con- tained in the configuration of the CanSM module (ref. to [ECUC_CanSM_00161]).⌋

SWS_CanSM_00621 requirement

[SWS_CanSM_00621] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_StopWakeupSource shall call the function Det_ReportEr- ror (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_INVALID_ NETWORK_HANDLE, if the CanSM module is initialized and the requested handle is invalid concerning the CanSM configuration (ref. to [ECUC_CanSM_00161]).⌋

SWS_CanSM_00622 requirement

[SWS_CanSM_00622] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_StopWakeupSource shall return E_OK and it shall be consid- ered as trigger (ref. to [SWS_CanSM_00608]) for the state machine of the related network, if the CanSM module is initialized and the requested handle is valid concern- ing the CanSM configuration (ref. to [ECUC_CanSM_00161]).⌋

SWS_CanSM_00623 requirement

[SWS_CanSM_00623] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈If for the CAN network a CAN Transceiver is configured (ref. to [ECUC_CanSM_00137]), then as long the sub state machine CANSM_BSM_WUVALIDATION is in the state S_TRCV_NORMAL, the CanSM mod- ule shall operate the do action DO_SET_TRCV_MODE_NORMAL and therefore repeat for the configured CAN Transceiver of the CAN network (ref. to [ECUC_CanSM_00137]) the API request CanIf_SetTrcvMode (ref. to [SWS_CanSM_91002]) with TransceiverMode equal to CANTRCV_TRCVMODE_NORMAL.⌋

SWS_CanSM_00629 requirement

[SWS_CanSM_00629]), this condition shall trigger the sub state machine CANSM_BSM_WUVALIDATION of the respective network with T_CC_STOPPED_TIMEOUT.⌋

SWS_CanSM_00630 requirement

[SWS_CanSM_00630] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈After a timeout of CANSM_MODEREQ_REPEAT_TIME (ref. to [ECUC_CanSM_00336]) for all supposed controller stopped mode indications (ref. to [SWS_CanSM_00629]), this condition shall trigger the sub state machine CANSM_BSM_WUVALIDATION of the respective network with T_CC_STOPPED_TIMEOUT.⌋

SWS_CanSM_00635 requirement

[SWS_CanSM_00635]) and the stored communica- tion mode request is COMM_NO_COMMUNICATION, then the effect E_NOCOM of the CanSM_BSM state machine shall call the API ComM_BusSM_ModeIndica- tion (ref. to [SWS_CanSM_91002]) with the parameters Channel := CanSM- ComMNetworkHandleRef (ref. to [ECUC_CanSM_00161]) and ComMode := COMM_NO_COMMUNICATION.⌋(SRS_Can_01142, SRS_Can_01145)

SWS_CanSM_00638 requirement

[SWS_CanSM_00638] Upstream requirements: SRS_Can_01145 ⌈The CanSM module shall store after every successful CAN controller mode change (ref. to [SWS_CanSM_00396]) or bus-off conditioned change to CAN_CS_STOPPED (ref. to [SWS_CanSM_00064]), the changed mode internally for each CAN controller.⌋

SWS_CanSM_00639 requirement

[SWS_CanSM_00639] ⌈The state operation DO_SET_BAUDRATE_DIRECT shall call the API request CanIf_SetBaudrate (ref. to [SWS_CanSM_91003])) for all con- figured CAN controllers of the CAN network (ref. to [ECUC_CanSM_00141] with the respective ControllerId parameter. It shall use as BaudRateConfigID parame- ter the respective function parameter BaudRateConfigID from the call CanSM_Set- Baudrate.⌋(SRS_Can_01145, SRS_Can_01142)

SWS_CanSM_00641 requirement

[SWS_CanSM_00641] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈If all CanIf_SetBaudrate (ref. to

SWS_CanSM_00645 requirement

[SWS_CanSM_00645] Upstream requirements: SRS_Can_01158 ⌈The CanSM module shall provide the API function CanSM_SetEcuPassive, if the CanSMTxOfflineActiveSupport parameter is configured with the value TRUE.⌋

SWS_CanSM_00646 requirement

[SWS_CanSM_00646]), then the effect E_TX_ON of the sub state machine CANSM_BSM_S_FULLCOM shall call at 1st place for the config- ured CAN controllers of the CAN network (ref. to [ECUC_CanSM_00141]) the API function CanIf_SetPduMode (ref. to [SWS_CanSM_91002]) with the parameters ControllerId := CanSMControllerId (ref. to [ECUC_CanSM_00141]) and Pdu- ModeRequest := CANIF_ONLINE.⌋

SWS_CanSM_00647 requirement

[SWS_CanSM_00647] Upstream requirements: SRS_Can_01158 ⌈If ECU passive is TRUE (ref. to [SWS_CanSM_00646]), then the effect E_FULL_COM of the CanSM_BSM state machine shall call at 1st place for each configured CAN controller of the CAN network the API CanIf_SetPdu- Mode (ref. to [SWS_CanSM_91002]) with the parameters ControllerId := CanSMControllerId (ref. to [ECUC_CanSM_00141]) and PduModeRequest := CANIF_TX_OFFLINE_ACTIVE.⌋

SWS_CanSM_00648 requirement

[SWS_CanSM_00648] Upstream requirements: SRS_Can_01158 ⌈If ECU passive is TRUE (ref. to [SWS_CanSM_00646]), then the effect E_TX_ON of the sub state machine CANSM_BSM_S_FULLCOM shall call at 1st place for the config- ured CAN controllers of the CAN network (ref. to [ECUC_CanSM_00141]) the API function CanIf_SetPduMode (ref. to [SWS_CanSM_91002]) with the parameters ControllerId := CanSMControllerId (ref. to [ECUC_CanSM_00141]) and Pdu- ModeRequest := CANIF_TX_OFFLINE_ACTIVE.⌋

SWS_CanSM_00649 requirement

[SWS_CanSM_00649] Upstream requirements: SRS_Can_01158 ⌈When CanSM_SetEcuPassive is called with CanSM_Passive=true; (ref. to

SWS_CanSM_00650 requirement

[SWS_CanSM_00650] Upstream requirements: SRS_Can_01158 ⌈If CanSM_SetEcuPassive called with CanSM_Passive=false; (ref. to

SWS_CanSM_00651 requirement

[SWS_CanSM_00651] ⌈If a communication mode request for the network is present already (ref. to [SWS_CanSM_00635]) and the stored communica- tion mode request is COMM_NO_COMMUNICATION, then the effect E_NOCOM of the CanSM_BSM state machine shall call the API ComM_BusSM_ModeIndica- tion (ref. to [SWS_CanSM_91002]) with the parameters Channel := CanSM- ComMNetworkHandleRef (ref. to [ECUC_CanSM_00161]) and ComMode := COMM_NO_COMMUNICATION.⌋(SRS_Can_01142, SRS_Can_01145)

SWS_CanSM_00652 requirement

[SWS_CanSM_00652] [SRS_ModeMgm_- 09221] The Watchdog Manager shall check the correct sequence of code execution in supervised entities

SWS_CanSM_00653 requirement

[SWS_CanSM_00653] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈If more than one CAN controller belongs to one CAN network and for one of its con- trollers a bus-off is indicated with CanSM_ControllerBusOff, then the CanSM shall stop in context of the effect E_BUS_OFF the other CAN contoller(s) of the CAN network, too.⌋

SWS_CanSM_00654 requirement

Type of error Related error code Error value API service used without module initialization CANSM_ E_ UNINIT 0x01 API service called with wrong pointer CANSM_ E_ PARAM_ POINTER 0x02 API service called with wrong parameter CANSM_ E_ INVALID_ NETWORK_ HANDLE 0x03 API service called with wrong parameter CANSM_ E_ PARAM_ CONTROLLER 0x04 API service called with wrong parameter CANSM_ E_ PARAM_ TRANSCEIVER 0x05 De Init API service called when not all CAN networks are in state CANSM_ NO_ COMMUNICATION CANSM_ E_ NOT_ IN_ NO_ COM 0x0B

SWS_CanSM_00655 requirement

If the sub state machine CANSM_BSM_S_TX_TIMEOUT_EXCEPTION (ref. to Figure 7 - 9) is triggered with T_CC_STARTED_INDICATED, the API CanIf_SetPduMode() shall be called with CANI F_ONLINE

SWS_CanSM_00656 requirement

If the CanSM needs informations about the actual PduMode, the CanSM shall call the API CanIf_GetPduMode to get the current Pdu Mode of the CanIf.

SWS_CanSM_00658 requirement

If the CanSM module is reque sted with the function CanSM_DeInit, this shall trigger the CanSM state machines (ref. to Figure 7 - 1) for all configured CAN Networks (ref. to ECUC_CanSM_00126) with the trig ger CanSM_DeInit.

SWS_CanSM_00660 requirement

If development error detection for the CanSM module is enabled: The function CanSM_DeInit shall raise the error CANSM_E_NOT_IN_NO_COM if not all CAN networks are in state CANSM_NO_COMMUNICATION .

SWS_CanSM_00664 requirement

Type of error Related error code Error value Mode request for a network failed more often than allowed by configuration CANSM_ E_ MODE_ REQUEST_ TIMEOUT 0x0A

SWS_CanSM_00666 requirement

: Bus - off detection Long Description: The bus - off recovery st ate machine of a CAN network has detected a certain amount of sequential bus - offs without successful recovery Recommended DTC: Assigned by DEM Detection Criteria: Fail PRE_FAILED when CanSM_ControllerBusOff is called (T_BUS_OFF/E_BUS_OFF), debouncing to be defined by OEM in DEM Pass A fter successful transmission of a CAN frame (G_BUS_OFF_PASSIVE/E_BUS_OFF_PASSIVE) Secondary Parameters: None Time Required : PRE_FAILED immediately (in error interrupt context), FAILED depending on debounce config uration of DEM Monitor Frequency Continuous MIL illumniation : Assigned by DEM

SWS_CanSM_00667 requirement

[SWS_CanSM_00667] Status: DRAFT Upstream requirements: SRS_Can_01142 ⌈If the CanIf module notifies PN availability for a configured CAN Controller to the CanSM module with the callback function CanSM_ConfirmCtrlPnAvailability (ref. to [SWS_CanSM_91004]), then the CanSM module shall call the API CanNm_ ConfirmPnAvailability (ref. to [SWS_CanSM_91002]) with the related CAN net- work as channel to confirm the PN availability to the CanNm module.⌋

SWS_CanSM_00668 requirement

[SWS_CanSM_00668] Status: DRAFT Upstream requirements: SRS_Can_01145 ⌈The function CanSM_ConfirmCtrlPnAvailability shall notify the CanNm mod- ule (ref. to [SWS_CanSM_00667]), if it is called with a configured Controller as input parameter (ref. to [ECUC_CanSM_00141]).⌋

SWS_CanSM_00669 requirement

[SWS_CanSM_00669] Status: DRAFT Upstream requirements: SRS_Can_01145 ⌈The function CanSM_ConfirmCtrlPnAvailability shall report CANSM_E_- UNINIT to the DET, if the CanSM module is not initialized yet.⌋

SWS_CanSM_00670 requirement

[SWS_CanSM_00670] Status: DRAFT Upstream requirements: SRS_Can_01145 ⌈If the function CanSM_ConfirmCtrlPnAvailability gets a ControllerId, which is not configured (ref. to [ECUC_CanSM_00141]) in the configuration of the CanSM module, it shall call the function Det_ReportError (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_PARAM_CONTROLLER.⌋

SWS_CanSM_91002 requirement

[SWS_CanSM_91002]) with the parameters Channel := CanSM- ComMNetworkHandleRef (ref. to [ECUC_CanSM_00161]) and ComMode := COMM_NO_COMMUNICATION.⌋(SRS_Can_01142, SRS_Can_01145)

SWS_CanSM_91003 requirement

CanIf_SetBaudrate CanIf.h This service shall set the baud rate configuration of the CAN controller. Depending on necessary baud rate modifications the controller might have to reset. Det_ReportError Det.h Service to report development errors. ⌋