Skip to content

Commit 530cf6e

Browse files
Parse DevAddr properly as MSB first in the LoRaWAN class
1 parent f4b2aec commit 530cf6e

File tree

3 files changed

+8
-2
lines changed

3 files changed

+8
-2
lines changed

libraries/LoRaWAN/src/LoRaWAN.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -668,15 +668,18 @@ int LoRaWANClass::joinABP()
668668
int LoRaWANClass::joinABP(const char *devAddr, const char *nwkSKey, const char *appSKey)
669669
{
670670
LoRaWANCommissioning commissioning;
671+
uint8_t DevAddr[4];
671672

672673
if (!_Band) {
673674
return 0;
674675
}
675676

676-
if (!ConvertString((uint8_t*)&commissioning.DevAddr, 4, devAddr)) {
677+
if (!ConvertString((uint8_t*)&DevAddr, 4, devAddr)) {
677678
return 0;
678679
}
679680

681+
commissioning.DevAddr = (DevAddr[0] << 24) | (DevAddr[1] << 16) | (DevAddr[2] << 8) | (DevAddr[3] << 0);
682+
680683
if (!ConvertString(commissioning.NwkSKey, 16, nwkSKey)) {
681684
return 0;
682685
}
@@ -1122,15 +1125,18 @@ int LoRaWANClass::setDevEui(const char *devEui)
11221125
int LoRaWANClass::setDevAddr(const char *devAddr)
11231126
{
11241127
LoRaWANCommissioning commissioning;
1128+
uint8_t DevAddr[4];
11251129

11261130
_loadCommissioning(&commissioning);
11271131

11281132
memset((uint8_t*)&commissioning.DevAddr, 0, 4);
11291133

11301134
if (devAddr != NULL) {
1131-
if (!ConvertString((uint8_t*)&commissioning.DevAddr, 4, devAddr)) {
1135+
if (!ConvertString((uint8_t*)&DevAddr, 4, devAddr)) {
11321136
return 0;
11331137
}
1138+
1139+
commissioning.DevAddr = (DevAddr[0] << 24) | (DevAddr[1] << 16) | (DevAddr[2] << 8) | (DevAddr[3] << 0);
11341140
}
11351141

11361142
return _storeCommissioning(&commissioning);

system/STM32L0xx/Lib/libstm32l072xx.a

0 Bytes
Binary file not shown.

system/STM32L0xx/Lib/libstm32l082xx.a

0 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)