Zephyr API Documentation 4.0.0-rc2
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
Bluetooth Mesh Device Firmware Update

Topics

 Bluetooth Mesh Device Firmware Update (DFU) metadata
 
 Firmware Update Server model
 API for the Bluetooth Mesh Firmware Update Server model
 
 Firmware Uppdate Client model
 API for the Bluetooth Mesh Firmware Update Client model
 

Data Structures

struct  bt_mesh_dfu_img
 DFU image instance. More...
 
struct  bt_mesh_dfu_slot
 DFU image slot for DFU distribution. More...
 

Macros

#define CONFIG_BT_MESH_DFU_FWID_MAXLEN   0
 
#define CONFIG_BT_MESH_DFU_METADATA_MAXLEN   0
 
#define CONFIG_BT_MESH_DFU_URI_MAXLEN   0
 
#define CONFIG_BT_MESH_DFU_SLOT_CNT   0
 

Enumerations

enum  bt_mesh_dfu_phase {
  BT_MESH_DFU_PHASE_IDLE , BT_MESH_DFU_PHASE_TRANSFER_ERR , BT_MESH_DFU_PHASE_TRANSFER_ACTIVE , BT_MESH_DFU_PHASE_VERIFY ,
  BT_MESH_DFU_PHASE_VERIFY_OK , BT_MESH_DFU_PHASE_VERIFY_FAIL , BT_MESH_DFU_PHASE_APPLYING , BT_MESH_DFU_PHASE_TRANSFER_CANCELED ,
  BT_MESH_DFU_PHASE_APPLY_SUCCESS , BT_MESH_DFU_PHASE_APPLY_FAIL , BT_MESH_DFU_PHASE_UNKNOWN
}
 DFU transfer phase. More...
 
enum  bt_mesh_dfu_status {
  BT_MESH_DFU_SUCCESS , BT_MESH_DFU_ERR_RESOURCES , BT_MESH_DFU_ERR_WRONG_PHASE , BT_MESH_DFU_ERR_INTERNAL ,
  BT_MESH_DFU_ERR_FW_IDX , BT_MESH_DFU_ERR_METADATA , BT_MESH_DFU_ERR_TEMPORARILY_UNAVAILABLE , BT_MESH_DFU_ERR_BLOB_XFER_BUSY
}
 DFU status. More...
 
enum  bt_mesh_dfu_effect { BT_MESH_DFU_EFFECT_NONE , BT_MESH_DFU_EFFECT_COMP_CHANGE_NO_RPR , BT_MESH_DFU_EFFECT_COMP_CHANGE , BT_MESH_DFU_EFFECT_UNPROV }
 Expected effect of a DFU transfer. More...
 
enum  bt_mesh_dfu_iter { BT_MESH_DFU_ITER_STOP , BT_MESH_DFU_ITER_CONTINUE }
 Action for DFU iteration callbacks. More...
 

Detailed Description

Macro Definition Documentation

◆ CONFIG_BT_MESH_DFU_FWID_MAXLEN

#define CONFIG_BT_MESH_DFU_FWID_MAXLEN   0

◆ CONFIG_BT_MESH_DFU_METADATA_MAXLEN

#define CONFIG_BT_MESH_DFU_METADATA_MAXLEN   0

◆ CONFIG_BT_MESH_DFU_SLOT_CNT

#define CONFIG_BT_MESH_DFU_SLOT_CNT   0

◆ CONFIG_BT_MESH_DFU_URI_MAXLEN

#define CONFIG_BT_MESH_DFU_URI_MAXLEN   0

Enumeration Type Documentation

◆ bt_mesh_dfu_effect

#include <zephyr/bluetooth/mesh/dfu.h>

Expected effect of a DFU transfer.

Enumerator
BT_MESH_DFU_EFFECT_NONE 

No changes to node Composition Data.

BT_MESH_DFU_EFFECT_COMP_CHANGE_NO_RPR 

Node Composition Data changed and the node does not support remote provisioning.

BT_MESH_DFU_EFFECT_COMP_CHANGE 

Node Composition Data changed, and remote provisioning is supported.

The node supports remote provisioning and Composition Data Page 0x80. Page 0x80 contains different Composition Data than Page 0x0.

BT_MESH_DFU_EFFECT_UNPROV 

Node will be unprovisioned after the update.

◆ bt_mesh_dfu_iter

#include <zephyr/bluetooth/mesh/dfu.h>

Action for DFU iteration callbacks.

Enumerator
BT_MESH_DFU_ITER_STOP 

Stop iterating.

BT_MESH_DFU_ITER_CONTINUE 

Continue iterating.

◆ bt_mesh_dfu_phase

#include <zephyr/bluetooth/mesh/dfu.h>

DFU transfer phase.

Enumerator
BT_MESH_DFU_PHASE_IDLE 

Ready to start a Receive Firmware procedure.

BT_MESH_DFU_PHASE_TRANSFER_ERR 

The Transfer BLOB procedure failed.

BT_MESH_DFU_PHASE_TRANSFER_ACTIVE 

The Receive Firmware procedure is being executed.


BT_MESH_DFU_PHASE_VERIFY 

The Verify Firmware procedure is being executed.

BT_MESH_DFU_PHASE_VERIFY_OK 

The Verify Firmware procedure completed successfully.

BT_MESH_DFU_PHASE_VERIFY_FAIL 

The Verify Firmware procedure failed.

BT_MESH_DFU_PHASE_APPLYING 

The Apply New Firmware procedure is being executed.

BT_MESH_DFU_PHASE_TRANSFER_CANCELED 

Firmware transfer has been canceled.

BT_MESH_DFU_PHASE_APPLY_SUCCESS 

Firmware applying succeeded.

BT_MESH_DFU_PHASE_APPLY_FAIL 

Firmware applying failed.

BT_MESH_DFU_PHASE_UNKNOWN 

Phase of a node was not yet retrieved.

◆ bt_mesh_dfu_status

#include <zephyr/bluetooth/mesh/dfu.h>

DFU status.

Enumerator
BT_MESH_DFU_SUCCESS 

The message was processed successfully.

BT_MESH_DFU_ERR_RESOURCES 

Insufficient resources on the node.

BT_MESH_DFU_ERR_WRONG_PHASE 

The operation cannot be performed while the Server is in the current phase.

BT_MESH_DFU_ERR_INTERNAL 

An internal error occurred on the node.

BT_MESH_DFU_ERR_FW_IDX 

The message contains a firmware index value that is not expected.

BT_MESH_DFU_ERR_METADATA 

The metadata check failed.

BT_MESH_DFU_ERR_TEMPORARILY_UNAVAILABLE 

The Server cannot start a firmware update.

BT_MESH_DFU_ERR_BLOB_XFER_BUSY 

Another BLOB transfer is in progress.