nRF5 SDK for Thread v0.9.0
Typedefs | Functions
Link Raw

This module includes functions that control the raw link-layer configuration. More...

Typedefs

typedef void(OTCALL * otLinkRawReceiveDone )(otInstance *aInstance, RadioPacket *aPacket, ThreadError aError)
 
typedef void(* otLinkRawTransmitDone )(otInstance *aInstance, RadioPacket *aPacket, bool aFramePending, ThreadError aError)
 
typedef void(* otLinkRawEnergyScanDone )(otInstance *aInstance, int8_t aEnergyScanMaxRssi)
 

Functions

ThreadError otLinkRawSetEnable (otInstance *aInstance, bool aEnabled)
 
bool otLinkRawIsEnabled (otInstance *aInstance)
 
ThreadError otLinkRawSetPanId (otInstance *aInstance, uint16_t aPanId)
 
ThreadError otLinkRawSetExtendedAddress (otInstance *aInstance, const otExtAddress *aExtendedAddress)
 
ThreadError otLinkRawSetShortAddress (otInstance *aInstance, uint16_t aShortAddress)
 
bool otLinkRawGetPromiscuous (otInstance *aInstance)
 
ThreadError otLinkRawSetPromiscuous (otInstance *aInstance, bool aEnable)
 
ThreadError otLinkRawSleep (otInstance *aInstance)
 
ThreadError otLinkRawReceive (otInstance *aInstance, uint8_t aChannel, otLinkRawReceiveDone aCallback)
 
RadioPacketotLinkRawGetTransmitBuffer (otInstance *aInstance)
 
ThreadError otLinkRawTransmit (otInstance *aInstance, RadioPacket *aPacket, otLinkRawTransmitDone aCallback)
 
int8_t otLinkRawGetRssi (otInstance *aInstance)
 
otRadioCaps otLinkRawGetCaps (otInstance *aInstance)
 
ThreadError otLinkRawEnergyScan (otInstance *aInstance, uint8_t aScanChannel, uint16_t aScanDuration, otLinkRawEnergyScanDone aCallback)
 
ThreadError otLinkRawSrcMatchEnable (otInstance *aInstance, bool aEnable)
 
ThreadError otLinkRawSrcMatchAddShortEntry (otInstance *aInstance, const uint16_t aShortAddress)
 
ThreadError otLinkRawSrcMatchAddExtEntry (otInstance *aInstance, const uint8_t *aExtAddress)
 
ThreadError otLinkRawSrcMatchClearShortEntry (otInstance *aInstance, const uint16_t aShortAddress)
 
ThreadError otLinkRawSrcMatchClearExtEntry (otInstance *aInstance, const uint8_t *aExtAddress)
 
ThreadError otLinkRawSrcMatchClearShortEntries (otInstance *aInstance)
 
ThreadError otLinkRawSrcMatchClearExtEntries (otInstance *aInstance)
 

Detailed Description

This module includes functions that control the raw link-layer configuration.

Typedef Documentation

typedef void(* otLinkRawEnergyScanDone)(otInstance *aInstance, int8_t aEnergyScanMaxRssi)

This function pointer on receipt of a IEEE 802.15.4 frame.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
[in]aEnergyScanMaxRssiThe maximum RSSI encountered on the scanned channel.
typedef void(OTCALL * otLinkRawReceiveDone)(otInstance *aInstance, RadioPacket *aPacket, ThreadError aError)

This function pointer on receipt of a IEEE 802.15.4 frame.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
[in]aPacketA pointer to the received packet or NULL if the receive operation was aborted.
[in]aaErrorkThreadError_None when successfully received a frame. kThreadError_Abort when reception was aborted and a frame was not received.
typedef void(* otLinkRawTransmitDone)(otInstance *aInstance, RadioPacket *aPacket, bool aFramePending, ThreadError aError)

This function pointer on receipt of a IEEE 802.15.4 frame.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
[in]aPacketA pointer to the packet that was transmitted.
[in]aFramePendingTRUE if an ACK frame was received and the Frame Pending bit was set.
[in]aErrorkThreadError_None when the frame was transmitted. kThreadError_NoAck when the frame was transmitted but no ACK was received kThreadError_ChannelAccessFailure when the transmission could not take place due to activity on the channel. kThreadError_Abort when transmission was aborted for other reasons.

Function Documentation

ThreadError otLinkRawEnergyScan ( otInstance *  aInstance,
uint8_t  aScanChannel,
uint16_t  aScanDuration,
otLinkRawEnergyScanDone  aCallback 
)

This method begins the energy scan sequence on the radio.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
[in]aScanChannelThe channel to perform the energy scan on.
[in]aScanDurationThe duration, in milliseconds, for the channel to be scanned.
[in]aCallbackA pointer to a function called on completion of a scanned channel.
Return values
kThreadError_NoneSuccessfully started scanning the channel.
kThreadError_NotImplementedThe radio doesn't support energy scanning.
kThreadError_InvalidStateIf the raw link-layer isn't enabled.
otRadioCaps otLinkRawGetCaps ( otInstance *  aInstance)

Get the radio capabilities.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
Returns
The radio capability bit vector. The stack enables or disables some functions based on this value.
bool otLinkRawGetPromiscuous ( otInstance *  aInstance)

This function gets the status of promiscuous mode.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
Return values
truePromiscuous mode is enabled.
falsePromiscuous mode is disabled.
int8_t otLinkRawGetRssi ( otInstance *  aInstance)

Get the most recent RSSI measurement.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
Returns
The RSSI in dBm when it is valid. 127 when RSSI is invalid.
RadioPacket* otLinkRawGetTransmitBuffer ( otInstance *  aInstance)

The radio transitions from Transmit to Receive. This method returns a pointer to the transmit buffer.

The caller forms the IEEE 802.15.4 frame in this buffer then calls otLinkRawTransmit() to request transmission.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
Returns
A pointer to the transmit buffer or NULL if the raw link-layer isn't enabled.
bool otLinkRawIsEnabled ( otInstance *  aInstance)

This function indicates whether or not the raw link-layer is enabled.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
Return values
trueThe raw link-layer is enabled.
falseThe raw link-layer is disabled.
ThreadError otLinkRawReceive ( otInstance *  aInstance,
uint8_t  aChannel,
otLinkRawReceiveDone  aCallback 
)

Transitioning the radio from Sleep to Receive. Turn on the radio.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
[in]aChannelThe channel to use for receiving.
[in]aCallbackA pointer to a function called on receipt of a IEEE 802.15.4 frame.
Return values
kThreadError_NoneSuccessfully transitioned to Receive.
kThreadError_InvalidStateThe radio was disabled or transmitting.
ThreadError otLinkRawSetEnable ( otInstance *  aInstance,
bool  aEnabled 
)

This function enables/disables the raw link-layer.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
[in]aEnabledTRUE to enable raw link-layer, FALSE otherwise.
Return values
kThreadError_NoneIf the enable state was successfully set.
kThreadError_InvalidStateIf the OpenThread Ip6 interface is already enabled.
ThreadError otLinkRawSetExtendedAddress ( otInstance *  aInstance,
const otExtAddress aExtendedAddress 
)

This function sets the IEEE 802.15.4 Extended Address.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
[in]aExtendedAddressA pointer to the IEEE 802.15.4 Extended Address.
Return values
kThreadError_NoneIf successful.
kThreadError_InvalidStateIf the raw link-layer isn't enabled.
ThreadError otLinkRawSetPanId ( otInstance *  aInstance,
uint16_t  aPanId 
)

This function set the IEEE 802.15.4 PAN ID.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
[in]aPanIdThe IEEE 802.15.4 PAN ID.
Return values
kThreadError_NoneIf successful.
kThreadError_InvalidStateIf the raw link-layer isn't enabled.
ThreadError otLinkRawSetPromiscuous ( otInstance *  aInstance,
bool  aEnable 
)

This function enables or disables promiscuous mode.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
[in]aEnableA value to enable or disable promiscuous mode.
Return values
kThreadError_NoneIf successful.
kThreadError_InvalidStateIf the raw link-layer isn't enabled.
ThreadError otLinkRawSetShortAddress ( otInstance *  aInstance,
uint16_t  aShortAddress 
)

Set the Short Address for address filtering.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
[in]aShortAddressThe IEEE 802.15.4 Short Address.
Return values
kThreadError_NoneIf successful.
kThreadError_InvalidStateIf the raw link-layer isn't enabled.
ThreadError otLinkRawSleep ( otInstance *  aInstance)

Transition the radio from Receive to Sleep. Turn off the radio.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
Return values
kThreadError_NoneSuccessfully transitioned to Sleep.
kThreadError_BusyThe radio was transmitting
kThreadError_InvalidStateThe radio was disabled
ThreadError otLinkRawSrcMatchAddExtEntry ( otInstance *  aInstance,
const uint8_t *  aExtAddress 
)

Adding extended address to the source match table.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
[in]aExtAddressThe extended address to be added.
Return values
kThreadError_NoneSuccessfully added extended address to the source match table.
kThreadError_NoBufsNo available entry in the source match table.
kThreadError_InvalidStateIf the raw link-layer isn't enabled.
ThreadError otLinkRawSrcMatchAddShortEntry ( otInstance *  aInstance,
const uint16_t  aShortAddress 
)

Adding short address to the source match table.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
[in]aShortAddressThe short address to be added.
Return values
kThreadError_NoneSuccessfully added short address to the source match table.
kThreadError_NoBufsNo available entry in the source match table.
kThreadError_InvalidStateIf the raw link-layer isn't enabled.
ThreadError otLinkRawSrcMatchClearExtEntries ( otInstance *  aInstance)

Removing all the extended addresses from the source match table.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
Return values
kThreadError_NoneIf successful.
kThreadError_InvalidStateIf the raw link-layer isn't enabled.
ThreadError otLinkRawSrcMatchClearExtEntry ( otInstance *  aInstance,
const uint8_t *  aExtAddress 
)

Removing extended address to the source match table of the radio.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
[in]aExtAddressThe extended address to be removed.
Return values
kThreadError_NoneSuccessfully removed the extended address from the source match table.
kThreadError_NoAddressThe extended address is not in source match table.
kThreadError_InvalidStateIf the raw link-layer isn't enabled.
ThreadError otLinkRawSrcMatchClearShortEntries ( otInstance *  aInstance)

Removing all the short addresses from the source match table.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
Return values
kThreadError_NoneIf successful.
kThreadError_InvalidStateIf the raw link-layer isn't enabled.
ThreadError otLinkRawSrcMatchClearShortEntry ( otInstance *  aInstance,
const uint16_t  aShortAddress 
)

Removing short address to the source match table.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
[in]aShortAddressThe short address to be removed.
Return values
kThreadError_NoneSuccessfully removed short address from the source match table.
kThreadError_NoAddressThe short address is not in source match table.
kThreadError_InvalidStateIf the raw link-layer isn't enabled.
ThreadError otLinkRawSrcMatchEnable ( otInstance *  aInstance,
bool  aEnable 
)

Enable/Disable source match for AutoPend.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
[in]aEnableEnable/disable source match for automatical pending.
Return values
kThreadError_NoneIf successful.
kThreadError_InvalidStateIf the raw link-layer isn't enabled.
ThreadError otLinkRawTransmit ( otInstance *  aInstance,
RadioPacket aPacket,
otLinkRawTransmitDone  aCallback 
)

This method begins the transmit sequence on the radio.

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

The transmit sequence consists of:

  1. Transitioning the radio to Transmit from Receive.
  2. Transmits the psdu on the given channel and at the given transmit power.
Parameters
[in]aInstanceA pointer to an OpenThread instance.
[in]aPacketA pointer to the packet that was transmitted.
[in]aCallbackA pointer to a function called on completion of the transmission.
Return values
kThreadError_NoneSuccessfully transitioned to Transmit.
kThreadError_InvalidStateThe radio was not in the Receive state.

Documentation feedback | Developer Zone | Subscribe | Updated