RTA Knowledge Base


The WdgM provides a software aliveness monitoring mechanism.

The provided aliveness mechanism consists in a graph of one or more checkpoints.

A checkpoint is a point within the workflow of a software component.

When a software component reaches a checkpoint, the WdgM is notified by the software component itself.

The notification takes place thanks to a S/R interface between the software component and the WdgM.

For a software component, reaching a checkpoint means writing into the R-port of the interface to the WdgM.

The value written in the port is the couple: Supervised Entity Id and Checkpoint ID.

The Supervised Entity ID is unique for each software component monitored by the WdgM.

A supervised entity has a Local Supervision Status.

A Local Supervision Status can take the following values:

  • WDGM_LOCAL_STATUS_OK
  • WDGM_LOCAL_STATUS_FAILED
  • WDGM_LOCAL_STATUS_EXPIRED
  • WDGM_LOCAL_STATUS_DEACTIVATED.

The chain of containers of the WdgM where we find the IDs is: WdgMGeneral → WdgMSupervisedEntity → WdgMCheckpoint.

How to configure a Supervised Entity

Within the software component

In the EcucParamdef, to the General container, add the parameter like SUSD_WdgM_CheckPointId.

This Checkpoint ID refers to the parameter WdgMInternalCheckpointInitialRef in the WdgMSupervisedEntity container.

The parameter should be mandatory, so a check in the Validate should be present.

In the Swcd, add a Synchronous Server Call Point like SSCP_SUSD_WdgM_AliveSupervision.

The context of the R-port should be something like /SUM_SUSD/SUSD/RP_SUSD_WdgM_AliveSupervision.

The Target Required Operation should be something like /AUTOSAR_WdgM/WdgM_AliveSupervision/CheckpointReached (AR 4.2) or  /AUTOSAR_WdgM/WdgM_LocalSupervision/CheckpointReached (AR 4.3)

In the EcucValues, add a Numerical Parameter defined like /ASW_SUM_SUSD/SUSD/SUSDGeneral/SUSD_WdgM_CheckPointId and equal to the Checkpoint ID.

In the C code, add an RTE Call to write the R-port of the interface with the WdgM.

Within the WdgM (4.2.2)

In the Swcd, add an Implementation Data Type that refers to /AUTOSAR_PlatformTypes/ImplementationDataTypes/uint8.

Add also a C/S operation called CheckpointReached that takes as input argument CheckpointID of type /AUTOSAR_WdgM/PortInterfaces/WdgM_CheckpointIdType and returns /AUTOSAR_WdgM/PortInterfaces/WdgM_AliveSupervision/E_NOT_OK as possible Error.

Add also a P-port of the interface /AUTOSAR_WdgM/PortInterfaces/WdgM_AliveSupervision and associated to 2 operations: /AUTOSAR_WdgM/PortInterfaces/WdgM_AliveSupervision/UpdateAliveCounter and /AUTOSAR_WdgM/PortInterfaces/WdgM_AliveSupervision/CheckpointReached.

To the IB WdgM_InternalBehaviour, add also the Operation OIE_CheckpointReached_0: associated to the Event /AUTOSAR_WdgM/PortInterfaces/WdgM/WdgM_InternalBehaviour/CheckpointReached, related to the P-port /AUTOSAR_WdgM/PortInterfaces/WdgM/Alive0 and associated to the Operation /AUTOSAR_WdgM/PortInterfaces/WdgM_AliveSupervision/CheckpointReached.

Add also the Runnable CheckpointReached, with the symbol WdgM_CheckpointReached.

WdgM_Cfg_SWCD.arxml

SUM_SUSD_EcucParamdef.arxml

SUM_SUSD_Int.c

SUSD_Cfg_Swcd_arxml (1).xpt



With the WdgM (4.3.x)

For WdgM (AR 4.3.x), things are quite the same with 4.2.2 except WdgM_AliveSupervision is changed to WdgM_LocalSupervision. and the operation CheckpointReached does not take any input.

This means that we will not care about Checkpoint ID in SUMs configuration and the RTE calls will automatically fill  Supervised Entity Identifiers and Checkpoint Identifiers.