/************************************************************************** * * 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 { D5_HEAT = 0, ///< DD primary heater DD_HEATERS_FIRST = D5_HEAT, ///< First heater D45_HEAT, ///< DD trimmer heater NUM_OF_DD_HEATERS, ///< Number of the heaters } DD_HEATERS_T; /// Heaters data structure. typedef struct { F32 d5_HeaterDC; ///< Main primary heater Duty Cycle F32 d45_HeaterDC; ///< Trimmer heater Duty Cycle F32 d5_HeaterTargetTemp; ///< Primary heater target temperature F32 d45_HeaterTargetTemp; ///< Trimmer heater target temperature U32 d5_HeaterState; ///< Primary heater state U32 d45_HeaterState; ///< Trimmer heater state U32 d5_HeaterControlCounter; ///< Primary heater control interval count U32 d45_HeaterControlCounter; ///< Trimmer heater control interval count } HEATERS_DATA_T; // ********** Public function prototypes ********** void initHeaters( void ); BOOL setHeaterTargetTemperature( DD_HEATERS_T heater, F32 targetTemperature ); void 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 ); BOOL testHeaterTargetTemperatureOverride( MESSAGE_T *message ); BOOL testHeaterStartStopOverride( MESSAGE_T *message ); /**@}*/ #endif