/*
* FreeRTOS-Cellular-Interface v1.3.0
* Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* SPDX-License-Identifier: MIT
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* https://www.FreeRTOS.org
* https://github.com/FreeRTOS
*/
/**
* @file cellular_config_defaults.h
* @brief This represents the default values for the configuration macros
* for the Cellular library.
*
* @note This file SHOULD NOT be modified. If custom values are needed for
* any configuration macro, a cellular_config.h file should be provided to
* the Cellular library to override the default values defined in this file.
* To use the custom config file, the CELLULAR_DO_NOT_USE_CUSTOM_CONFIG preprocessor
* macro SHOULD NOT be set.
*/
#ifndef __CELLULAR_CONFIG_DEFAULTS_H__
#define __CELLULAR_CONFIG_DEFAULTS_H__
/* *INDENT-OFF* */
#ifdef __cplusplus
extern "C" {
#endif
/* *INDENT-ON* */
/* The macro definition for CELLULAR_DO_NOT_USE_CUSTOM_CONFIG is for Doxygen
* documentation only. */
/**
* @brief Define this macro to build the Cellular library without the custom config
* file cellular_config.h.
*
* Without the custom config, the Cellular library builds with
* default values of config macros defined in cellular_config_defaults.h file.
*
* If a custom config is provided, then CELLULAR_DO_NOT_USE_CUSTOM_CONFIG should not
* be defined.
*/
#ifdef DOXYGEN
#define CELLULAR_DO_NOT_USE_CUSTOM_CONFIG
#endif
/**
* @brief Mobile country code max size.
*
* Possible values:`Any positive integer`
* Default value (if undefined): 3
*/
#ifndef CELLULAR_MCC_MAX_SIZE
#define CELLULAR_MCC_MAX_SIZE ( 3U )
#endif
/**
* @brief Mobile network code max size.
*
* Possible values:`Any positive integer`
* Default value (if undefined): 3
*/
#ifndef CELLULAR_MNC_MAX_SIZE
#define CELLULAR_MNC_MAX_SIZE ( 3U )
#endif
/**
* @brief Integrate circuit card identity max size.
*
* Possible values:`Any positive integer`
* Default value (if undefined): 20
*/
#ifndef CELLULAR_ICCID_MAX_SIZE
#define CELLULAR_ICCID_MAX_SIZE ( 20U )
#endif
/**
* @brief International Mobile Subscriber Identity max size.
*
* Possible values:`Any positive integer`
* Default value (if undefined): 15
*/
#ifndef CELLULAR_IMSI_MAX_SIZE
#define CELLULAR_IMSI_MAX_SIZE ( 15U )
#endif
/**
* @brief Cellular module firmware version max size.
*
* Possible values:`Any positive integer`
* Default value (if undefined): 32
*/
#ifndef CELLULAR_FW_VERSION_MAX_SIZE
#define CELLULAR_FW_VERSION_MAX_SIZE ( 32U )
#endif
/**
* @brief Cellular module hardware version max size.
*
* Possible values:`Any positive integer`
* Default value (if undefined): 12
*/
#ifndef CELLULAR_HW_VERSION_MAX_SIZE
#define CELLULAR_HW_VERSION_MAX_SIZE ( 12U )
#endif
/**
* @brief Cellular module serial number max size.
*
* Possible values:`Any positive integer`
* Default value (if undefined): 12
*/
#ifndef CELLULAR_SERIAL_NUM_MAX_SIZE
#define CELLULAR_SERIAL_NUM_MAX_SIZE ( 12U )
#endif
/**
* @brief International Mobile Equipment Identity number max size.
*
* Possible values:`Any positive integer`
* Default value (if undefined): 15
*/
#ifndef CELLULAR_IMEI_MAX_SIZE
#define CELLULAR_IMEI_MAX_SIZE ( 15U )
#endif
/**
* @brief Registered network operator name max size.
*
* Possible values:`Any positive integer`
* Default value (if undefined): 32
*/
#ifndef CELLULAR_NETWORK_NAME_MAX_SIZE
#define CELLULAR_NETWORK_NAME_MAX_SIZE ( 32U )
#endif
/**
* @brief Access point name max size.
*
* Possible values:`Any positive integer`
* Default value (if undefined): 32
*/
#ifndef CELLULAR_APN_MAX_SIZE
#define CELLULAR_APN_MAX_SIZE ( 64U )
#endif
/**
* @brief Packet data network username max size.
*
* Possible values:`Any positive integer`
* Default value (if undefined): 32
*/
#ifndef CELLULAR_PDN_USERNAME_MAX_SIZE
#define CELLULAR_PDN_USERNAME_MAX_SIZE ( 32U )
#endif
/**
* @brief Packet data network password max size.
*
* Possible values:`Any positive integer`
* Default value (if undefined): 32
*/
#ifndef CELLULAR_PDN_PASSWORD_MAX_SIZE
#define CELLULAR_PDN_PASSWORD_MAX_SIZE ( 32u )
#endif
/**
* @brief Cellular data network IP address max size.
*
* Possible values:`Any positive integer`
* Default value (if undefined): 40
*/
#ifndef CELLULAR_IP_ADDRESS_MAX_SIZE
#define CELLULAR_IP_ADDRESS_MAX_SIZE ( 40U )
#endif
/**
* @brief Cellular AT command max size.
*
* Possible values:`Any positive integer`
* Default value (if undefined): 200
*/
#ifndef CELLULAR_AT_CMD_MAX_SIZE
#define CELLULAR_AT_CMD_MAX_SIZE ( 200U )
#endif
/**
* @brief Cellular module number of socket max size.
*
* Possible values:`Any positive integer`
* Default value (if undefined): 12
*/
#ifndef CELLULAR_NUM_SOCKET_MAX
#define CELLULAR_NUM_SOCKET_MAX ( 12U )
#endif
/**
* @brief Cellular module manufacture ID max size.
*
* Possible values:`Any positive integer`
* Default value (if undefined): 20
*/
#ifndef CELLULAR_MANUFACTURE_ID_MAX_SIZE
#define CELLULAR_MANUFACTURE_ID_MAX_SIZE ( 20U )
#endif
/**
* @brief Cellular module ID max size.
*
* Possible values:`Any positive integer`
* Default value (if undefined): 10
*/
#ifndef CELLULAR_MODEL_ID_MAX_SIZE
#define CELLULAR_MODEL_ID_MAX_SIZE ( 10U )
#endif
/**
* @brief Cellular EDRX list max size.
*
* Possible values:`Any positive integer`
* Default value (if undefined): 4
*/
#ifndef CELLULAR_EDRX_LIST_MAX_SIZE
#define CELLULAR_EDRX_LIST_MAX_SIZE ( 4U )
#endif
/**
* @brief Cellular PDN context ID min value.
*
* Possible values:`Any positive integer`
* Default value (if undefined): 1
*/
#ifndef CELLULAR_PDN_CONTEXT_ID_MIN
#define CELLULAR_PDN_CONTEXT_ID_MIN ( 1U )
#endif
/**
* @brief Cellular PDN context ID max value.
*
* Possible values:`Any positive integer`
* Default value (if undefined): 1
*/
#ifndef CELLULAR_PDN_CONTEXT_ID_MAX
#define CELLULAR_PDN_CONTEXT_ID_MAX ( 16U )
#endif
/**
* @brief Cellular RAT ( radio access technology ) priority count.
*
* Possible values:`Any positive integer`
* Default value (if undefined): 1
*/
#ifndef CELLULAR_MAX_RAT_PRIORITY_COUNT
#define CELLULAR_MAX_RAT_PRIORITY_COUNT ( 3U )
#endif
/**
* @brief Cellular socket max send data length.
*
* Possible values:`Any positive integer`
* Default value (if undefined): 1460
*/
#ifndef CELLULAR_MAX_SEND_DATA_LEN
#define CELLULAR_MAX_SEND_DATA_LEN ( 1460U )
#endif
/**
* @brief Cellular socket max receive data length.
*
* Possible values:`Any positive integer`
* Default value (if undefined): 1500
*/
#ifndef CELLULAR_MAX_RECV_DATA_LEN
#define CELLULAR_MAX_RECV_DATA_LEN ( 1500U )
#endif
/**
* @brief Cellular module support getHostByName.
*
* Possible values:`0 or 1`
* Default value (if undefined): 1
*/
#ifndef CELLULAR_SUPPORT_GETHOSTBYNAME
#define CELLULAR_SUPPORT_GETHOSTBYNAME ( 1U )
#endif
/**
* @brief Cellular comm interface send timeout in MS.
*
* Possible values:`Any positive integer`
* Default value (if undefined): 1000
*/
#ifndef CELLULAR_COMM_IF_SEND_TIMEOUT_MS
#define CELLULAR_COMM_IF_SEND_TIMEOUT_MS ( 1000U )
#endif
/**
* @brief Cellular comm interface receive timeout in MS.
*
* Possible values:`Any positive integer`
* Default value (if undefined): 1000
*/
#ifndef CELLULAR_COMM_IF_RECV_TIMEOUT_MS
#define CELLULAR_COMM_IF_RECV_TIMEOUT_MS ( 1000U )
#endif
/**
* @brief FreeRTOS Cellular Library use static context.
*
* Possible values:`0 or 1`
* Default value (if undefined): 0
*/
#ifndef CELLULAR_CONFIG_STATIC_ALLOCATION_CONTEXT
#define CELLULAR_CONFIG_STATIC_ALLOCATION_CONTEXT ( 0U )
#endif
/**
* @brief Cellular comm interface use static context.
*
* Possible values:`0 or 1`
* Default value (if undefined): 0
*/
#ifndef CELLULAR_CONFIG_STATIC_COMM_CONTEXT_ALLOCATION
#define CELLULAR_CONFIG_STATIC_COMM_CONTEXT_ALLOCATION ( 0U )
#endif
/**
* @brief Default radio access technoloyg.
*
* Possible values:`Any value before CELLULAR_RAT_MAX` ( Reference : @ref CellularRat_t )
* Default value (if undefined): CELLULAR_RAT_CATM1
*/
#ifndef CELLULAR_CONFIG_DEFAULT_RAT
#define CELLULAR_CONFIG_DEFAULT_RAT ( 8 ) /* Set default RAT to CELLULAR_RAT_CATM1 @ref CellularRat_t. */
#endif
/**
* @brief Cellular comm interface use static socket context.
*
* Possible values:`0 or 1`
* Default value (if undefined): 0
*/
#ifndef CELLULAR_CONFIG_STATIC_SOCKET_CONTEXT_ALLOCATION
#define CELLULAR_CONFIG_STATIC_SOCKET_CONTEXT_ALLOCATION ( 0 )
#endif
/**
* @brief Cellular common AT command timeout.
*
* The timeout value for Cellular_Common prefix APIs. The timeout value should be
* set according to spec. It should be long enough for AT command used in cellular
* common APIs.
*
* Possible values:`Any positive integer`
* Default value (if undefined): 5000
*/
#ifndef CELLULAR_COMMON_AT_COMMAND_TIMEOUT_MS
#define CELLULAR_COMMON_AT_COMMAND_TIMEOUT_MS ( 5000U )
#endif
/**
* @brief Cellular AT command raw timeout.
*
* The timeout value for Cellular_ATCommandRaw API.
*
* Possible values:`Any positive integer`
* Default value (if undefined): 5000
*/
#ifndef CELLULAR_AT_COMMAND_RAW_TIMEOUT_MS
#define CELLULAR_AT_COMMAND_RAW_TIMEOUT_MS ( 5000U )
#endif
/**
* @brief Cellular AT command response prefix string length.
*
* The maximum length of AT command response prefix string.
*
* Possible values:`Any positive integer`
* Default value (if undefined): 32
*/
#ifndef CELLULAR_CONFIG_MAX_PREFIX_STRING_LENGTH
#define CELLULAR_CONFIG_MAX_PREFIX_STRING_LENGTH ( 32U )
#endif
/**
* @brief Macro to check prefix leading char.
*
* Cellular interface requires prefix string starts with "+". Some cellular modem
* uses different leading char. This macro can be defined in cellular_config.h to
* support different leading char.
*
* Default value (if undefined): '+'
*
* For example:
* > ^SMSO:(list of supporteds)
* The prefix string contains "^" which is not default leading char for prefix
* string. User can define this config to support this prefix string.
*/
#ifndef CELLULAR_CHECK_IS_PREFIX_LEADING_CHAR
#define CELLULAR_CHECK_IS_PREFIX_LEADING_CHAR( x ) ( ( x ) == '+' )
#endif
/**
* @brief Macro to check prefix chars.
*
* The macro to check prefix string contains valid char. Modem with different prefix
* strings can be supported with this config.
*
* Default value (if undefined): alphabet, digit, '+' and '_'
*
* For example:
* > +APP PDP: 0,ACTIVE
* The prefix string contains space which is not default valid char. User can define
* this config to support this prefix string.
*/
#ifndef CELLULAR_CHECK_IS_PREFIX_CHAR
#define CELLULAR_CHECK_IS_PREFIX_CHAR( inputChar ) \
( ( ( ( int32_t ) isalpha( ( ( int8_t ) ( inputChar ) ) ) ) == 0 ) && \
( ( ( int32_t ) isdigit( ( ( int8_t ) ( inputChar ) ) ) ) == 0 ) && \
( ( inputChar ) != '_' ) && \
( !( CELLULAR_CHECK_IS_PREFIX_LEADING_CHAR( inputChar ) ) ) )
#endif
/**
* @brief Cellular AT string length.
*
* The maximum length of an AT string.
*
* Possible values:`Any positive integer`
* Default value (if undefined): 256
*/
#ifndef CELLULAR_AT_MAX_STRING_SIZE
#define CELLULAR_AT_MAX_STRING_SIZE ( 256U )
#endif
/**
* @brief Macro that is called in the cellular library for logging "Error" level
* messages.
*
* To enable error level logging in the cellular library, this macro should be mapped to the
* application-specific logging implementation that supports error logging.
*
* @note This logging macro is called in the cellular library with parameters wrapped in
* double parentheses to be ISO C89/C90 standard compliant. For a reference
* POSIX implementation of the logging macros, refer to cellular_config.h files.
*
* Default value: Error logging is turned off, and no code is generated for calls
* to the macro in the cellular library on compilation.
*/
#ifndef LogError
#define LogError( message )
#endif
/**
* @brief Macro that is called in the cellular library for logging "Warning" level
* messages.
*
* To enable warning level logging in the cellular library, this macro should be mapped to the
* application-specific logging implementation that supports warning logging.
*
* @note This logging macro is called in the cellular library with parameters wrapped in
* double parentheses to be ISO C89/C90 standard compliant. For a reference
* POSIX implementation of the logging macros, refer to cellular_config.h files.
*
* Default value: Warning logs are turned off, and no code is generated for calls
* to the macro in the cellular library on compilation.
*/
#ifndef LogWarn
#define LogWarn( message )
#endif
/**
* @brief Macro that is called in the cellular library for logging "Info" level
* messages.
*
* To enable info level logging in the cellular library, this macro should be mapped to the
* application-specific logging implementation that supports info logging.
*
* @note This logging macro is called in the cellular library with parameters wrapped in
* double parentheses to be ISO C89/C90 standard compliant. For a reference
* POSIX implementation of the logging macros, refer to cellular_config.h files.
*
* Default value: Info logging is turned off, and no code is generated for calls
* to the macro in the cellular library on compilation.
*/
#ifndef LogInfo
#define LogInfo( message )
#endif
/**
* @brief Macro that is called in the cellular library for logging "Debug" level
* messages.
*
* To enable debug level logging from cellular library, this macro should be mapped to the
* application-specific logging implementation that supports debug logging.
*
* @note This logging macro is called in the cellular library with parameters wrapped in
* double parentheses to be ISO C89/C90 standard compliant. For a reference
* POSIX implementation of the logging macros, refer to cellular_config.h files.
*
* Default value: Debug logging is turned off, and no code is generated for calls
* to the macro in the cellular library on compilation.
*/
#ifndef LogDebug
#define LogDebug( message )
#endif
/* *INDENT-OFF* */
#ifdef __cplusplus
}
#endif
/* *INDENT-ON* */
#endif /* __CELLULAR_CONFIG_DEFAULTS_H__ */