LoRaMAC  4.6.0
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 "region/Region.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 1
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_PING_SLOT_CHANNEL_DR DR_3
196 
200 #define RU864_MAX_NB_BANDS 1
201 
206 #define RU864_BAND0 { 100 , RU864_MAX_TX_POWER, 0, 0, 0, 0, 0 } // 1.0 %
207 
212 #define RU864_LC1 { 868900000, 0, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
213 
218 #define RU864_LC2 { 869100000, 0, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
219 
220 
224 #define RU864_JOIN_CHANNELS ( uint16_t )( LC( 1 ) | LC( 2 ) )
225 
229 static const uint8_t DataratesRU864[] = { 12, 11, 10, 9, 8, 7, 7, 50 };
230 
234 static const uint32_t BandwidthsRU864[] = { 125000, 125000, 125000, 125000, 125000, 125000, 250000, 0 };
235 
239 static const uint8_t MaxPayloadOfDatarateRU864[] = { 51, 51, 51, 115, 242, 242, 242, 242 };
240 
249 
256 
263 
273 bool RegionRU864Verify( VerifyParams_t* verify, PhyAttribute_t phyAttribute );
274 
281 void RegionRU864ApplyCFList( ApplyCFListParams_t* applyCFList );
282 
290 bool RegionRU864ChanMaskSet( ChanMaskSetParams_t* chanMaskSet );
291 
305 void RegionRU864ComputeRxWindowParameters( int8_t datarate, uint8_t minRxSymbols, uint32_t rxError, RxConfigParams_t *rxConfigParams );
306 
316 bool RegionRU864RxConfig( RxConfigParams_t* rxConfig, int8_t* datarate );
317 
329 bool RegionRU864TxConfig( TxConfigParams_t* txConfig, int8_t* txPower, TimerTime_t* txTimeOnAir );
330 
338 uint8_t RegionRU864LinkAdrReq( LinkAdrReqParams_t* linkAdrReq, int8_t* drOut, int8_t* txPowOut, uint8_t* nbRepOut, uint8_t* nbBytesParsed );
339 
347 uint8_t RegionRU864RxParamSetupReq( RxParamSetupReqParams_t* rxParamSetupReq );
348 
356 int8_t RegionRU864NewChannelReq( NewChannelReqParams_t* newChannelReq );
357 
367 int8_t RegionRU864TxParamSetupReq( TxParamSetupReqParams_t* txParamSetupReq );
368 
376 int8_t RegionRU864DlChannelReq( DlChannelReqParams_t* dlChannelReq );
377 
385 int8_t RegionRU864AlternateDr( int8_t currentDr, AlternateDrType_t type );
386 
399 LoRaMacStatus_t RegionRU864NextChannel( NextChanParams_t* nextChanParams, uint8_t* channel, TimerTime_t* time, TimerTime_t* aggregatedTimeOff );
400 
409 
417 bool RegionRU864ChannelsRemove( ChannelRemoveParams_t* channelRemove );
418 
430 uint8_t RegionRU864ApplyDrOffset( uint8_t downlinkDwellTime, int8_t dr, int8_t drOffset );
431 
437 void RegionRU864RxBeaconSetup( RxBeaconSetup_t* rxBeaconSetup, uint8_t* outDr );
438 
441 #ifdef __cplusplus
442 }
443 #endif
444 
445 #endif // __REGION_RU864_H__
RegionRU864ChannelAdd
LoRaMacStatus_t RegionRU864ChannelAdd(ChannelAddParams_t *channelAdd)
Adds a channel.
AlternateDrType_t
AlternateDrType_t
Definition: Region.h:756
Region.h
Region implementation.
RegionRU864GetPhyParam
PhyParam_t RegionRU864GetPhyParam(GetPhyParams_t *getPhy)
The function gets a value of a specific phy attribute.
GetPhyParams_t
Definition: Region.h:409
LoRaMacStatus_t
LoRaMacStatus_t
Definition: LoRaMac.h:2345
RegionRU864RxConfig
bool RegionRU864RxConfig(RxConfigParams_t *rxConfig, int8_t *datarate)
Configuration of the RX windows.
ChanMaskSetParams_t
Definition: Region.h:549
RegionRU864ApplyCFList
void RegionRU864ApplyCFList(ApplyCFListParams_t *applyCFList)
The function parses the input buffer and sets up the channels of the CF list.
NextChanParams_t
Definition: Region.h:771
RxBeaconSetup_t
Definition: Region.h:836
RegionRU864NewChannelReq
int8_t RegionRU864NewChannelReq(NewChannelReqParams_t *newChannelReq)
The function processes a Channel Request.
NewChannelReqParams_t
Definition: Region.h:707
RegionRU864ChannelsRemove
bool RegionRU864ChannelsRemove(ChannelRemoveParams_t *channelRemove)
Removes a channel.
TxParamSetupReqParams_t
Definition: Region.h:722
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:85
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.
ChannelAddParams_t
Definition: Region.h:810
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:564
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:533
DlChannelReqParams_t
Definition: Region.h:741
TxConfigParams_t
Definition: Region.h:618
RegionRU864TxConfig
bool RegionRU864TxConfig(TxConfigParams_t *txConfig, int8_t *txPower, TimerTime_t *txTimeOnAir)
TX configuration.
InitDefaultsParams_t
Definition: Region.h:473
SetBandTxDoneParams_t
Definition: Region.h:446
RxParamSetupReqParams_t
Definition: Region.h:688
RegionRU864SetBandTxDone
void RegionRU864SetBandTxDone(SetBandTxDoneParams_t *txDone)
Updates the last TX done parameters of the current channel.
VerifyParams_t
Definition: Region.h:496
PhyParam_t
Definition: Region.h:378
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.
RegionRU864DlChannelReq
int8_t RegionRU864DlChannelReq(DlChannelReqParams_t *dlChannelReq)
The function processes a DlChannel Request.
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:825