Line data Source code
1 1 : /* 2 : * Copyright (c) 2021 Nordic Semiconductor ASA 3 : * 4 : * SPDX-License-Identifier: Apache-2.0 5 : */ 6 : 7 : /** @file 8 : * @brief Bluetooth Mesh SAR Configuration Client Model APIs. 9 : */ 10 : #ifndef BT_MESH_SAR_CFG_CLI_H__ 11 : #define BT_MESH_SAR_CFG_CLI_H__ 12 : 13 : #include <zephyr/bluetooth/mesh.h> 14 : #include <zephyr/bluetooth/mesh/sar_cfg.h> 15 : 16 : /** 17 : * @brief Bluetooth Mesh 18 : * @defgroup bt_mesh_sar_cfg_cli Bluetooth Mesh SAR Configuration Client Model 19 : * @ingroup bt_mesh 20 : * @{ 21 : */ 22 : 23 : #ifdef __cplusplus 24 : extern "C" { 25 : #endif 26 : 27 : /** Mesh SAR Configuration Client Model Context */ 28 1 : struct bt_mesh_sar_cfg_cli { 29 : /** Access model pointer. */ 30 1 : const struct bt_mesh_model *model; 31 : 32 : /* Publication structure instance */ 33 0 : struct bt_mesh_model_pub pub; 34 : 35 : /* Synchronous message timeout in milliseconds. */ 36 0 : int32_t timeout; 37 : 38 : /* Internal parameters for tracking message responses. */ 39 0 : struct bt_mesh_msg_ack_ctx ack_ctx; 40 : }; 41 : 42 : /** 43 : * 44 : * @brief SAR Configuration Client model composition data entry. 45 : * 46 : * @param[in] _cli Pointer to a @ref bt_mesh_sar_cfg_cli instance. 47 : */ 48 1 : #define BT_MESH_MODEL_SAR_CFG_CLI(_cli) \ 49 : BT_MESH_MODEL_CB(BT_MESH_MODEL_ID_SAR_CFG_CLI, \ 50 : _bt_mesh_sar_cfg_cli_op, _cli.pub, _cli, \ 51 : &_bt_mesh_sar_cfg_cli_cb) 52 : 53 : /** @brief Get the SAR Transmitter state of the target node. 54 : * 55 : * @param net_idx Network index to encrypt with. 56 : * @param addr Target node address. 57 : * @param rsp Status response parameter. 58 : * 59 : * @return 0 on success, or (negative) error code on failure. 60 : */ 61 1 : int bt_mesh_sar_cfg_cli_transmitter_get(uint16_t net_idx, uint16_t addr, 62 : struct bt_mesh_sar_tx *rsp); 63 : 64 : /** @brief Set the SAR Transmitter state of the target node. 65 : * 66 : * @param net_idx Network index to encrypt with. 67 : * @param addr Target node address. 68 : * @param set New SAR Transmitter state to set on the target node. 69 : * @param rsp Status response parameter. 70 : * 71 : * @return 0 on success, or (negative) error code on failure. 72 : */ 73 1 : int bt_mesh_sar_cfg_cli_transmitter_set(uint16_t net_idx, uint16_t addr, 74 : const struct bt_mesh_sar_tx *set, 75 : struct bt_mesh_sar_tx *rsp); 76 : 77 : /** @brief Get the SAR Receiver state of the target node. 78 : * 79 : * @param net_idx Network index to encrypt with. 80 : * @param addr Target node address. 81 : * @param rsp Status response parameter. 82 : * 83 : * @return 0 on success, or (negative) error code on failure. 84 : */ 85 1 : int bt_mesh_sar_cfg_cli_receiver_get(uint16_t net_idx, uint16_t addr, 86 : struct bt_mesh_sar_rx *rsp); 87 : 88 : /** @brief Set the SAR Receiver state of the target node. 89 : * 90 : * @param net_idx Network index to encrypt with. 91 : * @param addr Target node address. 92 : * @param set New SAR Receiver state to set on the target node. 93 : * @param rsp Status response parameter. 94 : * 95 : * @return 0 on success, or (negative) error code on failure. 96 : */ 97 1 : int bt_mesh_sar_cfg_cli_receiver_set(uint16_t net_idx, uint16_t addr, 98 : const struct bt_mesh_sar_rx *set, 99 : struct bt_mesh_sar_rx *rsp); 100 : 101 : /** @brief Get the current transmission timeout value. 102 : * 103 : * @return The configured transmission timeout in milliseconds. 104 : */ 105 1 : int32_t bt_mesh_sar_cfg_cli_timeout_get(void); 106 : 107 : /** @brief Set the transmission timeout value. 108 : * 109 : * @param timeout The new transmission timeout. 110 : */ 111 1 : void bt_mesh_sar_cfg_cli_timeout_set(int32_t timeout); 112 : 113 : /** @cond INTERNAL_HIDDEN */ 114 : extern const struct bt_mesh_model_op _bt_mesh_sar_cfg_cli_op[]; 115 : extern const struct bt_mesh_model_cb _bt_mesh_sar_cfg_cli_cb; 116 : /** @endcond */ 117 : 118 : #ifdef __cplusplus 119 : } 120 : #endif 121 : 122 : #endif /* BT_MESH_SAR_CFG_CLI_H__ */ 123 : 124 : /** @} */