/************************************************************************** * * 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 Heaters.h * * @author (last) Vinayakam Mani * @date (last) 07-Oct-2024 * * @author (original) Vinayakam Mani * @date (original) 07-Oct-2024 * ***************************************************************************/ #ifndef _HEATERS_H_ #define _HEATERS_H_ #include "DDCommon.h" /** * @defgroup Heaters Heaters * @brief Heaters driver modules. Controls the primary and trimmer heaters. * The primary heaters are manufactured by Watlow with * fluid operating temperature in between 5 degrees C and 95 degrees C. * The trimmer heater is manufactured by Watlow with * fluid operating temperature in between 5 degrees C and 95 degrees C. * * @addtogroup Heaters * @{ */ // ********** Public definitions ********** /// Name of DD heaters typedef enum Heaters { DD_PRIMARY_HEATER = 0, ///< DD primary heater DD_HEATERS_FIRST = DD_PRIMARY_HEATER, ///< First heater DD_TRIMMER_HEATER, ///< DD trimmer heater NUM_OF_DD_HEATERS, ///< Number of the heaters } DD_HEATERS_T; /// Heaters data structure. typedef struct { F32 mainPrimayHeaterDC; ///< Main primary heater DC F32 trimmerHeaterDC; ///< Trimmer heater DC F32 primaryTargetTemp; ///< Primary heater target temperature F32 trimmerTargetTemp; ///< Trimmer heater target temperature U32 primaryHeaterState; ///< Primary heater state U32 trimmerHeaterState; ///< Trimmer heater state U32 primaryControlCounter; ///< Primary heater control interval count U32 trimmerControlCounter; ///< Trimmer heater control interval count } HEATERS_DATA_T; // ********** Public function prototypes ********** void initHeaters( void ); BOOL setHeaterTargetTemperature( DD_HEATERS_T heater, F32 targetTemperature ); BOOL startHeater( DD_HEATERS_T heater ); F32 getHeaterTargetTemperature( DD_HEATERS_T heater ); BOOL isHeaterOn( DD_HEATERS_T heater ); void stopHeater( DD_HEATERS_T heater ); void execHeatersControl( void ); void execHeatersMonitor( void ); BOOL testHeatersDataPublishIntervalOverride( MESSAGE_T *message ); BOOL testHeaterDutyCycleOverride( MESSAGE_T *message ); /**@}*/ #endif