/************************************************************************** * * Copyright (c) 2021-2023 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 SelfTests.h * * @author (last) Sean Nash * @date (last) 11-Jul-2023 * * @author (original) Quang Nguyen * @date (original) 28-Jan-2021 * ***************************************************************************/ #ifndef __SELF_TESTS_H__ #define __SELF_TESTS_H__ #include "HDCommon.h" #include "HDDefs.h" /** * @defgroup SelfTests SelfTests * @brief SelfTests module. This module handles self-tests execution for pre-treatment mode. * * @addtogroup SelfTests * @{ */ // ********** public definitions ********** /// Payload record structure for no cartridge self-test data broadcast message typedef struct { U32 timeout; ///< No cartridge self-test timeout (in seconds) U32 countdown; ///< No cartridge self-test timeout countdown (in seconds) } SELF_TEST_NO_CARTRIDGE_PAYLOAD_T; /// Payload record structure for dry self-test data broadcast message typedef struct { U32 timeout; ///< Dry self-test timeout (in seconds) U32 countdown; ///< Dry self-test timeout countdown (in seconds) } SELF_TEST_DRY_PAYLOAD_T; // ********** public function prototypes ********** void initSelfTests( void ); void signalResumeSelfTests( void ); void transitionToNoCartSelfTests(); void execNoCartSelfTests( void ); U32 getNoCartSelfTestsState( void ); void transitionToDrySelfTests(); void execDrySelfTests( void ); U32 getDrySelfTestsState( void ); void transitionToWetSelfTests(); void execWetSelfTests( void ); BOOL isWetSelfTestsPassed( void ); U32 getWetSelfTestState( void ); void handleDoorCloseAfterCartridgeInsertion( void ); /**@}*/ #endif