DEENESPTFRRUARHIKOZHNL

Synchronized Time-Base Manager (StbM)

ModulStbM (Synchronized Time-Base Manager)
BSW-Modul-ID160
Standard-Header#include "StbM.h"
SWS-SpezifikationAUTOSAR_CP_SWS_SynchronizedTimeBaseManager.pdf, AUTOSAR_SWS_SynchronizedTimeBaseManager.pdf
Umfang346 Records · 15 Snippets
ClusterZeitsynchronisation

Synchronized Time-Base Manager (StbM)

AUTOSAR Classic System Services-Modul Synchronized Time-Base Manager (StbM, Spezifikation: AUTOSAR_CP_SWS_SynchronizedTimeBaseManager.pdf, AUTOSAR_SWS_SynchronizedTimeBaseManager.pdf).

Funktionen — Übersicht

Typen — Übersicht

Anforderungen — Übersicht

Funktionen & Typen — Detailansicht

دالة StbM_Init [SWS_StbM_00052] 📄 PDF

void StbM_Init(const StbM_ConfigType* ConfigPtr);

Initializes the Synchronized Time - base Manager

دالة StbM_MainFunction [SWS_StbM_00057] 📄 PDF

void StbM_MainFunction(void);

This function will be called cyclically by a task body provided by the BSW Schedule. It will invoke the triggered customers and synchronize the referenced OS Schedule Tables.

دالة StbM_GetCurrentTime [SWS_StbM_00195] 📄 PDF

Std_ReturnType StbM_GetCurrentTime(StbM_SynchronizedTimeBaseType timeBaseId, StbM_TimeStampType* timeStamp, StbM_UserDataType* userData);

Returns a time value (Local Time Base derived from Global Time Base) in standard format. Note: This API shall be called with locked interrupts / within an Exclusive Area to prevent interruption (i.e., the risk that the time stamp is outdated on return of the function call).

دالة StbM_GetCurrentTimeExtended [SWS_StbM_00200] 📄 PDF

Std_ReturnType StbM_GetCurrentTimeExtended(StbM_SynchronizedTimeBaseType timeBaseId, StbM_TimeStampExtendedType* timeStamp, StbM_UserDataType* userData);

Returns a time value (Local Time Base derived from Global Time Base) in extended format. Note: This API shall be called with locked interrupts / within an Exclusive Area to prevent interruption (i.e., the risk that the time stamp is outdated on return of the function call).

دالة StbM_SetGlobalTime [SWS_StbM_00213] 📄 PDF

Std_ReturnType StbM_SetGlobalTime(StbM_SynchronizedTimeBaseType timeBaseId, const StbM_TimeStampType* timeStamp, const StbM_UserDataType* userData);

Allows the Customers to set the new global time that has to be valid for the system, which will be sent to the busses. This function will be used if a Time Master is present in this ECU.

دالة StbM_SetUserData [SWS_StbM_00218] 📄 PDF

Std_ReturnType StbM_SetUserData(StbM_SynchronizedTimeBaseType timeBaseId, const StbM_UserDataType* userData);

Allows the Customers to set the new User Data that has to be valid for the system, which will be sent to the busses.

دالة StbM_SetOffset [SWS_StbM_00223] 📄 PDF

Std_ReturnType StbM_SetOffset(StbM_SynchronizedTimeBaseType timeBaseId, const StbM_TimeStampType* timeStamp, const StbM_UserDataType* userData);

Allows the Customers and the Timesync Modules to set the Offset Time and the User Data.

دالة StbM_GetOffset [SWS_StbM_00228] 📄 PDF

Std_ReturnType StbM_GetOffset(StbM_SynchronizedTimeBaseType timeBaseId, StbM_TimeStampType* timeStamp, StbM_UserDataType* userData);

Allows the Timesync Modules to get the current Offset Time and User Data.

دالة StbM_BusSetGlobalTime [SWS_StbM_00233] 📄 PDF

Std_ReturnType StbM_BusSetGlobalTime(StbM_SynchronizedTimeBaseType timeBaseId, const StbM_TimeStampType* globalTimePtr, const StbM_UserDataType* userDataPtr, const StbM_MeasurementType* measureDataPtr, const StbM_VirtualLocalTimeType* localTimePtr);

Allows the Time Base Provider Modules to forward a new Global Time tuple (i.e., Rx Time Tuple) to the Stb M.

دالة StbM_GetTimeBaseStatus [SWS_StbM_00263] 📄 PDF

Std_ReturnType StbM_GetTimeBaseStatus(StbM_SynchronizedTimeBaseType timeBaseId, StbM_TimeBaseStatusType* syncTimeBaseStatus, StbM_TimeBaseStatusType* offsetTimeBaseStatus);

Returns detailed status information for a Synchronized (or Pure Local) Time Base and, if called for an Offset Time Base, for the Offset Time Base and the underlying Synchronized Time Base.

دالة StbM_StartTimer [SWS_StbM_00272] 📄 PDF

Std_ReturnType StbM_StartTimer(StbM_SynchronizedTimeBaseType timeBaseId, StbM_CustomerIdType customerId, const StbM_TimeStampType* expireTime);

Sets a time value, which the Time Base value is compared against

دالة <Customer>_TimeNotificationCallback<Time Base> [SWS_StbM_00273] 📄 PDF

Std_ReturnType <Customer>_TimeNotificationCallback<Time Base>(StbM_TimeDiffType deviationTime);

This callback notifies the <Customer>, when a Time Base reaches the time value set by Stb M_ Start Timer for the <Time Base>

دالة StatusNotificationCallback<Time Base> [SWS_StbM_00285] 📄 PDF

Std_ReturnType StatusNotificationCallback<Time Base>(StbM_TimeBaseNotificationType eventNotification);

The callback notifies the customers, when a <Time Base> related event occurs, which is enabled by the notification mask

دالة StbM_GetSyncTimeRecordHead [SWS_StbM_00319] 📄 PDF

Std_ReturnType StbM_GetSyncTimeRecordHead(StbM_SynchronizedTimeBaseType timeBaseId, StbM_SyncRecordTableHeadType* syncRecordTableHead);

Accesses to the recorded snapshot data Header of the table belonging to the Synchronized Time Base. Available v ia Stb M.h

دالة SyncTimeRecordBlockCallback<Time Base> [SWS_StbM_00322] 📄 PDF

Std_ReturnType SyncTimeRecordBlockCallback<Time Base>(const StbM_SyncRecordTableBlockType* syncRecordTableBlock);

Provides a recorded snapshot data block of the measurement data table belonging to the Synchronized Time Base.

دالة StbM_GetOffsetTimeRecordHead [SWS_StbM_00325] 📄 PDF

Std_ReturnType StbM_GetOffsetTimeRecordHead(StbM_SynchronizedTimeBaseType timeBaseId, StbM_OffsetRecordTableHeadType* offsetRecordTableHead);

Accesses to the recorded snapshot data Header of the table belonging to the Offset Time Base.

دالة OffsetTimeRecordBlockCallback<Time Base> [SWS_StbM_00328] 📄 PDF

Std_ReturnType OffsetTimeRecordBlockCallback<Time Base>(const StbM_OffsetRecordTableBlockType* offsetRecordTableBlock);

Provides a recorded snapshot data block of the measurement data table belonging to the Offset Time Base.

دالة StbM_TriggerTimeTransmission [SWS_StbM_00346] 📄 PDF

Std_ReturnType StbM_TriggerTimeTransmission(StbM_SynchronizedTimeBaseType timeBaseId);

Called by the <Upper Layer> to force the Times ync Modules to transmit the current Time Base again due to an incremented time Base Update Counter[time Base Id]

دالة StbM_GetTimeBaseUpdateCounter [SWS_StbM_00347] 📄 PDF

uint8 StbM_GetTimeBaseUpdateCounter(StbM_SynchronizedTimeBaseType timeBaseId);

Allows the Timesync Modules to detect, whether a Time Base should be transmitted immediately in the subsequent <Bus>TSyn_ Main Function() cycle.

دالة StbM_GetRateDeviation [SWS_StbM_00378] 📄 PDF

Std_ReturnType StbM_GetRateDeviation(StbM_SynchronizedTimeBaseType timeBaseId, StbM_RateDeviationType* rateDeviation);

Returns value of the current rate deviation of a Time Base

دالة StbM_UpdateGlobalTime [SWS_StbM_00385] 📄 PDF

Std_ReturnType StbM_UpdateGlobalTime(StbM_SynchronizedTimeBaseType timeBaseId, const StbM_TimeStampType* timeStamp, const StbM_UserDataType* userData);

Allows the Customers to set the Global Time that will be sent to the buses. This function will be used if a Time Master is present in this ECU. Using Update Global Time will not lead to an immediate transmission of the Global Time.

دالة StbM_SetRateCorrection [SWS_StbM_00390] 📄 PDF

Std_ReturnType StbM_SetRateCorrection(StbM_SynchronizedTimeBaseType timeBaseId, StbM_RateDeviationType rateDeviation);

Allows to set the rate of a Synchronized Time Base (being either a Pure Local Time Base or not).

دالة StbM_CanSetSlaveTimingData [SWS_StbM_00484] 📄 PDF

Std_ReturnType StbM_CanSetSlaveTimingData(StbM_SynchronizedTimeBaseType timeBaseId, const StbM_CanTimeSlaveMeasurementType* measureDataPtr);

Allows the Can TSyn Module to forward CAN specific details to the Stb M. Tags: atp.Status=draft

دالة StbM_FrSetSlaveTimingData [SWS_StbM_00485] 📄 PDF

Std_ReturnType StbM_FrSetSlaveTimingData(StbM_SynchronizedTimeBaseType timeBaseId, const StbM_FrTimeSlaveMeasurementType* measureDataPtr);

Allows the Fr TSyn Module to forward Flexray specific details to the Stb M. Tags: atp.Status=draft

دالة StbM_EthSetSlaveTimingData [SWS_StbM_00486] 📄 PDF

Std_ReturnType StbM_EthSetSlaveTimingData(StbM_SynchronizedTimeBaseType timeBaseId, const StbM_EthTimeSlaveMeasurementType* measureDataPtr);

Allows the Eth TSyn Module to forward Ethernet specific details to the Stb M. Tags: atp.Status=draft

دالة StbM_CanSetMasterTimingData [SWS_StbM_00490] 📄 PDF

Std_ReturnType StbM_CanSetMasterTimingData(StbM_SynchronizedTimeBaseType timeBaseId, const StbM_CanTimeMasterMeasurementType* measureDataPtr);

Provides CAN Timesyn module specific data for a Time Master to the Stb M. Tags: atp.Status=draft

دالة StbM_FrSetMasterTimingData [SWS_StbM_00491] 📄 PDF

Std_ReturnType StbM_FrSetMasterTimingData(StbM_SynchronizedTimeBaseType timeBaseId, const StbM_FrTimeMasterMeasurementType* measureDataPtr);

Provides Flexray Timesyn module specific data for a Time Master to the Stb M. Tags: atp.Status=draft

دالة StbM_EthSetMasterTimingData [SWS_StbM_00492] 📄 PDF

Std_ReturnType StbM_EthSetMasterTimingData(StbM_SynchronizedTimeBaseType timeBaseId, const StbM_EthTimeMasterMeasurementType* measureDataPtr);

Provides Ethernet Timesyn module specific data for a Time Master to the Stb M. Tags: atp.Status=draft

دالة StbM_EthSetPdelayInitiatorData [SWS_StbM_00496] 📄 PDF

Std_ReturnType StbM_EthSetPdelayInitiatorData(StbM_SynchronizedTimeBaseType timeBaseId, const StbM_PdelayInitiatorMeasurementType* measureDataPtr);

- Tags: atp.Status=draft

دالة StbM_EthSetPdelayResponderData [SWS_StbM_00500] 📄 PDF

Std_ReturnType StbM_EthSetPdelayResponderData(StbM_SynchronizedTimeBaseType timeBaseId, const StbM_PdelayResponderMeasurementType* measureDataPtr);

- Tags: atp.Status=draft

دالة StbM_GetMasterConfig [SWS_StbM_91002] 📄 PDF

Std_ReturnType StbM_GetMasterConfig(StbM_SynchronizedTimeBaseType timeBaseId, StbM_MasterConfigType* masterConfig);

Indicates if the functionality for a system wide master (e.g. Stb M_ Set Global Time) for a given Time Base is ava ilable or not.

دالة StbM_BusGetCurrentTime [SWS_StbM_91005] 📄 PDF

Std_ReturnType StbM_BusGetCurrentTime(StbM_SynchronizedTimeBaseType timeBaseId, StbM_TimeStampType* globalTimePtr, StbM_VirtualLocalTimeType* localTimePtr, StbM_UserDataType* userData);

Returns the current Time Tuple, status and User Data of the Time Base.

دالة StbM_GetCurrentVirtualLocalTime [SWS_StbM_91006] 📄 PDF

Std_ReturnType StbM_GetCurrentVirtualLocalTime(StbM_SynchronizedTimeBaseType timeBaseId, StbM_VirtualLocalTimeType* localTimePtr);

Returns the Virtual Local Time of the referenced Time Base.

دالة StbM_GetBusProtocolParam [SWS_StbM_91007] 📄 PDF

Std_ReturnType StbM_GetBusProtocolParam(StbM_SynchronizedTimeBaseType timeBaseId, StbM_ProtocolParamType* protocolParam);

This API is used to get bus specific parameters from received Follow_ Up message

دالة StbM_SetBusProtocolParam [SWS_StbM_91008] 📄 PDF

Std_ReturnType StbM_SetBusProtocolParam(StbM_SynchronizedTimeBaseType timeBaseId, const StbM_ProtocolParamType* protocolParam);

This API is used to set bus specific parameters of a Time Master

دالة StbM_CloneTimeBase [SWS_StbM_91012] 📄 PDF

Std_ReturnType StbM_CloneTimeBase(StbM_SynchronizedTimeBaseType timeBaseId, StbM_CloneConfigType cloneCfg, StbM_TimeBaseStatusType statusMask, StbM_TimeBaseStatusType statusValue);

Copies Time Base data (current time, user data, rate corrction) from Source Time Base to Destination Time Base. The Source Time Base is identified by the parameter Stb MSource Time Base (ECUC_ Stb M_00074). Stb?M_?Clone Time Base behaves synchronuously (immediate copy of Time Base) if DEFERRED_ COPY flag of parameter clone Cfg is set to true, otherwise it behaves asynchronuously (deferred copy of Time Base). Note: Even, if conf igured to behave synchronuously (immediate copy of Time Base), actual transmission of cloned Time Base value on the bus occurs asynchronuously.

دالة StbM_GetTxFreshnessTruncData [SWS_StbM_91014] 📄 PDF

Std_ReturnType StbM_GetTxFreshnessTruncData(uint16 StbMFreshnessValueId, uint8* StbMFreshnessValue, uint32* StbMFreshnessValueLength, uint8* StbMTruncatedFreshnessValue, uint32* StbMTruncatedFreshnessValueLength);

This interface is used by the StbM to obtain the current freshness value. The interface function provides also the truncated freshness transmitted in the secured time sync message. Tags: atp.Status=draft

دالة StbM_GetRxFreshness [SWS_StbM_91016] 📄 PDF

Std_ReturnType StbM_GetRxFreshness(uint16 StbMFreshnessValueId, const uint8* StbMTruncatedFreshnessValue, uint32 StbMTruncatedFreshnessValueLength, uint16 StbMAuthVerifyAttempts, uint8* StbMFreshnessValue, uint32* StbMFreshnessValueLength);

This interface is used by the StbM to query the current freshness value. Tags: atp.Status=draft

دالة StbM_GetTxFreshness [SWS_StbM_91018] 📄 PDF

Std_ReturnType StbM_GetTxFreshness(uint16 StbMFreshnessValueId, uint8* StbMFreshnessValue, uint32* StbMFreshnessValueLength);

This API returns the freshness value from the Most Significant Bits in the first byte, of the Freshness array, in big endian format. Tags: atp.Status=draft

دالة SPduTxConfirmationFct [SWS_StbM_91022] 📄 PDF

void SPduTxConfirmationFct(uint16 StbMFreshnessValueId);

This interface is used by the StbM to indicate that the Secured Time Synchronization Message has been initiated for transmission. Tags: atp.Status=draft

دالة GetTxFreshnessTruncDataFct [SWS_StbM_91023] 📄 PDF

Std_ReturnType GetTxFreshnessTruncDataFct(uint16 StbMFreshnessValueId, uint8* StbMFreshnessValue, uint32* StbMFreshnessValueLength, uint8* StbMTruncatedFreshnessValue, uint32* StbMTruncatedFreshnessValueLength);

This interface is used by the StbM to obtain the current freshness value. The interface function provides also the truncated freshness transmitted in the secured time sync message. Tags: atp.Status=draft

دالة GetTxFreshnessFct [SWS_StbM_91024] 📄 PDF

Std_ReturnType GetTxFreshnessFct(uint16 StbMFreshnessValueId, uint8* StbMFreshnessValue, uint32* StbMFreshnessValueLength);

This API returns the freshness value from the Most Significant Bits in the first byte, of the Freshness array, in big endian format Tags: atp.Status=draft

دالة GetRxFreshnessFct [SWS_StbM_91025] 📄 PDF

Std_ReturnType GetRxFreshnessFct(uint16 StbMFreshnessValueId, const uint8* StbMTruncatedFreshnessValue, uint32 StbMTruncatedFreshnessValueLength, uint16 StbMAuthVerifyAttempts, uint8* StbMFreshnessValue, uint32* StbMFreshnessValueLength);

This interface is used by the StbM to query the current freshness value.

دالة StbM_GetCurrentSafeTime [SWS_StbM_91027] 📄 PDF

Std_ReturnType StbM_GetCurrentSafeTime(StbM_SynchronizedTimeBaseType timeBaseId, StbM_TimeTripleType* timeTriple, StbM_UserDataType* userData);

Returns a time triple (Local Time, Fallback Local Time, Global time and timebase status) and user data details. Note: This API shall be called with locked interrupts / within an Exclusive Area to prevent interruption (i.e., the risk that the time stamp is outdated on return of the function call). Tags: atp.Status=draft ▽ △

دالة StbM_GetFallbackVirtualLocalTime [SWS_StbM_91029] 📄 PDF

Std_ReturnType StbM_GetFallbackVirtualLocalTime(StbM_SynchronizedTimeBaseType timeBaseId, StbM_VirtualLocalTimeType* localTimePtr);

Returns the Fallback Virtual Local Time of the referenced Time Base. Tags: atp.Status=draft

دالة StbM_SetCloningOffset [SWS_StbM_91030] 📄 PDF

Std_ReturnType StbM_SetCloningOffset(StbM_SynchronizedTimeBaseType timeBaseId, const StbM_TimeStampType* timeOffset);

Sets an offset time that will be added to the synchronized time when cloning a Time Base.

نوع StbM_SynchronizedTimeBaseType [SWS_StbM_00142] 📄 PDF

Variables of this type are used to represent the kind of synchronized time - base. Variation --

نوع StbM_TimeBaseStatusType [SWS_StbM_00239] 📄 PDF

bit TIMEOUT 0x01 Bit 0 (LSB): 0x00: No Timeout on receiving Synchronisation Messages 0x01: Timeout on receiving Synchronisation Messages bit SYNC_ TO_ GATEWAY 0x04 Bit 2 0x00: Local Time Base is synchronous to Global Time Master 0x04: Local Time Base updates are based on a Time Gateway below the Global Time Master bit GLOBAL_ TIME_ BASE 0x08 Bit 3 0x00: Local Time Base is based on Local Time Base reference clock on ly (never synchronized with Global Time Base) 0x08: Local Time Base was at least synchronized with Global Time Base one time bit TIMELEAP_ FUTURE 0x10 Bit 4 0x00: No leap into the future within the received time for Time Base 0x10: Leap into the future w ithin the received time for Time Base exceeds a configured threshold bit TIMELEAP_ PAST 0x20 Bit 5 0x00: No leap into the past within the received time for Time Base 0x20: Leap into the past within the received time for Time Base exceeds a configured thr eshold Description Bit 1, 6, and 7 are always 0 (reserved for future usage) Variables of this type are used to express if and how a Local Time Base is synchronized to the Global Time Master. The type is a bitfield of individual status bits, although not e very combination is possible, i.e. any of the bits TIMEOUT, TIMELEAP_ FUTURE, TIMELEAP_ PAST and SYNC_ TO_ GATEWAY can only be set if the GLOBAL_ TIME_ BASE bit is set. Variation --

نوع StbM_TimeStampType [SWS_StbM_00241] 📄 PDF

Variables of this type are used for expressing time stamps including relative time and absolute calendar time. The absolute time starts from 1970 - 01 - 01. 0 to 281474976710655s == 3257812230d [0x FFFF FFFF FFFF] 0 to 999999999ns [0x3B9A C9FF] invalid value i n nanoseconds: [0x3B9A CA00] to [0x3FFF FFFF] Bit 30 and 31 reserved, default: 0 Variation --

نوع StbM_TimeStampExtendedType [SWS_StbM_00242] 📄 PDF

Variables of this type are used for expressing time stamps including relative time and absolute calendar time. The absolute time starts from 1970 - 01 - 01. Variation --

نوع StbM_TimeBaseNotificationType [SWS_StbM_00287] 📄 PDF

bit EV_ GLOBAL_ TIME 0x01 Bit 0 (LSB): 0: synchronization to global time master not changed 1: GLOBAL_ TIME_ BASE in Stb M_ Time Base Status Type has changed from 0 to 1 bit EV_ TIMEOUT_ OCCURRED 0x02 Bit 1: 1: TIMEOUT bit in time Base Status has changed from 0 to 1 0: otherwise bit EV_ TIMEOUT_ REMOVED 0x04 Bit 2 1: TIMEOUT bit in time Base Status has changed from 1 to 0 0: otherwise bit EV_ TIMELEAP_ FUTURE 0x08 Bit 3 1: TIMELEAP_ FUTURE bit in time Base Status has changed from 0 to 1 0: otherwise bit EV_ TIMELEAP_ FUTURE_ REMOVED 0x10 Bit 4 1: TIMELEAP_ FUTURE bit in time Base Status has changed from 1 to 0 0: otherwise bit EV_ TIMELEAP_ PAST 0x20 Bit 5 1: TI MELEAP_ PAST bit in time Base Status has changed from 0 to 1 0: otherwise bit EV_ TIMELEAP_ PAST_ REMOVED 0x40 Bit 6 1: TIMELEAP_ PAST bit in time Base Status has changed from 1 to 0 0: otherwise bit EV_ SYNC_ TO_ SUBDOMAIN 0x80 Bit 7 1: SYNC_ TO_ GATEWAY bit in time Base Status has changed from 0 to 1 0: otherwise bit EV_ SYNC_ TO_ GLOBAL_ MASTER 0x100 Bit 8 1: SYNC_ TO_ GATEWAY bit of Time Domain changes from 1 to 0 0: otherwise bit EV_ RESYNC 0x0200 Bit 9: 1: A synchronization of the local time to the valid Global Time value has occured 0: No resynchronization event occured bit EV_ RATECORRECTION 0x0400 Bit 10 1: a valid rate correction has been calculated (not beyond limits) 0: No rate correction c alculated Description The Stb M_ Time Base Notification Type type defines a number of global time related events. The type definition is used for storing the events in the status variable Notification Events and for setting the mask variable Notification Mask which defines a subset of events for which an interrupt request shall be raised. Variation --

نوع StbM_TimeDiffType [SWS_StbM_00300] 📄 PDF

Variables of this type are used to express time differences / offsets as signed values in in nanoseconds Variation --

نوع StbM_RateDeviationType [SWS_StbM_00301] 📄 PDF

Variables of this type are used to express a rate deviation in ppm. Variation --

نوع StbM_TimeStampShortType [SWS_StbM_00482] 📄 PDF

Variables of this type are used for expressing time stamps with a limited range including relative time and absolute calendar time. The absolute time starts from 1970 - 01 - 01. 0 to 4.294.967.295 s ~ 136 years 0 to 999999999ns [0x3B9A C9FF] invalid value in nanoseconds: [0x3B9A CA00] to [0x3FFF FFFF] Bit 30 and 31 reserved, default: 0 Variation --

نوع StbM_PortIdType [SWS_StbM_00483] 📄 PDF

Structure which contains port identity data Variation ({ecuc(Eth TSyn/ Eth TSyn General/ Eth TSyn Time Validation Support)} == True)

نوع StbM_EthTimeMasterMeasurementType [SWS_StbM_00504] 📄 PDF

Structure with detailed data for Time Validation of the Time Master on Ethernet Variation ({ecuc(Eth TSyn/ Eth TSyn General/ Eth TSyn Time Validation Support)} == True)

نوع StbM_FrTimeMasterMeasurementType [SWS_StbM_00505] 📄 PDF

Structure with detailed data for Time Validation of the Time Master on Flexray Variation ({ecuc(Fr TSyn/ Fr TSyn General/ Fr TSyn Time Validation Support)} == True)

نوع StbM_EthTimeSlaveMeasurementType [SWS_StbM_00506] 📄 PDF

Structure with detailed data for Time Validation of the Time Slave on Ethernet Variation ({ecuc(Eth TSyn/ Eth TSyn General/ Eth TSyn Time Validation Support)} == True)

نوع StbM_FrTimeSlaveMeasurementType [SWS_StbM_00507] 📄 PDF

Structure with detailed data for Time Validation of the Time Slave on Flexray Variation ({ecuc(Fr TSyn/ Fr TSyn General/ Fr TSyn Time Validation Support)} == True)

نوع StbM_PdelayInitiatorMeasurementType [SWS_StbM_00508] 📄 PDF

Structure with detailed timing data for the p Delay Initiator Variation ({ecuc(Eth TSyn/ Eth TSyn General/ Eth TSyn Time Validation Support)} == True)

نوع StbM_PdelayResponderMeasurementType [SWS_StbM_00509] 📄 PDF

Structure with detailed timing d ata for the p Delay Responder Variation ({ecuc(Eth TSyn/ Eth TSyn General/ Eth TSyn Time Validation Support)} == True)

نوع StbM_CanTimeSlaveMeasurementType [SWS_StbM_00510] 📄 PDF

Structure with detailed timing data for the Time Slave on CAN Variation ({ecuc(Can TSyn/ Can TSyn General/ Can TSyn Time Validation Support)} == True)

نوع StbM_CanTimeMasterMeasurementType [SWS_StbM_00511] 📄 PDF

Structure with detailed data for Time Validation of the Time Master on CAN Variation ({ecuc(Can TSyn/ Can TSyn General/ Can TSyn Time Validation Support)} == True)

نوع StbM_MasterConfigType [SWS_StbM_91001] 📄 PDF

This type indicates if an ECU is configured for a system wide master for a given Time Base is available or not. Variation --

نوع StbM_VirtualLocalTimeType [SWS_StbM_91003] 📄 PDF

Variables of this type store time stamps of the Virtual Local Time. The unit is nanoseconds. Variation --

نوع StbM_ProtocolParamType [SWS_StbM_91010] 📄 PDF

This structure defines Time Sync protocol specific parameters relevant for the individual Time Sync modules (only Eth TSyn specific parameters are known so far) Variation --

نوع StbM_CloneConfigType [SWS_StbM_91011] 📄 PDF

bit DEFERRED_ COPY 0x01 True: copy of time information to destination is deferred until Source Time base is updated next time by <bus> TSyn module False: time information copied immediately to Destination Time Base bit IMMEDIATE_ TX 0x02 True: time information is transmitted on destination bus immediately after cloning False: time information is transmitted on destination bus only on ne xt cyclic transmission after cloning bit APPLY_ RATE 0x04 True: Rate correction value of SOurce Time Base shall be applied to Destination Time Base Description Bitfield to configure the cloning process. Bit 3 .. 7 are always 0 (reserved for future usage). Variation --

requirement SWS_StbM_00020 [SWS_StbM_00020] 📄 PDF

The Synchronized Time - Base Manager must be able to interact w ith the OS as T riggered C ustome r . The module calls the OS API for synchronizing OS ScheduleTables.

requirement SWS_StbM_00022 [SWS_StbM_00022] 📄 PDF

The Synchronized Time - Base Manager shall provide means to configure the T ime B ase to which the OS Sched uleTable should be synchronized (see container ECUC_StbM_00004 : StbMTriggeredCustomer ) .

requirement SWS_StbM_00031 [SWS_StbM_00031] 📄 PDF

[SWS_StbM_00031] Upstream requirements: RS_TS_00025 ⌈If a Triggered Customer is configured (refer to StbMTriggeredCustomer), the Syn- chronized Time-Base Manager shall monitor the cyclic execution of the StbM_Main- Function. This is to guarantee cyclic synchronization of OS schedule tables.⌋

requirement SWS_StbM_00041 [SWS_StbM_00041] 📄 PDF

Type of error Related error code Error value API called with invalid time base ID STBM_ E_ PARAM 0x0A API called while Stb M is not initialized STBM_ E_ UNINIT 0x0B API called with invalid pointer in parameter list STBM_ E_ PARAM_ POINTER 0x10 Stb M_ Init called with an invalid configuration pointer STBM_ E_ INIT_ FAILED 0x11 API disabled by configuration STBM_ E_ SERVICE_ DISABLED 0x12 API called with invalid timestamp STBM_ E_ PARAM_ TIMESTAMP 0x25 API called with invalid user data STBM_ E_ PARAM_ USERDATA 0x26

requirement SWS_StbM_00051 [SWS_StbM_00051] 📄 PDF

Module Header File Imported Type Can Can_ General Types.h Can _ Time Stamp Type (draft) Eth Eth_ General Types.h Eth _ Time Stamp Qual Type Eth_ General Types.h Eth _ Time Stamp Type Gpt Gpt.h Gpt _ Channel Type Gpt.h Gpt _ Value Type Os Os.h Schedule Table Status Ref Type Os.h Schedule Table Status Type Os.h Schedule Table Type Os.h Status Type Os.h Tick Ref Type Os.h Tick Type Rte_ Os_ Type.h Counter Type Std Std_ Types.h Std _ Return Type Std_ Types.h Std _ Version Info Type

requirement SWS_StbM_00058 [SWS_StbM_00058] 📄 PDF

Det _ Report - Error Det.h Service to report development errors. Eth T Syn _ Get - Protocol Param Eth TSyn.h This API is used to read Follow Up information TLV parameters from received Follow_ Up message. Eth T Syn _ Set - Protocol Param Eth TSyn.h This API is used to set Follow Up information TLV parameters of a Follow_ U p message prior transmission. The API is called within Stb M_ Set Bus Protocol Param which provides the content of the structure protocol Param.

requirement SWS_StbM_00059 [SWS_StbM_00059] 📄 PDF

Can If _ Get - Current Time (draft) Can If.h This service calls the corresponding CAN Driver service to retrieve the current time value out of the HW registers. Tags: atp.Status=draft Eth If _ Get - Current Time Eth If.h Returns a time value out of the HW registers according to the capability of the HW. Is the HW resolution is lower than the Eth_ Time Stamp Type resolution resp. range, the remaining bits will be filled with 0. Important Note: Eth If_ Get Current Time may b e called within an exclusive area. Get Counter - Value Os.h This service reads the current count value of a counter (returning either the hardware timer ticks if counter is driven by hardware or the software ticks when user drives counter). Get Elapsed - Value Os.h This service gets the number of ticks between the current tick value and a previously read tick value. Get Schedule - Table Status Os.h This service queries the state of a schedule table (also with respect to synchronization). Gpt _ Get Time - Elapsed Gpt.h Returns the time already elapsed. Gpt _ Start Timer Gpt.h Starts a timer channel. Sync Schedule - Table Os.h This service provides the schedule table with a synchronization count and start synchronization.

requirement SWS_StbM_00077 [SWS_StbM_00077] 📄 PDF

[SWS_StbM_00077] Upstream requirements: RS_TS_00032 ⌈The Synchronized Time-Base Manager shall synchronize OS ScheduleTables only when the associated Synchronized Time Base is synchronized, i.e., if • GLOBAL_TIME_BASE = 1 and • TIMEOUT = 0 and • SYNC_TO_GATEWAY = 0 and • TIMELEAP_FUTURE = 0 and • TIMELEAP_PAST = 0 ⌋

requirement SWS_StbM_00084 [SWS_StbM_00084] 📄 PDF

Customers of type T riggered C ustomer shall be invoked periodically by the Synchronized Time - Base Manager.

requirement SWS_StbM_00092 [SWS_StbM_00092] 📄 PDF

[SWS_StbM_00092] Upstream requirements: SRS_BSW_00429, RS_TS_00032 ⌈The Synchronized Time-Base Manager shall check the OS for the status of the OS ScheduleTable by calling GetScheduleTableStatus before performing the syn- chronization. The Synchronized Time-Base Manager shall synchronize only OS ScheduleTables that are in one of the states • SCHEDULETABLE_WAITING, • SCHEDULETABLE_RUNNING or • SCHEDULETABLE_RUNNING_AND_SYNCHRONOUS. ⌋ Note: The Synchronized Time-Base Manager should ignore possible errors caused by the sequential execution of 1. getting OS ScheduleTable status and 2. performing the synchronization (e.g., someone else might have called a service to stop the OS ScheduleTable in the meantime).

requirement SWS_StbM_00093 [SWS_StbM_00093] 📄 PDF

The triggering period S tbM T riggered C ustomerPeriod (refer to ECUC_StbM_00020 : ) shall be configurable for each T riggered C ustomer .

requirement SWS_StbM_00094 [SWS_StbM_00094] 📄 PDF

[SWS_StbM_00094] Upstream requirements: SRS_BSW_00386, SRS_BSW_00337 ⌈If development error detection for the StbM module is enabled the function StbM_ GetVersionInfo shall raise the development error STBM_E_PARAM_POINTER and return if versioninfo is a NULL pointer (NULL_PTR).⌋

requirement SWS_StbM_00100 [SWS_StbM_00100] 📄 PDF

A static status variable denoting if the StbM is initialized shall be initialized with value 0 before any APIs of the StbM are called.

requirement SWS_StbM_00107 [SWS_StbM_00107] 📄 PDF

If OS is configured as triggered customer, t he function StbM_MainFunction shall synch r onize the referenced OS ScheduleTable .

requirement SWS_StbM_00121 [SWS_StbM_00121] 📄 PDF

StbM_Init shall set the static status variable to a value not equa l to 0.

requirement SWS_StbM_00170 [SWS_StbM_00170] 📄 PDF

On invocation of StbM _ Init() each configured Time Base (refer to StbMSynchronizedTimeBase , ECUC_StbM_00003 : ) shall be initialized with zero and its synchronization status timeBaseStatus shall be set to 0x00 .

requirement SWS_StbM_00171 [SWS_StbM_00171] 📄 PDF

For each Time Base configured to be stored non - volatile ( StbMStoreTimebaseNonVolatile == STORAGE_AT_SHUTDOWN ), the Time Base value shall be loaded from NvM. In case the restore is not successful, the Time Base shall start w ith zero .

requirement SWS_StbM_00172 [SWS_StbM_00172] 📄 PDF

For each Time Base configured to be stored non - volatile ( StbMStoreTimebaseNonVolatile == STORAGE_AT_SHUTDOWN ), the value shall be stored to NvM latest at shutdown.

requirement SWS_StbM_00173 [SWS_StbM_00173] 📄 PDF

For Time Domains 0 to 15 StbM_GetCurrentTime() and StbM_GetCurrentTime Extended () shall return for the requested Time Domain the time of the Time Base , the related Status and the User Data. The current time of the Time Base shall be derived from the assoc iated Virtual Local Time , w h i c h is derived from either the referenced OS counter, a GPT or a referenced Ethernet controller (refer to StbMLocalTimeHardware ) .

requirement SWS_StbM_00177 [SWS_StbM_00177] 📄 PDF

For Time Bases 16 t o 31 the StbM_GetCurrentTime() and StbM_GetCurrentTime Extended () shall return for the requested Time Base an absolute time value calcula ted by adding the given offset to the current Time Base of the referenced Time Base via StbMOffsetTimeBase ( ECUC_StbM_00030 : ).

requirement SWS_StbM_00178 [SWS_StbM_00178] 📄 PDF

If EthIfGlobalTimeSupport (referenced via StbMLocalTimeHardware ECUC_StbM_00053 : , if set to EthTSynGlobalTimeDomain ) is set to TRUE for a Synchronized Time Base, the StbM shall deriv e the current value of the Virtual Local Time (see StbM_VirtualLocalTimeType [SWS_StbM_91003] ) from the freerunning HW counter from the corres ponding Ethernet Controller via EthIf_GetCurrentTime() . If EthIf_GetCurrentTime() returns either ETH_UNCERTAIN or ETH_INVALID for parameter timeQualPtr , the time value returned by EthIf_GetCurrentTime() shall be ignored.

requirement SWS_StbM_00179 [SWS_StbM_00179] 📄 PDF

For Time Base s 0 to 15 each invocation of StbM_BusSetGlobalTime() shall update the corresponding Main Time Tuple and set the User Data and the Time Base Status acco rdingly.

requirement SWS_StbM_00180 [SWS_StbM_00180] 📄 PDF

After i nitialization t he StbM shall maintain the Local Time of each Time Base autonomously via a hardware reference clock ( r eferenced by StbMLocalTime Cl ock ) .

requirement SWS_StbM_00181 [SWS_StbM_00181] 📄 PDF

On a valid invocation of StbM_SetGlobalTime() , StbM_UpdateGlobalTime() , or StbM_SetOffset() the StbM shall set the GLOBAL_TIM E_BASE bit wi thin timeBaseStatus of the corresponding Time Base and shall clear all other bits.

requirement SWS_StbM_00182 [SWS_StbM_00182] 📄 PDF

For Sync hronized and Offset Time Bases for which the StbM is configured as Time Slave or Time Gateway , an invocation of StbM_BusSetGlobalTime() shall check, if the Global T ime difference between the Updated Received Time (i.e., the updated Time Base value) and the Synclocal Ti me (i.e. , the current Time Base value ) exceeds the configured threshold of StbMTimeLeapFutureThreshold ( ECUC_StbM_00041 : ), i.e. , TG Rx - TL Sync > StbMTimeLeapFutureThreshold , if at least one Time Ba se value has been suc cessfully received before. With:  TL Sync = Global Time part of the Synclocal Time Tuple  TG Rx = Global Time part of the Updated Rx Time Tuple In case the threshold is exceeded the StbM shall set the TIMELEAP_FUTURE bit within timeBaseS tatus o f the Time Base. If the next StbMClearTimeleapCount updates are within the threshold of StbMTimeLeapFutureThreshold the StbM shall clear the TIMELEAP_FUTURE bit within timeBaseStatus of the Time Base. A threshold of 0 shall deactivate this check.

requirement SWS_StbM_00183 [SWS_StbM_00183] 📄 PDF

For Synchronized and Offset Time Bases for which the StbM is configu red as Time Slave or Time Gateway, the StbM shall observe the timeout StbMSyncLossTimeout ( ECUC_StbM_00028 : ) . The timeout shall be measured from last invocation of StbM_BusSetGlobalTime() . If t he tim eout occur s, the StbM shall set the TIMEOUT bit within timeBaseStatus of the Time Base. An invocation of StbM_BusSetGlobalTime() shall clear the TIMEOUT bit.

requirement SWS_StbM_00184 [SWS_StbM_00184] 📄 PDF

Every invocation of StbM_BusSetGlobalTime() shall set the SYNC_TO_GATEWAY bit within timeBaseStatus of the Time Base to the value of the SYNC_TO _GATEWAY bit within timeBaseStatus of the timeStampPtr argument passed to StbM_BusSetGlobalTime() .

requirement SWS_StbM_00185 [SWS_StbM_00185] 📄 PDF

For Synchronized and Offset Time Bases for which the StbM is configured as Time Slave or Time Gateway , an invocation of Stb M_BusSetGlobalTime() shall set the GLOBAL_TIME_BASE bit within timeBaseStatus of the Time Base. Once set, the bit is never cleared.

requirement SWS_StbM_00187 [SWS_StbM_00187] 📄 PDF

For Synchronized and Offset Time Bases for which the StbM is configured as Time Gateway, the StbM shall set the SYNC_TO_GATEWAY bit within timeBaseStatus of the Time Base when a timeout occurs (refer to [SWS_StbM_00183] ) .

requirement SWS_StbM_00190 [SWS_StbM_00190] 📄 PDF

Each valid invocation of StbM_SetOffset() shall update the M ain Time Tuple of the corresponding Offset Time Base. The Offset Time value and the User Data shall be set accordingly .

requirement SWS_StbM_00191 [SWS_StbM_00191] 📄 PDF

StbM_SetOffset() and StbM_GetOffset() shall only accept Offset Time Ba ses with a timeBaseId 16 to 31.

requirement SWS_StbM_00192 [SWS_StbM_00192] 📄 PDF

Each invocation of StbM_GetOffset() shall return the Offset Time value and the U ser D at a of the corresponding Offset Time Base.

requirement SWS_StbM_00196 [SWS_StbM_00196] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_GetCur rentT ime() shall r eport to DET the development error STBM_E_PARAM , if called with a parameter timeBaseI d , which is  not configured or  within the reserved value range .

requirement SWS_StbM_00197 [SWS_StbM_00197] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to T RUE , StbM_GetCurrentTime() shall r eport to DET the development error STBM_E_PARAM_POINTER , if called with a NULL pointer for paramete r timeStamp or userData .

requirement SWS_StbM_00199 [SWS_StbM_00199] 📄 PDF

For any S tbM API service other th a n StbM_Init() and StbM_GetVersion() all out parameters shall remain untouched, if an error occurs during execution of that API service .

requirement SWS_StbM_00201 [SWS_StbM_00201] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to T RUE , StbM_GetCurrentTimeExtended() shall r eport to DET the development error STBM_E_PARAM , if ca lled with a parameter timeBaseI d , which is  not configured or  within the reserved value rang e.

requirement SWS_StbM_00202 [SWS_StbM_00202] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_GetCurrentTimeExtended() sha ll r eport to DET the development error STBM_E_PARAM_POINTER , if called with a NULL pointer for parameter timeStamp or userData .

requirement SWS_StbM_00214 [SWS_StbM_00214] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_SetGlobalTime() shall r eport to DET the development error STBM_E_PARAM , if called with a parameter timeBaseI d , which is  not config ured or  within the reserved value range.

requirement SWS_StbM_00215 [SWS_StbM_00215] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_SetGlobalTim e() shall r eport to DET the development error STBM_E_PARAM_POINTER , if called with a NULL pointer for parameter timeStamp .

requirement SWS_StbM_00219 [SWS_StbM_00219] 📄 PDF

If the switc h StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_SetUserData() shall r eport to DET the development error STBM_E_PARAM , if called with a para meter timeBaseI d , which  is not configured or  is within the reserved value range.

requirement SWS_StbM_00220 [SWS_StbM_00220] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_SetUserData( ) shall r eport to DET the development error STBM_E_PARAM_POINTER , if called with a NULL pointer for parameter userData .

requirement SWS_StbM_00224 [SWS_StbM_00224] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_SetOffset() shall r eport to DET the development error STBM_E_PARAM , if called with a parameter timeBaseI d , which  is not configured or  refers to a Syn chronized or Pure Local Time Base or  is within the reserved value range.

requirement SWS_StbM_00225 [SWS_StbM_00225] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_SetOffset() shall r eport to DET the development error STBM_E_PARAM_POINTER , if called with a NULL pointer for parameter timeStamp .

requirement SWS_StbM_00229 [SWS_StbM_00229] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_GetOffset() shall r eport to DET the devel opment error STBM_E_PARAM , if called with a parameter timeBaseI d , which  is not configured or  refers to a Synchronized or Pure Local Time Base or  is within the reserved value range .

requirement SWS_StbM_00230 [SWS_StbM_00230] 📄 PDF

If the switch StbMD evErr orDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_GetOffset() shall r eport to DET the development error STBM_E_PARAM_POINTER , if cal led w ith a NULL pointer for parameter timeStamp or userData .

requirement SWS_StbM_00234 [SWS_StbM_00234] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_BusSetGlobalTime() shall r eport to DET the development error STBM_E_PARAM , if called with a parameter timeBaseI d , which  refer s to a Pure Local Time Base or  is not configured or  is within the rese rved value range

requirement SWS_StbM_00235 [SWS_StbM_00235] 📄 PDF

[SWS_StbM_00235] Upstream requirements: SRS_BSW_00386, SRS_BSW_00323 ⌈If the switch StbMDevErrorDetect is set to TRUE, StbM_BusSetGlobalTime shall report to DET the development error STBM_E_PARAM_POINTER, if called with a NULL pointer for parameter • timeTuplePtr • measureDataPtr ⌋

requirement SWS_StbM_00240 [SWS_StbM_00240] 📄 PDF

Name Global Time_ Master_{Name} Comment -- Is Service true Variation (({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MIs System Wide Global Time Master)} == TRUE ) || ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MAllow System Wide Global Time Master)} == TRUE )) && ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchroni zed Time Base Identifier)} < 128) Name = {ecuc(Stb M/ Stb MSynchronized Time Base.SHORT - NAME)} Possible Errors 0 E_ OK Operation successful 1 E_ NOT_ OK Operation failed Operation Clone Comment Copies Time Base data (current time, user data, rate correction) from Source Time Base to Destination Time Base. The Source Time Base is identified by the parameter Stb MSource Time Base (ECUC_ Stb M_00074) Variation ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} < 16) || ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} > 31) Parameters clone Cfg Type Stb M _ Clone Config Type Direction IN Comment Refines how source Time Base is cloned to destination Variation -- status Mask Type Stb M _ Time Base Status Type Direction IN Comment Status flags mask for definition of relevant status flags Variation -- status Value Type Stb M _ Time Base Status Type Direction IN Comment Status flags value define whether cloning shall take place Variation -- Possible Errors E _ O K E _ N O T _ O K Operation Get Master Config Comment Indicates in postbuild use case, if the Stb M is actually configured as system wide master Variation {ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MAllow System Wide Global Time Master)} != NULL Parameters master Config Type Stb M _ Master Config Type Direction OUT Comment -- Variation -- Possible Errors E _ O K E _ N O T _ O K Operation Set Bus Protocol Param Comment Operation is used to set bus specific parameters for a Time Master Variation ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} < 16) &&({ecuc(Stb M/ Stb MSynchronized Time Base)} == {ecuc(Eth TSyn/ Eth TSyn Global Time Domain/ Eth TSyn Synchronized Time Base Ref - >Stb MSynchronized Time Base)})) P arameters protocol Params Type Stb M _ Protocol Param Type Direction IN Comment Structure with Follow_ Up information TLV parameters Variation -- Possible Errors E _ O K E _ N O T _ O K Operation Set Global Time Comment Allows the Customers to set the Global Time that will be sent to the buses and modify HW registers behind the providers, if supported. This function will be used if a Time Master is present in this ECU. Using Set Global Timecan lead to an immediate transmi ssion of the Global Time. Variation -- Parameters time Stamp Type Stb M _ Time Stamp Type Direction IN Comment -- Variation -- user Data Type Stb M _ User Data Type Direction IN Comment -- Variation -- Possible Errors E _ O K E _ N O T _ O K Operation Set Offset Comment Allows the Customers and the Timesync Modules to set the Offset Time. Variation {ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} > 15 && {ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} < 32 Parameters time Stamp Type Stb M _ Time Stamp Type Direction IN Comment -- Variation -- user Data Type Stb M _ User Data Type Direction IN Comment -- Variation -- Possible Errors E _ O K E _ N O T _ O K Operation Set Rate Correction Comment Allows to set the rate of a Synchronized Time Base (being either a Pure Local Time Base or not). Variation -- Parameters rate Deviation Type Stb M _ Rate Deviation Type Direction IN Comment Value of the applied rate deviation Variation -- Possible Errors E _ O K E _ N O T _ O K Operation Set User Data Comment Allows the Customers to set the User Data that will be sent to the buses. Variation -- Parameters user Data Type Stb M _ User Data Type Direction IN Comment New user data Variation -- Possible Errors E _ O K E _ N O T _ O K Operation Trigger Time Transmission Comment Allows the Customers to force the Timesync Modules to transmit the current Time Base due to an incremented time Base Update Counter Variation {ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} < 32 Possible Errors E _ O K E _ N O T _ O K Operation Update Global Time Comment Allows the Customers to set the Global Time that will be sent to the buses and modify HW registers behind the providers, if supported. This function will be used if a Time Master is present in this ECU. Using Update Global Time will not lead to an immediat e transmission of the Global Time. Variation -- Parameters time Stamp Type Stb M _ Time Stamp Type Direction IN Comment -- Variation -- user Data Type Stb M _ User Data Type Direction IN Comment -- Variation -- Possible Errors E _ O K E _ N O T _ O K

requirement SWS_StbM_00244 [SWS_StbM_00244] 📄 PDF

- Port Defined Argument Value(s) Type Stb M _ Synchronized Time Base Type Value {ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier.value)} Variation (({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MIs System Wide Global Time Master)} == TRUE ) ||({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MAllow System Wide Global Time Master)} == TRUE ))&& ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronize d Time Base Identifier)} < 128) Name = {ecuc(Stb M/ Stb MSynchronized Time Base.SHORT - NAME)}

requirement SWS_StbM_00246 [SWS_StbM_00246] 📄 PDF

If time stamping via Ethernet shall be supported (refer to EthIfGlobalTimeSupport , which is referenced via StbMLocalTimeHardware ECUC_StbM_00053 : , if set to EthTSynGlobalTimeDomain ) , StbM.c shall include Eth If .h to have access to the interface of the Eth If module.

requirement SWS_StbM_00247 [SWS_StbM_00247] 📄 PDF

Name Global Time_ Slave_{Name} Comment -- Is Service true Variation {ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} < 128 Name = {ecuc(Stb M/ Stb MSynchronized Time Base.SHORT - NAME)} Possible Errors 0 E_ OK Operation successful 1 E_ NOT_ OK Operation failed Operation Get Bus Protocol Param Comment Operation is used to get bus specific parameters for a Time Master or Time Slave Variation ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} < 16) && ({ecuc(Stb M/ Stb MSynchronized Time Base)} == {ecuc(Eth TSyn/ Eth TSyn Global Time Domain/ Eth TSyn Synchronized Time Base Ref - >Stb MSynchronized Time Base)})) Parameters protocol Params Type Stb M _ Protocol Param Type Direction OUT Comment Structure with Follow_ Up information TLV parameters Variation -- Possible Errors E _ O K E _ N O T _ O K Operation Get Current Time Comment Returns a time value (Local Time Base derived from Global Time Base) in standard format. Variation -- Parameters time Stamp Type Stb M _ Time Stamp Type Direction OUT Comment -- Variation -- user Data Type Stb M _ User Data Type Direction OUT Comment -- Variation -- Possible Errors E _ O K E _ N O T _ O K Operation Get Current Time Extended Comment Returns a time value (Local Time Base derived from Global Time Base) in extended format. Variation {ecuc(Stb M/ Stb MGeneral/ Stb MGet Current Time Extended Available)} Parameters time Stamp Type Stb M _ Time Stamp Extended Type Direction OUT Comment -- Variation -- user Data Type Stb M _ User Data Type Direction OUT Comment -- Variation -- Possible Errors E _ O K E _ N O T _ O K Operation Get Offset Time Record Head Comment Reads the header of the table with recorded measurement data belonging to the Offset Time Base Variation (({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MIs System Wide Global Time Master)} == FALSE) && ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MAllow System Wide Global Time Master)} == FALSE)) && ({ecuc(Stb M/ Stb MGeneral/ Stb MTime Recording Support)} == True) && ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} > 15) && {ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} < 32 Parameters offset Record Table Head Type Stb M _ Offset Record Table Head Type Direction OUT Comment Header of the table Variation -- Possible Errors E _ O K E _ N O T _ O K Operation Get Rate Deviation Comment Returns value of the current rate deviation of a Time Base Variation -- Parameters rate Deviation Type Stb M _ Rate Deviation Type Direction OUT Comment Value of the current rate deviation of a Time Base Variation -- Possible Errors E _ O K E _ N O T _ O K Operation Get Sync Time Record Head Comment Reads the header of the table with recorded measurement data belonging to the Synchronized Time Base Variation (({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MIs System Wide Global Time Master)} == FALSE) && ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MAllow System Wide Global Time Master)} == FALSE)) && ({ecuc(Stb M/ Stb MGeneral/ Stb MTime Recording Support)} == True) && ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} < 16) Parameters sync Record Table Head Type Stb M _ Sync Record Table Head Type Direction OUT Comment Header of the table Variation -- Possible Errors E _ O K E _ N O T _ O K Operation Get Time Base Status Comment Returns detailed status information for a Synchronized (or Pure Local) Time Base and, if called for an Offset Time Base, for the Offset Time Base and the underlying Synchronized Time Base. Variation -- Parameters sync Time Base Status Type Stb M _ T ime Base Status Type Direction OUT Comment Status of the Synchronized (or Pure Local) Time Base Variation -- offset Time Base Status Type Stb M _ Time Base Status Type Direction OUT Comment Status of the Offset Time Base. Variation -- Possible Errors E _ O K E _ N O T _ O K Operation Get Time Leap Comment Returns value of time leap. Variation {ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} < 32 Parameters time Jump Type Stb M _ Time Diff Type Direction OUT Comment Time leap value Variation -- Possible Errors E _ O K E _ N O T _ O K

requirement SWS_StbM_00248 [SWS_StbM_00248] 📄 PDF

- Port Defined Argument Value(s) Type Stb M _ Synchronized Time Base Type Value {ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier.value)} Variation Name = {ecuc(Stb M/ Stb MSynchronized Time Base.SHORT - NAME)}

requirement SWS_StbM_00261 [SWS_StbM_00261] 📄 PDF

TIMEOUT Bit 0 (LSB) 0: No Timeout occurred - neither for Offset nor for referenced Synchronized Time Base 1: Timeout occurred for Offset or for referenced Synchronized Time Base Reserved Bit 1 Bit 1: Always 0 (reserved for future usage) SYNC_TO_GATEWAY Bit 2 0: Local Offset and referenced Synchronized Time Base is synchronous to Global Offset Time Master 1: Local Offset or referenced Synchronized Time Base updates are based on a Time Gateway below the Global Time Master GLOBAL_TIME_BASE Bit 3 0: Local Offset or referenced Synchronized Time Base are based on Local Time Base reference clock only (never synchronized with Global Time Base) 1: Local Offset and referenced Synchronized Time Base have b een synchronized with Global Time Base at least once TIMELEAP_FUTURE Bit 4 0: No leap into the future within the received time for the Offset and referenced Synchronized Time Base 1: Leap into the future within the received time for the Offset or refer enced Synchronized Time Base exceeds a configured threshold TIMELEAP_PAST Bit 5 0: No leap into the past within the received time for the Offset and referenced Synchronized Time Base 1: Leap into the past within the received time for the Offset or refe renced Synchronized Time Base exceeds a configured threshold

requirement SWS_StbM_00262 [SWS_StbM_00262] 📄 PDF

For Synchronized Time Bases StbM_GetTimeBaseStatus() shall return  the status of the corresponding Synchronized Time Base via syncTimeBaseStatus and  0 via offset TimeBaseStatus For Offset Time Bases StbM_GetTimeBaseStatus() shall return  the status of the corresponding Offset Time Base via offsetTimeBaseStatus and  the status of the related Synchronized Time Base (referenced by ECUC_StbM_00030 : ) via sync TimeBaseStatus . For Pure Local Time Bases StbM_GetTimeBaseStatus() shall return  the status of the corresponding Time Base (refer to [SWS_StbM_00399] ) via syncTimeBaseStatus and  0 via offsetTimeBaseStatus

requirement SWS_StbM_00264 [SWS_StbM_00264] 📄 PDF

If the switch StbMDevErrorDete ct ( ECUC_StbM_00012 : ) is set to TRUE , StbM_GetTime Base Status() shall report to DET the development error STBM_E_PARAM , if called with a parameter timeBa seI d , which  is not configured or  is within the reserved value range .

requirement SWS_StbM_00268 [SWS_StbM_00268] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_GetTimeLeap() shall report to DET the development error STBM_E_PARAM , if called with a parameter timeBaseI d , wh ich  is not configure d or  refers to a Pure Local Time Base or  is within the reserved value range .

requirement SWS_StbM_00269 [SWS_StbM_00269] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_GetTimeLeap( ) shall report to DET the development error STBM_E_PARAM_POINTER , if called with a NULL pointer for parameter timeJump .

requirement SWS_StbM_00270 [SWS_StbM_00270] 📄 PDF

On invocation of StbM_Start Time r for a Time Notification Customer of a Time Base the StbM shall calculate the time CustomerTimerExpireTime when that Customer Timer will expire base d on the corresponding Time Base. If a Customer Timer for the same Customer is already running, StbM_StartTimer shall return E_NOT_OK .

requirement SWS_StbM_00271 [SWS_StbM_00271] 📄 PDF

Upon inv ocati on of StbM_TimerCallback , the StbM shall calculate the time difference between CustomerTimerExpireTime and the current value of the corresponding Time Base. If the calculated time difference exceeds the value range of the deviationTime parameter of <Cust omer>_TimeNotificationCallback() the returned time difference shall be limited to either the maximum negative or the maximum positive value of the type of deviationTime (refer to StbM_Time Diff Type ). If StbMTi meNot ificationCallback ( ECUC_StbM_00064 : ) is not NULL,  the St bM shall call the function <Customer>_TimeNotificationCallback<Time Base>() else  the StbM shall call the servi c e operation NotifyTime of the required port GlobalTime_TimeEvent_{TBName}_{CName} to inform the correspon ding Time Notification Customer and return the value of the calculated time difference in the parameter deviationTime.

requirement SWS_StbM_00274 [SWS_StbM_00274] 📄 PDF

The event notification callback functi o n shall be set by the parameter StbMTimeNotificationCallback ( ECUC_StbM_00064 : . )

requirement SWS_StbM_00275 [SWS_StbM_00275] 📄 PDF

Name Time Notification Comment Notification, which indicates, that the timer has expired, which has been set by Start Timer Is Service true Variation -- Possible Errors 0 E_ OK Operation successful 1 E_ NOT_ OK Operation failed Operation Notify Time Comment Notification, which indicates, that the timer has expired, which has been set by Stb M_ Start Timer Variation -- Parameters deviation Time Type Stb M _ Time Diff Type Direction IN Comment -- Variation -- Possible Errors E _ O K E _ N O T _ O K

requirement SWS_StbM_00276 [SWS_StbM_00276] 📄 PDF

- Variation ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MNotification Customer/ Stb MTime Notification Callback)}==NULL) && ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} < 128) TBName={ecuc(Stb M/ Stb MSynchronized Time Base.SHORT - NAME)} CName={ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MNotification Customer.SHORT - NAME)}

requirement SWS_StbM_00277 [SWS_StbM_00277] 📄 PDF

For Synchronized, O ffset and Pure Local Time Bases:  I f param eter StbMNotificationInt erface ( ECUC_StbM_00068 : ) is set to either SR_INTERFACE or CALLBACK_AND_SR_INTERFACE , the StbM shall notify the application via the StatusNotification service interface.  I f parameter Stb MNotificationInterface i s set to either CALLBACK or CALLBACK_AND_SR_INTERFACE , the StbM shall use the callback StatusNotificationCallback<Time Base> to notify a CDD about status related events.  If parameter StbMNotificationInterface is set to NO_NOTIFICATIO N the notification mecha nism shall be disabled for the given Time Base. The callback StatusNotificationCallback<Time Base> shall be set via configuration parameter StbMStatusNotificationCallback ( ECUC_StbM_00046 : ) .

requirement SWS_StbM_00278 [SWS_StbM_00278] 📄 PDF

For Synchronized and Offset Time Bases the StbM shall use a variable NotificationEvents of type StbM_TimeBaseNotificationType to kee p track, if any status event (refer to [SWS_StbM_00284] ) for the referenced Time Base occurs. If a ny status event occurs and the corresponding bit in the NotificationMask mask is set, the corresponding bit in the NotificationEvents variable is set , i.e., NotificationEvents can only contain bits for t he events, which are enabled within the NotificationMask mask (refer to [SWS_StbM_00284] ).

requirement SWS_StbM_00279 [SWS_StbM_00279] 📄 PDF

For each Time Base the StbM has a configurable mask StbMStat usNotificationMask ( ECUC_StbM_00045 : ) , which allows to mask individually status event notifications.

requirement SWS_StbM_00280 [SWS_StbM_00280] 📄 PDF

After reporting a status event via the St atusNotificationCallback<Time Base> API and the StatusNotification service interface the StbM shall reset NotificationEvents to 0.

requirement SWS_StbM_00282 [SWS_StbM_00282] 📄 PDF

If any status event (refer to [SWS_StbM_00284] ) occurs and the corresponding bit in the NotificationMask mask is set, the Stb M shall report the value of the NotificationEvents var iable  via the callback function StatusNotificationCallback<Time Base> (refer to parameter eventNotifications ) and/or  via StatusNotification service interface (refer to data element eventNotification ) depending on the setting of parameter StbMNotificationIn terface ( ECUC_StbM_00068 : ) . If multiple status events occur simultaneously for the same Time Base, the StbM shall trigger the callback function StatusNotificationCallback<Time Base> and the StatusNotification s ervice interface only once.

requirement SWS_StbM_00284 [SWS_StbM_00284] 📄 PDF

The StbM shall detect the following status events: Status Eve nt Name Status Event Set Condition EV_ GLOBAL_TIME_BASE 1: GLOBAL_TIME_BASE in t imeBaseStatus has changed from 0 to 1 0: otherwise EV_TIMEOUT_OCCURE D 1: TIMEOUT bit in timeBaseStatus has changed from 0 to 1 0: otherwise EV_TIMEOUT_REMOVED 1: TIMEOUT bit in timeBaseStatus has changed from 1 to 0 0: otherwise EV_TIMELEAP_FUTURE 1: TIMELEAP_FUTURE bit in timeBaseStatus has changed from 0 to 1 0: otherw ise EV_TIMELEAP_FU TURE_REMOVED 1: TIMELEAP_FUTURE b it in timeBaseStatus has changed from 1 to 0 0: otherw ise EV_TIMELEAP_PAST 1: TIMELEAP_PAST bit in timeBaseStatus has changed from 0 to 1 0: otherwise EV_TIMELEAP_ PAST_ REMOVED 1: TIMELEAP_ PAST b it in t imeBaseStatus has c hanged from 1 to 0 0: otherwise EV_SYNC_TO_ SUBDOMAIN 1: SYNC_TO_GATEWAY bit in timeBas eStatus has changed from 0 to 1 0: otherwise EV_SYNC_TO_ GLOBAL_MASTER 1: SYNC_TO_GATEWAY bit in timeBaseStatus has changed from 1 to 0 0: otherwise EV_RESYNC 1: resyn chronization has occurred and a new time value has been applied 0: otherwise EV_RATECOR RECTION 1: a valid rate correction has been calculated (not beyond limits) 0: otherwise

requirement SWS_StbM_00286 [SWS_StbM_00286] 📄 PDF

Name Status Notification Comment Notification about a Time Base related status change Is Service false Variation -- Data Elements event Notification Type Stb M _ Time Base Notification Type Variation --

requirement SWS_StbM_00290 [SWS_StbM_00290] 📄 PDF

- Variation (({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MNotification Interface)} == SR_ INTERFACE || {ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MNotification Interface)} == CALLBACK_ AND_ SR_ INTERFACE)) && ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynch ronized Time Base Identifier)} < 128) TBName = {ecuc(Stb M/ Stb MSynchronized Time Base.SHORT - NAME)}

requirement SWS_StbM_00296 [SWS_StbM_00296] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_S tart Time r () shall r eport to DET the development error STBM_E_PARAM , if called with a parameter timeBaseI d , whi ch  is not configured or  is within the reserved value range .

requirement SWS_StbM_00298 [SWS_StbM_00298] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_S tartT ime r () shall r eport to DET the development error STBM_E_PARAM_POINTER , if called with an invalid pointer of parameter expireTime .

requirement SWS_StbM_00299 [SWS_StbM_00299] 📄 PDF

The status notification callb a ck function shall be set by the parameter StbMStatusNotificationCallback ( ECUC_StbM_00046 : ).

requirement SWS_StbM_00302 [SWS_StbM_00302] 📄 PDF

The StbM shall set the synchronization count of the OS ScheduleTable via SyncScheduleTable () .

requirement SWS_StbM_00303 [SWS_StbM_00303] 📄 PDF

The StbM shall derive the synchronization count of the OS ScheduleTable in microseconds by calculating the modulus of the current Tim e Base value (converted to microseconds) and OsScheduleTableDuration (see OsScheduleTable container referenced by ECUC_StbM_00007 : ).

requirement SWS_StbM_00304 [SWS_StbM_00304] 📄 PDF

On invocation of StbM_ SetGlobalTime() or StbM_UpdateGlobalTime() for Time Base s 16 to 31 the StbM shall check the GLOBAL _TIME_BASE bit within timeBaseStatus of the unde rl ying Synchronized Time Base and shall return E_NOT_OK if is not set. If the GLOBAL_TIME_BASE bit is set: 1. the StbM shall calculate the Offset Time by obtaining the actual Time Base value of the underlying Synchronized Time Base and subtract that from the A bsolute Time value which is passed by StbM_SetGlobalTime() or StbM_UpdateGlobalTime() 2. a) if the calculated Offset Time value is equal or greater than zero, the StbM shall update the corresponding Offset Time Base with the calculated Offset Time value and t he User Data that was passed by StbM_SetGlobalTime() or StbM_UpdateGlobalTime() , b) otherwise (calculated Offset Time value is less than zero) the StbM shall return E_NOT_OK via StbM_SetGlobalTime() or StbM_UpdateGlobalTime() , respectively.

requirement SWS_StbM_00306 [SWS_StbM_00306] 📄 PDF

If StbMTimeRecording Support ( ECUC_StbM_00038 : ) is set to TRUE , the StbM shall initialize all Block Elements of the measurement rec ording table with zero ( refer to 7.3.12.3.1 Record Tables ) .

requirement SWS_StbM_00307 [SWS_StbM_00307] 📄 PDF

The S tbM shall support the Global Time precision measurement for a Time Base , if StbMTimeRecording Support ( ECUC_StbM_00038 : ) is set to TRUE .

requirement SWS_StbM_00308 [SWS_StbM_00308] 📄 PDF

If Global Time Pr ecision Measurement is enabled ( refer to [SWS_StbM_00428] and [SWS_StbM_00307] ) for the Time Base , t he StbM shall establish a table to record values depending on the Synchronized Time Base with the foll owing structure: Record Table Element Multi - plicity Range Bytes Type / Unit Header 1 9 SynchronizedTimeDomain 1 0..15 1 uint8 H W frequency 1 0..4 294967295 4 uint32 / Hz H W prescaler 1 0..4294967295 4 uint32 Block 0 1 27 GlbSeconds 1 0..4294 967295 4 StbM_TimeStampType. seconds GlbNanoSeconds 1 0..999999999 4 StbM_TimeStampType. nanoseconds TimeBaseStatus 1 0..255 1 StbM_TimeStampType. Stb M_TimeBaseS tatusType VirtualLocalTimeLow 1 0..4294967295 4 uint32 / nanoseconds RateDeviation 1 0. .+ - 32000 2 StbM_RateDeviationType / ppm LocSeconds 1 0..4294967295 4 StbM_TimeStampType. seconds LocNanoSeconds 1 0..999999999 4 StbM_TimeStampType. n anoseconds PathDelay 1 0..4294967295 4 uint32 / nanoseconds Block 1 … … Block (Block - Co unt - 1) …

requirement SWS_StbM_00309 [SWS_StbM_00309] 📄 PDF

If Global Time Precision Measurement is enabled (refer to [SWS_StbM_00428] and [SWS_StbM_00307] ) for the Time Base, StbMC lockfrequency ( ECUC_StbM_00051 : ) shall be mapped to the Header Element HWfrequency of the table belongin g to the Synchronized Time Base unless the Virtual Local Time for the Time Base is provided by a Times yn c module . In this case, HWfrequency shall be set to 1000000000.

requirement SWS_StbM_00310 [SWS_StbM_00310] 📄 PDF

If Global Time Pr ecision Measurement is enabled (refer to [SWS_StbM_00428] and [SWS_StbM_00307] ) for the Time Base, StbMClock prescaler ( ECUC_StbM_00052 : ) shall be mapped to the Header Element HWprescaler of the table belongin g to the Synchronized Time Base unless the Virtual Local Time for the Time Base is provided by a Times yn c module . In this case, HWprescaler shall be set to 1.

requirement SWS_StbM_00311 [SWS_StbM_00311] 📄 PDF

If Global Tim e Precision Measurement is enabled (refer to [SWS_StbM_00428] and [SWS_StbM_00307] ) for the Time Base, the StbM shall establish a table to record values depending on the Offset Time Base with the following structure: Record Table Element Multi - plicity Range Bytes Type / Unit Header 1 1 OffsetTimeDomain 1 16..31 1 uint8 Block 0 1 9 GlbSeconds 1 0..4294967295 4 StbM_TimeStampType. seconds GlbNanoSeconds 1 0.. 999999999 4 StbM_TimeStampType. nanoseconds TimeBaseStatus 1 0..255 1 StbM_TimeStampType. StbM_TimeBaseS tatusType Block 1 … … Block (Block - Count - 1) … Table 1 : Offset Time Base Record Table

requirement SWS_StbM_00312 [SWS_StbM_00312] 📄 PDF

If Global Time Precision Measurement is enabled (refer to [SWS_StbM_00428] for the Time Base, on an invocation of StbM_BusSetGlobalTime() the StbM shall update all e lements of the b lock of the recording table. If all blocks have been written and no notification via  SyncTimeRecordBlockCallback<Time Base> or  OffsetTimeRecor dBlockCallback<Time Base> has yet occurred to pass all blocks with their elements to the application, the StbM shall again overwrite the block containing the oldest measurement data with the incoming measurement data.

requirement SWS_StbM_00313 [SWS_StbM_00313] 📄 PDF

For Synchronized Time Bases, i f Global Time P recision Measureme nt is enabled (refer to [SWS_StbM_00428] and [SWS_StbM_00307] ) for the Time Base , on an invocation of StbM_BusSetGlobalTime() the StbM shall write the block elements  LocSeconds and  LocNanoSeconds to th e related measurement recording table before updating the Main Time Tuple (i.e., updating the Local Time Base by the Global Time Base ) . LocSeconds and LocNanoSeconds are the elements of the Global Time part of the Synclocal Time Tuple (i.e., TL Sync , see [SWS_StbM_00438] ).

requirement SWS_StbM_00314 [SWS_StbM_00314] 📄 PDF

For Synchronized Time Bases, i f Global Time P recision Measurement is enabled (refer to [SWS_StbM_00428] and [SWS_StbM_00307] ) for the Time Base , on an invocation of StbM_BusSetGlobalTime() the StbM shall write the block elements  GlbSeconds ,  GlbNanoSeconds ,  VirtualLocalTimeLow ,  RateDeviation ,  TimeBaseStatus  PathDelay to the related measurement recording table after updating the Main Time Tuple (i.e., after updating the Local Time Base by the Global Time Base ) . GlbSeconds , GlbNanoSeconds are the elements of the Global Time part of the Updated Rx Time Tuple (i.e., TG Rx ); VirtualLocalTimeLow is the nanose condsL o element of the Virtual Local Time part of the Updated Rx Time Tuple (i.e., T V Rx ).

requirement SWS_StbM_00315 [SWS_StbM_00315] 📄 PDF

If Global Time Precision Measurement is enabled (refer to [SWS_StbM_00428] and [SWS_StbM_00307] ) for the Time Base, the a pplication collects the contents of the h eader of the Synchronized Time Base Record Table by calling StbM_GetSyncTimeRecordHead () .

requirement SWS_StbM_00316 [SWS_StbM_00316] 📄 PDF

If Global Time P recision Measurement is enabled (refer to [SWS_StbM_00428] and [SWS_StbM_00307] ) for the Time Base , the a pplication collects the contents of the h eader of the Offset Time Base Record Table by calling St bM _ GetOffsetTimeRecordHead () .

requirement SWS_StbM_00317 [SWS_StbM_00317] 📄 PDF

If Global Time Pr ecision Measurement is enabled (refer to [SWS_StbM_00428] and [SWS_StbM_00307] ) for the Time Base, the StbM shall notify the Application by calling Syn cTimeRecordBlockCallback<Time Base> in the next St bM_MainFunction() call cycle block by block (i.e., repeatedly) for all unread blocks (i.e., containing data that has yet not been passed to the Application), starting with the block containing the oldest dat a, and followed by the blocks in ascending order regarding their age (i.e., FIFO order), the block containing the newest data shall be passed last. The StbM shall ensure data integrity: a block shall not be passed if it currently being overwritten and a b lock that is passed shall be prevented from being overwritten until processed by the Applica tion.

requirement SWS_StbM_00318 [SWS_StbM_00318] 📄 PDF

If Global Time Precision Measurement is enabled (refer to [SWS_StbM_00428] and [SWS_StbM_00307] ) for the Time Base, the StbM shall notify the Application by calling Off setTimeRecordBlockCallback<Time Base> in the next StbM_MainFunction() call cycle block by block (i.e., repeatedly) for all unread blocks (i.e., containing data that has yet not been passed to the Application), starting with the block containing the oldest d ata, and followed by the blocks in ascending order regarding their age (i.e., FIFO order), the block containing the newest data shall be passed last. The Stb M shall ensure data integrity: a block shall not be passed if it currently being overwritten and a block that is passed shall be prevented from being overwritten until processed by the Application.

requirement SWS_StbM_00320 [SWS_StbM_00320] 📄 PDF

The function StbM_GetSyncTimeRecordHead() shall be pre compile time configurable ON / OFF by the c onfiguration parameter: StbMTimeRecor ding Support ( ECUC_StbM_00038 : ) .

requirement SWS_StbM_00323 [SWS_StbM_00323] 📄 PDF

The function SyncTimeRecordBlockCallback <t imeBas eId> ( ) shall be set by the parameter StbMSyncTimeRecordBlo ck Callback ( ECUC_StbM_00060 : ).

requirement SWS_StbM_00326 [SWS_StbM_00326] 📄 PDF

The function StbM_GetOffsetTimeRecordHead() shall be pre compi le time configurable ON / OFF by the configuration parameter: StbMTimeRecording Support ( ECUC_StbM_00038 : ) .

requirement SWS_StbM_00327 [SWS_StbM_00327] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_Get Offs e tTim eRecordHead () shall report to DET the development error STBM_E_PARAM , if called with a parameter timeBaseI d , which  is not configured or  r efers to a Pure Local or a Synchronized Time Base or  is within the reserved value range.

requirement SWS_StbM_00329 [SWS_StbM_00329] 📄 PDF

The function OffsetTimeRecordBlockCallback<timeBaseId> shall set by the parameter StbMOffsetTimeRecordBlock Callback ( ECUC_StbM_00061 : ) .

requirement SWS_StbM_00335 [SWS_StbM_00335] 📄 PDF

For currently active Time Notification Customers the StbM shall cyclically calculate an d mon itor in its StbM_MainFunction the difference between the current value of the corresponding Time Base and the expiration time 'CustomerTimerExpireTime' .

requirement SWS_StbM_00336 [SWS_StbM_00336] 📄 PDF

A time interval StbMTimerStartThreshold ( ECUC_StbM_00063 : ) before a Customer Timer expires, the StbM shall calculate the time difference between CustomerTimerExpireTime and the c urren t value of the corresponding Time Base. The StbM shall then start a GPT timer ( ECUC_StbM_00039 : ) via Gpt_StartTimer() to be notified, when the time difference has elapsed .

requirement SWS_StbM_00337 [SWS_StbM_00337] 📄 PDF

If multiple Customer Timers run and expire within the same interval StbMTimerStar tThreshold , the StbM sha ll calculate all expiry points within the StbMTimerStartThreshold interval and re - start the same GPT timer for next expiry point after the previous expiry point has been reached .

requirement SWS_StbM_00339 [SWS_StbM_00339] 📄 PDF

Name Measurement Notification_{TB_ Name} Comment Notifies about the availability of a new recorded measurement data block belonging to the Time Base. Is Service true Variation (ecuc(Stb M/ Stb MGeneral/ Stb MTime Recording Support)} == True) && ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} < 32) TBName={ecuc(Stb M/ Stb MSynchronized Time Base.SHORT - NAME)} Possible Errors 0 E_ OK Operation successful 1 E_ NOT_ OK Operation failed Operation Set Offset Time Record Table Comment Provides to the recorded snapshot data Block of the table belonging to the Offset Time Base. Variation {ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} > 15 && {ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} < 32 Parameters offset Record Table Block Type Stb M _ Offset Record Table Block Type Direction IN Comment Header of the table Variation -- Possible Errors E _ O K E _ N O T _ O K Operation Set Sync Time Record Table Comment Provides the recorded snapshot data Block of the table belonging to the Synchronized Time Base. Variation {ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} < 16 Parameters sync Record Table Block Type Stb M _ Sync Record Table Block Type Direction IN Comment Block of the table Variation -- Possible Errors E _ O K E _ N O T _ O K

requirement SWS_StbM_00340 [SWS_StbM_00340] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_UpdateGlobalTime() shall r eport to DET the development error STBM_E_PARAM , if called with a parameter tim eBase Id , which is  not configured or  within the reserved value range.

requirement SWS_StbM_00341 [SWS_StbM_00341] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_UpdateGlobal Time() shall r eport to DET the development error STBM_E_PARAM_POINTER , if called with a NULL pointer for parameter timeStamp .

requirement SWS_StbM_00342 [SWS_StbM_00342] 📄 PDF

On a valid invocation of StbM_SetGlobalTime() or StbM_UpdateGlobalT ime() the StbM shall update the Main Time Tuple of the corresponding Synchronized Time Base . Within the functions StbM_SetGlobalTime() and StbM_UpdateGlobalTime() the StbM shall retrieve the value of the Virtual Local Time (as part of the Local Time tuple ) as soon as possible in order to improve precision of the Time Base.

requirement SWS_StbM_00344 [SWS_StbM_00344] 📄 PDF

For each Time Base the StbM shall initialize the corresponding update counter timeBas eUpdateCounter with 0.

requirement SWS_StbM_00345 [SWS_StbM_00345] 📄 PDF

For each Time Base the StbM shall initialize the corresponding event status NotificationEvents with 0.

requirement SWS_StbM_00348 [SWS_StbM_00348] 📄 PDF

I f the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_GetTimeBaseUpdateCounter () shall report t o DET the development error STBM_E_PARA M , if called with a parameter timeBaseI d , which  is not configured or  refers to a Pure Loca l Time Base or  is within the reserved value range.

requirement SWS_StbM_00349 [SWS_StbM_00349] 📄 PDF

I f the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , Stb M _TriggerTimeTransmission() shall report to DET the development error STBM_E_PARAM , if called with a parameter timeBaseI d , which  is not configured or  refers to a Pure Local Time Base or  is within the reserved value range.

requirement SWS_StbM_00350 [SWS_StbM_00350] 📄 PDF

 For Synchronized and Offset Time Bases on a valid invocation of StbM_SetGlobalTime() , StbM_BusSetGlobalTime() , or StbM_T riggerTimeTransmission() and  for Offset Time Bases on a valid invocation of StbM_SetOff set() , the StbM shall increment the timeBaseUpdateCounter of the corresponding Time Base by 1 (one). At 255 the timeBaseUpdateCounter shall wrap around to 0.

requirement SWS_StbM_00351 [SWS_StbM_00351] 📄 PDF

For Synchronized and Offset Time Bases, t he timeBaseUpdateCounter of a Time Base shall have the value ra nge 0 to 255.

requirement SWS_StbM_00352 [SWS_StbM_00352] 📄 PDF

Global Time Syn chroni z ed / Offset TimesyncMsg Time Slave Time Base Reference Clock L ocal Time Base per Time Do ma in Ti me Stamp Loca l Time Base Raw init update update read access Time Master Time Base Reference Cl ock Global Time Base per Ti me Dom ain Tim e Stam p Global Time Base Raw init update update Global Time Sy nchronized / Offset T i mesync M sg r/w access The StbM shall use the factor ( StbMClockP r e scaler /StbMClockFrequency ) to convert the time of its local hardware reference clock to the actual time of the Virtual Local Time (refer to StbM_VirtualLocalTimeType ) , if the Virtual Local Time is derived from a GPT or OsCounter (re fer to ECUC_StbM_00053 : StbMLocalTimeHardware ).

requirement SWS_StbM_00353 [SWS_StbM_00353] 📄 PDF

If an additional rate has been applied (Offset Correction By Rate Adaption according to [SWS_StbM_00356] ) , the StbM shall after the period of StbMOffsetCorrection Adap tionInterval (i.e., (TV - TV Sync ) (see [SWS_StbM_00355] ) is larger or equal than StbMOffsetCorrectionAdaptionInterval ) insert the following two steps if it needs to calculate the current value of a Time Base as de fined by [SWS_StbM_00355] : 1. It shall first calculate a temporary Time Tuple [TL Temp ;TV Temp ] using the formula in [SWS_StbM_00355] with TV = TV Temp = TV Sync + StbMOffsetCorrectionAdaptionInterval r = r rc + r oc (for Synchronized Time Bases ) r = (r or c – 1 ) + r oc (for Offset Time Bases ) TL Temp shall be set to the resulting value TL 2. Aft erwards the Main Time Tuple [TG Sync ;TV Sync ] shall be set by an atomic operation to the values of the temporary Time Tuple [TL Temp ;TV Temp ] . Then , the calculation in [SWS_StbM_00355] shall be done by using the updated Main Time Tuple, the current value of the Virtual Local Time and r = r rc or , respectively, r = (r or c – 1 ) .

requirement SWS_StbM_00355 [SWS_StbM_00355] 📄 PDF

The StbM shall calculate the current value of a Time Base ba sed on t he Main Tuple and the current rate correction term according to: TL = TG Sync + (TV - TV Sync ) * r With:  TL = Current value of the Time Base  TV = Current value of the V irtual L ocal Time  TV Sync = Virtual Local Time part of the Main Time Tuple  TG Sync = Glo ba l Time part of the Main Time Tuple  r = Current r ate for correcting the local instance of the Time Base

requirement SWS_StbM_00356 [SWS_StbM_00356] 📄 PDF

If rate correction is enabled (see [SWS_StbM_00377] ) and i f the absolute value of the time offset between the Received Time and the Synclo cal Time (abs (TG Rx - TL Sync )) is smaller than StbMOffsetCorrectionJumpThreshold ( ECUC_StbM_00056 : ) , t he StbM shal l correct the time offset by temporarily applying an additional rate (r oc ) to r : r = r rc + r oc (for Synchronized Time Bases ) r = (r or c – 1 ) + r oc (for Offset Time Bases ) This rate correction term shall be applied for the duration defined by parameter StbMOffsetCorrectionAdaptionInterval ( ECUC_StbM_00057 : ) , starting when obtaining the Updated R x Time Tuple (i.e . , it shall be applied as long as (TV - TV Sync ) (see [SWS_StbM_00355] ) is smaller than StbMOffsetCorrectionAdaptionInterval ). r oc shall be calculated as shown: r oc = (TG Rx – TL Sync ) / (T Co rrInt ) With:  T CorrInt = StbMOffsetCorrectionAdaptionInterval  TL Sync = Global Time part of the Synclocal Time Tuple  TG Rx = Global Time part of the Updated Time Tuple

requirement SWS_StbM_00359 [SWS_StbM_00359] 📄 PDF

T he StbM shall calculate the Global Time offset (i.e., difference) between the Received Time and the Synclocal Time upon each, except the very first, valid invocation of StbM_BusSetGlobalTime() . The elements of the Time Tuples used for calculating the Gl obal Time offset have the following denotation:  TL Sync = Global Time part of the Synclocal Time Tuple  TG Rx = Global Time part of the Received Time Tuple

requirement SWS_StbM_00360 [SWS_StbM_00360] 📄 PDF

At the end of a Rate Correction measurement, the StbM shall calculate the resulting correction rate ( r orc ) for Offset Time Bases as shown: r orc = (TG Stop - TG Start ) / (TV Stop - TV Start ) + 1

requirement SWS_StbM_00361 [SWS_StbM_00361] 📄 PDF

At the end of a Rate Correction measurement, the StbM shall calculate the resulting correction rate ( r rc ) for Synchronized Time Bases as shown: r rc = ( TG Stop – TG Start ) / (TV Stop - TV Start )

requirement SWS_StbM_00362 [SWS_StbM_00362] 📄 PDF

The StbM shall use the same value for r rc and r orc until a new value has been calculated.

requirement SWS_StbM_00364 [SWS_StbM_00364] 📄 PDF

At the end of the Rate Correction measurement, the StbM shall store the Updated Rx Time Tuple . The elements of the stored Time Tuple have the followi ng denotation:  TG Stop – Global Time part of the Updated Rx Time Tuple  TV Stop – Virtual Local T ime part of the Updated Rx Time Tuple

requirement SWS_StbM_00366 [SWS_StbM_00366] 📄 PDF

At the start of a Rate C orrection measurement, the StbM shall store the Updated Rx Time Tuple . The elements of the stored Time Tuple have the following denotation:  TG Start – Global Time part of the Updated Rx Time Tuple  TV Start – V irtual L ocal T ime part of the Updated Rx Time Tuple

requirement SWS_StbM_00367 [SWS_StbM_00367] 📄 PDF

Simultaneous Rate Correction measurements shall be started with a defined offset (to n ) to yield Rate Corrections evenly distributed over the measurement duration. to n = n * ( StbMRateCorrectionMeasurementDuration / StbMRateCorrectionsPerMeasurementDuration ) (where ‘n’ is the zero - based index of the current measurement) .

requirement SWS_StbM_00368 [SWS_StbM_00368] 📄 PDF

The S tbM shall perform as many simultaneous Rate Correction measurements as configured by parameter: StbMRateCorrectionsPerMeasurementDuration ( ECUC_StbM_00055 : ) .

requirement SWS_StbM_00370 [SWS_StbM_00370] 📄 PDF

During runtime the StbM shall determine the timespan of a Rate Correction measurement on the basis of the Virtual Local Time.

requirement SWS_StbM_00371 [SWS_StbM_00371] 📄 PDF

The StbM shall perform Rate Correction measurements continuously. The end of a measurement mar ks the start of the next measurement. The start and end of measurements are always triggered by and aligned to the reception of time values for Synchronized or Offset Time Bases.

requirement SWS_StbM_00372 [SWS_StbM_00372] 📄 PDF

The StbM shall perform Rate Correctio n measurements to determine the rate deviation of each configured Time Base.

requirement SWS_StbM_00373 [SWS_StbM_00373] 📄 PDF

For Rate Correction, the StbM shall eval uate the TIMELEAP _FUTURE/ TIMELEAP_ PAST flag s during the start of a measurement. The StbM shall not start a Rate Correction measurement when the state of any of the flags equals „Set“ .

requirement SWS_StbM_00374 [SWS_StbM_00374] 📄 PDF

For Rate Correction measurements, the StbM shall evaluate the TIMEOUT flag. The StbM shall discard the measurement , if the flag equals „Set“ .

requirement SWS_StbM_00375 [SWS_StbM_00375] 📄 PDF

For Rate Correction measurements, the StbM shall evaluate state changes of the SYNC_TO_GATEWAY flag during measurements. The S tbM shall discard the measurement if the flag state changes.

requirement SWS_StbM_00376 [SWS_StbM_00376] 📄 PDF

For Rate Correction measurements, the StbM shall evaluate the TIMELEAP _FUTURE and TIMELEAP_PAST flag s during measurements. The StbM shall discard the measurement , if any of the flags equals „Set“ .

requirement SWS_StbM_00377 [SWS_StbM_00377] 📄 PDF

The StbM shall not perform Rate Correction when the measurement duration StbMRateCorrectionMeasurementDuration ( ECUC_StbM_00054 : ) is set to zero.

requirement SWS_StbM_00379 [SWS_StbM_00379] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_ GetRate Deviation () shall r eport to DET the development error STBM_E_PARAM , if called with a parameter timeBaseI d , which  is not configured or  is within the reserved value range.

requirement SWS_StbM_00380 [SWS_StbM_00380] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_ GetRate Deviation () shall r eport to DET the development error STBM _E_PARAM_POINTER , if called with a NULL pointer for parameter rateDeviation .

requirement SWS_StbM_00381 [SWS_StbM_00381] 📄 PDF

All functions that are setting User Data shall only set as many User Data bytes as defined within the userDataLength element of the StbM_UserDataType structure. If userDataLength is equal to 0, no User Data bytes shall be set. User Data bytes that are no t set shall remain at their previous value .

requirement SWS_StbM_00382 [SWS_StbM_00382] 📄 PDF

If Global Time Precision Measurement is enabled (refer to [SWS_StbM_00428] and [SWS_StbM_00307] ) for the Time Base, the Synchronized Tim e Base Record Table shall contain a history of as many blocks as configured by StbMSyncTimeRecordTableBlockCount ( ECUC_StbM_00058 : ).

requirement SWS_StbM_00383 [SWS_StbM_00383] 📄 PDF

If Global Time Pr ecision Measurement is enabled (refer to [SWS_StbM_00428] ) for the Time Base, the Offset Time Base Record Table shall contain as many blocks as configured by StbMOffsetTimeRecordTableBlockCount ( ECUC_StbM_00059 : ).

requirement SWS_StbM_00386 [SWS_StbM_00386] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_GetTimeBaseS tatus() shall report to DET the development error STBM_E_PARAM_POINTER , if called with a NULL pointer for parameter syncTimeBaseStatus or offsetTimeBaseStatus .

requirement SWS_StbM_00387 [SWS_StbM_00387] 📄 PDF

- Variation (({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MIs System Wide Global Time Master)} == FALSE) && ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MAllow System Wide Global Time Master)} == FALSE)) && ({ecuc(Stb M/ Stb MGeneral/ Stb MTime Recording Support)} == True) && ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} < 32) && (({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MTime Recording/ Stb MSync Time Record Block Callback)}==NULL) && ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MTime Recording/ Stb MOffset Time Record Block Callback)}==NULL)) TBName={ecuc(Stb M/ S tb MSynchronized Time Base.SHORT - NAME)}

requirement SWS_StbM_00388 [SWS_StbM_00388] 📄 PDF

For O ffset Time Bases, i f Global Time P recision Measurement is enabled (refer to [SWS_StbM_00428] and [SWS_StbM_00307] ) for the Time Base, on an invocation of StbM_BusSetGlobalTime() the StbM shall write the block elements GlbSeconds , GlbNanoSeconds and TimeBaseStatus to the related measurement recording table.

requirement SWS_StbM_00391 [SWS_StbM_00391] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_SetRateCorrection () shall r eport to DET the development error STBM_E_PARAM , if called with a parameter tim eBaseI d , which  is not configured or  is within the reserved value range.

requirement SWS_StbM_00392 [SWS_StbM_00392] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to T RUE , StbM_SetRateCorre ction () shall r epor t to DET the development error STBM_E_ SERVICE_DISABLED, if StbMAllow Master RateCorrection is set to FALSE for the corresponding Time Base , i.e., it is not allowed to call StbM_SetRateCorrection () .

requirement SWS_StbM_00393 [SWS_StbM_00393] 📄 PDF

For Time Base s 16 to 31 each invocation of StbM_BusSetGlobalTime() shall update the corresponding Main Time Tuple and set the User Data and the Time Base Status accordingly.

requirement SWS_StbM_00394 [SWS_StbM_00394] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_GetSyncTimeRecordHead () shall repor t to DET the development error STBM_E_PARAM , if called with a parameter timeBaseI d , which  is not configured or  refers to a Pure Local or a Offset Time Base or  is within the reserved value rang e.

requirement SWS_StbM_00395 [SWS_StbM_00395] 📄 PDF

If StbMAllow Master RateCorrection equals TRUE , an invocation of StbM_S etRateCorrection() shall set the rate correction value. O therwise StbM_SetRateCorrection() shall do nothing and return E_NOT_OK .

requirement SWS_StbM_00396 [SWS_StbM_00396] 📄 PDF

If the absolute value of the rate correction parameter rateDeviation , which is passed to StbM_SetRateCorrection(), is greater than StbMMasterRateDeviationMax , StbM_SetRateCorrection shall set the actually applied rate correction value to either ( StbMMasterRateDeviationMax) or ( - StbMMasterRateDeviationMax) (depending on sign of rate Deviation ) .

requirement SWS_StbM_00397 [SWS_StbM_00397] 📄 PDF

For Time Bases with StbMSynchronizedTimeBaseIdentifier 0 to 31 ( ECUC_StbM_00021 : ) and StbMIsSystemWideGlobalTimeMaster = False ( ECUC_StbM_00036 : ), the StbM shall return on invocation of StbM_GetRateDeviation() the rate deviation r Dev , which has been calculated for that Time Base . If no rate deviation has been calculated , StbM_GetRateDeviation() shall return E_NOT_OK .

requirement SWS_StbM_00398 [SWS_StbM_00398] 📄 PDF

For Pure Local Time Bases StbM_GetCurrentTime() and StbM_GetCurrentTime Extended () shall return the User Data as set by StbM_SetGlobalTime() , StbM_UpdateGlobalTime() or StbM_SetUserData () by the lo cal Pure Local Time Master.

requirement SWS_StbM_00399 [SWS_StbM_00399] 📄 PDF

For Pure Local Time Bases all bits of the Time Base status timeBaseStatus shall be set to 0, except for bit GLOBAL_TIME_BASE . GLOBAL_TIME_BASE shall be set to 1, by a valid invocation of StbM_S etGlobalTime() or StbM_UpdateGlobalTime() and only set to 0 by StbM_Init() .

requirement SWS_StbM_00404 [SWS_StbM_00404] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , GetOffset TimeReco rd Head shall r eport to DE T the development error STBM_E_PARAM_POINTER , if called with an invalid pointer of parameter offsetRecordTableHead .

requirement SWS_StbM_00405 [SWS_StbM_00405] 📄 PDF

If the swi tch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , GetSync TimeRecord Head shall r eport to DET the development error STBM_E_PARAM_P OINTER , if called with an invalid pointer of parameter sync RecordTableHead .

requirement SWS_StbM_00406 [SWS_StbM_00406] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_StartTimer() shall r eport to DET the development error STBM_ E_PARAM , if called with a parameter customerId , which is not configured.

requirement SWS_StbM_00407 [SWS_StbM_00407] 📄 PDF

The frequency of invocations of StbM_MainFunction is determined by the configuration parameter StbMMainFunctionPeriod .

requirement SWS_StbM_00408 [SWS_StbM_00408] 📄 PDF

StbM_GetMasterConfig() shall return the value of the configuration parameter StbMIsSystemWideGlobalTimeMaster ( ECUC_StbM_00036 : ) for the Time Base timeBaseId . This is to check, if the StbM is configured as sy stem wide Global Time Master for a specific Time Base.

requirement SWS_StbM_00409 [SWS_StbM_00409] 📄 PDF

Name Start Timer Comment Interface, which starts a timer for a Time Base Is Service true Variation -- Possible Errors 0 E_ OK Operation successful 1 E_ NOT_ OK Operation failed Operation Start Timer Comment Starts a Stb M internal timer, which expires at the given expire Time and which triggers a time notification callback. Variation -- Parameters expire Time Type Stb M _ Time Stamp Type Direction IN Comment -- Variation -- Possible Errors E _ O K E _ N O T _ O K

requirement SWS_StbM_00411 [SWS_StbM_00411] 📄 PDF

The StbM shall apply rate correction to a Time Base, if StbMAllowMasterRateCorrection ( ECUC_StbM_00043 : ) equals TRUE and a valid rate correction value has been set by StbM_SetRateCorrection() .

requirement SWS_StbM_00412 [SWS_StbM_00412] 📄 PDF

F or a Synchronized Time Base t he StbM shall use r rc = 1, if a valid correction rate (r rc ) has not yet been calculated or is not being calculated (refer [SWS_StbM_00377] ) but shall be applied (refer to 7.3.8.2 ). F or an Offset Time Base t he StbM shall use r orc = 1, if a valid correction rate (r orc ) has not yet been calculated or is not being calculated (refer [SWS_StbM_00377] ) but shall be applied (refer to 7.3.8.2 ).

requirement SWS_StbM_00413 [SWS_StbM_00413] 📄 PDF

After initialization the StbM shall maintain the Time of each Pure Local Time Base autonomously via a hardware reference clock (referenced by StbMLocalTimeClock) .

requirement SWS_StbM_00414 [SWS_StbM_00414] 📄 PDF

StbM_GetTimeBaseUpdateCounter () shall return the value of the timeBaseUpdateCounter of the corresponding Time Base.

requirement SWS_StbM_00415 [SWS_StbM_00415] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_GetMasterConfig() shall report to DET the development error STBM_E_PARAM , if called with a parameter timeBaseI d , which  is not configured or  is within the reserved value r ange .

requirement SWS_StbM_00416 [SWS_StbM_00416] 📄 PDF

[SWS_StbM_00416] Upstream requirements: SRS_BSW_00386, SRS_BSW_00323 ⌈If the switch StbMDevErrorDetect is set to TRUE, StbM_GetMasterConfig shall report to DET the development error STBM_E_PARAM_POINTER, if called with a NULL pointer for parameter masterConfig.⌋

requirement SWS_StbM_00421 [SWS_StbM_00421] 📄 PDF

If any StbMNotificationCustomer ( ECUC_StbM_00050 : ) is configured, the StbM shall use one additional GPT source (referenced by St bMGptTimerRef ECUC_StbM_00039 : ), w hich is not used for other purposes.

requirement SWS_StbM_00422 [SWS_StbM_00422] 📄 PDF

 For Time Bases with StbMSynchronizedTimeBaseIdentifier 32 to 127 ( ECUC_StbM_00021 : ) and  for Time Bases with StbMSynchronizedTimeBaseIdentifier 0 to 31 and StbMIsSystemWideGlo balTimeMaster equals True ( ECUC_StbM_00036 : ) the StbM shall return on invocation of StbM_GetRateDeviation() the rate deviation that has been set by StbM_SetRateCorrection() for that Time Base. If no rate devia tion has been set, StbM_GetRateDeviation() shall return E_NOT_OK .

requirement SWS_StbM_00424 [SWS_StbM_00424] 📄 PDF

The StbM shall calculate the ( rate corrected ) time (TL) of its local instance of the Time Base as: TL = TG Sync + (TV - TV Sync ) * r With:  TV = Current value of the Virtual Local Time  TV Sync = Virtual Local Time part of the Main Time Tuple  TG Sync = Globa l Time part of the Main Time Tuple  r = Rate for correcting the Time Base with r = r rc for Synchronized Time Bases r = r or c - 1 for Offset Time Bases If StbMAllowMasterRateCorrection ( ECUC_StbM_00043 : ) equals FA LSE r shall be set to  1 for Synchronized Time Bases  0 for Offset Time Bases (i.e., no rate correction is applied).

requirement SWS_StbM_00425 [SWS_StbM_00425] 📄 PDF

For Synchronized and Offset Time Bases for which the StbM is configured as Time Slave or Time Gateway StbM_GetTimeLeap() shall return the Global T ime difference between the Updated R eceived Time and the Synclocal Time , i.e. , TG Rx - TL Sync , which is calcu lated up on each, except the very first, valid invocation of StbM_BusSetGlobalTime() for the corresponding Time Base. With  TL Sync = Global Time part of the Synclocal Time Tuple  TG Rx = Global Time part of the Updated Rx Time Tuple If the calculated t ime di fference e xceeds the value range of the timeJump parameter of StbM_GetTimeLeap() the returned time difference shall be limited to either the maximum negative or the maximum positive value of the type of timeJump (refer to StbM_Time Diff Type ) . StbM_GetTimeLeap() shall return E_NOT_OK until the second valid invocation of StbM_BusSetGlobalTime() for the corresponding Time Base.

requirement SWS_StbM_00428 [SWS_StbM_00428] 📄 PDF

The StbM shall do Global Time precision measurement only for Synchronized Time Bases and Offset Time Bases, for which StbMIsSystemWideGlobalTimeMaster ( ECUC_StbM_00036 : : ) is set to FALSE .

requirement SWS_StbM_00431 [SWS_StbM_00431] 📄 PDF

For the Time Master of a Synchronized Time Base the StbM shall use r rc = 1, if a valid correction rate (r rc ) has not yet been set. For the Time Master of an Offset Time Base the StbM shall use r orc = 1, if a valid correct ion rate (r orc ) has not yet been set .

requirement SWS_StbM_00432 [SWS_StbM_00432] 📄 PDF

When the StbM detects for an active customer, while monitoring the difference to CustomerTimerExpireTime (see [SWS_StbM_00335] ), that  the CustomerTimerExpireTime has already been passed and  the GPT timer has not yet been starte d, the StbM shall call StbM_TimeNotificationCallback() immediately.

requirement SWS_StbM_00433 [SWS_StbM_00433] 📄 PDF

The Main Time Tuple shall only be updated  after setting a new Global Time or a new Rate Correction value by the application  after obtaining a Received Time Tuple (i.e., a new Time Tuple) from a Timesyn c Module  after t he Offset Co rrection By Rate Adaption interval (see [SWS_StbM_00353] ) However, the Main Time Tuple may be updated if there has been no update for more than 3s.

requirement SWS_StbM_00434 [SWS_StbM_00434] 📄 PDF

For Time Domains 0 to 15 StbM_GetCurr entTime() , StbM_GetCurrentTime Extended () , and StbM_ Bus GetCurrentTime() shall return E_NOT_OK if the value of the associated Virtual Local Time could not be retrieved.

requirement SWS_StbM_00435 [SWS_StbM_00435] 📄 PDF

For Time Base 0 to 15 StbM_ Bus GetCurrentTime() shall return for the requested Time Domain the T ime Tuple [ T L ; TV ] of the Time Base , the related Status and the User Data. The current time of the Time Base shall be derived from the associated Virtual Local Time , w h i c h is derived from either the referenced OS counter, a GPT or a referenced Ethernet controller (refer to StbMLocalTimeHardware ) .

requirement SWS_StbM_00436 [SWS_StbM_00436] 📄 PDF

Although the retrieved value of the Virtual Local Time and the time which is returned by StbM_GetCurrentTime() , StbM_GetCurrentTime Extended () , and StbM_ Bus GetCurrentTime() form a new Time Tuple [TL ; TV], this tu ple shall only replace the Main Time Tuple if the requirements as specified in [ SWS_StbM_00433] are met.

requirement SWS_StbM_00437 [SWS_StbM_00437] 📄 PDF

StbM_GetCurrent VirtualLocal Time() shall return the value of the Virtual Local Time of the associated Time Base . For Offset Time Bases the Virtual Local Time of the referenced Synchronized T ime Base shall be returned . If the Virtual Local Time could not be determined (e.g., the underlying hardware counter h as not been activated yet ), StbM_GetCurrent VirtualLocal Time() shall return E_NOT_OK .

requirement SWS_StbM_00438 [SWS_StbM_00438] 📄 PDF

The StbM shall determine f or Time Base s 0 to 15 on each invocation of StbM_BusSetGlobalTime() t he Synclocal Ti me Tuple [ TL Sync ;TV Sync ] by using the value of the Virtual Local Time of the Updated Rx Time Tuple as reference (i.e., TV Rx is used for TV when calculating TL in [SWS_StbM_00355] ) . The Synclocal Tim e Tuple s hall be determin ed using the Main Time Tuple before the Main Time Tuple itself is updated.

requirement SWS_StbM_00439 [SWS_StbM_00439] 📄 PDF

The StbM shall determine f or Time Bases 16 to 31 on each invocation of StbM_BusSetGlobalTime() the Syn clocal Time Tup le [ TL S ync ;TV Sync ] by using the value of the Virtual Local Time of the Updated Rx Time Tuple as reference (i.e., TV Rx is used for TV when calculating TL in [SWS_StbM_00355] ). The Synclocal Time Tupl e shall b e determined using the Main T ime Tuple before the Main Time Tuple is updated.

requirement SWS_StbM_00440 [SWS_StbM_00440] 📄 PDF

For Synchronized Time Bases and if rate correction is enabled (see [SWS_StbM_00377] ) and i f the absolute value of the time offset between the Received Time and the Synclo cal Time (abs ( TG Rx - TL Sync ) ) is equal or greater than StbMOffsetCorrectionJumpThreshold ( ECUC_StbM_00056 : ) , the StbM shall use the factor r rc for the rate correction term r: r = r rc Otherwise r shall be set to 1 , unl ess r shall be set accordingly to [SWS_StbM_00356] or [SWS_StbM_00353] .

requirement SWS_StbM_00441 [SWS_StbM_00441] 📄 PDF

For Offset Time Bases and if rate correction is enabled (see [SWS_StbM_00377] ) and i f the absolute value of the time offset between the Received Time and the Synclo cal Time (abs ( T G Rx - TL Sync ) ) is equal or greater than StbMOffsetCorrectionJumpThreshold ( ECUC_StbM_00056 : ) , the StbM shall use the factor r or c for the rate correction term r: r = r or c - 1 Otherwise r shall be set to 0, unl ess r shall be set accordlingly to [SWS_StbM_00356] or [SWS_StbM_00353] .

requirement SWS_StbM_00442 [SWS_StbM_00442] 📄 PDF

For Synchronized Time Bases the Main Time Tuple shall be updated according to [ SWS_StbM_00440] and [SWS_StbM_00342] . U pon invocation of StbM_SetRateCorrection() the StbM shall calculate a temporary Time Tuple according to [SWS_StbM_00424] and replace the Main Time Tuple by this temporary Time Tuple. For calculati on of the tempora ry Time Tuple StbM shall use the r value, which is valid before it is updated by current call of StbM_SetRateCorrection() .

requirement SWS_StbM_00443 [SWS_StbM_00443] 📄 PDF

For Offset Time Bases the Main Time Tuple shall be updated according to [SWS_StbM_00441] , [SWS_StbM_00190] and [SWS_StbM_00304] . Upon invocation of StbM_SetRateCorrection() the StbM shall calculate a temporary Time Tuple according to [SWS_StbM_00424] and replace the Main Time Tuple by this temporary Time Tuple. For calculation of the temporary Time Tuple StbM shall use the r value, which is valid before it is updated by current call of StbM_SetRateCorrection() .

requirement SWS_StbM_00444 [SWS_StbM_00444] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_GetCurrentVirtualLocalTime () shall r eport to DET the development error STBM_E_PARAM_POINTER , if called with a NULL pointer for parameter localT i mePtr .

requirement SWS_StbM_00445 [SWS_StbM_00445] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRU E , St bM_GetCurrentVirtualLocalTime () shall report to DET the development error STBM_E_PARAM , if called with a parameter timeBaseId , which  is not configured or  is within the reserved value range.

requirement SWS_StbM_00446 [SWS_StbM_00446] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_BusGetCurrentTime() shall r eport to DET the development error STBM_E_PARAM , if called with a parameter timeBaseId , which  refer s to an Offset Time Base or  refer s to a Pure Local Time Bas e or  is not configured or  is within the reserved value range.

requirement SWS_StbM_00447 [SWS_StbM_00447] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_BusGetCurren tTime() shall r eport to DET the development error STBM_E_PARAM_POINTER , if called with a NULL pointer for parameter globalT imePtr, localTimePtr or userData .

requirement SWS_StbM_00448 [SWS_StbM_00448] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_SetGlobalTime() shall report to DET the development error STBM_E_PARAM_TIMESTAMP , if called with a parameter timeStamp that contains invalid elem ents (e.g., nanoseconds part > 999999999 ns).

requirement SWS_StbM_00449 [SWS_StbM_00449] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_SetGlobalTi me() shall report to DET the development error STBM_E_PARAM_USERDATA , if called with an invalid value of parameter userData , i.e., userDataLength > 3.

requirement SWS_StbM_00451 [SWS_StbM_00451] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_UpdateGlobalTime() shall report to DET the development error STBM_E_PARAM_TIMESTAMP , if called with a parameter timeStamp that contains invali d elements (e.g., nanoseconds part > 999999999 ns).

requirement SWS_StbM_00452 [SWS_StbM_00452] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_UpdateGlobal Time() shall report to DET the development error STBM_E_PARAM_USERDATA , if called with an invalid value of parameter userData , i.e., userDataLength > 3.

requirement SWS_StbM_00453 [SWS_StbM_00453] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_ SetOffset () shall report to DET the development error STBM_E_PARAM_TIMESTAMP , if called with a parameter timeStamp that contains invalid elements (e. g., nanoseconds part > 999999999 ns).

requirement SWS_StbM_00454 [SWS_StbM_00454] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_ SetOffset () shall report to DET the development error STBM_E_PARAM_USERDATA , if called with an invalid value of parameter userData , i.e., userDataLength > 3.

requirement SWS_StbM_00455 [SWS_StbM_00455] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_BusSetGlobalTime() shall re port to DET the development error STBM_E_PARAM_TIMESTAMP , if called with a parameter timeStamp that contains invalid elements (e.g., nanoseconds part > 999999999 ns).

requirement SWS_StbM_00456 [SWS_StbM_00456] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_BusSetGlobalTime () shall report to DET the development error STBM_E_PARAM_USERDATA , if called with a n invalid value of parameter userData , i.e., userDataLength > 3.

requirement SWS_StbM_00457 [SWS_StbM_00457] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_ SetUserData () shall report to DET the development error STBM_E_PARAM_USERDATA , if called with an invalid value of parameter userData , i.e., userData Length > 3.

requirement SWS_StbM_00458 [SWS_StbM_00458] 📄 PDF

- Tags: atp.Status=draft Variation ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MTime Validation)} != NULL) && ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} < 16) && ({ecuc(Stb M/ Stb MSynchronized Time Base)} == {ecuc(Eth TSyn/ Eth TSyn Global Time D omain/ Eth TSyn Synchronized Time Base Ref - >Stb MSynchronized Time Base)})) TBName={ecuc(Stb M/ Stb MSynchronized Time Base.SHORT - NAME)}

requirement SWS_StbM_00459 [SWS_StbM_00459] 📄 PDF

- Tags: atp.Status=draft Variation ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MTime Validation)} != NULL) && ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} < 16) && ({ecuc(Stb M/ Stb MSynchronized Time Base)} == {ecuc(Fr TSyn/ Fr TSyn Global Time Dom ain/ Fr TSyn Synchronized Time Base Ref - >Stb MSynchronized Time Base)}) TBName={ecuc(Stb M/ Stb MSynchronized Time Base.SHORT - NAME)}

requirement SWS_StbM_00460 [SWS_StbM_00460] 📄 PDF

- Tags: atp.Status=draft Variation {ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MTime Validation)} != NULL) && ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} < 16) && ({ecuc(Stb M/ Stb MSynchronized Time Base)} == {ecuc(Can TSyn/ Can TSyn Global Time Domain/ Can TSyn Synchronized Time Base Ref - >Stb MSynchronized Time Base)}) TBName={ecuc(Stb M/ Stb MSynchronized Time Base.SHORT - NAME)}

requirement SWS_StbM_00461 [SWS_StbM_00461] 📄 PDF

{DRAFT} Name Time Base Provider Notification_ Eth_{TB_ Name} (draft) Comment Notifies about the availability of a new Ethernet specific data block recorded for the Time Base. Tags: atp.Status=draft Is Service true Variation ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MTime Validation)} != NULL) && ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} < 16) && ({ecuc(Stb M/ Stb MSynchronized Time Base)} == {ecuc(Eth TSyn/ Eth TSyn Global Time Domain/ Eth TSyn Synchronized Time Ba se Ref - >Stb MSynchronized Time Base)}) TB_ Name ={ecuc(Stb M/ Stb MSynchronized Time Base.SHORT - NAME)} Possible Errors 0 E_ OK Operation successful 1 E_ NOT_ OK Operation failed Operation Set Master Timing Data Comment Provides the recorded data block for the Time Master of the Time Base. Variation ({ecuc(Eth TSyn/ Eth TSyn Global Time Domain/ Eth TSyn Port Role/ Eth TSyn Global Time Master)}!=NULL) Parameters measurement Data Type Stb M _ Eth Time Master Measurem ent Type Direction IN Comment Block of the table Variation -- Possible Errors E _ O K E _ N O T _ O K Operation Set Pdelay Initiator Data Comment Provides the recorded data block for the p Delay Initiator of the Time Base. Variation (({ecuc(Eth TSyn/ Eth TSyn Global Time Domain/ Eth TSyn Port Role/ Eth TSyn Global Time Slave)}!=NULL) Parameters measurement Data Type Stb M _ Pdelay Initiator Measurement Type Direction IN Comment Block of the table Variation -- Possible Errors E _ O K E _ N O T _ O K Operation Set Pdelay Responder Data Comment Provides the recorded data block for the p Delay Responder of the Time Base. Variation (({ecuc(Eth TSyn/ Eth TSyn Global Time Domain/ Eth TSyn Port Role/ Eth TSyn Global Time Master)}!=NULL) Parameters measurement Data Type Stb M _ Pdelay Responder Measurement Type Direction IN Comment Block of the table Variation -- Possible Errors E _ O K E _ N O T _ O K Operation Set Slave Timing Data Comment Provides the recorded data block for the Time Slave of the Time Base. Variation ({ecuc(Eth TSyn/ Eth TSyn Global Time Domain/ Eth TSyn Port Role/ Eth TSyn Global Time Slave)}!=NULL) Parameters measurement Data Type Stb M _ Eth Time Slave Measurement Type Direction IN Comment Block of the table Variation -- Possible Errors E _ O K E _ N O T _ O K

requirement SWS_StbM_00462 [SWS_StbM_00462] 📄 PDF

{DRAFT} Name Time Base Provider Notification_ Fr_{TB_ Name} (draft) Comment Notifies about the availability of a new Flexray specific data block recorded for the Time Base. Tags: atp.Status=draft Is Service true Variation ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MTime Validation)} != NULL) && ({ecuc(Stb M/ Stb MSynchro nized Time Base/ Stb MSynchronized Time Base Identifier)} < 16) && ({ecuc(Stb M/ Stb MSynchronized Time Base)} == {ecuc(Fr TSyn/ Fr TSyn Global Time Domain/ Fr TSyn Synchronized Time Base Ref - >Stb MSynchronized Time Base)}) TB_ Name ={ecuc(Stb M/ Stb MSync hronized Time Base.SHORT - NAME)} Possible Errors 0 E_ OK Operation successful 1 E_ NOT_ OK Operation failed Operation Set Master Timing Data Comment Provides the recorded data block for the Time Master of the Time Base. Variation ({ecuc(Fr TSyn/ Fr TSyn Global Time Domain/ Fr TSyn Global Time Master)}!=NULL) Parameters measurement Data Type Stb M _ Fr Time Master Measurement Type Direction IN Comment Block of the table Variation -- Possible Errors E _ O K E _ N O T _ O K Operation Set Slave Timing Data Comment Provides the recorded data block for the Time Slave of the Time Base. Variation ({ecuc(Fr TSyn/ Fr TSyn Global Time Domain/ Fr TSyn Global Time Slave)}!=NULL) Parameters measurement Data Type Stb M _ Fr Time Slave Measurement Type Direction IN Comment Block of the table Variation -- Possible Errors E _ O K E _ N O T _ O K

requirement SWS_StbM_00463 [SWS_StbM_00463] 📄 PDF

{DRAFT} Name Time Base Provider Notification_ Can_{TB_ Name} (draft) Comment Notifies about the availability of a new CAN specific data block recorded for the Time Base. Tags: atp.Status=draft Is Service true Variation ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MTime Validation)} != NULL) && ({ecuc(Stb M/ Stb MSynchronize d Time Base/ Stb MSynchronized Time Base Identifier)} < 16) && ({ecuc(Stb M/ Stb MSynchronized Time Base)} == {ecuc(Can TSyn/ Can TSyn Global Time Domain/ Can TSyn Synchronized Time Base Ref - >Stb MSynchronized Time Base)}) TB_ Name ={ecuc(Stb M/ Stb MSynch ronized Time Base.SHORT - NAME)} Possible Errors 0 E_ OK Operation successful 1 E_ NOT_ OK Operation failed Operation Set Master Timing Data Comment Provides the recorded data block for the Time Master of the Time Base. Variation ({ecuc(Can TSyn/ Can TSyn Global Time Domain/ Can TSyn Global Time Master)}!=NULL) Parameters measurement Data Type Stb M _ Can Time Master Measurement Type Direction IN Comment Block of the table Variation -- Possible Errors E _ O K E _ N O T _ O K Operation Set Slave Timing Data Comment Provides the recorded data block for the Time Slave of the Time Base. Variation ({ecuc(Can TSyn/ Can TSyn Global Time Domain/ Can TSyn Global Time Slave)}!=NULL) Parameters measurement Data Type Stb M _ Can Time Slave Measurement Type Direction IN Comment Block of the table Variation -- Possible Errors E _ O K E _ N O T _ O K

requirement SWS_StbM_00465 [SWS_StbM_00465] 📄 PDF

T he StbM shall record timing data for Time Validation for Synchronized Time Bases (refer t o ECUC_StbM_00021 : StbMSynchronizedTimeBase ), which h ave Time Validation enabled ( i.e., ECUC_StbM_00072 : S bMTimeValidation is configured ) .

requirement SWS_StbM_00466 [SWS_StbM_00466] 📄 PDF

Block 0 <bus>SlaveTimingData StbM_<bus>TimeSlaveMeasure mentType Bus specific structure to capture Time Slave Validation recording data Block 1 <bus>SlaveTimingData StbM_<bus>TimeSlaveMeasure mentType … Block ( StbMTime - Validation - RecordTable - BlockCount - 1) Table 2 : Time Slave Validation Record Table

requirement SWS_StbM_00467 [SWS_StbM_00467] 📄 PDF

The type of the blocks in the Time Slave Validation Record Table ( Table 2 ) shall depend on the Timesync Module, which pro vides the data for the Time Slave Validation Record Table of the correspondi ng Time Base. Timesync Module (which provides timing record data) Type (of block in the Time Slave Validation Record Table) CanTSyn (by StbM_CanSetSlaveTimingData() ) StbM_CanTi meSlaveMeasurementType FrTSyn (by StbM_FrSetSlaveTimingData() ) StbM_FrTimeS laveMeasurementType EthTSyn (by StbM_EthSetSlaveTimingData() ) StbM_EthTimeSlaveMeasurementType Table 3 :Type Mapping for Time Slave Validation Record Table

requirement SWS_StbM_00468 [SWS_StbM_00468] 📄 PDF

Block 0 <bus>MasterTimingData StbM_<bus>TimeMasterMeasure mentType Bus specific structure to capture Time Master Validation recording data of a Time Master Block 1 <bus>MasterTimingData StbM_<bus>TimeMasterMeasure mentType … Block ( StbMTime - Validation - RecordTable - BlockCount - 1) Table 4 :Time Master Validatioin Record Table

requirement SWS_StbM_00469 [SWS_StbM_00469] 📄 PDF

The type of the blocks in the Time Master Validation Record Table ( Table 4 ) shall depend on the Timesync Module, which provides the data for the Time Master Validation Record Table of the correspon ding Time Base. Timesync Module (which provides timing record data) Type (of block in the Time Master Validation Record Table) CanTSyn (by StbM_CanSetMasterTimingData() ) StbM_CanTimeMasterMeasurementType FrTSyn (by StbM_FrSetMasterTimingData() ) StbM_F rTimeMasterMeasurementType EthTSyn (by StbM_EthSetMasterTimingData() ) StbM_EthTimeMasterMeasurementType Table 5 :Type Mapping for Time Master Validation Record Table

requirement SWS_StbM_00470 [SWS_StbM_00470] 📄 PDF

Each  T ime Slave Validation Record Table ( Table 2 ) and  T ime Master Validation Record Table ( Table 4 )  Pdelay Initiator Validation Record Table ( Table 6 )  Pdelay Responder Validation Record Table ( Table 7 ) shall contain as many blocks as configured by StbMTimeVadidationRecordTableBlockCount ( ECUC_StbM_00073 : ).

requirement SWS_StbM_00471 [SWS_StbM_00471] 📄 PDF

If Time Validation is enabled for a Time Base (refer to [ SWS_StbM_00464 ] and [ SWS_StbM_00465 ] ), upon invocation of StbM_<bus >SetSlaveTimingData() the StbM shall copy the content of the structure, which is passed by parameter measureDataPtr , to the next free <bus>SlaveTimingData block of the Time Slave Validation Record Table ( Table 2 ) of that Time Base. The StbM shall then shall set the value of the block element  <bus>SlaveTimingData.referenceGlobalTimestamp as TL Sync (refer to [SWS_StbM_00438] ) and  <bus>SlaveTimingData.referenceLocalTimestamp as TV Syn (refer t o [SWS_StbM_00438] ). (i.e., to the value of the Synclocal Time Tuple as set by the preceding call of StbM_BusSetGlobalTime() ).

requirement SWS_StbM_00472 [SWS_StbM_00472] 📄 PDF

If no free block is available in the Time Slave Va lidation Record Table of a Time Base (i.e., all blocks have been written and no notification via operation SetSlaveTimingData of port TimeBaseProviderNotification_{bus}_{TimeBase} has yet occurred to pass all blocks to the application), the StbM shall over write the block containing the oldest measurement data upon invocation of StbM_<bus>SetSlaveTimingData() .

requirement SWS_StbM_00473 [SWS_StbM_00473] 📄 PDF

If Time Validation is enabled for a Time Base (refer to SWS_StbM_00464 , SWS_StbM_00465 ), upon invocation of StbM_<bus>SetMasterTimingData() the StbM sh all copy the content of the structure, which is passed by parameter measureDataPtr , to the next free block <bus>MasterTimingData of the Time Master Validation Record Table ( Table 4 ) of that Time Base.

requirement SWS_StbM_00474 [SWS_StbM_00474] 📄 PDF

{DRAFT} If no free block is available in the Timesync Master Timing Record Table of a Time Base (i.e., all blocks have been written and no notification via SetMasterTimingData of port TimeBaseProviderNotification_{bus}_{TB_ Name} has yet occurred to pass all blocks to the application), the StbM shall overwrite the block containing the oldest measurement data upon invocation of StbM_<bus>SetMasterTimingData() .

requirement SWS_StbM_00475 [SWS_StbM_00475] 📄 PDF

For each Time Base,  which has Time Validation enabled (refer to SWS_StbM_00465 ) and  for which the StbM is configured as a Time Slave or Time Gateway the StbM shall check within each StbM_MainFunction() call, if new blocks (i.e., containing data that has not yet been passed to the application) have been written in the Time Slave Validation Record Table ( Table 2 ) . If so, the StbM shall pass all new blocks to the application by (repeatedly, block by block) calling operation SetSlaveTimingData of port TimeBaseProviderNotification_{bus}_{TimeBase} . The StbM shall pass the blocks starting with the block containing th e oldest data, and followed by the blocks in ascending order regarding their age (i.e., FIFO order). The block containing the newest data shall be passed last.

requirement SWS_StbM_00476 [SWS_StbM_00476] 📄 PDF

For each Time Base,  which has Time Validation enabled (refer t o SWS_StbM_00465 ) and  for which the StbM is configured as a Time Master or Time Gateway the StbM shall check within each StbM_MainFunction() , if new blocks (i.e., containing data that has not yet been passed to the appli cation) have been written to the Time Master Validation Record Table ( Table 4 ) . If so, the StbM shall pass all new blocks to the application by (repeatedly, block by block) calling operation SetMasterTimingData of port TimeBasePro viderNotification_{bus}_{TimeBase} . The StbM shall pass the blocks starting with the block containing the oldest data, and followed by the blocks in ascending order regarding their age (i.e., FIFO order). The block containing the newest data shall be pass ed last.

requirement SWS_StbM_00477 [SWS_StbM_00477] 📄 PDF

The StbM shall ensure data integrity of the blocks in the  Time Slave Validation Record Table ( Table 2 ) and  Time Master Validation Record Table ( Table 4 ) and  Pdelay Initiator Validation Record Table ( Table 6 ) and  Pdelay Responder Validation Record Table ( Table 7 ) . If a block is currently being overwritten, it shall not be passed to the application. If a block is curr ently passed to the application, it shall not be overwritten until processed by the application.

requirement SWS_StbM_00478 [SWS_StbM_00478] 📄 PDF

If Time Validation is enabled for a Time Base (refer to SWS_StbM_00465 ), upon invocation of StbM_EthSetPdelayInitiatorData() the StbM shall write the content of the structure, which is passed by parameter measureDataPtr , to the next free block pdelayInitiatorData of the corresponding Pdelay Initiator Validation Record Table ( Table 6 ) of that Time Base .

requirement SWS_StbM_00479 [SWS_StbM_00479] 📄 PDF

For each Time Base, which  has Time Valid ation enabled (refer to SWS_StbM_00465 ) and  is mapped to a Slave Communication Port on an Ethernet Time Domain, the StbM shall check within each StbM_MainFunction() , if new blocks (i.e., containing data that has not yet been passed to the application) have been written to the Pdelay Initiator Validation Record Table ( Table 6 ) . If so, the StbM shall pass all new blocks to the application by (repeatedly, block by block) calling ope ration SetPdelayInitiatorData of port TimeBaseProviderNotification_Eth_{TimeBase} . The StbM shall pass the blocks starting with the block containing the oldest data and followed by the blocks in ascending order regarding their age (i.e., FIFO order). The block containing the newest data shall be passed last.

requirement SWS_StbM_00480 [SWS_StbM_00480] 📄 PDF

If Time Validation is enabled for a Time Base (refer to SWS_StbM_00464 , SWS_StbM_00465 ), upon invocation of StbM_EthSetPdelayResponderData() the StbM s hall write the content of the structure, which is passed by parameter measureDataPtr , to the next free block PdelayResponderData of the corresponding Pdelay Responder Validation Record Table ( Table 7 ) of that Time B ase.

requirement SWS_StbM_00481 [SWS_StbM_00481] 📄 PDF

For each Time Base, wh ich  has Time Validation enabled (refer to SWS_StbM_00465 ) and  is mapped to a Master Communication Port on an Ethernet Time Domain, the StbM shall check within each StbM_MainFunction() , if new blocks (i.e., containing dat a that has not yet been passed to the application) have been written to the Pdelay Responder Validation Record Table ( Table 7 ). If so, the StbM shall pass all new blocks to the application by (repeatedly, block by block) calling operation SetPdelayResponderData of port TimeBaseProviderNotification_Eth_{TimeBase} . The StbM shall pass the blocks starting with the block containing the oldest data and followed by the blocks in ascending order regarding their age (i.e., FIFO order). The block containing the newest data shall be passed last.

requirement SWS_StbM_00487 [SWS_StbM_00487] 📄 PDF

The function StbM_<bus>SetSlaveTimingData() shall be pre compile time configurable ON / OFF. If the corresponding <bus>TSyn module is confi gured with Time Validation Support enabled (refer to parameter <bus>TSynTimeValidationSupport in <bus>TSyn module) StbM_ <bus> SetSlaveTimingData() shall be ON , otherwise OFF .

requirement SWS_StbM_00488 [SWS_StbM_00488] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_<bus>SetSlaveTimingData() shall r eport to DET the development error STBM_E_PARAM , if called with a parameter ti meBaseId , which does not refer to a Synchronized Time Base.

requirement SWS_StbM_00489 [SWS_StbM_00489] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE, StbM_<bus>SetSlaveTimingData() shall r eport to DET the development error STBM_E_PARAM_POINTER , if called with a NULL pointer for parameter measureDataPtr.

requirement SWS_StbM_00493 [SWS_StbM_00493] 📄 PDF

The function StbM_<bus>Se tMasterTimingData() shall be pre compile time configurable ON / OFF. If the corresponding <bus>TSyn module is configured with Time Validation Support enabled (refer to parameter <bus>TSynTimeValidationSupport in <bus>TSyn module), StbM_ <bus> SetMasterTimingDa ta() shall be ON , o therwise OFF .

requirement SWS_StbM_00494 [SWS_StbM_00494] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , S tbM_<bus>SetMasterTimingData () s hall r eport to DET the development error STBM_E_PARAM , if called with a parameter timeBaseId , which does not refer to a Synchronized Time Base

requirement SWS_StbM_00495 [SWS_StbM_00495] 📄 PDF

If the switch StbMDevErrorDet ect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_<bus>SetMasterTimingData() shall r eport to DET the development error STBM_E_PARAM_POINTER , i f called with a NULL pointer for parameter measureDataPtr .

requirement SWS_StbM_00497 [SWS_StbM_00497] 📄 PDF

The function StbM_EthSetPdelayInitiatorData() shall be pre compile time con figurable ON / OFF. If the EthTSyn module is configur ed wit h Time Validation Support enabled (refer to parameter EthTSynTimeValidationSupport in EthTSyn module), StbM_EthSetPdelayInitiatorData() shall be ON , otherwise OFF .

requirement SWS_StbM_00498 [SWS_StbM_00498] 📄 PDF

I f the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_EthSetPdelayInitiatorData() shall r eport to DET the development error STBM_E_PARAM , if called wit h a parameter time BaseId , which does not refer to a Synchronized Time Base

requirement SWS_StbM_00499 [SWS_StbM_00499] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_EthSetPdela yInitiatorData() shall r eport to DET the development error STBM_E_PARAM_POINTER , if called with a NULL pointer for parameter measureDataPtr.

requirement SWS_StbM_00501 [SWS_StbM_00501] 📄 PDF

The function StbM_EthSetPdelayResponderData() shall be pre compile time configurable ON / OFF. If the EthTSyn module is configured with Time Validation Support enabled (refer t o parameter EthTSynTimeValidationSupport in EthTSyn module), StbM_EthSetPdelayResponderData() shall be ON , otherwise OFF .

requirement SWS_StbM_00502 [SWS_StbM_00502] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_EthSetPdelayResponderData () shall r eport to DET the development error STBM_E_PARAM , if called with a parameter timeBaseId , which d oes not refer to a Synchronized T ime Base

requirement SWS_StbM_00503 [SWS_StbM_00503] 📄 PDF

If the s witch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_Et h SetPdelayResponderData () shall r eport to DET the development error STBM_E _PARAM_POINTER , if called with a NULL pointer for parameter measureDataPtr

requirement SWS_StbM_00512 [SWS_StbM_00512] 📄 PDF

If StbMLocalTimeHardware ECUC_StbM_00053 : references a Gpt Channel as local time sourc e for a Synchronized Ti m e Base, the StbM shall derive the Virtual Local Time from the value of the corresponding GPT timer. The elapsed timer value shall be read via Gpt_GetTimeElapsed() .

requirement SWS_StbM_00513 [SWS_StbM_00513] 📄 PDF

The StbM module shall apply appropriate mechanisms to allow calls of its APIs from o ther partitions than its main function, e.g. by providing a StbM satellite.

requirement SWS_StbM_00514 [SWS_StbM_00514] 📄 PDF

The StbM module shall ensure to keep the synchronous contract of its APIs, even so they are called in other partitions than StbM module is assigned to.

requirement SWS_StbM_00515 [SWS_StbM_00515] 📄 PDF

[SWS_StbM_00515] Upstream requirements: RS_TS_00008 ⌈If the range of the corresponding HW reference counter is less than that of the Vir- tual Local Time (refer to StbM_VirtualLocalTimeType), the StbM shall extend the range accordingly.⌋ Note: Depending on the HW reference clock one way of extending the range is to count overflows of the HW reference clock.

requirement SWS_StbM_00516 [SWS_StbM_00516] 📄 PDF

On invocation of StbM_SetBusProtocolParam() fo r a Time Master of Time Bases 0 to 15, the StbM shall forward the values p rovided in argument protocolParam by calling EthTSyn_SetProtocolParam() . If  the corresponding Time Base is not mapped to Ethernet or  member protocolType of argument protocolParam i s not set to STBM_ TIMESYNC_ ETHERNET StbM_ S etBusProtocolParam() shall return E_NOT_OK .

requirement SWS_StbM_00517 [SWS_StbM_00517] 📄 PDF

On invocation of StbM_GetBusProtocolParam() for Time Bases 0 to 15, the StbM shall read the structure values referenced by argument protocolParam by calling EthTSyn_GetProtocolParam() , if member protocolType o f argument protocolParam is set to STBM_ TIMESYNC_ ETHERNET . If  the corresponding Time Base is not mapped to Ethernet or  member protocolType of argument protocolParam is not set to STBM_ TIMESYNC_ ETHERNET StbM_GetBusProtocolParam() shall return E_NOT_OK .

requirement SWS_StbM_00518 [SWS_StbM_00518] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_GetBus P rotocolParam () shall r eport to DET the development error STBM_E_PARAM , if called with a parameter timeBaseId , which is not referring to a Synchr onize d Time Base.

requirement SWS_StbM_00519 [SWS_StbM_00519] 📄 PDF

If the swi tch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_GetBusProtoc olParam () shall r eport to DET the development error STBM_E_PA RAM_POINTER , if called with a NU L L pointer for parameter protocolParam .

requirement SWS_StbM_00520 [SWS_StbM_00520] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_SetBusProtocolParam () shall r eport to DET the development error STBM_E_PARAM , if called with a parameter timeBaseId , which is not referring to a Synchronized Time Base.

requirement SWS_StbM_00521 [SWS_StbM_00521] 📄 PDF

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_SetBusProtocolParam () shall r eport to DET the development error STBM_E_PARAM_POINTER , if called with a NULL pointer for parameter protocolParam .

requirement SWS_StbM_00522 [SWS_StbM_00522] 📄 PDF

Block 0 pdelayInitiatorData StbM_PdelayInitiatorMeasur ementType Structure to capture Time Validation recording data of a PdelayInitiator Block 1 pdelayInitiatorData StbM_Pdela yInitiatorMeasur ementType … Block ( StbMTime - Validation - RecordTable - BlockCount - 1) Table 6 : Pdelay Initiator Validation Record Table

requirement SWS_StbM_00523 [SWS_StbM_00523] 📄 PDF

Block 0 pdelayResponderData StbM_PdelayResponderMea surementType Structure to capture Time Validation recording data of a Pdelay Responder Block 1 pde layResponderData StbM_PdelayResponderMea surementType … Block ( StbMTime - Validation - RecordTable - BlockCount - 1) Table 7 : Pdelay Responder Validation Record Table

requirement SWS_StbM_00525 [SWS_StbM_00525] 📄 PDF

If no free block is available in the Pdelay Responder Validation Record Table of a Time Base (i.e., all blocks have been written and no notification via operation SetPdelayResponderData of port TimeBaseProviderNotification _Eth_{TimeBase} has yet occurred to pass all blocks to the application), the StbM shall overwrite the block containing the oldest measurement data upon invocation of StbM_EthSetPdelayResponderData() .

requirement SWS_StbM_00526 [SWS_StbM_00526] 📄 PDF

The StbM shall call the Status Notification callback from StbM_MainFunction() .

requirement SWS_StbM_00528 [SWS_StbM_00528] 📄 PDF

For Time Bases 16 to 31 each invocation of StbM_BusSetGlobalTime() shall update the Rx Time Tuple [TG Rx ; TV Rx ] as follows (refer to Figure 6 ) : 1. Retrieve the current Virtual Local Tim e value as TV sync 2. Calcu la te the time interval T FRD = TV Rx - TV sync based on the Local Virtual Time value of the Rx Time Tuple (TV Rx ) as provided by input parameter localTimePtr 3. Apply the current rate value of the Offset Time Base r = (r roc – 1) to the t ime interval T FRD 4. Add th e rate corrected interval r*T FRD to the Global Time of the Rx Time Tuple (TG Rx ) as provided by input parameter globalTimePtr The resulting Time Tuple [TG Rx + r*T FRD ; TV sync ] is denoted as Updated Rx Time Tuple [TG URx ; TV URx ] of the Offset Time Base.

requirement SWS_StbM_00529 [SWS_StbM_00529] 📄 PDF

For Time Bases 0 to 15 each invocation of StbM_BusSetGlobalTime() shall update the Rx Time Tuple [TG Rx ; TV Rx ] as follows (refer to Figure 6 ) : 1. Retrieve the curre nt Virtual Local Time val ue as TV sync 2. Calculate the time interval T FRD = TV Rx - TV sync based on the Local Virtual Time value of the Rx Time Tuple (TV Rx ) as provided by input parameter localTimePtr . 3. Apply the current rate value of the Synchronized Time Bas e r = r rc to the time int er val T FRD 4. Add the rate corrected interval r*T FRD to the Global Time of the Rx Time Tuple (TG Rx ) as provided by input parameter globalTimePtr The resulting Time Tuple [TG Rx + r*T FRD ; TV sync ] is denoted as Updated Rx Time Tuple [ TG URx ; TV URx ] of the Sync hr onized Time Base.

requirement SWS_StbM_00530 [SWS_StbM_00530] 📄 PDF

For Synchronized Time Bases and Pure Local Time Bases upon invocation of Stb M_Clone TimeBase() , the StbM shall  first determine o the Destination Time Base (given by input parameter timeBaseId ) and o the Source Time Base (given by configuration parameter Stb MSourceTimeBase of the given Destination Time Base ( refer to ECUC_StbM_00074 : ) )  and then derive a [Source;Destination] time tuple from the Time Bases  and then check the DEFERRED_COPY flag in cloneCfg . If the DEFERRED_COPY fl ag is set, the StbM shall  store the clone request together with the parameters passed by Stb M_Clone TimeBase() as ‘deferred’  replace any pending deferred clone request of the same [Source;Destination] t uple by the actual deferred clone request  return E_OK. If the DEFERRED_COPY flag is not set, the StbM shall  remove any pen ding deferred clone request of the same [Source;Destination] tuple  immediately process the clone request.

requirement SWS_StbM_00531 [SWS_StbM_00531] 📄 PDF

For Synchronized Time Bases and Pure Local Time B ases, the StbM shall check on every change of the TIMEOUT bit in the timeBaseStatus if a pending deferred clone request exists for which the Source part of the [Source;Destination] tuple is the same as the respective Time Base. If such a pending deferred clone request exists it shall be removed.

requirement SWS_StbM_00532 [SWS_StbM_00532] 📄 PDF

For Synchronized Time Bases and Pu re Local Time Bases, the StbM shall check on every invocation of StbM_BusSetGlobalTime() if a pending deferred clone request exists for which the Source part of the [Source;Destination] tuple is the same as the respective Time Base. If such a pending deferred clone request exists it shall be proce ssed once StbM_BusSetGlobalTime() has been processed completely, i.e., the Time Base Status has been updated, the Updated Rx Time Tuple has been subject to rate correction calculations and the Main Time Tuple has been overwritten by the Updated Rx Time Tup le (refer to ch apter 7.3.8.2 ). After processing the pending deferred clone request it shall be removed.

requirement SWS_StbM_00533 [SWS_StbM_00533] 📄 PDF

To process an immediate or deferred clone requ est the StbM shall first mask (logical AND ) the current Time Base Status with the statusMask parameter of the clone request. If the masked value is equal to the statusValue parameter of t he clone request, the StbM shall perform the clone operation. W hen processing an immediate clone request in t he course of Stb M_Clone TimeBase() , the StbM shall return E_OK if the clone request was successfully performed, otherwise the StbM shall return E_NOT_OK.

requirement SWS_StbM_00534 [SWS_StbM_00534] 📄 PDF

When performing the clone operation the StbM shall copy the Time Base value and the Time Base User Bytes. If both, Source and Destination Time Base, are using the same Virtual Local Time Source, then the Main Time Tuple s hall be copied, otherwise the StbM shall • establish a protection against interruptions and run the next two steps directly afterwards: • retri eve the current Virtual Local Time TV Source for the Source Time Base • retrieve the current Virtual Local Time TV Destin ation for the Destination Time Base • the protection against interruptions can be removed now • determine a temporary Time Tuple [TL Source ;TV Source ] • create a Time Tuple [TL Source ;TV Destination ] which then replaces the Main Time Tuple of the Destination Time Ba se.

requirement SWS_StbM_00535 [SWS_StbM_00535] 📄 PDF

When performing the clone operation the StbM shall check the flag APPLY_RATE of the cloneCfg parameter of the clone request. If the flag is set, t he StbM shall copy the Rate Correction value of the Source Time Base to the Destination Time Base.

requirement SWS_StbM_00536 [SWS_StbM_00536] 📄 PDF

When performing the c lone operation the StbM shall check the flag IMMEDIATE_TX of the cloneCfg parameter of the clone request. If the flag is set, StbM shall increment the timeBaseUpdateCounter of the Destination Time Base after having copied the Time Base value and User Data to the Destinat ion Time Base (refer to [SWS_StbM_00534] ) to force an immedi ate transmission of the Time Base on the bus .

requirement SWS_StbM_00537 [SWS_StbM_00537] 📄 PDF

If the switch S tbMDe vErrorDetect (ECUC_StbM_00012) is set to TRUE , Stb M_Clone TimeBase() shall r eport to DET the development error STBM_E_PARAM , i f called with a par ameter Time Base Id , which • is not configured or • refers to an Offset Time Base or • is within the reserved value rang e.

requirement SWS_StbM_00538 [SWS_StbM_00538] 📄 PDF

{ DRAFT } If CAN hardware timestamping is supported (re fer to configuration parameter CanIfGlobal TimeSupport in CanIf, which is referenced via ECUC_StbM_00053 : StbMLocalTimeHa rdware , if set to CanTSynGlobalTimeDomain ), StbM.c shall include CanIf.h to have access to the interface of the CanIf module.

requirement SWS_StbM_00539 [SWS_StbM_00539] 📄 PDF

{ D RA FT } If CanIfGlobalTimeSupport (referenced via StbMLocalTimeHardware ECUC_StbM_00053 : , if set to CanTSynGlobalTimeDomain ) is set to TRUE for a Synchronized Tim e Base, the StbM shall derive the current value of the Virtual Local Time (see StbM_VirtualLocalTimeType ) from the freerunning HW counter from the corresponding CAN Controller via CanIf_GetCurrentTime() . If CanIf_GetCurrentTime() returns E_NOT_OK the tim e value returned by CanIf_GetCurrentTime() shall be ignored .

requirement SWS_StbM_00544 [SWS_StbM_00544] 📄 PDF

[SWS_StbM_00544] Upstream requirements: SRS_BSW_00386, SRS_BSW_00323 ⌈If the switch StbMDevErrorDetect is set to TRUE, StbM_GetTxFreshness shall report to DET the development error STBM_E_PARAM, if called with a parameter StbM- FreshnessValueId, which is not configured.⌋

requirement SWS_StbM_00545 [SWS_StbM_00545] 📄 PDF

[SWS_StbM_00545] Upstream requirements: SRS_BSW_00386, SRS_BSW_00323 ⌈If the switch StbMDevErrorDetect is set to TRUE, StbM_GetTxFreshness shall report to DET the development error STBM_E_PARAM_POINTER, if called with a NULL pointer for parameter • StbMFreshnessValueLength • StbMFreshnessValue ⌋

requirement SWS_StbM_00546 [SWS_StbM_00546] 📄 PDF

[SWS_StbM_00546] Upstream requirements: SRS_BSW_00386, SRS_BSW_00323 ⌈If the switch StbMDevErrorDetect is set to TRUE, StbM_GetTxFresh- nessTruncData shall report to DET the development error STBM_E_PARAM, if called with a parameter StbMFreshnessValueId, which is not configured.⌋

requirement SWS_StbM_00547 [SWS_StbM_00547] 📄 PDF

[SWS_StbM_00547] Upstream requirements: SRS_BSW_00386, SRS_BSW_00323 ⌈If the switch StbMDevErrorDetect is set to TRUE, StbM_GetTxFresh- nessTruncData shall report to DET the development error STBM_E_PARAM_ POINTER, if called with a NULL pointer for parameter • StbMFreshnessValueLength • StbMFreshnessValue • StbMTruncatedFreshnessValueLength • StbMTruncatedFreshnessValue ⌋

requirement SWS_StbM_00549 [SWS_StbM_00549] 📄 PDF

[SWS_StbM_00549] Upstream requirements: SRS_BSW_00386, SRS_BSW_00323 ⌈If the switch StbMDevErrorDetect is set to TRUE, StbM_GetRxFreshness shall report to DET the development error STBM_E_PARAM, if called with a parameter StbM- FreshnessValueId, which is not configured.⌋

requirement SWS_StbM_00550 [SWS_StbM_00550] 📄 PDF

[SWS_StbM_00550] Upstream requirements: SRS_BSW_00386, SRS_BSW_00323 ⌈If the switch StbMDevErrorDetect is set to TRUE, StbM_GetRxFreshness shall report to DET the development error STBM_E_PARAM_POINTER, if called with a NULL pointer for parameter • StbMFreshnessValueLength • StbMFreshnessValue ⌋

requirement SWS_StbM_00551 [SWS_StbM_00551] 📄 PDF

[SWS_StbM_00551]{DRAFT} ⌈The SPduTxConfirmationFct function shall be set by the parameter StbMGetTxConfFreshnessValueFuncName.⌋(RS_TS_00039)

requirement SWS_StbM_00552 [SWS_StbM_00552] 📄 PDF

[SWS_StbM_00552] Upstream requirements: RS_TS_00039 ⌈The GetTxFreshnessTruncDataFct function shall be set by the parameter Stb- MGetTxTruncFreshnessValueFuncName.⌋

requirement SWS_StbM_00553 [SWS_StbM_00553] 📄 PDF

[SWS_StbM_00553] Upstream requirements: RS_TS_00039 ⌈The GetTxFreshnessFct function shall be set by the parameter StbMGet- TxFreshnessValueFuncName.⌋

requirement SWS_StbM_00554 [SWS_StbM_00554] 📄 PDF

[SWS_StbM_00554] Upstream requirements: RS_TS_00039 ⌈The GetRxFreshnessFct function shall be set by the parameter Stb- MGetRxFreshnessValueFuncName.⌋

requirement SWS_StbM_00556 [SWS_StbM_00556] 📄 PDF

[SWS_StbM_00556] Upstream requirements: SRS_BSW_00386, SRS_BSW_00323 ⌈If the switch StbMDevErrorDetect is set to TRUE, StbM_StartTimer shall report to DET the development error STBM_E_PARAM_TIMESTAMP, if called with a parame- ter expireTime that contains invalid elements (e.g., nanoseconds part > 999999999 ns).⌋

requirement SWS_StbM_00598 [SWS_StbM_00598] 📄 PDF

[SWS_StbM_00598] Status: DRAFT Upstream requirements: SRS_BSW_00386, SRS_BSW_00323 ⌈If the switch StbMDevErrorDetect is set to TRUE, StbM_GetCurrentSafeTime shall report to DET the development error STBM_E_PARAM, if called with a parameter timeBaseId, which is • not configured or • within the reserved value range. ⌋

requirement SWS_StbM_00605 [SWS_StbM_00605] 📄 PDF

[SWS_StbM_00605] Status: DRAFT Upstream requirements: SRS_BSW_00386, SRS_BSW_00323 ⌈If the switch StbMDevErrorDetect is set to TRUE, StbM_GetCurrentSafeTime shall report to DET the development error STBM_E_PARAM_POINTER, if called with a NULL pointer for parameter timeTriple or userData⌋

requirement SWS_StbM_00625 [SWS_StbM_00625] 📄 PDF

[SWS_StbM_00625] Status: DRAFT Upstream requirements: SRS_BSW_00386, SRS_BSW_00323 ⌈If the switch StbMDevErrorDetect is set to TRUE, StbM_GetFallbackVirtual- LocalTime shall report to DET the development error STBM_E_PARAM_POINTER, if called with a NULL pointer for parameter localTimePtr⌋

requirement SWS_StbM_00626 [SWS_StbM_00626] 📄 PDF

[SWS_StbM_00626] Status: DRAFT Upstream requirements: SRS_BSW_00386, SRS_BSW_00323 ⌈If the switch StbMDevErrorDetect is set to TRUE, StbM_GetFallbackVirtual- LocalTime shall report to DET the development error STBM_E_PARAM, if called with a parameter timeBaseId, which • is not configured or • is within the reserved value range ⌋

requirement SWS_StbM_00627 [SWS_StbM_00627] 📄 PDF

[SWS_StbM_00627] "Invalid Time Base Parameter" Development Error for StbM_SetCloningOffset Upstream requirements: SRS_BSW_00386, SRS_BSW_00323 ⌈If the switch StbMDevErrorDetect is set to TRUE, StbM_SetCloningOffset shall report to DET the development error STBM_E_PARAM, if called with a parame- ter timeBaseId, which • is not configured or • is within the reserved value range. ⌋

requirement SWS_StbM_00628 [SWS_StbM_00628] 📄 PDF

[SWS_StbM_00628] "Service Not Supported" Development Error for StbM_SetCloningOffset Upstream requirements: SRS_BSW_00386, SRS_BSW_00323 ⌈If the switch StbMDevErrorDetect is set to TRUE, StbM_SetCloningOffset shall report to DET the development error STBM_E_SERVICE_NOT_SUPPORTED, if called for a Time Base, which has no Source Time Base (refer to parameter StbM- SourceTimeBase) configured.⌋

requirement SWS_StbM_00630 [SWS_StbM_00630] 📄 PDF

[SWS_StbM_00630] "Service Not Supported" Development Error for StbM_SetUserData Upstream requirements: SRS_BSW_00386, SRS_BSW_00323 ⌈If the switch StbMDevErrorDetect is set to TRUE, when StbM_SetUserData is called for a Time Base for which the StbM is not configured as a Global Time Mas- ter, then StbM_SetUserData shall report to DET the development error STBM_E_ SERVICE_NOT_SUPPORTED.⌋

requirement SWS_StbM_91004 [SWS_StbM_91004] 📄 PDF

- Port Defined Argument Value(s) Type Stb M _ Synchronized Time Base Type Value {ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier.value)} Type Stb M _ Customer Id Type Value {ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MNotification Customer/ Stb MNotification Customer Id.value)} Variation {ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} < 128 Time Base = {ecuc(Stb M/ Stb MSynchronized Time Base.SHORT - NAME)} Customer = {ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MNotification Customer.SHORT - NAME)}

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

Record
AUTOSAR/AP/record/CP_MOD_StbM
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_StbM@rel:R20-11#a89278aa
Content hash
a89278aa
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_SynchronizedTimeBaseManager.pdf#nameddest=SWS_StbM_00052

خريطة المواضيع

التهيئة والحالة

2

دوال Callout والواجهات المتوقعة

3

المتطلبات

268
SWS_StbM_00020SWS_StbM_00022SWS_StbM_00031SWS_StbM_00041SWS_StbM_00051SWS_StbM_00058SWS_StbM_00059SWS_StbM_00077SWS_StbM_00084SWS_StbM_00092SWS_StbM_00093SWS_StbM_00094SWS_StbM_00100SWS_StbM_00107SWS_StbM_00121SWS_StbM_00140SWS_StbM_00170SWS_StbM_00171SWS_StbM_00172SWS_StbM_00173SWS_StbM_00177SWS_StbM_00178SWS_StbM_00179SWS_StbM_00180SWS_StbM_00181SWS_StbM_00182SWS_StbM_00183SWS_StbM_00184SWS_StbM_00185SWS_StbM_00187SWS_StbM_00190SWS_StbM_00191SWS_StbM_00192SWS_StbM_00196SWS_StbM_00197SWS_StbM_00199SWS_StbM_00201SWS_StbM_00202SWS_StbM_00214SWS_StbM_00215SWS_StbM_00219SWS_StbM_00220SWS_StbM_00224SWS_StbM_00225SWS_StbM_00229SWS_StbM_00230SWS_StbM_00234SWS_StbM_00235SWS_StbM_00240SWS_StbM_00244SWS_StbM_00246SWS_StbM_00247SWS_StbM_00248SWS_StbM_00261SWS_StbM_00262SWS_StbM_00264SWS_StbM_00268SWS_StbM_00269SWS_StbM_00270SWS_StbM_00271SWS_StbM_00274SWS_StbM_00275SWS_StbM_00276SWS_StbM_00277SWS_StbM_00278SWS_StbM_00279SWS_StbM_00280SWS_StbM_00282SWS_StbM_00284SWS_StbM_00286SWS_StbM_00290SWS_StbM_00296SWS_StbM_00298SWS_StbM_00299SWS_StbM_00302SWS_StbM_00303SWS_StbM_00304SWS_StbM_00306SWS_StbM_00307SWS_StbM_00308SWS_StbM_00309SWS_StbM_00310SWS_StbM_00311SWS_StbM_00312SWS_StbM_00313SWS_StbM_00314SWS_StbM_00315SWS_StbM_00316SWS_StbM_00317SWS_StbM_00318SWS_StbM_00320SWS_StbM_00323SWS_StbM_00326SWS_StbM_00327SWS_StbM_00329SWS_StbM_00335SWS_StbM_00336SWS_StbM_00337SWS_StbM_00339SWS_StbM_00340SWS_StbM_00341SWS_StbM_00342SWS_StbM_00344SWS_StbM_00345SWS_StbM_00348SWS_StbM_00349SWS_StbM_00350SWS_StbM_00351SWS_StbM_00352SWS_StbM_00353SWS_StbM_00355SWS_StbM_00356SWS_StbM_00359SWS_StbM_00360SWS_StbM_00361SWS_StbM_00362SWS_StbM_00364SWS_StbM_00366SWS_StbM_00367SWS_StbM_00368SWS_StbM_00370SWS_StbM_00371SWS_StbM_00372SWS_StbM_00373SWS_StbM_00374SWS_StbM_00375SWS_StbM_00376SWS_StbM_00377SWS_StbM_00379SWS_StbM_00380SWS_StbM_00381SWS_StbM_00382SWS_StbM_00383SWS_StbM_00386SWS_StbM_00387SWS_StbM_00388SWS_StbM_00391SWS_StbM_00392SWS_StbM_00393SWS_StbM_00394SWS_StbM_00395SWS_StbM_00396SWS_StbM_00397SWS_StbM_00398SWS_StbM_00399SWS_StbM_00404SWS_StbM_00405SWS_StbM_00406SWS_StbM_00407SWS_StbM_00408SWS_StbM_00409SWS_StbM_00411SWS_StbM_00412SWS_StbM_00413SWS_StbM_00414SWS_StbM_00415SWS_StbM_00416SWS_StbM_00421SWS_StbM_00422SWS_StbM_00424SWS_StbM_00425SWS_StbM_00428SWS_StbM_00431SWS_StbM_00432SWS_StbM_00433SWS_StbM_00434SWS_StbM_00435SWS_StbM_00436SWS_StbM_00437SWS_StbM_00438SWS_StbM_00439SWS_StbM_00440SWS_StbM_00441SWS_StbM_00442SWS_StbM_00443SWS_StbM_00444SWS_StbM_00445SWS_StbM_00446SWS_StbM_00447SWS_StbM_00448SWS_StbM_00449SWS_StbM_00451SWS_StbM_00452SWS_StbM_00453SWS_StbM_00454SWS_StbM_00455SWS_StbM_00456SWS_StbM_00457SWS_StbM_00458SWS_StbM_00459SWS_StbM_00460SWS_StbM_00461SWS_StbM_00462SWS_StbM_00463SWS_StbM_00465SWS_StbM_00466SWS_StbM_00467SWS_StbM_00468SWS_StbM_00469SWS_StbM_00470SWS_StbM_00471SWS_StbM_00472SWS_StbM_00473SWS_StbM_00474SWS_StbM_00475SWS_StbM_00476SWS_StbM_00477SWS_StbM_00478SWS_StbM_00479SWS_StbM_00480SWS_StbM_00481SWS_StbM_00487SWS_StbM_00488SWS_StbM_00489SWS_StbM_00493SWS_StbM_00494SWS_StbM_00495SWS_StbM_00497SWS_StbM_00498SWS_StbM_00499SWS_StbM_00501SWS_StbM_00502SWS_StbM_00503SWS_StbM_00512SWS_StbM_00513SWS_StbM_00514SWS_StbM_00515SWS_StbM_00516SWS_StbM_00517SWS_StbM_00518SWS_StbM_00519SWS_StbM_00520SWS_StbM_00521SWS_StbM_00522SWS_StbM_00523SWS_StbM_00525SWS_StbM_00526SWS_StbM_00528SWS_StbM_00529SWS_StbM_00530SWS_StbM_00531SWS_StbM_00532SWS_StbM_00533SWS_StbM_00534SWS_StbM_00535SWS_StbM_00536SWS_StbM_00537SWS_StbM_00538SWS_StbM_00539SWS_StbM_00544SWS_StbM_00545SWS_StbM_00546SWS_StbM_00547SWS_StbM_00549SWS_StbM_00550SWS_StbM_00551SWS_StbM_00552SWS_StbM_00553SWS_StbM_00554SWS_StbM_00556SWS_StbM_00598SWS_StbM_00605SWS_StbM_00625SWS_StbM_00626SWS_StbM_00627SWS_StbM_00628SWS_StbM_00630SWS_StbM_91004

عرض التفاصيل

اختر عنصرًا من المخطط.

التهيئة والحالة

Returns the version information of this module.

void StbM_GetVersionInfo(Std_VersionInfoType* versioninfo);
StbM_Init دالة

Initializes the Synchronized Time - base Manager

void StbM_Init(const StbM_ConfigType* ConfigPtr);

الخدمات

This callback notifies the <Customer>, when a Time Base reaches the time value set by Stb M_ Start Timer for the <Time Base>

Std_ReturnType <Customer>_TimeNotificationCallback<Time Base>(StbM_TimeDiffType deviationTime);

This interface is used by the StbM to query the current freshness value.

Std_ReturnType GetRxFreshnessFct(uint16 StbMFreshnessValueId, const uint8* StbMTruncatedFreshnessValue, uint32 StbMTruncatedFreshnessValueLength, uint16 StbMAuthVerifyAttempts, uint8* StbMFreshnessValue, uint32* StbMFreshnessValueLength);

This API returns the freshness value from the Most Significant Bits in the first byte, of the Freshness array, in big endian format Tags: atp.Status=draft

Std_ReturnType GetTxFreshnessFct(uint16 StbMFreshnessValueId, uint8* StbMFreshnessValue, uint32* StbMFreshnessValueLength);

This interface is used by the StbM to obtain the current freshness value. The interface function provides also the truncated freshness transmitted in the secured time sync message. Tags: atp.Status=draft

Std_ReturnType GetTxFreshnessTruncDataFct(uint16 StbMFreshnessValueId, uint8* StbMFreshnessValue, uint32* StbMFreshnessValueLength, uint8* StbMTruncatedFreshnessValue, uint32* StbMTruncatedFreshnessValueLength);

This interface is used by the StbM to indicate that the Secured Time Synchronization Message has been initiated for transmission. Tags: atp.Status=draft

void SPduTxConfirmationFct(uint16 StbMFreshnessValueId);

Returns the current Time Tuple, status and User Data of the Time Base.

Std_ReturnType StbM_BusGetCurrentTime(StbM_SynchronizedTimeBaseType timeBaseId, StbM_TimeStampType* globalTimePtr, StbM_VirtualLocalTimeType* localTimePtr, StbM_UserDataType* userData);

Allows the Time Base Provider Modules to forward a new Global Time tuple (i.e., Rx Time Tuple) to the Stb M.

Std_ReturnType StbM_BusSetGlobalTime(StbM_SynchronizedTimeBaseType timeBaseId, const StbM_TimeStampType* globalTimePtr, const StbM_UserDataType* userDataPtr, const StbM_MeasurementType* measureDataPtr, const StbM_VirtualLocalTimeType* localTimePtr);

Provides CAN Timesyn module specific data for a Time Master to the Stb M. Tags: atp.Status=draft

Std_ReturnType StbM_CanSetMasterTimingData(StbM_SynchronizedTimeBaseType timeBaseId, const StbM_CanTimeMasterMeasurementType* measureDataPtr);

Allows the Can TSyn Module to forward CAN specific details to the Stb M. Tags: atp.Status=draft

Std_ReturnType StbM_CanSetSlaveTimingData(StbM_SynchronizedTimeBaseType timeBaseId, const StbM_CanTimeSlaveMeasurementType* measureDataPtr);

Copies Time Base data (current time, user data, rate corrction) from Source Time Base to Destination Time Base. The Source Time Base is identified by the parameter Stb MSource Time Base (ECUC_ Stb M_00074). Stb?M_?Clone Time Base behaves synchronuously (immediate copy of Time Base) if DEFERRED_ COPY flag of parameter clone Cfg is set to true, otherwise it behaves asynchronuously (deferred copy of Time Base). Note: Even, if conf igured to behave synchronuously (immediate copy of Time Base), actual transmission of cloned Time Base value on the bus occurs asynchronuously.

Std_ReturnType StbM_CloneTimeBase(StbM_SynchronizedTimeBaseType timeBaseId, StbM_CloneConfigType cloneCfg, StbM_TimeBaseStatusType statusMask, StbM_TimeBaseStatusType statusValue);

Provides Ethernet Timesyn module specific data for a Time Master to the Stb M. Tags: atp.Status=draft

Std_ReturnType StbM_EthSetMasterTimingData(StbM_SynchronizedTimeBaseType timeBaseId, const StbM_EthTimeMasterMeasurementType* measureDataPtr);

- Tags: atp.Status=draft

Std_ReturnType StbM_EthSetPdelayInitiatorData(StbM_SynchronizedTimeBaseType timeBaseId, const StbM_PdelayInitiatorMeasurementType* measureDataPtr);

- Tags: atp.Status=draft

Std_ReturnType StbM_EthSetPdelayResponderData(StbM_SynchronizedTimeBaseType timeBaseId, const StbM_PdelayResponderMeasurementType* measureDataPtr);

Allows the Eth TSyn Module to forward Ethernet specific details to the Stb M. Tags: atp.Status=draft

Std_ReturnType StbM_EthSetSlaveTimingData(StbM_SynchronizedTimeBaseType timeBaseId, const StbM_EthTimeSlaveMeasurementType* measureDataPtr);

Provides Flexray Timesyn module specific data for a Time Master to the Stb M. Tags: atp.Status=draft

Std_ReturnType StbM_FrSetMasterTimingData(StbM_SynchronizedTimeBaseType timeBaseId, const StbM_FrTimeMasterMeasurementType* measureDataPtr);

Allows the Fr TSyn Module to forward Flexray specific details to the Stb M. Tags: atp.Status=draft

Std_ReturnType StbM_FrSetSlaveTimingData(StbM_SynchronizedTimeBaseType timeBaseId, const StbM_FrTimeSlaveMeasurementType* measureDataPtr);

This API is used to get bus specific parameters from received Follow_ Up message

Std_ReturnType StbM_GetBusProtocolParam(StbM_SynchronizedTimeBaseType timeBaseId, StbM_ProtocolParamType* protocolParam);

Returns a time triple (Local Time, Fallback Local Time, Global time and timebase status) and user data details. Note: This API shall be called with locked interrupts / within an Exclusive Area to prevent interruption (i.e., the risk that the time stamp is outdated on return of the function call). Tags: atp.Status=draft ▽ △

Std_ReturnType StbM_GetCurrentSafeTime(StbM_SynchronizedTimeBaseType timeBaseId, StbM_TimeTripleType* timeTriple, StbM_UserDataType* userData);

Returns a time value (Local Time Base derived from Global Time Base) in standard format. Note: This API shall be called with locked interrupts / within an Exclusive Area to prevent interruption (i.e., the risk that the time stamp is outdated on return of the function call).

Std_ReturnType StbM_GetCurrentTime(StbM_SynchronizedTimeBaseType timeBaseId, StbM_TimeStampType* timeStamp, StbM_UserDataType* userData);

Returns a time value (Local Time Base derived from Global Time Base) in extended format. Note: This API shall be called with locked interrupts / within an Exclusive Area to prevent interruption (i.e., the risk that the time stamp is outdated on return of the function call).

Std_ReturnType StbM_GetCurrentTimeExtended(StbM_SynchronizedTimeBaseType timeBaseId, StbM_TimeStampExtendedType* timeStamp, StbM_UserDataType* userData);

Returns the Virtual Local Time of the referenced Time Base.

Std_ReturnType StbM_GetCurrentVirtualLocalTime(StbM_SynchronizedTimeBaseType timeBaseId, StbM_VirtualLocalTimeType* localTimePtr);

Returns the Fallback Virtual Local Time of the referenced Time Base. Tags: atp.Status=draft

Std_ReturnType StbM_GetFallbackVirtualLocalTime(StbM_SynchronizedTimeBaseType timeBaseId, StbM_VirtualLocalTimeType* localTimePtr);

Indicates if the functionality for a system wide master (e.g. Stb M_ Set Global Time) for a given Time Base is ava ilable or not.

Std_ReturnType StbM_GetMasterConfig(StbM_SynchronizedTimeBaseType timeBaseId, StbM_MasterConfigType* masterConfig);

Allows the Timesync Modules to get the current Offset Time and User Data.

Std_ReturnType StbM_GetOffset(StbM_SynchronizedTimeBaseType timeBaseId, StbM_TimeStampType* timeStamp, StbM_UserDataType* userData);

Accesses to the recorded snapshot data Header of the table belonging to the Offset Time Base.

Std_ReturnType StbM_GetOffsetTimeRecordHead(StbM_SynchronizedTimeBaseType timeBaseId, StbM_OffsetRecordTableHeadType* offsetRecordTableHead);

Returns value of the current rate deviation of a Time Base

Std_ReturnType StbM_GetRateDeviation(StbM_SynchronizedTimeBaseType timeBaseId, StbM_RateDeviationType* rateDeviation);

This interface is used by the StbM to query the current freshness value. Tags: atp.Status=draft

Std_ReturnType StbM_GetRxFreshness(uint16 StbMFreshnessValueId, const uint8* StbMTruncatedFreshnessValue, uint32 StbMTruncatedFreshnessValueLength, uint16 StbMAuthVerifyAttempts, uint8* StbMFreshnessValue, uint32* StbMFreshnessValueLength);

Accesses to the recorded snapshot data Header of the table belonging to the Synchronized Time Base. Available v ia Stb M.h

Std_ReturnType StbM_GetSyncTimeRecordHead(StbM_SynchronizedTimeBaseType timeBaseId, StbM_SyncRecordTableHeadType* syncRecordTableHead);

Returns detailed status information for a Synchronized (or Pure Local) Time Base and, if called for an Offset Time Base, for the Offset Time Base and the underlying Synchronized Time Base.

Std_ReturnType StbM_GetTimeBaseStatus(StbM_SynchronizedTimeBaseType timeBaseId, StbM_TimeBaseStatusType* syncTimeBaseStatus, StbM_TimeBaseStatusType* offsetTimeBaseStatus);

Allows the Timesync Modules to detect, whether a Time Base should be transmitted immediately in the subsequent <Bus>TSyn_ Main Function() cycle.

uint8 StbM_GetTimeBaseUpdateCounter(StbM_SynchronizedTimeBaseType timeBaseId);

Returns value of Time Leap.

Std_ReturnType StbM_GetTimeLeap(StbM_SynchronizedTimeBaseType timeBaseId, StbM_TimeDiffType* timeJump);

This API returns the freshness value from the Most Significant Bits in the first byte, of the Freshness array, in big endian format. Tags: atp.Status=draft

Std_ReturnType StbM_GetTxFreshness(uint16 StbMFreshnessValueId, uint8* StbMFreshnessValue, uint32* StbMFreshnessValueLength);

This interface is used by the StbM to obtain the current freshness value. The interface function provides also the truncated freshness transmitted in the secured time sync message. Tags: atp.Status=draft

Std_ReturnType StbM_GetTxFreshnessTruncData(uint16 StbMFreshnessValueId, uint8* StbMFreshnessValue, uint32* StbMFreshnessValueLength, uint8* StbMTruncatedFreshnessValue, uint32* StbMTruncatedFreshnessValueLength);

This API is used to set bus specific parameters of a Time Master

Std_ReturnType StbM_SetBusProtocolParam(StbM_SynchronizedTimeBaseType timeBaseId, const StbM_ProtocolParamType* protocolParam);

Sets an offset time that will be added to the synchronized time when cloning a Time Base.

Std_ReturnType StbM_SetCloningOffset(StbM_SynchronizedTimeBaseType timeBaseId, const StbM_TimeStampType* timeOffset);

Allows the Customers to set the new global time that has to be valid for the system, which will be sent to the busses. This function will be used if a Time Master is present in this ECU.

Std_ReturnType StbM_SetGlobalTime(StbM_SynchronizedTimeBaseType timeBaseId, const StbM_TimeStampType* timeStamp, const StbM_UserDataType* userData);

Allows the Customers and the Timesync Modules to set the Offset Time and the User Data.

Std_ReturnType StbM_SetOffset(StbM_SynchronizedTimeBaseType timeBaseId, const StbM_TimeStampType* timeStamp, const StbM_UserDataType* userData);

Allows to set the rate of a Synchronized Time Base (being either a Pure Local Time Base or not).

Std_ReturnType StbM_SetRateCorrection(StbM_SynchronizedTimeBaseType timeBaseId, StbM_RateDeviationType rateDeviation);

Allows the Customers to set the new User Data that has to be valid for the system, which will be sent to the busses.

Std_ReturnType StbM_SetUserData(StbM_SynchronizedTimeBaseType timeBaseId, const StbM_UserDataType* userData);

Sets a time value, which the Time Base value is compared against

Std_ReturnType StbM_StartTimer(StbM_SynchronizedTimeBaseType timeBaseId, StbM_CustomerIdType customerId, const StbM_TimeStampType* expireTime);

Called by the <Upper Layer> to force the Times ync Modules to transmit the current Time Base again due to an incremented time Base Update Counter[time Base Id]

Std_ReturnType StbM_TriggerTimeTransmission(StbM_SynchronizedTimeBaseType timeBaseId);

Allows the Customers to set the Global Time that will be sent to the buses. This function will be used if a Time Master is present in this ECU. Using Update Global Time will not lead to an immediate transmission of the Global Time.

Std_ReturnType StbM_UpdateGlobalTime(StbM_SynchronizedTimeBaseType timeBaseId, const StbM_TimeStampType* timeStamp, const StbM_UserDataType* userData);

دوال Callout والواجهات المتوقعة

<Time Base> دالة

The callback notifies the customers, when a <Time Base> related event occurs, which is enabled by the notification mask

Std_ReturnType StatusNotificationCallback<Time Base>(StbM_TimeBaseNotificationType eventNotification);
<Time Base>#2 دالة

Provides a recorded snapshot data block of the measurement data table belonging to the Synchronized Time Base.

Std_ReturnType SyncTimeRecordBlockCallback<Time Base>(const StbM_SyncRecordTableBlockType* syncRecordTableBlock);
<Time Base>#3 دالة

Provides a recorded snapshot data block of the measurement data table belonging to the Offset Time Base.

Std_ReturnType OffsetTimeRecordBlockCallback<Time Base>(const StbM_OffsetRecordTableBlockType* offsetRecordTableBlock);

دورية

This function will be called cyclically by a task body provided by the BSW Schedule. It will invoke the triggered customers and synchronize the referenced OS Schedule Tables.

void StbM_MainFunction(void);

الأنواع

Structure with detailed data for Time Validation of the Time Master on CAN Variation ({ecuc(Can TSyn/ Can TSyn General/ Can TSyn Time Validation Support)} == True)

Structure with detailed timing data for the Time Slave on CAN Variation ({ecuc(Can TSyn/ Can TSyn General/ Can TSyn Time Validation Support)} == True)

bit DEFERRED_ COPY 0x01 True: copy of time information to destination is deferred until Source Time base is updated next time by <bus> TSyn module False: time information copied immediately to Destination Time Base bit IMMEDIATE_ TX 0x02 True: time information is transmitted on destination bus immediately after cloning False: time information is transmitted on destination bus only on ne xt cyclic transmission after cloning bit APPLY_ RATE 0x04 True: Rate correction value of SOurce Time Base shall be applied to Destination Time Base Description Bitfield to configure the cloning process. Bit 3 .. 7 are always 0 (reserved for future usage). Variation --

Configuration data structure of the Stb M module.

unique identifier of a notification customer Variation --

Structure with detailed data for Time Validation of the Time Master on Ethernet Variation ({ecuc(Eth TSyn/ Eth TSyn General/ Eth TSyn Time Validation Support)} == True)

Structure with detailed data for Time Validation of the Time Slave on Ethernet Variation ({ecuc(Eth TSyn/ Eth TSyn General/ Eth TSyn Time Validation Support)} == True)

Structure with detailed data for Time Validation of the Time Master on Flexray Variation ({ecuc(Fr TSyn/ Fr TSyn General/ Fr TSyn Time Validation Support)} == True)

Structure with detailed data for Time Validation of the Time Slave on Flexray Variation ({ecuc(Fr TSyn/ Fr TSyn General/ Fr TSyn Time Validation Support)} == True)

This type indicates if an ECU is configured for a system wide master for a given Time Base is available or not. Variation --

Structure which contains additional measurement data

Offset Time Base Record Table Block Variation --

Offset Time Base Record Table Header Variation --

Structure with detailed timing data for the p Delay Initiator Variation ({ecuc(Eth TSyn/ Eth TSyn General/ Eth TSyn Time Validation Support)} == True)

Structure with detailed timing d ata for the p Delay Responder Variation ({ecuc(Eth TSyn/ Eth TSyn General/ Eth TSyn Time Validation Support)} == True)

Structure which contains port identity data Variation ({ecuc(Eth TSyn/ Eth TSyn General/ Eth TSyn Time Validation Support)} == True)

This structure defines Time Sync protocol specific parameters relevant for the individual Time Sync modules (only Eth TSyn specific parameters are known so far) Variation --

Variables of this type are used to express a rate deviation in ppm. Variation --

Variables of this type are used to represent the kind of synchronized time - base. Variation --

Synchronized Time Base Record Table Block Variation --

Synchronized Time Base Record Table Header Variation --

bit EV_ GLOBAL_ TIME 0x01 Bit 0 (LSB): 0: synchronization to global time master not changed 1: GLOBAL_ TIME_ BASE in Stb M_ Time Base Status Type has changed from 0 to 1 bit EV_ TIMEOUT_ OCCURRED 0x02 Bit 1: 1: TIMEOUT bit in time Base Status has changed from 0 to 1 0: otherwise bit EV_ TIMEOUT_ REMOVED 0x04 Bit 2 1: TIMEOUT bit in time Base Status has changed from 1 to 0 0: otherwise bit EV_ TIMELEAP_ FUTURE 0x08 Bit 3 1: TIMELEAP_ FUTURE bit in time Base Status has changed from 0 to 1 0: otherwise bit EV_ TIMELEAP_ FUTURE_ REMOVED 0x10 Bit 4 1: TIMELEAP_ FUTURE bit in time Base Status has changed from 1 to 0 0: otherwise bit EV_ TIMELEAP_ PAST 0x20 Bit 5 1: TI MELEAP_ PAST bit in time Base Status has changed from 0 to 1 0: otherwise bit EV_ TIMELEAP_ PAST_ REMOVED 0x40 Bit 6 1: TIMELEAP_ PAST bit in time Base Status has changed from 1 to 0 0: otherwise bit EV_ SYNC_ TO_ SUBDOMAIN 0x80 Bit 7 1: SYNC_ TO_ GATEWAY bit in time Base Status has changed from 0 to 1 0: otherwise bit EV_ SYNC_ TO_ GLOBAL_ MASTER 0x100 Bit 8 1: SYNC_ TO_ GATEWAY bit of Time Domain changes from 1 to 0 0: otherwise bit EV_ RESYNC 0x0200 Bit 9: 1: A synchronization of the local time to the valid Global Time value has occured 0: No resynchronization event occured bit EV_ RATECORRECTION 0x0400 Bit 10 1: a valid rate correction has been calculated (not beyond limits) 0: No rate correction c alculated Description The Stb M_ Time Base Notification Type type defines a number of global time related events. The type definition is used for storing the events in the status variable Notification Events and for setting the mask variable Notification Mask which defines a subset of events for which an interrupt request shall be raised. Variation --

bit TIMEOUT 0x01 Bit 0 (LSB): 0x00: No Timeout on receiving Synchronisation Messages 0x01: Timeout on receiving Synchronisation Messages bit SYNC_ TO_ GATEWAY 0x04 Bit 2 0x00: Local Time Base is synchronous to Global Time Master 0x04: Local Time Base updates are based on a Time Gateway below the Global Time Master bit GLOBAL_ TIME_ BASE 0x08 Bit 3 0x00: Local Time Base is based on Local Time Base reference clock on ly (never synchronized with Global Time Base) 0x08: Local Time Base was at least synchronized with Global Time Base one time bit TIMELEAP_ FUTURE 0x10 Bit 4 0x00: No leap into the future within the received time for Time Base 0x10: Leap into the future w ithin the received time for Time Base exceeds a configured threshold bit TIMELEAP_ PAST 0x20 Bit 5 0x00: No leap into the past within the received time for Time Base 0x20: Leap into the past within the received time for Time Base exceeds a configured thr eshold Description Bit 1, 6, and 7 are always 0 (reserved for future usage) Variables of this type are used to express if and how a Local Time Base is synchronized to the Global Time Master. The type is a bitfield of individual status bits, although not e very combination is possible, i.e. any of the bits TIMEOUT, TIMELEAP_ FUTURE, TIMELEAP_ PAST and SYNC_ TO_ GATEWAY can only be set if the GLOBAL_ TIME_ BASE bit is set. Variation --

Variables of this type are used to express time differences / offsets as signed values in in nanoseconds Variation --

Variables of this type are used for expressing time stamps including relative time and absolute calendar time. The absolute time starts from 1970 - 01 - 01. Variation --

Variables of this type are used for expressing time stamps with a limited range including relative time and absolute calendar time. The absolute time starts from 1970 - 01 - 01. 0 to 4.294.967.295 s ~ 136 years 0 to 999999999ns [0x3B9A C9FF] invalid value in nanoseconds: [0x3B9A CA00] to [0x3FFF FFFF] Bit 30 and 31 reserved, default: 0 Variation --

Variables of this type are used for expressing time stamps including relative time and absolute calendar time. The absolute time starts from 1970 - 01 - 01. 0 to 281474976710655s == 3257812230d [0x FFFF FFFF FFFF] 0 to 999999999ns [0x3B9A C9FF] invalid value i n nanoseconds: [0x3B9A CA00] to [0x3FFF FFFF] Bit 30 and 31 reserved, default: 0 Variation --

Indicates the underlying Time Sync module Variation --

Current user data of the Time Base Variation --

Variables of this type store time stamps of the Virtual Local Time. The unit is nanoseconds. Variation --

المتطلبات

SWS_StbM_00020 requirement

The Synchronized Time - Base Manager must be able to interact w ith the OS as T riggered C ustome r . The module calls the OS API for synchronizing OS ScheduleTables.

SWS_StbM_00022 requirement

The Synchronized Time - Base Manager shall provide means to configure the T ime B ase to which the OS Sched uleTable should be synchronized (see container ECUC_StbM_00004 : StbMTriggeredCustomer ) .

SWS_StbM_00031 requirement

[SWS_StbM_00031] Upstream requirements: RS_TS_00025 ⌈If a Triggered Customer is configured (refer to StbMTriggeredCustomer), the Syn- chronized Time-Base Manager shall monitor the cyclic execution of the StbM_Main- Function. This is to guarantee cyclic synchronization of OS schedule tables.⌋

SWS_StbM_00041 requirement

Type of error Related error code Error value API called with invalid time base ID STBM_ E_ PARAM 0x0A API called while Stb M is not initialized STBM_ E_ UNINIT 0x0B API called with invalid pointer in parameter list STBM_ E_ PARAM_ POINTER 0x10 Stb M_ Init called with an invalid configuration pointer STBM_ E_ INIT_ FAILED 0x11 API disabled by configuration STBM_ E_ SERVICE_ DISABLED 0x12 API called with invalid timestamp STBM_ E_ PARAM_ TIMESTAMP 0x25 API called with invalid user data STBM_ E_ PARAM_ USERDATA 0x26

SWS_StbM_00051 requirement

Module Header File Imported Type Can Can_ General Types.h Can _ Time Stamp Type (draft) Eth Eth_ General Types.h Eth _ Time Stamp Qual Type Eth_ General Types.h Eth _ Time Stamp Type Gpt Gpt.h Gpt _ Channel Type Gpt.h Gpt _ Value Type Os Os.h Schedule Table Status Ref Type Os.h Schedule Table Status Type Os.h Schedule Table Type Os.h Status Type Os.h Tick Ref Type Os.h Tick Type Rte_ Os_ Type.h Counter Type Std Std_ Types.h Std _ Return Type Std_ Types.h Std _ Version Info Type

SWS_StbM_00058 requirement

Det _ Report - Error Det.h Service to report development errors. Eth T Syn _ Get - Protocol Param Eth TSyn.h This API is used to read Follow Up information TLV parameters from received Follow_ Up message. Eth T Syn _ Set - Protocol Param Eth TSyn.h This API is used to set Follow Up information TLV parameters of a Follow_ U p message prior transmission. The API is called within Stb M_ Set Bus Protocol Param which provides the content of the structure protocol Param.

SWS_StbM_00059 requirement

Can If _ Get - Current Time (draft) Can If.h This service calls the corresponding CAN Driver service to retrieve the current time value out of the HW registers. Tags: atp.Status=draft Eth If _ Get - Current Time Eth If.h Returns a time value out of the HW registers according to the capability of the HW. Is the HW resolution is lower than the Eth_ Time Stamp Type resolution resp. range, the remaining bits will be filled with 0. Important Note: Eth If_ Get Current Time may b e called within an exclusive area. Get Counter - Value Os.h This service reads the current count value of a counter (returning either the hardware timer ticks if counter is driven by hardware or the software ticks when user drives counter). Get Elapsed - Value Os.h This service gets the number of ticks between the current tick value and a previously read tick value. Get Schedule - Table Status Os.h This service queries the state of a schedule table (also with respect to synchronization). Gpt _ Get Time - Elapsed Gpt.h Returns the time already elapsed. Gpt _ Start Timer Gpt.h Starts a timer channel. Sync Schedule - Table Os.h This service provides the schedule table with a synchronization count and start synchronization.

SWS_StbM_00077 requirement

[SWS_StbM_00077] Upstream requirements: RS_TS_00032 ⌈The Synchronized Time-Base Manager shall synchronize OS ScheduleTables only when the associated Synchronized Time Base is synchronized, i.e., if • GLOBAL_TIME_BASE = 1 and • TIMEOUT = 0 and • SYNC_TO_GATEWAY = 0 and • TIMELEAP_FUTURE = 0 and • TIMELEAP_PAST = 0 ⌋

SWS_StbM_00084 requirement

Customers of type T riggered C ustomer shall be invoked periodically by the Synchronized Time - Base Manager.

SWS_StbM_00092 requirement

[SWS_StbM_00092] Upstream requirements: SRS_BSW_00429, RS_TS_00032 ⌈The Synchronized Time-Base Manager shall check the OS for the status of the OS ScheduleTable by calling GetScheduleTableStatus before performing the syn- chronization. The Synchronized Time-Base Manager shall synchronize only OS ScheduleTables that are in one of the states • SCHEDULETABLE_WAITING, • SCHEDULETABLE_RUNNING or • SCHEDULETABLE_RUNNING_AND_SYNCHRONOUS. ⌋ Note: The Synchronized Time-Base Manager should ignore possible errors caused by the sequential execution of 1. getting OS ScheduleTable status and 2. performing the synchronization (e.g., someone else might have called a service to stop the OS ScheduleTable in the meantime).

SWS_StbM_00093 requirement

The triggering period S tbM T riggered C ustomerPeriod (refer to ECUC_StbM_00020 : ) shall be configurable for each T riggered C ustomer .

SWS_StbM_00094 requirement

[SWS_StbM_00094] Upstream requirements: SRS_BSW_00386, SRS_BSW_00337 ⌈If development error detection for the StbM module is enabled the function StbM_ GetVersionInfo shall raise the development error STBM_E_PARAM_POINTER and return if versioninfo is a NULL pointer (NULL_PTR).⌋

SWS_StbM_00100 requirement

A static status variable denoting if the StbM is initialized shall be initialized with value 0 before any APIs of the StbM are called.

SWS_StbM_00107 requirement

If OS is configured as triggered customer, t he function StbM_MainFunction shall synch r onize the referenced OS ScheduleTable .

SWS_StbM_00121 requirement

StbM_Init shall set the static status variable to a value not equa l to 0.

SWS_StbM_00140 requirement

These requirements are not applicabl e to this spec ification.

SWS_StbM_00170 requirement

On invocation of StbM _ Init() each configured Time Base (refer to StbMSynchronizedTimeBase , ECUC_StbM_00003 : ) shall be initialized with zero and its synchronization status timeBaseStatus shall be set to 0x00 .

SWS_StbM_00171 requirement

For each Time Base configured to be stored non - volatile ( StbMStoreTimebaseNonVolatile == STORAGE_AT_SHUTDOWN ), the Time Base value shall be loaded from NvM. In case the restore is not successful, the Time Base shall start w ith zero .

SWS_StbM_00172 requirement

For each Time Base configured to be stored non - volatile ( StbMStoreTimebaseNonVolatile == STORAGE_AT_SHUTDOWN ), the value shall be stored to NvM latest at shutdown.

SWS_StbM_00173 requirement

For Time Domains 0 to 15 StbM_GetCurrentTime() and StbM_GetCurrentTime Extended () shall return for the requested Time Domain the time of the Time Base , the related Status and the User Data. The current time of the Time Base shall be derived from the assoc iated Virtual Local Time , w h i c h is derived from either the referenced OS counter, a GPT or a referenced Ethernet controller (refer to StbMLocalTimeHardware ) .

SWS_StbM_00177 requirement

For Time Bases 16 t o 31 the StbM_GetCurrentTime() and StbM_GetCurrentTime Extended () shall return for the requested Time Base an absolute time value calcula ted by adding the given offset to the current Time Base of the referenced Time Base via StbMOffsetTimeBase ( ECUC_StbM_00030 : ).

SWS_StbM_00178 requirement

If EthIfGlobalTimeSupport (referenced via StbMLocalTimeHardware ECUC_StbM_00053 : , if set to EthTSynGlobalTimeDomain ) is set to TRUE for a Synchronized Time Base, the StbM shall deriv e the current value of the Virtual Local Time (see StbM_VirtualLocalTimeType [SWS_StbM_91003] ) from the freerunning HW counter from the corres ponding Ethernet Controller via EthIf_GetCurrentTime() . If EthIf_GetCurrentTime() returns either ETH_UNCERTAIN or ETH_INVALID for parameter timeQualPtr , the time value returned by EthIf_GetCurrentTime() shall be ignored.

SWS_StbM_00179 requirement

For Time Base s 0 to 15 each invocation of StbM_BusSetGlobalTime() shall update the corresponding Main Time Tuple and set the User Data and the Time Base Status acco rdingly.

SWS_StbM_00180 requirement

After i nitialization t he StbM shall maintain the Local Time of each Time Base autonomously via a hardware reference clock ( r eferenced by StbMLocalTime Cl ock ) .

SWS_StbM_00181 requirement

On a valid invocation of StbM_SetGlobalTime() , StbM_UpdateGlobalTime() , or StbM_SetOffset() the StbM shall set the GLOBAL_TIM E_BASE bit wi thin timeBaseStatus of the corresponding Time Base and shall clear all other bits.

SWS_StbM_00182 requirement

For Sync hronized and Offset Time Bases for which the StbM is configured as Time Slave or Time Gateway , an invocation of StbM_BusSetGlobalTime() shall check, if the Global T ime difference between the Updated Received Time (i.e., the updated Time Base value) and the Synclocal Ti me (i.e. , the current Time Base value ) exceeds the configured threshold of StbMTimeLeapFutureThreshold ( ECUC_StbM_00041 : ), i.e. , TG Rx - TL Sync > StbMTimeLeapFutureThreshold , if at least one Time Ba se value has been suc cessfully received before. With:  TL Sync = Global Time part of the Synclocal Time Tuple  TG Rx = Global Time part of the Updated Rx Time Tuple In case the threshold is exceeded the StbM shall set the TIMELEAP_FUTURE bit within timeBaseS tatus o f the Time Base. If the next StbMClearTimeleapCount updates are within the threshold of StbMTimeLeapFutureThreshold the StbM shall clear the TIMELEAP_FUTURE bit within timeBaseStatus of the Time Base. A threshold of 0 shall deactivate this check.

SWS_StbM_00183 requirement

For Synchronized and Offset Time Bases for which the StbM is configu red as Time Slave or Time Gateway, the StbM shall observe the timeout StbMSyncLossTimeout ( ECUC_StbM_00028 : ) . The timeout shall be measured from last invocation of StbM_BusSetGlobalTime() . If t he tim eout occur s, the StbM shall set the TIMEOUT bit within timeBaseStatus of the Time Base. An invocation of StbM_BusSetGlobalTime() shall clear the TIMEOUT bit.

SWS_StbM_00184 requirement

Every invocation of StbM_BusSetGlobalTime() shall set the SYNC_TO_GATEWAY bit within timeBaseStatus of the Time Base to the value of the SYNC_TO _GATEWAY bit within timeBaseStatus of the timeStampPtr argument passed to StbM_BusSetGlobalTime() .

SWS_StbM_00185 requirement

For Synchronized and Offset Time Bases for which the StbM is configured as Time Slave or Time Gateway , an invocation of Stb M_BusSetGlobalTime() shall set the GLOBAL_TIME_BASE bit within timeBaseStatus of the Time Base. Once set, the bit is never cleared.

SWS_StbM_00187 requirement

For Synchronized and Offset Time Bases for which the StbM is configured as Time Gateway, the StbM shall set the SYNC_TO_GATEWAY bit within timeBaseStatus of the Time Base when a timeout occurs (refer to [SWS_StbM_00183] ) .

SWS_StbM_00190 requirement

Each valid invocation of StbM_SetOffset() shall update the M ain Time Tuple of the corresponding Offset Time Base. The Offset Time value and the User Data shall be set accordingly .

SWS_StbM_00191 requirement

StbM_SetOffset() and StbM_GetOffset() shall only accept Offset Time Ba ses with a timeBaseId 16 to 31.

SWS_StbM_00192 requirement

Each invocation of StbM_GetOffset() shall return the Offset Time value and the U ser D at a of the corresponding Offset Time Base.

SWS_StbM_00196 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_GetCur rentT ime() shall r eport to DET the development error STBM_E_PARAM , if called with a parameter timeBaseI d , which is  not configured or  within the reserved value range .

SWS_StbM_00197 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to T RUE , StbM_GetCurrentTime() shall r eport to DET the development error STBM_E_PARAM_POINTER , if called with a NULL pointer for paramete r timeStamp or userData .

SWS_StbM_00199 requirement

For any S tbM API service other th a n StbM_Init() and StbM_GetVersion() all out parameters shall remain untouched, if an error occurs during execution of that API service .

SWS_StbM_00201 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to T RUE , StbM_GetCurrentTimeExtended() shall r eport to DET the development error STBM_E_PARAM , if ca lled with a parameter timeBaseI d , which is  not configured or  within the reserved value rang e.

SWS_StbM_00202 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_GetCurrentTimeExtended() sha ll r eport to DET the development error STBM_E_PARAM_POINTER , if called with a NULL pointer for parameter timeStamp or userData .

SWS_StbM_00214 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_SetGlobalTime() shall r eport to DET the development error STBM_E_PARAM , if called with a parameter timeBaseI d , which is  not config ured or  within the reserved value range.

SWS_StbM_00215 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_SetGlobalTim e() shall r eport to DET the development error STBM_E_PARAM_POINTER , if called with a NULL pointer for parameter timeStamp .

SWS_StbM_00219 requirement

If the switc h StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_SetUserData() shall r eport to DET the development error STBM_E_PARAM , if called with a para meter timeBaseI d , which  is not configured or  is within the reserved value range.

SWS_StbM_00220 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_SetUserData( ) shall r eport to DET the development error STBM_E_PARAM_POINTER , if called with a NULL pointer for parameter userData .

SWS_StbM_00224 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_SetOffset() shall r eport to DET the development error STBM_E_PARAM , if called with a parameter timeBaseI d , which  is not configured or  refers to a Syn chronized or Pure Local Time Base or  is within the reserved value range.

SWS_StbM_00225 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_SetOffset() shall r eport to DET the development error STBM_E_PARAM_POINTER , if called with a NULL pointer for parameter timeStamp .

SWS_StbM_00229 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_GetOffset() shall r eport to DET the devel opment error STBM_E_PARAM , if called with a parameter timeBaseI d , which  is not configured or  refers to a Synchronized or Pure Local Time Base or  is within the reserved value range .

SWS_StbM_00230 requirement

If the switch StbMD evErr orDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_GetOffset() shall r eport to DET the development error STBM_E_PARAM_POINTER , if cal led w ith a NULL pointer for parameter timeStamp or userData .

SWS_StbM_00234 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_BusSetGlobalTime() shall r eport to DET the development error STBM_E_PARAM , if called with a parameter timeBaseI d , which  refer s to a Pure Local Time Base or  is not configured or  is within the rese rved value range

SWS_StbM_00235 requirement

[SWS_StbM_00235] Upstream requirements: SRS_BSW_00386, SRS_BSW_00323 ⌈If the switch StbMDevErrorDetect is set to TRUE, StbM_BusSetGlobalTime shall report to DET the development error STBM_E_PARAM_POINTER, if called with a NULL pointer for parameter • timeTuplePtr • measureDataPtr ⌋

SWS_StbM_00240 requirement

Name Global Time_ Master_{Name} Comment -- Is Service true Variation (({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MIs System Wide Global Time Master)} == TRUE ) || ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MAllow System Wide Global Time Master)} == TRUE )) && ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchroni zed Time Base Identifier)} < 128) Name = {ecuc(Stb M/ Stb MSynchronized Time Base.SHORT - NAME)} Possible Errors 0 E_ OK Operation successful 1 E_ NOT_ OK Operation failed Operation Clone Comment Copies Time Base data (current time, user data, rate correction) from Source Time Base to Destination Time Base. The Source Time Base is identified by the parameter Stb MSource Time Base (ECUC_ Stb M_00074) Variation ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} < 16) || ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} > 31) Parameters clone Cfg Type Stb M _ Clone Config Type Direction IN Comment Refines how source Time Base is cloned to destination Variation -- status Mask Type Stb M _ Time Base Status Type Direction IN Comment Status flags mask for definition of relevant status flags Variation -- status Value Type Stb M _ Time Base Status Type Direction IN Comment Status flags value define whether cloning shall take place Variation -- Possible Errors E _ O K E _ N O T _ O K Operation Get Master Config Comment Indicates in postbuild use case, if the Stb M is actually configured as system wide master Variation {ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MAllow System Wide Global Time Master)} != NULL Parameters master Config Type Stb M _ Master Config Type Direction OUT Comment -- Variation -- Possible Errors E _ O K E _ N O T _ O K Operation Set Bus Protocol Param Comment Operation is used to set bus specific parameters for a Time Master Variation ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} < 16) &&({ecuc(Stb M/ Stb MSynchronized Time Base)} == {ecuc(Eth TSyn/ Eth TSyn Global Time Domain/ Eth TSyn Synchronized Time Base Ref - >Stb MSynchronized Time Base)})) P arameters protocol Params Type Stb M _ Protocol Param Type Direction IN Comment Structure with Follow_ Up information TLV parameters Variation -- Possible Errors E _ O K E _ N O T _ O K Operation Set Global Time Comment Allows the Customers to set the Global Time that will be sent to the buses and modify HW registers behind the providers, if supported. This function will be used if a Time Master is present in this ECU. Using Set Global Timecan lead to an immediate transmi ssion of the Global Time. Variation -- Parameters time Stamp Type Stb M _ Time Stamp Type Direction IN Comment -- Variation -- user Data Type Stb M _ User Data Type Direction IN Comment -- Variation -- Possible Errors E _ O K E _ N O T _ O K Operation Set Offset Comment Allows the Customers and the Timesync Modules to set the Offset Time. Variation {ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} > 15 && {ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} < 32 Parameters time Stamp Type Stb M _ Time Stamp Type Direction IN Comment -- Variation -- user Data Type Stb M _ User Data Type Direction IN Comment -- Variation -- Possible Errors E _ O K E _ N O T _ O K Operation Set Rate Correction Comment Allows to set the rate of a Synchronized Time Base (being either a Pure Local Time Base or not). Variation -- Parameters rate Deviation Type Stb M _ Rate Deviation Type Direction IN Comment Value of the applied rate deviation Variation -- Possible Errors E _ O K E _ N O T _ O K Operation Set User Data Comment Allows the Customers to set the User Data that will be sent to the buses. Variation -- Parameters user Data Type Stb M _ User Data Type Direction IN Comment New user data Variation -- Possible Errors E _ O K E _ N O T _ O K Operation Trigger Time Transmission Comment Allows the Customers to force the Timesync Modules to transmit the current Time Base due to an incremented time Base Update Counter Variation {ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} < 32 Possible Errors E _ O K E _ N O T _ O K Operation Update Global Time Comment Allows the Customers to set the Global Time that will be sent to the buses and modify HW registers behind the providers, if supported. This function will be used if a Time Master is present in this ECU. Using Update Global Time will not lead to an immediat e transmission of the Global Time. Variation -- Parameters time Stamp Type Stb M _ Time Stamp Type Direction IN Comment -- Variation -- user Data Type Stb M _ User Data Type Direction IN Comment -- Variation -- Possible Errors E _ O K E _ N O T _ O K

SWS_StbM_00244 requirement

- Port Defined Argument Value(s) Type Stb M _ Synchronized Time Base Type Value {ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier.value)} Variation (({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MIs System Wide Global Time Master)} == TRUE ) ||({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MAllow System Wide Global Time Master)} == TRUE ))&& ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronize d Time Base Identifier)} < 128) Name = {ecuc(Stb M/ Stb MSynchronized Time Base.SHORT - NAME)}

SWS_StbM_00246 requirement

If time stamping via Ethernet shall be supported (refer to EthIfGlobalTimeSupport , which is referenced via StbMLocalTimeHardware ECUC_StbM_00053 : , if set to EthTSynGlobalTimeDomain ) , StbM.c shall include Eth If .h to have access to the interface of the Eth If module.

SWS_StbM_00247 requirement

Name Global Time_ Slave_{Name} Comment -- Is Service true Variation {ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} < 128 Name = {ecuc(Stb M/ Stb MSynchronized Time Base.SHORT - NAME)} Possible Errors 0 E_ OK Operation successful 1 E_ NOT_ OK Operation failed Operation Get Bus Protocol Param Comment Operation is used to get bus specific parameters for a Time Master or Time Slave Variation ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} < 16) && ({ecuc(Stb M/ Stb MSynchronized Time Base)} == {ecuc(Eth TSyn/ Eth TSyn Global Time Domain/ Eth TSyn Synchronized Time Base Ref - >Stb MSynchronized Time Base)})) Parameters protocol Params Type Stb M _ Protocol Param Type Direction OUT Comment Structure with Follow_ Up information TLV parameters Variation -- Possible Errors E _ O K E _ N O T _ O K Operation Get Current Time Comment Returns a time value (Local Time Base derived from Global Time Base) in standard format. Variation -- Parameters time Stamp Type Stb M _ Time Stamp Type Direction OUT Comment -- Variation -- user Data Type Stb M _ User Data Type Direction OUT Comment -- Variation -- Possible Errors E _ O K E _ N O T _ O K Operation Get Current Time Extended Comment Returns a time value (Local Time Base derived from Global Time Base) in extended format. Variation {ecuc(Stb M/ Stb MGeneral/ Stb MGet Current Time Extended Available)} Parameters time Stamp Type Stb M _ Time Stamp Extended Type Direction OUT Comment -- Variation -- user Data Type Stb M _ User Data Type Direction OUT Comment -- Variation -- Possible Errors E _ O K E _ N O T _ O K Operation Get Offset Time Record Head Comment Reads the header of the table with recorded measurement data belonging to the Offset Time Base Variation (({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MIs System Wide Global Time Master)} == FALSE) && ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MAllow System Wide Global Time Master)} == FALSE)) && ({ecuc(Stb M/ Stb MGeneral/ Stb MTime Recording Support)} == True) && ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} > 15) && {ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} < 32 Parameters offset Record Table Head Type Stb M _ Offset Record Table Head Type Direction OUT Comment Header of the table Variation -- Possible Errors E _ O K E _ N O T _ O K Operation Get Rate Deviation Comment Returns value of the current rate deviation of a Time Base Variation -- Parameters rate Deviation Type Stb M _ Rate Deviation Type Direction OUT Comment Value of the current rate deviation of a Time Base Variation -- Possible Errors E _ O K E _ N O T _ O K Operation Get Sync Time Record Head Comment Reads the header of the table with recorded measurement data belonging to the Synchronized Time Base Variation (({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MIs System Wide Global Time Master)} == FALSE) && ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MAllow System Wide Global Time Master)} == FALSE)) && ({ecuc(Stb M/ Stb MGeneral/ Stb MTime Recording Support)} == True) && ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} < 16) Parameters sync Record Table Head Type Stb M _ Sync Record Table Head Type Direction OUT Comment Header of the table Variation -- Possible Errors E _ O K E _ N O T _ O K Operation Get Time Base Status Comment Returns detailed status information for a Synchronized (or Pure Local) Time Base and, if called for an Offset Time Base, for the Offset Time Base and the underlying Synchronized Time Base. Variation -- Parameters sync Time Base Status Type Stb M _ T ime Base Status Type Direction OUT Comment Status of the Synchronized (or Pure Local) Time Base Variation -- offset Time Base Status Type Stb M _ Time Base Status Type Direction OUT Comment Status of the Offset Time Base. Variation -- Possible Errors E _ O K E _ N O T _ O K Operation Get Time Leap Comment Returns value of time leap. Variation {ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} < 32 Parameters time Jump Type Stb M _ Time Diff Type Direction OUT Comment Time leap value Variation -- Possible Errors E _ O K E _ N O T _ O K

SWS_StbM_00248 requirement

- Port Defined Argument Value(s) Type Stb M _ Synchronized Time Base Type Value {ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier.value)} Variation Name = {ecuc(Stb M/ Stb MSynchronized Time Base.SHORT - NAME)}

SWS_StbM_00261 requirement

TIMEOUT Bit 0 (LSB) 0: No Timeout occurred - neither for Offset nor for referenced Synchronized Time Base 1: Timeout occurred for Offset or for referenced Synchronized Time Base Reserved Bit 1 Bit 1: Always 0 (reserved for future usage) SYNC_TO_GATEWAY Bit 2 0: Local Offset and referenced Synchronized Time Base is synchronous to Global Offset Time Master 1: Local Offset or referenced Synchronized Time Base updates are based on a Time Gateway below the Global Time Master GLOBAL_TIME_BASE Bit 3 0: Local Offset or referenced Synchronized Time Base are based on Local Time Base reference clock only (never synchronized with Global Time Base) 1: Local Offset and referenced Synchronized Time Base have b een synchronized with Global Time Base at least once TIMELEAP_FUTURE Bit 4 0: No leap into the future within the received time for the Offset and referenced Synchronized Time Base 1: Leap into the future within the received time for the Offset or refer enced Synchronized Time Base exceeds a configured threshold TIMELEAP_PAST Bit 5 0: No leap into the past within the received time for the Offset and referenced Synchronized Time Base 1: Leap into the past within the received time for the Offset or refe renced Synchronized Time Base exceeds a configured threshold

SWS_StbM_00262 requirement

For Synchronized Time Bases StbM_GetTimeBaseStatus() shall return  the status of the corresponding Synchronized Time Base via syncTimeBaseStatus and  0 via offset TimeBaseStatus For Offset Time Bases StbM_GetTimeBaseStatus() shall return  the status of the corresponding Offset Time Base via offsetTimeBaseStatus and  the status of the related Synchronized Time Base (referenced by ECUC_StbM_00030 : ) via sync TimeBaseStatus . For Pure Local Time Bases StbM_GetTimeBaseStatus() shall return  the status of the corresponding Time Base (refer to [SWS_StbM_00399] ) via syncTimeBaseStatus and  0 via offsetTimeBaseStatus

SWS_StbM_00264 requirement

If the switch StbMDevErrorDete ct ( ECUC_StbM_00012 : ) is set to TRUE , StbM_GetTime Base Status() shall report to DET the development error STBM_E_PARAM , if called with a parameter timeBa seI d , which  is not configured or  is within the reserved value range .

SWS_StbM_00268 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_GetTimeLeap() shall report to DET the development error STBM_E_PARAM , if called with a parameter timeBaseI d , wh ich  is not configure d or  refers to a Pure Local Time Base or  is within the reserved value range .

SWS_StbM_00269 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_GetTimeLeap( ) shall report to DET the development error STBM_E_PARAM_POINTER , if called with a NULL pointer for parameter timeJump .

SWS_StbM_00270 requirement

On invocation of StbM_Start Time r for a Time Notification Customer of a Time Base the StbM shall calculate the time CustomerTimerExpireTime when that Customer Timer will expire base d on the corresponding Time Base. If a Customer Timer for the same Customer is already running, StbM_StartTimer shall return E_NOT_OK .

SWS_StbM_00271 requirement

Upon inv ocati on of StbM_TimerCallback , the StbM shall calculate the time difference between CustomerTimerExpireTime and the current value of the corresponding Time Base. If the calculated time difference exceeds the value range of the deviationTime parameter of <Cust omer>_TimeNotificationCallback() the returned time difference shall be limited to either the maximum negative or the maximum positive value of the type of deviationTime (refer to StbM_Time Diff Type ). If StbMTi meNot ificationCallback ( ECUC_StbM_00064 : ) is not NULL,  the St bM shall call the function <Customer>_TimeNotificationCallback<TimeBase>() else  the StbM shall call the servi c e operation NotifyTime of the required port GlobalTime_TimeEvent_{TBName}_{CName} to inform the correspon ding Time Notification Customer and return the value of the calculated time difference in the parameter deviationTime.

SWS_StbM_00274 requirement

The event notification callback functi o n shall be set by the parameter StbMTimeNotificationCallback ( ECUC_StbM_00064 : . )

SWS_StbM_00275 requirement

Name Time Notification Comment Notification, which indicates, that the timer has expired, which has been set by Start Timer Is Service true Variation -- Possible Errors 0 E_ OK Operation successful 1 E_ NOT_ OK Operation failed Operation Notify Time Comment Notification, which indicates, that the timer has expired, which has been set by Stb M_ Start Timer Variation -- Parameters deviation Time Type Stb M _ Time Diff Type Direction IN Comment -- Variation -- Possible Errors E _ O K E _ N O T _ O K

SWS_StbM_00276 requirement

- Variation ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MNotification Customer/ Stb MTime Notification Callback)}==NULL) && ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} < 128) TBName={ecuc(Stb M/ Stb MSynchronized Time Base.SHORT - NAME)} CName={ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MNotification Customer.SHORT - NAME)}

SWS_StbM_00277 requirement

For Synchronized, O ffset and Pure Local Time Bases:  I f param eter StbMNotificationInt erface ( ECUC_StbM_00068 : ) is set to either SR_INTERFACE or CALLBACK_AND_SR_INTERFACE , the StbM shall notify the application via the StatusNotification service interface.  I f parameter Stb MNotificationInterface i s set to either CALLBACK or CALLBACK_AND_SR_INTERFACE , the StbM shall use the callback StatusNotificationCallback<TimeBase> to notify a CDD about status related events.  If parameter StbMNotificationInterface is set to NO_NOTIFICATIO N the notification mecha nism shall be disabled for the given Time Base. The callback StatusNotificationCallback<TimeBase> shall be set via configuration parameter StbMStatusNotificationCallback ( ECUC_StbM_00046 : ) .

SWS_StbM_00278 requirement

For Synchronized and Offset Time Bases the StbM shall use a variable NotificationEvents of type StbM_TimeBaseNotificationType to kee p track, if any status event (refer to [SWS_StbM_00284] ) for the referenced Time Base occurs. If a ny status event occurs and the corresponding bit in the NotificationMask mask is set, the corresponding bit in the NotificationEvents variable is set , i.e., NotificationEvents can only contain bits for t he events, which are enabled within the NotificationMask mask (refer to [SWS_StbM_00284] ).

SWS_StbM_00279 requirement

For each Time Base the StbM has a configurable mask StbMStat usNotificationMask ( ECUC_StbM_00045 : ) , which allows to mask individually status event notifications.

SWS_StbM_00280 requirement

After reporting a status event via the St atusNotificationCallback<TimeBase> API and the StatusNotification service interface the StbM shall reset NotificationEvents to 0.

SWS_StbM_00282 requirement

If any status event (refer to [SWS_StbM_00284] ) occurs and the corresponding bit in the NotificationMask mask is set, the Stb M shall report the value of the NotificationEvents var iable  via the callback function StatusNotificationCallback<TimeBase> (refer to parameter eventNotifications ) and/or  via StatusNotification service interface (refer to data element eventNotification ) depending on the setting of parameter StbMNotificationIn terface ( ECUC_StbM_00068 : ) . If multiple status events occur simultaneously for the same Time Base, the StbM shall trigger the callback function StatusNotificationCallback<TimeBase> and the StatusNotification s ervice interface only once.

SWS_StbM_00284 requirement

The StbM shall detect the following status events: Status Eve nt Name Status Event Set Condition EV_ GLOBAL_TIME_BASE 1: GLOBAL_TIME_BASE in t imeBaseStatus has changed from 0 to 1 0: otherwise EV_TIMEOUT_OCCURE D 1: TIMEOUT bit in timeBaseStatus has changed from 0 to 1 0: otherwise EV_TIMEOUT_REMOVED 1: TIMEOUT bit in timeBaseStatus has changed from 1 to 0 0: otherwise EV_TIMELEAP_FUTURE 1: TIMELEAP_FUTURE bit in timeBaseStatus has changed from 0 to 1 0: otherw ise EV_TIMELEAP_FU TURE_REMOVED 1: TIMELEAP_FUTURE b it in timeBaseStatus has changed from 1 to 0 0: otherw ise EV_TIMELEAP_PAST 1: TIMELEAP_PAST bit in timeBaseStatus has changed from 0 to 1 0: otherwise EV_TIMELEAP_ PAST_ REMOVED 1: TIMELEAP_ PAST b it in t imeBaseStatus has c hanged from 1 to 0 0: otherwise EV_SYNC_TO_ SUBDOMAIN 1: SYNC_TO_GATEWAY bit in timeBas eStatus has changed from 0 to 1 0: otherwise EV_SYNC_TO_ GLOBAL_MASTER 1: SYNC_TO_GATEWAY bit in timeBaseStatus has changed from 1 to 0 0: otherwise EV_RESYNC 1: resyn chronization has occurred and a new time value has been applied 0: otherwise EV_RATECOR RECTION 1: a valid rate correction has been calculated (not beyond limits) 0: otherwise

SWS_StbM_00286 requirement

Name Status Notification Comment Notification about a Time Base related status change Is Service false Variation -- Data Elements event Notification Type Stb M _ Time Base Notification Type Variation --

SWS_StbM_00290 requirement

- Variation (({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MNotification Interface)} == SR_ INTERFACE || {ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MNotification Interface)} == CALLBACK_ AND_ SR_ INTERFACE)) && ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynch ronized Time Base Identifier)} < 128) TBName = {ecuc(Stb M/ Stb MSynchronized Time Base.SHORT - NAME)}

SWS_StbM_00296 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_S tart Time r () shall r eport to DET the development error STBM_E_PARAM , if called with a parameter timeBaseI d , whi ch  is not configured or  is within the reserved value range .

SWS_StbM_00298 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_S tartT ime r () shall r eport to DET the development error STBM_E_PARAM_POINTER , if called with an invalid pointer of parameter expireTime .

SWS_StbM_00299 requirement

The status notification callb a ck function shall be set by the parameter StbMStatusNotificationCallback ( ECUC_StbM_00046 : ).

SWS_StbM_00302 requirement

The StbM shall set the synchronization count of the OS ScheduleTable via SyncScheduleTable () .

SWS_StbM_00303 requirement

The StbM shall derive the synchronization count of the OS ScheduleTable in microseconds by calculating the modulus of the current Tim e Base value (converted to microseconds) and OsScheduleTableDuration (see OsScheduleTable container referenced by ECUC_StbM_00007 : ).

SWS_StbM_00304 requirement

On invocation of StbM_ SetGlobalTime() or StbM_UpdateGlobalTime() for Time Base s 16 to 31 the StbM shall check the GLOBAL _TIME_BASE bit within timeBaseStatus of the unde rl ying Synchronized Time Base and shall return E_NOT_OK if is not set. If the GLOBAL_TIME_BASE bit is set: 1. the StbM shall calculate the Offset Time by obtaining the actual Time Base value of the underlying Synchronized Time Base and subtract that from the A bsolute Time value which is passed by StbM_SetGlobalTime() or StbM_UpdateGlobalTime() 2. a) if the calculated Offset Time value is equal or greater than zero, the StbM shall update the corresponding Offset Time Base with the calculated Offset Time value and t he User Data that was passed by StbM_SetGlobalTime() or StbM_UpdateGlobalTime() , b) otherwise (calculated Offset Time value is less than zero) the StbM shall return E_NOT_OK via StbM_SetGlobalTime() or StbM_UpdateGlobalTime() , respectively.

SWS_StbM_00306 requirement

If StbMTimeRecording Support ( ECUC_StbM_00038 : ) is set to TRUE , the StbM shall initialize all Block Elements of the measurement rec ording table with zero ( refer to 7.3.12.3.1 Record Tables ) .

SWS_StbM_00307 requirement

The S tbM shall support the Global Time precision measurement for a Time Base , if StbMTimeRecording Support ( ECUC_StbM_00038 : ) is set to TRUE .

SWS_StbM_00308 requirement

If Global Time Pr ecision Measurement is enabled ( refer to [SWS_StbM_00428] and [SWS_StbM_00307] ) for the Time Base , t he StbM shall establish a table to record values depending on the Synchronized Time Base with the foll owing structure: Record Table Element Multi - plicity Range Bytes Type / Unit Header 1 9 SynchronizedTimeDomain 1 0..15 1 uint8 H W frequency 1 0..4 294967295 4 uint32 / Hz H W prescaler 1 0..4294967295 4 uint32 Block 0 1 27 GlbSeconds 1 0..4294 967295 4 StbM_TimeStampType. seconds GlbNanoSeconds 1 0..999999999 4 StbM_TimeStampType. nanoseconds TimeBaseStatus 1 0..255 1 StbM_TimeStampType. Stb M_TimeBaseS tatusType VirtualLocalTimeLow 1 0..4294967295 4 uint32 / nanoseconds RateDeviation 1 0. .+ - 32000 2 StbM_RateDeviationType / ppm LocSeconds 1 0..4294967295 4 StbM_TimeStampType. seconds LocNanoSeconds 1 0..999999999 4 StbM_TimeStampType. n anoseconds PathDelay 1 0..4294967295 4 uint32 / nanoseconds Block 1 … … Block (Block - Co unt - 1) …

SWS_StbM_00309 requirement

If Global Time Precision Measurement is enabled (refer to [SWS_StbM_00428] and [SWS_StbM_00307] ) for the Time Base, StbMC lockfrequency ( ECUC_StbM_00051 : ) shall be mapped to the Header Element HWfrequency of the table belongin g to the Synchronized Time Base unless the Virtual Local Time for the Time Base is provided by a Times yn c module . In this case, HWfrequency shall be set to 1000000000.

SWS_StbM_00310 requirement

If Global Time Pr ecision Measurement is enabled (refer to [SWS_StbM_00428] and [SWS_StbM_00307] ) for the Time Base, StbMClock prescaler ( ECUC_StbM_00052 : ) shall be mapped to the Header Element HWprescaler of the table belongin g to the Synchronized Time Base unless the Virtual Local Time for the Time Base is provided by a Times yn c module . In this case, HWprescaler shall be set to 1.

SWS_StbM_00311 requirement

If Global Tim e Precision Measurement is enabled (refer to [SWS_StbM_00428] and [SWS_StbM_00307] ) for the Time Base, the StbM shall establish a table to record values depending on the Offset Time Base with the following structure: Record Table Element Multi - plicity Range Bytes Type / Unit Header 1 1 OffsetTimeDomain 1 16..31 1 uint8 Block 0 1 9 GlbSeconds 1 0..4294967295 4 StbM_TimeStampType. seconds GlbNanoSeconds 1 0.. 999999999 4 StbM_TimeStampType. nanoseconds TimeBaseStatus 1 0..255 1 StbM_TimeStampType. StbM_TimeBaseS tatusType Block 1 … … Block (Block - Count - 1) … Table 1 : Offset Time Base Record Table

SWS_StbM_00312 requirement

If Global Time Precision Measurement is enabled (refer to [SWS_StbM_00428] for the Time Base, on an invocation of StbM_BusSetGlobalTime() the StbM shall update all e lements of the b lock of the recording table. If all blocks have been written and no notification via  SyncTimeRecordBlockCallback<TimeBase> or  OffsetTimeRecor dBlockCallback<TimeBase> has yet occurred to pass all blocks with their elements to the application, the StbM shall again overwrite the block containing the oldest measurement data with the incoming measurement data.

SWS_StbM_00313 requirement

For Synchronized Time Bases, i f Global Time P recision Measureme nt is enabled (refer to [SWS_StbM_00428] and [SWS_StbM_00307] ) for the Time Base , on an invocation of StbM_BusSetGlobalTime() the StbM shall write the block elements  LocSeconds and  LocNanoSeconds to th e related measurement recording table before updating the Main Time Tuple (i.e., updating the Local Time Base by the Global Time Base ) . LocSeconds and LocNanoSeconds are the elements of the Global Time part of the Synclocal Time Tuple (i.e., TL Sync , see [SWS_StbM_00438] ).

SWS_StbM_00314 requirement

For Synchronized Time Bases, i f Global Time P recision Measurement is enabled (refer to [SWS_StbM_00428] and [SWS_StbM_00307] ) for the Time Base , on an invocation of StbM_BusSetGlobalTime() the StbM shall write the block elements  GlbSeconds ,  GlbNanoSeconds ,  VirtualLocalTimeLow ,  RateDeviation ,  TimeBaseStatus  PathDelay to the related measurement recording table after updating the Main Time Tuple (i.e., after updating the Local Time Base by the Global Time Base ) . GlbSeconds , GlbNanoSeconds are the elements of the Global Time part of the Updated Rx Time Tuple (i.e., TG Rx ); VirtualLocalTimeLow is the nanose condsL o element of the Virtual Local Time part of the Updated Rx Time Tuple (i.e., T V Rx ).

SWS_StbM_00315 requirement

If Global Time Precision Measurement is enabled (refer to [SWS_StbM_00428] and [SWS_StbM_00307] ) for the Time Base, the a pplication collects the contents of the h eader of the Synchronized Time Base Record Table by calling StbM_GetSyncTimeRecordHead () .

SWS_StbM_00316 requirement

If Global Time P recision Measurement is enabled (refer to [SWS_StbM_00428] and [SWS_StbM_00307] ) for the Time Base , the a pplication collects the contents of the h eader of the Offset Time Base Record Table by calling St bM _ GetOffsetTimeRecordHead () .

SWS_StbM_00317 requirement

If Global Time Pr ecision Measurement is enabled (refer to [SWS_StbM_00428] and [SWS_StbM_00307] ) for the Time Base, the StbM shall notify the Application by calling Syn cTimeRecordBlockCallback<TimeBase> in the next St bM_MainFunction() call cycle block by block (i.e., repeatedly) for all unread blocks (i.e., containing data that has yet not been passed to the Application), starting with the block containing the oldest dat a, and followed by the blocks in ascending order regarding their age (i.e., FIFO order), the block containing the newest data shall be passed last. The StbM shall ensure data integrity: a block shall not be passed if it currently being overwritten and a b lock that is passed shall be prevented from being overwritten until processed by the Applica tion.

SWS_StbM_00318 requirement

If Global Time Precision Measurement is enabled (refer to [SWS_StbM_00428] and [SWS_StbM_00307] ) for the Time Base, the StbM shall notify the Application by calling Off setTimeRecordBlockCallback<TimeBase> in the next StbM_MainFunction() call cycle block by block (i.e., repeatedly) for all unread blocks (i.e., containing data that has yet not been passed to the Application), starting with the block containing the oldest d ata, and followed by the blocks in ascending order regarding their age (i.e., FIFO order), the block containing the newest data shall be passed last. The Stb M shall ensure data integrity: a block shall not be passed if it currently being overwritten and a block that is passed shall be prevented from being overwritten until processed by the Application.

SWS_StbM_00320 requirement

The function StbM_GetSyncTimeRecordHead() shall be pre compile time configurable ON / OFF by the c onfiguration parameter: StbMTimeRecor ding Support ( ECUC_StbM_00038 : ) .

SWS_StbM_00323 requirement

The function SyncTimeRecordBlockCallback <t imeBas eId> ( ) shall be set by the parameter StbMSyncTimeRecordBlo ck Callback ( ECUC_StbM_00060 : ).

SWS_StbM_00326 requirement

The function StbM_GetOffsetTimeRecordHead() shall be pre compi le time configurable ON / OFF by the configuration parameter: StbMTimeRecording Support ( ECUC_StbM_00038 : ) .

SWS_StbM_00327 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_Get Offs e tTim eRecordHead () shall report to DET the development error STBM_E_PARAM , if called with a parameter timeBaseI d , which  is not configured or  r efers to a Pure Local or a Synchronized Time Base or  is within the reserved value range.

SWS_StbM_00329 requirement

The function OffsetTimeRecordBlockCallback<timeBaseId> shall set by the parameter StbMOffsetTimeRecordBlock Callback ( ECUC_StbM_00061 : ) .

SWS_StbM_00335 requirement

For currently active Time Notification Customers the StbM shall cyclically calculate an d mon itor in its StbM_MainFunction the difference between the current value of the corresponding Time Base and the expiration time 'CustomerTimerExpireTime' .

SWS_StbM_00336 requirement

A time interval StbMTimerStartThreshold ( ECUC_StbM_00063 : ) before a Customer Timer expires, the StbM shall calculate the time difference between CustomerTimerExpireTime and the c urren t value of the corresponding Time Base. The StbM shall then start a GPT timer ( ECUC_StbM_00039 : ) via Gpt_StartTimer() to be notified, when the time difference has elapsed .

SWS_StbM_00337 requirement

If multiple Customer Timers run and expire within the same interval StbMTimerStar tThreshold , the StbM sha ll calculate all expiry points within the StbMTimerStartThreshold interval and re - start the same GPT timer for next expiry point after the previous expiry point has been reached .

SWS_StbM_00339 requirement

Name Measurement Notification_{TB_ Name} Comment Notifies about the availability of a new recorded measurement data block belonging to the Time Base. Is Service true Variation (ecuc(Stb M/ Stb MGeneral/ Stb MTime Recording Support)} == True) && ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} < 32) TBName={ecuc(Stb M/ Stb MSynchronized Time Base.SHORT - NAME)} Possible Errors 0 E_ OK Operation successful 1 E_ NOT_ OK Operation failed Operation Set Offset Time Record Table Comment Provides to the recorded snapshot data Block of the table belonging to the Offset Time Base. Variation {ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} > 15 && {ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} < 32 Parameters offset Record Table Block Type Stb M _ Offset Record Table Block Type Direction IN Comment Header of the table Variation -- Possible Errors E _ O K E _ N O T _ O K Operation Set Sync Time Record Table Comment Provides the recorded snapshot data Block of the table belonging to the Synchronized Time Base. Variation {ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} < 16 Parameters sync Record Table Block Type Stb M _ Sync Record Table Block Type Direction IN Comment Block of the table Variation -- Possible Errors E _ O K E _ N O T _ O K

SWS_StbM_00340 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_UpdateGlobalTime() shall r eport to DET the development error STBM_E_PARAM , if called with a parameter tim eBase Id , which is  not configured or  within the reserved value range.

SWS_StbM_00341 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_UpdateGlobal Time() shall r eport to DET the development error STBM_E_PARAM_POINTER , if called with a NULL pointer for parameter timeStamp .

SWS_StbM_00342 requirement

On a valid invocation of StbM_SetGlobalTime() or StbM_UpdateGlobalT ime() the StbM shall update the Main Time Tuple of the corresponding Synchronized Time Base . Within the functions StbM_SetGlobalTime() and StbM_UpdateGlobalTime() the StbM shall retrieve the value of the Virtual Local Time (as part of the Local Time tuple ) as soon as possible in order to improve precision of the Time Base.

SWS_StbM_00344 requirement

For each Time Base the StbM shall initialize the corresponding update counter timeBas eUpdateCounter with 0.

SWS_StbM_00345 requirement

For each Time Base the StbM shall initialize the corresponding event status NotificationEvents with 0.

SWS_StbM_00348 requirement

I f the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_GetTimeBaseUpdateCounter () shall report t o DET the development error STBM_E_PARA M , if called with a parameter timeBaseI d , which  is not configured or  refers to a Pure Loca l Time Base or  is within the reserved value range.

SWS_StbM_00349 requirement

I f the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , Stb M _TriggerTimeTransmission() shall report to DET the development error STBM_E_PARAM , if called with a parameter timeBaseI d , which  is not configured or  refers to a Pure Local Time Base or  is within the reserved value range.

SWS_StbM_00350 requirement

 For Synchronized and Offset Time Bases on a valid invocation of StbM_SetGlobalTime() , StbM_BusSetGlobalTime() , or StbM_T riggerTimeTransmission() and  for Offset Time Bases on a valid invocation of StbM_SetOff set() , the StbM shall increment the timeBaseUpdateCounter of the corresponding Time Base by 1 (one). At 255 the timeBaseUpdateCounter shall wrap around to 0.

SWS_StbM_00351 requirement

For Synchronized and Offset Time Bases, t he timeBaseUpdateCounter of a Time Base shall have the value ra nge 0 to 255.

SWS_StbM_00352 requirement

Global Time Syn chroni z ed / Offset TimesyncMsg Time Slave Time Base Reference Clock L ocal Time Base per Time Do ma in Ti me Stamp Loca l Time Base Raw init update update read access Time Master Time Base Reference Cl ock Global Time Base per Ti me Dom ain Tim e Stam p Global Time Base Raw init update update Global Time Sy nchronized / Offset T i mesync M sg r/w access The StbM shall use the factor ( StbMClockP r e scaler /StbMClockFrequency ) to convert the time of its local hardware reference clock to the actual time of the Virtual Local Time (refer to StbM_VirtualLocalTimeType ) , if the Virtual Local Time is derived from a GPT or OsCounter (re fer to ECUC_StbM_00053 : StbMLocalTimeHardware ).

SWS_StbM_00353 requirement

If an additional rate has been applied (Offset Correction By Rate Adaption according to [SWS_StbM_00356] ) , the StbM shall after the period of StbMOffsetCorrection Adap tionInterval (i.e., (TV - TV Sync ) (see [SWS_StbM_00355] ) is larger or equal than StbMOffsetCorrectionAdaptionInterval ) insert the following two steps if it needs to calculate the current value of a Time Base as de fined by [SWS_StbM_00355] : 1. It shall first calculate a temporary Time Tuple [TL Temp ;TV Temp ] using the formula in [SWS_StbM_00355] with TV = TV Temp = TV Sync + StbMOffsetCorrectionAdaptionInterval r = r rc + r oc (for Synchronized Time Bases ) r = (r or c – 1 ) + r oc (for Offset Time Bases ) TL Temp shall be set to the resulting value TL 2. Aft erwards the Main Time Tuple [TG Sync ;TV Sync ] shall be set by an atomic operation to the values of the temporary Time Tuple [TL Temp ;TV Temp ] . Then , the calculation in [SWS_StbM_00355] shall be done by using the updated Main Time Tuple, the current value of the Virtual Local Time and r = r rc or , respectively, r = (r or c – 1 ) .

SWS_StbM_00355 requirement

The StbM shall calculate the current value of a Time Base ba sed on t he Main Tuple and the current rate correction term according to: TL = TG Sync + (TV - TV Sync ) * r With:  TL = Current value of the Time Base  TV = Current value of the V irtual L ocal Time  TV Sync = Virtual Local Time part of the Main Time Tuple  TG Sync = Glo ba l Time part of the Main Time Tuple  r = Current r ate for correcting the local instance of the Time Base

SWS_StbM_00356 requirement

If rate correction is enabled (see [SWS_StbM_00377] ) and i f the absolute value of the time offset between the Received Time and the Synclo cal Time (abs (TG Rx - TL Sync )) is smaller than StbMOffsetCorrectionJumpThreshold ( ECUC_StbM_00056 : ) , t he StbM shal l correct the time offset by temporarily applying an additional rate (r oc ) to r : r = r rc + r oc (for Synchronized Time Bases ) r = (r or c – 1 ) + r oc (for Offset Time Bases ) This rate correction term shall be applied for the duration defined by parameter StbMOffsetCorrectionAdaptionInterval ( ECUC_StbM_00057 : ) , starting when obtaining the Updated R x Time Tuple (i.e . , it shall be applied as long as (TV - TV Sync ) (see [SWS_StbM_00355] ) is smaller than StbMOffsetCorrectionAdaptionInterval ). r oc shall be calculated as shown: r oc = (TG Rx – TL Sync ) / (T Co rrInt ) With:  T CorrInt = StbMOffsetCorrectionAdaptionInterval  TL Sync = Global Time part of the Synclocal Time Tuple  TG Rx = Global Time part of the Updated Time Tuple

SWS_StbM_00359 requirement

T he StbM shall calculate the Global Time offset (i.e., difference) between the Received Time and the Synclocal Time upon each, except the very first, valid invocation of StbM_BusSetGlobalTime() . The elements of the Time Tuples used for calculating the Gl obal Time offset have the following denotation:  TL Sync = Global Time part of the Synclocal Time Tuple  TG Rx = Global Time part of the Received Time Tuple

SWS_StbM_00360 requirement

At the end of a Rate Correction measurement, the StbM shall calculate the resulting correction rate ( r orc ) for Offset Time Bases as shown: r orc = (TG Stop - TG Start ) / (TV Stop - TV Start ) + 1

SWS_StbM_00361 requirement

At the end of a Rate Correction measurement, the StbM shall calculate the resulting correction rate ( r rc ) for Synchronized Time Bases as shown: r rc = ( TG Stop – TG Start ) / (TV Stop - TV Start )

SWS_StbM_00362 requirement

The StbM shall use the same value for r rc and r orc until a new value has been calculated.

SWS_StbM_00364 requirement

At the end of the Rate Correction measurement, the StbM shall store the Updated Rx Time Tuple . The elements of the stored Time Tuple have the followi ng denotation:  TG Stop – Global Time part of the Updated Rx Time Tuple  TV Stop – Virtual Local T ime part of the Updated Rx Time Tuple

SWS_StbM_00366 requirement

At the start of a Rate C orrection measurement, the StbM shall store the Updated Rx Time Tuple . The elements of the stored Time Tuple have the following denotation:  TG Start – Global Time part of the Updated Rx Time Tuple  TV Start – V irtual L ocal T ime part of the Updated Rx Time Tuple

SWS_StbM_00367 requirement

Simultaneous Rate Correction measurements shall be started with a defined offset (to n ) to yield Rate Corrections evenly distributed over the measurement duration. to n = n * ( StbMRateCorrectionMeasurementDuration / StbMRateCorrectionsPerMeasurementDuration ) (where ‘n’ is the zero - based index of the current measurement) .

SWS_StbM_00368 requirement

The S tbM shall perform as many simultaneous Rate Correction measurements as configured by parameter: StbMRateCorrectionsPerMeasurementDuration ( ECUC_StbM_00055 : ) .

SWS_StbM_00370 requirement

During runtime the StbM shall determine the timespan of a Rate Correction measurement on the basis of the Virtual Local Time.

SWS_StbM_00371 requirement

The StbM shall perform Rate Correction measurements continuously. The end of a measurement mar ks the start of the next measurement. The start and end of measurements are always triggered by and aligned to the reception of time values for Synchronized or Offset Time Bases.

SWS_StbM_00372 requirement

The StbM shall perform Rate Correctio n measurements to determine the rate deviation of each configured Time Base.

SWS_StbM_00373 requirement

For Rate Correction, the StbM shall eval uate the TIMELEAP _FUTURE/ TIMELEAP_ PAST flag s during the start of a measurement. The StbM shall not start a Rate Correction measurement when the state of any of the flags equals „Set“ .

SWS_StbM_00374 requirement

For Rate Correction measurements, the StbM shall evaluate the TIMEOUT flag. The StbM shall discard the measurement , if the flag equals „Set“ .

SWS_StbM_00375 requirement

For Rate Correction measurements, the StbM shall evaluate state changes of the SYNC_TO_GATEWAY flag during measurements. The S tbM shall discard the measurement if the flag state changes.

SWS_StbM_00376 requirement

For Rate Correction measurements, the StbM shall evaluate the TIMELEAP _FUTURE and TIMELEAP_PAST flag s during measurements. The StbM shall discard the measurement , if any of the flags equals „Set“ .

SWS_StbM_00377 requirement

The StbM shall not perform Rate Correction when the measurement duration StbMRateCorrectionMeasurementDuration ( ECUC_StbM_00054 : ) is set to zero.

SWS_StbM_00379 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_ GetRate Deviation () shall r eport to DET the development error STBM_E_PARAM , if called with a parameter timeBaseI d , which  is not configured or  is within the reserved value range.

SWS_StbM_00380 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_ GetRate Deviation () shall r eport to DET the development error STBM _E_PARAM_POINTER , if called with a NULL pointer for parameter rateDeviation .

SWS_StbM_00381 requirement

All functions that are setting User Data shall only set as many User Data bytes as defined within the userDataLength element of the StbM_UserDataType structure. If userDataLength is equal to 0, no User Data bytes shall be set. User Data bytes that are no t set shall remain at their previous value .

SWS_StbM_00382 requirement

If Global Time Precision Measurement is enabled (refer to [SWS_StbM_00428] and [SWS_StbM_00307] ) for the Time Base, the Synchronized Tim e Base Record Table shall contain a history of as many blocks as configured by StbMSyncTimeRecordTableBlockCount ( ECUC_StbM_00058 : ).

SWS_StbM_00383 requirement

If Global Time Pr ecision Measurement is enabled (refer to [SWS_StbM_00428] ) for the Time Base, the Offset Time Base Record Table shall contain as many blocks as configured by StbMOffsetTimeRecordTableBlockCount ( ECUC_StbM_00059 : ).

SWS_StbM_00386 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_GetTimeBaseS tatus() shall report to DET the development error STBM_E_PARAM_POINTER , if called with a NULL pointer for parameter syncTimeBaseStatus or offsetTimeBaseStatus .

SWS_StbM_00387 requirement

- Variation (({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MIs System Wide Global Time Master)} == FALSE) && ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MAllow System Wide Global Time Master)} == FALSE)) && ({ecuc(Stb M/ Stb MGeneral/ Stb MTime Recording Support)} == True) && ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} < 32) && (({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MTime Recording/ Stb MSync Time Record Block Callback)}==NULL) && ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MTime Recording/ Stb MOffset Time Record Block Callback)}==NULL)) TBName={ecuc(Stb M/ S tb MSynchronized Time Base.SHORT - NAME)}

SWS_StbM_00388 requirement

For O ffset Time Bases, i f Global Time P recision Measurement is enabled (refer to [SWS_StbM_00428] and [SWS_StbM_00307] ) for the Time Base, on an invocation of StbM_BusSetGlobalTime() the StbM shall write the block elements GlbSeconds , GlbNanoSeconds and TimeBaseStatus to the related measurement recording table.

SWS_StbM_00391 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_SetRateCorrection () shall r eport to DET the development error STBM_E_PARAM , if called with a parameter tim eBaseI d , which  is not configured or  is within the reserved value range.

SWS_StbM_00392 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to T RUE , StbM_SetRateCorre ction () shall r epor t to DET the development error STBM_E_ SERVICE_DISABLED, if StbMAllow Master RateCorrection is set to FALSE for the corresponding Time Base , i.e., it is not allowed to call StbM_SetRateCorrection () .

SWS_StbM_00393 requirement

For Time Base s 16 to 31 each invocation of StbM_BusSetGlobalTime() shall update the corresponding Main Time Tuple and set the User Data and the Time Base Status accordingly.

SWS_StbM_00394 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_GetSyncTimeRecordHead () shall repor t to DET the development error STBM_E_PARAM , if called with a parameter timeBaseI d , which  is not configured or  refers to a Pure Local or a Offset Time Base or  is within the reserved value rang e.

SWS_StbM_00395 requirement

If StbMAllow Master RateCorrection equals TRUE , an invocation of StbM_S etRateCorrection() shall set the rate correction value. O therwise StbM_SetRateCorrection() shall do nothing and return E_NOT_OK .

SWS_StbM_00396 requirement

If the absolute value of the rate correction parameter rateDeviation , which is passed to StbM_SetRateCorrection(), is greater than StbMMasterRateDeviationMax , StbM_SetRateCorrection shall set the actually applied rate correction value to either ( StbMMasterRateDeviationMax) or ( - StbMMasterRateDeviationMax) (depending on sign of rate Deviation ) .

SWS_StbM_00397 requirement

For Time Bases with StbMSynchronizedTimeBaseIdentifier 0 to 31 ( ECUC_StbM_00021 : ) and StbMIsSystemWideGlobalTimeMaster = False ( ECUC_StbM_00036 : ), the StbM shall return on invocation of StbM_GetRateDeviation() the rate deviation r Dev , which has been calculated for that Time Base . If no rate deviation has been calculated , StbM_GetRateDeviation() shall return E_NOT_OK .

SWS_StbM_00398 requirement

For Pure Local Time Bases StbM_GetCurrentTime() and StbM_GetCurrentTime Extended () shall return the User Data as set by StbM_SetGlobalTime() , StbM_UpdateGlobalTime() or StbM_SetUserData () by the lo cal Pure Local Time Master.

SWS_StbM_00399 requirement

For Pure Local Time Bases all bits of the Time Base status timeBaseStatus shall be set to 0, except for bit GLOBAL_TIME_BASE . GLOBAL_TIME_BASE shall be set to 1, by a valid invocation of StbM_S etGlobalTime() or StbM_UpdateGlobalTime() and only set to 0 by StbM_Init() .

SWS_StbM_00404 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , GetOffset TimeReco rd Head shall r eport to DE T the development error STBM_E_PARAM_POINTER , if called with an invalid pointer of parameter offsetRecordTableHead .

SWS_StbM_00405 requirement

If the swi tch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , GetSync TimeRecord Head shall r eport to DET the development error STBM_E_PARAM_P OINTER , if called with an invalid pointer of parameter sync RecordTableHead .

SWS_StbM_00406 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_StartTimer() shall r eport to DET the development error STBM_ E_PARAM , if called with a parameter customerId , which is not configured.

SWS_StbM_00407 requirement

The frequency of invocations of StbM_MainFunction is determined by the configuration parameter StbMMainFunctionPeriod .

SWS_StbM_00408 requirement

StbM_GetMasterConfig() shall return the value of the configuration parameter StbMIsSystemWideGlobalTimeMaster ( ECUC_StbM_00036 : ) for the Time Base timeBaseId . This is to check, if the StbM is configured as sy stem wide Global Time Master for a specific Time Base.

SWS_StbM_00409 requirement

Name Start Timer Comment Interface, which starts a timer for a Time Base Is Service true Variation -- Possible Errors 0 E_ OK Operation successful 1 E_ NOT_ OK Operation failed Operation Start Timer Comment Starts a Stb M internal timer, which expires at the given expire Time and which triggers a time notification callback. Variation -- Parameters expire Time Type Stb M _ Time Stamp Type Direction IN Comment -- Variation -- Possible Errors E _ O K E _ N O T _ O K

SWS_StbM_00411 requirement

The StbM shall apply rate correction to a Time Base, if StbMAllowMasterRateCorrection ( ECUC_StbM_00043 : ) equals TRUE and a valid rate correction value has been set by StbM_SetRateCorrection() .

SWS_StbM_00412 requirement

F or a Synchronized Time Base t he StbM shall use r rc = 1, if a valid correction rate (r rc ) has not yet been calculated or is not being calculated (refer [SWS_StbM_00377] ) but shall be applied (refer to 7.3.8.2 ). F or an Offset Time Base t he StbM shall use r orc = 1, if a valid correction rate (r orc ) has not yet been calculated or is not being calculated (refer [SWS_StbM_00377] ) but shall be applied (refer to 7.3.8.2 ).

SWS_StbM_00413 requirement

After initialization the StbM shall maintain the Time of each Pure Local Time Base autonomously via a hardware reference clock (referenced by StbMLocalTimeClock) .

SWS_StbM_00414 requirement

StbM_GetTimeBaseUpdateCounter () shall return the value of the timeBaseUpdateCounter of the corresponding Time Base.

SWS_StbM_00415 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_GetMasterConfig() shall report to DET the development error STBM_E_PARAM , if called with a parameter timeBaseI d , which  is not configured or  is within the reserved value r ange .

SWS_StbM_00416 requirement

[SWS_StbM_00416] Upstream requirements: SRS_BSW_00386, SRS_BSW_00323 ⌈If the switch StbMDevErrorDetect is set to TRUE, StbM_GetMasterConfig shall report to DET the development error STBM_E_PARAM_POINTER, if called with a NULL pointer for parameter masterConfig.⌋

SWS_StbM_00421 requirement

If any StbMNotificationCustomer ( ECUC_StbM_00050 : ) is configured, the StbM shall use one additional GPT source (referenced by St bMGptTimerRef ECUC_StbM_00039 : ), w hich is not used for other purposes.

SWS_StbM_00422 requirement

 For Time Bases with StbMSynchronizedTimeBaseIdentifier 32 to 127 ( ECUC_StbM_00021 : ) and  for Time Bases with StbMSynchronizedTimeBaseIdentifier 0 to 31 and StbMIsSystemWideGlo balTimeMaster equals True ( ECUC_StbM_00036 : ) the StbM shall return on invocation of StbM_GetRateDeviation() the rate deviation that has been set by StbM_SetRateCorrection() for that Time Base. If no rate devia tion has been set, StbM_GetRateDeviation() shall return E_NOT_OK .

SWS_StbM_00424 requirement

The StbM shall calculate the ( rate corrected ) time (TL) of its local instance of the Time Base as: TL = TG Sync + (TV - TV Sync ) * r With:  TV = Current value of the Virtual Local Time  TV Sync = Virtual Local Time part of the Main Time Tuple  TG Sync = Globa l Time part of the Main Time Tuple  r = Rate for correcting the Time Base with r = r rc for Synchronized Time Bases r = r or c - 1 for Offset Time Bases If StbMAllowMasterRateCorrection ( ECUC_StbM_00043 : ) equals FA LSE r shall be set to  1 for Synchronized Time Bases  0 for Offset Time Bases (i.e., no rate correction is applied).

SWS_StbM_00425 requirement

For Synchronized and Offset Time Bases for which the StbM is configured as Time Slave or Time Gateway StbM_GetTimeLeap() shall return the Global T ime difference between the Updated R eceived Time and the Synclocal Time , i.e. , TG Rx - TL Sync , which is calcu lated up on each, except the very first, valid invocation of StbM_BusSetGlobalTime() for the corresponding Time Base. With  TL Sync = Global Time part of the Synclocal Time Tuple  TG Rx = Global Time part of the Updated Rx Time Tuple If the calculated t ime di fference e xceeds the value range of the timeJump parameter of StbM_GetTimeLeap() the returned time difference shall be limited to either the maximum negative or the maximum positive value of the type of timeJump (refer to StbM_Time Diff Type ) . StbM_GetTimeLeap() shall return E_NOT_OK until the second valid invocation of StbM_BusSetGlobalTime() for the corresponding Time Base.

SWS_StbM_00428 requirement

The StbM shall do Global Time precision measurement only for Synchronized Time Bases and Offset Time Bases, for which StbMIsSystemWideGlobalTimeMaster ( ECUC_StbM_00036 : : ) is set to FALSE .

SWS_StbM_00431 requirement

For the Time Master of a Synchronized Time Base the StbM shall use r rc = 1, if a valid correction rate (r rc ) has not yet been set. For the Time Master of an Offset Time Base the StbM shall use r orc = 1, if a valid correct ion rate (r orc ) has not yet been set .

SWS_StbM_00432 requirement

When the StbM detects for an active customer, while monitoring the difference to CustomerTimerExpireTime (see [SWS_StbM_00335] ), that  the CustomerTimerExpireTime has already been passed and  the GPT timer has not yet been starte d, the StbM shall call StbM_TimeNotificationCallback() immediately.

SWS_StbM_00433 requirement

The Main Time Tuple shall only be updated  after setting a new Global Time or a new Rate Correction value by the application  after obtaining a Received Time Tuple (i.e., a new Time Tuple) from a Timesyn c Module  after t he Offset Co rrection By Rate Adaption interval (see [SWS_StbM_00353] ) However, the Main Time Tuple may be updated if there has been no update for more than 3s.

SWS_StbM_00434 requirement

For Time Domains 0 to 15 StbM_GetCurr entTime() , StbM_GetCurrentTime Extended () , and StbM_ Bus GetCurrentTime() shall return E_NOT_OK if the value of the associated Virtual Local Time could not be retrieved.

SWS_StbM_00435 requirement

For Time Base 0 to 15 StbM_ Bus GetCurrentTime() shall return for the requested Time Domain the T ime Tuple [ T L ; TV ] of the Time Base , the related Status and the User Data. The current time of the Time Base shall be derived from the associated Virtual Local Time , w h i c h is derived from either the referenced OS counter, a GPT or a referenced Ethernet controller (refer to StbMLocalTimeHardware ) .

SWS_StbM_00436 requirement

Although the retrieved value of the Virtual Local Time and the time which is returned by StbM_GetCurrentTime() , StbM_GetCurrentTime Extended () , and StbM_ Bus GetCurrentTime() form a new Time Tuple [TL ; TV], this tu ple shall only replace the Main Time Tuple if the requirements as specified in [ SWS_StbM_00433] are met.

SWS_StbM_00437 requirement

StbM_GetCurrent VirtualLocal Time() shall return the value of the Virtual Local Time of the associated Time Base . For Offset Time Bases the Virtual Local Time of the referenced Synchronized T ime Base shall be returned . If the Virtual Local Time could not be determined (e.g., the underlying hardware counter h as not been activated yet ), StbM_GetCurrent VirtualLocal Time() shall return E_NOT_OK .

SWS_StbM_00438 requirement

The StbM shall determine f or Time Base s 0 to 15 on each invocation of StbM_BusSetGlobalTime() t he Synclocal Ti me Tuple [ TL Sync ;TV Sync ] by using the value of the Virtual Local Time of the Updated Rx Time Tuple as reference (i.e., TV Rx is used for TV when calculating TL in [SWS_StbM_00355] ) . The Synclocal Tim e Tuple s hall be determin ed using the Main Time Tuple before the Main Time Tuple itself is updated.

SWS_StbM_00439 requirement

The StbM shall determine f or Time Bases 16 to 31 on each invocation of StbM_BusSetGlobalTime() the Syn clocal Time Tup le [ TL S ync ;TV Sync ] by using the value of the Virtual Local Time of the Updated Rx Time Tuple as reference (i.e., TV Rx is used for TV when calculating TL in [SWS_StbM_00355] ). The Synclocal Time Tupl e shall b e determined using the Main T ime Tuple before the Main Time Tuple is updated.

SWS_StbM_00440 requirement

For Synchronized Time Bases and if rate correction is enabled (see [SWS_StbM_00377] ) and i f the absolute value of the time offset between the Received Time and the Synclo cal Time (abs ( TG Rx - TL Sync ) ) is equal or greater than StbMOffsetCorrectionJumpThreshold ( ECUC_StbM_00056 : ) , the StbM shall use the factor r rc for the rate correction term r: r = r rc Otherwise r shall be set to 1 , unl ess r shall be set accordingly to [SWS_StbM_00356] or [SWS_StbM_00353] .

SWS_StbM_00441 requirement

For Offset Time Bases and if rate correction is enabled (see [SWS_StbM_00377] ) and i f the absolute value of the time offset between the Received Time and the Synclo cal Time (abs ( T G Rx - TL Sync ) ) is equal or greater than StbMOffsetCorrectionJumpThreshold ( ECUC_StbM_00056 : ) , the StbM shall use the factor r or c for the rate correction term r: r = r or c - 1 Otherwise r shall be set to 0, unl ess r shall be set accordlingly to [SWS_StbM_00356] or [SWS_StbM_00353] .

SWS_StbM_00442 requirement

For Synchronized Time Bases the Main Time Tuple shall be updated according to [ SWS_StbM_00440] and [SWS_StbM_00342] . U pon invocation of StbM_SetRateCorrection() the StbM shall calculate a temporary Time Tuple according to [SWS_StbM_00424] and replace the Main Time Tuple by this temporary Time Tuple. For calculati on of the tempora ry Time Tuple StbM shall use the r value, which is valid before it is updated by current call of StbM_SetRateCorrection() .

SWS_StbM_00443 requirement

For Offset Time Bases the Main Time Tuple shall be updated according to [SWS_StbM_00441] , [SWS_StbM_00190] and [SWS_StbM_00304] . Upon invocation of StbM_SetRateCorrection() the StbM shall calculate a temporary Time Tuple according to [SWS_StbM_00424] and replace the Main Time Tuple by this temporary Time Tuple. For calculation of the temporary Time Tuple StbM shall use the r value, which is valid before it is updated by current call of StbM_SetRateCorrection() .

SWS_StbM_00444 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_GetCurrentVirtualLocalTime () shall r eport to DET the development error STBM_E_PARAM_POINTER , if called with a NULL pointer for parameter localT i mePtr .

SWS_StbM_00445 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRU E , St bM_GetCurrentVirtualLocalTime () shall report to DET the development error STBM_E_PARAM , if called with a parameter timeBaseId , which  is not configured or  is within the reserved value range.

SWS_StbM_00446 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_BusGetCurrentTime() shall r eport to DET the development error STBM_E_PARAM , if called with a parameter timeBaseId , which  refer s to an Offset Time Base or  refer s to a Pure Local Time Bas e or  is not configured or  is within the reserved value range.

SWS_StbM_00447 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_BusGetCurren tTime() shall r eport to DET the development error STBM_E_PARAM_POINTER , if called with a NULL pointer for parameter globalT imePtr, localTimePtr or userData .

SWS_StbM_00448 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_SetGlobalTime() shall report to DET the development error STBM_E_PARAM_TIMESTAMP , if called with a parameter timeStamp that contains invalid elem ents (e.g., nanoseconds part > 999999999 ns).

SWS_StbM_00449 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_SetGlobalTi me() shall report to DET the development error STBM_E_PARAM_USERDATA , if called with an invalid value of parameter userData , i.e., userDataLength > 3.

SWS_StbM_00451 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_UpdateGlobalTime() shall report to DET the development error STBM_E_PARAM_TIMESTAMP , if called with a parameter timeStamp that contains invali d elements (e.g., nanoseconds part > 999999999 ns).

SWS_StbM_00452 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_UpdateGlobal Time() shall report to DET the development error STBM_E_PARAM_USERDATA , if called with an invalid value of parameter userData , i.e., userDataLength > 3.

SWS_StbM_00453 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_ SetOffset () shall report to DET the development error STBM_E_PARAM_TIMESTAMP , if called with a parameter timeStamp that contains invalid elements (e. g., nanoseconds part > 999999999 ns).

SWS_StbM_00454 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_ SetOffset () shall report to DET the development error STBM_E_PARAM_USERDATA , if called with an invalid value of parameter userData , i.e., userDataLength > 3.

SWS_StbM_00455 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_BusSetGlobalTime() shall re port to DET the development error STBM_E_PARAM_TIMESTAMP , if called with a parameter timeStamp that contains invalid elements (e.g., nanoseconds part > 999999999 ns).

SWS_StbM_00456 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_BusSetGlobalTime () shall report to DET the development error STBM_E_PARAM_USERDATA , if called with a n invalid value of parameter userData , i.e., userDataLength > 3.

SWS_StbM_00457 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_ SetUserData () shall report to DET the development error STBM_E_PARAM_USERDATA , if called with an invalid value of parameter userData , i.e., userData Length > 3.

SWS_StbM_00458 requirement

- Tags: atp.Status=draft Variation ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MTime Validation)} != NULL) && ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} < 16) && ({ecuc(Stb M/ Stb MSynchronized Time Base)} == {ecuc(Eth TSyn/ Eth TSyn Global Time D omain/ Eth TSyn Synchronized Time Base Ref - >Stb MSynchronized Time Base)})) TBName={ecuc(Stb M/ Stb MSynchronized Time Base.SHORT - NAME)}

SWS_StbM_00459 requirement

- Tags: atp.Status=draft Variation ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MTime Validation)} != NULL) && ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} < 16) && ({ecuc(Stb M/ Stb MSynchronized Time Base)} == {ecuc(Fr TSyn/ Fr TSyn Global Time Dom ain/ Fr TSyn Synchronized Time Base Ref - >Stb MSynchronized Time Base)}) TBName={ecuc(Stb M/ Stb MSynchronized Time Base.SHORT - NAME)}

SWS_StbM_00460 requirement

- Tags: atp.Status=draft Variation {ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MTime Validation)} != NULL) && ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} < 16) && ({ecuc(Stb M/ Stb MSynchronized Time Base)} == {ecuc(Can TSyn/ Can TSyn Global Time Domain/ Can TSyn Synchronized Time Base Ref - >Stb MSynchronized Time Base)}) TBName={ecuc(Stb M/ Stb MSynchronized Time Base.SHORT - NAME)}

SWS_StbM_00461 requirement

{DRAFT} Name Time Base Provider Notification_ Eth_{TB_ Name} (draft) Comment Notifies about the availability of a new Ethernet specific data block recorded for the Time Base. Tags: atp.Status=draft Is Service true Variation ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MTime Validation)} != NULL) && ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} < 16) && ({ecuc(Stb M/ Stb MSynchronized Time Base)} == {ecuc(Eth TSyn/ Eth TSyn Global Time Domain/ Eth TSyn Synchronized Time Ba se Ref - >Stb MSynchronized Time Base)}) TB_ Name ={ecuc(Stb M/ Stb MSynchronized Time Base.SHORT - NAME)} Possible Errors 0 E_ OK Operation successful 1 E_ NOT_ OK Operation failed Operation Set Master Timing Data Comment Provides the recorded data block for the Time Master of the Time Base. Variation ({ecuc(Eth TSyn/ Eth TSyn Global Time Domain/ Eth TSyn Port Role/ Eth TSyn Global Time Master)}!=NULL) Parameters measurement Data Type Stb M _ Eth Time Master Measurem ent Type Direction IN Comment Block of the table Variation -- Possible Errors E _ O K E _ N O T _ O K Operation Set Pdelay Initiator Data Comment Provides the recorded data block for the p Delay Initiator of the Time Base. Variation (({ecuc(Eth TSyn/ Eth TSyn Global Time Domain/ Eth TSyn Port Role/ Eth TSyn Global Time Slave)}!=NULL) Parameters measurement Data Type Stb M _ Pdelay Initiator Measurement Type Direction IN Comment Block of the table Variation -- Possible Errors E _ O K E _ N O T _ O K Operation Set Pdelay Responder Data Comment Provides the recorded data block for the p Delay Responder of the Time Base. Variation (({ecuc(Eth TSyn/ Eth TSyn Global Time Domain/ Eth TSyn Port Role/ Eth TSyn Global Time Master)}!=NULL) Parameters measurement Data Type Stb M _ Pdelay Responder Measurement Type Direction IN Comment Block of the table Variation -- Possible Errors E _ O K E _ N O T _ O K Operation Set Slave Timing Data Comment Provides the recorded data block for the Time Slave of the Time Base. Variation ({ecuc(Eth TSyn/ Eth TSyn Global Time Domain/ Eth TSyn Port Role/ Eth TSyn Global Time Slave)}!=NULL) Parameters measurement Data Type Stb M _ Eth Time Slave Measurement Type Direction IN Comment Block of the table Variation -- Possible Errors E _ O K E _ N O T _ O K

SWS_StbM_00462 requirement

{DRAFT} Name Time Base Provider Notification_ Fr_{TB_ Name} (draft) Comment Notifies about the availability of a new Flexray specific data block recorded for the Time Base. Tags: atp.Status=draft Is Service true Variation ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MTime Validation)} != NULL) && ({ecuc(Stb M/ Stb MSynchro nized Time Base/ Stb MSynchronized Time Base Identifier)} < 16) && ({ecuc(Stb M/ Stb MSynchronized Time Base)} == {ecuc(Fr TSyn/ Fr TSyn Global Time Domain/ Fr TSyn Synchronized Time Base Ref - >Stb MSynchronized Time Base)}) TB_ Name ={ecuc(Stb M/ Stb MSync hronized Time Base.SHORT - NAME)} Possible Errors 0 E_ OK Operation successful 1 E_ NOT_ OK Operation failed Operation Set Master Timing Data Comment Provides the recorded data block for the Time Master of the Time Base. Variation ({ecuc(Fr TSyn/ Fr TSyn Global Time Domain/ Fr TSyn Global Time Master)}!=NULL) Parameters measurement Data Type Stb M _ Fr Time Master Measurement Type Direction IN Comment Block of the table Variation -- Possible Errors E _ O K E _ N O T _ O K Operation Set Slave Timing Data Comment Provides the recorded data block for the Time Slave of the Time Base. Variation ({ecuc(Fr TSyn/ Fr TSyn Global Time Domain/ Fr TSyn Global Time Slave)}!=NULL) Parameters measurement Data Type Stb M _ Fr Time Slave Measurement Type Direction IN Comment Block of the table Variation -- Possible Errors E _ O K E _ N O T _ O K

SWS_StbM_00463 requirement

{DRAFT} Name Time Base Provider Notification_ Can_{TB_ Name} (draft) Comment Notifies about the availability of a new CAN specific data block recorded for the Time Base. Tags: atp.Status=draft Is Service true Variation ({ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MTime Validation)} != NULL) && ({ecuc(Stb M/ Stb MSynchronize d Time Base/ Stb MSynchronized Time Base Identifier)} < 16) && ({ecuc(Stb M/ Stb MSynchronized Time Base)} == {ecuc(Can TSyn/ Can TSyn Global Time Domain/ Can TSyn Synchronized Time Base Ref - >Stb MSynchronized Time Base)}) TB_ Name ={ecuc(Stb M/ Stb MSynch ronized Time Base.SHORT - NAME)} Possible Errors 0 E_ OK Operation successful 1 E_ NOT_ OK Operation failed Operation Set Master Timing Data Comment Provides the recorded data block for the Time Master of the Time Base. Variation ({ecuc(Can TSyn/ Can TSyn Global Time Domain/ Can TSyn Global Time Master)}!=NULL) Parameters measurement Data Type Stb M _ Can Time Master Measurement Type Direction IN Comment Block of the table Variation -- Possible Errors E _ O K E _ N O T _ O K Operation Set Slave Timing Data Comment Provides the recorded data block for the Time Slave of the Time Base. Variation ({ecuc(Can TSyn/ Can TSyn Global Time Domain/ Can TSyn Global Time Slave)}!=NULL) Parameters measurement Data Type Stb M _ Can Time Slave Measurement Type Direction IN Comment Block of the table Variation -- Possible Errors E _ O K E _ N O T _ O K

SWS_StbM_00465 requirement

T he StbM shall record timing data for Time Validation for Synchronized Time Bases (refer t o ECUC_StbM_00021 : StbMSynchronizedTimeBase ), which h ave Time Validation enabled ( i.e., ECUC_StbM_00072 : S bMTimeValidation is configured ) .

SWS_StbM_00466 requirement

Block 0 <bus>SlaveTimingData StbM_<bus>TimeSlaveMeasure mentType Bus specific structure to capture Time Slave Validation recording data Block 1 <bus>SlaveTimingData StbM_<bus>TimeSlaveMeasure mentType … Block ( StbMTime - Validation - RecordTable - BlockCount - 1) Table 2 : Time Slave Validation Record Table

SWS_StbM_00467 requirement

The type of the blocks in the Time Slave Validation Record Table ( Table 2 ) shall depend on the Timesync Module, which pro vides the data for the Time Slave Validation Record Table of the correspondi ng Time Base. Timesync Module (which provides timing record data) Type (of block in the Time Slave Validation Record Table) CanTSyn (by StbM_CanSetSlaveTimingData() ) StbM_CanTi meSlaveMeasurementType FrTSyn (by StbM_FrSetSlaveTimingData() ) StbM_FrTimeS laveMeasurementType EthTSyn (by StbM_EthSetSlaveTimingData() ) StbM_EthTimeSlaveMeasurementType Table 3 :Type Mapping for Time Slave Validation Record Table

SWS_StbM_00468 requirement

Block 0 <bus>MasterTimingData StbM_<bus>TimeMasterMeasure mentType Bus specific structure to capture Time Master Validation recording data of a Time Master Block 1 <bus>MasterTimingData StbM_<bus>TimeMasterMeasure mentType … Block ( StbMTime - Validation - RecordTable - BlockCount - 1) Table 4 :Time Master Validatioin Record Table

SWS_StbM_00469 requirement

The type of the blocks in the Time Master Validation Record Table ( Table 4 ) shall depend on the Timesync Module, which provides the data for the Time Master Validation Record Table of the correspon ding Time Base. Timesync Module (which provides timing record data) Type (of block in the Time Master Validation Record Table) CanTSyn (by StbM_CanSetMasterTimingData() ) StbM_CanTimeMasterMeasurementType FrTSyn (by StbM_FrSetMasterTimingData() ) StbM_F rTimeMasterMeasurementType EthTSyn (by StbM_EthSetMasterTimingData() ) StbM_EthTimeMasterMeasurementType Table 5 :Type Mapping for Time Master Validation Record Table

SWS_StbM_00470 requirement

Each  T ime Slave Validation Record Table ( Table 2 ) and  T ime Master Validation Record Table ( Table 4 )  Pdelay Initiator Validation Record Table ( Table 6 )  Pdelay Responder Validation Record Table ( Table 7 ) shall contain as many blocks as configured by StbMTimeVadidationRecordTableBlockCount ( ECUC_StbM_00073 : ).

SWS_StbM_00471 requirement

If Time Validation is enabled for a Time Base (refer to [ SWS_StbM_00464 ] and [ SWS_StbM_00465 ] ), upon invocation of StbM_<bus >SetSlaveTimingData() the StbM shall copy the content of the structure, which is passed by parameter measureDataPtr , to the next free <bus>SlaveTimingData block of the Time Slave Validation Record Table ( Table 2 ) of that Time Base. The StbM shall then shall set the value of the block element  <bus>SlaveTimingData.referenceGlobalTimestamp as TL Sync (refer to [SWS_StbM_00438] ) and  <bus>SlaveTimingData.referenceLocalTimestamp as TV Syn (refer t o [SWS_StbM_00438] ). (i.e., to the value of the Synclocal Time Tuple as set by the preceding call of StbM_BusSetGlobalTime() ).

SWS_StbM_00472 requirement

If no free block is available in the Time Slave Va lidation Record Table of a Time Base (i.e., all blocks have been written and no notification via operation SetSlaveTimingData of port TimeBaseProviderNotification_{bus}_{TimeBase} has yet occurred to pass all blocks to the application), the StbM shall over write the block containing the oldest measurement data upon invocation of StbM_<bus>SetSlaveTimingData() .

SWS_StbM_00473 requirement

If Time Validation is enabled for a Time Base (refer to SWS_StbM_00464 , SWS_StbM_00465 ), upon invocation of StbM_<bus>SetMasterTimingData() the StbM sh all copy the content of the structure, which is passed by parameter measureDataPtr , to the next free block <bus>MasterTimingData of the Time Master Validation Record Table ( Table 4 ) of that Time Base.

SWS_StbM_00474 requirement

{DRAFT} If no free block is available in the Timesync Master Timing Record Table of a Time Base (i.e., all blocks have been written and no notification via SetMasterTimingData of port TimeBaseProviderNotification_{bus}_{TB_ Name} has yet occurred to pass all blocks to the application), the StbM shall overwrite the block containing the oldest measurement data upon invocation of StbM_<bus>SetMasterTimingData() .

SWS_StbM_00475 requirement

For each Time Base,  which has Time Validation enabled (refer to SWS_StbM_00465 ) and  for which the StbM is configured as a Time Slave or Time Gateway the StbM shall check within each StbM_MainFunction() call, if new blocks (i.e., containing data that has not yet been passed to the application) have been written in the Time Slave Validation Record Table ( Table 2 ) . If so, the StbM shall pass all new blocks to the application by (repeatedly, block by block) calling operation SetSlaveTimingData of port TimeBaseProviderNotification_{bus}_{TimeBase} . The StbM shall pass the blocks starting with the block containing th e oldest data, and followed by the blocks in ascending order regarding their age (i.e., FIFO order). The block containing the newest data shall be passed last.

SWS_StbM_00476 requirement

For each Time Base,  which has Time Validation enabled (refer t o SWS_StbM_00465 ) and  for which the StbM is configured as a Time Master or Time Gateway the StbM shall check within each StbM_MainFunction() , if new blocks (i.e., containing data that has not yet been passed to the appli cation) have been written to the Time Master Validation Record Table ( Table 4 ) . If so, the StbM shall pass all new blocks to the application by (repeatedly, block by block) calling operation SetMasterTimingData of port TimeBasePro viderNotification_{bus}_{TimeBase} . The StbM shall pass the blocks starting with the block containing the oldest data, and followed by the blocks in ascending order regarding their age (i.e., FIFO order). The block containing the newest data shall be pass ed last.

SWS_StbM_00477 requirement

The StbM shall ensure data integrity of the blocks in the  Time Slave Validation Record Table ( Table 2 ) and  Time Master Validation Record Table ( Table 4 ) and  Pdelay Initiator Validation Record Table ( Table 6 ) and  Pdelay Responder Validation Record Table ( Table 7 ) . If a block is currently being overwritten, it shall not be passed to the application. If a block is curr ently passed to the application, it shall not be overwritten until processed by the application.

SWS_StbM_00478 requirement

If Time Validation is enabled for a Time Base (refer to SWS_StbM_00465 ), upon invocation of StbM_EthSetPdelayInitiatorData() the StbM shall write the content of the structure, which is passed by parameter measureDataPtr , to the next free block pdelayInitiatorData of the corresponding Pdelay Initiator Validation Record Table ( Table 6 ) of that Time Base .

SWS_StbM_00479 requirement

For each Time Base, which  has Time Valid ation enabled (refer to SWS_StbM_00465 ) and  is mapped to a Slave Communication Port on an Ethernet Time Domain, the StbM shall check within each StbM_MainFunction() , if new blocks (i.e., containing data that has not yet been passed to the application) have been written to the Pdelay Initiator Validation Record Table ( Table 6 ) . If so, the StbM shall pass all new blocks to the application by (repeatedly, block by block) calling ope ration SetPdelayInitiatorData of port TimeBaseProviderNotification_Eth_{TimeBase} . The StbM shall pass the blocks starting with the block containing the oldest data and followed by the blocks in ascending order regarding their age (i.e., FIFO order). The block containing the newest data shall be passed last.

SWS_StbM_00480 requirement

If Time Validation is enabled for a Time Base (refer to SWS_StbM_00464 , SWS_StbM_00465 ), upon invocation of StbM_EthSetPdelayResponderData() the StbM s hall write the content of the structure, which is passed by parameter measureDataPtr , to the next free block PdelayResponderData of the corresponding Pdelay Responder Validation Record Table ( Table 7 ) of that Time B ase.

SWS_StbM_00481 requirement

For each Time Base, wh ich  has Time Validation enabled (refer to SWS_StbM_00465 ) and  is mapped to a Master Communication Port on an Ethernet Time Domain, the StbM shall check within each StbM_MainFunction() , if new blocks (i.e., containing dat a that has not yet been passed to the application) have been written to the Pdelay Responder Validation Record Table ( Table 7 ). If so, the StbM shall pass all new blocks to the application by (repeatedly, block by block) calling operation SetPdelayResponderData of port TimeBaseProviderNotification_Eth_{TimeBase} . The StbM shall pass the blocks starting with the block containing the oldest data and followed by the blocks in ascending order regarding their age (i.e., FIFO order). The block containing the newest data shall be passed last.

SWS_StbM_00487 requirement

The function StbM_<bus>SetSlaveTimingData() shall be pre compile time configurable ON / OFF. If the corresponding <bus>TSyn module is confi gured with Time Validation Support enabled (refer to parameter <bus>TSynTimeValidationSupport in <bus>TSyn module) StbM_ <bus> SetSlaveTimingData() shall be ON , otherwise OFF .

SWS_StbM_00488 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_<bus>SetSlaveTimingData() shall r eport to DET the development error STBM_E_PARAM , if called with a parameter ti meBaseId , which does not refer to a Synchronized Time Base.

SWS_StbM_00489 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE, StbM_<bus>SetSlaveTimingData() shall r eport to DET the development error STBM_E_PARAM_POINTER , if called with a NULL pointer for parameter measureDataPtr.

SWS_StbM_00493 requirement

The function StbM_<bus>Se tMasterTimingData() shall be pre compile time configurable ON / OFF. If the corresponding <bus>TSyn module is configured with Time Validation Support enabled (refer to parameter <bus>TSynTimeValidationSupport in <bus>TSyn module), StbM_ <bus> SetMasterTimingDa ta() shall be ON , o therwise OFF .

SWS_StbM_00494 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , S tbM_<bus>SetMasterTimingData () s hall r eport to DET the development error STBM_E_PARAM , if called with a parameter timeBaseId , which does not refer to a Synchronized Time Base

SWS_StbM_00495 requirement

If the switch StbMDevErrorDet ect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_<bus>SetMasterTimingData() shall r eport to DET the development error STBM_E_PARAM_POINTER , i f called with a NULL pointer for parameter measureDataPtr .

SWS_StbM_00497 requirement

The function StbM_EthSetPdelayInitiatorData() shall be pre compile time con figurable ON / OFF. If the EthTSyn module is configur ed wit h Time Validation Support enabled (refer to parameter EthTSynTimeValidationSupport in EthTSyn module), StbM_EthSetPdelayInitiatorData() shall be ON , otherwise OFF .

SWS_StbM_00498 requirement

I f the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_EthSetPdelayInitiatorData() shall r eport to DET the development error STBM_E_PARAM , if called wit h a parameter time BaseId , which does not refer to a Synchronized Time Base

SWS_StbM_00499 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_EthSetPdela yInitiatorData() shall r eport to DET the development error STBM_E_PARAM_POINTER , if called with a NULL pointer for parameter measureDataPtr.

SWS_StbM_00501 requirement

The function StbM_EthSetPdelayResponderData() shall be pre compile time configurable ON / OFF. If the EthTSyn module is configured with Time Validation Support enabled (refer t o parameter EthTSynTimeValidationSupport in EthTSyn module), StbM_EthSetPdelayResponderData() shall be ON , otherwise OFF .

SWS_StbM_00502 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_EthSetPdelayResponderData () shall r eport to DET the development error STBM_E_PARAM , if called with a parameter timeBaseId , which d oes not refer to a Synchronized T ime Base

SWS_StbM_00503 requirement

If the s witch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_Et h SetPdelayResponderData () shall r eport to DET the development error STBM_E _PARAM_POINTER , if called with a NULL pointer for parameter measureDataPtr

SWS_StbM_00512 requirement

If StbMLocalTimeHardware ECUC_StbM_00053 : references a Gpt Channel as local time sourc e for a Synchronized Ti m e Base, the StbM shall derive the Virtual Local Time from the value of the corresponding GPT timer. The elapsed timer value shall be read via Gpt_GetTimeElapsed() .

SWS_StbM_00513 requirement

The StbM module shall apply appropriate mechanisms to allow calls of its APIs from o ther partitions than its main function, e.g. by providing a StbM satellite.

SWS_StbM_00514 requirement

The StbM module shall ensure to keep the synchronous contract of its APIs, even so they are called in other partitions than StbM module is assigned to.

SWS_StbM_00515 requirement

[SWS_StbM_00515] Upstream requirements: RS_TS_00008 ⌈If the range of the corresponding HW reference counter is less than that of the Vir- tual Local Time (refer to StbM_VirtualLocalTimeType), the StbM shall extend the range accordingly.⌋ Note: Depending on the HW reference clock one way of extending the range is to count overflows of the HW reference clock.

SWS_StbM_00516 requirement

On invocation of StbM_SetBusProtocolParam() fo r a Time Master of Time Bases 0 to 15, the StbM shall forward the values p rovided in argument protocolParam by calling EthTSyn_SetProtocolParam() . If  the corresponding Time Base is not mapped to Ethernet or  member protocolType of argument protocolParam i s not set to STBM_ TIMESYNC_ ETHERNET StbM_ S etBusProtocolParam() shall return E_NOT_OK .

SWS_StbM_00517 requirement

On invocation of StbM_GetBusProtocolParam() for Time Bases 0 to 15, the StbM shall read the structure values referenced by argument protocolParam by calling EthTSyn_GetProtocolParam() , if member protocolType o f argument protocolParam is set to STBM_ TIMESYNC_ ETHERNET . If  the corresponding Time Base is not mapped to Ethernet or  member protocolType of argument protocolParam is not set to STBM_ TIMESYNC_ ETHERNET StbM_GetBusProtocolParam() shall return E_NOT_OK .

SWS_StbM_00518 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_GetBus P rotocolParam () shall r eport to DET the development error STBM_E_PARAM , if called with a parameter timeBaseId , which is not referring to a Synchr onize d Time Base.

SWS_StbM_00519 requirement

If the swi tch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_GetBusProtoc olParam () shall r eport to DET the development error STBM_E_PA RAM_POINTER , if called with a NU L L pointer for parameter protocolParam .

SWS_StbM_00520 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_SetBusProtocolParam () shall r eport to DET the development error STBM_E_PARAM , if called with a parameter timeBaseId , which is not referring to a Synchronized Time Base.

SWS_StbM_00521 requirement

If the switch StbMDevErrorDetect ( ECUC_StbM_00012 : ) is set to TRUE , StbM_SetBusProtocolParam () shall r eport to DET the development error STBM_E_PARAM_POINTER , if called with a NULL pointer for parameter protocolParam .

SWS_StbM_00522 requirement

Block 0 pdelayInitiatorData StbM_PdelayInitiatorMeasur ementType Structure to capture Time Validation recording data of a PdelayInitiator Block 1 pdelayInitiatorData StbM_Pdela yInitiatorMeasur ementType … Block ( StbMTime - Validation - RecordTable - BlockCount - 1) Table 6 : Pdelay Initiator Validation Record Table

SWS_StbM_00523 requirement

Block 0 pdelayResponderData StbM_PdelayResponderMea surementType Structure to capture Time Validation recording data of a Pdelay Responder Block 1 pde layResponderData StbM_PdelayResponderMea surementType … Block ( StbMTime - Validation - RecordTable - BlockCount - 1) Table 7 : Pdelay Responder Validation Record Table

SWS_StbM_00525 requirement

If no free block is available in the Pdelay Responder Validation Record Table of a Time Base (i.e., all blocks have been written and no notification via operation SetPdelayResponderData of port TimeBaseProviderNotification _Eth_{TimeBase} has yet occurred to pass all blocks to the application), the StbM shall overwrite the block containing the oldest measurement data upon invocation of StbM_EthSetPdelayResponderData() .

SWS_StbM_00526 requirement

The StbM shall call the Status Notification callback from StbM_MainFunction() .

SWS_StbM_00528 requirement

For Time Bases 16 to 31 each invocation of StbM_BusSetGlobalTime() shall update the Rx Time Tuple [TG Rx ; TV Rx ] as follows (refer to Figure 6 ) : 1. Retrieve the current Virtual Local Tim e value as TV sync 2. Calcu la te the time interval T FRD = TV Rx - TV sync based on the Local Virtual Time value of the Rx Time Tuple (TV Rx ) as provided by input parameter localTimePtr 3. Apply the current rate value of the Offset Time Base r = (r roc – 1) to the t ime interval T FRD 4. Add th e rate corrected interval r*T FRD to the Global Time of the Rx Time Tuple (TG Rx ) as provided by input parameter globalTimePtr The resulting Time Tuple [TG Rx + r*T FRD ; TV sync ] is denoted as Updated Rx Time Tuple [TG URx ; TV URx ] of the Offset Time Base.

SWS_StbM_00529 requirement

For Time Bases 0 to 15 each invocation of StbM_BusSetGlobalTime() shall update the Rx Time Tuple [TG Rx ; TV Rx ] as follows (refer to Figure 6 ) : 1. Retrieve the curre nt Virtual Local Time val ue as TV sync 2. Calculate the time interval T FRD = TV Rx - TV sync based on the Local Virtual Time value of the Rx Time Tuple (TV Rx ) as provided by input parameter localTimePtr . 3. Apply the current rate value of the Synchronized Time Bas e r = r rc to the time int er val T FRD 4. Add the rate corrected interval r*T FRD to the Global Time of the Rx Time Tuple (TG Rx ) as provided by input parameter globalTimePtr The resulting Time Tuple [TG Rx + r*T FRD ; TV sync ] is denoted as Updated Rx Time Tuple [ TG URx ; TV URx ] of the Sync hr onized Time Base.

SWS_StbM_00530 requirement

For Synchronized Time Bases and Pure Local Time Bases upon invocation of Stb M_Clone TimeBase() , the StbM shall  first determine o the Destination Time Base (given by input parameter timeBaseId ) and o the Source Time Base (given by configuration parameter Stb MSourceTimeBase of the given Destination Time Base ( refer to ECUC_StbM_00074 : ) )  and then derive a [Source;Destination] time tuple from the Time Bases  and then check the DEFERRED_COPY flag in cloneCfg . If the DEFERRED_COPY fl ag is set, the StbM shall  store the clone request together with the parameters passed by Stb M_Clone TimeBase() as ‘deferred’  replace any pending deferred clone request of the same [Source;Destination] t uple by the actual deferred clone request  return E_OK. If the DEFERRED_COPY flag is not set, the StbM shall  remove any pen ding deferred clone request of the same [Source;Destination] tuple  immediately process the clone request.

SWS_StbM_00531 requirement

For Synchronized Time Bases and Pure Local Time B ases, the StbM shall check on every change of the TIMEOUT bit in the timeBaseStatus if a pending deferred clone request exists for which the Source part of the [Source;Destination] tuple is the same as the respective Time Base. If such a pending deferred clone request exists it shall be removed.

SWS_StbM_00532 requirement

For Synchronized Time Bases and Pu re Local Time Bases, the StbM shall check on every invocation of StbM_BusSetGlobalTime() if a pending deferred clone request exists for which the Source part of the [Source;Destination] tuple is the same as the respective Time Base. If such a pending deferred clone request exists it shall be proce ssed once StbM_BusSetGlobalTime() has been processed completely, i.e., the Time Base Status has been updated, the Updated Rx Time Tuple has been subject to rate correction calculations and the Main Time Tuple has been overwritten by the Updated Rx Time Tup le (refer to ch apter 7.3.8.2 ). After processing the pending deferred clone request it shall be removed.

SWS_StbM_00533 requirement

To process an immediate or deferred clone requ est the StbM shall first mask (logical AND ) the current Time Base Status with the statusMask parameter of the clone request. If the masked value is equal to the statusValue parameter of t he clone request, the StbM shall perform the clone operation. W hen processing an immediate clone request in t he course of Stb M_Clone TimeBase() , the StbM shall return E_OK if the clone request was successfully performed, otherwise the StbM shall return E_NOT_OK.

SWS_StbM_00534 requirement

When performing the clone operation the StbM shall copy the Time Base value and the Time Base User Bytes. If both, Source and Destination Time Base, are using the same Virtual Local Time Source, then the Main Time Tuple s hall be copied, otherwise the StbM shall • establish a protection against interruptions and run the next two steps directly afterwards: • retri eve the current Virtual Local Time TV Source for the Source Time Base • retrieve the current Virtual Local Time TV Destin ation for the Destination Time Base • the protection against interruptions can be removed now • determine a temporary Time Tuple [TL Source ;TV Source ] • create a Time Tuple [TL Source ;TV Destination ] which then replaces the Main Time Tuple of the Destination Time Ba se.

SWS_StbM_00535 requirement

When performing the clone operation the StbM shall check the flag APPLY_RATE of the cloneCfg parameter of the clone request. If the flag is set, t he StbM shall copy the Rate Correction value of the Source Time Base to the Destination Time Base.

SWS_StbM_00536 requirement

When performing the c lone operation the StbM shall check the flag IMMEDIATE_TX of the cloneCfg parameter of the clone request. If the flag is set, StbM shall increment the timeBaseUpdateCounter of the Destination Time Base after having copied the Time Base value and User Data to the Destinat ion Time Base (refer to [SWS_StbM_00534] ) to force an immedi ate transmission of the Time Base on the bus .

SWS_StbM_00537 requirement

If the switch S tbMDe vErrorDetect (ECUC_StbM_00012) is set to TRUE , Stb M_Clone TimeBase() shall r eport to DET the development error STBM_E_PARAM , i f called with a par ameter Time Base Id , which • is not configured or • refers to an Offset Time Base or • is within the reserved value rang e.

SWS_StbM_00538 requirement

{ DRAFT } If CAN hardware timestamping is supported (re fer to configuration parameter CanIfGlobal TimeSupport in CanIf, which is referenced via ECUC_StbM_00053 : StbMLocalTimeHa rdware , if set to CanTSynGlobalTimeDomain ), StbM.c shall include CanIf.h to have access to the interface of the CanIf module.

SWS_StbM_00539 requirement

{ D RA FT } If CanIfGlobalTimeSupport (referenced via StbMLocalTimeHardware ECUC_StbM_00053 : , if set to CanTSynGlobalTimeDomain ) is set to TRUE for a Synchronized Tim e Base, the StbM shall derive the current value of the Virtual Local Time (see StbM_VirtualLocalTimeType ) from the freerunning HW counter from the corresponding CAN Controller via CanIf_GetCurrentTime() . If CanIf_GetCurrentTime() returns E_NOT_OK the tim e value returned by CanIf_GetCurrentTime() shall be ignored .

SWS_StbM_00544 requirement

[SWS_StbM_00544] Upstream requirements: SRS_BSW_00386, SRS_BSW_00323 ⌈If the switch StbMDevErrorDetect is set to TRUE, StbM_GetTxFreshness shall report to DET the development error STBM_E_PARAM, if called with a parameter StbM- FreshnessValueId, which is not configured.⌋

SWS_StbM_00545 requirement

[SWS_StbM_00545] Upstream requirements: SRS_BSW_00386, SRS_BSW_00323 ⌈If the switch StbMDevErrorDetect is set to TRUE, StbM_GetTxFreshness shall report to DET the development error STBM_E_PARAM_POINTER, if called with a NULL pointer for parameter • StbMFreshnessValueLength • StbMFreshnessValue ⌋

SWS_StbM_00546 requirement

[SWS_StbM_00546] Upstream requirements: SRS_BSW_00386, SRS_BSW_00323 ⌈If the switch StbMDevErrorDetect is set to TRUE, StbM_GetTxFresh- nessTruncData shall report to DET the development error STBM_E_PARAM, if called with a parameter StbMFreshnessValueId, which is not configured.⌋

SWS_StbM_00547 requirement

[SWS_StbM_00547] Upstream requirements: SRS_BSW_00386, SRS_BSW_00323 ⌈If the switch StbMDevErrorDetect is set to TRUE, StbM_GetTxFresh- nessTruncData shall report to DET the development error STBM_E_PARAM_ POINTER, if called with a NULL pointer for parameter • StbMFreshnessValueLength • StbMFreshnessValue • StbMTruncatedFreshnessValueLength • StbMTruncatedFreshnessValue ⌋

SWS_StbM_00549 requirement

[SWS_StbM_00549] Upstream requirements: SRS_BSW_00386, SRS_BSW_00323 ⌈If the switch StbMDevErrorDetect is set to TRUE, StbM_GetRxFreshness shall report to DET the development error STBM_E_PARAM, if called with a parameter StbM- FreshnessValueId, which is not configured.⌋

SWS_StbM_00550 requirement

[SWS_StbM_00550] Upstream requirements: SRS_BSW_00386, SRS_BSW_00323 ⌈If the switch StbMDevErrorDetect is set to TRUE, StbM_GetRxFreshness shall report to DET the development error STBM_E_PARAM_POINTER, if called with a NULL pointer for parameter • StbMFreshnessValueLength • StbMFreshnessValue ⌋

SWS_StbM_00551 requirement

[SWS_StbM_00551]{DRAFT} ⌈The SPduTxConfirmationFct function shall be set by the parameter StbMGetTxConfFreshnessValueFuncName.⌋(RS_TS_00039)

SWS_StbM_00552 requirement

[SWS_StbM_00552] Upstream requirements: RS_TS_00039 ⌈The GetTxFreshnessTruncDataFct function shall be set by the parameter Stb- MGetTxTruncFreshnessValueFuncName.⌋

SWS_StbM_00553 requirement

[SWS_StbM_00553] Upstream requirements: RS_TS_00039 ⌈The GetTxFreshnessFct function shall be set by the parameter StbMGet- TxFreshnessValueFuncName.⌋

SWS_StbM_00554 requirement

[SWS_StbM_00554] Upstream requirements: RS_TS_00039 ⌈The GetRxFreshnessFct function shall be set by the parameter Stb- MGetRxFreshnessValueFuncName.⌋

SWS_StbM_00556 requirement

[SWS_StbM_00556] Upstream requirements: SRS_BSW_00386, SRS_BSW_00323 ⌈If the switch StbMDevErrorDetect is set to TRUE, StbM_StartTimer shall report to DET the development error STBM_E_PARAM_TIMESTAMP, if called with a parame- ter expireTime that contains invalid elements (e.g., nanoseconds part > 999999999 ns).⌋

SWS_StbM_00598 requirement

[SWS_StbM_00598] Status: DRAFT Upstream requirements: SRS_BSW_00386, SRS_BSW_00323 ⌈If the switch StbMDevErrorDetect is set to TRUE, StbM_GetCurrentSafeTime shall report to DET the development error STBM_E_PARAM, if called with a parameter timeBaseId, which is • not configured or • within the reserved value range. ⌋

SWS_StbM_00605 requirement

[SWS_StbM_00605] Status: DRAFT Upstream requirements: SRS_BSW_00386, SRS_BSW_00323 ⌈If the switch StbMDevErrorDetect is set to TRUE, StbM_GetCurrentSafeTime shall report to DET the development error STBM_E_PARAM_POINTER, if called with a NULL pointer for parameter timeTriple or userData⌋

SWS_StbM_00625 requirement

[SWS_StbM_00625] Status: DRAFT Upstream requirements: SRS_BSW_00386, SRS_BSW_00323 ⌈If the switch StbMDevErrorDetect is set to TRUE, StbM_GetFallbackVirtual- LocalTime shall report to DET the development error STBM_E_PARAM_POINTER, if called with a NULL pointer for parameter localTimePtr⌋

SWS_StbM_00626 requirement

[SWS_StbM_00626] Status: DRAFT Upstream requirements: SRS_BSW_00386, SRS_BSW_00323 ⌈If the switch StbMDevErrorDetect is set to TRUE, StbM_GetFallbackVirtual- LocalTime shall report to DET the development error STBM_E_PARAM, if called with a parameter timeBaseId, which • is not configured or • is within the reserved value range ⌋

SWS_StbM_00627 requirement

[SWS_StbM_00627] "Invalid Time Base Parameter" Development Error for StbM_SetCloningOffset Upstream requirements: SRS_BSW_00386, SRS_BSW_00323 ⌈If the switch StbMDevErrorDetect is set to TRUE, StbM_SetCloningOffset shall report to DET the development error STBM_E_PARAM, if called with a parame- ter timeBaseId, which • is not configured or • is within the reserved value range. ⌋

SWS_StbM_00628 requirement

[SWS_StbM_00628] "Service Not Supported" Development Error for StbM_SetCloningOffset Upstream requirements: SRS_BSW_00386, SRS_BSW_00323 ⌈If the switch StbMDevErrorDetect is set to TRUE, StbM_SetCloningOffset shall report to DET the development error STBM_E_SERVICE_NOT_SUPPORTED, if called for a Time Base, which has no Source Time Base (refer to parameter StbM- SourceTimeBase) configured.⌋

SWS_StbM_00630 requirement

[SWS_StbM_00630] "Service Not Supported" Development Error for StbM_SetUserData Upstream requirements: SRS_BSW_00386, SRS_BSW_00323 ⌈If the switch StbMDevErrorDetect is set to TRUE, when StbM_SetUserData is called for a Time Base for which the StbM is not configured as a Global Time Mas- ter, then StbM_SetUserData shall report to DET the development error STBM_E_ SERVICE_NOT_SUPPORTED.⌋

SWS_StbM_91004 requirement

- Port Defined Argument Value(s) Type Stb M _ Synchronized Time Base Type Value {ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier.value)} Type Stb M _ Customer Id Type Value {ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MNotification Customer/ Stb MNotification Customer Id.value)} Variation {ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MSynchronized Time Base Identifier)} < 128 Time Base = {ecuc(Stb M/ Stb MSynchronized Time Base.SHORT - NAME)} Customer = {ecuc(Stb M/ Stb MSynchronized Time Base/ Stb MNotification Customer.SHORT - NAME)}