Skip to content

Commit e506c24

Browse files
author
Daniel Jäckle
committed
Merge branch 'release/v4.3.2'
2 parents 4f367e2 + 1bb48e5 commit e506c24

File tree

31 files changed

+612
-274
lines changed

31 files changed

+612
-274
lines changed

readme.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,25 @@ not of a bootloader and the radio frequency band to be used.
142142

143143
6. Changelog
144144
-------------
145+
2017-04-19, V4.3.2
146+
* General (Last release based on LoRaWAN specification 1.0.1)
147+
1. This version has passed EU868 and US915 LoRa-Alliance compliance tests.
148+
2. GitHub reported issues corrections.
149+
3. Added an algorithm to automatically compute the Rx windows parameters. (Window symbolTimeout and Offset from downlink expected time)
150+
4. Added a workaround to reset the radio in case a TxTimeout occurs.
151+
5. Modified FSK modem handling to use the provided symbolTimeout (1 symbol equals 1 byte) when in RxSingle mode.
152+
6. Added newly defined TxCw(Tx Continuous Wave) certification protocol command.
153+
7. Added a fix for an overflow issue that could happen with NmeaStringSize variable.
154+
8. Improved GpioMcuInit function to first configure the output pin state before activating the pin.
155+
156+
* LoRaWAN
157+
1. GitHub reported issues corrections.
158+
2. Changed the AdrAckCounter handling as expected by the test houses.
159+
3. Fix an issue where the node stopped transmitting.
160+
4. Removed useless LoRaMacPayload buffer.
161+
5. MAC layer indications handling simplification.
162+
6. Relocate parameter settings from ResetMacParameters to the initialization.
163+
145164
2017-02-27, V4.3.1
146165
* General
147166
1. This version has passed EU868 and US915 LoRa-Alliance compliance tests.

src/apps/LoRaMac/classA/LoRaMote/main.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -606,6 +606,15 @@ static void McpsIndication( McpsIndication_t *mcpsIndication )
606606
mlmeReq.Req.TxCw.Timeout = ( uint16_t )( ( mcpsIndication->Buffer[1] << 8 ) | mcpsIndication->Buffer[2] );
607607
LoRaMacMlmeRequest( &mlmeReq );
608608
}
609+
else if( mcpsIndication->BufferSize == 7 )
610+
{
611+
MlmeReq_t mlmeReq;
612+
mlmeReq.Type = MLME_TXCW_1;
613+
mlmeReq.Req.TxCw.Timeout = ( uint16_t )( ( mcpsIndication->Buffer[1] << 8 ) | mcpsIndication->Buffer[2] );
614+
mlmeReq.Req.TxCw.Frequency = ( uint32_t )( ( mcpsIndication->Buffer[3] << 16 ) | ( mcpsIndication->Buffer[4] << 8 ) | mcpsIndication->Buffer[5] ) * 100;
615+
mlmeReq.Req.TxCw.Power = mcpsIndication->Buffer[6];
616+
LoRaMacMlmeRequest( &mlmeReq );
617+
}
609618
ComplianceTest.State = 1;
610619
}
611620
break;

src/apps/LoRaMac/classA/MoteII/main.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -655,6 +655,15 @@ static void McpsIndication( McpsIndication_t *mcpsIndication )
655655
mlmeReq.Req.TxCw.Timeout = ( uint16_t )( ( mcpsIndication->Buffer[1] << 8 ) | mcpsIndication->Buffer[2] );
656656
LoRaMacMlmeRequest( &mlmeReq );
657657
}
658+
else if( mcpsIndication->BufferSize == 7 )
659+
{
660+
MlmeReq_t mlmeReq;
661+
mlmeReq.Type = MLME_TXCW_1;
662+
mlmeReq.Req.TxCw.Timeout = ( uint16_t )( ( mcpsIndication->Buffer[1] << 8 ) | mcpsIndication->Buffer[2] );
663+
mlmeReq.Req.TxCw.Frequency = ( uint32_t )( ( mcpsIndication->Buffer[3] << 16 ) | ( mcpsIndication->Buffer[4] << 8 ) | mcpsIndication->Buffer[5] ) * 100;
664+
mlmeReq.Req.TxCw.Power = mcpsIndication->Buffer[6];
665+
LoRaMacMlmeRequest( &mlmeReq );
666+
}
658667
ComplianceTest.State = 1;
659668
}
660669
break;

src/apps/LoRaMac/classA/NAMote72/main.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -621,6 +621,15 @@ static void McpsIndication( McpsIndication_t *mcpsIndication )
621621
mlmeReq.Req.TxCw.Timeout = ( uint16_t )( ( mcpsIndication->Buffer[1] << 8 ) | mcpsIndication->Buffer[2] );
622622
LoRaMacMlmeRequest( &mlmeReq );
623623
}
624+
else if( mcpsIndication->BufferSize == 7 )
625+
{
626+
MlmeReq_t mlmeReq;
627+
mlmeReq.Type = MLME_TXCW_1;
628+
mlmeReq.Req.TxCw.Timeout = ( uint16_t )( ( mcpsIndication->Buffer[1] << 8 ) | mcpsIndication->Buffer[2] );
629+
mlmeReq.Req.TxCw.Frequency = ( uint32_t )( ( mcpsIndication->Buffer[3] << 16 ) | ( mcpsIndication->Buffer[4] << 8 ) | mcpsIndication->Buffer[5] ) * 100;
630+
mlmeReq.Req.TxCw.Power = mcpsIndication->Buffer[6];
631+
LoRaMacMlmeRequest( &mlmeReq );
632+
}
624633
ComplianceTest.State = 1;
625634
}
626635
break;

src/apps/LoRaMac/classA/SK-iM880A/main.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -551,6 +551,15 @@ static void McpsIndication( McpsIndication_t *mcpsIndication )
551551
mlmeReq.Req.TxCw.Timeout = ( uint16_t )( ( mcpsIndication->Buffer[1] << 8 ) | mcpsIndication->Buffer[2] );
552552
LoRaMacMlmeRequest( &mlmeReq );
553553
}
554+
else if( mcpsIndication->BufferSize == 7 )
555+
{
556+
MlmeReq_t mlmeReq;
557+
mlmeReq.Type = MLME_TXCW_1;
558+
mlmeReq.Req.TxCw.Timeout = ( uint16_t )( ( mcpsIndication->Buffer[1] << 8 ) | mcpsIndication->Buffer[2] );
559+
mlmeReq.Req.TxCw.Frequency = ( uint32_t )( ( mcpsIndication->Buffer[3] << 16 ) | ( mcpsIndication->Buffer[4] << 8 ) | mcpsIndication->Buffer[5] ) * 100;
560+
mlmeReq.Req.TxCw.Power = mcpsIndication->Buffer[6];
561+
LoRaMacMlmeRequest( &mlmeReq );
562+
}
554563
ComplianceTest.State = 1;
555564
}
556565
break;

src/apps/LoRaMac/classA/SensorNode/main.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -618,6 +618,15 @@ static void McpsIndication( McpsIndication_t *mcpsIndication )
618618
mlmeReq.Req.TxCw.Timeout = ( uint16_t )( ( mcpsIndication->Buffer[1] << 8 ) | mcpsIndication->Buffer[2] );
619619
LoRaMacMlmeRequest( &mlmeReq );
620620
}
621+
else if( mcpsIndication->BufferSize == 7 )
622+
{
623+
MlmeReq_t mlmeReq;
624+
mlmeReq.Type = MLME_TXCW_1;
625+
mlmeReq.Req.TxCw.Timeout = ( uint16_t )( ( mcpsIndication->Buffer[1] << 8 ) | mcpsIndication->Buffer[2] );
626+
mlmeReq.Req.TxCw.Frequency = ( uint32_t )( ( mcpsIndication->Buffer[3] << 16 ) | ( mcpsIndication->Buffer[4] << 8 ) | mcpsIndication->Buffer[5] ) * 100;
627+
mlmeReq.Req.TxCw.Power = mcpsIndication->Buffer[6];
628+
LoRaMacMlmeRequest( &mlmeReq );
629+
}
621630
ComplianceTest.State = 1;
622631
}
623632
break;

src/apps/LoRaMac/classB/LoRaMote/main.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -606,6 +606,15 @@ static void McpsIndication( McpsIndication_t *mcpsIndication )
606606
mlmeReq.Req.TxCw.Timeout = ( uint16_t )( ( mcpsIndication->Buffer[1] << 8 ) | mcpsIndication->Buffer[2] );
607607
LoRaMacMlmeRequest( &mlmeReq );
608608
}
609+
else if( mcpsIndication->BufferSize == 7 )
610+
{
611+
MlmeReq_t mlmeReq;
612+
mlmeReq.Type = MLME_TXCW_1;
613+
mlmeReq.Req.TxCw.Timeout = ( uint16_t )( ( mcpsIndication->Buffer[1] << 8 ) | mcpsIndication->Buffer[2] );
614+
mlmeReq.Req.TxCw.Frequency = ( uint32_t )( ( mcpsIndication->Buffer[3] << 16 ) | ( mcpsIndication->Buffer[4] << 8 ) | mcpsIndication->Buffer[5] ) * 100;
615+
mlmeReq.Req.TxCw.Power = mcpsIndication->Buffer[6];
616+
LoRaMacMlmeRequest( &mlmeReq );
617+
}
609618
ComplianceTest.State = 1;
610619
}
611620
break;

src/apps/LoRaMac/classB/MoteII/main.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -655,6 +655,15 @@ static void McpsIndication( McpsIndication_t *mcpsIndication )
655655
mlmeReq.Req.TxCw.Timeout = ( uint16_t )( ( mcpsIndication->Buffer[1] << 8 ) | mcpsIndication->Buffer[2] );
656656
LoRaMacMlmeRequest( &mlmeReq );
657657
}
658+
else if( mcpsIndication->BufferSize == 7 )
659+
{
660+
MlmeReq_t mlmeReq;
661+
mlmeReq.Type = MLME_TXCW_1;
662+
mlmeReq.Req.TxCw.Timeout = ( uint16_t )( ( mcpsIndication->Buffer[1] << 8 ) | mcpsIndication->Buffer[2] );
663+
mlmeReq.Req.TxCw.Frequency = ( uint32_t )( ( mcpsIndication->Buffer[3] << 16 ) | ( mcpsIndication->Buffer[4] << 8 ) | mcpsIndication->Buffer[5] ) * 100;
664+
mlmeReq.Req.TxCw.Power = mcpsIndication->Buffer[6];
665+
LoRaMacMlmeRequest( &mlmeReq );
666+
}
658667
ComplianceTest.State = 1;
659668
}
660669
break;

src/apps/LoRaMac/classB/NAMote72/main.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -621,6 +621,15 @@ static void McpsIndication( McpsIndication_t *mcpsIndication )
621621
mlmeReq.Req.TxCw.Timeout = ( uint16_t )( ( mcpsIndication->Buffer[1] << 8 ) | mcpsIndication->Buffer[2] );
622622
LoRaMacMlmeRequest( &mlmeReq );
623623
}
624+
else if( mcpsIndication->BufferSize == 7 )
625+
{
626+
MlmeReq_t mlmeReq;
627+
mlmeReq.Type = MLME_TXCW_1;
628+
mlmeReq.Req.TxCw.Timeout = ( uint16_t )( ( mcpsIndication->Buffer[1] << 8 ) | mcpsIndication->Buffer[2] );
629+
mlmeReq.Req.TxCw.Frequency = ( uint32_t )( ( mcpsIndication->Buffer[3] << 16 ) | ( mcpsIndication->Buffer[4] << 8 ) | mcpsIndication->Buffer[5] ) * 100;
630+
mlmeReq.Req.TxCw.Power = mcpsIndication->Buffer[6];
631+
LoRaMacMlmeRequest( &mlmeReq );
632+
}
624633
ComplianceTest.State = 1;
625634
}
626635
break;

src/apps/LoRaMac/classB/SK-iM880A/main.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -551,6 +551,15 @@ static void McpsIndication( McpsIndication_t *mcpsIndication )
551551
mlmeReq.Req.TxCw.Timeout = ( uint16_t )( ( mcpsIndication->Buffer[1] << 8 ) | mcpsIndication->Buffer[2] );
552552
LoRaMacMlmeRequest( &mlmeReq );
553553
}
554+
else if( mcpsIndication->BufferSize == 7 )
555+
{
556+
MlmeReq_t mlmeReq;
557+
mlmeReq.Type = MLME_TXCW_1;
558+
mlmeReq.Req.TxCw.Timeout = ( uint16_t )( ( mcpsIndication->Buffer[1] << 8 ) | mcpsIndication->Buffer[2] );
559+
mlmeReq.Req.TxCw.Frequency = ( uint32_t )( ( mcpsIndication->Buffer[3] << 16 ) | ( mcpsIndication->Buffer[4] << 8 ) | mcpsIndication->Buffer[5] ) * 100;
560+
mlmeReq.Req.TxCw.Power = mcpsIndication->Buffer[6];
561+
LoRaMacMlmeRequest( &mlmeReq );
562+
}
554563
ComplianceTest.State = 1;
555564
}
556565
break;

0 commit comments

Comments
 (0)