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.
Dependencies: nRF51_Vdd TextLCD BME280
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 Jul 12 2022 15:15:48 by
