/**********************************************************************//** * * Copyright (c) 2019-2020 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 OperationModes.h * * @date 11-Dec-2019 * @author L. Baloa * * @brief Header file for Operation Modes. * **************************************************************************/ #ifndef __OP_MODES_H__ #define __OP_MODES_H__ #include "DGCommon.h" /** * @defgroup OperationModes OperationModes * @brief Operation Modes module. * Manages the top level operation modes of the DG via a state machine. * * @addtogroup OperationModes * @{ */ // ********** public definitions ********** /// Enumeration of operation modes. These are in order of priority (highest to lowest). typedef enum Op_Modes { MODE_FAUL = 0, ///< Fault mode. MODE_SERV, ///< Service mode. MODE_INIT, ///< Initialization & POST mode. MODE_STAN, ///< Standby mode - connected to HD. MODE_SOLO, ///< Standby Solo mode - no HD connected. MODE_FILL, ///< Fill mode. MODE_DRAI, ///< Drain mode. MODE_FLUS, ///< Flush mode. MODE_DISI, ///< Disinfect mode. MODE_NLEG, ///< Not legal - an illegal mode transition occurred. NUM_OF_MODES } OP_MODE; // ********** public function prototypes ********** void initOperationModes( void ); // initialize this module void execOperationModes( void ); // execute the operation modes state machine (scheduled periodic call) void requestNewOperationMode( OP_MODE newMode ); // request a transition to a new operation mode OP_MODE getCurrentOperationMode( void ); // get the current operation mode /**@}*/ #endif