/************************************************************************** * * Copyright (c) 2024-2024 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. * * @file TestSupport.h * * @author (last) Sean * @date (last) 30-Jul-2024 * * @author (original) Sean * @date (original) 30-Jul-2024 * ***************************************************************************/ #ifndef __TEST_SUPPORT_H__ #define __TEST_SUPPORT_H__ #include "MessageSupport.h" /** * @defgroup TestSupport TestSupport * @brief Test support functions for accessing override records, managing * test configuration settings and handling Dialin check-ins. * * @addtogroup TestSupport * @{ */ // ***************************** OVERRIDE DEFINITIONS & MACROS ************************************* #define OVERRIDE_KEY 0xCCC33C33 ///< Override key #define OVERRIDE_RESET 0x00000000 ///< Override reset /// Override types. typedef enum override_Types { OVERRIDE_INVALID = 0, ///< Invalid - payload invalid or corrupted. OVERRIDE_RESET_OVERRIDE, ///< Override reset. OVERRIDE_OVERRIDE, ///< Override. NUM_OF_OVERRIDE_TYPES ///< Number of override types. } OVERRIDE_TYPE_T; #ifdef _DD_ /// DD test software configurations typedef enum test_Config_enums { TEST_CONFIG_MIX_WITH_WATER = 0, ///< Test configuration mix with water. TEST_CONFIG_FIRST = TEST_CONFIG_MIX_WITH_WATER, ///< Test configuration first configuration. TEST_CONFIG_DISABLE_INLET_WATER_TEMP_CHECK, ///< Test configuration disable inlet water temperature check. TEST_CONFIG_RECOVER_TREATMENT, ///< Test configuration recover treatment. NUM_OF_TEST_CONFIGS ///< Number of test configuration. } TEST_CONFIG_T; #endif #ifdef _TD_ /// TD test software configurations typedef enum test_Config { TEST_CONFIG_USE_WET_CARTRIDGE = 0, ///< Test configuration use wet cartridge. TEST_CONFIG_FIRST = TEST_CONFIG_USE_WET_CARTRIDGE, ///< Test configuration first configuration. TEST_CONFIG_USE_WORN_CARTRIDGE, ///< Test configuration use worn cartridge. TEST_CONFIG_EXPEDITE_PRE_TREATMENT, ///< Test configuration expedite pre-treatment. TEST_CONFIG_SKIP_BLOOD_PRIME, ///< Test configuration skip blood prime. TEST_CONFIG_SKIP_DISINFECT_AND_SERVICE_TX_BLOCKERS, ///< Test configuration skip disinfect and service treatment blockers. TEST_CONFIG_DISABLE_WET_SELFTEST_DISPLACEMENT_ALARM, ///< Test configuration disable wet self test displacement alarm. TEST_CONFIG_RECOVER_TREATMENT, ///< Test configuration recover treatment. TEST_CONFIG_ENABLE_ONE_MINUTE_TREATMENT, ///< Test configuration enable one minute treatment. TEST_CONFIG_DISABLE_BLOOD_LEAK_ALARM, ///< Test configuration disable blood leak alarm. NUM_OF_TEST_CONFIGS ///< Number of test configuration. } TEST_CONFIG_T; #endif #ifdef _RO_ /// DD test software configurations typedef enum test_Config_enums { TEST_CONFIG_FIRST = 0, NUM_OF_TEST_CONFIGS ///< Number of test configuration. } TEST_CONFIG_T; #endif #pragma pack(push,1) /// Test configuration payload typedef struct { BOOL reset; ///< Test configuration reset. U32 config; ///< Test configuration. } TEST_CONFIG_PAYLOAD_T ; /// Test override payload type union. typedef union { U32 u32; ///< U32 F32 f32; ///< F32 S32 s32; ///< S32 } TEST_OVERRIDE_PAYLOAD_TYPE_T; /// Test override payload type structure. typedef struct { 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; ///< 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; // ********** public function prototypes ********** U08 getU08OverrideValue( OVERRIDE_U32_T *ovU32 ); U16 getU16OverrideValue( OVERRIDE_U32_T *ovU32 ); U32 getU32OverrideValue( OVERRIDE_U32_T *ovU32 ); S32 getS32OverrideValue( OVERRIDE_S32_T *ovS32 ); F32 getF32OverrideValue( OVERRIDE_F32_T *ovF32 ); OVERRIDE_TYPE_T getOverridePayloadFromMessage( MESSAGE_T *message, TEST_OVERRIDE_PAYLOAD_T *override ); OVERRIDE_TYPE_T getOverrideArrayPayloadFromMessage( MESSAGE_T *message, TEST_OVERRIDE_ARRAY_PAYLOAD_T *override ); BOOL u32BroadcastIntervalOverride( MESSAGE_T *message, OVERRIDE_U32_T *override, U32 taskIntvlMS ); BOOL u32Override( MESSAGE_T *message, OVERRIDE_U32_T *override, U32 min, U32 max ); BOOL s32Override( MESSAGE_T *message, OVERRIDE_S32_T *override ); BOOL f32Override( MESSAGE_T *message, OVERRIDE_F32_T *override ); BOOL u32ArrayOverride( MESSAGE_T *message, OVERRIDE_U32_T *override, U32 maxIndex, U32 min, U32 max ); BOOL s32ArrayOverride( MESSAGE_T *message, OVERRIDE_S32_T *override, U32 maxIndex ); BOOL f32ArrayOverride( MESSAGE_T *message, OVERRIDE_F32_T *override, U32 maxIndex ); // Test configuration functions void initTestConfigs( void ); BOOL setTestConfig( TEST_CONFIG_T config ); BOOL resetTestConfig( TEST_CONFIG_T config ); BOOL getTestConfigStatus( TEST_CONFIG_T config ); BOOL sendTestConfigStatusToDialin( void ); BOOL resetAllTestConfigs( void ); void setDialinCheckInTimeStamp( void ); BOOL hasDialinCheckInExpired( void ); void setRecoverFromFaultModeSignal( void ); BOOL hasRecoverFromFaultModeBeenSet( void ); /**@}*/ #endif