V3.2
6. Changelog
- General
- Updated LoRaMac implementation according to LoRaWAN R1.0 specification
- General cosmetics corrections
- Added the support of packed structures when using IAR tool chain
- Timers: Added a function to get the time in us.
- Timers: Added a typedef for time variables (TimerTime_t)
- Radios: Changed the TimeOnAir radio function to return a uint32_t value instead of a double. The value is in us.
- Radios: Corrected the 250 kHz bandwidth choice for the FSK modem
- GPS: Added a function that returns if the GPS has a fix or not.
- GPS: Changed the GetPosition functions to return a latitude and longitude of 0 and altitude of 65535 when no GPS fix.
- LoRaWAN
- Removed support for previous LoRaMac/LoRaWAN specifications
- Added missing MAC commands and updated others when necessary
-
Corrected the Port 0 MAC commands decryption
-
Changed the way the upper layer is notified. Now it is only notified
when all the operations are finished.When a ClassA Tx cycle starts a timer is launched to check every second if everything is finished.
-
Added a new parameter to LoRaMacEventFlags structure that indicates on which Rx window the data has been received.
-
Added a new parameter to LoRaMacEventFlags structure that indicates if there is applicative data on the received payload.
-
Corrected ADR MAC command behaviour
-
DutyCycle enforcement implementation (EU868 PHY only)
REMARK 1 The regulatory duty cycle enforcement is enabled by default
which means that for lower data rates the node may not transmit a new
frame as quickly as requested.
The formula used to compute the node idle time isToff = TimeOnAir / DutyCycle - TxTimeOnAir
Eaxample:
A device just transmitted a 0.5 s long frame on one default channel.
This channel is in a sub-band allowing 1% duty-cycle. Therefore this
whole sub-band (868 MHz - 868.6 MHz) will be unavailable for 49.5 s.REMARK 2 The duty cycle enforcement can be disabled for test
purposes by calling the LoRaMacSetDutyCycleOn function with false
parameter. -
Implemented aggregated duty cycle management
-
Added a function to create new channels
-
Implemented the missing features on the JoinAccept MAC command
-
Updated LoRaMacJoinDecrypt function to handle the CFList field.
-
- Due to duty cycle management the applicative API has changed.
All applications must be updated accordingly. - Added the possibility to chose to use either public or private networks