# statistics

Get statistics of Bluetooth LE node

Since R2022a

Download Required: To use `statistics`, first download the Communications Toolbox Wireless Network Simulation Library add-on. For more information, see Get and Manage Add-Ons.

## Syntax

``nodeStatistics = statistics(bluetoothLENodeObj)``

## Description

example

````nodeStatistics = statistics(bluetoothLENodeObj)` returns the statistics of the Bluetooth® low energy (LE) node object `bluetoothLENodeObj`.```

## Examples

collapse all

This example shows you how to simulate a Bluetooth® low energy (LE) network by using Bluetooth® Toolbox and Communications Toolbox™ Wireless Network Simulation Library.

Using this example, you can:

1. Create and configure a Bluetooth LE piconet with Central and Peripheral nodes.

2. Create and configure a link layer (LL) connection between Central and Peripheral nodes.

3. Add application traffic from the Central to Peripheral nodes.

4. Simulate Bluetooth LE network and retrieve the statistics of the Central and Peripheral nodes.

Check if the Communications Toolbox™ Wireless Network Simulation Library support package is installed. If the support package is not installed, MATLAB® returns an error with a link to download and install the support package.

`wirelessnetworkSupportPackageCheck;`

Create a wireless network simulator.

`networkSimulator = wirelessNetworkSimulator.init();`

Create a Bluetooth LE node, specifying the role as `"central"`. Specify the name and position of the node.

```centralNode = bluetoothLENode("central"); centralNode.Name = "CentralNode"; centralNode.Position = [0 0 0]; % In x-, y-, and z-coordinates in meters```

Create a Bluetooth LE node, specifying the role as `"peripheral"`. Specify the name and position of the node.

```peripheralNode = bluetoothLENode("peripheral"); peripheralNode.Name = "PeripheralNode"; peripheralNode.Position = [10 0 0] % In x-, y-, and z-coordinates in meters```
```peripheralNode = bluetoothLENode with properties: TransmitterPower: 20 TransmitterGain: 0 ReceiverRange: 100 ReceiverGain: 0 ReceiverSensitivity: -100 NoiseFigure: 0 InterferenceFidelity: 0 Name: "PeripheralNode" Position: [10 0 0] Read-only properties: Role: "peripheral" ConnectionConfig: [1x1 bluetoothLEConnectionConfig] TransmitBuffer: [1x1 struct] ID: 2 ```

Create a default Bluetooth LE configuration object to share the LL connection between the Central and Peripheral nodes.

`cfgConnection = bluetoothLEConnectionConfig;`

Specify the connection interval and connection offset. Throughout the simulation, the object establishes LL connection events for the duration of each connection interval. The connection offset is from the beginning of the connection interval.

```cfgConnection.ConnectionInterval = 0.01; % In seconds cfgConnection.ConnectionOffset = 0; % In seconds```

Specify the active communication period after the connection event is established between the Central and Peripheral nodes.

`cfgConnection.ActivePeriod = 0.01 % In seconds`
```cfgConnection = bluetoothLEConnectionConfig with properties: ConnectionInterval: 0.0100 AccessAddress: "5DA44270" UsedChannels: [0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36] Algorithm: 1 HopIncrement: 5 CRCInitialization: "012345" SupervisionTimeout: 1 PHYMode: "LE1M" InstantOffset: 6 ConnectionOffset: 0 ActivePeriod: 0.0100 ```

Configure the connection between Central and Peripheral nodes by using the `configureConnection` object function of the `bluetoothLEConnectionConfig` object.

`configureConnection(cfgConnection,centralNode,peripheralNode);`

Create a `networkTrafficOnOff` object to generate an On-Off application traffic pattern. Specify the data rate in kb/s and the packet size in bytes. Enable packet generation to generate an application packet with a payload.

```traffic = networkTrafficOnOff(DataRate=100, ... PacketSize=10, ... GeneratePacket=true);```

Add application traffic from the Central to the Peripheral node by using the `addTrafficSource` object function.

`addTrafficSource(centralNode,traffic,"DestinationNode",peripheralNode.Name);`

Create a Bluetooth LE network consisting of a Central and a Peripheral node.

`nodes = {centralNode peripheralNode};`

Add the Central and Peripheral nodes to the wireless network simulator.

`addNodes(networkSimulator,nodes)`

Set the simulation time in seconds and run the simulation.

```simulationTime = 0.5; run(networkSimulator,simulationTime);```
```Custom channel model is not added. Using free space path loss (fspl) model as the default channel model. ```

`centralStats = statistics(centralNode)`
```centralStats = struct with fields: Name: "CentralNode" ID: 1 App: [1x1 struct] LL: [1x1 struct] PHY: [1x1 struct] ```
`peripheralStats = statistics(peripheralNode)`
```peripheralStats = struct with fields: Name: "PeripheralNode" ID: 2 App: [1x1 struct] LL: [1x1 struct] PHY: [1x1 struct] ```

## Input Arguments

collapse all

Bluetooth LE node object, specified as a `bluetoothLENode` object.

## Output Arguments

collapse all

Data Types: `struct`