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(LoRaWANTimeHandler &lora_time); 00055 virtual ~LoRaPHYUS915(); 00056 00057 virtual void restore_default_channels(); 00058 00059 virtual bool rx_config(rx_config_params_t * config, int8_t* datarate); 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 int8_t limit_tx_power(int8_t tx_power, int8_t max_band_tx_power, 00084 int8_t datarate); 00085 00086 /*! 00087 * LoRaMAC channels 00088 */ 00089 channel_params_t channels[US915_MAX_NB_CHANNELS]; 00090 00091 /*! 00092 * LoRaMac bands 00093 */ 00094 band_t bands[US915_MAX_NB_BANDS]; 00095 00096 /*! 00097 * LoRaMac channel mask 00098 */ 00099 uint16_t channel_mask[US915_CHANNEL_MASK_SIZE]; 00100 00101 /*! 00102 * Previously used channel mask 00103 */ 00104 uint16_t current_channel_mask[US915_CHANNEL_MASK_SIZE]; 00105 00106 /*! 00107 * LoRaMac default channel mask 00108 */ 00109 uint16_t default_channel_mask[US915_CHANNEL_MASK_SIZE]; 00110 }; 00111 00112 #endif /* MBED_OS_LORAPHY_US915_H_ */
Generated on Tue Jul 12 2022 14:23:52 by
