Zephyr API Documentation  2.7.0-rc2
A Scalable Open Source RTOS
access.h File Reference

Access layer APIs. More...

#include <settings/settings.h>
#include <sys/util.h>
#include <bluetooth/mesh/msg.h>

Go to the source code of this file.

Data Structures

struct  bt_mesh_elem
 
struct  bt_mesh_model_op
 
struct  bt_mesh_model_pub
 
struct  bt_mesh_model_cb
 
struct  bt_mesh_mod_id_vnd
 
struct  bt_mesh_model
 
struct  bt_mesh_send_cb
 
struct  bt_mesh_comp
 

Macros

#define BT_MESH_KEY_UNUSED_ELT_(IDX, _)   BT_MESH_KEY_UNUSED,
 
#define BT_MESH_ADDR_UNASSIGNED_ELT_(IDX, _)   BT_MESH_ADDR_UNASSIGNED,
 
#define BT_MESH_MODEL_KEYS_UNUSED
 
#define BT_MESH_MODEL_GROUPS_UNASSIGNED
 
#define BT_MESH_ADDR_UNASSIGNED   0x0000
 
#define BT_MESH_ADDR_ALL_NODES   0xffff
 
#define BT_MESH_ADDR_PROXIES   0xfffc
 
#define BT_MESH_ADDR_FRIENDS   0xfffd
 
#define BT_MESH_ADDR_RELAYS   0xfffe
 
#define BT_MESH_KEY_UNUSED   0xffff
 
#define BT_MESH_KEY_ANY   0xffff
 
#define BT_MESH_KEY_DEV   0xfffe
 
#define BT_MESH_KEY_DEV_LOCAL   BT_MESH_KEY_DEV
 
#define BT_MESH_KEY_DEV_REMOTE   0xfffd
 
#define BT_MESH_KEY_DEV_ANY   0xfffc
 
#define BT_MESH_ADDR_IS_UNICAST(addr)   ((addr) && (addr) < 0x8000)
 
#define BT_MESH_ADDR_IS_GROUP(addr)   ((addr) >= 0xc000 && (addr) <= 0xff00)
 
#define BT_MESH_ADDR_IS_VIRTUAL(addr)   ((addr) >= 0x8000 && (addr) < 0xc000)
 
#define BT_MESH_ADDR_IS_RFU(addr)   ((addr) >= 0xff00 && (addr) <= 0xfffb)
 
#define BT_MESH_IS_DEV_KEY(key)
 
#define BT_MESH_APP_SEG_SDU_MAX   12
 
#define BT_MESH_TX_SDU_MAX
 
#define BT_MESH_RX_SDU_MAX
 
#define BT_MESH_ELEM(_loc, _mods, _vnd_mods)
 
#define BT_MESH_MODEL_ID_CFG_SRV   0x0000
 
#define BT_MESH_MODEL_ID_CFG_CLI   0x0001
 
#define BT_MESH_MODEL_ID_HEALTH_SRV   0x0002
 
#define BT_MESH_MODEL_ID_HEALTH_CLI   0x0003
 
#define BT_MESH_MODEL_ID_GEN_ONOFF_SRV   0x1000
 
#define BT_MESH_MODEL_ID_GEN_ONOFF_CLI   0x1001
 
#define BT_MESH_MODEL_ID_GEN_LEVEL_SRV   0x1002
 
#define BT_MESH_MODEL_ID_GEN_LEVEL_CLI   0x1003
 
#define BT_MESH_MODEL_ID_GEN_DEF_TRANS_TIME_SRV   0x1004
 
#define BT_MESH_MODEL_ID_GEN_DEF_TRANS_TIME_CLI   0x1005
 
#define BT_MESH_MODEL_ID_GEN_POWER_ONOFF_SRV   0x1006
 
#define BT_MESH_MODEL_ID_GEN_POWER_ONOFF_SETUP_SRV   0x1007
 
#define BT_MESH_MODEL_ID_GEN_POWER_ONOFF_CLI   0x1008
 
#define BT_MESH_MODEL_ID_GEN_POWER_LEVEL_SRV   0x1009
 
#define BT_MESH_MODEL_ID_GEN_POWER_LEVEL_SETUP_SRV   0x100a
 
#define BT_MESH_MODEL_ID_GEN_POWER_LEVEL_CLI   0x100b
 
#define BT_MESH_MODEL_ID_GEN_BATTERY_SRV   0x100c
 
#define BT_MESH_MODEL_ID_GEN_BATTERY_CLI   0x100d
 
#define BT_MESH_MODEL_ID_GEN_LOCATION_SRV   0x100e
 
#define BT_MESH_MODEL_ID_GEN_LOCATION_SETUPSRV   0x100f
 
#define BT_MESH_MODEL_ID_GEN_LOCATION_CLI   0x1010
 
#define BT_MESH_MODEL_ID_GEN_ADMIN_PROP_SRV   0x1011
 
#define BT_MESH_MODEL_ID_GEN_MANUFACTURER_PROP_SRV   0x1012
 
#define BT_MESH_MODEL_ID_GEN_USER_PROP_SRV   0x1013
 
#define BT_MESH_MODEL_ID_GEN_CLIENT_PROP_SRV   0x1014
 
#define BT_MESH_MODEL_ID_GEN_PROP_CLI   0x1015
 
#define BT_MESH_MODEL_ID_SENSOR_SRV   0x1100
 
#define BT_MESH_MODEL_ID_SENSOR_SETUP_SRV   0x1101
 
#define BT_MESH_MODEL_ID_SENSOR_CLI   0x1102
 
#define BT_MESH_MODEL_ID_TIME_SRV   0x1200
 
#define BT_MESH_MODEL_ID_TIME_SETUP_SRV   0x1201
 
#define BT_MESH_MODEL_ID_TIME_CLI   0x1202
 
#define BT_MESH_MODEL_ID_SCENE_SRV   0x1203
 
#define BT_MESH_MODEL_ID_SCENE_SETUP_SRV   0x1204
 
#define BT_MESH_MODEL_ID_SCENE_CLI   0x1205
 
#define BT_MESH_MODEL_ID_SCHEDULER_SRV   0x1206
 
#define BT_MESH_MODEL_ID_SCHEDULER_SETUP_SRV   0x1207
 
#define BT_MESH_MODEL_ID_SCHEDULER_CLI   0x1208
 
#define BT_MESH_MODEL_ID_LIGHT_LIGHTNESS_SRV   0x1300
 
#define BT_MESH_MODEL_ID_LIGHT_LIGHTNESS_SETUP_SRV   0x1301
 
#define BT_MESH_MODEL_ID_LIGHT_LIGHTNESS_CLI   0x1302
 
#define BT_MESH_MODEL_ID_LIGHT_CTL_SRV   0x1303
 
#define BT_MESH_MODEL_ID_LIGHT_CTL_SETUP_SRV   0x1304
 
#define BT_MESH_MODEL_ID_LIGHT_CTL_CLI   0x1305
 
#define BT_MESH_MODEL_ID_LIGHT_CTL_TEMP_SRV   0x1306
 
#define BT_MESH_MODEL_ID_LIGHT_HSL_SRV   0x1307
 
#define BT_MESH_MODEL_ID_LIGHT_HSL_SETUP_SRV   0x1308
 
#define BT_MESH_MODEL_ID_LIGHT_HSL_CLI   0x1309
 
#define BT_MESH_MODEL_ID_LIGHT_HSL_HUE_SRV   0x130a
 
#define BT_MESH_MODEL_ID_LIGHT_HSL_SAT_SRV   0x130b
 
#define BT_MESH_MODEL_ID_LIGHT_XYL_SRV   0x130c
 
#define BT_MESH_MODEL_ID_LIGHT_XYL_SETUP_SRV   0x130d
 
#define BT_MESH_MODEL_ID_LIGHT_XYL_CLI   0x130e
 
#define BT_MESH_MODEL_ID_LIGHT_LC_SRV   0x130f
 
#define BT_MESH_MODEL_ID_LIGHT_LC_SETUPSRV   0x1310
 
#define BT_MESH_MODEL_ID_LIGHT_LC_CLI   0x1311
 
#define BT_MESH_MODEL_OP_1(b0)   (b0)
 
#define BT_MESH_MODEL_OP_2(b0, b1)   (((b0) << 8) | (b1))
 
#define BT_MESH_MODEL_OP_3(b0, cid)   ((((b0) << 16) | 0xc00000) | (cid))
 
#define BT_MESH_LEN_EXACT(len)   (-len)
 
#define BT_MESH_LEN_MIN(len)   (len)
 
#define BT_MESH_MODEL_OP_END   { 0, 0, NULL }
 
#define BT_MESH_MODEL_NO_OPS
 
#define BT_MESH_MODEL_NONE   ((struct bt_mesh_model []){})
 
#define BT_MESH_MODEL_CB(_id, _op, _pub, _user_data, _cb)
 Composition data SIG model entry with callback functions. More...
 
#define BT_MESH_MODEL_VND_CB(_company, _id, _op, _pub, _user_data, _cb)
 Composition data vendor model entry with callback functions. More...
 
#define BT_MESH_MODEL(_id, _op, _pub, _user_data)    BT_MESH_MODEL_CB(_id, _op, _pub, _user_data, NULL)
 Composition data SIG model entry. More...
 
#define BT_MESH_MODEL_VND(_company, _id, _op, _pub, _user_data)    BT_MESH_MODEL_VND_CB(_company, _id, _op, _pub, _user_data, NULL)
 Composition data vendor model entry. More...
 
#define BT_MESH_TRANSMIT(count, int_ms)   ((count) | (((int_ms / 10) - 1) << 3))
 Encode transmission count & interval steps. More...
 
#define BT_MESH_TRANSMIT_COUNT(transmit)   (((transmit) & (uint8_t)BIT_MASK(3)))
 Decode transmit count from a transmit value. More...
 
#define BT_MESH_TRANSMIT_INT(transmit)   ((((transmit) >> 3) + 1) * 10)
 Decode transmit interval from a transmit value. More...
 
#define BT_MESH_PUB_TRANSMIT(count, int_ms)
 Encode Publish Retransmit count & interval steps. More...
 
#define BT_MESH_PUB_TRANSMIT_COUNT(transmit)   BT_MESH_TRANSMIT_COUNT(transmit)
 Decode Publish Retransmit count from a given value. More...
 
#define BT_MESH_PUB_TRANSMIT_INT(transmit)   ((((transmit) >> 3) + 1) * 50)
 Decode Publish Retransmit interval from a given value. More...
 
#define BT_MESH_MODEL_PUB_DEFINE(_name, _update, _msg_len)
 
#define BT_MESH_TTL_DEFAULT   0xff
 
#define BT_MESH_TTL_MAX   0x7f
 

Functions

int bt_mesh_model_send (struct bt_mesh_model *model, struct bt_mesh_msg_ctx *ctx, struct net_buf_simple *msg, const struct bt_mesh_send_cb *cb, void *cb_data)
 Send an Access Layer message. More...
 
int bt_mesh_model_publish (struct bt_mesh_model *model)
 Send a model publication message. More...
 
struct bt_mesh_elembt_mesh_model_elem (struct bt_mesh_model *mod)
 Get the element that a model belongs to. More...
 
struct bt_mesh_modelbt_mesh_model_find (const struct bt_mesh_elem *elem, uint16_t id)
 Find a SIG model. More...
 
struct bt_mesh_modelbt_mesh_model_find_vnd (const struct bt_mesh_elem *elem, uint16_t company, uint16_t id)
 Find a vendor model. More...
 
static bool bt_mesh_model_in_primary (const struct bt_mesh_model *mod)
 Get whether the model is in the primary element of the device. More...
 
int bt_mesh_model_data_store (struct bt_mesh_model *mod, bool vnd, const char *name, const void *data, size_t data_len)
 Immediately store the model's user data in persistent storage. More...
 
int bt_mesh_model_extend (struct bt_mesh_model *extending_mod, struct bt_mesh_model *base_mod)
 Let a model extend another. More...
 
bool bt_mesh_model_is_extended (struct bt_mesh_model *model)
 Check if model is extended by another model. More...
 

Detailed Description

Access layer APIs.

Macro Definition Documentation

◆ BT_MESH_ADDR_UNASSIGNED_ELT_

#define BT_MESH_ADDR_UNASSIGNED_ELT_ (   IDX,
 
)    BT_MESH_ADDR_UNASSIGNED,

◆ BT_MESH_KEY_UNUSED_ELT_

#define BT_MESH_KEY_UNUSED_ELT_ (   IDX,
 
)    BT_MESH_KEY_UNUSED,

◆ BT_MESH_MODEL_GROUPS_UNASSIGNED

#define BT_MESH_MODEL_GROUPS_UNASSIGNED
Value:
{ UTIL_LISTIFY(CONFIG_BT_MESH_MODEL_GROUP_COUNT, \
#define BT_MESH_ADDR_UNASSIGNED_ELT_(IDX, _)
Definition: access.h:19
#define UTIL_LISTIFY(LEN, F,...)
Generates a sequence of code.
Definition: util_macro.h:369

◆ BT_MESH_MODEL_KEYS_UNUSED

#define BT_MESH_MODEL_KEYS_UNUSED
Value:
{ UTIL_LISTIFY(CONFIG_BT_MESH_MODEL_KEY_COUNT, \
#define BT_MESH_KEY_UNUSED_ELT_(IDX, _)
Definition: access.h:18