[LoRaMac] Add SendInfo function and GetMaxPayloadLength function for use by the outer layer
This commit is contained in:
parent
28f1a20f48
commit
dc557f6d2c
|
@ -316,6 +316,14 @@ typedef struct sLoRaMacCtx
|
||||||
* Buffer containing the MAC layer commands
|
* Buffer containing the MAC layer commands
|
||||||
*/
|
*/
|
||||||
uint8_t MacCommandsBuffer[LORA_MAC_COMMAND_MAX_LENGTH];
|
uint8_t MacCommandsBuffer[LORA_MAC_COMMAND_MAX_LENGTH];
|
||||||
|
/*!
|
||||||
|
* Time on air accumulation
|
||||||
|
*/
|
||||||
|
uint32_t SumSendTime;
|
||||||
|
/*!
|
||||||
|
* Send count accumulation
|
||||||
|
*/
|
||||||
|
uint32_t SumSendCount;
|
||||||
}LoRaMacCtx_t;
|
}LoRaMacCtx_t;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
@ -4009,6 +4017,9 @@ static LoRaMacStatus_t SendFrameOnChannel( uint8_t channel )
|
||||||
MacCtx.McpsConfirm.TxPower = txPower;
|
MacCtx.McpsConfirm.TxPower = txPower;
|
||||||
MacCtx.McpsConfirm.Channel = channel;
|
MacCtx.McpsConfirm.Channel = channel;
|
||||||
|
|
||||||
|
MacCtx.SumSendCount++;
|
||||||
|
MacCtx.SumSendTime += MacCtx.TxTimeOnAir;
|
||||||
|
|
||||||
// Store the time on air
|
// Store the time on air
|
||||||
MacCtx.McpsConfirm.TxTimeOnAir = MacCtx.TxTimeOnAir;
|
MacCtx.McpsConfirm.TxTimeOnAir = MacCtx.TxTimeOnAir;
|
||||||
MacCtx.MlmeConfirm.TxTimeOnAir = MacCtx.TxTimeOnAir;
|
MacCtx.MlmeConfirm.TxTimeOnAir = MacCtx.TxTimeOnAir;
|
||||||
|
@ -6669,3 +6680,24 @@ LoRaMacStatus_t LoRaMacDeInitialization( void )
|
||||||
return LORAMAC_STATUS_BUSY;
|
return LORAMAC_STATUS_BUSY;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint8_t LoRaMacGetMaxPayloadLength(void)
|
||||||
|
{
|
||||||
|
return GetMaxAppPayloadWithoutFOptsLength(Nvm.MacGroup2.ChannelsDatarateDefault);
|
||||||
|
}
|
||||||
|
|
||||||
|
void LoRaMacSendInfoGet(uint32_t *count, uint32_t *time)
|
||||||
|
{
|
||||||
|
if(count != NULL) {
|
||||||
|
*count = MacCtx.SumSendCount;
|
||||||
|
}
|
||||||
|
if(time != NULL) {
|
||||||
|
*time = MacCtx.SumSendTime;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void LoRaMacSendInfoClear(void)
|
||||||
|
{
|
||||||
|
MacCtx.SumSendCount = 0;
|
||||||
|
MacCtx.SumSendTime = 0;
|
||||||
|
}
|
|
@ -476,6 +476,26 @@ LoRaMacStatus_t LoRaMacDeInitialization( void );
|
||||||
|
|
||||||
LoRaMacStatus_t LoRaMacProcessMicForDatablock( uint8_t *buffer, uint32_t size, uint16_t sessionCnt, uint8_t fragIndex, uint32_t descriptor, uint32_t *mic );
|
LoRaMacStatus_t LoRaMacProcessMicForDatablock( uint8_t *buffer, uint32_t size, uint16_t sessionCnt, uint8_t fragIndex, uint32_t descriptor, uint32_t *mic );
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief LoRaMAC gets the maximum application payload length in the absence of the optional FOpt field
|
||||||
|
*
|
||||||
|
* \retval Max length
|
||||||
|
*/
|
||||||
|
uint8_t LoRaMacGetMaxPayloadLength( void );
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief LoRaMAC get send info
|
||||||
|
*
|
||||||
|
* \param [out] count - Send count accumulation
|
||||||
|
* \param [out] time - Time on air accumulation
|
||||||
|
*/
|
||||||
|
void LoRaMacSendInfoGet(uint32_t *count, uint32_t *time);
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief LoRaMAC send info clear
|
||||||
|
*/
|
||||||
|
void LoRaMacSendInfoClear(void);
|
||||||
|
|
||||||
/*! \} defgroup LORAMAC */
|
/*! \} defgroup LORAMAC */
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
Loading…
Reference in New Issue