2020-08-12 23:07:38 +08:00
|
|
|
/*
|
|
|
|
* Copyright (c) 2020 Nordic Semiconductor ASA
|
|
|
|
*
|
|
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
|
|
*/
|
|
|
|
|
|
|
|
static inline uint16_t bt_mesh_hb_pwr2(uint8_t val)
|
|
|
|
{
|
|
|
|
if (!val) {
|
|
|
|
return 0x0000;
|
|
|
|
} else if (val == 0xff || val == 0x11) {
|
|
|
|
return 0xffff;
|
|
|
|
} else {
|
|
|
|
return (1 << (val - 1));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
static inline uint8_t bt_mesh_hb_log(uint32_t val)
|
|
|
|
{
|
|
|
|
if (!val) {
|
|
|
|
return 0x00;
|
|
|
|
} else if (val == 0xffff) {
|
|
|
|
return 0xff;
|
|
|
|
} else {
|
|
|
|
return 32 - __builtin_clz(val);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void bt_mesh_hb_init(void);
|
|
|
|
void bt_mesh_hb_start(void);
|
|
|
|
void bt_mesh_hb_suspend(void);
|
|
|
|
void bt_mesh_hb_resume(void);
|
|
|
|
|
|
|
|
int bt_mesh_hb_recv(struct bt_mesh_net_rx *rx, struct net_buf_simple *buf);
|
|
|
|
void bt_mesh_hb_feature_changed(uint16_t features);
|
|
|
|
|
|
|
|
uint8_t bt_mesh_hb_pub_set(struct bt_mesh_hb_pub *hb_pub);
|
|
|
|
uint8_t bt_mesh_hb_sub_set(uint16_t src, uint16_t dst, uint32_t period);
|
2020-12-17 23:22:49 +08:00
|
|
|
void bt_mesh_hb_sub_reset_count(void);
|