Bluetooth Low Energyfleeting
- External reference: https://en.wikipedia.org/wiki/Bluetooth_Low_Energy
- External reference: https://learn.adafruit.com/introduction-to-bluetooth-low-energy/gatt
Introduction to Bluetooth Low Energy
The peripheral is known as the GATT Server, which holds the ATT lookup data and service and characteristic definitions, and the GATT Client (the phone/tablet), which sends requests to this server
All transactions are started by the main device, the GATT Client, which receives response from the secondary device, the GATT Server
Generic Attribute Profile
All Bluetooth Low Energy devices use the Generic Attribute Profile (GATT).
GATT has the following terminology:
Client A device that initiates GATT commands and requests, and accepts responses, for example, a computer or smartphone.
Server A device that receives GATT commands and requests, and returns responses, for example, a temperature sensor
Service A collection of related characteristics, which operate together to perform a particular function. For instance, the Health Thermometer service includes characteristics for a temperature measurement value, and a time interval between measurements.
Descriptor A descriptor provides additional information about a characteristic. For instance, a temperature value characteristic may have an indication of its units (e.g. Celsius), and the maximum and minimum values which the sensor can measure. Descriptors are optional – each characteristic can have any number of descriptors.
Services, characteristics, and descriptors are collectively referred to as attributes, and identified by UUIDs.
implementer may pick a random or pseudorandom UUID for proprietary uses, but the Bluetooth SIG have reserved a range of UUIDs (of the form xxxxxxxx-0000-1000-8000-00805F9B34FB) for standard attributes.
efficiency, these identifiers are represented as 16-bit or 32-bit values in the protocol, rather than the 128 bits required for a full UUID. For example, the Device Information service has the short code 0x180A, rather than 0000180A-0000-1000-… .
full list is kept in the Bluetooth Assigned Numbers document online
Characteristic A data value transferred between client and server, for example, the current battery voltage.
Notes linking here
- [SOLVED] Run bluez hciconfig/hcitool as unprivileged user / Kernel & Hardware / Arch Linux Forums
- more robust notifications in infinitime