Blepy
A class-based wrapper for the peripheral functionalities provided by the library python-bluezero.
About
The primary goal of this library is to make it easier and more clearer about how to implement Bluetooth low energy Peripherals,
including the associated Services, Characteristics and Descriptors. This is done by using a class-based wrapper for the
BlueZ based python-bluezero library.
As seen in the figure below, a Service has one to many Characteristics and a Characteristic has (often) one to many
Descriptors, which is what this library is built to follow.
Usage
Import blepy
To use blepy in your project, simply import the whole package:
import blepy
Service
Create unique BLE services by inheriting blepy.Service, including associated characteristics:
class ExampleService(blepy.Service):
def __init__(self, primary):
super().__init__(self, "UUID", primary)
self.characteristics = [ExampleCharacteristic()]
Characteristic
Create unique BLE characteristics by inheriting blepy.Characteristic, including associated descriptors:
class ExampleCharacteristic(blepy.Characteristic):
def __init__(self):
super().__init__(self, "UUID")
self.descriptors = [ExampleDescriptor()]
Descriptor
Create unique BLE descriptors by inheriting blepy.Descriptor:
class ExampleDescriptor(blepy.Descriptor):
def __init__(self):
super().__init__(self, "UUID")
Peripheral
Create a new peripheral with included services by either using the blepy.Peripheral as it is:
# Initialize and publish the peripheral
peripheral = blepy.Peripheral([ExampleService(True)], adapter_address, local_name='Peripheral', appearance=0)
peripheral.publish()
... or by inherit from the blepy.Peripheral and create an unique peripheral:
class ExamplePeripheral(blepy.Peripheral):
def __init__(self, adapter_address):
services = [ExampleService(True)]
super().__init__(services, adapter_address, local_name='Peripheral', appearance=0)
# Initialize and publish the peripheral
peripheral = ExamplePeripheral(adapter_address)
peripheral.publish()
Examples
(GATT Server) cpu-temperature.py
This example transmits (randomly generated) temperature values of the CPU over a single characteristic. Values are only updated when notification are switched on.
(UART) ble_uart.py
This example simulates a basic UART connection over two lines, TXD and RXD.
It is based on a proprietary UART service specification by Nordic Semiconductors. Data sent to and from this service can be viewed using the nRF UART apps from Nordic Semiconductors for Android and iOS.
Release files for blepy 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| blepy-0.3.0.tar.gz | 7.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| blepy-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 12.2 kB
Release files / blepy-0.3.0.tar.gz
| Download URL | blepy-0.3.0.tar.gz |
|---|---|
| Size | 7.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a535fece25fc842dab3d5fa2ea3377e7a950079dbf682c65a3e69c373a34e7f1
|
|
BLAKE2b-256 checksum How to use checksums |
9ff9710d1af088b652b07da4c09d14c71f50dd53b8a782a3be6f6300222894ce
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4
|
Release files / blepy-0.3.0-py3-none-any.whl
| Download URL | blepy-0.3.0-py3-none-any.whl |
|---|---|
| Size | 4.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
02272aa6c8d31405536c2e905efad01794ae0abf2e1d7401dcc0440fc89857fd
|
|
BLAKE2b-256 checksum How to use checksums |
df3dedd49377ce30d3196c480480394dfbf3269f0f8327d440d373cb89cb7359
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4
|