1. Add an API to set Provisioner static oob value 2. Add an API to deinit BLE Mesh stack 3. Add an API to set Provisioner unicast address 4. Add an API to provision devices with fixed address 5. Add an API to store node composition data 6. Add an API to get node with device uuid 7. Add an API to get node with unicast address 8. Add an API to delete node with device uuid 9. Add an API to delete node with unicast address 10. Add an API for Provisioner to update local AppKey 11. Add an API for Provisioner to update local NetKey 12. Support Provisioner persistent functionality 13. Fix Provisioner entering IV Update procedure 14. Fix an issue which may cause client failing to send msg 15. Use bt_mesh.flags to indicate device role 16. Remove several useless macros 17. Callback RSSI of received mesh provisioning packets 18. Modify the Provisioner disable function 19. Change some log level from debug to info 20. Add parameters to Provisioner bind AppKey completion event 21. Fix node ignoring relay messages issue 22. Support using a specific partition for BLE Mesh 23. Fix compile warning when proxy related macros are disabled 24. Clean up BLE Mesh stack included header files 25. NULL can be input if client message needs no parameters 26. Fix compile warning when BT log is disabled 27. Initilize BLE Mesh stack local variables 28. Support using PSRAM for BLE Mesh mutex, queue and task 29. Add a menuconfig option to enable using memory from PSRAM 30. Clean up sdkconfig.defaults of BLE Mesh examples
100 lines
2.8 KiB
C
100 lines
2.8 KiB
C
/* Bluetooth Mesh */
|
|
|
|
/*
|
|
* Copyright (c) 2017 Intel Corporation
|
|
* Additional Copyright (c) 2018 Espressif Systems (Shanghai) PTE LTD
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
#ifndef _ADV_H_
|
|
#define _ADV_H_
|
|
|
|
#include "mesh_access.h"
|
|
#include "mesh_bearer_adapt.h"
|
|
|
|
/* Maximum advertising data payload for a single data type */
|
|
#define BLE_MESH_ADV_DATA_SIZE 29
|
|
|
|
/* The user data is a pointer (4 bytes) to struct bt_mesh_adv */
|
|
#define BLE_MESH_ADV_USER_DATA_SIZE 4
|
|
|
|
#define BLE_MESH_ADV(buf) (*(struct bt_mesh_adv **)net_buf_user_data(buf))
|
|
|
|
typedef struct bt_mesh_msg {
|
|
bool relay; /* Flag indicates if the packet is a relayed one */
|
|
void *arg; /* Pointer to the struct net_buf */
|
|
u16_t src; /* Source address for relay packets */
|
|
u16_t dst; /* Destination address for relay packets */
|
|
u32_t timestamp; /* Timestamp recorded when the relay packet is posted to queue */
|
|
} bt_mesh_msg_t;
|
|
|
|
enum bt_mesh_adv_type {
|
|
BLE_MESH_ADV_PROV,
|
|
BLE_MESH_ADV_DATA,
|
|
BLE_MESH_ADV_BEACON,
|
|
BLE_MESH_ADV_URI,
|
|
};
|
|
|
|
typedef void (*bt_mesh_adv_func_t)(struct net_buf *buf, u16_t duration,
|
|
int err, void *user_data);
|
|
|
|
struct bt_mesh_adv {
|
|
const struct bt_mesh_send_cb *cb;
|
|
void *cb_data;
|
|
|
|
u8_t type: 2,
|
|
busy: 1;
|
|
u8_t xmit;
|
|
|
|
/* For transport layer segment sending */
|
|
struct {
|
|
u8_t attempts;
|
|
} seg;
|
|
};
|
|
|
|
typedef struct bt_mesh_adv *(*bt_mesh_adv_alloc_t)(int id);
|
|
|
|
/* xmit_count: Number of retransmissions, i.e. 0 == 1 transmission */
|
|
struct net_buf *bt_mesh_adv_create(enum bt_mesh_adv_type type, u8_t xmit,
|
|
s32_t timeout);
|
|
|
|
typedef enum {
|
|
BLE_MESH_BUF_REF_EQUAL,
|
|
BLE_MESH_BUF_REF_SMALL,
|
|
BLE_MESH_BUF_REF_MAX,
|
|
} bt_mesh_buf_ref_flag_t;
|
|
|
|
void bt_mesh_adv_buf_ref_debug(const char *func, struct net_buf *buf,
|
|
u8_t ref_cmp, bt_mesh_buf_ref_flag_t flag);
|
|
|
|
struct net_buf *bt_mesh_adv_create_from_pool(struct net_buf_pool *pool,
|
|
bt_mesh_adv_alloc_t get_id,
|
|
enum bt_mesh_adv_type type,
|
|
u8_t xmit, s32_t timeout);
|
|
|
|
void bt_mesh_unref_buf_from_pool(struct net_buf_pool *pool);
|
|
|
|
void bt_mesh_adv_send(struct net_buf *buf, const struct bt_mesh_send_cb *cb,
|
|
void *cb_data);
|
|
|
|
const bt_mesh_addr_t *bt_mesh_pba_get_addr(void);
|
|
|
|
struct net_buf *bt_mesh_relay_adv_create(enum bt_mesh_adv_type type, u8_t xmit,
|
|
s32_t timeout);
|
|
|
|
void bt_mesh_relay_adv_send(struct net_buf *buf, const struct bt_mesh_send_cb *cb,
|
|
void *cb_data, u16_t src, u16_t dst);
|
|
|
|
u16_t bt_mesh_get_stored_relay_count(void);
|
|
|
|
void bt_mesh_adv_update(void);
|
|
|
|
void bt_mesh_adv_init(void);
|
|
void bt_mesh_adv_deinit(void);
|
|
|
|
int bt_mesh_scan_enable(void);
|
|
|
|
int bt_mesh_scan_disable(void);
|
|
|
|
#endif /* _ADV_H_ */
|