Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
LoRaPHYUS915.h
00001 /** 00002 * @file LoRaPHYUS915.h 00003 * 00004 * @brief Implements LoRaPHY for US 915 MHz band 00005 * 00006 * \code 00007 * ______ _ 00008 * / _____) _ | | 00009 * ( (____ _____ ____ _| |_ _____ ____| |__ 00010 * \____ \| ___ | (_ _) ___ |/ ___) _ \ 00011 * _____) ) ____| | | || |_| ____( (___| | | | 00012 * (______/|_____)_|_|_| \__)_____)\____)_| |_| 00013 * (C)2013 Semtech 00014 * ___ _____ _ ___ _ _____ ___ ___ ___ ___ 00015 * / __|_ _/_\ / __| |/ / __/ _ \| _ \/ __| __| 00016 * \__ \ | |/ _ \ (__| ' <| _| (_) | / (__| _| 00017 * |___/ |_/_/ \_\___|_|\_\_| \___/|_|_\\___|___| 00018 * embedded.connectivity.solutions=============== 00019 * 00020 * \endcode 00021 * 00022 * 00023 * License: Revised BSD License, see LICENSE.TXT file include in the project 00024 * 00025 * Maintainer: Miguel Luis ( Semtech ), Gregory Cristian ( Semtech ) and Daniel Jaeckle ( STACKFORCE ) 00026 * 00027 * Copyright (c) 2017, Arm Limited and affiliates. 00028 * SPDX-License-Identifier: BSD-3-Clause 00029 * 00030 */ 00031 00032 #ifndef MBED_OS_LORAPHYUS_915_H_ 00033 #define MBED_OS_LORAPHYUS_915_H_ 00034 00035 #include "LoRaPHY.h" 00036 00037 /*! 00038 * LoRaMac maximum number of channels 00039 */ 00040 #define US915_MAX_NB_CHANNELS 72 00041 00042 /*! 00043 * LoRaMac maximum number of bands 00044 */ 00045 #define US915_MAX_NB_BANDS 1 00046 00047 #define US915_CHANNEL_MASK_SIZE 5 00048 00049 00050 class LoRaPHYUS915 : public LoRaPHY { 00051 00052 public: 00053 00054 LoRaPHYUS915(); 00055 virtual ~LoRaPHYUS915(); 00056 00057 virtual void restore_default_channels(); 00058 00059 virtual bool rx_config(rx_config_params_t * config); 00060 00061 virtual bool tx_config(tx_config_params_t* config, int8_t* tx_power, 00062 lorawan_time_t* tx_toa); 00063 00064 virtual uint8_t link_ADR_request(adr_req_params_t* params, 00065 int8_t* dr_out, int8_t* tx_power_out, 00066 uint8_t* nb_rep_out, 00067 uint8_t* nb_bytes_parsed); 00068 00069 virtual uint8_t accept_rx_param_setup_req(rx_param_setup_req_t* params); 00070 00071 virtual int8_t get_alternate_DR(uint8_t nb_trials); 00072 00073 virtual lorawan_status_t set_next_channel(channel_selection_params_t* params, uint8_t* channel, 00074 lorawan_time_t* time, lorawan_time_t* aggregate_timeOff); 00075 00076 virtual void set_tx_cont_mode(cw_mode_params_t * continuousWave, 00077 uint32_t frequency = 0); 00078 00079 virtual uint8_t apply_DR_offset(int8_t dr, int8_t dr_offset); 00080 00081 private: 00082 00083 /** 00084 * Sets the intersection of source and destination channel masks 00085 * into the destination. 00086 */ 00087 void intersect_channel_mask(const uint16_t *source, uint16_t *destination, 00088 uint8_t size); 00089 00090 /** 00091 * Fills channel mask array based upon the provided FSB mask 00092 */ 00093 void fill_channel_mask_with_fsb(const uint16_t *expectation, 00094 const uint16_t *fsb_mask, 00095 uint16_t *channel_mask, uint8_t size); 00096 00097 /** 00098 * Fills channel mask array with a given value 00099 */ 00100 void fill_channel_mask_with_value(uint16_t *channel_mask, 00101 uint16_t value, uint8_t size); 00102 00103 int8_t limit_tx_power(int8_t tx_power, int8_t max_band_tx_power, 00104 int8_t datarate); 00105 00106 /*! 00107 * LoRaMAC channels 00108 */ 00109 channel_params_t channels[US915_MAX_NB_CHANNELS]; 00110 00111 /*! 00112 * LoRaMac bands 00113 */ 00114 band_t bands[US915_MAX_NB_BANDS]; 00115 00116 /*! 00117 * LoRaMac channel mask 00118 */ 00119 uint16_t channel_mask[US915_CHANNEL_MASK_SIZE]; 00120 00121 /*! 00122 * Previously used channel mask 00123 */ 00124 uint16_t current_channel_mask[US915_CHANNEL_MASK_SIZE]; 00125 00126 /*! 00127 * LoRaMac default channel mask 00128 */ 00129 uint16_t default_channel_mask[US915_CHANNEL_MASK_SIZE]; 00130 }; 00131 00132 #endif /* MBED_OS_LORAPHY_US915_H_ */
Generated on Tue Aug 9 2022 00:37:10 by
1.7.2