1 /* 2 * Copyright (c) 2021 Nordic Semiconductor ASA 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 #ifndef ZEPHYR_INCLUDE_BLUETOOTH_MESH_SHELL_H_ 7 #define ZEPHYR_INCLUDE_BLUETOOTH_MESH_SHELL_H_ 8 9 #include <zephyr/bluetooth/mesh.h> 10 11 #ifdef __cplusplus 12 extern "C" { 13 #endif 14 15 /** Maximum number of faults the health server can have. */ 16 #define BT_MESH_SHELL_CUR_FAULTS_MAX 4 17 18 /** 19 * A helper to define a health publication context for shell with the shell's 20 * maximum number of faults the element can have. 21 * 22 * @param _name Name given to the publication context variable. 23 */ 24 #define BT_MESH_SHELL_HEALTH_PUB_DEFINE(_name) \ 25 BT_MESH_HEALTH_PUB_DEFINE(_name, \ 26 BT_MESH_SHELL_CUR_FAULTS_MAX); 27 28 /** Target context for the mesh shell */ 29 struct bt_mesh_shell_target { 30 /* Current destination address */ 31 uint16_t dst; 32 /* Current net index */ 33 uint16_t net_idx; 34 /* Current app index */ 35 uint16_t app_idx; 36 }; 37 38 /** @brief External reference to health server */ 39 extern struct bt_mesh_health_srv bt_mesh_shell_health_srv; 40 41 /** @brief External reference to health server metadata */ 42 extern const struct bt_mesh_models_metadata_entry health_srv_meta[]; 43 44 /** @brief External reference to health client */ 45 extern struct bt_mesh_health_cli bt_mesh_shell_health_cli; 46 47 /** @brief External reference to Firmware Update Server */ 48 extern struct bt_mesh_dfu_srv bt_mesh_shell_dfu_srv; 49 50 /** @brief External reference to Firmware Update Client */ 51 extern struct bt_mesh_dfu_cli bt_mesh_shell_dfu_cli; 52 53 /** @brief External reference to BLOB Transfer Server */ 54 extern struct bt_mesh_blob_srv bt_mesh_shell_blob_srv; 55 56 /** @brief External reference to BLOB Transfer Client */ 57 extern struct bt_mesh_blob_cli bt_mesh_shell_blob_cli; 58 59 /** @brief External reference to Remote Provisioning Client */ 60 extern struct bt_mesh_rpr_cli bt_mesh_shell_rpr_cli; 61 62 /** @brief External reference to provisioning handler. */ 63 extern struct bt_mesh_prov bt_mesh_shell_prov; 64 65 /** @brief External reference to shell target context. */ 66 extern struct bt_mesh_shell_target bt_mesh_shell_target_ctx; 67 68 #ifdef __cplusplus 69 } 70 #endif 71 72 #endif /* ZEPHYR_INCLUDE_BLUETOOTH_MESH_SHELL_H_ */ 73