15#ifndef ZEPHYR_INCLUDE_BLUETOOTH_MESH_DFU_CLI_H__
16#define ZEPHYR_INCLUDE_BLUETOOTH_MESH_DFU_CLI_H__
36#define BT_MESH_DFU_CLI_INIT(_handlers) \
39 .blob = { .cb = &_bt_mesh_dfu_cli_blob_handlers }, \
48#define BT_MESH_MODEL_DFU_CLI(_cli) \
49 BT_MESH_MODEL_BLOB_CLI(&(_cli)->blob), \
50 BT_MESH_MODEL_CB(BT_MESH_MODEL_ID_DFU_CLI, _bt_mesh_dfu_cli_op, NULL, \
51 _cli, &_bt_mesh_dfu_cli_cb)
ZTEST_BMEM int timeout
Definition main.c:31
bt_mesh_blob_xfer_mode
BLOB transfer mode.
Definition blob.h:29
int bt_mesh_dfu_cli_resume(struct bt_mesh_dfu_cli *cli)
Resume the suspended transfer.
uint8_t bt_mesh_dfu_cli_progress(struct bt_mesh_dfu_cli *cli)
Get progress as a percentage of completion.
int bt_mesh_dfu_cli_send(struct bt_mesh_dfu_cli *cli, const struct bt_mesh_blob_cli_inputs *inputs, const struct bt_mesh_blob_io *io, const struct bt_mesh_dfu_cli_xfer *xfer)
Start distributing a DFU.
int bt_mesh_dfu_cli_metadata_check(struct bt_mesh_dfu_cli *cli, struct bt_mesh_msg_ctx *ctx, uint8_t img_idx, const struct bt_mesh_dfu_slot *slot, struct bt_mesh_dfu_metadata_status *rsp)
Perform a metadata check for the given DFU image slot.
int bt_mesh_dfu_cli_apply(struct bt_mesh_dfu_cli *cli)
Apply the completed DFU transfer.
enum bt_mesh_dfu_iter(* bt_mesh_dfu_img_cb_t)(struct bt_mesh_dfu_cli *cli, struct bt_mesh_msg_ctx *ctx, uint8_t idx, uint8_t total, const struct bt_mesh_dfu_img *img, void *cb_data)
DFU image callback.
Definition dfu_cli.h:125
int32_t bt_mesh_dfu_cli_timeout_get(void)
Get the current procedure timeout value.
int bt_mesh_dfu_cli_imgs_get(struct bt_mesh_dfu_cli *cli, struct bt_mesh_msg_ctx *ctx, bt_mesh_dfu_img_cb_t cb, void *cb_data, uint8_t max_count)
Perform a DFU image list request.
int bt_mesh_dfu_cli_cancel(struct bt_mesh_dfu_cli *cli, struct bt_mesh_msg_ctx *ctx)
Cancel a DFU transfer.
void bt_mesh_dfu_cli_timeout_set(int32_t timeout)
Set the procedure timeout value.
int bt_mesh_dfu_cli_suspend(struct bt_mesh_dfu_cli *cli)
Suspend a DFU transfer.
int bt_mesh_dfu_cli_status_get(struct bt_mesh_dfu_cli *cli, struct bt_mesh_msg_ctx *ctx, struct bt_mesh_dfu_target_status *rsp)
Get the status of a Target node.
bool bt_mesh_dfu_cli_is_busy(struct bt_mesh_dfu_cli *cli)
Check whether a DFU transfer is in progress.
int bt_mesh_dfu_cli_confirm(struct bt_mesh_dfu_cli *cli)
Confirm that the active transfer has been applied on the Target nodes.
bt_mesh_dfu_iter
Action for DFU iteration callbacks.
Definition dfu.h:128
bt_mesh_dfu_phase
DFU transfer phase.
Definition dfu.h:42
bt_mesh_dfu_status
DFU status.
Definition dfu.h:79
bt_mesh_dfu_effect
Expected effect of a DFU transfer.
Definition dfu.h:108
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
__INT32_TYPE__ int32_t
Definition stdint.h:74
__UINT64_TYPE__ uint64_t
Definition stdint.h:91
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
__UINT16_TYPE__ uint16_t
Definition stdint.h:89
Event handler callbacks for the BLOB Transfer Client model.
Definition blob_cli.h:190
BLOB Transfer Client model instance.
Definition blob_cli.h:289
BLOB stream.
Definition blob.h:145
BLOB Transfer Client Target node.
Definition blob_cli.h:49
BLOB transfer.
Definition blob.h:123
Firmware Update Client event callbacks.
Definition dfu_cli.h:130
void(* confirmed)(struct bt_mesh_dfu_cli *cli)
DFU transfer confirmed on all active Target nodes.
Definition dfu_cli.h:166
void(* applied)(struct bt_mesh_dfu_cli *cli)
DFU transfer applied on all active Target nodes.
Definition dfu_cli.h:157
void(* ended)(struct bt_mesh_dfu_cli *cli, enum bt_mesh_dfu_status reason)
DFU ended.
Definition dfu_cli.h:147
void(* lost_target)(struct bt_mesh_dfu_cli *cli, struct bt_mesh_dfu_target *target)
DFU Target node was lost.
Definition dfu_cli.h:176
void(* suspended)(struct bt_mesh_dfu_cli *cli)
BLOB transfer is suspended.
Definition dfu_cli.h:137
BLOB parameters for Firmware Update Client transfer:
Definition dfu_cli.h:215
uint16_t chunk_size
Base chunk size.
Definition dfu_cli.h:219
uint8_t block_size_log
Definition dfu_cli.h:217
Firmware Update Client transfer parameters:
Definition dfu_cli.h:223
const struct bt_mesh_dfu_cli_xfer_blob_params * blob_params
BLOB parameters to be used for the transfer, or NULL to retrieve Target nodes' capabilities before se...
Definition dfu_cli.h:233
const struct bt_mesh_dfu_slot * slot
DFU image slot to transfer.
Definition dfu_cli.h:227
enum bt_mesh_blob_xfer_mode mode
Transfer mode (Push (Push BLOB Transfer Mode) or Pull (Pull BLOB Transfer Mode))
Definition dfu_cli.h:229
uint64_t blob_id
BLOB ID to use for this transfer, or 0 to set it randomly.
Definition dfu_cli.h:225
Firmware Update Client model instance.
Definition dfu_cli.h:184
struct bt_mesh_dfu_cli::@107 xfer
struct bt_mesh_dfu_cli::@108 req
const struct bt_mesh_dfu_cli_cb * cb
Callback structure.
Definition dfu_cli.h:186
const struct bt_mesh_blob_io * io
Definition dfu_cli.h:197
uint8_t flags
Definition dfu_cli.h:200
uint8_t type
Definition dfu_cli.h:205
uint8_t ttl
Definition dfu_cli.h:204
uint16_t addr
Definition dfu_cli.h:207
const struct bt_mesh_dfu_slot * slot
Definition dfu_cli.h:196
struct bt_mesh_blob_cli blob
Underlying BLOB Transfer Client.
Definition dfu_cli.h:188
uint32_t op
Definition dfu_cli.h:192
bt_mesh_dfu_img_cb_t img_cb
Definition dfu_cli.h:210
uint8_t img_cnt
Definition dfu_cli.h:206
const struct bt_mesh_model * mod
Definition dfu_cli.h:193
void * params
Definition dfu_cli.h:209
uint8_t state
Definition dfu_cli.h:199
DFU image instance.
Definition dfu.h:140
DFU image slot for DFU distribution.
Definition dfu.h:152
DFU Target node status parameters.
Definition dfu_cli.h:78
uint16_t timeout_base
Additional response time for the Target nodes, in 10-second increments.
Definition dfu_cli.h:105
enum bt_mesh_dfu_status status
Status of the previous operation.
Definition dfu_cli.h:80
uint64_t blob_id
BLOB ID used in the transfer.
Definition dfu_cli.h:86
uint8_t ttl
TTL used in the transfer.
Definition dfu_cli.h:90
enum bt_mesh_dfu_phase phase
Phase of the current DFU transfer.
Definition dfu_cli.h:82
uint8_t img_idx
Image index to transfer.
Definition dfu_cli.h:88
enum bt_mesh_dfu_effect effect
The effect the update will have on the Target device's state.
Definition dfu_cli.h:84
DFU Target node.
Definition dfu_cli.h:54
uint8_t effect
Expected DFU effect, see bt_mesh_dfu_effect.
Definition dfu_cli.h:60
uint8_t phase
Current DFU phase, see bt_mesh_dfu_phase.
Definition dfu_cli.h:64
uint8_t status
Current DFU status, see bt_mesh_dfu_status.
Definition dfu_cli.h:62
struct bt_mesh_blob_target blob
BLOB Target node.
Definition dfu_cli.h:56
uint8_t img_idx
Image index on the Target node.
Definition dfu_cli.h:58
Model callback functions.
Definition access.h:809
Model opcode handler.
Definition access.h:359
Abstraction that describes a Mesh Model instance.
Definition access.h:887
Message sending context.
Definition msg.h:76
static struct k_sem sem[3]
Definition timeout_order.c:14