LoRaMAC  4.6.0
Documentation of the API
RegionEU433.h
Go to the documentation of this file.
1 
37 #ifndef __REGION_EU433_H__
38 #define __REGION_EU433_H__
39 
40 #ifdef __cplusplus
41 extern "C"
42 {
43 #endif
44 
45 #include "region/Region.h"
46 
50 #define EU433_MAX_NB_CHANNELS 16
51 
55 #define EU433_NUMB_DEFAULT_CHANNELS 3
56 
60 #define EU433_NUMB_CHANNELS_CF_LIST 5
61 
65 #define EU433_TX_MIN_DATARATE DR_0
66 
70 #define EU433_TX_MAX_DATARATE DR_7
71 
75 #define EU433_RX_MIN_DATARATE DR_0
76 
80 #define EU433_RX_MAX_DATARATE DR_7
81 
85 #define EU433_DEFAULT_DATARATE DR_0
86 
90 #define EU433_MIN_RX1_DR_OFFSET 0
91 
95 #define EU433_MAX_RX1_DR_OFFSET 5
96 
100 #define EU433_MIN_TX_POWER TX_POWER_5
101 
105 #define EU433_MAX_TX_POWER TX_POWER_0
106 
110 #define EU433_DEFAULT_TX_POWER TX_POWER_0
111 
115 #define EU433_DEFAULT_MAX_EIRP 12.15f
116 
120 #define EU433_DEFAULT_ANTENNA_GAIN 2.15f
121 
125 #define EU433_DUTY_CYCLE_ENABLED 1
126 
130 #define EU433_MAX_RX_WINDOW 3000
131 
135 #if ( EU433_DEFAULT_DATARATE > DR_5 )
136 #error "A default DR higher than DR_5 may lead to connectivity loss."
137 #endif
138 
142 #define EU433_RX_WND_2_FREQ 434665000
143 
147 #define EU433_RX_WND_2_DR DR_0
148 
152 #define EU433_MAX_NB_BANDS 1
153 
157 #define EU433_DEFAULT_UPLINK_DWELL_TIME 0
158 
159 /*
160  * CLASS B
161  */
165 #define EU433_BEACON_CHANNEL_FREQ 434665000
166 
170 #define EU433_PING_SLOT_CHANNEL_FREQ 434665000
171 
175 #define EU433_BEACON_SIZE 17
176 
180 #define EU433_RFU1_SIZE 1
181 
185 #define EU433_RFU2_SIZE 0
186 
190 #define EU433_BEACON_CHANNEL_DR DR_3
191 
195 #define EU433_BEACON_CHANNEL_BW 0
196 
200 #define EU433_PING_SLOT_CHANNEL_DR DR_3
201 
206 #define EU433_BAND0 { 100, EU433_MAX_TX_POWER, 0, 0, 0, 0, 0 } // 1.0 %
207 
212 #define EU433_LC1 { 433175000, 0, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
213 
218 #define EU433_LC2 { 433375000, 0, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
219 
224 #define EU433_LC3 { 433575000, 0, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
225 
229 #define EU433_JOIN_CHANNELS ( uint16_t )( LC( 1 ) | LC( 2 ) | LC( 3 ) )
230 
234 static const uint8_t DataratesEU433[] = { 12, 11, 10, 9, 8, 7, 7, 50 };
235 
239 static const uint32_t BandwidthsEU433[] = { 125000, 125000, 125000, 125000, 125000, 125000, 250000, 0 };
240 
244 static const uint8_t MaxPayloadOfDatarateEU433[] = { 51, 51, 51, 115, 242, 242, 242, 242 };
245 
254 
261 
268 
278 bool RegionEU433Verify( VerifyParams_t* verify, PhyAttribute_t phyAttribute );
279 
286 void RegionEU433ApplyCFList( ApplyCFListParams_t* applyCFList );
287 
295 bool RegionEU433ChanMaskSet( ChanMaskSetParams_t* chanMaskSet );
296 
310 void RegionEU433ComputeRxWindowParameters( int8_t datarate, uint8_t minRxSymbols, uint32_t rxError, RxConfigParams_t *rxConfigParams );
311 
321 bool RegionEU433RxConfig( RxConfigParams_t* rxConfig, int8_t* datarate );
322 
334 bool RegionEU433TxConfig( TxConfigParams_t* txConfig, int8_t* txPower, TimerTime_t* txTimeOnAir );
335 
343 uint8_t RegionEU433LinkAdrReq( LinkAdrReqParams_t* linkAdrReq, int8_t* drOut, int8_t* txPowOut, uint8_t* nbRepOut, uint8_t* nbBytesParsed );
344 
352 uint8_t RegionEU433RxParamSetupReq( RxParamSetupReqParams_t* rxParamSetupReq );
353 
361 int8_t RegionEU433NewChannelReq( NewChannelReqParams_t* newChannelReq );
362 
372 int8_t RegionEU433TxParamSetupReq( TxParamSetupReqParams_t* txParamSetupReq );
373 
381 int8_t RegionEU433DlChannelReq( DlChannelReqParams_t* dlChannelReq );
382 
390 int8_t RegionEU433AlternateDr( int8_t currentDr, AlternateDrType_t type );
391 
404 LoRaMacStatus_t RegionEU433NextChannel( NextChanParams_t* nextChanParams, uint8_t* channel, TimerTime_t* time, TimerTime_t* aggregatedTimeOff );
405 
414 
422 bool RegionEU433ChannelsRemove( ChannelRemoveParams_t* channelRemove );
423 
435 uint8_t RegionEU433ApplyDrOffset( uint8_t downlinkDwellTime, int8_t dr, int8_t drOffset );
436 
442 void RegionEU433RxBeaconSetup( RxBeaconSetup_t* rxBeaconSetup, uint8_t* outDr );
443 
446 #ifdef __cplusplus
447 }
448 #endif
449 
450 #endif // __REGION_EU433_H__
RegionEU433RxParamSetupReq
uint8_t RegionEU433RxParamSetupReq(RxParamSetupReqParams_t *rxParamSetupReq)
The function processes a RX Parameter Setup Request.
AlternateDrType_t
AlternateDrType_t
Definition: Region.h:756
Region.h
Region implementation.
GetPhyParams_t
Definition: Region.h:409
LoRaMacStatus_t
LoRaMacStatus_t
Definition: LoRaMac.h:2345
RegionEU433TxConfig
bool RegionEU433TxConfig(TxConfigParams_t *txConfig, int8_t *txPower, TimerTime_t *txTimeOnAir)
TX configuration.
RegionEU433NewChannelReq
int8_t RegionEU433NewChannelReq(NewChannelReqParams_t *newChannelReq)
The function processes a Channel Request.
RegionEU433ApplyCFList
void RegionEU433ApplyCFList(ApplyCFListParams_t *applyCFList)
The function parses the input buffer and sets up the channels of the CF list.
RegionEU433InitDefaults
void RegionEU433InitDefaults(InitDefaultsParams_t *params)
Initializes the channels masks and the channels.
RegionEU433GetPhyParam
PhyParam_t RegionEU433GetPhyParam(GetPhyParams_t *getPhy)
The function gets a value of a specific phy attribute.
RegionEU433LinkAdrReq
uint8_t RegionEU433LinkAdrReq(LinkAdrReqParams_t *linkAdrReq, int8_t *drOut, int8_t *txPowOut, uint8_t *nbRepOut, uint8_t *nbBytesParsed)
The function processes a Link ADR Request.
ChanMaskSetParams_t
Definition: Region.h:549
NextChanParams_t
Definition: Region.h:771
RxBeaconSetup_t
Definition: Region.h:836
RegionEU433RxBeaconSetup
void RegionEU433RxBeaconSetup(RxBeaconSetup_t *rxBeaconSetup, uint8_t *outDr)
Sets the radio into beacon reception mode.
RegionEU433ComputeRxWindowParameters
void RegionEU433ComputeRxWindowParameters(int8_t datarate, uint8_t minRxSymbols, uint32_t rxError, RxConfigParams_t *rxConfigParams)
NewChannelReqParams_t
Definition: Region.h:707
RegionEU433DlChannelReq
int8_t RegionEU433DlChannelReq(DlChannelReqParams_t *dlChannelReq)
The function processes a DlChannel Request.
TxParamSetupReqParams_t
Definition: Region.h:722
RegionEU433SetBandTxDone
void RegionEU433SetBandTxDone(SetBandTxDoneParams_t *txDone)
Updates the last TX done parameters of the current channel.
RegionEU433Verify
bool RegionEU433Verify(VerifyParams_t *verify, PhyAttribute_t phyAttribute)
Verifies a parameter.
PhyAttribute_t
PhyAttribute_t
Definition: Region.h:85
RegionEU433ChanMaskSet
bool RegionEU433ChanMaskSet(ChanMaskSetParams_t *chanMaskSet)
Sets a channels mask.
ChannelAddParams_t
Definition: Region.h:810
RxConfigParams_t
Definition: Region.h:564
RegionEU433ChannelAdd
LoRaMacStatus_t RegionEU433ChannelAdd(ChannelAddParams_t *channelAdd)
Adds a channel.
ApplyCFListParams_t
Definition: Region.h:533
DlChannelReqParams_t
Definition: Region.h:741
TxConfigParams_t
Definition: Region.h:618
RegionEU433NextChannel
LoRaMacStatus_t RegionEU433NextChannel(NextChanParams_t *nextChanParams, uint8_t *channel, TimerTime_t *time, TimerTime_t *aggregatedTimeOff)
Searches and set the next random available channel.
InitDefaultsParams_t
Definition: Region.h:473
SetBandTxDoneParams_t
Definition: Region.h:446
RxParamSetupReqParams_t
Definition: Region.h:688
VerifyParams_t
Definition: Region.h:496
PhyParam_t
Definition: Region.h:378
RegionEU433RxConfig
bool RegionEU433RxConfig(RxConfigParams_t *rxConfig, int8_t *datarate)
Configuration of the RX windows.
RegionEU433ApplyDrOffset
uint8_t RegionEU433ApplyDrOffset(uint8_t downlinkDwellTime, int8_t dr, int8_t drOffset)
Computes new datarate according to the given offset.
RegionEU433TxParamSetupReq
int8_t RegionEU433TxParamSetupReq(TxParamSetupReqParams_t *txParamSetupReq)
The function processes a TX ParamSetup Request.
RegionEU433ChannelsRemove
bool RegionEU433ChannelsRemove(ChannelRemoveParams_t *channelRemove)
Removes a channel.
RegionEU433AlternateDr
int8_t RegionEU433AlternateDr(int8_t currentDr, AlternateDrType_t type)
Alternates the datarate of the channel for the join request.
ChannelRemoveParams_t
Definition: Region.h:825