Line data Source code
1 0 : /* 2 : * Copyright (c) 2022 Nordic Semiconductor ASA 3 : * 4 : * SPDX-License-Identifier: Apache-2.0 5 : */ 6 : 7 : #ifndef BT_MESH_OP_AGG_CLI_H__ 8 : #define BT_MESH_OP_AGG_CLI_H__ 9 : 10 : #include <zephyr/bluetooth/mesh.h> 11 : 12 : #ifdef __cplusplus 13 : extern "C" { 14 : #endif 15 : 16 : /** 17 : * @defgroup bt_mesh_op_agg_cli Opcodes Aggregator Client model 18 : * @ingroup bt_mesh 19 : * @{ 20 : */ 21 : 22 : /** 23 : * 24 : * @brief Opcodes Aggregator Client model composition data entry. 25 : */ 26 1 : #define BT_MESH_MODEL_OP_AGG_CLI \ 27 : BT_MESH_MODEL_CB(BT_MESH_MODEL_ID_OP_AGG_CLI, _bt_mesh_op_agg_cli_op, \ 28 : NULL, NULL, &_bt_mesh_op_agg_cli_cb) 29 : 30 : /** @brief Configure Opcodes Aggregator context. 31 : * 32 : * @param net_idx NetKey index to encrypt with. 33 : * @param app_idx AppKey index to encrypt with. 34 : * @param dst Target Opcodes Aggregator Server address. 35 : * @param elem_addr Target node element address for the sequence message. 36 : * 37 : * @return 0 on success, or (negative) error code on failure. 38 : */ 39 1 : int bt_mesh_op_agg_cli_seq_start(uint16_t net_idx, uint16_t app_idx, uint16_t dst, 40 : uint16_t elem_addr); 41 : 42 : /** @brief Opcodes Aggregator message send. 43 : * 44 : * Uses previously configured context and sends aggregated message 45 : * to target node. 46 : * 47 : * @return 0 on success, or (negative) error code on failure. 48 : */ 49 1 : int bt_mesh_op_agg_cli_seq_send(void); 50 : 51 : /** @brief Abort Opcodes Aggregator context. 52 : */ 53 1 : void bt_mesh_op_agg_cli_seq_abort(void); 54 : 55 : /** @brief Check if Opcodes Aggregator Sequence context is started. 56 : * 57 : * @return true if it is started, otherwise false. 58 : */ 59 1 : bool bt_mesh_op_agg_cli_seq_is_started(void); 60 : 61 : /** @brief Get Opcodes Aggregator context tailroom. 62 : * 63 : * @return Remaining tailroom of Opcodes Aggregator SDU. 64 : */ 65 1 : size_t bt_mesh_op_agg_cli_seq_tailroom(void); 66 : 67 : /** @brief Get the current transmission timeout value. 68 : * 69 : * @return The configured transmission timeout in milliseconds. 70 : */ 71 1 : int32_t bt_mesh_op_agg_cli_timeout_get(void); 72 : 73 : /** @brief Set the transmission timeout value. 74 : * 75 : * @param timeout The new transmission timeout. 76 : */ 77 1 : void bt_mesh_op_agg_cli_timeout_set(int32_t timeout); 78 : 79 : /** @cond INTERNAL_HIDDEN */ 80 : extern const struct bt_mesh_model_op _bt_mesh_op_agg_cli_op[]; 81 : extern const struct bt_mesh_model_cb _bt_mesh_op_agg_cli_cb; 82 : /** @endcond */ 83 : 84 : /** 85 : * @} 86 : */ 87 : 88 : #ifdef __cplusplus 89 : } 90 : #endif 91 : 92 : #endif /* BT_MESH_OP_AGG_CLI_H__ */