LoRaMAC  4.4.5
Documentation of the API
RegionRU864.h
Go to the documentation of this file.
1 
35 #ifndef __REGION_RU864_H__
36 #define __REGION_RU864_H__
37 
38 #ifdef __cplusplus
39 extern "C"
40 {
41 #endif
42 
43 #include "LoRaMac.h"
44 
48 #define RU864_MAX_NB_CHANNELS 8
49 
53 #define RU864_NUMB_DEFAULT_CHANNELS 2
54 
58 #define RU864_NUMB_CHANNELS_CF_LIST 5
59 
63 #define RU864_TX_MIN_DATARATE DR_0
64 
68 #define RU864_TX_MAX_DATARATE DR_7
69 
73 #define RU864_RX_MIN_DATARATE DR_0
74 
78 #define RU864_RX_MAX_DATARATE DR_7
79 
83 #define RU864_DEFAULT_DATARATE DR_0
84 
88 #define RU864_MIN_RX1_DR_OFFSET 0
89 
93 #define RU864_MAX_RX1_DR_OFFSET 5
94 
98 #define RU864_MIN_TX_POWER TX_POWER_7
99 
103 #define RU864_MAX_TX_POWER TX_POWER_0
104 
108 #define RU864_DEFAULT_TX_POWER TX_POWER_0
109 
113 #define RU864_DEFAULT_MAX_EIRP 16.0f
114 
118 #define RU864_DEFAULT_ANTENNA_GAIN 2.15f
119 
123 #define RU864_DUTY_CYCLE_ENABLED 1
124 
128 #define RU864_MAX_RX_WINDOW 3000 //TODO
129 
130 #if ( RU864_DEFAULT_DATARATE > DR_5 )
131 #error "A default DR higher than DR_5 may lead to connectivity loss."
132 #endif
133 
137 #define RU864_RX_WND_2_FREQ 869100000
138 
142 #define RU864_RX_WND_2_DR DR_0
143 
147 #define RU864_DEFAULT_UPLINK_DWELL_TIME 0
148 
149 /*
150  * CLASS B
151  */
155 #define RU864_BEACON_CHANNEL_FREQ 869100000
156 
160 #define RU864_PING_SLOT_CHANNEL_FREQ 868900000
161 
165 #define RU864_BEACON_SIZE 17
166 
170 #define RU864_RFU1_SIZE 2
171 
175 #define RU864_RFU2_SIZE 0
176 
180 #define RU864_BEACON_CHANNEL_DR DR_3
181 
185 #define RU864_BEACON_CHANNEL_BW 0
186 
190 #define RU864_PING_SLOT_CHANNEL_DR DR_3
191 
195 #define RU864_MAX_NB_BANDS 1
196 
201 #define RU864_BAND0 { 100 , RU864_MAX_TX_POWER, 0, 0, 0, 0, 0 } // 1.0 %
202 
207 #define RU864_LC1 { 868900000, 0, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
208 
213 #define RU864_LC2 { 869100000, 0, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
214 
215 
219 #define RU864_JOIN_CHANNELS ( uint16_t )( LC( 1 ) | LC( 2 ) )
220 
224 static const uint8_t DataratesRU864[] = { 12, 11, 10, 9, 8, 7, 7, 50 };
225 
229 static const uint32_t BandwidthsRU864[] = { 125000, 125000, 125000, 125000, 125000, 125000, 250000, 0 };
230 
234 static const uint8_t MaxPayloadOfDatarateRU864[] = { 51, 51, 51, 115, 242, 242, 242, 242 };
235 
244 
251 
258 
266 void* RegionRU864GetNvmCtx( GetNvmCtxParams_t* params );
267 
277 bool RegionRU864Verify( VerifyParams_t* verify, PhyAttribute_t phyAttribute );
278 
285 void RegionRU864ApplyCFList( ApplyCFListParams_t* applyCFList );
286 
294 bool RegionRU864ChanMaskSet( ChanMaskSetParams_t* chanMaskSet );
295 
309 void RegionRU864ComputeRxWindowParameters( int8_t datarate, uint8_t minRxSymbols, uint32_t rxError, RxConfigParams_t *rxConfigParams );
310 
320 bool RegionRU864RxConfig( RxConfigParams_t* rxConfig, int8_t* datarate );
321 
333 bool RegionRU864TxConfig( TxConfigParams_t* txConfig, int8_t* txPower, TimerTime_t* txTimeOnAir );
334 
342 uint8_t RegionRU864LinkAdrReq( LinkAdrReqParams_t* linkAdrReq, int8_t* drOut, int8_t* txPowOut, uint8_t* nbRepOut, uint8_t* nbBytesParsed );
343 
351 uint8_t RegionRU864RxParamSetupReq( RxParamSetupReqParams_t* rxParamSetupReq );
352 
360 uint8_t RegionRU864NewChannelReq( NewChannelReqParams_t* newChannelReq );
361 
371 int8_t RegionRU864TxParamSetupReq( TxParamSetupReqParams_t* txParamSetupReq );
372 
380 uint8_t RegionRU864DlChannelReq( DlChannelReqParams_t* dlChannelReq );
381 
389 int8_t RegionRU864AlternateDr( int8_t currentDr, AlternateDrType_t type );
390 
403 LoRaMacStatus_t RegionRU864NextChannel( NextChanParams_t* nextChanParams, uint8_t* channel, TimerTime_t* time, TimerTime_t* aggregatedTimeOff );
404 
413 
421 bool RegionRU864ChannelsRemove( ChannelRemoveParams_t* channelRemove );
422 
429 
441 uint8_t RegionRU864ApplyDrOffset( uint8_t downlinkDwellTime, int8_t dr, int8_t drOffset );
442 
448 void RegionRU864RxBeaconSetup( RxBeaconSetup_t* rxBeaconSetup, uint8_t* outDr );
449 
452 #ifdef __cplusplus
453 }
454 #endif
455 
456 #endif // __REGION_RU864_H__
RegionRU864ChannelAdd
LoRaMacStatus_t RegionRU864ChannelAdd(ChannelAddParams_t *channelAdd)
Adds a channel.
AlternateDrType_t
AlternateDrType_t
Definition: Region.h:1264
RegionRU864GetPhyParam
PhyParam_t RegionRU864GetPhyParam(GetPhyParams_t *getPhy)
The function gets a value of a specific phy attribute.
GetPhyParams_t
Definition: Region.h:921
RegionRU864DlChannelReq
uint8_t RegionRU864DlChannelReq(DlChannelReqParams_t *dlChannelReq)
The function processes a DlChannel Request.
LoRaMacStatus_t
LoRaMacStatus_t
Definition: LoRaMac.h:2153
RegionRU864RxConfig
bool RegionRU864RxConfig(RxConfigParams_t *rxConfig, int8_t *datarate)
Configuration of the RX windows.
ChanMaskSetParams_t
Definition: Region.h:1064
RegionRU864ApplyCFList
void RegionRU864ApplyCFList(ApplyCFListParams_t *applyCFList)
The function parses the input buffer and sets up the channels of the CF list.
ContinuousWaveParams_t
Definition: Region.h:1344
NextChanParams_t
Definition: Region.h:1279
RxBeaconSetup_t
Definition: Region.h:1375
RegionRU864NewChannelReq
uint8_t RegionRU864NewChannelReq(NewChannelReqParams_t *newChannelReq)
The function processes a Channel Request.
NewChannelReqParams_t
Definition: Region.h:1215
RegionRU864ChannelsRemove
bool RegionRU864ChannelsRemove(ChannelRemoveParams_t *channelRemove)
Removes a channel.
TxParamSetupReqParams_t
Definition: Region.h:1230
RegionRU864Verify
bool RegionRU864Verify(VerifyParams_t *verify, PhyAttribute_t phyAttribute)
Verifies a parameter.
RegionRU864ComputeRxWindowParameters
void RegionRU864ComputeRxWindowParameters(int8_t datarate, uint8_t minRxSymbols, uint32_t rxError, RxConfigParams_t *rxConfigParams)
PhyAttribute_t
PhyAttribute_t
Definition: Region.h:589
RegionRU864LinkAdrReq
uint8_t RegionRU864LinkAdrReq(LinkAdrReqParams_t *linkAdrReq, int8_t *drOut, int8_t *txPowOut, uint8_t *nbRepOut, uint8_t *nbBytesParsed)
The function processes a Link ADR Request.
GetNvmCtxParams_t
Definition: Region.h:1000
RegionRU864GetNvmCtx
void * RegionRU864GetNvmCtx(GetNvmCtxParams_t *params)
Returns a pointer to the internal context and its size.
ChannelAddParams_t
Definition: Region.h:1318
RegionRU864InitDefaults
void RegionRU864InitDefaults(InitDefaultsParams_t *params)
Initializes the channels masks and the channels.
RegionRU864RxBeaconSetup
void RegionRU864RxBeaconSetup(RxBeaconSetup_t *rxBeaconSetup, uint8_t *outDr)
Sets the radio into beacon reception mode.
RxConfigParams_t
Definition: Region.h:1079
LoRaMac.h
LoRa MAC layer implementation.
RegionRU864RxParamSetupReq
uint8_t RegionRU864RxParamSetupReq(RxParamSetupReqParams_t *rxParamSetupReq)
The function processes a RX Parameter Setup Request.
RegionRU864TxParamSetupReq
int8_t RegionRU864TxParamSetupReq(TxParamSetupReqParams_t *txParamSetupReq)
The function processes a TX ParamSetup Request.
RegionRU864ApplyDrOffset
uint8_t RegionRU864ApplyDrOffset(uint8_t downlinkDwellTime, int8_t dr, int8_t drOffset)
Computes new datarate according to the given offset.
ApplyCFListParams_t
Definition: Region.h:1049
DlChannelReqParams_t
Definition: Region.h:1249
TxConfigParams_t
Definition: Region.h:1126
RegionRU864TxConfig
bool RegionRU864TxConfig(TxConfigParams_t *txConfig, int8_t *txPower, TimerTime_t *txTimeOnAir)
TX configuration.
InitDefaultsParams_t
Definition: Region.h:985
RegionRU864SetContinuousWave
void RegionRU864SetContinuousWave(ContinuousWaveParams_t *continuousWave)
Sets the radio into continuous wave mode.
SetBandTxDoneParams_t
Definition: Region.h:958
RxParamSetupReqParams_t
Definition: Region.h:1196
RegionRU864SetBandTxDone
void RegionRU864SetBandTxDone(SetBandTxDoneParams_t *txDone)
Updates the last TX done parameters of the current channel.
VerifyParams_t
Definition: Region.h:1012
PhyParam_t
Definition: Region.h:890
RegionRU864AlternateDr
int8_t RegionRU864AlternateDr(int8_t currentDr, AlternateDrType_t type)
Alternates the datarate of the channel for the join request.
RegionRU864ChanMaskSet
bool RegionRU864ChanMaskSet(ChanMaskSetParams_t *chanMaskSet)
Sets a channels mask.
RegionRU864NextChannel
LoRaMacStatus_t RegionRU864NextChannel(NextChanParams_t *nextChanParams, uint8_t *channel, TimerTime_t *time, TimerTime_t *aggregatedTimeOff)
Searches and set the next random available channel.
ChannelRemoveParams_t
Definition: Region.h:1333