Reliable Data Reporting

Last Updated on : 2024-02-23 08:24:11download

This topic describes reliable data reporting aimed at improving communication reliability.

The gateway and mobile app do not acknowledge the receipt of the data proactively reported by the Bluetooth mesh device. Reliable data reporting is used to secure the delivery of important messages.

API description

OPERATE_RET tal_mesh_vendor_dp_report_reliable(UINT8_T dp_id, TAL_DP_TYPE dp_type, UINT8_T *dp_data, UINT8_T dp_data_len, TAL_REPORT_MODE_T trans_mode);
  • dp_id: The DP ID.

  • dp_type: The DP type.

  • dp_data: The pointer to the DP data.

  • dp_data_len: The length of the DP data.

  • trans_mode: The retransmission mode.

The reporting mechanism varies by retransmission mode, as shown below.

Mode Transmission count Retransmission interval Scenario
MODE_0 1 0 Acknowledgment is not required. The function is equivalent to tal_mesh_data_send.
MODE_1 1 0 Acknowledgment is not required, and messages are queued for sending.
MODE_2 16 Random from 3s to 60s Moderately time-sensitive products, such as vehicle detection sensors.
MODE_3 2 1s Highly time-sensitive products, such as wireless switches.
MODE_4 4 1s Reserved for MODE_3 products that are not sensitive to power consumption to increase message delivery rate.
MODE_5 Unlimited Random from 1s to 3s Time-critical products with high delivery rate requirements, such as smoke alarms and security products.

Things to note

  • When the mobile app receives status data from Bluetooth mesh devices via a reliable reporting channel, it will not synchronize this status with the cloud. The app will process the data without sending an acknowledgment. If the device reports data through a gateway, the gateway will send an acknowledgment. This feature is implemented on your own, so be sure to verify its compatibility with the firmware.

  • Use reliable data reporting cautiously. Avoid applying it to regular DP data, as network congestion may occur when the gateway processes and sends acknowledgments during a high volume of simultaneous data reporting. The network storm that arises can lead to significant packet loss. Typically, use OPERATE_RET tal_mesh_data_send(USHORT_T src_addr, USHORT_T dst_addr, UINT_T opcode, UCHAR_T *data, USHORT_T data_len) to report data unless time sensitivity is crucial.