203 lines
7.4 KiB
C
203 lines
7.4 KiB
C
/* USER CODE BEGIN Header */
|
|
/**
|
|
******************************************************************************
|
|
* @file lorawan_conf.h
|
|
* @author MCD Application Team
|
|
* @brief Header for LoRaWAN middleware instances
|
|
******************************************************************************
|
|
* @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 __LORAWAN_CONF_H__
|
|
#define __LORAWAN_CONF_H__
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
/* Includes ------------------------------------------------------------------*/
|
|
/* USER CODE BEGIN Includes */
|
|
|
|
/* USER CODE END Includes */
|
|
|
|
/* Exported types ------------------------------------------------------------*/
|
|
/* USER CODE BEGIN ET */
|
|
|
|
/* USER CODE END ET */
|
|
|
|
/* Exported constants --------------------------------------------------------*/
|
|
#if defined(__ICCARM__)
|
|
#define SOFT_SE_PLACE_IN_NVM_START _Pragma(" default_variable_attributes = @ \".USER_embedded_Keys\"")
|
|
#elif defined(__CC_ARM)
|
|
#define SOFT_SE_PLACE_IN_NVM_START _Pragma(" arm section rodata = \".USER_embedded_Keys\"")
|
|
#elif defined(__GNUC__)
|
|
#define SOFT_SE_PLACE_IN_NVM_START __attribute__((section(".USER_embedded_Keys")))
|
|
#endif /* __ICCARM__ | __CC_ARM | __GNUC__ */
|
|
|
|
/* Stop placing data in specified section*/
|
|
#if defined(__ICCARM__)
|
|
#define SOFT_SE_PLACE_IN_NVM_STOP _Pragma("default_variable_attributes =")
|
|
#elif defined(__CC_ARM)
|
|
#define SOFT_SE_PLACE_IN_NVM_STOP _Pragma("arm section code")
|
|
#endif /* __ICCARM__ | __CC_ARM | __GNUC__ */
|
|
|
|
/*!
|
|
* @brief LoRaWAN version definition
|
|
* @note possible values:
|
|
* - 0x01000300: Link Layer(L2) v1.0.3 + Regional Parameters(RP) v1.0.3
|
|
* - 0x01000400: Link Layer TS001-1.0.4 + Regional Parameters RP002-1.0.1
|
|
* - 0x01010100: soon available ...
|
|
*/
|
|
#define LORAMAC_SPECIFICATION_VERSION 0x01000400
|
|
|
|
/*!
|
|
* @brief Enable the additional LoRaWAN packages
|
|
* @note LoRaWAN Packages available when enabled:
|
|
* - Application Layer Clock Synchronization (Package ID: 1, Default Port: 202)
|
|
* - Remote Multicast Setup (Package ID: 2, Default Port: 200)
|
|
* - Fragmented Data Block Transport (Package ID: 3, Default Port: 201)
|
|
* - Firmware Management Protocol (Package ID: 4, Default Port: 203)
|
|
* The Certification Protocol is also defined as a mandatory package (Package ID: 0, Default Port: 224)
|
|
*/
|
|
#define LORAWAN_DATA_DISTRIB_MGT 1
|
|
|
|
/*!
|
|
* @brief LoRaWAN packages version
|
|
* @note When LORAWAN_DATA_DISTRIB_MGT is enabled, 2 possibles values:
|
|
* - 1: v1.0.0 packages including:
|
|
* - Application Layer Clock Synchronization v1.0.0
|
|
* - Remote Multicast Setup v1.0.0
|
|
* - Fragmented Data Block Transport v1.0.0
|
|
* - 2: v2.0.0 packages including:
|
|
* - Application Layer Clock Synchronization v2.0.0
|
|
* - Remote Multicast Setup v2.0.0
|
|
* - Fragmented Data Block Transport v2.0.0
|
|
* - Firmware Management Protocol v1.0.0
|
|
*/
|
|
#define LORAWAN_PACKAGES_VERSION 1
|
|
|
|
/* Region ------------------------------------*/
|
|
/* the region listed here will be linked in the MW code */
|
|
/* the application (on sys_conf.h) shall just configure one region at the time */
|
|
#define REGION_AS923
|
|
/*#define REGION_AU915*/
|
|
/*#define REGION_CN470*/
|
|
/*#define REGION_CN779*/
|
|
/*#define REGION_EU433*/
|
|
/*#define REGION_EU868*/
|
|
/*#define REGION_KR920*/
|
|
/*#define REGION_IN865*/
|
|
/*#define REGION_US915*/
|
|
/*#define REGION_RU864*/
|
|
|
|
/*!
|
|
* @brief Default channel plan for region AS923
|
|
* @note Possible selections:
|
|
* - CHANNEL_PLAN_GROUP_AS923_1 (Default configuration. Freq offset = 0.0 MHz / Freq range = 915-928MHz)
|
|
* - CHANNEL_PLAN_GROUP_AS923_2 (Freq offset = -1.80 MHz / Freq range = 915-928MHz)
|
|
* - CHANNEL_PLAN_GROUP_AS923_3 (Freq offset = -6.60 MHz / Freq range = 915-928MHz)
|
|
* - CHANNEL_PLAN_GROUP_AS923_4 (Freq offset = -5.90 MHz / Freq range = 917-920MHz)
|
|
* - CHANNEL_PLAN_GROUP_AS923_1_JP (Freq offset = 0.0 MHz / Freq range = 920.6-923.4MHz)
|
|
*/
|
|
#define REGION_AS923_DEFAULT_CHANNEL_PLAN CHANNEL_PLAN_GROUP_AS923_1
|
|
|
|
/*!
|
|
* @brief Limits the number usable channels by default for AU915, CN470 and US915 regions
|
|
* @note the default channel mask with this option activates the first 8 channels. \
|
|
* this default mask can be modified in the RegionXXXXXInitDefaults function associated with the active region.
|
|
*/
|
|
#define HYBRID_ENABLED 0
|
|
|
|
/*!
|
|
* @brief Define the read access of the keys in memory
|
|
* @note this value should be disabled after the development process
|
|
*/
|
|
#define KEY_EXTRACTABLE 1
|
|
|
|
/*!
|
|
* @brief Enables/Disables the context storage management storage
|
|
* @note Must be enabled for LoRaWAN 1.0.4 or later.
|
|
*/
|
|
#define CONTEXT_MANAGEMENT_ENABLED 1
|
|
|
|
/* Class B ------------------------------------*/
|
|
/*!
|
|
* @brief Enables/Disables the LoRaWAN Class B (Periodic ping downlink slots + Beacon for synchronization)
|
|
*/
|
|
#define LORAMAC_CLASSB_ENABLED 0
|
|
|
|
#if ( LORAMAC_CLASSB_ENABLED == 1 )
|
|
/* CLASS B LSE crystal calibration*/
|
|
/*!
|
|
* @brief Temperature coefficient of the clock source
|
|
*/
|
|
#define RTC_TEMP_COEFFICIENT ( -0.035 )
|
|
|
|
/*!
|
|
* @brief Temperature coefficient deviation of the clock source
|
|
*/
|
|
#define RTC_TEMP_DEV_COEFFICIENT ( 0.0035 )
|
|
|
|
/*!
|
|
* @brief Turnover temperature of the clock source
|
|
*/
|
|
#define RTC_TEMP_TURNOVER ( 25.0 )
|
|
|
|
/*!
|
|
* @brief Turnover temperature deviation of the clock source
|
|
*/
|
|
#define RTC_TEMP_DEV_TURNOVER ( 5.0 )
|
|
#endif /* LORAMAC_CLASSB_ENABLED == 1 */
|
|
|
|
/*!
|
|
* @brief Disable the ClassA receive windows after Tx (after the Join Accept if OTAA mode defined)
|
|
* @note Behavior to reduce power consumption but not compliant with LoRa Alliance recommendations.
|
|
* All device parameters (Spreading Factor, channels selection, Tx Power, ...) should be fixed
|
|
* and the adaptive datarate should be disabled.
|
|
* @warning This limitation may have consequences for the proper functioning of the device,
|
|
* if the LoRaMac ever generates MAC commands that require a response.
|
|
*/
|
|
#define DISABLE_LORAWAN_RX_WINDOW 0
|
|
|
|
/* USER CODE BEGIN EC */
|
|
|
|
/* USER CODE END EC */
|
|
|
|
/* External variables --------------------------------------------------------*/
|
|
/* USER CODE BEGIN EV */
|
|
|
|
/* USER CODE END EV */
|
|
|
|
/* Exported macro ------------------------------------------------------------*/
|
|
#ifndef CRITICAL_SECTION_BEGIN
|
|
#define CRITICAL_SECTION_BEGIN( ) UTILS_ENTER_CRITICAL_SECTION( )
|
|
#endif /* !CRITICAL_SECTION_BEGIN */
|
|
#ifndef CRITICAL_SECTION_END
|
|
#define CRITICAL_SECTION_END( ) UTILS_EXIT_CRITICAL_SECTION( )
|
|
#endif /* !CRITICAL_SECTION_END */
|
|
|
|
/* USER CODE BEGIN EM */
|
|
|
|
/* USER CODE END EM */
|
|
|
|
/* Exported functions prototypes ---------------------------------------------*/
|
|
/* USER CODE BEGIN EFP */
|
|
|
|
/* USER CODE END EFP */
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* __LORAWAN_CONF_H__ */
|