/************************************************************************** * * 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. * * @file Fans.h * * @author (last) Sean Nash * @date (last) 01-Nov-2021 * * @author (original) Dara Navaei * @date (original) 04-Aug-2021 * ***************************************************************************/ #ifndef APP_CONTROLLERS_FANS_H_ #define APP_CONTROLLERS_FANS_H_ #include "HDCommon.h" /** * @defgroup Fans Fans * @brief Fans monitor/controller module. Controls and monitors the HD fans. * * @addtogroup Fans * @{ */ /// Fans names typedef enum HD_fans { FAN_INLET_1 = 0, ///< Fan inlet 1 NUM_OF_FANS_NAMES ///< Number of fans names } FAN_NAMES_T; /// Fans data publish typedef struct { F32 fansDutyCycle; ///< Fans duty cycle F32 fansTargetRPM; ///< Fans target RPM F32 fanInlet1RPM; ///< Fan inlet 1 RPM U32 rpmAlarmTimeOffset } FANS_DATA_T; void initFans( void ); SELF_TEST_STATUS_T execFansSelfTest( void ); void execFans( void ); F32 getMeasuredFanRPM( FAN_NAMES_T fan ); BOOL testSetFanPublishIntervalOverride( U32 value ); BOOL testResetFanPublishIntervalOverride( void ); BOOL testSetFanRPMOverride( U32 fanId, F32 rpm ); BOOL testResetFanRPMOverride( U32 fanId ); BOOL testSetFanRPMAlarmStartTimeOffsetOverride( U32 hours, U32 minutes ); BOOL testResetFanRPMAlarmStartTimeOffsetOverride( void ); /**@}*/ #endif