ABle’s Documentation

About

Welcome to the documentation for ABle (Allthenticate’s BLE Library). The mission of this project is to create a developer friendly and platform agnostic implementation of BLE Sockets with a simple and powerful API.

The library supports a GATT peripheral server that can be initialized with preconfigured advertisements. The server produces centrals which handle abstraction for communicating and supports communicating directly with multiple connected centrals.

The abstraction barriers in the top level classes defined in the API Reference utilize platform specific backends meaning that the same code will run on Linux, Mac and Windows machines with Bluetooth capabilities, with the goal of greatly simplifying the BLE development process.

Note

This project is actively under development and we welcome any suggestions to improve these docs! Let us know with an email, notion card or an issue on the repo.

Abstraction

See below image for a visual for the abstraction that is core to how ABle works. The three main classes expose ABle’s Core API to developers which is platform agnostic. These classes utilize platform specific API’s with their own implementations such that the core API behaves the same on all supported platforms.

Something bad happened :/

Tip

Note that this excludes the classes essential for configuring the GATT table on the peripheral ABleCharacteristic and ABleService, see the programming guide and the API reference for more on configuring the GATT table with ABle.

We will soon be releasing a short video series on how different components of ABle work as well as working through some of the main examples used.

Table Of Contents

Section

Description

Programming Guide

Here you will find examples to get started and even get into some of the weeds of working with ABle. We suggest you look here first.

Core API

The core classes and their methods are documented here.

Platform Backends

For those who like getting their hands dirty, here are the different backends API’s that the core classes use. hic sunt BLE dracones

Development

For anyone interested in contributing to the project, check out these files to get started!

Puns

We readily welcome any puns on the ABle name to be sent to help@allthenticate.net to be featured in the repo (eg. this project en*able*s faster BLE development for more st*able* projects with read*able* documentation). Credit for the A+ name goes to Evan Blasband.

Moreover, we humbly think the name is hilarious because when you refer to an instance of an advertisement as ABleAdvertisement, you are calling it it’s class name but also what it is, a-ble-advertisement, we find this hilarious and hope you do to.

Indices and tables