Skip to content

Commit

Permalink
pkg/nimble/contrib: add utility to convert to BLE HCI phy enum
Browse files Browse the repository at this point in the history
  • Loading branch information
fjmolinas committed Apr 27, 2022
1 parent fc616a9 commit 439cf96
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 44 deletions.
24 changes: 2 additions & 22 deletions pkg/nimble/autoadv/nimble_autoadv.c
Original file line number Diff line number Diff line change
Expand Up @@ -128,26 +128,6 @@ void nimble_autoadv_set_gap_cb(ble_gap_event_fn *cb, void *cb_arg)
}
}

#if MYNEWT_VAL_BLE_EXT_ADV
static int _get_phy_hci(uint8_t mode)
{
switch (mode) {
case NIMBLE_PHY_1M:
return BLE_HCI_LE_PHY_1M;
#if IS_USED(MODULE_NIMBLE_PHY_2MBIT)
case NIMBLE_PHY_2M:
return BLE_HCI_LE_PHY_2M;
#endif
#if IS_USED(MODULE_NIMBLE_PHY_CODED)
case NIMBLE_PHY_CODED:
return BLE_HCI_LE_PHY_CODED;
#endif
default:
return -1;
}
}
#endif

void nimble_autoadv_start(ble_addr_t *addr)
{
int rc;
Expand All @@ -172,8 +152,8 @@ void nimble_autoadv_start(ble_addr_t *addr)
.own_addr_type = _cfg.own_addr_type,
.peer = *addr,
.filter_policy = _cfg.filter_policy,
.primary_phy = _get_phy_hci(_cfg.phy),
.secondary_phy = _get_phy_hci(_cfg.phy),
.primary_phy = nimble_riot_get_phy_hci(_cfg.phy),
.secondary_phy = nimble_riot_get_phy_hci(_cfg.phy),
.tx_power = _cfg.tx_power,
.sid = CONFIG_NIMBLE_AUTOADV_INSTANCE,
};
Expand Down
9 changes: 9 additions & 0 deletions pkg/nimble/contrib/include/nimble_riot.h
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,15 @@ extern uint8_t nimble_riot_own_addr_type;
*/
void nimble_riot_init(void);

/**
* @brief Converts BLE PHY mode to BLE HCI PHY
*
* @param[in] mode ble phy mode to convert
*/
#if MYNEWT_VAL_BLE_EXT_ADV
int nimble_riot_get_phy_hci(uint8_t mode);
#endif

#ifdef __cplusplus
}
#endif
Expand Down
20 changes: 20 additions & 0 deletions pkg/nimble/contrib/nimble_riot.c
Original file line number Diff line number Diff line change
Expand Up @@ -197,3 +197,23 @@ void nimble_riot_init(void)
assert(res == 0);
#endif
}

#if MYNEWT_VAL_BLE_EXT_ADV
int nimble_riot_get_phy_hci(uint8_t mode)
{
switch (mode) {
case NIMBLE_PHY_1M:
return BLE_HCI_LE_PHY_1M;
#if IS_USED(MODULE_NIMBLE_PHY_2MBIT)
case NIMBLE_PHY_2M:
return BLE_HCI_LE_PHY_2M;
#endif
#if IS_USED(MODULE_NIMBLE_PHY_CODED)
case NIMBLE_PHY_CODED:
return BLE_HCI_LE_PHY_CODED;
#endif
default:
return -1;
}
}
#endif
24 changes: 2 additions & 22 deletions pkg/nimble/netif/nimble_netif.c
Original file line number Diff line number Diff line change
Expand Up @@ -684,26 +684,6 @@ int nimble_netif_close(int handle)
return 0;
}

#if MYNEWT_VAL_BLE_EXT_ADV
static int _get_phy_hci(uint8_t mode)
{
switch (mode) {
case NIMBLE_PHY_1M:
return BLE_HCI_LE_PHY_1M;
#if IS_USED(MODULE_NIMBLE_PHY_2MBIT)
case NIMBLE_PHY_2M:
return BLE_HCI_LE_PHY_2M;
#endif
#if IS_USED(MODULE_NIMBLE_PHY_CODED)
case NIMBLE_PHY_CODED:
return BLE_HCI_LE_PHY_CODED;
#endif
default:
return -1;
}
}
#endif

static int _accept(const uint8_t *ad, size_t ad_len, const ble_addr_t *addr,
const nimble_netif_accept_cfg_t *params)
{
Expand All @@ -730,8 +710,8 @@ static int _accept(const uint8_t *ad, size_t ad_len, const ble_addr_t *addr,
memset(&p, 0, sizeof(p));

/* figure out PHY modes */
int phy_pri = _get_phy_hci(params->primary_phy);
int phy_sec = _get_phy_hci(params->secondary_phy);
int phy_pri = nimble_riot_get_phy_hci(params->primary_phy);
int phy_sec = nimble_riot_get_phy_hci(params->secondary_phy);
if ((phy_pri < 0) || (phy_sec < 0)) {
nimble_netif_conn_free(handle, NULL);
return -EINVAL;
Expand Down

0 comments on commit 439cf96

Please sign in to comment.