Skip to content

Commit 0128fc8

Browse files
committed
Refactored ProcessRadioRxError, ProcessRadioRxTimeout.
Created a new function HandleRadioRxErrorTimeout.
1 parent bc311f2 commit 0128fc8

File tree

1 file changed

+11
-72
lines changed

1 file changed

+11
-72
lines changed

src/mac/LoRaMac.c

Lines changed: 11 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -1203,7 +1203,7 @@ static void ProcessRadioTxTimeout( void )
12031203
MacCtx.MacFlags.Bits.MacDone = 1;
12041204
}
12051205

1206-
static void ProcessRadioRxError( void )
1206+
static void HandleRadioRxErrorTimeout( LoRaMacEventInfoStatus_t rx1EventInfoStatus, LoRaMacEventInfoStatus_t rx2EventInfoStatus )
12071207
{
12081208
bool classBRx = false;
12091209

@@ -1240,9 +1240,9 @@ static void ProcessRadioRxError( void )
12401240
{
12411241
if( MacCtx.NvmCtx->NodeAckRequested == true )
12421242
{
1243-
MacCtx.McpsConfirm.Status = LORAMAC_EVENT_INFO_STATUS_RX1_ERROR;
1243+
MacCtx.McpsConfirm.Status = rx1EventInfoStatus;
12441244
}
1245-
LoRaMacConfirmQueueSetStatusCmn( LORAMAC_EVENT_INFO_STATUS_RX1_ERROR );
1245+
LoRaMacConfirmQueueSetStatusCmn( rx1EventInfoStatus );
12461246

12471247
if( MacCtx.NvmCtx->DeviceClass != CLASS_C )
12481248
{
@@ -1257,9 +1257,9 @@ static void ProcessRadioRxError( void )
12571257
{
12581258
if( MacCtx.NvmCtx->NodeAckRequested == true )
12591259
{
1260-
MacCtx.McpsConfirm.Status = LORAMAC_EVENT_INFO_STATUS_RX2_ERROR;
1260+
MacCtx.McpsConfirm.Status = rx2EventInfoStatus;
12611261
}
1262-
LoRaMacConfirmQueueSetStatusCmn( LORAMAC_EVENT_INFO_STATUS_RX2_ERROR );
1262+
LoRaMacConfirmQueueSetStatusCmn( rx2EventInfoStatus );
12631263

12641264
if( MacCtx.NvmCtx->DeviceClass != CLASS_C )
12651265
{
@@ -1274,75 +1274,14 @@ static void ProcessRadioRxError( void )
12741274
}
12751275
}
12761276

1277-
static void ProcessRadioRxTimeout( void )
1277+
static void ProcessRadioRxError( void )
12781278
{
1279-
bool classBRx = false;
1280-
1281-
if( MacCtx.NvmCtx->DeviceClass != CLASS_C )
1282-
{
1283-
Radio.Sleep( );
1284-
}
1285-
1286-
if( LoRaMacClassBIsBeaconExpected( ) == true )
1287-
{
1288-
LoRaMacClassBSetBeaconState( BEACON_STATE_TIMEOUT );
1289-
LoRaMacClassBBeaconTimerEvent( );
1290-
classBRx = true;
1291-
}
1292-
if( MacCtx.NvmCtx->DeviceClass == CLASS_B )
1293-
{
1294-
if( LoRaMacClassBIsPingExpected( ) == true )
1295-
{
1296-
LoRaMacClassBSetPingSlotState( PINGSLOT_STATE_CALC_PING_OFFSET );
1297-
LoRaMacClassBPingSlotTimerEvent( );
1298-
classBRx = true;
1299-
}
1300-
if( LoRaMacClassBIsMulticastExpected( ) == true )
1301-
{
1302-
LoRaMacClassBSetMulticastSlotState( PINGSLOT_STATE_CALC_PING_OFFSET );
1303-
LoRaMacClassBMulticastSlotTimerEvent( );
1304-
classBRx = true;
1305-
}
1306-
}
1307-
1308-
if( classBRx == false )
1309-
{
1310-
if( MacCtx.RxSlot == RX_SLOT_WIN_1 )
1311-
{
1312-
if( MacCtx.NvmCtx->NodeAckRequested == true )
1313-
{
1314-
MacCtx.McpsConfirm.Status = LORAMAC_EVENT_INFO_STATUS_RX1_TIMEOUT;
1315-
}
1316-
LoRaMacConfirmQueueSetStatusCmn( LORAMAC_EVENT_INFO_STATUS_RX1_TIMEOUT );
1317-
1318-
if( MacCtx.NvmCtx->DeviceClass != CLASS_C )
1319-
{
1320-
if( TimerGetElapsedTime( MacCtx.AggregatedLastTxDoneTime ) >= MacCtx.RxWindow2Delay )
1321-
{
1322-
TimerStop( &MacCtx.RxWindowTimer2 );
1323-
MacCtx.MacFlags.Bits.MacDone = 1;
1324-
}
1325-
}
1326-
}
1327-
else
1328-
{
1329-
if( MacCtx.NvmCtx->NodeAckRequested == true )
1330-
{
1331-
MacCtx.McpsConfirm.Status = LORAMAC_EVENT_INFO_STATUS_RX2_TIMEOUT;
1332-
}
1333-
LoRaMacConfirmQueueSetStatusCmn( LORAMAC_EVENT_INFO_STATUS_RX2_TIMEOUT );
1334-
1335-
if( MacCtx.NvmCtx->DeviceClass != CLASS_C )
1336-
{
1337-
MacCtx.MacFlags.Bits.MacDone = 1;
1338-
}
1339-
}
1340-
}
1279+
HandleRadioRxErrorTimeout( LORAMAC_EVENT_INFO_STATUS_RX1_ERROR, LORAMAC_EVENT_INFO_STATUS_RX2_ERROR );
1280+
}
13411281

1342-
if( MacCtx.NvmCtx->DeviceClass == CLASS_C )
1343-
{
1344-
OpenContinuousRx2Window( );
1345-
}
1282+
static void ProcessRadioRxTimeout( void )
1283+
{
1284+
HandleRadioRxErrorTimeout( LORAMAC_EVENT_INFO_STATUS_RX1_TIMEOUT, LORAMAC_EVENT_INFO_STATUS_RX2_TIMEOUT );
13461285
}
13471286

13481287
static void LoRaMacHandleIrqEvents( void )

0 commit comments

Comments
 (0)