Просмотр исходного кода

Merge branch 'bugfix/filter_repeated_packages_v4.4' into 'release/v4.4'

filter repeated packages but not send response(v4.4)

See merge request espressif/esp-idf!16817
Island 4 лет назад
Родитель
Сommit
afe82b4e1b

+ 9 - 14
examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/ble_mesh_adapter.c

@@ -1,16 +1,9 @@
-// Copyright 2017-2019 Espressif Systems (Shanghai) PTE LTD
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// 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.
+/*
+ * SPDX-FileCopyrightText: 2017-2022 Espressif Systems (Shanghai) CO LTD
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
 #include "esp_ble_mesh_networking_api.h"
 #include "ble_mesh_adapter.h"
 
@@ -116,9 +109,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 +123,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;

+ 5 - 13
examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/ble_mesh_adapter.h

@@ -1,16 +1,8 @@
-// Copyright 2017-2019 Espressif Systems (Shanghai) PTE LTD
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// 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.
+/*
+ * SPDX-FileCopyrightText: 2017-2022 Espressif Systems (Shanghai) CO LTD
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
 
 #ifndef _BLE_MESH_ADAPTER_H_
 #define _BLE_MESH_ADAPTER_H_

+ 2 - 0
examples/bluetooth/esp_ble_mesh/ble_mesh_console/sdkconfig.defaults

@@ -23,6 +23,8 @@ CONFIG_BLE_MESH_PROVISIONER_RECV_HB=y
 CONFIG_BLE_MESH_PROVISIONER_RECV_HB_FILTER_SIZE=3
 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

+ 25 - 0
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

+ 25 - 0
examples/bluetooth/esp_ble_mesh/ble_mesh_console/sdkconfig.defaults.esp32s3

@@ -0,0 +1,25 @@
+# ESP32S3-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 ESP32S3-specific