Files
openthread/tools/tcat_ble_client
Maciej Baczmański 33574ad417 [tools] add missing tcat ble client files (#9857)
Some files were missing during repo migration, this commit adds them.

Signed-off-by: Maciej Baczmanski <maciej.baczmanski@nordicsemi.no>
Co-authored-by: Piotr Jasinski <piotr.jasinski990@gmail.com>
Co-authored-by: Przemyslaw Bida <przemyslaw.bida@nordicsemi.no>
2024-02-16 11:12:57 -08:00
..
2024-02-07 13:13:12 -08:00
2024-02-07 13:13:12 -08:00
2024-02-07 13:13:12 -08:00
2024-02-07 13:13:12 -08:00
2024-02-07 13:13:12 -08:00

BBTC Client

Overview

This is a Python implementation of Bluetooth-Based Thread Commissioning client, based on Thread's TCAT (Thread Commissioning over Authenticated TLS) functionality.

Installation

If you don't have the poetry module installed (check with poetry --version), install it first using:

python3 -m pip install poetry

Thread uses Elliptic Curve Cryptography (ECC), so we use the ecparam openssl argument to generate the keys.

poetry install

This will install all the required modules to a virtual environment, which can be used by calling poetry run <COMMAND> from the project directory.

Usage

In order to connect to a TCAT device, enter the project directory and run:

poetry run python3 bbtc.py {<device specifier> | --scan}

where <device specifier> can be:

  • --name <NAME> - name advertised by the device
  • --mac <ADDRESS> - physical address of the device's Bluetooth interface

Using the --scan option will scan for every TCAT device and display them in a list, to allow selection of the target.

For example:

poetry run python3 bbtc.py --name 'Thread BLE'

The application will connect to the first matching device discovered and set up a secure TLS channel. The user is then presented with the CLI.

Commands

The application supports the following interactive CLI commands:

  • help - Display available commands.
  • commission - Commission the device with current dataset.
  • thread start - Enable Thread interface.
  • thread stop - Disable Thread interface.
  • hello - Send "hello world" application data and read the response.
  • exit - Close the connection and exit.
  • dataset - View and manipulate current dataset. See dataset help for more information.