StevenCellist
298a612699
[LoRaWAN] Change session activation ( #1093 )
...
* [LoRaWAN] Improve session restoration/activation behaviour
* [LoRaWAN] Custom return codes for session begin
* [LoRaWAN] Separate begin() and activate()
* [LoRaWAN] Fix activateABP()
* [LoRaWAN] Additional error-code
* [LoRaWAN] Fix rejoining during active session
* [LoRaWAN] Expose clearSession, drop `force`
* Update keywords...
2024-05-21 12:03:49 +02:00
Thomas Schätzlein
f2e1b547d5
fix payload of DevStatusAns mac-command
...
Lorawan specs say (e.g. 1.0.4 or 1.1), that the first byte is the
battery-level and the second byte is the margin.
2024-05-20 10:51:41 +02:00
jgromes
d12e9f11f5
[LoRaWAN] Added timeout to downlink wait loop
2024-05-08 15:29:39 +02:00
jgromes
90eca88859
[LoRaWAN] Use 32-bit IRQ flags
2024-05-08 14:51:43 +02:00
jgromes
2c9446ef1e
[LoRaWAN] Added rx start assert
2024-05-08 14:50:34 +02:00
StevenCellist
bb7fffe95d
[LoRaWAN] Improve readability to better match documentation
2024-05-04 23:26:59 +02:00
StevenCellist
bbeca9a53e
[LoRaWAN] Consistent fOpts casing to match documents
2024-05-04 23:21:45 +02:00
StevenCellist
163a4020d2
[LoRaWAN] Consistent fCnt/fPort casing to match documents
2024-05-04 23:18:36 +02:00
StevenCellist
43adfee174
[LoRaWAN] Shorten LORAWAN to LW
2024-05-03 22:58:11 +02:00
jgromes
6fe581aea7
Fix minor format warnings
2024-05-03 20:54:18 +01:00
StevenCellist
1b2b8bd67b
[LoRaWAN] Improve PHY behaviour, update beginABP, bugfixes ( #1080 )
...
* [LoRaWAN] Add getter for ToA, prevent MAC queue overflow
* [LoRaWAN] Permute arguments to beginABP
* Implement & split off checkOutputPower
* [LoRaWAN] Configure physical layer on each up/downlink
* [LoRaWAN] Remove unnecessary dynamic array
* [LoRaWAN] Improve downlink handling
* Resolve return-warnings in checkOutputPower()
* [LoRaWAN] Improve buffer definition
* [LoRaWAN] Prevent requesting repeated MAC commands
* Update keywords.txt
* [CC1101] Resolve unused variable warning
* [CC1101] Update checkOutputPower
* [SX1278] Fix variable assignment
* Update keywords.txt
* [CC1101] Added checkOutputPower override for PHY compatibility
* [LR11x0] Added checkOutputPower override for PHY compatibility
* [SX127x] Added checkOutputPower override for PHY compatibility
---------
Co-authored-by: jgromes <jan.gromes@gmail.com>
2024-05-01 13:35:22 +02:00
jgromes
841b283c0f
[LoRaWAN] Use dynamic array instead of VLA
2024-04-26 07:04:16 +02:00
Elizabeth Myers
205031550b
Use RadioLibTime_t (aka unsigned long) when dealing with millis() and micros() ( #1075 )
...
* Use unsigned long when dealing with millis() and micros().
Although sizeof(uint32_t) == sizeof(unsigned long) on Arduino, this is
not the case on 64-bit Linux, where sizeof(unsigned long) ==
sizeof(uint64_t).
Most timestamp arithmetic and comparisons have been left alone, to
reduce code churn. This is fine, as uint32_t is perfectly wide to store
most timestamp deltas this library will deal with, and C will promote
the integer rather than do a narrowing conversion. The real problem
arises with narrowing conversions being done by assuming timestamps are
32-bit.
No functional changes intended for platforms where sizeof(uint32_t) ==
sizeof(unsigned long) (so most 8/16/32-bit platforms).
Signed-off-by: Elizabeth Myers <elizabeth.jennifer.myers@gmail.com>
* Change most timestamps to use RadioLibTime_t.
This makes it obvious what is and isn't a timestamp.
Not everything has been converted; anything dealing with protocol and
chip-level timestamps has been left alone on purpose, to make it clear
that these functions do require 32-bit timestamps.
No functional changes intended on platforms where sizeof(uint32_t) ==
sizeof(unsigned long).
Signed-off-by: Elizabeth Myers <elizabeth.jennifer.myers@gmail.com>
* Use uint32_t internally in getTimeOnAir.
We need to not overflow the integers with the shifts and
multiplications, so this is correct behaviour.
Signed-off-by: Elizabeth Myers <elizabeth.jennifer.myers@gmail.com>
---------
Signed-off-by: Elizabeth Myers <elizabeth.jennifer.myers@gmail.com>
2024-04-25 21:50:58 +02:00
StevenCellist
a4ad32e6ff
[LoRaWAN] Fix downlink crashes ( #1049 ), remove redundant parameter
2024-04-02 22:24:06 +02:00
jgromes
78211e7566
[LoRaWAN] Added specific error code for no downlink received
2024-03-27 18:48:16 +01:00
Jan Gromeš
cfc425970c
[LoRaWAN] Resolve warnings, fix bugs for fixed bands ( #1021 )
...
* [LoRaWAN] Resolve warnings
* [LoRaWAN] Fixed bands: improve initial datarate, fix CFList bug
* [LoRaWAN] Improve MAC debug output formatting
* Fix hexdump debug level
* Remove unnecessary error, add new ones to keywords
* [LoRaWAN] Discard useless check
---------
Co-authored-by: StevenCellist <steven@boonstoppel.nu>
2024-03-18 16:39:55 +01:00
StevenCellist
ca2a3073b9
[LoRaWAN] Change and upgrade persistence handling ( #1017 )
...
* [LoRaWAN] Change and upgrade persistence handling
* [BuildOpt] Patch to upstream
* [LoRaWAN] Fix #1018
* [LoRaWAN] Remove outdated parts
* [LoRaWAN] Resolve feedback
Warning: untested - am not at my desk
* [LoRaWAN] Small bugfixes
2024-03-18 08:51:38 +01:00
jgromes
4ee17cc168
Debugging rework
2024-03-10 11:07:23 +01:00
StevenCellist
5766d386af
[LoRaWAN] Improve persistence behaviour, add dwell time error, clear up debug output ( #980 )
...
* [LoRaWAN] Improve examples, add getter for DevAddr
* [ArduinoHAL] Only (over)write new values
* [HAL] Fix comment
* [TypeDef] Introduce error for LoRaWAN dwell time
* [LoRaWAN] Improve persistence behaviour, add dwell time error, clear up debug output
* [LoRaWAN] Prevent incorrect behaviour in restore()
* [LoRaWAN] Improve example comments and persistence
* [LoRaWAN] Fix DeviceTime and LinkCheck, fix FcntUp offset
* [LoRaWAN] Fix example incorrectly processing MAC commands
* [LoRaWAN] Fix downlink port, Fcnt 'underflow', user MAC processing
* [LoRaWAN] Add simple receive methods
* [LoRaWAN] Add co-author
Co-Authored-By: HeadBoffin <60431281+HeadBoffin@users.noreply.github.com>
* [LoRaWAN] Fix example output
* [LoRaWAN] Improve persistence behaviour, bugfix subband
* [LoRaWAN] Prevent useless rejoin during nonpersistent session
* [LoRaWAN] Graciously block an uplink if not joined
---------
Co-authored-by: HeadBoffin <60431281+HeadBoffin@users.noreply.github.com>
2024-02-27 17:29:45 +01:00
jgromes
9f0bdffc50
[LoRaWAN] Use ESP_PLATFORM macro to include esp_attr.h ( #952 )
2024-02-25 18:02:31 +01:00
StevenCellist
0ea00fad44
[LoRaWAN] Improve examples, add getter for DevAddr ( #974 )
2024-02-15 20:36:03 +01:00
Leonard Techel
ea2ccfd6d0
[LoRaWAN] Fix fcntUp wrap-around after 50 transmissions
...
Resolves #950
2024-02-13 19:58:02 +01:00
Olivér Remény
7945ffb996
include esp_attr.h where IRAM_ATTR is used ( #952 )
...
* Update LoRaWAN.cpp
* Update Pager.cpp
2024-02-02 16:57:43 +01:00
jgromes
d208f46f93
[LoRaWAN] Added data rate check debug print
2024-01-28 13:31:08 +01:00
jgromes
a44a3daa1c
[LoRaWAN] Removed unsupported initializer (CI_BUILD_ALL)[
2024-01-27 19:05:44 +01:00
jgromes
070a0bf240
[LoRaWAN] Fixed missing bracket (CI_BUILD_ALL)
2024-01-27 19:00:16 +01:00
jgromes
7c50be3158
[LoRaWAN] Add explicit initialization
2024-01-27 18:57:11 +01:00
jgromes
f35e3282f5
[LoRaWAN] Added ADR data rate check ( #946 )
2024-01-27 18:47:40 +01:00
StevenCellist
b98a5c6b29
[LoRaWAN] Fix Tx power calculation
2024-01-24 08:46:10 +01:00
StevenCellist
51ab103d07
[LoRaWAN] Keep Dev/JoinNonce on OTAA wipe with same credentials
2024-01-23 09:04:25 +01:00
StevenCellist
9008fb00a7
[LoRaWAN] Fix setDatarate function
2024-01-22 14:38:35 +01:00
StevenCellist
ee542c3b56
[LoRaWAN] Fix dynamic-band non-ADR session persistance
2024-01-22 13:34:00 +01:00
StevenCellist
aedf519ea4
[LoRaWAN] Fix rejoining during active session
2024-01-22 12:53:18 +01:00
StevenCellist
4ec10a4749
[LoRaWAN] Fix fixed band CFList processing
2024-01-22 12:32:15 +01:00
StevenCellist
6979bff863
[LoRaWAN] Improve channel masks for fixed bands
2024-01-22 11:40:57 +01:00
StevenCellist
598228fba0
[LoRaWAN] Fix session restore throwing unnecessary error
2024-01-20 11:03:54 +01:00
jgromes
efe303ca69
[LoRaWAN] Properly size fopts buffer
2024-01-14 19:05:52 +01:00
jgromes
8c5ae6d266
[LoRaWAN] Remove variable length array (CI_BUILD_ALL)
2024-01-14 18:25:51 +01:00
jgromes
132aae944f
[LoRaWAN] Fix Module* not needed without persistent storage
2024-01-14 18:25:04 +01:00
jgromes
b2d1306e9e
[LoRaWAN] Simplify variable length arrays (CI_BUILD_ALL)
2024-01-14 16:40:23 +01:00
jgromes
1681eeead3
[LoRaWAN] Fix MAC command initialization
2024-01-14 16:37:01 +01:00
jgromes
be52cd8edd
[LoRaWAN] Fix possible integer overflow
2024-01-14 16:33:17 +01:00
jgromes
e392c7b91f
[LoRaWAN] Fixed duty cycle enable ignored (CI_BUILD_ALL)
2024-01-14 16:31:24 +01:00
StevenCellist
0bba68f3ae
[LoRaWAN] Rework channel logic
2024-01-13 00:05:25 +01:00
StevenCellist
d0979ce853
[LoRaWAN] Fix checksum calculation
2024-01-08 23:36:17 +01:00
StevenCellist
7c676f9393
[LoRaWAN] Implement requested changes
2024-01-08 22:33:34 +01:00
StevenCellist
2da09b5adc
[LoRaWAN] Convert setDatarate() and setTxPower() to internal MAC; improve ADR
2024-01-06 15:03:55 +01:00
StevenCellist
f7730463bd
[LoRaWAN] Fix ADR bug if not enabled
2024-01-05 13:41:00 +01:00
StevenCellist
853c1731ca
[LoRaWAN] Fix warnings
2024-01-05 11:36:01 +01:00
StevenCellist
574555ca09
[LoRaWAN] Revamp internal processing, key checking, new MAC commands, implement DutyCycle & DwellTime
2024-01-05 11:06:24 +01:00