This commit updates the visibility of various header files and cleans up some unnecessary inclusions. Also, this commit removes certain header include paths which were maintained for backward compatibility.
Supported Targets | ESP32 |
---|
Example of BLE Mesh and TCP Server/Client Coexistence
This example introduces how to test the basic functions of BLE Mesh data interface
and TCP Server/Client Coexistence
. BLE Mesh data interface
is GAP scanning and advertising.
There are two working modes here:
-
In automatic mode, the program coordinates three development boards working through a synchronization mechanism.
-
In manual mode, you will work with three development boards via commands
Test Preparation
-
Before running the test, you need to prepare a router and three ESP32 development boards. This Example of BLE Mesh and TCP Server/Client Coexistence has the following three items, and any of the three development boards is for running one specific item.
- ble_dev : Run only the BLE program.
- coex_dev: Run BLE and Wi-Fi program.
- wifi_dev: Run only the Wi-Fi program.
Note: If you want better performance in BLE and WiFi coexistence, you should use a development board with PSRAM that could run a coexistence program. Such as ESP32_LyraT, ESP32-WROVER-B and etc.
- The following structure shows the parameters you need to configure. And usually, there are two methods for configuration, i.e. configuring during initialization or configuring with the command
env
.
coex_test_env_t test_env = {
#if defined(CONFIG_EXAMPLE_MANAUL)
.ap_ssid = CONFIG_EXAMPLE_WIFI_SSID,
.ap_password = CONFIG_EXAMPLE_WIFI_PASSWORD,
#endif
#if defined(CONFIG_EXAMPLE_COEX_ROLE)
.ap_ssid = CONFIG_EXAMPLE_WIFI_SSID,
.ap_password = CONFIG_EXAMPLE_WIFI_PASSWORD,
#endif
.test_port = "8080",
.server_ip = "192.168.3.32",
.duration = "120000",
.is_start = false,
};
Run Test Case Manually
Configure to Manual Mode via Example Configuration --->run mode (manual)
The meaning of the numeric argument of the command run_tc
is as follows:
id | case name | description |
---|---|---|
0 | wifi_tcp_tx_throughput | Test the case of Wi-Fi tcp tx, which will create a tcp client that will continuously send data to the tcp server. |
1 | wifi_tcp_rx_throughput | Test the case of Wi-Fi tcp rx, which will create a tcp server that will continuously receive data from the tcp client. |
2 | ble_adv | Test the case of BLE advertising. |
3 | ble_scan | Test the case of BLE Scan. |
Case 1: tcp tx + scan
- wifi_dev: run_tc -w 1
- coex_dev: env -s -k server_ip -v 192.168.3.34 run_tc -w 0 -b 3
- ble_dev : run_tc -b 2
Case 2: tcp rx + scan
- coex_dev: run_tc -w 1 -b 3
- wifi_dev: env -s -k server_ip -v 192.168.3.34 run_tc -w 0
- ble_dev : run_tc -b 2
Case 3: tcp tx + adv
- wifi_dev: run_tc -w 1
- coex_dev: env -s -k server_ip -v 192.168.3.13 run_tc -w 0 -b 2
- ble_dev : run_tc -b 3
Case 4: tcp rx + adv
- coex_dev: run_tc -w 1 -b 2
- wifi_dev: env -s -k server_ip -v 192.168.3.34 run_tc -w 0
- ble_dev : run_tc -b 3
Run Test Case By Automation
Configure to Automatic Mode via Example Configuration --->run mode (auto)
Coexistence device configuration
- Select a development board as coexistence role by
Example Configuration --->select role (run device as coex role)
- Select a test case by
Example Configuration --->select case
.
- There are four types of cases:
- TCP TX and BLE ADV: The TCP client will be created on the coexistence device, and bluetooth will start advertising when the Wi-Fi is running tx throughput program.
- TCP RX and BLE ADV: The TCP server will be created on the coexistence device, and bluetooth will start advertising when the Wi-Fi is running rx throughput program.
- TCP TX and BLE SCAN: The TCP client will be created on the coexistence device, and bluetooth will start scanning when the Wi-Fi is running tx throughput program.
- TCP RX and BLE SCAN: The TCP server will be created on the coexistence device, and bluetooth will start scanning when the Wi-Fi is running rx throughput program.
Bluetooth device configuration
- Select a development board as bluetooth role by
select role (run device as bluetooth role)
Wi-Fi device configuration
- Select a development board as bluetooth role by
select role (run device as wifi role)
Coexistence Configuration
In theory, the performance of BLE and Wi-Fi coexistence will drop to half of the performance in BLE Only mode or Wi-Fi Only mode.
-
ESP32 working frequency:
- Component config ---> ESP32-specific ---> CPU frequency (240 MHz)
-
ESP32 external PSRAM
- Component config ---> ESP32-specific ---> Support for external, SPI-connected RAM
- Devices that do not support PSRAM cannot open this option!
-
ESP32 coexistence mode
- Component config ---> Wi-Fi ---> WiFi/Bluetooth coexistence performance preference (Balance)