mirror of
https://github.com/espressif/openthread.git
synced 2026-09-23 17:37:42 +00:00
Radio API: set short address, extended address, and panid must not fail. (#774)
This commit is contained in:
@@ -123,54 +123,30 @@ void otPlatRadioGetIeeeEui64(otInstance *aInstance, uint8_t *aIeeeEui64)
|
||||
}
|
||||
}
|
||||
|
||||
ThreadError otPlatRadioSetPanId(otInstance *aInstance, uint16_t panid)
|
||||
void otPlatRadioSetPanId(otInstance *aInstance, uint16_t panid)
|
||||
{
|
||||
ThreadError error = kThreadError_Busy;
|
||||
(void)aInstance;
|
||||
|
||||
if (sState != kStateTransmit)
|
||||
{
|
||||
HWREG(RFCORE_FFSM_PAN_ID0) = panid & 0xFF;
|
||||
HWREG(RFCORE_FFSM_PAN_ID1) = panid >> 8;
|
||||
error = kThreadError_None;
|
||||
}
|
||||
|
||||
return error;
|
||||
HWREG(RFCORE_FFSM_PAN_ID0) = panid & 0xFF;
|
||||
HWREG(RFCORE_FFSM_PAN_ID1) = panid >> 8;
|
||||
}
|
||||
|
||||
ThreadError otPlatRadioSetExtendedAddress(otInstance *aInstance, uint8_t *address)
|
||||
void otPlatRadioSetExtendedAddress(otInstance *aInstance, uint8_t *address)
|
||||
{
|
||||
ThreadError error = kThreadError_Busy;
|
||||
(void)aInstance;
|
||||
|
||||
if (sState != kStateTransmit)
|
||||
for (int i = 0; i < 8; i++)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 8; i++)
|
||||
{
|
||||
((volatile uint32_t *)RFCORE_FFSM_EXT_ADDR0)[i] = address[i];
|
||||
}
|
||||
|
||||
error = kThreadError_None;
|
||||
((volatile uint32_t *)RFCORE_FFSM_EXT_ADDR0)[i] = address[i];
|
||||
}
|
||||
|
||||
return error;
|
||||
}
|
||||
|
||||
ThreadError otPlatRadioSetShortAddress(otInstance *aInstance, uint16_t address)
|
||||
void otPlatRadioSetShortAddress(otInstance *aInstance, uint16_t address)
|
||||
{
|
||||
ThreadError error = kThreadError_Busy;
|
||||
(void)aInstance;
|
||||
|
||||
if (sState != kStateTransmit)
|
||||
{
|
||||
HWREG(RFCORE_FFSM_SHORT_ADDR0) = address & 0xFF;
|
||||
HWREG(RFCORE_FFSM_SHORT_ADDR1) = address >> 8;
|
||||
error = kThreadError_None;
|
||||
}
|
||||
|
||||
return error;
|
||||
HWREG(RFCORE_FFSM_SHORT_ADDR0) = address & 0xFF;
|
||||
HWREG(RFCORE_FFSM_SHORT_ADDR1) = address >> 8;
|
||||
}
|
||||
|
||||
void cc2538RadioInit(void)
|
||||
|
||||
@@ -300,52 +300,26 @@ void otPlatRadioGetIeeeEui64(otInstance *aInstance, uint8_t *aIeeeEui64)
|
||||
aIeeeEui64[7] = NODE_ID & 0xff;
|
||||
}
|
||||
|
||||
ThreadError otPlatRadioSetPanId(otInstance *aInstance, uint16_t panid)
|
||||
void otPlatRadioSetPanId(otInstance *aInstance, uint16_t panid)
|
||||
{
|
||||
ThreadError error = kThreadError_Busy;
|
||||
(void)aInstance;
|
||||
|
||||
if (sState != kStateTransmit)
|
||||
{
|
||||
sPanid = panid;
|
||||
error = kThreadError_None;
|
||||
}
|
||||
|
||||
return error;
|
||||
sPanid = panid;
|
||||
}
|
||||
|
||||
ThreadError otPlatRadioSetExtendedAddress(otInstance *aInstance, uint8_t *address)
|
||||
void otPlatRadioSetExtendedAddress(otInstance *aInstance, uint8_t *address)
|
||||
{
|
||||
ThreadError error = kThreadError_Busy;
|
||||
(void)aInstance;
|
||||
|
||||
if (sState != kStateTransmit)
|
||||
for (size_t i = 0; i < sizeof(sExtendedAddress); i++)
|
||||
{
|
||||
size_t i;
|
||||
|
||||
for (i = 0; i < sizeof(sExtendedAddress); i++)
|
||||
{
|
||||
sExtendedAddress[i] = address[sizeof(sExtendedAddress) - 1 - i];
|
||||
}
|
||||
|
||||
error = kThreadError_None;
|
||||
sExtendedAddress[i] = address[sizeof(sExtendedAddress) - 1 - i];
|
||||
}
|
||||
|
||||
return error;
|
||||
}
|
||||
|
||||
ThreadError otPlatRadioSetShortAddress(otInstance *aInstance, uint16_t address)
|
||||
void otPlatRadioSetShortAddress(otInstance *aInstance, uint16_t address)
|
||||
{
|
||||
ThreadError error = kThreadError_Busy;
|
||||
(void)aInstance;
|
||||
|
||||
if (sState != kStateTransmit)
|
||||
{
|
||||
sShortAddress = address;
|
||||
error = kThreadError_None;
|
||||
}
|
||||
|
||||
return error;
|
||||
sShortAddress = address;
|
||||
}
|
||||
|
||||
void otPlatRadioSetPromiscuous(otInstance *aInstance, bool aEnable)
|
||||
|
||||
@@ -162,31 +162,26 @@ void otPlatRadioGetIeeeEui64(otInstance *aInstance, uint8_t *aIeeeEui64);
|
||||
* @param[in] aInstance The OpenThread instance structure.
|
||||
* @param[in] aPanId The IEEE 802.15.4 PAN ID.
|
||||
*
|
||||
* @retval ::kThreadError_None If the PAN ID was set properly.
|
||||
*/
|
||||
ThreadError otPlatRadioSetPanId(otInstance *aInstance, uint16_t aPanId);
|
||||
void otPlatRadioSetPanId(otInstance *aInstance, uint16_t aPanId);
|
||||
|
||||
/**
|
||||
* Set the Extended Address for address filtering.
|
||||
*
|
||||
*
|
||||
* @param[in] aInstance The OpenThread instance structure.
|
||||
* @param[in] aExtendedAddress A pointer to the IEEE 802.15.4 Extended Address.
|
||||
*
|
||||
* @retval ::kThreadError_None If the Extended Address was set properly.
|
||||
*/
|
||||
ThreadError otPlatRadioSetExtendedAddress(otInstance *aInstance, uint8_t *aExtendedAddress);
|
||||
void otPlatRadioSetExtendedAddress(otInstance *aInstance, uint8_t *aExtendedAddress);
|
||||
|
||||
/**
|
||||
* Set the Short Address for address filtering.
|
||||
*
|
||||
*
|
||||
* @param[in] aInstance The OpenThread instance structure.
|
||||
* @param[in] aShortAddress The IEEE 802.15.4 Short Address.
|
||||
*
|
||||
* @retval ::kThreadError_None If the Short Address was set properly.
|
||||
*/
|
||||
ThreadError otPlatRadioSetShortAddress(otInstance *aInstance, uint16_t aShortAddress);
|
||||
void otPlatRadioSetShortAddress(otInstance *aInstance, uint16_t aShortAddress);
|
||||
|
||||
/**
|
||||
* @}
|
||||
|
||||
@@ -351,8 +351,8 @@ const ExtAddress *Mac::GetExtAddress(void) const
|
||||
|
||||
ThreadError Mac::SetExtAddress(const ExtAddress &aExtAddress)
|
||||
{
|
||||
ThreadError error;
|
||||
uint8_t buf[8];
|
||||
ThreadError error = kThreadError_None;
|
||||
uint8_t buf[sizeof(aExtAddress)];
|
||||
|
||||
VerifyOrExit(!aExtAddress.IsGroup(), error = kThreadError_InvalidArgs);
|
||||
|
||||
@@ -361,7 +361,7 @@ ThreadError Mac::SetExtAddress(const ExtAddress &aExtAddress)
|
||||
buf[i] = aExtAddress.m8[7 - i];
|
||||
}
|
||||
|
||||
SuccessOrExit(error = otPlatRadioSetExtendedAddress(mNetif.GetInstance(), buf));
|
||||
otPlatRadioSetExtendedAddress(mNetif.GetInstance(), buf);
|
||||
mExtAddress = aExtAddress;
|
||||
|
||||
exit:
|
||||
@@ -390,7 +390,8 @@ ShortAddress Mac::GetShortAddress(void) const
|
||||
ThreadError Mac::SetShortAddress(ShortAddress aShortAddress)
|
||||
{
|
||||
mShortAddress = aShortAddress;
|
||||
return otPlatRadioSetShortAddress(mNetif.GetInstance(), aShortAddress);
|
||||
otPlatRadioSetShortAddress(mNetif.GetInstance(), aShortAddress);
|
||||
return kThreadError_None;
|
||||
}
|
||||
|
||||
uint8_t Mac::GetChannel(void) const
|
||||
@@ -446,7 +447,8 @@ PanId Mac::GetPanId(void) const
|
||||
ThreadError Mac::SetPanId(PanId aPanId)
|
||||
{
|
||||
mPanId = aPanId;
|
||||
return otPlatRadioSetPanId(mNetif.GetInstance(), mPanId);
|
||||
otPlatRadioSetPanId(mNetif.GetInstance(), mPanId);
|
||||
return kThreadError_None;
|
||||
}
|
||||
|
||||
const uint8_t *Mac::GetExtendedPanId(void) const
|
||||
|
||||
@@ -96,19 +96,16 @@ extern "C" {
|
||||
{
|
||||
}
|
||||
|
||||
ThreadError otPlatRadioSetPanId(otInstance *, uint16_t)
|
||||
void otPlatRadioSetPanId(otInstance *, uint16_t)
|
||||
{
|
||||
return kThreadError_None;
|
||||
}
|
||||
|
||||
ThreadError otPlatRadioSetExtendedAddress(otInstance *, uint8_t *)
|
||||
void otPlatRadioSetExtendedAddress(otInstance *, uint8_t *)
|
||||
{
|
||||
return kThreadError_None;
|
||||
}
|
||||
|
||||
ThreadError otPlatRadioSetShortAddress(otInstance *, uint16_t)
|
||||
void otPlatRadioSetShortAddress(otInstance *, uint16_t)
|
||||
{
|
||||
return kThreadError_None;
|
||||
}
|
||||
|
||||
void otPlatRadioSetPromiscuous(otInstance *, bool)
|
||||
|
||||
Reference in New Issue
Block a user