mbed-os/features/lorawan/lorastack/phy/LoRaPHYKR920.h

97 lines
2.3 KiB
C++

/**
* @file LoRaPHYKR920.h
*
* @brief Implements LoRaPHY for Korean 920 MHz band
*
* \code
* ______ _
* / _____) _ | |
* ( (____ _____ ____ _| |_ _____ ____| |__
* \____ \| ___ | (_ _) ___ |/ ___) _ \
* _____) ) ____| | | || |_| ____( (___| | | |
* (______/|_____)_|_|_| \__)_____)\____)_| |_|
* (C)2013 Semtech
* ___ _____ _ ___ _ _____ ___ ___ ___ ___
* / __|_ _/_\ / __| |/ / __/ _ \| _ \/ __| __|
* \__ \ | |/ _ \ (__| ' <| _| (_) | / (__| _|
* |___/ |_/_/ \_\___|_|\_\_| \___/|_|_\\___|___|
* embedded.connectivity.solutions===============
*
* \endcode
*
*
* License: Revised BSD License, see LICENSE.TXT file include in the project
*
* Maintainer: Miguel Luis ( Semtech ), Gregory Cristian ( Semtech ) and Daniel Jaeckle ( STACKFORCE )
*
* Copyright (c) 2017, Arm Limited and affiliates.
* SPDX-License-Identifier: BSD-3-Clause
*
*/
#ifndef MBED_OS_LORAPHY_KR920_H_
#define MBED_OS_LORAPHY_KR920_H_
#include "LoRaPHY.h"
/*!
* LoRaMac maximum number of channels
*/
#define KR920_MAX_NB_CHANNELS 16
/*!
* Maximum number of bands
*/
#define KR920_MAX_NB_BANDS 1
#define KR920_CHANNEL_MASK_SIZE 1
class LoRaPHYKR920 : public LoRaPHY {
public:
LoRaPHYKR920(LoRaWANTimeHandler &lora_time);
virtual ~LoRaPHYKR920();
virtual bool verify_frequency(uint32_t freq);
virtual bool tx_config(tx_config_params_t* config, int8_t* tx_power,
lorawan_time_t* tx_toa);
virtual bool set_next_channel(channel_selection_params_t* params, uint8_t* channel,
lorawan_time_t* time,
lorawan_time_t* aggregate_timeOff);
virtual void set_tx_cont_mode(cw_mode_params_t* continuousWave,
uint32_t frequency = 0);
private:
int8_t get_max_eirp(uint32_t freq);
/**
* LoRaMAC channels
*/
channel_params_t channels[KR920_MAX_NB_CHANNELS];
/**
* LoRaMac bands
*/
band_t bands[KR920_MAX_NB_BANDS];
/**
* LoRaMac channel mask
*/
uint16_t channel_mask[KR920_CHANNEL_MASK_SIZE];
/**
* LoRaMac default channel mask
*/
uint16_t default_channel_mask[KR920_CHANNEL_MASK_SIZE];
};
#endif // MBED_OS_LORAPHY_KR920_H_