Welcome to BLEX on the Slave side.
This repo demonstrates how to reproduce the results from BLEX: Flexible Multi-Connection Scheduling for Bluetooth Low Energy (to be published at IPSN 2021) on the Zephyr project.
This is a fork of Zephyr Project.
Two UP2 boards were used to build the code. One UP2 board each was used for one master and several slaves. For the Bluetooth Low Energy (BLE) radio, We used five Nordic nrf52840 DKs. Code has only been tested on Ubuntu 16.04.6.
Install the Zpehyr Project on the Ubuntu refering Zephyr getting started v2.2.1. Code has only been tested on Zephyr Project v2.2.1 and zephyr-sdk-0.11.2.
git clone https://github.com/ejparkNETLAB/BLEX_Master.git
git clone https://github.com/ejparkNETLAB/BLEX_Slave.git
On the slave side, read the throughput using grabserial command. Execute the following command in each new terminal window to get the message of 4 slaves.
grabserial -t -b 115200 -d /dev/ttyACM0
grabserial -t -b 115200 -d /dev/ttyACM1
grabserial -t -b 115200 -d /dev/ttyACM2
grabserial -t -b 115200 -d /dev/ttyACM3
On the Ubuntu server connected to the master node, run the following script file.
cd ~/zephyrproject/zephyr/
./BLEX_same_interval.sh
On the Ubuntu server connected to the slave nodes, run the following scrip files according to the scenario.
cd ~/zephyrproject/zephyr/
./BLEX_increasing_traffic.sh
cd ~/zephyrproject/zephyr/
./BLEX_same_traffic.sh
cd ~/zephyrproject/zephyr/
./BLEX_decreasing_traffic.sh
On the Ubuntu server connected to the master node, run the following script file.
cd ~/zephyrproject/zephyr/
./BLEX_real_update.sh
On the Ubuntu server connected to the slave nodes, run the following scrip file.
cd ~/zephyrproject/zephyr/
./BLEX_real_update.sh
On the Ubuntu server connected to the master node, run the following script file.
cd ~/zephyrproject/zephyr/
./BLEX_real_app.sh
On the Ubuntu server connected to the slave nodes, run the following scrip file.
cd ~/zephyrproject/zephyr/
./BLEX_real_app.sh
- By default, the codes are executed BLEX controller.
- To compare BLEX with the other schemes, change the configurations in the code below, on the master side.
cd ~/zephyrproject/zephyr/include/bluetooth/conn.h