/* USER CODE BEGIN Header */
/**
  ******************************************************************************
  * @file    utilities_def.h
  * @author  MCD Application Team
  * @brief   Definitions for modules requiring utilities
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2021 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */
/* USER CODE END Header */

/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __UTILITIES_DEF_H__
#define __UTILITIES_DEF_H__

#ifdef __cplusplus
extern "C" {
#endif

/* Includes ------------------------------------------------------------------*/
#include <stddef.h>
/* USER CODE BEGIN Includes */
#include "yunhorn_sts_prd_conf.h"
/* USER CODE END Includes */

/* Exported types ------------------------------------------------------------*/
/******************************************************************************
  * LOW POWER MANAGER
  ******************************************************************************/
/**
  * Supported requester to the MCU Low Power Manager - can be increased up  to 32
  * It lists a bit mapping of all user of the Low Power Manager
  */
typedef enum
{
  /* USER CODE BEGIN CFG_LPM_Id_t_0 */

  /* USER CODE END CFG_LPM_Id_t_0 */
  CFG_LPM_APPLI_Id,
  CFG_LPM_UART_TX_Id,
  /* USER CODE BEGIN CFG_LPM_Id_t */

  /* USER CODE END CFG_LPM_Id_t */
} CFG_LPM_Id_t;

/*---------------------------------------------------------------------------*/
/*                             sequencer definitions                         */
/*---------------------------------------------------------------------------*/

/**
  * This is the list of priority required by the application
  * Each Id shall be in the range 0..31
  */
typedef enum
{
  CFG_SEQ_Prio_0,
  /* USER CODE BEGIN CFG_SEQ_Prio_Id_t */

  /* USER CODE END CFG_SEQ_Prio_Id_t */
  CFG_SEQ_Prio_NBR,
} CFG_SEQ_Prio_Id_t;

/**
  * This is the list of task id required by the application
  * Each Id shall be in the range 0..31
  */
typedef enum
{
  CFG_SEQ_Task_LmHandlerProcess,
  CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent,
  CFG_SEQ_Task_LoRaStoreContextEvent,
  CFG_SEQ_Task_LoRaStopJoinEvent,
  /* USER CODE BEGIN CFG_SEQ_Task_Id_t */
  CFG_SEQ_Task_YunhornSTSEventRFAC,				/* RFAC					*/

#if	defined(STS_M1)||defined(STS_O6)||defined(STS_O5)
  CFG_SEQ_Task_YunhornSTSEventP1,				/*	REEDSWITCH, IO		*/
#endif
#if	defined(STS_O6)
  CFG_SEQ_Task_YunhornSTSEventP2,				/*	MOTION				*/
#endif
#if	(defined(STS_T6)||defined(STS_O6)||defined(STS_O7))
  CFG_SEQ_Task_YunhornSTSEventP3,				/*	LAMP BAR LED		*/
#endif
#if	defined(STS_R1)||defined(STS_R1D)||defined(STS_R5)||defined(STS_R2)
  CFG_SEQ_Task_YunhornSTSEventP4,				/*	TOF RANGE			*/
#endif
#if	defined(STS_P2)||defined(STS_T6)||defined(L8)
  CFG_SEQ_Task_YunhornSTSEventP5,				/*	TOF IN-OUT			*/
#endif
#ifdef	STS_R4
  CFG_SEQ_Task_YunhornSTSEventP6,				/*	SOAP LEVEL			*/
#endif
#ifdef STS_E2
  CFG_SEQ_Task_YunhornSTSEventP7,				/*	IAQ					*/
#endif
#ifdef	STS_M7
  CFG_SEQ_Task_YunhornSTSEventP8,				/*	ETR, PULSE COUNT	*/
#endif
#ifdef MODBUS_RS485
  STS_YunhornSTSEventPIORS485_Process,			/* 	RS485 MODBUS RTU	*/
#endif

  /* USER CODE END CFG_SEQ_Task_Id_t */
  CFG_SEQ_Task_NBR
} CFG_SEQ_Task_Id_t;

/* USER CODE BEGIN ET */

/* USER CODE END ET */

/* Exported constants --------------------------------------------------------*/
/* USER CODE BEGIN EC */

/* USER CODE END EC */

/* External variables --------------------------------------------------------*/
/* USER CODE BEGIN EV */

/* USER CODE END EV */

/* Exported macro ------------------------------------------------------------*/
/* USER CODE BEGIN EM */

/* USER CODE END EM */

/* Exported functions prototypes ---------------------------------------------*/
/* USER CODE BEGIN EFP */

/* USER CODE END EFP */

#ifdef __cplusplus
}
#endif

#endif /* __UTILITIES_DEF_H__ */