OpenThread  1.05.03.02
Functions
Radio Operation

This module includes the platform abstraction for radio operations. More...

+ Collaboration diagram for Radio Operation:

Functions

void otPlatDiagRadioReceiveDone (otInstance *aInstance, otRadioFrame *aFrame, otError aError)
 
void otPlatDiagRadioTransmitDone (otInstance *aInstance, otRadioFrame *aFrame, otError aError)
 
otError otPlatRadioAddSrcMatchExtEntry (otInstance *aInstance, const otExtAddress *aExtAddress)
 
otError otPlatRadioAddSrcMatchShortEntry (otInstance *aInstance, otShortAddress aShortAddress)
 
void otPlatRadioClearSrcMatchExtEntries (otInstance *aInstance)
 
otError otPlatRadioClearSrcMatchExtEntry (otInstance *aInstance, const otExtAddress *aExtAddress)
 
void otPlatRadioClearSrcMatchShortEntries (otInstance *aInstance)
 
otError otPlatRadioClearSrcMatchShortEntry (otInstance *aInstance, otShortAddress aShortAddress)
 
otError otPlatRadioConfigureEnhAckProbing (otInstance *aInstance, otLinkMetrics aLinkMetrics, otShortAddress aShortAddress, const otExtAddress *aExtAddress)
 
otError otPlatRadioDisable (otInstance *aInstance)
 
otError otPlatRadioEnable (otInstance *aInstance)
 
otError otPlatRadioEnableCsl (otInstance *aInstance, uint32_t aCslPeriod, otShortAddress aShortAddr, const otExtAddress *aExtAddr)
 
void otPlatRadioEnableSrcMatch (otInstance *aInstance, bool aEnable)
 
otError otPlatRadioEnergyScan (otInstance *aInstance, uint8_t aScanChannel, uint16_t aScanDuration)
 
void otPlatRadioEnergyScanDone (otInstance *aInstance, int8_t aEnergyScanMaxRssi)
 
otError otPlatRadioGetCoexMetrics (otInstance *aInstance, otRadioCoexMetrics *aCoexMetrics)
 
uint8_t otPlatRadioGetCslAccuracy (otInstance *aInstance)
 
uint8_t otPlatRadioGetCslUncertainty (otInstance *aInstance)
 
uint32_t otPlatRadioGetPreferredChannelMask (otInstance *aInstance)
 
otError otPlatRadioGetRegion (otInstance *aInstance, uint16_t *aRegionCode)
 
int8_t otPlatRadioGetRssi (otInstance *aInstance)
 
otRadioState otPlatRadioGetState (otInstance *aInstance)
 
uint32_t otPlatRadioGetSupportedChannelMask (otInstance *aInstance)
 
otRadioFrameotPlatRadioGetTransmitBuffer (otInstance *aInstance)
 
bool otPlatRadioIsCoexEnabled (otInstance *aInstance)
 
bool otPlatRadioIsEnabled (otInstance *aInstance)
 
otError otPlatRadioReceive (otInstance *aInstance, uint8_t aChannel)
 
otError otPlatRadioReceiveAt (otInstance *aInstance, uint8_t aChannel, uint32_t aStart, uint32_t aDuration)
 
void otPlatRadioReceiveDone (otInstance *aInstance, otRadioFrame *aFrame, otError aError)
 
otError otPlatRadioSetChannelMaxTransmitPower (otInstance *aInstance, uint8_t aChannel, int8_t aMaxPower)
 
otError otPlatRadioSetCoexEnabled (otInstance *aInstance, bool aEnabled)
 
otError otPlatRadioSetRegion (otInstance *aInstance, uint16_t aRegionCode)
 
otError otPlatRadioSleep (otInstance *aInstance)
 
otError otPlatRadioTransmit (otInstance *aInstance, otRadioFrame *aFrame)
 
void otPlatRadioTxDone (otInstance *aInstance, otRadioFrame *aFrame, otRadioFrame *aAckFrame, otError aError)
 
void otPlatRadioTxStarted (otInstance *aInstance, otRadioFrame *aFrame)
 
void otPlatRadioUpdateCslSampleTime (otInstance *aInstance, uint32_t aCslSampleTime)
 

Detailed Description

This module includes the platform abstraction for radio operations.

Function Documentation

§ otPlatRadioGetState()

otRadioState otPlatRadioGetState ( otInstance aInstance)

Get current state of the radio.

This function is not required by OpenThread. It may be used for debugging and/or application-specific purposes.

Note
This function may be not implemented. It does not affect OpenThread.
Parameters
[in]aInstanceThe OpenThread instance structure.
Returns
Current state of the radio.

References RadioSpinel< InterfaceType, ProcessContextType >::GetState(), OT_RADIO_STATE_INVALID, and OT_UNUSED_VARIABLE.

Referenced by Radio::GetPreferredChannelMask().

§ otPlatRadioEnable()

otError otPlatRadioEnable ( otInstance aInstance)

Enable the radio.

Parameters
[in]aInstanceThe OpenThread instance structure.
Return values
OT_ERROR_NONESuccessfully enabled.
OT_ERROR_FAILEDThe radio could not be enabled.

References RadioSpinel< InterfaceType, ProcessContextType >::Enable().

Referenced by Radio::GetPreferredChannelMask().

§ otPlatRadioDisable()

otError otPlatRadioDisable ( otInstance aInstance)

Disable the radio.

Parameters
[in]aInstanceThe OpenThread instance structure.
Return values
OT_ERROR_NONESuccessfully transitioned to Disabled.
OT_ERROR_INVALID_STATEThe radio was not in sleep state.

References RadioSpinel< InterfaceType, ProcessContextType >::Disable(), and OT_UNUSED_VARIABLE.

Referenced by Radio::GetPreferredChannelMask().

§ otPlatRadioIsEnabled()

bool otPlatRadioIsEnabled ( otInstance aInstance)

Check whether radio is enabled or not.

Parameters
[in]aInstanceThe OpenThread instance structure.
Returns
TRUE if the radio is enabled, FALSE otherwise.

References RadioSpinel< InterfaceType, ProcessContextType >::IsEnabled(), and OT_UNUSED_VARIABLE.

Referenced by Radio::GetPreferredChannelMask().

§ otPlatRadioSleep()

otError otPlatRadioSleep ( otInstance aInstance)

Transition the radio from Receive to Sleep (turn off the radio).

Parameters
[in]aInstanceThe OpenThread instance structure.
Return values
OT_ERROR_NONESuccessfully transitioned to Sleep.
OT_ERROR_BUSYThe radio was transmitting.
OT_ERROR_INVALID_STATEThe radio was disabled.

References OT_UNUSED_VARIABLE, and RadioSpinel< InterfaceType, ProcessContextType >::Sleep().

Referenced by Radio::GetPreferredChannelMask().

§ otPlatRadioReceive()

otError otPlatRadioReceive ( otInstance aInstance,
uint8_t  aChannel 
)

Transition the radio from Sleep to Receive (turn on the radio).

Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aChannelThe channel to use for receiving.
Return values
OT_ERROR_NONESuccessfully transitioned to Receive.
OT_ERROR_INVALID_STATEThe radio was disabled or transmitting.

References OT_UNUSED_VARIABLE, RadioSpinel< InterfaceType, ProcessContextType >::Receive(), and SuccessOrExit.

Referenced by Radio::GetPreferredChannelMask().

§ otPlatRadioReceiveAt()

otError otPlatRadioReceiveAt ( otInstance aInstance,
uint8_t  aChannel,
uint32_t  aStart,
uint32_t  aDuration 
)

Schedule a radio reception window at a specific time and duration.

Parameters
[in]aChannelThe radio channel on which to receive.
[in]aStartThe receive window start time, in microseconds.
[in]aDurationThe receive window duration, in microseconds
Return values
OT_ERROR_NONESuccessfully scheduled receive window.
OT_ERROR_FAILEDThe receive window could not be scheduled.

References ot::kErrorNotImplemented, OT_ERROR_NOT_IMPLEMENTED, and OT_UNUSED_VARIABLE.

Referenced by Radio::GetPreferredChannelMask().

§ otPlatRadioReceiveDone()

void otPlatRadioReceiveDone ( otInstance aInstance,
otRadioFrame aFrame,
otError  aError 
)

The radio driver calls this method to notify OpenThread of a received frame.

Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aFrameA pointer to the received frame or NULL if the receive operation failed.
[in]aErrorOT_ERROR_NONE when successfully received a frame, OT_ERROR_ABORT when reception was aborted and a frame was not received, OT_ERROR_NO_BUFS when a frame could not be received due to lack of rx buffer space.

Referenced by RadioSpinel< InterfaceType, ProcessContextType >::RadioReceive().

§ otPlatDiagRadioReceiveDone()

void otPlatDiagRadioReceiveDone ( otInstance aInstance,
otRadioFrame aFrame,
otError  aError 
)

The radio driver calls this method to notify OpenThread diagnostics module of a received frame.

This function is used when diagnostics is enabled.

Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aFrameA pointer to the received frame or NULL if the receive operation failed.
[in]aErrorOT_ERROR_NONE when successfully received a frame, OT_ERROR_ABORT when reception was aborted and a frame was not received, OT_ERROR_NO_BUFS when a frame could not be received due to lack of rx buffer space.

Referenced by otPlatRadioEnergyScanDone(), and RadioSpinel< InterfaceType, ProcessContextType >::RadioReceive().

§ otPlatRadioGetTransmitBuffer()

otRadioFrame* otPlatRadioGetTransmitBuffer ( otInstance aInstance)

Get the radio transmit frame buffer.

OpenThread forms the IEEE 802.15.4 frame in this buffer then calls otPlatRadioTransmit() to request transmission.

Parameters
[in]aInstanceThe OpenThread instance structure.
Returns
A pointer to the transmit frame buffer.

References RadioSpinel< InterfaceType, ProcessContextType >::GetTransmitFrame(), and OT_UNUSED_VARIABLE.

Referenced by Radio::GetPreferredChannelMask(), and Radio::GetTransmitBuffer().

§ otPlatRadioTransmit()

otError otPlatRadioTransmit ( otInstance aInstance,
otRadioFrame aFrame 
)

Begin the transmit sequence on the radio.

The caller must form the IEEE 802.15.4 frame in the buffer provided by otPlatRadioGetTransmitBuffer() before requesting transmission. The channel and transmit power are also included in the otRadioFrame structure.

The transmit sequence consists of:

  1. Transitioning the radio to Transmit from one of the following states:
    • Receive if RX is on when the device is idle or OT_RADIO_CAPS_SLEEP_TO_TX is not supported
    • Sleep if RX is off when the device is idle and OT_RADIO_CAPS_SLEEP_TO_TX is supported.
  2. Transmits the psdu on the given channel and at the given transmit power.
Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aFrameA pointer to the frame to be transmitted.
Return values
OT_ERROR_NONESuccessfully transitioned to Transmit.
OT_ERROR_INVALID_STATEThe radio was not in the Receive state.

References OT_UNUSED_VARIABLE, and RadioSpinel< InterfaceType, ProcessContextType >::Transmit().

§ otPlatRadioTxStarted()

void otPlatRadioTxStarted ( otInstance aInstance,
otRadioFrame aFrame 
)

The radio driver calls this method to notify OpenThread that the transmission has started.

Note
This function should be called by the same thread that executes all of the other OpenThread code. It should not be called by ISR or any other task.
Parameters
[in]aInstanceA pointer to the OpenThread instance structure.
[in]aFrameA pointer to the frame that is being transmitted.

Referenced by RadioSpinel< InterfaceType, ProcessContextType >::Transmit().

§ otPlatRadioTxDone()

void otPlatRadioTxDone ( otInstance aInstance,
otRadioFrame aFrame,
otRadioFrame aAckFrame,
otError  aError 
)

The radio driver calls this function to notify OpenThread that the transmit operation has completed, providing both the transmitted frame and, if applicable, the received ack frame.

When radio provides OT_RADIO_CAPS_TRANSMIT_SEC capability, radio platform layer updates aFrame with the security frame counter and key index values maintained by the radio.

Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aFrameA pointer to the frame that was transmitted.
[in]aAckFrameA pointer to the ACK frame, NULL if no ACK was received.
[in]aErrorOT_ERROR_NONE when the frame was transmitted, OT_ERROR_NO_ACK when the frame was transmitted but no ACK was received, OT_ERROR_CHANNEL_ACCESS_FAILURE tx could not take place due to activity on the channel, OT_ERROR_ABORT when transmission was aborted for other reasons.

Referenced by RadioSpinel< InterfaceType, ProcessContextType >::TransmitDone().

§ otPlatDiagRadioTransmitDone()

void otPlatDiagRadioTransmitDone ( otInstance aInstance,
otRadioFrame aFrame,
otError  aError 
)

The radio driver calls this method to notify OpenThread diagnostics module that the transmission has completed.

This function is used when diagnostics is enabled.

Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aFrameA pointer to the frame that was transmitted.
[in]aErrorOT_ERROR_NONE when the frame was transmitted, OT_ERROR_CHANNEL_ACCESS_FAILURE tx could not take place due to activity on the channel, OT_ERROR_ABORT when transmission was aborted for other reasons.

Referenced by otPlatRadioEnergyScanDone(), and RadioSpinel< InterfaceType, ProcessContextType >::TransmitDone().

§ otPlatRadioGetRssi()

int8_t otPlatRadioGetRssi ( otInstance aInstance)

Get the most recent RSSI measurement.

Parameters
[in]aInstanceThe OpenThread instance structure.
Returns
The RSSI in dBm when it is valid. 127 when RSSI is invalid.

References RadioSpinel< InterfaceType, ProcessContextType >::GetRssi(), and OT_UNUSED_VARIABLE.

Referenced by Radio::GetPreferredChannelMask(), and NcpBase::HandlePropertyGet().

§ otPlatRadioEnergyScan()

otError otPlatRadioEnergyScan ( otInstance aInstance,
uint8_t  aScanChannel,
uint16_t  aScanDuration 
)

Begin the energy scan sequence on the radio.

This function is used when radio provides OT_RADIO_CAPS_ENERGY_SCAN capability.

Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aScanChannelThe channel to perform the energy scan on.
[in]aScanDurationThe duration, in milliseconds, for the channel to be scanned.
Return values
OT_ERROR_NONESuccessfully started scanning the channel.
OT_ERROR_BUSYThe radio is performing enery scanning.
OT_ERROR_NOT_IMPLEMENTEDThe radio doesn't support energy scanning.

References RadioSpinel< InterfaceType, ProcessContextType >::EnergyScan(), and OT_UNUSED_VARIABLE.

Referenced by Radio::GetPreferredChannelMask().

§ otPlatRadioEnergyScanDone()

void otPlatRadioEnergyScanDone ( otInstance aInstance,
int8_t  aEnergyScanMaxRssi 
)

The radio driver calls this method to notify OpenThread that the energy scan is complete.

This function is used when radio provides OT_RADIO_CAPS_ENERGY_SCAN capability.

Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aEnergyScanMaxRssiThe maximum RSSI encountered on the scanned channel.

References otPlatDiagRadioReceiveDone(), and otPlatDiagRadioTransmitDone().

Referenced by RadioSpinel< InterfaceType, ProcessContextType >::HandleValueIs().

§ otPlatRadioEnableSrcMatch()

void otPlatRadioEnableSrcMatch ( otInstance aInstance,
bool  aEnable 
)

Enable/Disable source address match feature.

The source address match feature controls how the radio layer decides the "frame pending" bit for acks sent in response to data request commands from children.

If disabled, the radio layer must set the "frame pending" on all acks to data request commands.

If enabled, the radio layer uses the source address match table to determine whether to set or clear the "frame pending" bit in an ack to a data request command.

The source address match table provides the list of children for which there is a pending frame. Either a short address or an extended/long address can be added to the source address match table.

Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aEnableEnable/disable source address match feature.

References RadioSpinel< InterfaceType, ProcessContextType >::EnableSrcMatch(), OT_UNUSED_VARIABLE, and SuccessOrDie.

Referenced by Radio::GetPreferredChannelMask().

§ otPlatRadioAddSrcMatchShortEntry()

otError otPlatRadioAddSrcMatchShortEntry ( otInstance aInstance,
otShortAddress  aShortAddress 
)

Add a short address to the source address match table.

Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aShortAddressThe short address to be added.
Return values
OT_ERROR_NONESuccessfully added short address to the source match table.
OT_ERROR_NO_BUFSNo available entry in the source match table.

References RadioSpinel< InterfaceType, ProcessContextType >::AddSrcMatchShortEntry(), and OT_UNUSED_VARIABLE.

Referenced by Radio::GetPreferredChannelMask().

§ otPlatRadioAddSrcMatchExtEntry()

otError otPlatRadioAddSrcMatchExtEntry ( otInstance aInstance,
const otExtAddress aExtAddress 
)

Add an extended address to the source address match table.

Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aExtAddressThe extended address to be added stored in little-endian byte order.
Return values
OT_ERROR_NONESuccessfully added extended address to the source match table.
OT_ERROR_NO_BUFSNo available entry in the source match table.

References RadioSpinel< InterfaceType, ProcessContextType >::AddSrcMatchExtEntry(), otExtAddress::m8, and OT_UNUSED_VARIABLE.

Referenced by Radio::GetPreferredChannelMask().

§ otPlatRadioClearSrcMatchShortEntry()

otError otPlatRadioClearSrcMatchShortEntry ( otInstance aInstance,
otShortAddress  aShortAddress 
)

Remove a short address from the source address match table.

Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aShortAddressThe short address to be removed.
Return values
OT_ERROR_NONESuccessfully removed short address from the source match table.
OT_ERROR_NO_ADDRESSThe short address is not in source address match table.

References RadioSpinel< InterfaceType, ProcessContextType >::ClearSrcMatchShortEntry(), and OT_UNUSED_VARIABLE.

Referenced by Radio::GetPreferredChannelMask().

§ otPlatRadioClearSrcMatchExtEntry()

otError otPlatRadioClearSrcMatchExtEntry ( otInstance aInstance,
const otExtAddress aExtAddress 
)

Remove an extended address from the source address match table.

Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aExtAddressThe extended address to be removed stored in little-endian byte order.
Return values
OT_ERROR_NONESuccessfully removed the extended address from the source match table.
OT_ERROR_NO_ADDRESSThe extended address is not in source address match table.

References RadioSpinel< InterfaceType, ProcessContextType >::ClearSrcMatchExtEntry(), otExtAddress::m8, and OT_UNUSED_VARIABLE.

Referenced by Radio::GetPreferredChannelMask().

§ otPlatRadioClearSrcMatchShortEntries()

void otPlatRadioClearSrcMatchShortEntries ( otInstance aInstance)

Clear all short addresses from the source address match table.

Parameters
[in]aInstanceThe OpenThread instance structure.

References RadioSpinel< InterfaceType, ProcessContextType >::ClearSrcMatchShortEntries(), OT_UNUSED_VARIABLE, and SuccessOrDie.

Referenced by Radio::GetPreferredChannelMask().

§ otPlatRadioClearSrcMatchExtEntries()

void otPlatRadioClearSrcMatchExtEntries ( otInstance aInstance)

Clear all the extended/long addresses from source address match table.

Parameters
[in]aInstanceThe OpenThread instance structure.

References RadioSpinel< InterfaceType, ProcessContextType >::ClearSrcMatchExtEntries(), OT_UNUSED_VARIABLE, and SuccessOrDie.

Referenced by Radio::GetPreferredChannelMask().

§ otPlatRadioGetSupportedChannelMask()

uint32_t otPlatRadioGetSupportedChannelMask ( otInstance aInstance)

Get the radio supported channel mask that the device is allowed to be on.

Parameters
[in]aInstanceThe OpenThread instance structure.
Returns
The radio supported channel mask.

References RadioSpinel< InterfaceType, ProcessContextType >::GetRadioChannelMask(), and OT_UNUSED_VARIABLE.

Referenced by Radio::GetSupportedChannelMask(), NcpBase::HandlePropertyGet(), otPlatRadioGetPreferredChannelMask(), and Interpreter::SetUserCommands().

§ otPlatRadioGetPreferredChannelMask()

uint32_t otPlatRadioGetPreferredChannelMask ( otInstance aInstance)

Gets the radio preferred channel mask that the device prefers to form on.

Parameters
[in]aInstanceThe OpenThread instance structure.
Returns
The radio preferred channel mask.

References RadioSpinel< InterfaceType, ProcessContextType >::GetRadioChannelMask(), OT_UNUSED_VARIABLE, and otPlatRadioGetSupportedChannelMask().

Referenced by Radio::GetPreferredChannelMask(), NcpBase::HandlePropertyGet(), and Interpreter::SetUserCommands().

§ otPlatRadioSetCoexEnabled()

otError otPlatRadioSetCoexEnabled ( otInstance aInstance,
bool  aEnabled 
)

Enable the radio coex.

This function is used when feature OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE is enabled.

Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aEnabledTRUE to enable the radio coex, FALSE otherwise.
Return values
OT_ERROR_NONESuccessfully enabled.
OT_ERROR_FAILEDThe radio coex could not be enabled.

Referenced by NcpBase::HandlePropertyGet(), otPlatRadioGetReceiveSensitivity(), and Interpreter::SetUserCommands().

§ otPlatRadioIsCoexEnabled()

bool otPlatRadioIsCoexEnabled ( otInstance aInstance)

Check whether radio coex is enabled or not.

This function is used when feature OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE is enabled.

Parameters
[in]aInstanceThe OpenThread instance structure.
Returns
TRUE if the radio coex is enabled, FALSE otherwise.

Referenced by NcpBase::HandlePropertyGet(), otPlatRadioGetReceiveSensitivity(), and Interpreter::SetUserCommands().

§ otPlatRadioGetCoexMetrics()

otError otPlatRadioGetCoexMetrics ( otInstance aInstance,
otRadioCoexMetrics aCoexMetrics 
)

Get the radio coexistence metrics.

This function is used when feature OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE is enabled.

Parameters
[in]aInstanceThe OpenThread instance structure.
[out]aCoexMetricsA pointer to the coexistence metrics structure.
Return values
OT_ERROR_NONESuccessfully retrieved the coex metrics.
OT_ERROR_INVALID_ARGSaCoexMetrics was NULL.

Referenced by NcpBase::HandlePropertyGet(), otPlatRadioGetReceiveSensitivity(), and Interpreter::SetUserCommands().

§ otPlatRadioEnableCsl()

otError otPlatRadioEnableCsl ( otInstance aInstance,
uint32_t  aCslPeriod,
otShortAddress  aShortAddr,
const otExtAddress aExtAddr 
)

Enable or disable CSL receiver.

Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aCslPeriodCSL period, 0 for disabling CSL.
[in]aShortAddrThe short source address of CSL receiver's peer.
[in]aExtAddrThe extended source address of CSL receiver's peer.
Note
Platforms should use CSL peer addresses to include CSL IE when generating enhanced acks.
Return values
kErrorNotImplementedRadio driver doesn't support CSL.
kErrorFailedOther platform specific errors.
kErrorNoneSuccessfully enabled or disabled CSL.

Referenced by Radio::GetPreferredChannelMask().

§ otPlatRadioUpdateCslSampleTime()

void otPlatRadioUpdateCslSampleTime ( otInstance aInstance,
uint32_t  aCslSampleTime 
)

Update CSL sample time in radio driver.

Sample time is stored in radio driver as a copy to calculate phase when sending ACK with CSL IE.

Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aCslSampleTimeThe latest sample time.

Referenced by Radio::GetPreferredChannelMask().

§ otPlatRadioGetCslAccuracy()

uint8_t otPlatRadioGetCslAccuracy ( otInstance aInstance)

Get the current accuracy, in units of ± ppm, of the clock used for scheduling CSL operations.

Note
Platforms may optimize this value based on operational conditions (i.e.: temperature).
Parameters
[in]aInstanceA pointer to an OpenThread instance.
Returns
The current CSL rx/tx scheduling drift, in units of ± ppm.

References OT_UNUSED_VARIABLE.

Referenced by Radio::GetPreferredChannelMask(), NcpBase::HandlePropertySet(), and otPlatRadioGetBusSpeed().

§ otPlatRadioGetCslUncertainty()

uint8_t otPlatRadioGetCslUncertainty ( otInstance aInstance)

The fixed uncertainty of the Device for scheduling CSL Transmissions in units of 10 microseconds.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
Returns
The CSL Uncertainty in units of 10 us.

References OT_UNUSED_VARIABLE.

Referenced by Radio::GetPreferredChannelMask(), NcpBase::HandlePropertySet(), and otPlatRadioGetBusSpeed().

§ otPlatRadioSetChannelMaxTransmitPower()

otError otPlatRadioSetChannelMaxTransmitPower ( otInstance aInstance,
uint8_t  aChannel,
int8_t  aMaxPower 
)

Set the max transmit power for a specific channel.

Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aChannelThe radio channel.
[in]aMaxPowerThe max power in dBm, passing OT_RADIO_RSSI_INVALID will disable this channel.
Return values
OT_ERROR_NOT_IMPLEMENTEDThe feature is not implemented
OT_ERROR_INVALID_ARGSThe specified channel is not valid.
OT_ERROR_FAILEDOther platform specific errors.
OT_ERROR_NONESuccessfully set max transmit power.

References ot::kErrorNotImplemented, OT_UNUSED_VARIABLE, and RadioSpinel< InterfaceType, ProcessContextType >::SetChannelMaxTransmitPower().

Referenced by NcpBase::HandlePropertySet().

§ otPlatRadioSetRegion()

otError otPlatRadioSetRegion ( otInstance aInstance,
uint16_t  aRegionCode 
)

Set the region code.

The radio region format is the 2-bytes ascii representation of the ISO 3166 alpha-2 code.

Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aRegionCodeThe radio region.
Return values
OT_ERROR_FAILEDOther platform specific errors.
OT_ERROR_NONESuccessfully set region code.

References ot::kErrorNotImplemented, OT_UNUSED_VARIABLE, and RadioSpinel< InterfaceType, ProcessContextType >::SetRadioRegion().

Referenced by NcpBase::HandlePropertySet(), and Interpreter::SetUserCommands().

§ otPlatRadioGetRegion()

otError otPlatRadioGetRegion ( otInstance aInstance,
uint16_t *  aRegionCode 
)

Get the region code.

The radio region format is the 2-bytes ascii representation of the ISO 3166 alpha-2 code.

Parameters
[in]aInstanceThe OpenThread instance structure.
[out]aRegionCodeThe radio region.
Return values
OT_ERROR_INVALID_ARGSaRegionCode is nullptr.
OT_ERROR_FAILEDOther platform specific errors.
OT_ERROR_NONESuccessfully got region code.

References RadioSpinel< InterfaceType, ProcessContextType >::GetRadioRegion(), ot::kErrorNotImplemented, OT_UNUSED_VARIABLE, and otPlatRadioConfigureEnhAckProbing().

Referenced by NcpBase::HandlePropertyGet(), and Interpreter::SetUserCommands().

§ otPlatRadioConfigureEnhAckProbing()

otError otPlatRadioConfigureEnhAckProbing ( otInstance aInstance,
otLinkMetrics  aLinkMetrics,
otShortAddress  aShortAddress,
const otExtAddress aExtAddress 
)

Enable/disable or update Enhanced-ACK Based Probing in radio for a specific Initiator.

After Enhanced-ACK Based Probing is configured by a specific Probing Initiator, the Enhanced-ACK sent to that node should include Vendor-Specific IE containing Link Metrics data. This method informs the radio to start/stop to collect Link Metrics data and include Vendor-Specific IE that containing the data in Enhanced-ACK sent to that Probing Initiator.

Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aLinkMetricsThis parameter specifies what metrics to query. Per spec 4.11.3.4.4.6, at most 2 metrics can be specified. The probing would be disabled if aLinkMetrics is bitwise 0.
[in]aShortAddressThe short address of the Probing Initiator.
[in]aExtAddressThe extended source address of the Probing Initiator. aExtAddr MUST NOT be NULL.
Return values
OT_ERROR_NONESuccessfully configured the Enhanced-ACK Based Probing.
OT_ERROR_INVALID_ARGSaExtAddress is NULL.
OT_ERROR_NOT_FOUNDThe Initiator indicated by aShortAddress is not found when trying to clear.
OT_ERROR_NO_BUFSNo more Initiator can be supported.

Referenced by otPlatRadioGetRegion(), and Radio::SetMacFrameCounter().

© Copyright 1995-2022, Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy policy | Terms of use | Terms of sale