Wykres commitów

108 Commity (841b283c0f48f5218a28fdefcbd64e41cf00d25b)

Autor SHA1 Wiadomość Data
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
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
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
StevenCellist 0bba68f3ae [LoRaWAN] Rework channel logic 2024-01-13 00:05:25 +01:00
StevenCellist 574555ca09 [LoRaWAN] Revamp internal processing, key checking, new MAC commands, implement DutyCycle & DwellTime 2024-01-05 11:06:24 +01:00
StevenCellist 82258105b7
[LoRaWAN] Rework bands, official Rx windows, support ADR, confirm frames, improve EEPROM handling, support clock drift (#867)
* [LoRaWAN] rework bands, add ADR, partial MAC support

Known problem: terribly bad at receiving downlinks
Mask-list bands (e.g. US915) untested, likely a few bugs

* [LoRaWAN] Change Rx windows from CAD to RxSingle

* [LoRaWAN] improve persistence, better Rx windows, wear leveling, confirmed frames

* [LoRaWAN] Module-independent (OTAA) Rx windows, fix confirming downlinks

* [LoRaWAN] Implement SX127x support, fix MAC uplinking, support clock drift

* [ArduinoHal] fix clock drift calculation

* [LoRaWAN] Improve band & ADR logic, allow setting ADR, DR, subband, update examples

* [LoRaWAN] Fix EU868 coding rate, improve example

* [LoRaWAN] fix unused channel index

* [LoRaWAN] fix merge issue (deleted line)

* [LoRaWAN] fix CSMA calling now incorrect function

* [LoRaWAN] fix include logic

* [LoRaWAN] fix warnings, remove duplicate function

* [LoRaWAN] improve examples, add unified sendReceive, bugfixes, add FSK

* [LoRaWAN] improve examples

* [LoRaWAN] add new keywords, add debug guard

* [SX127x] Updated startReceive interface to be more in line with SX126x

* [SX127x] Added public method to convert from bytes to symbols

* [LoRaWAN] Update start receive for SX127x

* Added note about LoRaWAN beta

* [SX127x] Fixed potential float overflow

---------

Co-authored-by: jgromes <jan.gromes@gmail.com>
2023-11-12 14:02:39 +01:00
StevenCellist 556f37f608
[LoRaWAN] Implement full session persistence & more v1.1 specification (#835)
* Implement session persistence & more 1.1 protocol

* [LoRaW] Improve session persistence, check frame counters & Nonces, multiple MAC commands

* [LoRaWAN] fix popping MAC command from queue

I just realized that the method popMacCommand did not correctly remove items from the queue - this should solve the problem

* [LoRaWAN] implement improvements from #835

* [LoRaWAN] String --> uint8_t[]

* [LoRaWAN] Fix typo
2023-10-23 17:50:16 +02:00
jgromes 16f0ba7cce [LoRaWAN] Implemented MAC command support 2023-08-23 19:22:23 +02:00
jgromes 1ed22717d7 [LoRaWAN] Added check to not uplink in Rx slots 2023-08-12 21:48:31 +02:00
jgromes 2f36d5901e [LoRaWAN] Added LoRaWAN-specific status codes 2023-08-12 18:37:46 +02:00
jgromes 8fd0a67a78 Typo fixes 2023-07-15 19:13:16 +02:00
Hendrik Langer 79725481cf fix error description 2023-06-16 15:58:59 +02:00
Hendrik Langer 69bc96ac08 Pager: allow manual override of function bits 2023-06-16 15:53:47 +02:00
jgromes 9b9a34bd2c Fixed build options include order 2023-03-20 19:13:38 +01:00
jgromes b9b3171001 Added user build opt 2023-03-17 23:01:24 +01:00
jgromes 02306bda91 Added further explanation of the -707 error code (#691) 2023-03-05 19:29:06 +01:00
jgromes 5ca2c8533c [PHY] Added standby types abstraction 2023-01-14 23:13:27 +01:00
Federico Maggi 05217c095b
- Defined new RADIOLIB_ERR_NULL_POINTER
- all `begin()` now use macros for init values
- addressed other styling comments as per PR#612 review

Signed-off-by: Federico Maggi <federico.maggi@gmail.com>
2022-11-21 09:09:56 +01:00
jgromes 1f75ee0cc1 [Pager] Implemented POCSAG (#7) 2022-10-01 14:56:37 +02:00
OBones fd3b165bf0 Introduce setRSSIThreshold on RF69 modules 2022-08-23 17:41:37 +02:00
jgromes 30cb7c8dd4 [APRS] Added Mic-E (#430) 2022-08-20 18:14:13 +02:00
obones e421ab4272 Introduce setDIOMapping on the PhysicalLayer class which, by default, returns "not implemented" 2022-07-07 15:36:25 +02:00
jgromes df466486aa [APRS] Added APRS support 2021-11-28 22:56:36 +01:00
jgromes 9d5a66573e Indentation fix CI_BUILD_ALL 2021-11-14 14:03:32 +01:00
jgromes 70d86f7eb6 Updated macro names 2021-11-14 11:36:06 +01:00
jgromes 81e8de8324 Drop references to I2C CI_BUILD_ALL 2021-10-28 00:15:02 +02:00
Christophe Painchaud 7b6f1d075a added RF69::setOokThresholdType 2021-03-24 18:05:32 +01:00
jgromes 1903cfa898 Updated ifndef 2021-03-13 19:06:04 +01:00
jgromes c127712c5e [SX127x] Added check for LoRa header CRC mismatch (#200) 2020-11-19 17:07:32 +01:00
jgromes cb191e7973 Added encoding and data shaping aliases 2020-07-06 08:51:24 +02:00
jgromes 1592831e0c [SX128x] Implemented ranging 2020-04-12 13:47:56 +02:00
jgromes 7007cd873a Extracted build options into a new file 2020-03-29 10:02:23 +02:00
jgromes 512567b9f3 Fixed typos 2020-03-27 21:03:23 +01:00
jgromes 39c259848c Added support for Nano 33 BLE 2020-03-27 14:10:45 +01:00
jgromes b05c264363 Fixed typo in version macro 2020-03-23 20:23:37 +01:00
jgromes 009b8a5373 Bump version to 3.4.0 2020-03-13 21:22:41 +01:00
jgromes 1a721715ea Bump version to 3.3.1 2020-02-24 16:41:21 +01:00
jgromes ec9f1a835f Bump version to 3.3.0 2020-02-14 08:39:25 +01:00
jgromes ddb478afff [AX25] Added AX.25 support 2020-02-14 08:08:59 +01:00
jgromes b382a280a2 Advanced version to 3.2.3 2020-02-06 14:07:00 +01:00
jgromes 74f78ae2a2 Advanced version to 3.2.2 2020-02-02 11:30:04 +01:00
jgromes 7b10bd4e0f Advanced version to 3.2.1 2020-01-28 17:18:02 +01:00
jgromes 030fa1001e Advanced version to 3.2.0 2020-01-28 12:11:19 +01:00
jgromes 15532bada1 Advanced version to 3.1.2 2020-01-21 17:48:18 +01:00
jgromes 1e2c5c10e1 Advanced version to 3.1.1 2020-01-19 14:11:34 +01:00
jgromes c40f382ed6 Advanced version to 3.1.0 2020-01-13 17:06:00 +01:00
jgromes 2332f2e327 Added assert macro 2020-01-13 16:36:21 +01:00
jgromes 814949d183 Fixed incorrect NC macro check 2020-01-06 17:40:13 +01:00