/*
 *
 *    Copyright (c) 2020 Project CHIP Authors
 *    Copyright (c) 2020 Texas Instruments Incorporated
 *    All rights reserved.
 *
 *    Licensed under the Apache License, Version 2.0 (the "License");
 *    you may not use this file except in compliance with the License.
 *    You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *
 *    Unless required by applicable law or agreed to in writing, software
 *    distributed under the License is distributed on an "AS IS" BASIS,
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *    See the License for the specific language governing permissions and
 *    limitations under the License.
 */

/**
 * These arguments were used when this file was generated. They will be automatically applied on subsequent loads
 * via the GUI or CLI. Run CLI with '--help' for additional information on how to override these arguments.
 * @cliArgs --board "/ti/boards/CC26X2R1_LAUNCHXL" --product "simplelink_cc13x2_26x2_sdk@4.40.05.02_eng"
 * @versions {"tool":"1.9.0+2015","templates":null}
 */

/**
 * Import the modules used in this configuration.
 */
const ble         = scripting.addModule("/ti/ble5stack/ble");
const CCFG        = scripting.addModule("/ti/devices/CCFG");
const rfdesign    = scripting.addModule("/ti/devices/radioconfig/rfdesign");
const dmm         = scripting.addModule("/ti/dmm/dmm");
const AESCCM      = scripting.addModule("/ti/drivers/AESCCM");
const AESCCM1     = AESCCM.addInstance();
const AESCCM2     = AESCCM.addInstance();
const AESCTRDRBG  = scripting.addModule("/ti/drivers/AESCTRDRBG");
const AESCTRDRBG1 = AESCTRDRBG.addInstance();
const AESECB      = scripting.addModule("/ti/drivers/AESECB");
const AESECB1     = AESECB.addInstance();
const AESECB2     = AESECB.addInstance();
const ECDH        = scripting.addModule("/ti/drivers/ECDH");
const ECDH1       = ECDH.addInstance();
const ECDH2       = ECDH.addInstance();
const NVS         = scripting.addModule("/ti/drivers/NVS");
const NVS1        = NVS.addInstance();
const NVS2        = NVS.addInstance();
const RF          = scripting.addModule("/ti/drivers/RF");
const RTOS        = scripting.addModule("/ti/drivers/RTOS");
const SHA2        = scripting.addModule("/ti/drivers/SHA2");
const SHA21       = SHA2.addInstance();
const TRNG        = scripting.addModule("/ti/drivers/TRNG");
const TRNG1       = TRNG.addInstance();
const TRNG2       = TRNG.addInstance();
const TRNG3       = TRNG.addInstance();
const UART        = scripting.addModule("/ti/drivers/UART");
const UART1       = UART.addInstance();
const UART2       = UART.addInstance();
const Button      = scripting.addModule("/ti/drivers/apps/Button");
const Button1     = Button.addInstance();
const Button2     = Button.addInstance();
const LED         = scripting.addModule("/ti/drivers/apps/LED");
const LED1        = LED.addInstance();
const LED2        = LED.addInstance();
const thread      = scripting.addModule("/ti/thread/thread");

/**
 * Write custom configuration values to the imported modules.
 */
ble.maxConnNum                               = 1;
ble.numOfAdvSets                             = 1;
ble.lockProject                              = true;
ble.maxPDUSize                               = 255;
ble.radioConfig.codeExportConfig.$name       = "ti_devices_radioconfig_code_export_param1";
ble.connUpdateParamsPeripheral.$name         = "ti_ble5stack_general_ble_conn_update_params0";
ble.connUpdateParamsPeripheral.reqMinConnInt = 30;
ble.connUpdateParamsPeripheral.reqMaxConnInt = 50;
ble.advSet1.$name                            = "ti_ble5stack_broadcaster_advertisement_set0";
ble.advSet1.advParam1.$name                  = "ti_ble5stack_broadcaster_advertisement_params0";
ble.advSet1.advParam1.primIntMax             = 200;
ble.advSet1.advData1.$name                   = "ti_ble5stack_broadcaster_advertisement_data0";
ble.advSet1.scanRes1.$name                   = "ti_ble5stack_broadcaster_advertisement_data1";

CCFG.enableBootloader         = true;
CCFG.enableBootloaderBackdoor = true;
CCFG.dioBootloaderBackdoor    = 13;
CCFG.levelBootloaderBackdoor  = "Active low";
CCFG.srcClkLF                 = "Derived from HF XOSC";
CCFG.ccfgTemplate.$name       = "ti_devices_CCFGTemplate0";

dmm.project                                        = "ti_thread_thermostat_remote_display";
dmm.stackRoles                                     = ["blePeripheral","threadFTD"];
dmm.lockStackRoles                                 = true;
dmm.numApplicationStates                           = 10;
dmm.applicationState0                              = "ANY";
dmm.applicationState1                              = "DMMPOLICY_BLE_IDLE";
dmm.applicationState2                              = "DMMPOLICY_BLE_ADV";
dmm.applicationState3                              = "DMMPOLICY_BLE_CONNECTING";
dmm.applicationState4                              = "DMMPOLICY_BLE_HIGH_BANDWIDTH";
dmm.applicationState5                              = "DMMPOLICY_BLE_CONNECTED";
dmm.applicationState6                              = "DMMPOLICY_BLE_OAD";
dmm.applicationState7                              = "DMMPOLICY_THREAD_IDLE";
dmm.applicationState8                              = "DMMPOLICY_THREAD_LINK_EST";
dmm.applicationState9                              = "DMMPOLICY_THREAD_DATA";
dmm.policyArray.create(4);
dmm.policyArray[0].$name                           = "ti_dmm_policy_dmm_policy0";
dmm.policyArray[0].blePeripheral.$name             = "ti_dmm_policy_stack_dmm_stack_ble0";
dmm.policyArray[0].blePeripheral.applicationStates = ["applicationState6"];
dmm.policyArray[0].threadFTD.$name                 = "ti_dmm_policy_stack_dmm_stack_thread0";
dmm.policyArray[0].threadFTD.pause                 = "DMMPOLICY_PAUSED";
dmm.policyArray[1].$name                           = "ti_dmm_policy_dmm_policy1";
dmm.policyArray[1].blePeripheral.$name             = "ti_dmm_policy_stack_dmm_stack_ble1";
dmm.policyArray[1].blePeripheral.applicationStates = ["applicationState3","applicationState4"];
dmm.policyArray[1].blePeripheral.weight            = 25;
dmm.policyArray[1].blePeripheral.appliedActivity   = ["DMMPOLICY_APPLIED_ACTIVITY_BLE_CONNECTION"];
dmm.policyArray[1].threadFTD.$name                 = "ti_dmm_policy_stack_dmm_stack_thread1";
dmm.policyArray[2].$name                           = "ti_dmm_policy_dmm_policy2";
dmm.policyArray[2].blePeripheral.$name             = "ti_dmm_policy_stack_dmm_stack_ble2";
dmm.policyArray[2].threadFTD.$name                 = "ti_dmm_policy_stack_dmm_stack_thread2";
dmm.policyArray[2].threadFTD.weight                = 30;
dmm.policyArray[2].threadFTD.applicationStates     = ["applicationState8"];
dmm.policyArray[2].threadFTD.appliedActivity       = ["DMMPOLICY_APPLIED_ACTIVITY_ALL"];
dmm.policyArray[3].$name                           = "ti_dmm_policy_dmm_policy3";
dmm.policyArray[3].blePeripheral.$name             = "ti_dmm_policy_stack_dmm_stack_ble3";
dmm.policyArray[3].threadFTD.$name                 = "ti_dmm_policy_stack_dmm_stack_thread3";
dmm.policyArray[3].threadFTD.weight                = 1;

AESCCM1.$name = "CONFIG_AESCCM0";

AESCCM2.$name = "CONFIG_AESCCM_1";

AESCTRDRBG1.$name              = "CONFIG_AESCTRDRBG_0";
AESCTRDRBG1.aesctrObject.$name = "CONFIG_AESCTR_0";

AESECB1.$name = "CONFIG_AESECB0";

AESECB2.$name = "CONFIG_AESECB_1";

ECDH1.$name = "CONFIG_ECDH0";

ECDH2.$name = "CONFIG_ECDH_1";

NVS1.$name                    = "CONFIG_NVSINTERNAL";
NVS1.internalFlash.$name      = "ti_drivers_nvs_NVSCC26XX0";
NVS1.internalFlash.regionBase = 0xAA000;
NVS1.internalFlash.regionSize = 0x4000;

NVS2.$name                                 = "CONFIG_NVSEXTERNAL";
NVS2.nvsType                               = "External"; // NVS Region Type
NVS2.$hardware                             = system.deviceData.board.components.MX25R8035F;

RTOS.name = "FreeRTOS";

SHA21.$name = "CONFIG_SHA2_0";

TRNG1.$name = "CONFIG_TRNG_0";

TRNG2.$name = "CONFIG_TRNG_1";

TRNG3.$name = "CONFIG_TRNG_APP";

UART1.$name               = "CONFIG_UART_DEBUG";
UART1.uart.$assign        = "UART1";
UART1.uart.txPin.$assign  = "boosterpack.4";
UART1.uart.rxPin.$assign  = "boosterpack.3";
UART1.txPinInstance.$name = "CONFIG_PIN_4";
UART1.rxPinInstance.$name = "CONFIG_PIN_5";

UART2.$name               = "CONFIG_DISPLAY_UART";
UART2.txPinInstance.$name = "CONFIG_PIN_6";
UART2.rxPinInstance.$name = "CONFIG_PIN_7";

/* Left Button */
Button1.$name                       = "CONFIG_BTN_LEFT";
Button1.$hardware                   = system.deviceData.board.components["BTN-1"];
Button1.gpioPin.$name               = "CONFIG_GPIO_BTN1";
Button1.gpioPin.pull                = "Pull Up";
Button1.gpioPin.interruptTrigger    = "Falling Edge";

/* Left Button */
Button2.$name                       = "CONFIG_BTN_RIGHT";
Button2.$hardware                   = system.deviceData.board.components["BTN-2"];
Button2.gpioPin.$name               = "CONFIG_GPIO_BTN2";
Button2.gpioPin.pull                = "Pull Up";
Button2.gpioPin.interruptTrigger    = "Falling Edge";

/* Red LED */
LED1.$name                      = "CONFIG_LED_RED";
LED1.$hardware                  = system.deviceData.board.components.LED_RED;
LED1.gpioPin.$name              = "CONFIG_GPIO_RLED";
LED1.gpioPin.mode               = "Output";
LED1.gpioPin.callbackFunction   = "";

/* Green LED */
LED2.$name                      = "CONFIG_LED_GREEN";
LED2.$hardware                  = system.deviceData.board.components.LED_GREEN;
LED2.gpioPin.$name              = "CONFIG_GPIO_GLED";
LED2.gpioPin.mode               = "Output";
LED2.gpioPin.callbackFunction   = "";

thread.deviceTypeReadOnly                    = true;
thread.pm.$name                              = "ti_thread_pm_thread_pm0";
thread.rf.$name                              = "ti_thread_rf_thread_rf0";
thread.rf.radioConfig.$name                  = "ti_devices_radioconfig_settings_ieee_15_40";
thread.rf.radioConfig.codeExportConfig.$name = "ti_devices_radioconfig_code_export_param0";
thread.network.$name                         = "ti_thread_network_thread_network0";
thread.security.$name                        = "ti_thread_security_thread_security0";

/**
 * Pinmux solution for unlocked pins/peripherals. This ensures that minor changes to the automatic solver in a future
 * version of the tool will not impact the pinmux you originally saw.  These lines can be completely deleted in order to
 * re-solve from scratch.
 */
UART2.uart.$suggestSolution       = "UART0";
UART2.uart.txPin.$suggestSolution = "boosterpack.30";
UART2.uart.rxPin.$suggestSolution = "boosterpack.29";
