From 117b23a82a2529cd3580eae82a55cd5534a6ae44 Mon Sep 17 00:00:00 2001 From: Yuan Hong Hui Date: Tue, 25 Jan 2022 06:39:59 +0000 Subject: [PATCH] filter repeated packages then send response(v4.3) --- .../ble_mesh_console/main/ble_mesh_adapter.c | 5 +++- .../ble_mesh_console/sdkconfig.defaults | 2 ++ .../sdkconfig.defaults.esp32c3 | 25 +++++++++++++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 examples/bluetooth/esp_ble_mesh/ble_mesh_console/sdkconfig.defaults.esp32c3 diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/ble_mesh_adapter.c b/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/ble_mesh_adapter.c index 54e3dc1854..eea71312d0 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/ble_mesh_adapter.c +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/ble_mesh_adapter.c @@ -11,6 +11,7 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. + #include "esp_ble_mesh_networking_api.h" #include "ble_mesh_adapter.h" @@ -116,9 +117,10 @@ int ble_mesh_node_statistics_accumulate(uint8_t *data, uint32_t value, uint16_t xSemaphoreTake(ble_mesh_node_sema, portMAX_DELAY); for (i = 0; i < ble_mesh_node_statistics.total_package_num; i++) { + /* Filter out repeated packages during retransmission */ if (ble_mesh_node_statistics.package_index[i] == sequence_num) { xSemaphoreGive(ble_mesh_node_sema); - return 1; + return 0; } } @@ -129,6 +131,7 @@ int ble_mesh_node_statistics_accumulate(uint8_t *data, uint32_t value, uint16_t } for (i = 0; i < ble_mesh_node_statistics.total_package_num; i++) { + /* Judge whether the package is received for the first time */ if (ble_mesh_node_statistics.package_index[i] == 0) { ble_mesh_node_statistics.package_index[i] = sequence_num; ble_mesh_node_statistics.package_num += 1; diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_console/sdkconfig.defaults b/examples/bluetooth/esp_ble_mesh/ble_mesh_console/sdkconfig.defaults index a18fe8b7ff..20e0b0db4b 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_console/sdkconfig.defaults +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_console/sdkconfig.defaults @@ -21,6 +21,8 @@ CONFIG_BLE_MESH_GENERIC_ONOFF_CLI=y CONFIG_BLE_MESH_PROVISIONER=y CONFIG_BLE_MESH_SELF_TEST=y CONFIG_BLE_MESH_TEST_AUTO_ENTER_NETWORK=y +CONFIG_BLE_MESH_WAIT_FOR_PROV_MAX_DEV_NUM=80 +CONFIG_BLE_MESH_MAX_PROV_NODES=80 # partitions CONFIG_PARTITION_TABLE_CUSTOM=y diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_console/sdkconfig.defaults.esp32c3 b/examples/bluetooth/esp_ble_mesh/ble_mesh_console/sdkconfig.defaults.esp32c3 new file mode 100644 index 0000000000..eee9ca57cd --- /dev/null +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_console/sdkconfig.defaults.esp32c3 @@ -0,0 +1,25 @@ +# ESP32C3-specific +##Override some defaults so BT stack is enabled +# by default in this example +CONFIG_BT_ENABLED=y +CONFIG_BT_CTRL_SCAN_DUPL_TYPE_DATA_DEVICE=y +CONFIG_BT_CTRL_BLE_MESH_SCAN_DUPL_EN=y +CONFIG_BT_GATTS_SEND_SERVICE_CHANGE_MANUAL=y +CONFIG_BT_BTU_TASK_STACK_SIZE=4512 +CONFIG_BT_BLE_42_FEATURES_SUPPORTED=y + +# Override some defaults of ESP BLE Mesh +CONFIG_BLE_MESH=y +CONFIG_BLE_MESH_NODE=y +CONFIG_BLE_MESH_PB_GATT=y +CONFIG_BLE_MESH_TX_SEG_MSG_COUNT=3 +CONFIG_BLE_MESH_RX_SEG_MSG_COUNT=3 +CONFIG_BLE_MESH_CFG_CLI=y +CONFIG_BLE_MESH_GENERIC_ONOFF_CLI=y +CONFIG_BLE_MESH_PROVISIONER=y +CONFIG_BLE_MESH_SELF_TEST=y +CONFIG_BLE_MESH_TEST_AUTO_ENTER_NETWORK=y +CONFIG_BLE_MESH_WAIT_FOR_PROV_MAX_DEV_NUM=80 +CONFIG_BLE_MESH_MAX_PROV_NODES=80 + +# end of ESP32C3-specific