/** * \file enddevice_demo.h * * \brief Serial Provisioning of LoRaWAN Demo Application * * Copyright (c) 2020 Europalab Devices ApS * * \asf_license_start * * \page License * * This file is part of Sendcomm. * * Sendcomm is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Sendcomm is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Sendcomm. If not, see . * * \asf_license_stop * */ #ifndef DEMO_APP_H_ #define DEMO_APP_H_ /*********************************************************************//** \brief Macro to check the LoRaWAN stack status attribute network joined bit *************************************************************************/ #define LORAWAN_NW_JOINED 0x01 //#define EDBG_EUI_READ 1 typedef enum _AppTaskIds_t { DISPLAY_TASK_HANDLER, PROCESS_TASK_HANDLER, APP_TASKS_COUNT }AppTaskIds_t; typedef enum _AppTaskState_t { RESTORE_BAND_STATE, DEMO_APP_CONFIG, DEMO_CERT_APP_STATE, DEMO_APP_STATE, JOIN_SEND_STATE }AppTaskState_t; /*********************************************************************//** \brief Function to Initialize the Demo application *************************************************************************/ void mote_demo_init(void); /*********************************************************************//* \brief Set join parameters function \param[in] activation type - notifies the activation type (OTAA/ABP) \return LORAWAN_SUCCESS, if successfully set the join parameters LORAWAN_INVALID_PARAMETER, otherwise ************************************************************************/ StackRetStatus_t set_join_parameters(ActivationType_t activation_type); /*********************************************************************//* \brief Function to Initialize the device type \param[in] ed_class - notifies the device class (CLASS_A/CLASS_C) \return LORAWAN_SUCCESS, if successfully set the device class LORAWAN_INVALID_PARAMETER, otherwise ************************************************************************/ StackRetStatus_t set_device_type(EdClass_t ed_class); /*********************************************************************** \brief Function to Initialize set default parameters \param[in] void \return LORAWAN_SUCCESS, if successfully set all the parameters LORAWAN_INVALID_PARAMETER, otherwise ************************************************************************/ StackRetStatus_t mote_set_parameters(IsmBand_t ismBand, const uint16_t index); /*********************************************************************//* \brief Function to Initialize the Multicast parameters ************************************************************************/ void set_multicast_params (void); /*********************************************************************//** \brief Callback function for the ending of Bidirectional communication of Application data *************************************************************************/ void demo_appdata_callback(void *appHandle, appCbParams_t *data); /*********************************************************************//* \brief Callback function for the ending of Activation procedure ************************************************************************/ void demo_joindata_callback(StackRetStatus_t status); /*********************************************************************//* \brief Function to Print stack default parameters ************************************************************************/ void print_default_parameters(void); /*********************************************************************//* \brief Function to Print application configuration ************************************************************************/ void print_application_config (void); /*********************************************************************//* \brief Function to Print array of characters \param[in] *array - Pointer of the array to be printed \param[in] length - Length of the array ************************************************************************/ void print_array (uint8_t *data, uint8_t length); /*********************************************************************//* \brief Function to Print stack return status \param[in] status - Status from the stack ************************************************************************/ void print_stack_status(StackRetStatus_t status); /*********************************************************************//* \brief Function to Check stack return status \param[in] Void ************************************************************************/ void check_stack_status(void); /*********************************************************************//** \brief Pulls the data from UART when activated *************************************************************************/ void serial_data_handler(void); /*********************************************************************//** \brief Pulls data from UART and concatenates to appropriate EUI/Key *************************************************************************/ void serial_read_appConfig(uint8_t *buffer, uint8_t noOfBytes); /*********************************************************************//** \brief ASCII input to Decimal Converter. Range of ascii handled (0,F/f) *************************************************************************/ uint8_t asciiToDecConverter(uint8_t input); #endif /* DEMO_APP_H_ */