/************************************************************************** * * Copyright (c) 2024-2025 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) 25-Aug-2025 * * @author (original) Vinayakam Mani * @date (original) 11-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 F32 d5_dutyCycleCnt; ///< Primary heater duty cycle in counts F32 d5_PWMPeriod; ///< Primary heater PWM period F32 d5_adjsutedTargetTemp; ///< Primary heater adjsuted target temperature F32 d5_targetTempFromTD; ///< User set target temperature #ifdef __HEATERS_DEBUG__ F32 dbg1; F32 dbg2; F32 dbg3; F32 dbg4; F32 dbg5; F32 dbg6; F32 dbg7; F32 dbg8; F32 dbg9; #endif } 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 ); void signalHeaterControlOnQDUpdate( DD_HEATERS_T heater ); void signaltoResetPrimaryHeaterAdjustedTargetTemp( void ); void setD28TempFeedbackControl( BOOL enable ); 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 testHeaterPWMPeriodOverride( MESSAGE_T *message ); BOOL testHeaterStartStopOverride( MESSAGE_T *message ); /**@}*/ #endif