This commit is contained in:
Maxime JOURDAN 2025-03-03 02:35:11 +01:00 committed by GitHub
commit ac3b612121
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 24 additions and 6 deletions

View File

@ -595,8 +595,10 @@ TimerTime_t LmHandlerGetDutyCycleWaitTime( void )
return DutyCycleWaitTime;
}
void LmHandlerJoin( ActivationType_t mode, bool forceRejoin )
LmHandlerErrorStatus_t LmHandlerJoin( ActivationType_t mode, bool forceRejoin )
{
LmHandlerErrorStatus_t lmhStatus = LORAMAC_HANDLER_ERROR;
LoRaMacStatus_t status;
MlmeReq_t mlmeReq;
mlmeReq.Type = MLME_JOIN;
@ -611,7 +613,12 @@ void LmHandlerJoin( ActivationType_t mode, bool forceRejoin )
LoRaMacStart();
#if (defined( LORAMAC_VERSION ) && ( LORAMAC_VERSION == 0x01000300 ))
/* Starts the OTAA join procedure */
LoRaMacMlmeRequest( &mlmeReq );
status = LoRaMacMlmeRequest( &mlmeReq );
if( status == LORAMAC_STATUS_OK )
{
lmhStatus = LORAMAC_STATUS_OK;
}
#endif /* LORAMAC_VERSION */
}
else
@ -661,7 +668,7 @@ void LmHandlerJoin( ActivationType_t mode, bool forceRejoin )
{
LmHandlerCallbacks->OnJoinRequest( &JoinParams );
}
LmHandlerRequestClass( LmHandlerParams.DefaultClass );
lmhStatus = LmHandlerRequestClass( LmHandlerParams.DefaultClass );
#endif /* LORAMAC_VERSION */
}
@ -669,10 +676,17 @@ void LmHandlerJoin( ActivationType_t mode, bool forceRejoin )
if( ( CtxRestoreDone == false ) || ( forceRejoin == true ) )
{
/* Starts the join procedure */
LoRaMacMlmeRequest( &mlmeReq );
status = LoRaMacMlmeRequest( &mlmeReq );
if( status == LORAMAC_STATUS_OK )
{
lmhStatus = LORAMAC_STATUS_OK;
}
}
DutyCycleWaitTime = mlmeReq.ReqReturn.DutyCycleWaitTime;
#endif /* LORAMAC_VERSION */
return lmhStatus;
}
LmHandlerFlagStatus_t LmHandlerJoinStatus( void )

View File

@ -363,8 +363,12 @@ TimerTime_t LmHandlerGetDutyCycleWaitTime( void );
*
* \param [in] mode Activation mode (OTAA or ABP)
* \param [in] forceRejoin Flag to force the rejoin even if LoRaWAN context can be restored
*
* \retval status Returns \ref LORAMAC_HANDLER_SUCCESS if request has been
* processed else if device not yet joined a network \ref LORAMAC_HANDLER_NO_NETWORK_JOINED
* else \ref LORAMAC_HANDLER_ERROR
*/
void LmHandlerJoin( ActivationType_t mode, bool forceRejoin );
LmHandlerErrorStatus_t LmHandlerJoin( ActivationType_t mode, bool forceRejoin );
/*!
* Check whether the Device is joined to the network
@ -394,7 +398,7 @@ LmHandlerErrorStatus_t LmHandlerPingSlotReq( uint8_t periodicity );
*
* \retval status Returns \ref LORAMAC_HANDLER_SUCCESS if request has been
* processed else if device not yet joined a network \ref LORAMAC_HANDLER_NO_NETWORK_JOINED
else \ref LORAMAC_HANDLER_ERROR
* else \ref LORAMAC_HANDLER_ERROR
*/
LmHandlerErrorStatus_t LmHandlerRequestClass( DeviceClass_t newClass );