#####################################################################
#  Top Level Configuration File for Sonitus DL40 family
#  contains: configurations common to all DL40 instances
#  edit cmakelists to set the config files to configure for
#  a given DL40 instance 
#  author: DG
#  Date: 18/06/2021
#  Updated 02/10/2021
#####################################################################
# Generic Tning Name "NO_NAME"
# Target device must already have a valid thing name in Flash
# set the MQTT client ID 
CONFIG_AWS_IOT_CLIENT_ID_STATIC="NO_NAME"
#####################################################################
# General config
CONFIG_NCS_SAMPLES_DEFAULTS=y
CONFIG_REBOOT=y
#####################################################################
#####################################################################
# I2C for RHT sensor
CONFIG_ASSERT=y
CONFIG_I2C=y
CONFIG_GPIO=y
#####################################################################
## SPI for the SD Card
CONFIG_SPI=y
## SD Card
CONFIG_DISK_ACCESS=y
CONFIG_DISK_ACCESS_SDHC=y
CONFIG_DISK_ACCESS_SPI_SDHC=y
CONFIG_FILE_SYSTEM_MAX_FILE_NAME=40
CONFIG_FILE_SYSTEM=y
CONFIG_FAT_FILESYSTEM_ELM=y
CONFIG_FS_FATFS_LFN=y 
CONFIG_FS_FATFS_MAX_LFN=40
CONFIG_NRFX_SPIM=y
CONFIG_SPI_NRFX_RAM_BUFFER_SIZE=64

CONFIG_DATA_SAVE_INTERVAL=300
#####################################################################
# default DL40 Data File Name
CONFIG_DEFAULT_DATA_FILE="DL40-010000_year_mth_date.txt"

#####################################################################
CONFIG_ADC=y
# battery update interval should be half way between publications
CONFIG_BATTERY_UPDATE_INTERVAL=60  
#####################################################################
# for Actinius Dev Board or Icarus SOM - needs 'board.c' file in \src
CONFIG_BOARD_SELECT_SIM_EXTERNAL=y
#####################################################################
# Non Volatile flash storage
CONFIG_FLASH=y
CONFIG_FLASH_PAGE_LAYOUT=y
CONFIG_NVS=y
CONFIG_MPU_ALLOW_FLASH_WRITE=y
#####################################################################
# NEWLIB C
CONFIG_NEWLIB_LIBC=y
CONFIG_NEWLIB_LIBC_FLOAT_PRINTF=y
#####################################################################
# Network
CONFIG_NETWORKING=y
CONFIG_NET_NATIVE=n
#####################################################################
# BSD library
CONFIG_BSD_LIBRARY=y
CONFIG_BSD_LIBRARY_SYS_INIT=n
CONFIG_BSD_LIBRARY_TRACE_ENABLED=n
#####################################################################
# AT Host
CONFIG_UART_INTERRUPT_DRIVEN=y
CONFIG_AT_HOST_LIBRARY=y
#####################################################################
## PDP Context configuration 
#####################################################################
# PDP Context
#CONFIG_LTE_PDP_CMD=y
#CONFIG_LTE_PDP_CONTEXT="1,\"IP\",\"arkessalp.com\""
#CONFIG_LTE_PDN_AUTH_CMD=y
#CONFIG_LTE_PDN_AUTH="1,1,\"arkessa\",\"arkessa\""
#CONFIG_LTE_PDN_AUTH_LEN=40
#####################################################################
#####################################################################
CONFIG_MQTT_CLEAN_SESSION=y  //sessions are not persistent
#####################################################################
# Zephyr Device Power Management
CONFIG_DEVICE_POWER_MANAGEMENT=y
CONFIG_PM=y
#####################################################################
CONFIG_NRF_MODEM_LIB=y
#####################################################################
# AWS IoT library
CONFIG_AWS_IOT=y
#####################################################################
## Thing name in <thing_name>.conf
## AWS - Note Endpoint may change depending on AWS Account used to create thing
CONFIG_AWS_IOT_BROKER_HOST_NAME="omitted"
CONFIG_AWS_IOT_SEC_TAG="omitted"
CONFIG_AWS_IOT_APP_SUBSCRIPTION_LIST_COUNT=6
CONFIG_AWS_IOT_TOPIC_UPDATE_DELTA_SUBSCRIBE=y
CONFIG_AWS_IOT_CONNECTION_POLL_THREAD=y
#CONFIG_AWS_IOT_MQTT_PAYLOAD_BUFFER_LEN=2000
CONFIG_AWS_IOT_MQTT_PAYLOAD_BUFFER_LEN=2048
CONFIG_AWS_IOT_MQTT_RX_TX_BUFFER_LEN=2048

CONFIG_AWS_IOT_LOG_LEVEL_DBG=y
CONFIG_MQTT_LOG_LEVEL_DBG=y

#####################################################################
# Date Time library
CONFIG_DATE_TIME=y
#####################################################################
# Modem information
CONFIG_MODEM_INFO=y

# Heap and stacks
CONFIG_HEAP_MEM_POOL_SIZE=24576
CONFIG_MAIN_STACK_SIZE=8192
#CONFIG_MAIN_STACK_SIZE=4096
#CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2048
CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=4096

# MCUBOOT
CONFIG_BOOTLOADER_MCUBOOT=y
CONFIG_MCUBOOT_IMG_MANAGER=y

# Image manager
CONFIG_IMG_MANAGER=y
CONFIG_FLASH=y
CONFIG_IMG_ERASE_PROGRESSIVELY=y
#######################################################################
# AWS FOTA
CONFIG_AWS_FOTA=y
CONFIG_FOTA_DOWNLOAD=y
CONFIG_DFU_TARGET=y
CONFIG_DFU_TARGET_FULL_MODEM=y
CONFIG_STREAM_FLASH=y
CONFIG_FMFU_FDEV=y
 ##added by waqar for modem firmware full update
# CJSON
CONFIG_CJSON_LIB=y
# Download client (needed by AWS FOTA)
CONFIG_DOWNLOAD_CLIENT=y
CONFIG_DOWNLOAD_CLIENT_STACK_SIZE=4096
####################################################################
## MQTT related
# set to AWS maximum
CONFIG_MQTT_KEEPALIVE=1200
####################################################################
## Application Specific
CONFIG_PUBLICATION_INTERVAL_SECONDS=300
CONFIG_APP_VERSION="DL40_RHT_V1.1.0LTM"   
#####################################################################
# reading rate in seconds for the RTC
CONFIG_RTC_READ_INTERVAL=50
#####################################################################
# Check signal strength
CONFIG_CHECK_SIGNAL_STRENGTH=y
CONFIG_SIGNAL_STRENGTH_CHECK_INTERVAL_SECONDS=60
###################################################################
CONFIG_CONNECTION_RETRY_TIMEOUT_SECONDS=60
###################################################################
# subscribe to various AWS IoT DEvice Shadow Topics
CONFIG_AWS_IOT_TOPIC_GET_ACCEPTED_SUBSCRIBE=n
CONFIG_AWS_IOT_TOPIC_GET_REJECTED_SUBSCRIBE=y
###################################################################
# LTE timeout seconds 
CONFIG_LTE_NETWORK_USE_FALLBACK=y
CONFIG_LTE_NETWORK_TIMEOUT=600
###################################################################
# LTE link control
CONFIG_LTE_LINK_CONTROL=y
CONFIG_LTE_AUTO_INIT_AND_CONNECT=n
#CONFIG_LTE_NETWORK_MODE_NBIOT_GPS=y
#CONFIG_LTE_NETWORK_MODE_LTE_M_NBIOT_GPS=y
CONFIG_LTE_NETWORK_MODE_LTE_M_GPS=y
#CONFIG_LTE_NETWORK_MODE_LTE_M=y
CONFIG_LTE_PSM_REQ_RPTAU="00011111"
CONFIG_LTE_POWER_SAVING_MODE=y
CONFIG_LTE_EDRX_REQ=y #by waqar

CONFIG_NETWORK_MODE_SWITCH_TIME=3600 
## switch from esim(LTE-M ) to External sim(NBIOT) after this time of disconnectivity

####################################################################
# Lock to Band 20 for UK and Ireland and France
# Germany: Band 8 for LTE-M and Band 20 for NBIOT
CONFIG_LTE_LOCK_BANDS=y
CONFIG_LTE_LOCK_BAND_MASK="10000000000000000000"
## define this config to allow automatic selection of the network
CONFIG_LTE_UNLOCK_PLMN=y
###################################################################
## AGPS related
CONFIG_AGPS=y
CONFIG_AGPS_SRC_SUPL=y
CONFIG_AGPS_LOG_LEVEL_DBG=y
## GPS related
CONFIG_NRF9160_GPS=y
CONFIG_NRF9160_GPS_LOG_LEVEL_DBG=y
CONFIG_NRF9160_GPS_SET_MAGPIO=y
CONFIG_NRF9160_GPS_MAGPIO_STRING="AT%XMAGPIO=1,0,0,1,1,1574,1577"
#CONFIG_NRF9160_GPS_MAGPIO_STRING="AT%XMAGPIO=1,0,0,1,1,1565,1586"
CONFIG_NRF9160_GPS_SET_COEX0=y
CONFIG_NRF9160_GPS_COEX0_STRING="AT%XCOEX0=1,1,1574,1577"
#CONFIG_NRF9160_GPS_COEX0_STRING="AT%XCOEX0=1,1,1565,1586"
CONFIG_NRF9160_GPS_THREAD_STACK_SIZE=4608
###################################################################

# ##### PLMN - can be hard coded or the automatically select network
# define this CONFIG to manually select the network - Public Land Mobile Network

# lock to a PLMN
# CONFIG_LTE_LOCK_PLMN=y
## Vodafone PLMN Ireland
# CONFIG_LTE_LOCK_PLMN_STRING="27201"
# Vodafone PLMN UK
# CONFIG_LTE_LOCK_PLMN_STRING="23415"
#CONFIG_NRF_MODEM_LIB_TRACE_ENABLED=y
###################################################################
##Client downlaod
CONFIG_DOWNLOAD_CLIENT_HTTP_FRAG_SIZE_1024=y
CONFIG_DOWNLOAD_CLIENT_TCP_SOCK_TIMEO_MS=60000
CONFIG_FOTA_SOCKET_RETRIES=4
###################################################################
CONFIG_WATCHDOG=y
CONFIG_WDT_LOG_LEVEL_DBG=y
#CONFIG_TASK_WDT=y
#CONFIG_TASK_WDT_MIN_TIMEOUT=420000
###################################################################


