Index: TestSupport.h =================================================================== diff -u -rf4ee38d0f7a18e47e6e4980360a7eac9220d244a -r0f1d0c443daee3e30ae823711e85f3410bbf49fe --- TestSupport.h (.../TestSupport.h) (revision f4ee38d0f7a18e47e6e4980360a7eac9220d244a) +++ TestSupport.h (.../TestSupport.h) (revision 0f1d0c443daee3e30ae823711e85f3410bbf49fe) @@ -1,50 +1,89 @@ /************************************************************************** * -* Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. +* Copyright (c) 2019-2021 Diality Inc. - All Rights Reserved. * -* THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN -* WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. +* THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN +* WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * -* @file Common.h +* @file TestSupport.h * -* @date 19-Sep-2019 -* @author S. Nash +* @author (last) Sean Nash +* @date (last) 25-Aug-2020 * -* @brief Header file for common definitions and types. +* @author (original) Sean +* @date (original) 11-Feb-2020 * -**************************************************************************/ +***************************************************************************/ #ifndef __TEST_SUPPORT_H__ #define __TEST_SUPPORT_H__ +/** + * @defgroup TestSupport TestSupport + * @brief Test support header file. Contains the structures and macros for override operations. + * + * @addtogroup TestSupport + * @{ + */ + // ***************************** OVERRIDE DEFINITIONS & MACROS ************************************* -#define OVERRIDE_KEY 0xCCC33C33 -#define OVERRIDE_RESET 0x00000000 +#define OVERRIDE_KEY 0xCCC33C33 ///< Override key +#define OVERRIDE_RESET 0x00000000 ///< Override reset #pragma pack(push,1) +/// Test override payload type union. typedef union { - U32 u32; - F32 f32; + U32 u32; ///< U32 + F32 f32; ///< F32 } TEST_OVERRIDE_PAYLOAD_TYPE_T; +/// Test override payload type structure. typedef struct { - BOOL reset; - TEST_OVERRIDE_PAYLOAD_TYPE_T state; + BOOL reset; ///< Reset (bool) + TEST_OVERRIDE_PAYLOAD_TYPE_T state; ///< Test override payload } TEST_OVERRIDE_PAYLOAD_T; +/// Test override array payload structure. typedef struct { - BOOL reset; - TEST_OVERRIDE_PAYLOAD_TYPE_T state; - U32 index; + BOOL reset; ///< Reset (bool) + TEST_OVERRIDE_PAYLOAD_TYPE_T state; ///< Test override array payload + U32 index; ///< Index } TEST_OVERRIDE_ARRAY_PAYLOAD_T; #pragma pack(pop) +/// Override U32 structure. +typedef struct +{ + U32 data; ///< Data + U32 ovInitData; ///< Override init data + U32 ovData; ///< Override data + U32 override; ///< Override +} OVERRIDE_U32_T; + +/// Override S32 structure. +typedef struct +{ + S32 data; ///< Data + S32 ovInitData; ///< Override init data + S32 ovData; ///< Override data + U32 override; ///< Override +} OVERRIDE_S32_T; + +/// Override F32 structure. +typedef struct +{ + F32 data; ///< Data + F32 ovInitData; ///< Override init data + F32 ovData; ///< Overrode data + U32 override; ///< Override +} OVERRIDE_F32_T; + // DATA_DECL - declares an overrideable data variable // t = data's type // t_name = name for data's structure type @@ -109,6 +148,7 @@ // max = DATA array's maximum index // d_name = name of data's variable // f_val = value to return if index is out of range +#ifdef _DG_ #define DATA_ARRAY_GET( t, f_name, i_name, max, d_name, f_val ) \ t f_name( U32 i_name ) \ { \ @@ -126,10 +166,33 @@ } \ else \ { \ - activateAlarmNoData( ALARM_ID_SOFTWARE_FAULT ); \ + activateAlarmNoData( ALARM_ID_DG_SOFTWARE_FAULT ); \ } \ return result; \ } +#else +#define DATA_ARRAY_GET( t, f_name, i_name, max, d_name, f_val ) \ +t f_name( U32 i_name ) \ +{ \ + t result = f_val; \ + if ( i_name <= max ) \ + { \ + if ( OVERRIDE_KEY == d_name[ i_name ].override ) \ + { \ + result = d_name[ i_name ].ovData; \ + } \ + else \ + { \ + result = d_name[ i_name ].data; \ + } \ + } \ + else \ + { \ + activateAlarmNoData( ALARM_ID_HD_SOFTWARE_FAULT ); \ + } \ + return result; \ +} +#endif // DATA_OVERRIDE_FUNC - creates an override and a reset override function for a DATA // t = data's type @@ -171,7 +234,7 @@ BOOL o_name( U32 i_name, t value ) \ { \ BOOL result = FALSE; \ - if ( i_name <= max ) \ + if ( i_name < max ) \ { \ if ( TRUE == isTestingActivated() ) \ { \ @@ -185,7 +248,7 @@ BOOL r_name( U32 i_name ) \ { \ BOOL result = FALSE; \ - if ( i_name <= max ) \ + if ( i_name < max ) \ { \ if ( TRUE == isTestingActivated() ) \ { \ @@ -305,4 +368,6 @@ sendTestAckResponseMsg( (MSG_ID_T)message->hdr.msgID, result ); \ } +/**@}*/ + #endif