Fix the logic that detects whether a command is a Radio OP
This commit is contained in:
parent
946b72a58d
commit
1ee40ef021
|
@ -129,11 +129,19 @@ rf_core_send_cmd(uint32_t cmd, uint32_t *status)
|
||||||
bool interrupts_disabled;
|
bool interrupts_disabled;
|
||||||
bool is_radio_op = false;
|
bool is_radio_op = false;
|
||||||
|
|
||||||
/* If cmd is 4-byte aligned, then it's a radio OP. Clear the status field */
|
/*
|
||||||
|
* If cmd is 4-byte aligned, then it's either a radio OP or an immediate
|
||||||
|
* command. Clear the status field if it's a radio OP
|
||||||
|
*/
|
||||||
if((cmd & 0x03) == 0) {
|
if((cmd & 0x03) == 0) {
|
||||||
|
uint32_t cmd_type;
|
||||||
|
cmd_type = ((rfc_command_t *)cmd)->commandNo & RF_CORE_COMMAND_TYPE_MASK;
|
||||||
|
if(cmd_type == RF_CORE_COMMAND_TYPE_IEEE_FG_RADIO_OP ||
|
||||||
|
cmd_type == RF_CORE_COMMAND_TYPE_RADIO_OP) {
|
||||||
is_radio_op = true;
|
is_radio_op = true;
|
||||||
((rfc_radioOp_t *)cmd)->status = RF_CORE_RADIO_OP_STATUS_IDLE;
|
((rfc_radioOp_t *)cmd)->status = RF_CORE_RADIO_OP_STATUS_IDLE;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Make sure ContikiMAC doesn't turn us off from within an interrupt while
|
* Make sure ContikiMAC doesn't turn us off from within an interrupt while
|
||||||
|
|
|
@ -218,7 +218,6 @@ typedef struct rf_core_primary_mode_s {
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
/* Command Types */
|
/* Command Types */
|
||||||
#define RF_CORE_COMMAND_TYPE_MASK 0x0C00
|
#define RF_CORE_COMMAND_TYPE_MASK 0x0C00
|
||||||
#define RF_CORE_COMMAND_TYPE_IMMEDIATE 0x0000
|
|
||||||
#define RF_CORE_COMMAND_TYPE_RADIO_OP 0x0800
|
#define RF_CORE_COMMAND_TYPE_RADIO_OP 0x0800
|
||||||
#define RF_CORE_COMMAND_TYPE_IEEE_BG_RADIO_OP 0x0800
|
#define RF_CORE_COMMAND_TYPE_IEEE_BG_RADIO_OP 0x0800
|
||||||
#define RF_CORE_COMMAND_TYPE_IEEE_FG_RADIO_OP 0x0C00
|
#define RF_CORE_COMMAND_TYPE_IEEE_FG_RADIO_OP 0x0C00
|
||||||
|
|
Loading…
Reference in a new issue