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#
Functions#
Function Documentation#
sl_btmesh_blob_transfer_server_init#
void sl_btmesh_blob_transfer_server_init (void )
Type | Direction | Argument Name | Description |
---|---|---|---|
void | N/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)
Type | Direction | Argument Name | Description |
---|---|---|---|
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)
Type | Direction | Argument Name | Description |
---|---|---|---|
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 + |
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)
Type | Direction | Argument Name | Description |
---|---|---|---|
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 )
Type | Direction | Argument Name | Description |
---|---|---|---|
void | N/A |
Handles the BLOB transfer state machine
Used for asynchronously erasing BLOBs