Radio API: set short address, extended address, and panid must not fail. (#774)

This commit is contained in:
Jonathan Hui
2016-10-08 18:49:23 -07:00
committed by GitHub
parent 656c919c71
commit 3ebef251eb
5 changed files with 29 additions and 85 deletions
+9 -33
View File
@@ -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)
+7 -33
View File
@@ -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)