Commit Graph

64 Commits

Author SHA1 Message Date
lly
c1f3b20273 ble_mesh: stack: Provisioner supports multiple nvs namespaces
Now Provisioner can use different NVS namespaces to store
different instances of mesh information, for example, for
different user accounts.
2021-02-05 03:10:47 +00:00
lly
ad718c53cd ble_mesh: stack: Provisioner supports receiving heartbeat 2021-02-04 03:33:45 +00:00
lly
7b9c04b773 ble_mesh: stack: Add node local netkey/appkey func 2020-11-18 20:14:56 +08:00
lly
230e8f5c92 ble_mesh: stack: Add a Kconfig option to make Health Server model optional 2020-11-17 11:06:34 +08:00
lly
dad5cc4aeb ble_mesh: stack: Add Kconfig options to make server models optional 2020-11-17 11:06:33 +08:00
lly
e44307504a ble_mesh: stack: Use Kconfig option to make client models optional 2020-11-17 11:06:33 +08:00
lly
bc5ba60ceb ble_mesh: stack: Add a Kconfig option to make deinit optional 2020-11-17 11:06:33 +08:00
lly
cf500b3f47 ble_mesh: stack: Fix storing next net_idx and app_idx 2020-10-12 08:47:49 +08:00
lly
d1311d1e23 ble_mesh: stack: Check if mesh stack initialized before init vendor client 2020-09-17 11:26:40 +08:00
lly
c570f51b53 ble_mesh: stack: Use model callback for operations [Zephyr]
- Previously when a model is initialized or deinitialized, in the
  access layer, we need to check the model id with the ids in the
  table in order to find the proper model operation function.
- Currently all the operation functions of each model will be set
  during the mesh initialization. When the model is found, we can
  directly use the corresponding callback for different operations.
- Currently only init/deinit operations are registered, later we
  will add more operations.
2020-09-09 14:00:21 +08:00
lly
92ce5c1f23 ble_mesh: stack: Client model related code clean 2020-08-31 17:33:12 +08:00
lly
4634ad6fa4 ble_mesh: stack: Fix no events for some error conditions 2020-08-31 17:33:10 +08:00
lly
5ccf6cd381 ble_mesh: stack: Move client role set to the msg function 2020-08-31 17:33:10 +08:00
lly
259d1924cb ble_mesh: stack: Remove some not used client parameters 2020-08-31 17:33:09 +08:00
lly
62458dbb90 ble_mesh: stack: Update client model msg send 2020-08-31 17:33:08 +08:00
lly
c3b300064b ble_mesh: stack: Only keep func pointer for very common log
Currently only keep func pointer for the followings:
- Invalid parameter (mesh btc & mesh stack)
- Out of memory (mesh btc & mesh stack)
- Unknown act (mesh btc)
- Invalid model user data (mesh stack)
- BT_DBG("%s", __func__) (mesh btc & mesh stack)
- A few other specific situations (buf ref debug, send status check)
2020-08-31 11:23:35 +08:00
lly
bbd9a8a44d ble_mesh: stack: Make proxy server & client functions clear 2020-08-31 11:23:34 +08:00
Island
e1e082072c Merge branch 'bugfix/ble_mesh_fast_prov_misc_update_v4.1' into 'release/v4.1'
Bugfix/ble mesh fast prov misc update (v4.1)

See merge request espressif/esp-idf!9465
2020-08-28 14:03:10 +08:00
Island
0cc8639e2f Merge branch 'bugfix/ble_mesh_update_send_ttl_v4.1' into 'release/v4.1'
Bugfix/ble mesh update send ttl (v4.1)

See merge request espressif/esp-idf!10159
2020-08-28 10:43:43 +08:00
lly
e3a7fb2fd4 ble_mesh: stack: Move fast prov functions to a single file 2020-08-27 14:36:58 +00:00
lly
8988fb9b8d ble_mesh: Config and health client btc fixes
Fix an issue which may cause no error code is returned
when sending config client or health client messages
with invalid parameters.
2020-08-26 08:28:12 +00:00
lly
5952694160 ble_mesh: stack: Update send_ttl in btc when recv a msg
Update send_ttl mainly for server models. When a server model
receives a message, and the status is required to be replied
by the application, we need to set send_ttl to the msg context.
If send_ttl is not updated in btc, and the applcation does not
set the TTL either, then the status will be replied with TTL=0,
which may cause the client side (e.g. the phone App) failed to
receive the status.

Closes https://github.com/espressif/esp-idf/issues/5300
2020-08-26 16:12:26 +08:00
Island
e40e694cf9 Merge branch 'bugfix/ble_mesh_set_recv_rssi_v4.1' into 'release/v4.1'
Bugfix/ble mesh set recv rssi (v4.1)

See merge request espressif/esp-idf!9400
2020-08-26 15:56:02 +08:00
lly
292333a27c ble_mesh: Get node info with pre-configured node name
Also add a function to get the entry of the nodes table.

Closes https://github.com/espressif/esp-idf/issues/5397
2020-08-25 09:35:34 +08:00
lly
bd59c89540 ble_mesh: stack: Copy recv_rssi for other received messages
Follow the commit: 2b80cb6883,
copy the recv_rssi for other mesh messages.
2020-08-24 08:52:05 +00:00
mbroek
c3fe42250c When a generic mesh model message is received "bt_mesh_generic_server_cb_evt_to_btc" copies the
ctx values to cb_params for the mesh stack.

recv_rssi was not copied.

This means the rssi could not be read when receiving generic server messages using ble_mesh.
2020-08-24 08:52:05 +00:00
lly
cc36e415c0 ble_mesh: Local model (un)subscribes group address 2020-08-21 07:18:44 +00:00
lly
a43e5feee8 ble_mesh: Define a macro for invalid company id 2020-08-21 07:18:44 +00:00
lly
526f253b2e ble_mesh: Spit mesh_util.h into different header files
Split mesh_util.h into mesh_byteorder.h, mesh_compiler.h,
mesh_ffs.h and mesh_util.h based on the classification of
Zephyr, which will make further porting more clear.
2020-05-11 15:42:55 +08:00
lly
2f40c4449f ble_mesh: Split mesh os related into a separate file 2020-05-11 15:42:54 +08:00
lly
800cb0fff8 ble_mesh: Add and use transport macro definitions [Zephyr] 2020-05-11 15:42:53 +08:00
Island
7db21de3b3 Merge branch 'bugfix/ble_mesh_compile_error_o2_v4.1' into 'release/v4.1'
ble_mesh: Fix compile error when -O2 (performance) is chosen (v4.1)

See merge request espressif/esp-idf!8616
2020-05-06 18:15:53 +08:00
lly
78b13034ef ble_mesh: Fix node not erase info completely
Previously only mesh node info is supported to be stored
in flash. So when trying to reset the node, we only need
to judge if the BLE_MESH_VALID flag is set.
Currently we support storing both node & Provisioner info
in flash, when trying to erase the node info from flash,
the BLE_MESH_NODE flag will be checked. So we need to set
bt_mesh.flags to 0 when all the erase operations are done.
2020-05-06 11:43:43 +08:00
lly
a742255f8e ble_mesh: Fix compile error when -O2 (performance) is chosen 2020-05-06 11:26:25 +08:00
Island
dd89b2dc0d Merge branch 'bugfix/ble_mesh_rpl_list_size_v4.1' into 'release/v4.1'
ble_mesh: Associate replay protection list size with nodes count (v4.1)

See merge request espressif/esp-idf!8493
2020-05-06 11:15:21 +08:00
lly
fca4124f70 ble_mesh: Remove some redundant functions 2020-04-30 11:50:15 +00:00
lly
fefd52f093 ble_mesh: Remove BLE_MESH_MAX_STORED_NODES option
Previously the BLE_MESH_MAX_STORED_NODES option is added for
internal mesh test, which will be a little confusing for the
users to understand.
Here we remove this option, instead the BLE_MESH_MAX_PROV_NODES
will be used for all the cases. For mesh internal test, when
the test function is called to add some nodes info, the info
will be stored in the array of provisioned nodes directly.
2020-04-30 11:50:15 +00:00
lly
d51bd36142 ble_mesh: Add missing #ifdef __cplusplus 2020-04-30 08:45:55 +00:00
lly
1ac44aa202 ble_mesh: Support BLE advertising simultaneously 2020-04-10 17:34:06 +08:00
lly
e01333514d ble_mesh: Add ble mesh deinit in btc task 2020-03-13 19:24:23 +08:00
lly
2611e23bd2 ble_mesh: Allow maximum 377 octets payload 2020-03-02 02:08:13 +00:00
lly
711c8472fc ble_mesh: Miscellaneous modifications
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
2020-03-02 02:08:13 +00:00
lly
d83c37faed ble_mesh: Fixes Provisioner not support friend feature 2020-01-06 16:17:36 +08:00
lly
2bba9d7700 ble_mesh: miscellaneous modifications
1. Clean up client_common.c
2. Clean up esp_ble_mesh directory
3. Update Kconfig.in
4. Format esp_ble_mesh files
2019-11-08 11:10:52 +08:00
lly
30aa236219 ble_mesh: adapt ble mesh with nimble host 2019-11-08 11:10:52 +08:00
lly
547081cc3c ble_mesh: add events for configuration server model 2019-11-08 11:10:52 +08:00
lly
f906b7caf3 ble_mesh: add Generic/Sensor/Time and Scenes/Lighting Server models 2019-11-08 11:10:52 +08:00
lly
287f80ec01 ble_mesh: add proxy client functionality 2019-11-08 11:10:52 +08:00
lly
c6286529eb ble_mesh: add ble mesh friend node event 2019-11-08 11:10:52 +08:00
lly
fdfe59d369 ble_mesh: add low power node api and event 2019-11-08 11:10:52 +08:00