/************************************************************************** * * Copyright (c) 2019-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 CPLD.h * * @author (last) Dara Navaei * @date (last) 21-Nov-2022 * * @author (original) Dara Navaei * @date (original) 05-Nov-2019 * ***************************************************************************/ #ifndef __CPLD_H__ #define __CPLD_H__ #include "DGCommon.h" /** * @defgroup CPLD CPLD * @brief CPLD module. * * @addtogroup CPLD * @{ */ // ********** public definitions ********** // **** Types **** /// List of pin signal states. typedef enum Cpld_Clean_LED_Colors { CPLD_CLEAN_LED_OFF = 0, ///< OFF CPLD_CLEAN_LED_ORANGE, ///< Orange CPLD_CLEAN_LED_YELLOW, ///< Yellow CPLD_CLEAN_LED_BLUE, ///< Blue NUM_OF_CPLD_CLEAN_LED_COLORS ///< Number of CPLD Clean LED colors } CPLD_CLEAN_LED_COLORS_T; #pragma pack(push,1) typedef struct { U08 wdog; ///< Watchdog status (Expired True or False) U08 audio; ///< Audio Alarm status (On / Off) U08 fault_led; ///< Fault LED (On / Off) U08 clean_led; ///< Clean / Disinfect LED (CPLD_CLEAN_LED_COLORS_T) } CPLD_STATUS_T; #pragma pack(pop) // ********** public function prototypes ********** void initCPLD( void ); void toggleCPLDWatchdog( void ); PIN_SIGNAL_STATE_T getCPLDWatchdogExpired( void ); void setCPLDCleanLEDColor( CPLD_CLEAN_LED_COLORS_T color ); void setCPLDFaultLED( PIN_SIGNAL_STATE_T level, BOOL fault ); void setCPLDFaultAudio( PIN_SIGNAL_STATE_T level ); void getCPLDStatus( CPLD_STATUS_T *status ); void broadcastCPLDStatus( void ); /**@}*/ #endif