Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers LoRaMacMcps.h Source File

LoRaMacMcps.h

00001 /**
00002  / _____)             _              | |
00003 ( (____  _____ ____ _| |_ _____  ____| |__
00004  \____ \| ___ |    (_   _) ___ |/ ___)  _ \
00005  _____) ) ____| | | || |_| ____( (___| | | |
00006 (______/|_____)_|_|_| \__)_____)\____)_| |_|
00007     (C)2013 Semtech
00008  ___ _____ _   ___ _  _____ ___  ___  ___ ___
00009 / __|_   _/_\ / __| |/ / __/ _ \| _ \/ __| __|
00010 \__ \ | |/ _ \ (__| ' <| _| (_) |   / (__| _|
00011 |___/ |_/_/ \_\___|_|\_\_| \___/|_|_\\___|___|
00012 embedded.connectivity.solutions===============
00013 
00014 Description: LoRaWAN stack layer that controls both MAC and PHY underneath
00015 
00016 License: Revised BSD License, see LICENSE.TXT file include in the project
00017 
00018 Maintainer: Miguel Luis ( Semtech ), Gregory Cristian ( Semtech ) and Daniel Jaeckle ( STACKFORCE )
00019 
00020 
00021 Copyright (c) 2017, Arm Limited and affiliates.
00022 
00023 SPDX-License-Identifier: BSD-3-Clause
00024 */
00025 
00026 #ifndef MBED_OS_LORAWAN_MAC_MCPS_H_
00027 #define MBED_OS_LORAWAN_MAC_MCPS_H_
00028 
00029 #include "lorawan/system/lorawan_data_structures.h"
00030 #include "lorastack/phy/LoRaPHY.h"
00031 
00032 // forward declaration
00033 class LoRaMac;
00034 
00035 class LoRaMacMcps {
00036 
00037 public:
00038 
00039     /** Constructor
00040      *
00041      * Sets local handles to NULL. These handles will be set when the subsystem
00042      * is activated by the MAC layer.
00043      */
00044     LoRaMacMcps();
00045 
00046     /** Destructor
00047      *
00048      * Does nothing
00049      */
00050     ~LoRaMacMcps();
00051 
00052     /**
00053      * @brief reset_confirmation Resets the confirmation struct
00054      */
00055     void reset_confirmation();
00056 
00057     /** Activating MCPS subsystem
00058      *
00059      * Stores pointers to MAC and PHY layer handles
00060      */
00061     void activate_mcps_subsystem();
00062 
00063     /** Grants access to MCPS confirmation data
00064      *
00065      * @return               a reference to MCPS confirm data structure
00066      */
00067     loramac_mcps_confirm_t & get_confirmation();
00068 
00069     /** Grants access to MCPS indication data
00070      *
00071      * @return               a reference to MCPS indication data structure
00072      */
00073     loramac_mcps_indication_t & get_indication();
00074 
00075 private:
00076 
00077     /**
00078      * Structure to hold MCPS indication data.
00079      */
00080     loramac_mcps_indication_t  indication;
00081 
00082     /**
00083      * Structure to hold MCPS confirm data.
00084      */
00085     loramac_mcps_confirm_t  confirmation;
00086 };
00087 
00088 #endif /* MBED_OS_LORAWAN_MAC_MCPS_H_ */