BLOB Transfer Server#

Provides BT Mesh BLOB (Binary Large OBject) Transfer Server functionality, defined in mesh specification. The BLOB Transfer Server model is used to receive a BLOB from a BLOB Transfer Client. The BLOB is delivered to a higher-layer application for further processing once the transfer is complete. This component is instantiable, meaning that several named instances can be created. For each instance, a configuration header, an instance header and a source file is generated to encapsulate functionalities and initialize and manage the instance. Each BLOB Transfer Server instance shall be assigned to different elements by instance configuration in accordance with mesh specification. Selecting this component will also include the BLOB Transfer Server Core component, which is the implementation of the BLOB Transfer Server API. This component is prepared for integration into SOC applications. This is a Low-Code component. For example, the following weak callback function is called when a BLOB transfer is completed: void sl_btmesh_blob_transfer_server_transfer_done(sl_bt_uuid_64_t const *const blob_id)

Modules#

Mesh_blob_transfer_server_api

Functions#

void
sl_status_t
sl_btmesh_blob_transfer_server_start(uint16_t elem_index, sl_bt_uuid_64_t const *const blob_id, const uint16_t timeout_10s, const uint8_t ttl)
sl_status_t
sl_btmesh_blob_transfer_server_set_pull_mode_parameters(uint16_t elem_index, uint16_t pull_mode_retry_interval_ms, uint16_t pull_mode_retry_count)

Function Documentation#

sl_btmesh_blob_transfer_server_init#

void sl_btmesh_blob_transfer_server_init (void )
Parameters
TypeDirectionArgument NameDescription
voidN/A

Initializes the BLOB Transfer Server application


sl_btmesh_blob_transfer_server_on_event#

void sl_btmesh_blob_transfer_server_on_event (sl_btmesh_msg_t * evt)
Parameters
TypeDirectionArgument NameDescription
sl_btmesh_msg_t *[in]evt

BT Mesh stack event

Processes BT Mesh stack events related to BLOB Trasnfer Server


sl_btmesh_blob_transfer_server_start#

sl_status_t sl_btmesh_blob_transfer_server_start (uint16_t elem_index, sl_bt_uuid_64_t const *const blob_id, const uint16_t timeout_10s, const uint8_t ttl)
Parameters
TypeDirectionArgument NameDescription
uint16_t[in]elem_index

The server model element index.

sl_bt_uuid_64_t const *const[in]blob_id

Identifier of BLOB to be received

const uint16_t[in]timeout_10s

Timeout of reception in 10 seconds. If no data is received for this time, the transfer will be suspended. The actual timeout is calculated as (1 + timeout_10s) × 10 s

const uint8_t[in]ttl

The TTL used for communicating with the client

Let BLOB Transfer Server accept an incoming BLOB with given ID

This function needs to be called from other application components, that can determine incoming BLOB ID's, before any transfer can be done.

Note

  • Firmware Update Server automatically handles this operation when it receives a firmware update start message ( sl_btmesh_evt_fw_update_server_update_start_req_id ).

Returns

  • Status code

Return values

  • SL_STATUS_OK: In case of success

  • SL_STATUS_INVALID_STATE: In case transmission is already ongoing


sl_btmesh_blob_transfer_server_set_pull_mode_parameters#

sl_status_t sl_btmesh_blob_transfer_server_set_pull_mode_parameters (uint16_t elem_index, uint16_t pull_mode_retry_interval_ms, uint16_t pull_mode_retry_count)
Parameters
TypeDirectionArgument NameDescription
uint16_t[in]elem_index

The server model element index.

uint16_t[in]pull_mode_retry_interval_ms

Retry interval in milliseconds

uint16_t[in]pull_mode_retry_count

Number of times to retry

Set PULL transfer retry parameters

The new values will take effect at the next transfer start. The command does not modify parameters of the ongoing transfer.

Returns

  • Status code

Return values

  • SL_STATUS_OK: In case of success

  • SL_STATUS_INVALID_STATE: In case state is invalid


sl_btmesh_blob_transfer_server_step_handle#

void sl_btmesh_blob_transfer_server_step_handle (void )
Parameters
TypeDirectionArgument NameDescription
voidN/A

Handles the BLOB transfer state machine

Used for asynchronously erasing BLOBs