| /* |
| * Copyright (c) 2022 Nordic Semiconductor ASA |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| #ifndef BT_MESH_OP_AGG_CLI_H__ |
| #define BT_MESH_OP_AGG_CLI_H__ |
| |
| #include <zephyr/bluetooth/mesh.h> |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| /** |
| * @defgroup bt_mesh_op_agg_cli Opcodes Aggregator Client model |
| * @ingroup bt_mesh |
| * @{ |
| */ |
| |
| /** |
| * |
| * @brief Opcodes Aggregator Client model composition data entry. |
| */ |
| #define BT_MESH_MODEL_OP_AGG_CLI \ |
| BT_MESH_MODEL_CB(BT_MESH_MODEL_ID_OP_AGG_CLI, _bt_mesh_op_agg_cli_op, \ |
| NULL, NULL, &_bt_mesh_op_agg_cli_cb) |
| |
| /** @brief Configure Opcodes Aggregator context. |
| * |
| * @param net_idx NetKey index to encrypt with. |
| * @param app_idx AppKey index to encrypt with. |
| * @param dst Target Opcodes Aggregator Server address. |
| * @param elem_addr Target node element address for the sequence message. |
| * |
| * @return 0 on success, or (negative) error code on failure. |
| */ |
| int bt_mesh_op_agg_cli_seq_start(uint16_t net_idx, uint16_t app_idx, uint16_t dst, |
| uint16_t elem_addr); |
| |
| /** @brief Opcodes Aggregator message send. |
| * |
| * Uses previously configured context and sends aggregated message |
| * to target node. |
| * |
| * @return 0 on success, or (negative) error code on failure. |
| */ |
| int bt_mesh_op_agg_cli_seq_send(void); |
| |
| /** @brief Abort Opcodes Aggregator context. |
| */ |
| void bt_mesh_op_agg_cli_seq_abort(void); |
| |
| /** @brief Check if Opcodes Aggregator Sequence context is started. |
| * |
| * @return true if it is started, otherwise false. |
| */ |
| bool bt_mesh_op_agg_cli_seq_is_started(void); |
| |
| /** @brief Get Opcodes Aggregator context tailroom. |
| * |
| * @return Remaning tailroom of Opcodes Aggregator SDU. |
| */ |
| size_t bt_mesh_op_agg_cli_seq_tailroom(void); |
| |
| /** @brief Get the current transmission timeout value. |
| * |
| * @return The configured transmission timeout in milliseconds. |
| */ |
| int32_t bt_mesh_op_agg_cli_timeout_get(void); |
| |
| /** @brief Set the transmission timeout value. |
| * |
| * @param timeout The new transmission timeout. |
| */ |
| void bt_mesh_op_agg_cli_timeout_set(int32_t timeout); |
| |
| /** @cond INTERNAL_HIDDEN */ |
| extern const struct bt_mesh_model_op _bt_mesh_op_agg_cli_op[]; |
| extern const struct bt_mesh_model_cb _bt_mesh_op_agg_cli_cb; |
| /** @endcond */ |
| |
| /** |
| * @} |
| */ |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif /* BT_MESH_OP_AGG_CLI_H__ */ |