ieee802154: Minor changes to align closer with coding standard
This commit is contained in:
parent
4349538f92
commit
6b17d5ccc9
9 changed files with 114 additions and 120 deletions
|
|
@ -201,7 +201,6 @@ static uint8_t mrf24j40_getreg(FAR struct spi_dev_s *spi, uint32_t addr);
|
|||
|
||||
static int mrf24j40_resetrfsm(FAR struct mrf24j40_radio_s *dev);
|
||||
static int mrf24j40_pacontrol(FAR struct mrf24j40_radio_s *dev, int mode);
|
||||
static int mrf24j40_initialize(FAR struct mrf24j40_radio_s *dev);
|
||||
|
||||
static int mrf24j40_setrxmode(FAR struct mrf24j40_radio_s *dev, int mode);
|
||||
static int mrf24j40_regdump(FAR struct mrf24j40_radio_s *dev);
|
||||
|
|
@ -252,20 +251,18 @@ static void mrf24j40_mactimer(FAR struct mrf24j40_radio_s *dev, int numsymbols);
|
|||
|
||||
static int mrf24j40_bind(FAR struct ieee802154_radio_s *radio,
|
||||
FAR struct ieee802154_radiocb_s *radiocb);
|
||||
static int mrf24j40_txnotify(FAR struct ieee802154_radio_s *radio, bool gts);
|
||||
static int mrf24j40_txdelayed(FAR struct ieee802154_radio_s *radio,
|
||||
FAR struct ieee802154_txdesc_s *txdesc,
|
||||
uint32_t symboldelay);
|
||||
static int mrf24j40_reset_attrs(FAR struct ieee802154_radio_s *radio);
|
||||
static int mrf24j40_get_attr(FAR struct ieee802154_radio_s *radio,
|
||||
static int mrf24j40_reset(FAR struct ieee802154_radio_s *radio);
|
||||
static int mrf24j40_getattr(FAR struct ieee802154_radio_s *radio,
|
||||
enum ieee802154_attr_e attr,
|
||||
FAR union ieee802154_attr_u *attrval);
|
||||
static int mrf24j40_set_attr(FAR struct ieee802154_radio_s *radio,
|
||||
static int mrf24j40_setattr(FAR struct ieee802154_radio_s *radio,
|
||||
enum ieee802154_attr_e attr,
|
||||
FAR const union ieee802154_attr_u *attrval);
|
||||
static int mrf24j40_txnotify(FAR struct ieee802154_radio_s *radio, bool gts);
|
||||
static int mrf24j40_txdelayed(FAR struct ieee802154_radio_s *radio,
|
||||
FAR struct ieee802154_txdesc_s *txdesc,
|
||||
uint32_t symboldelay);
|
||||
static int mrf24j40_rxenable(FAR struct ieee802154_radio_s *dev, bool enable);
|
||||
static int mrf24j40_req_rxenable(FAR struct ieee802154_radio_s *radio,
|
||||
FAR struct ieee802154_rxenable_req_s *req);
|
||||
static int mrf24j40_beaconstart(FAR struct ieee802154_radio_s *radio,
|
||||
FAR const struct ieee802154_superframespec_s *sfspec,
|
||||
FAR struct ieee802154_beaconframe_s *beacon);
|
||||
|
|
@ -437,18 +434,69 @@ static int mrf24j40_txdelayed(FAR struct ieee802154_radio_s *radio,
|
|||
return OK;
|
||||
}
|
||||
|
||||
static int mrf24j40_reset_attrs(FAR struct ieee802154_radio_s *radio)
|
||||
static int mrf24j40_reset(FAR struct ieee802154_radio_s *radio)
|
||||
{
|
||||
FAR struct mrf24j40_radio_s *dev = (FAR struct mrf24j40_radio_s *)radio;
|
||||
struct ieee802154_cca_s cca;
|
||||
|
||||
/* Software reset */
|
||||
|
||||
mrf24j40_setreg(dev->spi, MRF24J40_SOFTRST , 0x07); /* 00000111 Reset */
|
||||
while(mrf24j40_getreg(dev->spi, MRF24J40_SOFTRST) & 0x07);
|
||||
|
||||
/* Apply recommended settings */
|
||||
|
||||
mrf24j40_setreg(dev->spi, MRF24J40_PACON2 , 0x98); /* 10011000 Enable FIFO (default), TXONTS=6 (recommended), TXONT<8:7>=0 */
|
||||
mrf24j40_setreg(dev->spi, MRF24J40_TXSTBL , 0x95); /* 10010101 set the SIFS period. RFSTBL=9, MSIFS=5, aMinSIFSPeriod=14 (min 12) */
|
||||
mrf24j40_setreg(dev->spi, MRF24J40_TXPEND , 0x7C); /* 01111100 set the LIFS period, MLIFS=1Fh=31 aMinLIFSPeriod=40 (min 40) */
|
||||
mrf24j40_setreg(dev->spi, MRF24J40_TXTIME , 0x30); /* 00110000 set the turnaround time, TURNTIME=3 aTurnAroundTime=12 */
|
||||
mrf24j40_setreg(dev->spi, MRF24J40_RFCON1 , 0x02); /* 00000010 VCO optimization, recommended value */
|
||||
mrf24j40_setreg(dev->spi, MRF24J40_RFCON2 , 0x80); /* 10000000 Enable PLL */
|
||||
mrf24j40_setreg(dev->spi, MRF24J40_RFCON6 , 0x90); /* 10010000 TX filter enable, fast 20M recovery, No bat monitor*/
|
||||
mrf24j40_setreg(dev->spi, MRF24J40_RFCON7 , 0x80); /* 10000000 Sleep clock on internal 100 kHz */
|
||||
mrf24j40_setreg(dev->spi, MRF24J40_RFCON8 , 0x10); /* 00010000 VCO control bit, as recommended */
|
||||
mrf24j40_setreg(dev->spi, MRF24J40_SLPCON1, 0x01); /* 00000001 no CLKOUT, default divisor */
|
||||
mrf24j40_setreg(dev->spi, MRF24J40_BBREG6 , 0x40); /* 01000000 Append RSSI to rx packets */
|
||||
|
||||
/* Set this in reset since it can exist for all device modes. See pg 101 */
|
||||
|
||||
mrf24j40_setreg(dev->spi, MRF24J40_FRMOFFSET, 0x15);
|
||||
|
||||
mrf24j40_setchannel(dev, 11);
|
||||
mrf24j40_setpanid(dev, g_allones);
|
||||
mrf24j40_setsaddr(dev, g_allones);
|
||||
mrf24j40_seteaddr(dev, g_allones);
|
||||
|
||||
dev->max_frame_waittime = MRF24J40_DEFAULT_MAX_FRAME_WAITTIME;
|
||||
|
||||
/* Default device params */
|
||||
|
||||
cca.use_ed = 1;
|
||||
cca.use_cs = 0;
|
||||
cca.edth = 0x60; /* CCA mode ED, no carrier sense, recommenced ED threshold -69 dBm */
|
||||
mrf24j40_setcca(dev, &cca);
|
||||
|
||||
mrf24j40_setrxmode(dev, MRF24J40_RXMODE_NORMAL);
|
||||
|
||||
mrf24j40_settxpower(dev, 0); /*16. Set transmitter power .*/
|
||||
|
||||
mrf24j40_pacontrol(dev, MRF24J40_PA_AUTO);
|
||||
|
||||
dev->rxenabled = false;
|
||||
|
||||
/* For now, we want to always just have the frame pending bit set when
|
||||
* acknowledging a Data Request command. The standard says that the coordinator
|
||||
* can do this if it needs time to figure out whether it has data or not
|
||||
*/
|
||||
|
||||
mrf24j40_setreg(dev->spi, MRF24J40_ACKTMOUT, 0x39 | MRF24J40_ACKTMOUT_DRPACK);
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
||||
static int mrf24j40_get_attr(FAR struct ieee802154_radio_s *radio,
|
||||
enum ieee802154_attr_e attr,
|
||||
FAR union ieee802154_attr_u *attrval)
|
||||
static int mrf24j40_getattr(FAR struct ieee802154_radio_s *radio,
|
||||
enum ieee802154_attr_e attr,
|
||||
FAR union ieee802154_attr_u *attrval)
|
||||
{
|
||||
FAR struct mrf24j40_radio_s *dev = (FAR struct mrf24j40_radio_s *)radio;
|
||||
int ret;
|
||||
|
|
@ -489,9 +537,9 @@ static int mrf24j40_get_attr(FAR struct ieee802154_radio_s *radio,
|
|||
return ret;
|
||||
}
|
||||
|
||||
static int mrf24j40_set_attr(FAR struct ieee802154_radio_s *radio,
|
||||
enum ieee802154_attr_e attr,
|
||||
FAR const union ieee802154_attr_u *attrval)
|
||||
static int mrf24j40_setattr(FAR struct ieee802154_radio_s *radio,
|
||||
enum ieee802154_attr_e attr,
|
||||
FAR const union ieee802154_attr_u *attrval)
|
||||
{
|
||||
FAR struct mrf24j40_radio_s *dev = (FAR struct mrf24j40_radio_s *)radio;
|
||||
int ret;
|
||||
|
|
@ -567,16 +615,9 @@ static int mrf24j40_set_attr(FAR struct ieee802154_radio_s *radio,
|
|||
ret = IEEE802154_STATUS_UNSUPPORTED_ATTRIBUTE;
|
||||
break;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int mrf24j40_req_rxenable(FAR struct ieee802154_radio_s *radio,
|
||||
FAR struct ieee802154_rxenable_req_s *req)
|
||||
{
|
||||
return -ENOTTY;
|
||||
}
|
||||
|
||||
static int mrf24j40_beaconstart(FAR struct ieee802154_radio_s *radio,
|
||||
FAR const struct ieee802154_superframespec_s *sfspec,
|
||||
FAR struct ieee802154_beaconframe_s *beacon)
|
||||
|
|
@ -727,6 +768,21 @@ static int mrf24j40_sfupdate(FAR struct ieee802154_radio_s *radio,
|
|||
FAR struct mrf24j40_radio_s *dev = (FAR struct mrf24j40_radio_s *)radio;
|
||||
int reg;
|
||||
|
||||
/* If we are operating on a beacon-enabled network, use slotted CSMA */
|
||||
|
||||
if (sfspec->beaconorder < 15)
|
||||
{
|
||||
reg = mrf24j40_getreg(dev->spi, MRF24J40_TXMCR);
|
||||
reg |= MRF24J40_TXMCR_SLOTTED;
|
||||
mrf24j40_setreg(dev->spi, MRF24J40_TXMCR, reg);
|
||||
}
|
||||
else
|
||||
{
|
||||
reg = mrf24j40_getreg(dev->spi, MRF24J40_TXMCR);
|
||||
reg &= ~MRF24J40_TXMCR_SLOTTED;
|
||||
mrf24j40_setreg(dev->spi, MRF24J40_TXMCR, reg);
|
||||
}
|
||||
|
||||
reg = mrf24j40_getreg(dev->spi, MRF24J40_RXMCR);
|
||||
|
||||
if (sfspec->pancoord)
|
||||
|
|
@ -1080,38 +1136,6 @@ static int mrf24j40_pacontrol(FAR struct mrf24j40_radio_s *dev, int mode)
|
|||
return OK;
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: mrf24j40_initialize
|
||||
*
|
||||
* Description:
|
||||
* Reset the device and put in in order of operation
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
static int mrf24j40_initialize(FAR struct mrf24j40_radio_s *dev)
|
||||
{
|
||||
/* Software reset */
|
||||
|
||||
mrf24j40_setreg(dev->spi, MRF24J40_SOFTRST , 0x07); /* 00000111 Reset */
|
||||
while(mrf24j40_getreg(dev->spi, MRF24J40_SOFTRST) & 0x07);
|
||||
|
||||
/* Apply recommended settings */
|
||||
|
||||
mrf24j40_setreg(dev->spi, MRF24J40_PACON2 , 0x98); /* 10011000 Enable FIFO (default), TXONTS=6 (recommended), TXONT<8:7>=0 */
|
||||
mrf24j40_setreg(dev->spi, MRF24J40_TXSTBL , 0x95); /* 10010101 set the SIFS period. RFSTBL=9, MSIFS=5, aMinSIFSPeriod=14 (min 12) */
|
||||
mrf24j40_setreg(dev->spi, MRF24J40_TXPEND , 0x7C); /* 01111100 set the LIFS period, MLIFS=1Fh=31 aMinLIFSPeriod=40 (min 40) */
|
||||
mrf24j40_setreg(dev->spi, MRF24J40_TXTIME , 0x30); /* 00110000 set the turnaround time, TURNTIME=3 aTurnAroundTime=12 */
|
||||
mrf24j40_setreg(dev->spi, MRF24J40_RFCON1 , 0x02); /* 00000010 VCO optimization, recommended value */
|
||||
mrf24j40_setreg(dev->spi, MRF24J40_RFCON2 , 0x80); /* 10000000 Enable PLL */
|
||||
mrf24j40_setreg(dev->spi, MRF24J40_RFCON6 , 0x90); /* 10010000 TX filter enable, fast 20M recovery, No bat monitor*/
|
||||
mrf24j40_setreg(dev->spi, MRF24J40_RFCON7 , 0x80); /* 10000000 Sleep clock on internal 100 kHz */
|
||||
mrf24j40_setreg(dev->spi, MRF24J40_RFCON8 , 0x10); /* 00010000 VCO control bit, as recommended */
|
||||
mrf24j40_setreg(dev->spi, MRF24J40_SLPCON1, 0x01); /* 00000001 no CLKOUT, default divisor */
|
||||
mrf24j40_setreg(dev->spi, MRF24J40_BBREG6 , 0x40); /* 01000000 Append RSSI to rx packets */
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: mrf24j40_setrxmode
|
||||
*
|
||||
|
|
@ -2155,7 +2179,6 @@ FAR struct ieee802154_radio_s *mrf24j40_init(FAR struct spi_dev_s *spi,
|
|||
FAR const struct mrf24j40_lower_s *lower)
|
||||
{
|
||||
FAR struct mrf24j40_radio_s *dev;
|
||||
struct ieee802154_cca_s cca;
|
||||
|
||||
dev = kmm_zalloc(sizeof(struct mrf24j40_radio_s));
|
||||
if (dev == NULL)
|
||||
|
|
@ -2178,13 +2201,12 @@ FAR struct ieee802154_radio_s *mrf24j40_init(FAR struct spi_dev_s *spi,
|
|||
sem_init(&dev->exclsem, 0, 1);
|
||||
|
||||
dev->radio.bind = mrf24j40_bind;
|
||||
dev->radio.reset = mrf24j40_reset;
|
||||
dev->radio.getattr = mrf24j40_getattr;
|
||||
dev->radio.setattr = mrf24j40_setattr;
|
||||
dev->radio.txnotify = mrf24j40_txnotify;
|
||||
dev->radio.txdelayed = mrf24j40_txdelayed;
|
||||
dev->radio.reset_attrs = mrf24j40_reset_attrs;
|
||||
dev->radio.get_attr = mrf24j40_get_attr;
|
||||
dev->radio.set_attr = mrf24j40_set_attr;
|
||||
dev->radio.rxenable = mrf24j40_rxenable;
|
||||
dev->radio.req_rxenable = mrf24j40_req_rxenable;
|
||||
dev->radio.beaconstart = mrf24j40_beaconstart;
|
||||
dev->radio.beaconupdate = mrf24j40_beaconupdate;
|
||||
dev->radio.beaconstop = mrf24j40_beaconstop;
|
||||
|
|
@ -2193,34 +2215,7 @@ FAR struct ieee802154_radio_s *mrf24j40_init(FAR struct spi_dev_s *spi,
|
|||
dev->lower = lower;
|
||||
dev->spi = spi;
|
||||
|
||||
|
||||
dev->rxenabled = false;
|
||||
mrf24j40_initialize(dev);
|
||||
|
||||
mrf24j40_setchannel(dev, 11);
|
||||
mrf24j40_setpanid(dev, g_allones);
|
||||
mrf24j40_setsaddr(dev, g_allones);
|
||||
mrf24j40_seteaddr(dev, g_allones);
|
||||
|
||||
/* Default device params */
|
||||
|
||||
cca.use_ed = 1;
|
||||
cca.use_cs = 0;
|
||||
cca.edth = 0x60; /* CCA mode ED, no carrier sense, recommenced ED threshold -69 dBm */
|
||||
mrf24j40_setcca(dev, &cca);
|
||||
|
||||
mrf24j40_setrxmode(dev, MRF24J40_RXMODE_NORMAL);
|
||||
|
||||
mrf24j40_settxpower(dev, 0); /*16. Set transmitter power .*/
|
||||
|
||||
mrf24j40_pacontrol(dev, MRF24J40_PA_AUTO);
|
||||
|
||||
/* For now, we want to always just have the frame pending bit set when
|
||||
* acknowledging a Data Request command. The standard says that the coordinator
|
||||
* can do this if it needs time to figure out whether it has data or not
|
||||
*/
|
||||
|
||||
mrf24j40_setreg(dev->spi, MRF24J40_ACKTMOUT, 0x39 | MRF24J40_ACKTMOUT_DRPACK);
|
||||
mrf24j40_reset(&dev->radio);
|
||||
|
||||
dev->lower->enable(dev->lower, true);
|
||||
return &dev->radio;
|
||||
|
|
|
|||
|
|
@ -119,20 +119,18 @@ struct ieee802154_radio_s
|
|||
{
|
||||
CODE int (*bind) (FAR struct ieee802154_radio_s *radio,
|
||||
FAR struct ieee802154_radiocb_s *radiocb);
|
||||
CODE int (*reset) (FAR struct ieee802154_radio_s *radio);
|
||||
CODE int (*getattr) (FAR struct ieee802154_radio_s *radio,
|
||||
enum ieee802154_attr_e ,
|
||||
FAR union ieee802154_attr_u *attrval);
|
||||
CODE int (*setattr) (FAR struct ieee802154_radio_s *radio,
|
||||
enum ieee802154_attr_e ,
|
||||
FAR const union ieee802154_attr_u *attrval);
|
||||
CODE int (*txnotify)(FAR struct ieee802154_radio_s *radio, bool gts);
|
||||
CODE int (*txdelayed)(FAR struct ieee802154_radio_s *radio,
|
||||
FAR struct ieee802154_txdesc_s *txdesc,
|
||||
uint32_t symboldelay);
|
||||
CODE int (*reset_attrs) (FAR struct ieee802154_radio_s *radio);
|
||||
CODE int (*get_attr) (FAR struct ieee802154_radio_s *radio,
|
||||
enum ieee802154_attr_e ,
|
||||
FAR union ieee802154_attr_u *attrval);
|
||||
CODE int (*set_attr) (FAR struct ieee802154_radio_s *radio,
|
||||
enum ieee802154_attr_e ,
|
||||
FAR const union ieee802154_attr_u *attrval);
|
||||
CODE int (*rxenable) (FAR struct ieee802154_radio_s *radio, bool enable);
|
||||
CODE int (*req_rxenable)(FAR struct ieee802154_radio_s *radio,
|
||||
FAR struct ieee802154_rxenable_req_s *req);
|
||||
CODE int (*beaconstart)(FAR struct ieee802154_radio_s *radio,
|
||||
FAR const struct ieee802154_superframespec_s *sfspec,
|
||||
FAR struct ieee802154_beaconframe_s *beacon);
|
||||
|
|
|
|||
|
|
@ -1726,7 +1726,7 @@ static uint32_t mac802154_symtoticks(FAR struct ieee802154_privmac_s *priv,
|
|||
* get overall times.
|
||||
*/
|
||||
|
||||
priv->radio->get_attr(priv->radio, IEEE802154_ATTR_PHY_SYMBOL_DURATION,
|
||||
priv->radio->getattr(priv->radio, IEEE802154_ATTR_PHY_SYMBOL_DURATION,
|
||||
&attrval);
|
||||
|
||||
/* After this step, ret represents microseconds */
|
||||
|
|
@ -1912,7 +1912,7 @@ MACHANDLE mac802154_create(FAR struct ieee802154_radio_s *radiodev)
|
|||
}
|
||||
|
||||
IEEE802154_EADDRCOPY(mac->addr.eaddr, eaddr);
|
||||
mac->radio->set_attr(mac->radio, IEEE802154_ATTR_MAC_EADDR,
|
||||
mac->radio->setattr(mac->radio, IEEE802154_ATTR_MAC_EADDR,
|
||||
(union ieee802154_attr_u *)&eaddr[0]);
|
||||
|
||||
return (MACHANDLE)mac;
|
||||
|
|
|
|||
|
|
@ -127,8 +127,6 @@ int mac802154_req_associate(MACHANDLE mac,
|
|||
|
||||
mac802154_setcoordaddr(priv, &req->coordaddr);
|
||||
|
||||
/* TODO: Need to send coordinator address to radio layer */
|
||||
|
||||
/* Copy the coordinator PAN ID to our PAN ID */
|
||||
|
||||
mac802154_setpanid(priv, req->coordaddr.panid);
|
||||
|
|
@ -146,7 +144,7 @@ int mac802154_req_associate(MACHANDLE mac,
|
|||
*/
|
||||
|
||||
rxonidle = req->capabilities.rxonidle;
|
||||
priv->radio->set_attr(priv->radio, IEEE802154_ATTR_MAC_RX_ON_WHEN_IDLE,
|
||||
priv->radio->setattr(priv->radio, IEEE802154_ATTR_MAC_RX_ON_WHEN_IDLE,
|
||||
(FAR const union ieee802154_attr_u *)&rxonidle);
|
||||
|
||||
/* Allocate an IOB to put the frame in */
|
||||
|
|
@ -709,7 +707,7 @@ void mac802154_rx_assocresp(FAR struct ieee802154_privmac_s *priv,
|
|||
|
||||
/* Inform the radio of the address change */
|
||||
|
||||
priv->radio->set_attr(priv->radio, IEEE802154_ATTR_MAC_SADDR,
|
||||
priv->radio->setattr(priv->radio, IEEE802154_ATTR_MAC_SADDR,
|
||||
(FAR union ieee802154_attr_u *)priv->addr.saddr);
|
||||
|
||||
/* A Short Address field value equal to 0xfffe shall indicate that the device
|
||||
|
|
|
|||
|
|
@ -106,7 +106,7 @@ int mac802154_req_get(MACHANDLE mac, enum ieee802154_attr_e attr,
|
|||
* it along.
|
||||
*/
|
||||
|
||||
ret = priv->radio->get_attr(priv->radio, attr, attrval);
|
||||
ret = priv->radio->getattr(priv->radio, attr, attrval);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -180,7 +180,7 @@ int mac802154_req_set(MACHANDLE mac, enum ieee802154_attr_e attr,
|
|||
* it along.
|
||||
*/
|
||||
|
||||
ret = priv->radio->set_attr(priv->radio, attr, attrval);
|
||||
ret = priv->radio->setattr(priv->radio, attr, attrval);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -156,7 +156,6 @@ struct ieee802154_privmac_s
|
|||
|
||||
sem_t exclsem; /* Support exclusive access */
|
||||
uint8_t nclients; /* Number of notification clients */
|
||||
uint8_t nnotif; /* Number of remaining notifications */
|
||||
|
||||
/* Only support a single command at any given time. As of now I see no
|
||||
* condition where you need to have more than one command frame simultaneously
|
||||
|
|
@ -642,14 +641,14 @@ static inline void mac802154_rxdisable(FAR struct ieee802154_privmac_s *priv)
|
|||
static inline void mac802154_setchannel(FAR struct ieee802154_privmac_s *priv,
|
||||
uint8_t channel)
|
||||
{
|
||||
priv->radio->set_attr(priv->radio, IEEE802154_ATTR_PHY_CHAN,
|
||||
priv->radio->setattr(priv->radio, IEEE802154_ATTR_PHY_CHAN,
|
||||
(FAR const union ieee802154_attr_u *)&channel);
|
||||
}
|
||||
|
||||
static inline void mac802154_setchpage(FAR struct ieee802154_privmac_s *priv,
|
||||
uint8_t chpage)
|
||||
{
|
||||
priv->radio->set_attr(priv->radio, IEEE802154_ATTR_PHY_CURRENT_PAGE,
|
||||
priv->radio->setattr(priv->radio, IEEE802154_ATTR_PHY_CURRENT_PAGE,
|
||||
(FAR const union ieee802154_attr_u *)&chpage);
|
||||
}
|
||||
|
||||
|
|
@ -657,7 +656,7 @@ static inline void mac802154_setpanid(FAR struct ieee802154_privmac_s *priv,
|
|||
const uint8_t *panid)
|
||||
{
|
||||
IEEE802154_PANIDCOPY(priv->addr.panid, panid);
|
||||
priv->radio->set_attr(priv->radio, IEEE802154_ATTR_MAC_PANID,
|
||||
priv->radio->setattr(priv->radio, IEEE802154_ATTR_MAC_PANID,
|
||||
(FAR const union ieee802154_attr_u *)panid);
|
||||
}
|
||||
|
||||
|
|
@ -665,7 +664,7 @@ static inline void mac802154_setsaddr(FAR struct ieee802154_privmac_s *priv,
|
|||
const uint8_t *saddr)
|
||||
{
|
||||
IEEE802154_SADDRCOPY(priv->addr.saddr, saddr);
|
||||
priv->radio->set_attr(priv->radio, IEEE802154_ATTR_MAC_SADDR,
|
||||
priv->radio->setattr(priv->radio, IEEE802154_ATTR_MAC_SADDR,
|
||||
(FAR const union ieee802154_attr_u *)saddr);
|
||||
}
|
||||
|
||||
|
|
@ -673,7 +672,7 @@ static inline void mac802154_seteaddr(FAR struct ieee802154_privmac_s *priv,
|
|||
const uint8_t *eaddr)
|
||||
{
|
||||
IEEE802154_EADDRCOPY(priv->addr.eaddr, eaddr);
|
||||
priv->radio->set_attr(priv->radio, IEEE802154_ATTR_MAC_EADDR,
|
||||
priv->radio->setattr(priv->radio, IEEE802154_ATTR_MAC_EADDR,
|
||||
(FAR const union ieee802154_attr_u *)eaddr);
|
||||
}
|
||||
|
||||
|
|
@ -681,7 +680,7 @@ static inline void mac802154_setcoordsaddr(FAR struct ieee802154_privmac_s *priv
|
|||
const uint8_t *saddr)
|
||||
{
|
||||
IEEE802154_SADDRCOPY(priv->pandesc.coordaddr.saddr, saddr);
|
||||
priv->radio->set_attr(priv->radio, IEEE802154_ATTR_MAC_COORD_SADDR,
|
||||
priv->radio->setattr(priv->radio, IEEE802154_ATTR_MAC_COORD_SADDR,
|
||||
(FAR const union ieee802154_attr_u *)saddr);
|
||||
}
|
||||
|
||||
|
|
@ -689,7 +688,7 @@ static inline void mac802154_setcoordeaddr(FAR struct ieee802154_privmac_s *priv
|
|||
const uint8_t *eaddr)
|
||||
{
|
||||
IEEE802154_EADDRCOPY(priv->pandesc.coordaddr.eaddr, eaddr);
|
||||
priv->radio->set_attr(priv->radio, IEEE802154_ATTR_MAC_COORD_EADDR,
|
||||
priv->radio->setattr(priv->radio, IEEE802154_ATTR_MAC_COORD_EADDR,
|
||||
(FAR const union ieee802154_attr_u *)eaddr);
|
||||
}
|
||||
|
||||
|
|
@ -697,9 +696,9 @@ static inline void mac802154_setcoordaddr(FAR struct ieee802154_privmac_s *priv,
|
|||
FAR const struct ieee802154_addr_s *addr)
|
||||
{
|
||||
memcpy(&priv->pandesc.coordaddr, addr, sizeof(struct ieee802154_addr_s));
|
||||
priv->radio->set_attr(priv->radio, IEEE802154_ATTR_MAC_COORD_EADDR,
|
||||
priv->radio->setattr(priv->radio, IEEE802154_ATTR_MAC_COORD_EADDR,
|
||||
(FAR const union ieee802154_attr_u *)addr->eaddr);
|
||||
priv->radio->set_attr(priv->radio, IEEE802154_ATTR_MAC_COORD_SADDR,
|
||||
priv->radio->setattr(priv->radio, IEEE802154_ATTR_MAC_COORD_SADDR,
|
||||
(FAR const union ieee802154_attr_u *)addr->saddr);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -125,14 +125,14 @@ int mac802154_req_reset(MACHANDLE mac, bool rst_pibattr)
|
|||
IEEE802154_SADDRCOPY(priv->addr.saddr, &IEEE802154_SADDR_UNSPEC);
|
||||
IEEE802154_EADDRCOPY(priv->addr.eaddr, &IEEE802154_EADDR_UNSPEC);
|
||||
|
||||
priv->radio->reset_attrs(priv->radio);
|
||||
priv->radio->reset(priv->radio);
|
||||
|
||||
/* The radio is in control of certain attributes, but we keep a mirror
|
||||
* for easy access. Copy in the radio's values now that they've been
|
||||
* reset.
|
||||
*/
|
||||
|
||||
priv->radio->get_attr(priv->radio, IEEE802154_ATTR_MAC_MAX_FRAME_WAITTIME,
|
||||
priv->radio->getattr(priv->radio, IEEE802154_ATTR_MAC_MAX_FRAME_WAITTIME,
|
||||
&attr);
|
||||
priv->max_frame_waittime = attr.mac.max_frame_waittime;
|
||||
|
||||
|
|
|
|||
|
|
@ -93,6 +93,8 @@ int mac802154_req_scan(MACHANDLE mac, FAR struct ieee802154_scan_req_s *req)
|
|||
goto errout;
|
||||
}
|
||||
|
||||
wlinfo("MLME: SCAN.request received\n");
|
||||
|
||||
/* Need to get access to the ops semaphore since operations are serial. This
|
||||
* must be done before locking the MAC so that we don't hold the MAC
|
||||
*/
|
||||
|
|
@ -126,6 +128,8 @@ int mac802154_req_scan(MACHANDLE mac, FAR struct ieee802154_scan_req_s *req)
|
|||
{
|
||||
case IEEE802154_SCANTYPE_PASSIVE:
|
||||
{
|
||||
wlinfo("MLME: Starting Passive scan\n");
|
||||
|
||||
/* Set the channel to the first channel in the list */
|
||||
|
||||
mac802154_setchannel(priv, req->channels[priv->scanindex]);
|
||||
|
|
|
|||
|
|
@ -101,9 +101,9 @@ int mac802154_req_start(MACHANDLE mac, FAR struct ieee802154_start_req_s *req)
|
|||
|
||||
/* Tell the radio layer to set the channel number and channel page */
|
||||
|
||||
priv->radio->set_attr(priv->radio, IEEE802154_ATTR_PHY_CHAN,
|
||||
priv->radio->setattr(priv->radio, IEEE802154_ATTR_PHY_CHAN,
|
||||
(FAR const union ieee802154_attr_u *)&req->chan);
|
||||
priv->radio->set_attr(priv->radio, IEEE802154_ATTR_PHY_CURRENT_PAGE,
|
||||
priv->radio->setattr(priv->radio, IEEE802154_ATTR_PHY_CURRENT_PAGE,
|
||||
(FAR const union ieee802154_attr_u *)&req->chpage);
|
||||
|
||||
/* The address used in the Source Address field of the beacon frame shall
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue